@vendorflow/components 2.0.73 → 2.0.76

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 (60) hide show
  1. package/lib/TempHooks.d.ts +9 -0
  2. package/lib/TempHooks.js +25 -0
  3. package/lib/components/InfiniteScroll/InfiniteScroll.d.ts +16 -0
  4. package/lib/components/InfiniteScroll/InfiniteScroll.js +159 -0
  5. package/lib/components/InfiniteScroll/index.d.ts +1 -0
  6. package/lib/components/InfiniteScroll/index.js +8 -0
  7. package/lib/components/blueprint/InputGroup/InputGroup.d.ts +20 -0
  8. package/lib/components/blueprint/InputGroup/InputGroup.js +13 -0
  9. package/lib/components/blueprint/InputGroup/InputGroup.story.d.ts +2 -0
  10. package/lib/components/blueprint/InputGroup/InputGroup.story.js +11 -0
  11. package/lib/components/blueprint/InputGroup/index.d.ts +1 -0
  12. package/lib/components/blueprint/InputGroup/index.js +4 -0
  13. package/lib/components/blueprint/InputSelect/InputSelect.d.ts +51 -0
  14. package/lib/components/blueprint/InputSelect/InputSelect.js +98 -0
  15. package/lib/components/blueprint/InputSelect/InputSelect.story.d.ts +3 -0
  16. package/lib/components/blueprint/InputSelect/InputSelect.story.js +19 -0
  17. package/lib/components/blueprint/InputSelect/index.d.ts +1 -0
  18. package/lib/components/blueprint/InputSelect/index.js +4 -0
  19. package/lib/components/blueprint/InputTime/InputTime.d.ts +24 -0
  20. package/lib/components/blueprint/InputTime/InputTime.js +28 -0
  21. package/lib/components/blueprint/InputTime/InputTime.story.d.ts +2 -0
  22. package/lib/components/blueprint/InputTime/InputTime.story.js +11 -0
  23. package/lib/components/blueprint/InputTime/index.d.ts +1 -0
  24. package/lib/components/blueprint/InputTime/index.js +4 -0
  25. package/lib/components/material-ui/DataTable/Data.js +1 -1
  26. package/lib/components/material-ui/DataTable/DataTable.d.ts +90 -7
  27. package/lib/components/material-ui/DataTable/DataTable.js +92 -67
  28. package/lib/components/material-ui/DataTable/DataTable.story.js +14 -2
  29. package/lib/components/material-ui/DataTable/SortIndicator.js +2 -2
  30. package/lib/components/material-ui/DataTable/TablePieces/AppliedFilters.d.ts +12 -0
  31. package/lib/components/material-ui/DataTable/TablePieces/AppliedFilters.js +26 -0
  32. package/lib/components/material-ui/DataTable/TablePieces/BodyCell.d.ts +10 -0
  33. package/lib/components/material-ui/DataTable/TablePieces/BodyCell.js +49 -0
  34. package/lib/components/material-ui/DataTable/TablePieces/BodyRow.d.ts +15 -0
  35. package/lib/components/material-ui/DataTable/TablePieces/BodyRow.js +88 -0
  36. package/lib/components/material-ui/DataTable/TablePieces/GlobalSearchFilter.d.ts +10 -0
  37. package/lib/components/material-ui/DataTable/TablePieces/GlobalSearchFilter.js +49 -0
  38. package/lib/components/material-ui/DataTable/TablePieces/HeaderCell.d.ts +12 -0
  39. package/lib/components/material-ui/DataTable/TablePieces/HeaderCell.js +55 -0
  40. package/lib/components/material-ui/DataTable/TablePieces/IndeterminateCheckbox.d.ts +4 -0
  41. package/lib/components/material-ui/DataTable/TablePieces/IndeterminateCheckbox.js +65 -0
  42. package/lib/components/material-ui/DataTable/TablePieces/SortIndicator.d.ts +10 -0
  43. package/lib/components/material-ui/DataTable/TablePieces/SortIndicator.js +33 -0
  44. package/lib/components/material-ui/DataTable/TablePieces/Table.d.ts +12 -0
  45. package/lib/components/material-ui/DataTable/TablePieces/Table.js +47 -0
  46. package/lib/components/material-ui/DataTable/TablePieces/TableBodyContent.d.ts +25 -0
  47. package/lib/components/material-ui/DataTable/TablePieces/TableBodyContent.js +71 -0
  48. package/lib/components/material-ui/DataTable/TablePieces/Toolbar.d.ts +24 -0
  49. package/lib/components/material-ui/DataTable/TablePieces/Toolbar.js +63 -0
  50. package/lib/components/material-ui/DataTable/TablePieces/ViewColumnTool.d.ts +11 -0
  51. package/lib/components/material-ui/DataTable/TablePieces/ViewColumnTool.js +76 -0
  52. package/lib/components/material-ui/DataTable/Utils.d.ts +25 -0
  53. package/lib/components/material-ui/DataTable/Utils.js +119 -0
  54. package/lib/components/material-ui/ErrorBoundary/ErrorBoundary.d.ts +7 -0
  55. package/lib/components/material-ui/ErrorBoundary/ErrorBoundary.js +20 -0
  56. package/lib/components/material-ui/ErrorBoundary/index.d.ts +1 -0
  57. package/lib/components/material-ui/ErrorBoundary/index.js +8 -0
  58. package/lib/services/Select.service.d.ts +5 -0
  59. package/lib/services/Select.service.js +67 -0
  60. package/package.json +5 -2
@@ -1,4 +1,7 @@
1
- import { Column, UseSortByColumnProps, HeaderGroup, UseSortByOptions, TableOptions, UseSortByColumnOptions, PluginHook, UsePaginationOptions, UseSortByInstanceProps, UsePaginationInstanceProps, TableInstance, TableState, UseSortByState, UsePaginationState, UseRowSelectOptions, UseRowSelectInstanceProps, UseRowSelectState, Row, UseRowSelectRowProps, UseExpandedOptions, UseExpandedInstanceProps, UseExpandedState, UseExpandedRowProps, UseGlobalFiltersInstanceProps, UseGlobalFiltersState, UseFiltersOptions, UseFiltersInstanceProps, UseFiltersState, UseFiltersColumnOptions, UseFiltersColumnProps, Renderer, FilterProps, UseTableOptions, UseGlobalFiltersOptions } from 'react-table';
1
+ /** @jsxRuntime classic */
2
+ /** @jsx jsx */
3
+ import { jsx } from '@emotion/react';
4
+ import { Column, UseSortByColumnProps, HeaderGroup, UseSortByOptions, TableOptions, UseSortByColumnOptions, PluginHook, UsePaginationOptions, UseSortByInstanceProps, UsePaginationInstanceProps, TableInstance, TableState, UseSortByState, UsePaginationState, UseRowSelectOptions, UseRowSelectInstanceProps, UseRowSelectState, ColumnInstance, Row, UseRowSelectRowProps, UseExpandedOptions, UseExpandedInstanceProps, UseExpandedState, UseExpandedRowProps, ActionType, UseGlobalFiltersInstanceProps, UseGlobalFiltersState, UseFiltersOptions, UseFiltersInstanceProps, UseFiltersState, UseFiltersColumnOptions, UseFiltersColumnProps, Renderer, FilterProps, UseTableOptions, UseGlobalFiltersOptions, UseResizeColumnsColumnOptions, UseResizeColumnsColumnProps, UseResizeColumnsState } from 'react-table';
2
5
  import { ReactNode } from 'react';
3
6
  export declare type Mode = 'single' | 'multi';
4
7
  export declare type CustomColumnConfigProps<D extends object> = {
@@ -6,19 +9,18 @@ export declare type CustomColumnConfigProps<D extends object> = {
6
9
  filterName?: string;
7
10
  columns?: EnhancedColumn<D>[];
8
11
  };
9
- export declare type EnhancedHeader<D extends object> = HeaderGroup<D> & UseFiltersColumnProps<D> & UseSortByColumnProps<D> & CustomColumnConfigProps<D>;
12
+ export declare type EnhancedHeader<D extends object> = HeaderGroup<D> & UseFiltersColumnProps<D> & UseSortByColumnProps<D> & UseResizeColumnsColumnProps<D> & CustomColumnConfigProps<D>;
10
13
  export declare type EnhancedTableOptions<D extends object> = TableOptions<D> & UseExpandedOptions<D> & UseFiltersOptions<D> & UseGlobalFiltersOptions<D> & UseSortByOptions<D> & UsePaginationOptions<D> & UseRowSelectOptions<D>;
11
14
  export declare type EnhancedTableInstance<D extends object> = Omit<TableInstance<D>, 'state'> & UseExpandedInstanceProps<D> & UseFiltersInstanceProps<D> & UseGlobalFiltersInstanceProps<D> & UseSortByInstanceProps<D> & UsePaginationInstanceProps<D> & UseRowSelectInstanceProps<D> & {
12
15
  state: EnhancedTableState<D>;
13
16
  };
14
- export declare type EnhancedTableState<D extends object> = TableState<D> & UseExpandedState<D> & UseFiltersState<D> & UseGlobalFiltersState<D> & UseSortByState<D> & UsePaginationState<D> & UseRowSelectState<D>;
15
- export declare type EnhancedColumn<D extends object> = CustomColumnConfigProps<D> & Partial<Omit<Column<D>, 'columns'>> & Partial<UseFiltersColumnOptions<D>> & Partial<UseSortByColumnOptions<D>>;
17
+ export declare type EnhancedTableState<D extends object> = TableState<D> & UseExpandedState<D> & UseFiltersState<D> & UseGlobalFiltersState<D> & UseSortByState<D> & UsePaginationState<D> & UseRowSelectState<D> & UseResizeColumnsState<D>;
18
+ export declare type EnhancedColumn<D extends object> = CustomColumnConfigProps<D> & Partial<Omit<Column<D>, 'columns'>> & Partial<UseFiltersColumnOptions<D>> & Partial<UseSortByColumnOptions<D>> & Partial<UseResizeColumnsColumnOptions<D>>;
16
19
  export declare type EnhancedRow<D extends object> = Row<D> & UseExpandedRowProps<D> & UseRowSelectRowProps<D>;
17
20
  export interface TableFeatureOptions<D extends object> {
18
21
  rowExpanding?: {
19
22
  enabled: boolean;
20
23
  mode: Mode;
21
- colSpan?: number;
22
24
  Component: (props: {
23
25
  data: D;
24
26
  }) => JSX.Element;
@@ -34,6 +36,9 @@ export interface TableFeatureOptions<D extends object> {
34
36
  columnHiding?: {
35
37
  enabled: boolean;
36
38
  };
39
+ columnResizing?: {
40
+ enabled: boolean;
41
+ };
37
42
  pagination?: {
38
43
  enabled: boolean;
39
44
  pageSize?: number;
@@ -49,13 +54,17 @@ export interface TableFeatureOptions<D extends object> {
49
54
  table?: {
50
55
  getRowId?: UseTableOptions<D>['getRowId'];
51
56
  };
57
+ virtualize?: {
58
+ enabled: boolean;
59
+ defaultRowHeight?: number;
60
+ };
52
61
  }
62
+ export declare const CELL_PADDING = 4;
53
63
  interface Props<D extends object> {
54
64
  title?: string;
55
65
  'data-testid'?: string;
56
66
  labels?: {
57
67
  noMatchLabel?: string;
58
- noMatchColSpan?: number;
59
68
  };
60
69
  columns: Partial<EnhancedColumn<D>>[];
61
70
  instance: EnhancedTableInstance<D>;
@@ -70,8 +79,82 @@ export interface UseDefaultTableInstanceProps<D extends object> {
70
79
  data: D[];
71
80
  options?: TableFeatureOptions<D>;
72
81
  initialState?: Partial<EnhancedTableState<D>>;
82
+ defaultColumn?: Partial<Column<D>>;
73
83
  }
74
- export declare function useDefaultTableInstance<D extends object>({ columns, data, options, initialState, }: UseDefaultTableInstanceProps<D>): EnhancedTableInstance<D>;
84
+ export declare function useDefaultTableInstance<D extends object>({ columns, data, options, initialState, defaultColumn, }: UseDefaultTableInstanceProps<D>): {
85
+ setColumnWidth: (columnId: string, width: number) => void;
86
+ data: readonly D[];
87
+ columns: ColumnInstance<D>[];
88
+ headers: ColumnInstance<D>[];
89
+ rows: Row<D>[];
90
+ plugins: PluginHook<D>[];
91
+ allColumns: ColumnInstance<D>[];
92
+ initialState?: Partial<TableState<D>> | undefined;
93
+ stateReducer?: ((newState: TableState<D>, action: ActionType, previousState: TableState<D>, instance?: TableInstance<D> | undefined) => TableState<D>) | undefined;
94
+ useControlledState?: ((state: TableState<D>, meta: import("react-table").MetaBase<D>) => TableState<D>) | undefined;
95
+ defaultColumn?: Partial<Column<D>> | undefined;
96
+ getSubRows?: ((originalRow: D, relativeIndex: number) => D[]) | undefined;
97
+ getRowId?: ((originalRow: D, relativeIndex: number, parent?: Row<D> | undefined) => string) | undefined;
98
+ autoResetHiddenColumns?: boolean | undefined;
99
+ dispatch: import("react-table").TableDispatch<any>;
100
+ visibleColumns: ColumnInstance<D>[];
101
+ headerGroups: HeaderGroup<D>[];
102
+ footerGroups: HeaderGroup<D>[];
103
+ flatHeaders: ColumnInstance<D>[];
104
+ rowsById: Record<string, Row<D>>;
105
+ getTableProps: (propGetter?: import("react-table").TablePropGetter<D> | undefined) => import("react-table").TableProps;
106
+ getTableBodyProps: (propGetter?: import("react-table").TableBodyPropGetter<D> | undefined) => import("react-table").TableBodyProps;
107
+ prepareRow: (row: Row<D>) => void;
108
+ flatRows: Row<D>[];
109
+ totalColumnsWidth: number;
110
+ allColumnsHidden: boolean;
111
+ toggleHideColumn: (columnId: import("react-table").IdType<D>, value?: boolean | undefined) => void;
112
+ setHiddenColumns: (param: import("react-table").IdType<D>[] | ((oldHidden: import("react-table").IdType<D>[]) => import("react-table").IdType<D>[])) => void;
113
+ toggleHideAllColumns: (value?: boolean | undefined) => void;
114
+ getToggleHideAllColumnsProps: (props?: Partial<import("react-table").TableToggleHideAllColumnProps> | undefined) => import("react-table").TableToggleHideAllColumnProps;
115
+ getHooks: () => import("react-table").Hooks<D>;
116
+ preExpandedRows: Row<D>[];
117
+ expandedRows: Row<D>[];
118
+ expandedDepth: number;
119
+ isAllRowsExpanded: boolean;
120
+ toggleRowExpanded: (id: import("react-table").IdType<D>[], value?: boolean | undefined) => void;
121
+ toggleAllRowsExpanded: (value?: boolean | undefined) => void;
122
+ preFilteredRows: Row<D>[];
123
+ preFilteredFlatRows: Row<D>[];
124
+ preFilteredRowsById: Record<string, Row<D>>;
125
+ filteredRows: Row<D>[];
126
+ filteredFlatRows: Row<D>[];
127
+ filteredRowsById: Record<string, Row<D>>;
128
+ setFilter: (columnId: import("react-table").IdType<D>, updater: any) => void;
129
+ setAllFilters: (updater: import("react-table").Filters<D> | ((filters: import("react-table").Filters<D>) => import("react-table").Filters<D>)) => void;
130
+ preGlobalFilteredRows: Row<D>[];
131
+ preGlobalFilteredFlatRows: Row<D>[];
132
+ preGlobalFilteredRowsById: Record<string, Row<D>>;
133
+ globalFilteredRows: Row<D>[];
134
+ globalFilteredFlatRows: Row<D>[];
135
+ globalFilteredRowsById: Record<string, Row<D>>;
136
+ setGlobalFilter: (filterValue: any) => void;
137
+ preSortedRows: Row<D>[];
138
+ setSortBy: (sortBy: import("react-table").SortingRule<D>[]) => void;
139
+ toggleSortBy: (columnId: import("react-table").IdType<D>, descending?: boolean | undefined, isMulti?: boolean | undefined) => void;
140
+ page: Row<D>[];
141
+ pageCount: number;
142
+ pageOptions: number[];
143
+ canPreviousPage: boolean;
144
+ canNextPage: boolean;
145
+ gotoPage: (updater: number | ((pageIndex: number) => number)) => void;
146
+ previousPage: () => void;
147
+ nextPage: () => void;
148
+ setPageSize: (pageSize: number) => void;
149
+ toggleRowSelected: (rowId: import("react-table").IdType<D>, set?: boolean | undefined) => void;
150
+ toggleAllRowsSelected: (value?: boolean | undefined) => void;
151
+ getToggleAllRowsSelectedProps: (props?: Partial<import("react-table").TableToggleAllRowsSelectedProps> | undefined) => import("react-table").TableToggleAllRowsSelectedProps;
152
+ getToggleAllPageRowsSelectedProps: (props?: Partial<import("react-table").TableToggleAllRowsSelectedProps> | undefined) => import("react-table").TableToggleAllRowsSelectedProps;
153
+ isAllRowsSelected: boolean;
154
+ selectedFlatRows: Row<D>[];
155
+ state: EnhancedTableState<D>;
156
+ };
157
+ export declare function renderSingleLineCell(value: string): jsx.JSX.Element;
75
158
  export declare type FilterType = 'text' | 'select' | 'multi-select' | 'range';
76
159
  export declare function getColumnFilterConfig<D extends object>(filterType: FilterType): {
77
160
  filter: string;
@@ -73,35 +73,48 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
73
73
  return (mod && mod.__esModule) ? mod : { "default": mod };
74
74
  };
75
75
  Object.defineProperty(exports, "__esModule", { value: true });
76
- exports.getColumnFilterConfig = exports.useDefaultTableInstance = exports.usePluginConfig = void 0;
76
+ exports.getColumnFilterConfig = exports.renderSingleLineCell = exports.useDefaultTableInstance = exports.usePluginConfig = exports.CELL_PADDING = void 0;
77
77
  /** @jsxRuntime classic */
78
78
  /** @jsx jsx */
79
79
  var react_1 = require("@emotion/react");
80
80
  var immer_1 = __importDefault(require("immer"));
81
81
  var material_1 = require("@mui/material");
82
- var classnames_1 = __importDefault(require("classnames"));
83
82
  var icons_material_1 = require("@mui/icons-material");
84
83
  var react_table_1 = require("react-table");
85
- var IndeterminateCheckbox_1 = __importStar(require("./IndeterminateCheckbox"));
86
- var SortIndicator_1 = __importDefault(require("./SortIndicator"));
87
- var Toolbar_1 = __importDefault(require("./Toolbar"));
84
+ var IndeterminateCheckbox_1 = __importStar(require("./TablePieces/IndeterminateCheckbox"));
85
+ var Toolbar_1 = __importDefault(require("./TablePieces/Toolbar"));
88
86
  var react_2 = require("react");
89
- var AppliedFilters_1 = __importDefault(require("./AppliedFilters"));
87
+ var AppliedFilters_1 = __importDefault(require("./TablePieces/AppliedFilters"));
90
88
  var lodash_1 = require("lodash");
91
89
  var SingleSelectFilter_1 = __importDefault(require("./FilterTool/Filters/SingleSelectFilter"));
92
90
  var MultiSelectFilter_1 = __importDefault(require("./FilterTool/Filters/MultiSelectFilter"));
93
91
  var RangeFilter_1 = __importDefault(require("./FilterTool/Filters/RangeFilter"));
94
92
  var TextFilter_1 = __importDefault(require("./FilterTool/Filters/TextFilter"));
95
- var CELL_PADDING = 4;
93
+ var hooks_1 = require("@vendorflow/common/lib/hooks");
94
+ var react_scrollbar_size_1 = __importDefault(require("react-scrollbar-size"));
95
+ var Table_1 = __importDefault(require("./TablePieces/Table"));
96
+ var HeaderCell_1 = __importDefault(require("./TablePieces/HeaderCell"));
97
+ var TableBodyContent_1 = __importDefault(require("./TablePieces/TableBodyContent"));
98
+ exports.CELL_PADDING = 4;
96
99
  var EXPAND_BTN_WIDTH = 24;
97
100
  var NO_MATCH_TEXT = 'Sorry, no matching records found';
98
101
  function DataTable(_a) {
99
102
  var _b;
100
103
  var title = _a.title, labels = _a.labels, columns = _a.columns, instance = _a.instance, options = _a.options, renderActions = _a.renderActions, renderRowSelectActions = _a.renderRowSelectActions, restOfProps = __rest(_a, ["title", "labels", "columns", "instance", "options", "renderActions", "renderRowSelectActions"]);
101
- var _c = labels || { noMatchLabel: NO_MATCH_TEXT }, _d = _c.noMatchLabel, noMatchLabel = _d === void 0 ? NO_MATCH_TEXT : _d, noMatchColSpan = _c.noMatchColSpan;
102
- var _e = options || {}, rowExpandingConfig = _e.rowExpanding, filtersConfig = _e.filters, globalSearchConfig = _e.globalSearch, columnHidingConfig = _e.columnHiding, paginationConfig = _e.pagination, rowSelectConfig = _e.rowSelect, sortingConfig = _e.sorting;
104
+ var tableHeadRef = (0, react_2.useRef)(null);
105
+ var tableBodyRef = (0, react_2.useRef)(null);
106
+ var scrollContainerRef = (0, react_2.useRef)(null);
107
+ var _c = (0, hooks_1.useMeasure)(), tableBodyMeasureRefCallback = _c.ref, tableBodyContentRect = _c.contentRect;
108
+ var _d = (0, hooks_1.useMeasure)(), rootRef = _d.ref, rootContentRect = _d.contentRect;
109
+ var _e = (0, hooks_1.useMeasure)(), toolbarRef = _e.ref, toolbarContentRect = _e.contentRect;
110
+ var _f = (0, hooks_1.useMeasure)(), paginationRef = _f.ref, paginationContentRect = _f.contentRect;
111
+ var _g = (0, hooks_1.useHasScrollbar)(), hasScrollbarRefCallback = _g.ref, hasScrollbar = _g.hasScrollbar;
112
+ var scrollbarWidth = (0, react_scrollbar_size_1.default)().width;
113
+ var _h = __read((0, react_2.useState)(0), 2), scrollLeft = _h[0], setScrollLeft = _h[1];
114
+ var _j = (labels || { noMatchLabel: NO_MATCH_TEXT }).noMatchLabel, noMatchLabel = _j === void 0 ? NO_MATCH_TEXT : _j;
115
+ var _k = options || {}, rowExpandingConfig = _k.rowExpanding, filtersConfig = _k.filters, globalSearchConfig = _k.globalSearch, columnHidingConfig = _k.columnHiding, paginationConfig = _k.pagination, sortingConfig = _k.sorting, virtualizeConfig = _k.virtualize;
103
116
  var ExpandedComponent = (rowExpandingConfig || {}).Component;
104
- var allColumns = instance.allColumns, getTableProps = instance.getTableProps, gotoPage = instance.gotoPage, headerGroups = instance.headerGroups, page = instance.page, prepareRow = instance.prepareRow, rows = instance.rows, setAllFilters = instance.setAllFilters, setPageSize = instance.setPageSize, setFilter = instance.setFilter, setGlobalFilter = instance.setGlobalFilter, state = instance.state, visibleColumns = instance.visibleColumns;
117
+ var allColumns = instance.allColumns, getTableProps = instance.getTableProps, gotoPage = instance.gotoPage, headerGroups = instance.headerGroups, page = instance.page, prepareRow = instance.prepareRow, rows = instance.rows, setAllFilters = instance.setAllFilters, setPageSize = instance.setPageSize, setFilter = instance.setFilter, setGlobalFilter = instance.setGlobalFilter, state = instance.state, totalColumnsWidth = instance.totalColumnsWidth;
105
118
  var pageOptions = ((_b = options === null || options === void 0 ? void 0 : options.pagination) === null || _b === void 0 ? void 0 : _b.rowsPerPageOptions) || instance.pageOptions;
106
119
  var columnNameById = (0, react_2.useMemo)(function () {
107
120
  var result = {};
@@ -130,65 +143,53 @@ function DataTable(_a) {
130
143
  addNamesToMap(columns, result);
131
144
  return result;
132
145
  }, [columns]);
133
- var _f = state, filters = _f.filters, globalFilter = _f.globalFilter, pageIndex = _f.pageIndex, pageSize = _f.pageSize, selectedRowIds = _f.selectedRowIds;
134
- var _g = (0, react_2.useMemo)(function () {
146
+ var _l = state, filters = _l.filters, globalFilter = _l.globalFilter, pageIndex = _l.pageIndex, pageSize = _l.pageSize, selectedRowIds = _l.selectedRowIds;
147
+ var _m = (0, react_2.useMemo)(function () {
135
148
  var hasRowsSelected = lodash_1.values != null ? (0, lodash_1.values)(selectedRowIds).some(Boolean) : false;
136
149
  var numRowsSelected = lodash_1.values != null ? (0, lodash_1.values)(selectedRowIds).filter(Boolean).length : 0;
137
150
  return { hasRowsSelected: hasRowsSelected, numRowsSelected: numRowsSelected };
138
- }, [selectedRowIds]), hasRowsSelected = _g.hasRowsSelected, numRowsSelected = _g.numRowsSelected;
151
+ }, [selectedRowIds]), hasRowsSelected = _m.hasRowsSelected, numRowsSelected = _m.numRowsSelected;
139
152
  var tableRows = (paginationConfig === null || paginationConfig === void 0 ? void 0 : paginationConfig.enabled) ? page : rows;
140
- return ((0, react_1.jsx)(react_1.ClassNames, null, function (_a) {
141
- var css = _a.css, cx = _a.cx;
142
- return ((0, react_1.jsx)(material_1.Paper, __assign({ css: css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: 100%;\n position: relative;\n "], ["\n width: 100%;\n position: relative;\n "]))), className: "vendorflow-table" }, restOfProps),
143
- (0, react_1.jsx)("div", null,
144
- (0, react_1.jsx)(Toolbar_1.default, { title: title, allColumns: allColumns, columnNameById: columnNameById, globalFilter: globalFilter, enableFilters: filtersConfig === null || filtersConfig === void 0 ? void 0 : filtersConfig.enabled, enableGlobalSearch: globalSearchConfig === null || globalSearchConfig === void 0 ? void 0 : globalSearchConfig.enabled, enableHideColumns: columnHidingConfig === null || columnHidingConfig === void 0 ? void 0 : columnHidingConfig.enabled, hasRowsSelected: hasRowsSelected, numRowsSelected: numRowsSelected, setAllFilters: setAllFilters, setGlobalFilter: (globalSearchConfig === null || globalSearchConfig === void 0 ? void 0 : globalSearchConfig.setGlobalFilter) ? globalSearchConfig === null || globalSearchConfig === void 0 ? void 0 : globalSearchConfig.setGlobalFilter : setGlobalFilter, renderActions: renderActions, renderRowSelectActions: renderRowSelectActions }),
145
- (filtersConfig === null || filtersConfig === void 0 ? void 0 : filtersConfig.enabled) && ((0, react_1.jsx)(AppliedFilters_1.default, { columnNameById: columnNameById, filters: filters, setFilter: setFilter }))),
146
- (0, react_1.jsx)(material_1.TableContainer, null,
147
- (0, react_1.jsx)(material_1.Table, __assign({}, getTableProps(), { size: "small", "aria-label": "table" }),
148
- (0, react_1.jsx)(material_1.TableHead, null, headerGroups.map(function (headerGroup) {
149
- return (
150
- // @ts-ignore
151
- // eslint-disable-next-line react/jsx-key
152
- (0, react_1.jsx)(material_1.TableRow, __assign({}, headerGroup.getHeaderGroupProps()), headerGroup.headers.map(function (column) {
153
- var col = column;
154
- var _a = col.getHeaderProps((sortingConfig === null || sortingConfig === void 0 ? void 0 : sortingConfig.enabled) ? col.getSortByToggleProps() : undefined), key = _a.key, restOfProps = __rest(_a, ["key"]);
155
- return (
156
- // @ts-ignore
157
- (0, react_1.jsx)(material_1.TableCell, __assign({ key: key }, restOfProps, { css: cx(col.id === 'custom' && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: -webkit-sticky;\n position: sticky;\n background-color: white;\n left: 0;\n width: ", ";\n "], ["\n position: -webkit-sticky;\n position: sticky;\n background-color: white;\n left: 0;\n width: ", ";\n "])), (rowExpandingConfig === null || rowExpandingConfig === void 0 ? void 0 : rowExpandingConfig.enabled) && (rowSelectConfig === null || rowSelectConfig === void 0 ? void 0 : rowSelectConfig.enabled)
158
- ? CELL_PADDING * 2 + EXPAND_BTN_WIDTH + IndeterminateCheckbox_1.CHECKBOX_WIDTH + 'px'
159
- : Math.max(EXPAND_BTN_WIDTH, IndeterminateCheckbox_1.CHECKBOX_WIDTH) + CELL_PADDING * 2 + 'px'), css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n && {\n padding: ", "px;\n }\n "], ["\n && {\n padding: ", "px;\n }\n "])), CELL_PADDING)), className: "col-" + col.id }),
160
- (0, react_1.jsx)("div", { css: css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n display: flex;\n flex-direction: row;\n justify-content: ", ";\n align-items: center;\n "], ["\n display: flex;\n flex-direction: row;\n justify-content: ", ";\n align-items: center;\n "])), col.columns != null ? 'center' : 'flex-start') },
161
- (0, react_1.jsx)("span", { css: cx(css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n font-weight: 600;\n "], ["\n font-weight: 600;\n "]))), col.minWidth !== undefined && css(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n min-width: ", "px;\n "], ["\n min-width: ", "px;\n "])), col.minWidth), col.maxWidth !== undefined && css(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n max-width: ", "px;\n "], ["\n max-width: ", "px;\n "])), col.maxWidth)) }, col.render('Header')),
162
- (0, react_1.jsx)(SortIndicator_1.default, { canSort: col.canSort, isSorted: col.isSorted, isSortedDesc: col.isSortedDesc }))));
163
- })));
164
- })),
165
- (0, react_1.jsx)(material_1.TableBody, null, tableRows.length > 0 ? (tableRows.map(function (row) {
166
- prepareRow(row);
167
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
168
- var _a = row.getRowProps(), style = _a.style, key = _a.key, restOfRowProps = __rest(_a, ["style", "key"]);
169
- var isExpanded = row.isExpanded;
170
- return ((0, react_1.jsx)(react_2.Fragment, { key: key },
171
- (0, react_1.jsx)(material_1.TableRow, __assign({}, restOfRowProps), row.cells.map(function (cell) {
172
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
173
- var _a = cell.getCellProps(), style = _a.style, key = _a.key, className = _a.className, restOfCellProps = __rest(_a, ["style", "key", "className"]);
174
- return ((0, react_1.jsx)(material_1.TableCell, __assign({ css: cx(cell.column.id === 'custom' && css(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n position: -webkit-sticky;\n position: sticky;\n background-color: white;\n left: 0;\n "], ["\n position: -webkit-sticky;\n position: sticky;\n background-color: white;\n left: 0;\n "]))), css(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n && {\n padding: ", "px;\n }\n "], ["\n && {\n padding: ", "px;\n }\n "])), CELL_PADDING)), className: (0, classnames_1.default)(className, cell.column.id === 'custom' ? 'cell-Custom' : undefined), key: key }, restOfCellProps), cell.render('Cell')));
175
- })),
176
- isExpanded && ((0, react_1.jsx)(material_1.TableRow, null,
177
- (0, react_1.jsx)(material_1.TableCell, { colSpan: (rowExpandingConfig === null || rowExpandingConfig === void 0 ? void 0 : rowExpandingConfig.colSpan) || visibleColumns.length },
178
- (0, react_1.jsx)(ExpandedComponent, { data: row.original }))))));
179
- })) : ((0, react_1.jsx)(material_1.TableRow, null,
180
- (0, react_1.jsx)(material_1.TableCell, { colSpan: noMatchColSpan || visibleColumns.length },
181
- (0, react_1.jsx)("div", { css: css(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n text-align: center;\n "], ["\n text-align: center;\n "]))) },
182
- (0, react_1.jsx)("span", null, noMatchLabel))),
183
- noMatchColSpan != null && noMatchColSpan > 0 && visibleColumns.length - noMatchColSpan > 0 && ((0, react_1.jsx)(material_1.TableCell, { colSpan: visibleColumns.length - noMatchColSpan }))))))),
184
- (paginationConfig === null || paginationConfig === void 0 ? void 0 : paginationConfig.enabled) && ((0, react_1.jsx)(material_1.TablePagination, { component: "div", count: rows.length, page: pageIndex, onPageChange: function (evt, newPage) { return gotoPage(newPage); }, onRowsPerPageChange: function (evt) { return setPageSize(Number(evt.target.value)); }, rowsPerPage: pageSize, rowsPerPageOptions: pageOptions }))));
185
- }));
153
+ var containerHeight = (rootContentRect.height || 0) - (toolbarContentRect.height || 0) - (paginationContentRect.height || 0);
154
+ var defaultRowHeight = (virtualizeConfig === null || virtualizeConfig === void 0 ? void 0 : virtualizeConfig.defaultRowHeight) || 50;
155
+ (0, react_2.useEffect)(function () {
156
+ if (tableHeadRef.current) {
157
+ tableHeadRef.current.scrollTo({ left: scrollLeft, behavior: 'auto' });
158
+ }
159
+ if (scrollContainerRef.current) {
160
+ scrollContainerRef.current.scrollTo({ left: scrollLeft, behavior: 'auto' });
161
+ }
162
+ }, [scrollLeft]);
163
+ return ((0, react_1.jsx)(material_1.Paper, __assign({ ref: rootRef, css: (0, react_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: calc(100% - ", "px);\n height: 100%;\n position: relative;\n "], ["\n width: calc(100% - ", "px);\n height: 100%;\n position: relative;\n "])), hasScrollbar.vertical ? scrollbarWidth : 0), className: "DataTable" }, restOfProps),
164
+ (0, react_1.jsx)("div", { ref: toolbarRef, className: "DataTable__Toolbar" },
165
+ (0, react_1.jsx)(Toolbar_1.default, { title: title, allColumns: allColumns, columnNameById: columnNameById, globalFilter: globalFilter, enableFilters: filtersConfig === null || filtersConfig === void 0 ? void 0 : filtersConfig.enabled, enableGlobalSearch: globalSearchConfig === null || globalSearchConfig === void 0 ? void 0 : globalSearchConfig.enabled, enableHideColumns: columnHidingConfig === null || columnHidingConfig === void 0 ? void 0 : columnHidingConfig.enabled, hasRowsSelected: hasRowsSelected, numRowsSelected: numRowsSelected, setAllFilters: setAllFilters, setGlobalFilter: (globalSearchConfig === null || globalSearchConfig === void 0 ? void 0 : globalSearchConfig.setGlobalFilter) ? globalSearchConfig === null || globalSearchConfig === void 0 ? void 0 : globalSearchConfig.setGlobalFilter : setGlobalFilter, renderActions: renderActions, renderRowSelectActions: renderRowSelectActions }),
166
+ (filtersConfig === null || filtersConfig === void 0 ? void 0 : filtersConfig.enabled) && ((0, react_1.jsx)(AppliedFilters_1.default, { columnNameById: columnNameById, filters: filters, setFilter: setFilter }))),
167
+ (0, react_1.jsx)("div", { className: "DataTable__TableContainer", css: (0, react_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n height: ", "px;\n "], ["\n height: ", "px;\n "])), containerHeight) },
168
+ (0, react_1.jsx)(Table_1.default, { getTableProps: getTableProps, css: (0, react_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n width: 100%;\n display: grid;\n grid-template-rows: auto 1fr;\n "], ["\n width: 100%;\n display: grid;\n grid-template-rows: auto 1fr;\n "]))) },
169
+ (0, react_1.jsx)(material_1.TableHead, { ref: tableHeadRef, className: "DataTable__TableHead", component: "div", css: (0, react_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n && {\n display: block;\n height: auto;\n width: calc(100% - ", "px);\n overflow-x: auto;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n\n &::-webkit-scrollbar {\n /* Hide scrollbar for Chrome, Safari and Opera */\n display: none;\n }\n }\n "], ["\n && {\n display: block;\n height: auto;\n width: calc(100% - ", "px);\n overflow-x: auto;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n\n &::-webkit-scrollbar {\n /* Hide scrollbar for Chrome, Safari and Opera */\n display: none;\n }\n }\n "])), hasScrollbar.vertical ? scrollbarWidth : 0), onScroll: function (evt) {
170
+ var scrollLeft = evt.target.scrollLeft;
171
+ setScrollLeft(scrollLeft);
172
+ } }, headerGroups.map(function (headerGroup) {
173
+ return (
174
+ // @ts-ignore
175
+ // eslint-disable-next-line react/jsx-key
176
+ (0, react_1.jsx)(material_1.TableRow, __assign({}, headerGroup.getHeaderGroupProps(), { component: "div" }), headerGroup.headers.map(function (header) {
177
+ var _a = header.getHeaderProps((sortingConfig === null || sortingConfig === void 0 ? void 0 : sortingConfig.enabled) ? header.getSortByToggleProps() : undefined), key = _a.key, restOfHeaderProps = __rest(_a, ["key"]);
178
+ return (0, react_1.jsx)(HeaderCell_1.default, { key: key, header: header, headerProps: restOfHeaderProps });
179
+ })));
180
+ })),
181
+ (0, react_1.jsx)(TableBodyContent_1.default, { defaultRowHeight: defaultRowHeight, ExpandedComponent: ExpandedComponent, hasScrollbarRefCallback: hasScrollbarRefCallback, height: tableBodyContentRect.height, isVirtualizeEnabled: !!(virtualizeConfig === null || virtualizeConfig === void 0 ? void 0 : virtualizeConfig.enabled), noMatchLabel: noMatchLabel, prepareRow: prepareRow, scrollContainerRef: scrollContainerRef, setScrollLeft: setScrollLeft, tableBodyRef: tableBodyRef, tableBodyMeasureRefCallback: tableBodyMeasureRefCallback, tableRows: tableRows, totalColumnsWidth: totalColumnsWidth, width: tableBodyContentRect.width }))),
182
+ (paginationConfig === null || paginationConfig === void 0 ? void 0 : paginationConfig.enabled) && ((0, react_1.jsx)(material_1.TablePagination, { ref: paginationRef, className: "DataTable__Pagination", component: "div", count: rows.length, page: pageIndex, onPageChange: function (evt, newPage) { return gotoPage(newPage); }, onRowsPerPageChange: function (evt) { return setPageSize(Number(evt.target.value)); }, rowsPerPage: pageSize, rowsPerPageOptions: pageOptions }))));
186
183
  }
187
184
  exports.default = DataTable;
188
185
  function usePluginConfig(options) {
189
- var filters = options.filters, globalSearch = options.globalSearch, pagination = options.pagination, rowExpanding = options.rowExpanding, sorting = options.sorting, rowSelect = options.rowSelect, columnHiding = options.columnHiding;
186
+ var filters = options.filters, globalSearch = options.globalSearch, pagination = options.pagination, rowExpanding = options.rowExpanding, sorting = options.sorting, rowSelect = options.rowSelect, columnHiding = options.columnHiding, columnResizing = options.columnResizing, virtualize = options.virtualize;
187
+ var customCellWidth = (rowExpanding === null || rowExpanding === void 0 ? void 0 : rowExpanding.enabled) && (rowSelect === null || rowSelect === void 0 ? void 0 : rowSelect.enabled)
188
+ ? exports.CELL_PADDING * 2 + EXPAND_BTN_WIDTH + IndeterminateCheckbox_1.CHECKBOX_WIDTH
189
+ : Math.max(EXPAND_BTN_WIDTH, IndeterminateCheckbox_1.CHECKBOX_WIDTH) + exports.CELL_PADDING * 2;
190
190
  return (0, react_2.useMemo)(function () {
191
191
  var result = [];
192
+ result.push(react_table_1.useBlockLayout);
192
193
  if (filters === null || filters === void 0 ? void 0 : filters.enabled) {
193
194
  result.push(react_table_1.useFilters);
194
195
  }
@@ -207,16 +208,22 @@ function usePluginConfig(options) {
207
208
  if (rowSelect === null || rowSelect === void 0 ? void 0 : rowSelect.enabled) {
208
209
  result.push(react_table_1.useRowSelect);
209
210
  }
211
+ if (columnResizing === null || columnResizing === void 0 ? void 0 : columnResizing.enabled) {
212
+ result.push(react_table_1.useResizeColumns);
213
+ }
210
214
  // column customizations
211
215
  if ((rowSelect === null || rowSelect === void 0 ? void 0 : rowSelect.enabled) || (rowExpanding === null || rowExpanding === void 0 ? void 0 : rowExpanding.enabled)) {
212
216
  result.push(function (hooks) {
213
217
  hooks.visibleColumns.push(function (columns) { return __spreadArray([
214
218
  {
215
219
  id: 'custom',
220
+ width: customCellWidth,
221
+ minWidth: customCellWidth,
222
+ maxWidth: customCellWidth,
216
223
  Header: function (props) {
217
224
  var _a = props, getToggleAllRowsSelectedProps = _a.getToggleAllRowsSelectedProps, getToggleAllPageRowsSelectedProps = _a.getToggleAllPageRowsSelectedProps;
218
225
  return ((0, react_1.jsx)(react_2.Fragment, null,
219
- (rowExpanding === null || rowExpanding === void 0 ? void 0 : rowExpanding.enabled) && ((0, react_1.jsx)("span", { css: (0, react_1.css)(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n padding: ", "px;\n "], ["\n padding: ", "px;\n "])), EXPAND_BTN_WIDTH / 2) })),
226
+ (rowExpanding === null || rowExpanding === void 0 ? void 0 : rowExpanding.enabled) && ((0, react_1.jsx)("span", { css: (0, react_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n padding: ", "px;\n "], ["\n padding: ", "px;\n "])), EXPAND_BTN_WIDTH / 2) })),
220
227
  (rowSelect === null || rowSelect === void 0 ? void 0 : rowSelect.enabled) && (rowSelect === null || rowSelect === void 0 ? void 0 : rowSelect.mode) === 'multi' ? (
221
228
  // @ts-ignore
222
229
  (0, react_1.jsx)(IndeterminateCheckbox_1.default, __assign({}, ((pagination === null || pagination === void 0 ? void 0 : pagination.enabled) ? getToggleAllPageRowsSelectedProps() : getToggleAllRowsSelectedProps()), {
@@ -228,8 +235,8 @@ function usePluginConfig(options) {
228
235
  return ((0, react_1.jsx)(react_2.Fragment, null,
229
236
  (rowExpanding === null || rowExpanding === void 0 ? void 0 : rowExpanding.enabled) && (
230
237
  // @ts-ignore
231
- (0, react_1.jsx)(material_1.IconButton, __assign({}, getToggleRowExpandedProps(), { css: (0, react_1.css)(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n &.MuiIconButton-root {\n padding: 0;\n }\n "], ["\n &.MuiIconButton-root {\n padding: 0;\n }\n "]))), size: "small" }),
232
- (0, react_1.jsx)(icons_material_1.KeyboardArrowRight, { css: (0, react_1.css)(templateObject_13 || (templateObject_13 = __makeTemplateObject(["\n transform: rotate3d(0, 0, 1, ", ");\n transition: transform 0.25s;\n "], ["\n transform: rotate3d(0, 0, 1, ", ");\n transition: transform 0.25s;\n "])), isExpanded ? '90deg' : '0deg') }))),
238
+ (0, react_1.jsx)(material_1.IconButton, __assign({}, getToggleRowExpandedProps(), { css: (0, react_1.css)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n &.MuiIconButton-root {\n padding: 0;\n }\n "], ["\n &.MuiIconButton-root {\n padding: 0;\n }\n "]))), size: "small" }),
239
+ (0, react_1.jsx)(icons_material_1.KeyboardArrowRight, { css: (0, react_1.css)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n transform: rotate3d(0, 0, 1, ", ");\n transition: transform 0.25s;\n "], ["\n transform: rotate3d(0, 0, 1, ", ");\n transition: transform 0.25s;\n "])), isExpanded ? '90deg' : '0deg') }))),
233
240
  (rowSelect === null || rowSelect === void 0 ? void 0 : rowSelect.enabled) && ((0, react_1.jsx)(IndeterminateCheckbox_1.default, __assign({ name: index.toString() }, getToggleRowSelectedProps(), {
234
241
  // @ts-ignore
235
242
  size: "small" })))));
@@ -239,11 +246,11 @@ function usePluginConfig(options) {
239
246
  });
240
247
  }
241
248
  return result;
242
- }, [rowExpanding, rowSelect, columnHiding, sorting, filters, globalSearch, pagination]);
249
+ }, [rowExpanding, rowSelect, columnHiding, sorting, filters, globalSearch, pagination, virtualize]);
243
250
  }
244
251
  exports.usePluginConfig = usePluginConfig;
245
252
  function useDefaultTableInstance(_a) {
246
- var columns = _a.columns, data = _a.data, _b = _a.options, options = _b === void 0 ? {} : _b, _c = _a.initialState, initialState = _c === void 0 ? {} : _c;
253
+ var columns = _a.columns, data = _a.data, _b = _a.options, options = _b === void 0 ? {} : _b, _c = _a.initialState, initialState = _c === void 0 ? {} : _c, defaultColumn = _a.defaultColumn;
247
254
  var filterTypes = (0, react_2.useMemo)(function () { return ({
248
255
  equalsOneOf: function (rows, ids, filterValue) {
249
256
  return rows.filter(function (row) {
@@ -281,6 +288,14 @@ function useDefaultTableInstance(_a) {
281
288
  });
282
289
  }
283
290
  }
291
+ if (action.type === 'manuallySetColumnWidth') {
292
+ var _c = action, columnId_1 = _c.columnId, width_1 = _c.width;
293
+ newState = (0, immer_1.default)(newState, function (draft) {
294
+ // @ts-ignore
295
+ ;
296
+ draft.columnResizing.columnWidths[columnId_1] = width_1;
297
+ });
298
+ }
284
299
  return newState;
285
300
  }
286
301
  var plugins = usePluginConfig(options);
@@ -300,18 +315,28 @@ function useDefaultTableInstance(_a) {
300
315
  }
301
316
  var getRowId = ((options === null || options === void 0 ? void 0 : options.table) || {}).getRowId;
302
317
  var _e = ((options === null || options === void 0 ? void 0 : options.rowExpanding) || {}).autoResetExpanded, autoResetExpanded = _e === void 0 ? true : _e;
303
- return react_table_1.useTable.apply(void 0, __spreadArray([{
318
+ var instance = react_table_1.useTable.apply(void 0, __spreadArray([{
304
319
  autoResetExpanded: autoResetExpanded,
305
320
  autoResetGlobalFilter: false,
306
321
  getRowId: getRowId,
307
322
  columns: columns,
308
323
  data: data,
324
+ defaultColumn: defaultColumn,
309
325
  filterTypes: filterTypes,
310
326
  stateReducer: stateReducer,
311
327
  initialState: state,
312
328
  }], __read(plugins), false));
329
+ function setColumnWidth(columnId, width) {
330
+ instance.dispatch({ type: 'manuallySetColumnWidth', columnId: columnId, width: width });
331
+ }
332
+ return __assign(__assign({}, instance), { setColumnWidth: setColumnWidth });
313
333
  }
314
334
  exports.useDefaultTableInstance = useDefaultTableInstance;
335
+ function renderSingleLineCell(value) {
336
+ return ((0, react_1.jsx)(material_1.Tooltip, { title: value },
337
+ (0, react_1.jsx)("div", { css: (0, react_1.css)(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n text-overflow: ellipsis;\n overflow: hidden;\n "], ["\n text-overflow: ellipsis;\n overflow: hidden;\n "]))) }, value)));
338
+ }
339
+ exports.renderSingleLineCell = renderSingleLineCell;
315
340
  function getColumnFilterConfig(filterType) {
316
341
  switch (filterType) {
317
342
  case 'select':
@@ -326,4 +351,4 @@ function getColumnFilterConfig(filterType) {
326
351
  }
327
352
  }
328
353
  exports.getColumnFilterConfig = getColumnFilterConfig;
329
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13;
354
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8;
@@ -42,11 +42,17 @@ function DataTable() {
42
42
  columnHiding: {
43
43
  enabled: true,
44
44
  },
45
+ columnResizing: {
46
+ enabled: true,
47
+ },
45
48
  pagination: {
46
49
  enabled: true,
47
50
  rowsPerPageOptions: [5, 10, 20],
48
51
  pageSize: 10,
49
52
  },
53
+ virtualize: {
54
+ enabled: false,
55
+ },
50
56
  rowSelect: {
51
57
  enabled: true,
52
58
  mode: 'multi',
@@ -58,8 +64,14 @@ function DataTable() {
58
64
  getRowId: function (person) { return person.id; },
59
65
  },
60
66
  };
61
- var instance = (0, DataTable_1.useDefaultTableInstance)({ columns: columns, data: data, options: options });
67
+ var instance = (0, DataTable_1.useDefaultTableInstance)({
68
+ columns: columns,
69
+ data: data,
70
+ options: options,
71
+ defaultColumn: { minWidth: 50, width: 150, maxWidth: 200 },
72
+ });
62
73
  return (react_1.default.createElement(material_1.ThemeProvider, { theme: (0, material_1.createTheme)() },
63
- react_1.default.createElement(DataTable_1.default, { title: "People", columns: columns, instance: instance, options: options, renderActions: function () { return react_1.default.createElement(material_1.Button, { onClick: function () { return alert('Thanks!'); } }, "Click Me"); }, renderRowSelectActions: function () { return react_1.default.createElement(material_1.Button, { onClick: function () { return alert('Thanks!'); } }, "Click Me"); } })));
74
+ react_1.default.createElement("div", { style: { height: '700px', width: '640px' } },
75
+ react_1.default.createElement(DataTable_1.default, { title: "People", columns: columns, instance: instance, options: options, renderActions: function () { return react_1.default.createElement(material_1.Button, { onClick: function () { return alert('Thanks!'); } }, "Click Me"); }, renderRowSelectActions: function () { return react_1.default.createElement(material_1.Button, { onClick: function () { return alert('Thanks!'); } }, "Click Me"); } }))));
64
76
  }
65
77
  exports.DataTable = DataTable;
@@ -10,8 +10,8 @@ var react_1 = require("@emotion/react");
10
10
  var icons_material_1 = require("@mui/icons-material");
11
11
  var iconStyle = (0, react_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin-left: 0.25rem;\n color: #b2b2b2;\n line-height: 0;\n\n && {\n font-size: 1rem;\n }\n"], ["\n margin-left: 0.25rem;\n color: #b2b2b2;\n line-height: 0;\n\n && {\n font-size: 1rem;\n }\n"])));
12
12
  var smallIconStyle = (0, react_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ", ";\n && {\n font-size: 0.75rem;\n }\n"], ["\n ", ";\n && {\n font-size: 0.75rem;\n }\n"])), iconStyle);
13
- var wrapperStyle = (0, react_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n line-height: 0;\n"], ["\n line-height: 0;\n"])));
14
- var stackedWrapperStyle = (0, react_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n ", ";\n display: inline-flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n"], ["\n ", ";\n display: inline-flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n"])), wrapperStyle);
13
+ var wrapperStyle = (0, react_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n line-height: 0;\n flex: none;\n"], ["\n line-height: 0;\n flex: none;\n"])));
14
+ var stackedWrapperStyle = (0, react_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n ", ";\n flex: none;\n display: inline-flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n"], ["\n ", ";\n flex: none;\n display: inline-flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n"])), wrapperStyle);
15
15
  function SortIndicator(_a) {
16
16
  var canSort = _a.canSort, isSorted = _a.isSorted, isSortedDesc = _a.isSortedDesc;
17
17
  if (!canSort) {
@@ -0,0 +1,12 @@
1
+ /** @jsxRuntime classic */
2
+ /** @jsx jsx */
3
+ import { jsx } from '@emotion/react';
4
+ import { Filters, UseFiltersInstanceProps } from 'react-table';
5
+ import { SimpleMap } from '../../../../types/Internal.types';
6
+ interface Props<D extends object> {
7
+ columnNameById: SimpleMap<string>;
8
+ filters: Filters<D>;
9
+ setFilter: UseFiltersInstanceProps<D>['setFilter'];
10
+ }
11
+ export default function AppliedFilters<D extends object>({ columnNameById, filters, setFilter }: Props<D>): jsx.JSX.Element | null;
12
+ export {};
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ /** @jsxRuntime classic */
8
+ /** @jsx jsx */
9
+ var react_1 = require("@emotion/react");
10
+ var material_1 = require("@mui/material");
11
+ var SingleSelectFilter_1 = require("../FilterTool/Filters/SingleSelectFilter");
12
+ var PADDING = 24;
13
+ function AppliedFilters(_a) {
14
+ var columnNameById = _a.columnNameById, filters = _a.filters, setFilter = _a.setFilter;
15
+ if (!filters.length) {
16
+ return null;
17
+ }
18
+ return ((0, react_1.jsx)(material_1.Stack, { direction: "row", overflow: "none", css: (0, react_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: calc(100% - ", "px);\n padding: 8px ", "px;\n flex-wrap: wrap;\n gap: 0.25rem 0.25rem;\n "], ["\n width: calc(100% - ", "px);\n padding: 8px ", "px;\n flex-wrap: wrap;\n gap: 0.25rem 0.25rem;\n "])), PADDING * 2, PADDING) }, filters
19
+ .filter(function (filter) {
20
+ return (Array.isArray(filter.value) && !!filter.value.length) ||
21
+ (!Array.isArray(filter.value) && filter.value != null);
22
+ })
23
+ .map(function (filter) { return ((0, react_1.jsx)(material_1.Chip, { key: filter.id, label: columnNameById[filter.id] + ": " + (filter.value === '' ? SingleSelectFilter_1.BLANK_VALUE_LABEL : filter.value), onDelete: function () { return setFilter(filter.id, null); } })); })));
24
+ }
25
+ exports.default = AppliedFilters;
26
+ var templateObject_1;
@@ -0,0 +1,10 @@
1
+ /** @jsxRuntime classic */
2
+ /** @jsx jsx */
3
+ import { jsx } from '@emotion/react';
4
+ import { Cell, TableCellProps } from 'react-table';
5
+ interface Props<D extends object> {
6
+ cell: Cell<D>;
7
+ cellProps: Omit<TableCellProps, 'key'>;
8
+ }
9
+ export default function BodyCell<D extends object>({ cell, cellProps }: Props<D>): jsx.JSX.Element;
10
+ export {};
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __rest = (this && this.__rest) || function (s, e) {
18
+ var t = {};
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
20
+ t[p] = s[p];
21
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
22
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
23
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
24
+ t[p[i]] = s[p[i]];
25
+ }
26
+ return t;
27
+ };
28
+ var __importDefault = (this && this.__importDefault) || function (mod) {
29
+ return (mod && mod.__esModule) ? mod : { "default": mod };
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ /** @jsxRuntime classic */
33
+ /** @jsx jsx */
34
+ var react_1 = require("@emotion/react");
35
+ var material_1 = require("@mui/material");
36
+ var classnames_1 = __importDefault(require("classnames"));
37
+ var DataTable_1 = require("../DataTable");
38
+ function BodyCell(_a) {
39
+ var cell = _a.cell, cellProps = _a.cellProps;
40
+ var style = cellProps.style, className = cellProps.className, restOfCellProps = __rest(cellProps, ["style", "className"]);
41
+ return ((0, react_1.jsx)(react_1.ClassNames, null, function (_a) {
42
+ var css = _a.css, cx = _a.cx;
43
+ return ((0, react_1.jsx)(material_1.TableCell, __assign({ css: cx(
44
+ // @ts-ignore
45
+ css(style), css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n && {\n padding: ", "px;\n display: block;\n border-bottom: none;\n }\n "], ["\n && {\n padding: ", "px;\n display: block;\n border-bottom: none;\n }\n "])), DataTable_1.CELL_PADDING)), className: (0, classnames_1.default)(className, cell.column.id === 'custom' ? 'cell-Custom' : undefined) }, restOfCellProps, { component: "div", variant: "body" }), cell.render('Cell')));
46
+ }));
47
+ }
48
+ exports.default = BodyCell;
49
+ var templateObject_1;
@@ -0,0 +1,15 @@
1
+ import { CSSProperties } from 'react';
2
+ import { EnhancedRow } from '../DataTable';
3
+ import { TableRowProps } from 'react-table';
4
+ interface Props<D extends object> {
5
+ ExpandedComponent: ((props: {
6
+ data: D;
7
+ }) => JSX.Element) | undefined;
8
+ row: EnhancedRow<D>;
9
+ rowProps: Omit<TableRowProps, 'key'>;
10
+ innerRef?: ((element?: Element | undefined) => void) | undefined;
11
+ style?: CSSProperties;
12
+ measure?: () => void;
13
+ }
14
+ declare const BodyRow: import("react").NamedExoticComponent<Props<any>>;
15
+ export default BodyRow;