@servicetitan/table 31.2.0 → 32.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.
- package/dist/demo/column-hiding/index.js +1 -0
- package/dist/demo/column-hiding/index.js.map +1 -1
- package/dist/demo/column-hiding/product.js +7 -6
- package/dist/demo/column-hiding/product.js.map +1 -1
- package/dist/demo/column-hiding/products.js +12 -11
- package/dist/demo/column-hiding/products.js.map +1 -1
- package/dist/demo/column-hiding/table.js +126 -32
- package/dist/demo/column-hiding/table.js.map +1 -1
- package/dist/demo/column-hiding/table.store.js +30 -27
- package/dist/demo/column-hiding/table.store.js.map +1 -1
- package/dist/demo/filters/async-select-filter.js +59 -12
- package/dist/demo/filters/async-select-filter.js.map +1 -1
- package/dist/demo/filters/categories.js +20 -16
- package/dist/demo/filters/categories.js.map +1 -1
- package/dist/demo/filters/multiselect-filter.js +37 -5
- package/dist/demo/filters/multiselect-filter.js.map +1 -1
- package/dist/demo/filters/range-filter.js +104 -10
- package/dist/demo/filters/range-filter.js.map +1 -1
- package/dist/demo/filters/select-filter.js +139 -41
- package/dist/demo/filters/select-filter.js.map +1 -1
- package/dist/demo/filters/single-select-filter.js +109 -18
- package/dist/demo/filters/single-select-filter.js.map +1 -1
- package/dist/demo/filters/table.store.js +77 -86
- package/dist/demo/filters/table.store.js.map +1 -1
- package/dist/demo/footer-page-size/index.js +1 -0
- package/dist/demo/footer-page-size/index.js.map +1 -1
- package/dist/demo/footer-page-size/table.js +82 -6
- package/dist/demo/footer-page-size/table.js.map +1 -1
- package/dist/demo/index.js +1 -0
- package/dist/demo/index.js.map +1 -1
- package/dist/demo/master-detail/detail-table.js +41 -9
- package/dist/demo/master-detail/detail-table.js.map +1 -1
- package/dist/demo/master-detail/detail-table.store.js +60 -56
- package/dist/demo/master-detail/detail-table.store.js.map +1 -1
- package/dist/demo/master-detail/index.js +1 -0
- package/dist/demo/master-detail/index.js.map +1 -1
- package/dist/demo/master-detail/master-table.store.js +65 -61
- package/dist/demo/master-detail/master-table.store.js.map +1 -1
- package/dist/demo/master-detail/product-detail.js +2 -1
- package/dist/demo/master-detail/product-detail.js.map +1 -1
- package/dist/demo/master-detail/product-details.js +10 -9
- package/dist/demo/master-detail/product-details.js.map +1 -1
- package/dist/demo/master-detail/product.js +7 -6
- package/dist/demo/master-detail/product.js.map +1 -1
- package/dist/demo/master-detail/products.js +12 -11
- package/dist/demo/master-detail/products.js.map +1 -1
- package/dist/demo/master-detail/table-master-detail.js +39 -8
- package/dist/demo/master-detail/table-master-detail.js.map +1 -1
- package/dist/demo/overview/actions-cell.js +47 -10
- package/dist/demo/overview/actions-cell.js.map +1 -1
- package/dist/demo/overview/index.js +1 -0
- package/dist/demo/overview/index.js.map +1 -1
- package/dist/demo/overview/product.js +7 -6
- package/dist/demo/overview/product.js.map +1 -1
- package/dist/demo/overview/products.js +15 -14
- package/dist/demo/overview/products.js.map +1 -1
- package/dist/demo/overview/table.js +176 -21
- package/dist/demo/overview/table.js.map +1 -1
- package/dist/demo/overview/table.store.js +45 -51
- package/dist/demo/overview/table.store.js.map +1 -1
- package/dist/demo/row-details/index.js +1 -0
- package/dist/demo/row-details/index.js.map +1 -1
- package/dist/demo/row-details/row-details-table.js +52 -5
- package/dist/demo/row-details/row-details-table.js.map +1 -1
- package/dist/demo/row-details/row-details-table.store.js +27 -19
- package/dist/demo/row-details/row-details-table.store.js.map +1 -1
- package/dist/demo/state-caching/beverages.js +11 -10
- package/dist/demo/state-caching/beverages.js.map +1 -1
- package/dist/demo/state-caching/index.js +1 -0
- package/dist/demo/state-caching/index.js.map +1 -1
- package/dist/demo/state-caching/product.js +2 -1
- package/dist/demo/state-caching/product.js.map +1 -1
- package/dist/demo/state-caching/products.js +12 -11
- package/dist/demo/state-caching/products.js.map +1 -1
- package/dist/demo/state-caching/state-caching-table.js +44 -3
- package/dist/demo/state-caching/state-caching-table.js.map +1 -1
- package/dist/demo/state-caching/state-caching-table.store.js +42 -54
- package/dist/demo/state-caching/state-caching-table.store.js.map +1 -1
- package/dist/details/expand-column.js +31 -7
- package/dist/details/expand-column.js.map +1 -1
- package/dist/details/index.js +1 -0
- package/dist/details/index.js.map +1 -1
- package/dist/editable-cell/boolean-editable-cell.js +15 -4
- package/dist/editable-cell/boolean-editable-cell.js.map +1 -1
- package/dist/editable-cell/get-action-cell.js +14 -7
- package/dist/editable-cell/get-action-cell.js.map +1 -1
- package/dist/editable-cell/get-editable-cell.js +16 -8
- package/dist/editable-cell/get-editable-cell.js.map +1 -1
- package/dist/editable-cell/get-select-editable-cell.js +19 -5
- package/dist/editable-cell/get-select-editable-cell.js.map +1 -1
- package/dist/editable-cell/index.js +1 -0
- package/dist/editable-cell/index.js.map +1 -1
- package/dist/editable-cell/text-editable-cell.js +23 -5
- package/dist/editable-cell/text-editable-cell.js.map +1 -1
- package/dist/export/export.js +38 -1
- package/dist/export/export.js.map +1 -1
- package/dist/export/export.module.css.d.ts +3 -0
- package/dist/export/index.js +1 -0
- package/dist/export/index.js.map +1 -1
- package/dist/filters/async-select/async-select-filter.js +167 -132
- package/dist/filters/async-select/async-select-filter.js.map +1 -1
- package/dist/filters/column-menu-filters.js +39 -8
- package/dist/filters/column-menu-filters.js.map +1 -1
- package/dist/filters/datetime-filter/datetime-filter.js +73 -50
- package/dist/filters/datetime-filter/datetime-filter.js.map +1 -1
- package/dist/filters/field-values-filter.js +80 -72
- package/dist/filters/field-values-filter.js.map +1 -1
- package/dist/filters/index.js +1 -0
- package/dist/filters/index.js.map +1 -1
- package/dist/filters/multiselect-filter/multiselect-filter.js +77 -73
- package/dist/filters/multiselect-filter/multiselect-filter.js.map +1 -1
- package/dist/filters/numeric-filter-extended/numeric-extended-operators.js +10 -3
- package/dist/filters/numeric-filter-extended/numeric-extended-operators.js.map +1 -1
- package/dist/filters/numeric-filter-extended/numeric-filter-extended.js +39 -16
- package/dist/filters/numeric-filter-extended/numeric-filter-extended.js.map +1 -1
- package/dist/filters/range-filter/range-filter.js +76 -72
- package/dist/filters/range-filter/range-filter.js.map +1 -1
- package/dist/filters/select-filter/object-search.js +4 -3
- package/dist/filters/select-filter/object-search.js.map +1 -1
- package/dist/filters/select-filter/operators.js +6 -5
- package/dist/filters/select-filter/operators.js.map +1 -1
- package/dist/filters/select-filter/select-filter.js +180 -145
- package/dist/filters/select-filter/select-filter.js.map +1 -1
- package/dist/filters/select-filter/value-getter.js +2 -1
- package/dist/filters/select-filter/value-getter.js.map +1 -1
- package/dist/filters/single-select/single-select-filter.js +29 -15
- package/dist/filters/single-select/single-select-filter.js.map +1 -1
- package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.js +114 -67
- package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.js.map +1 -1
- package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.module.css.d.ts +7 -0
- package/dist/filters/standard-filter-with-multiselect/multiselect-operators.js +10 -3
- package/dist/filters/standard-filter-with-multiselect/multiselect-operators.js.map +1 -1
- package/dist/filters/standard-filter-with-multiselect/standard-filter-with-multiselect.js +77 -55
- package/dist/filters/standard-filter-with-multiselect/standard-filter-with-multiselect.js.map +1 -1
- package/dist/filters/standard-filter-with-multiselect/table-column-menu-filter-ext.js +23 -10
- package/dist/filters/standard-filter-with-multiselect/table-column-menu-filter-ext.js.map +1 -1
- package/dist/filters/time-filter/time-filter.js +63 -49
- package/dist/filters/time-filter/time-filter.js.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/select-cell/index.js +1 -0
- package/dist/select-cell/index.js.map +1 -1
- package/dist/select-cell/select-cell.js +36 -11
- package/dist/select-cell/select-cell.js.map +1 -1
- package/dist/select-cell/select-cell.module.css.d.ts +3 -0
- package/dist/table-state.js +479 -660
- package/dist/table-state.js.map +1 -1
- package/dist/table.js +235 -250
- package/dist/table.js.map +1 -1
- package/dist/table.module.css.d.ts +5 -0
- package/dist/use-observing-table-state/demo/components/use-observing-table-state-demo.js +97 -5
- package/dist/use-observing-table-state/demo/components/use-observing-table-state-demo.js.map +1 -1
- package/dist/use-observing-table-state/demo/stores/use-observing-table-state-demo.store.js +71 -97
- package/dist/use-observing-table-state/demo/stores/use-observing-table-state-demo.store.js.map +1 -1
- package/dist/use-observing-table-state/index.js +1 -0
- package/dist/use-observing-table-state/index.js.map +1 -1
- package/dist/use-observing-table-state/use-observing-table-state.js +26 -20
- package/dist/use-observing-table-state/use-observing-table-state.js.map +1 -1
- package/dist/utils/filters.js +14 -9
- package/dist/utils/filters.js.map +1 -1
- package/dist/utils/use-td-props.js +3 -2
- package/dist/utils/use-td-props.js.map +1 -1
- package/package.json +13 -13
- package/dist/filters/async-select/async-select-filter.stories.js +0 -7
- package/dist/filters/async-select/async-select-filter.stories.js.map +0 -1
- package/dist/filters/multiselect-filter/multiselect-filter.stories.js +0 -7
- package/dist/filters/multiselect-filter/multiselect-filter.stories.js.map +0 -1
- package/dist/filters/range-filter/range-filter.stories.js +0 -9
- package/dist/filters/range-filter/range-filter.stories.js.map +0 -1
- package/dist/filters/select-filter/__tests__/object-search.test.js +0 -28
- package/dist/filters/select-filter/__tests__/object-search.test.js.map +0 -1
- package/dist/filters/select-filter/select-filter.stories.js +0 -8
- package/dist/filters/select-filter/select-filter.stories.js.map +0 -1
- package/dist/filters/single-select/single-select-filter.stories.js +0 -8
- package/dist/filters/single-select/single-select-filter.stories.js.map +0 -1
- package/dist/table.stories.js +0 -12
- package/dist/table.stories.js.map +0 -1
- package/dist/use-observing-table-state/use-observing-table-state.stories.js +0 -11
- package/dist/use-observing-table-state/use-observing-table-state.stories.js.map +0 -1
- package/dist/utils/__tests__/filters.test.js +0 -24
- package/dist/utils/__tests__/filters.test.js.map +0 -1
package/dist/table.js
CHANGED
@@ -1,22 +1,34 @@
|
|
1
|
-
|
1
|
+
function _define_property(obj, key, value) {
|
2
|
+
if (key in obj) {
|
3
|
+
Object.defineProperty(obj, key, {
|
4
|
+
value: value,
|
5
|
+
enumerable: true,
|
6
|
+
configurable: true,
|
7
|
+
writable: true
|
8
|
+
});
|
9
|
+
} else {
|
10
|
+
obj[key] = value;
|
11
|
+
}
|
12
|
+
return obj;
|
13
|
+
}
|
14
|
+
function _ts_decorate(decorators, target, key, desc) {
|
2
15
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
3
16
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
4
|
-
else for
|
17
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
5
18
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
|
-
}
|
7
|
-
|
19
|
+
}
|
20
|
+
function _ts_metadata(k, v) {
|
8
21
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
9
|
-
}
|
22
|
+
}
|
10
23
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
11
|
-
import { isValidElement, Component, createRef, cloneElement, Children, Fragment
|
12
|
-
import { Announcement, Table as AnvilTable, TableColumn
|
24
|
+
import { isValidElement, Component, createRef, cloneElement, Children, Fragment } from 'react';
|
25
|
+
import { Announcement, Table as AnvilTable, TableColumn } from '@servicetitan/design-system';
|
13
26
|
import { operators as kendoOperators } from '@progress/kendo-react-grid/dist/npm/filterCommon';
|
14
27
|
import { GridPDFExport as TablePDFExport } from '@progress/kendo-react-pdf';
|
15
28
|
import { ExcelExport } from '@progress/kendo-react-excel-export';
|
16
29
|
import { observer } from 'mobx-react';
|
17
|
-
import { GRID_COL_INDEX_ATTRIBUTE } from '@progress/kendo-react-grid';
|
18
30
|
import { AsyncDataSource } from '@servicetitan/data-query';
|
19
|
-
import { SelectColumnCell, SelectHeaderCell
|
31
|
+
import { SelectColumnCell, SelectHeaderCell } from './select-cell/select-cell';
|
20
32
|
import memoizeOne from 'memoize-one';
|
21
33
|
import classNames from 'classnames';
|
22
34
|
import * as Styles from './table.module.css';
|
@@ -24,286 +36,259 @@ import { action, makeObservable, observable } from 'mobx';
|
|
24
36
|
import { useTdProps } from './utils/use-td-props';
|
25
37
|
const { text: textOperators, ...operators } = kendoOperators;
|
26
38
|
operators.text = [
|
27
|
-
...textOperators.filter(o
|
39
|
+
...textOperators.filter((o)=>o.operator !== 'isnull' && o.operator !== 'isnotnull')
|
28
40
|
];
|
29
41
|
function isColumnElement(element) {
|
30
|
-
if (
|
42
|
+
if (!/*#__PURE__*/ isValidElement(element)) {
|
31
43
|
return false;
|
32
44
|
}
|
33
45
|
const elementType = element.type;
|
34
46
|
return elementType === TableColumn || elementType.originalType === TableColumn;
|
35
47
|
}
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
});
|
51
|
-
Object.defineProperty(this, "observableHideSelectAll", {
|
52
|
-
enumerable: true,
|
53
|
-
configurable: true,
|
54
|
-
writable: true,
|
55
|
-
value: void 0
|
56
|
-
});
|
57
|
-
Object.defineProperty(this, "observableSelectable", {
|
58
|
-
enumerable: true,
|
59
|
-
configurable: true,
|
60
|
-
writable: true,
|
61
|
-
value: void 0
|
62
|
-
});
|
63
|
-
Object.defineProperty(this, "tableState", {
|
64
|
-
enumerable: true,
|
65
|
-
configurable: true,
|
66
|
-
writable: true,
|
67
|
-
value: this.props.tableState
|
68
|
-
});
|
69
|
-
Object.defineProperty(this, "ref", {
|
70
|
-
enumerable: true,
|
71
|
-
configurable: true,
|
72
|
-
writable: true,
|
73
|
-
value: createRef()
|
74
|
-
});
|
75
|
-
Object.defineProperty(this, "lastSelection", {
|
76
|
-
enumerable: true,
|
77
|
-
configurable: true,
|
78
|
-
writable: true,
|
79
|
-
value: void 0
|
80
|
-
});
|
81
|
-
Object.defineProperty(this, "selectColumnCell", {
|
82
|
-
enumerable: true,
|
83
|
-
configurable: true,
|
84
|
-
writable: true,
|
85
|
-
value: observer((props) => (_jsx(SelectColumnCell, { ...props, isRowSelectable: this.tableState.isRowSelectable(props.dataItem), control: this.observableSelectionControl })))
|
86
|
-
});
|
87
|
-
Object.defineProperty(this, "customCellMap", {
|
88
|
-
enumerable: true,
|
89
|
-
configurable: true,
|
90
|
-
writable: true,
|
91
|
-
value: new Map()
|
48
|
+
export class Table extends Component {
|
49
|
+
componentDidUpdate() {
|
50
|
+
this.observableScrollable = this.props.scrollable;
|
51
|
+
this.observableSelectionControl = this.props.selectionControl;
|
52
|
+
this.observableHideSelectAll = this.props.hideSelectAll;
|
53
|
+
}
|
54
|
+
applyToColumns(children, transformer) {
|
55
|
+
return Children.map(children, (child)=>{
|
56
|
+
if (!isColumnElement(child)) {
|
57
|
+
return child;
|
58
|
+
}
|
59
|
+
return child.props.children ? /*#__PURE__*/ cloneElement(transformer(child), {
|
60
|
+
children: this.applyToColumns(child.props.children, transformer)
|
61
|
+
}) : transformer(child);
|
92
62
|
});
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
63
|
+
}
|
64
|
+
render() {
|
65
|
+
if (this.tableState.dataSource instanceof AsyncDataSource && this.props.scrollable === 'virtual' && this.props.selectable) {
|
66
|
+
return /*#__PURE__*/ _jsx(Announcement, {
|
67
|
+
status: "critical",
|
68
|
+
title: "AsyncDataSource doesn't support virtual scroll with selection."
|
69
|
+
});
|
70
|
+
}
|
71
|
+
const table = this.table();
|
72
|
+
return /*#__PURE__*/ _jsxs(Fragment, {
|
73
|
+
children: [
|
74
|
+
table,
|
75
|
+
this.props.exportable && /*#__PURE__*/ _jsxs(Fragment, {
|
76
|
+
children: [
|
77
|
+
/*#__PURE__*/ _jsxs(TablePDFExport, {
|
78
|
+
ref: this.tableState.setTablePdfExportRef,
|
79
|
+
fileName: sanitizeExportFileName(this.props.exportFileName),
|
80
|
+
children: [
|
81
|
+
this.props.children,
|
82
|
+
table
|
83
|
+
]
|
84
|
+
}),
|
85
|
+
/*#__PURE__*/ _jsx(ExcelExport, {
|
86
|
+
ref: this.tableState.setTableExcelExportRef,
|
87
|
+
fileName: sanitizeExportFileName(this.props.exportFileName),
|
88
|
+
children: this.props.children
|
89
|
+
})
|
90
|
+
]
|
91
|
+
})
|
92
|
+
]
|
105
93
|
});
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
94
|
+
}
|
95
|
+
getPageable() {
|
96
|
+
if (this.props.scrollable === 'virtual' || !this.tableState.pageSize) {
|
97
|
+
return false;
|
98
|
+
}
|
99
|
+
var _this_props_pager;
|
100
|
+
return (_this_props_pager = this.props.pager) !== null && _this_props_pager !== void 0 ? _this_props_pager : true;
|
101
|
+
}
|
102
|
+
constructor(props){
|
103
|
+
super(props), _define_property(this, "observableScrollable", void 0), _define_property(this, "observableSelectionControl", void 0), _define_property(this, "observableHideSelectAll", void 0), _define_property(this, "observableSelectable", void 0), _define_property(this, "tableState", this.props.tableState), _define_property(this, "ref", /*#__PURE__*/ createRef()), _define_property(this, "lastSelection", void 0), _define_property(this, "selectColumnCell", observer((props)=>/*#__PURE__*/ _jsx(SelectColumnCell, {
|
104
|
+
...props,
|
105
|
+
isRowSelectable: this.tableState.isRowSelectable(props.dataItem),
|
106
|
+
control: this.observableSelectionControl
|
107
|
+
}))), _define_property(this, "customCellMap", new Map()), _define_property(this, "selectHeaderCell", observer((props)=>{
|
108
|
+
if (this.observableHideSelectAll || this.tableState.selectionLimit !== Infinity) {
|
109
|
+
return null;
|
110
|
+
}
|
111
|
+
return /*#__PURE__*/ _jsx(SelectHeaderCell, {
|
112
|
+
...props,
|
113
|
+
isSomeRowsSelected: this.observableScrollable !== 'virtual' ? this.tableState.isSomePageRowsSelected : this.tableState.isSomeRowsSelected,
|
114
|
+
control: this.observableSelectionControl
|
115
|
+
});
|
116
|
+
})), // TODO: rid of "memoizeOne" after migration on React.FC
|
117
|
+
_define_property(this, "withCellTableState", memoizeOne((children)=>this.applyToColumns(children, (column)=>{
|
112
118
|
const { cell: Cell, field } = column.props;
|
113
|
-
return cloneElement(column, {
|
114
|
-
cell: this.getOrCreateCellComponentWithTableState(Cell, field)
|
119
|
+
return /*#__PURE__*/ cloneElement(column, {
|
120
|
+
cell: this.getOrCreateCellComponentWithTableState(Cell, field)
|
115
121
|
});
|
116
|
-
}))
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
configurable: true,
|
121
|
-
writable: true,
|
122
|
-
value: (row, rowProps) => {
|
123
|
-
const overrides = {};
|
124
|
-
if (this.props.selectable &&
|
125
|
-
rowProps.rowType === 'data' &&
|
126
|
-
!this.tableState.isRowSelectable(rowProps.dataItem)) {
|
127
|
-
overrides.className = classNames(row.props.className, Styles.disabled);
|
128
|
-
}
|
129
|
-
const result = Object.keys(overrides).length ? cloneElement(row, overrides) : row;
|
130
|
-
return this.props.rowRender ? this.props.rowRender(result, rowProps) : result;
|
122
|
+
}))), _define_property(this, "rowRender", (row, rowProps)=>{
|
123
|
+
const overrides = {};
|
124
|
+
if (this.props.selectable && rowProps.rowType === 'data' && !this.tableState.isRowSelectable(rowProps.dataItem)) {
|
125
|
+
overrides.className = classNames(row.props.className, Styles.disabled);
|
131
126
|
}
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
this.tableState.selectPage();
|
142
|
-
}
|
143
|
-
else {
|
144
|
-
this.tableState.deselectPage();
|
145
|
-
}
|
127
|
+
const result = Object.keys(overrides).length ? /*#__PURE__*/ cloneElement(row, overrides) : row;
|
128
|
+
return this.props.rowRender ? this.props.rowRender(result, rowProps) : result;
|
129
|
+
}), _define_property(this, "handleHeaderSelectionChange", (ev)=>{
|
130
|
+
const checked = ev.syntheticEvent.currentTarget.checked;
|
131
|
+
if (this.observableScrollable !== 'virtual') {
|
132
|
+
if (checked) {
|
133
|
+
this.tableState.selectPage();
|
134
|
+
} else {
|
135
|
+
this.tableState.deselectPage();
|
146
136
|
}
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
this.tableState.deselectAll();
|
153
|
-
}
|
137
|
+
} else {
|
138
|
+
if (checked) {
|
139
|
+
this.tableState.selectAll();
|
140
|
+
} else {
|
141
|
+
this.tableState.deselectAll();
|
154
142
|
}
|
155
143
|
}
|
156
|
-
})
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
const rows
|
168
|
-
|
169
|
-
|
170
|
-
const isAsc = ((_b = (_a = this.tableState.dataSource) === null || _a === void 0 ? void 0 : _a.idSelector) === null || _b === void 0 ? void 0 : _b.call(_a, this.lastSelection)) ===
|
171
|
-
((_d = (_c = this.tableState.dataSource) === null || _c === void 0 ? void 0 : _c.idSelector) === null || _d === void 0 ? void 0 : _d.call(_c, rows[0]));
|
172
|
-
const selection = !ev.dataItem.selected;
|
173
|
-
if (selection) {
|
174
|
-
const toBeSelected = [];
|
175
|
-
for (const row of isAsc ? rows : rows.reverse()) {
|
176
|
-
if (this.tableState.selectedCount + toBeSelected.length >=
|
177
|
-
this.tableState.selectionLimit) {
|
178
|
-
break;
|
179
|
-
}
|
180
|
-
if (row.selected) {
|
181
|
-
continue;
|
182
|
-
}
|
183
|
-
toBeSelected.push(row);
|
144
|
+
}), _define_property(this, "handleSelectionChange", (ev)=>{
|
145
|
+
if (!ev.dataItem) {
|
146
|
+
return;
|
147
|
+
}
|
148
|
+
if (ev.nativeEvent.shiftKey && this.lastSelection) {
|
149
|
+
var _this_tableState_dataSource_idSelector, _this_tableState_dataSource, _this_tableState_dataSource_idSelector1, _this_tableState_dataSource1;
|
150
|
+
const rows = this.tableState.getRowsBetween(this.lastSelection, ev.dataItem).filter((row)=>this.tableState.isRowSelectable(row));
|
151
|
+
const isAsc = ((_this_tableState_dataSource = this.tableState.dataSource) === null || _this_tableState_dataSource === void 0 ? void 0 : (_this_tableState_dataSource_idSelector = _this_tableState_dataSource.idSelector) === null || _this_tableState_dataSource_idSelector === void 0 ? void 0 : _this_tableState_dataSource_idSelector.call(_this_tableState_dataSource, this.lastSelection)) === ((_this_tableState_dataSource1 = this.tableState.dataSource) === null || _this_tableState_dataSource1 === void 0 ? void 0 : (_this_tableState_dataSource_idSelector1 = _this_tableState_dataSource1.idSelector) === null || _this_tableState_dataSource_idSelector1 === void 0 ? void 0 : _this_tableState_dataSource_idSelector1.call(_this_tableState_dataSource1, rows[0]));
|
152
|
+
const selection = !ev.dataItem.selected;
|
153
|
+
if (selection) {
|
154
|
+
const toBeSelected = [];
|
155
|
+
for (const row of isAsc ? rows : rows.reverse()){
|
156
|
+
if (this.tableState.selectedCount + toBeSelected.length >= this.tableState.selectionLimit) {
|
157
|
+
break;
|
184
158
|
}
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
159
|
+
if (row.selected) {
|
160
|
+
continue;
|
161
|
+
}
|
162
|
+
toBeSelected.push(row);
|
189
163
|
}
|
164
|
+
this.tableState.setRowsSelection(toBeSelected, selection);
|
165
|
+
} else {
|
166
|
+
this.tableState.setRowsSelection(rows, selection);
|
190
167
|
}
|
191
|
-
|
192
|
-
|
193
|
-
}
|
194
|
-
this.lastSelection = ev.dataItem;
|
168
|
+
} else {
|
169
|
+
this.tableState.toggleRowSelection(ev.dataItem);
|
195
170
|
}
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
container.scroll({ top: container.scrollHeight, behavior: 'smooth' });
|
206
|
-
}
|
171
|
+
this.lastSelection = ev.dataItem;
|
172
|
+
}), _define_property(this, "scrollToBottom", ()=>{
|
173
|
+
if (this.ref.current) {
|
174
|
+
const container = this.ref.current.getElementsByClassName('k-grid-content')[0];
|
175
|
+
container.scrollTop = container.scrollHeight - container.clientHeight * 2;
|
176
|
+
container.scroll({
|
177
|
+
top: container.scrollHeight,
|
178
|
+
behavior: 'smooth'
|
179
|
+
});
|
207
180
|
}
|
208
|
-
})
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
181
|
+
}), _define_property(this, "table", ()=>{
|
182
|
+
const { className, filterOperators, selectable, pager, ...props } = this.props;
|
183
|
+
return /*#__PURE__*/ _jsxs(AnvilTable, {
|
184
|
+
ref: this.ref,
|
185
|
+
...props,
|
186
|
+
dataItemKey: this.tableState.rowIdKey,
|
187
|
+
data: [
|
188
|
+
...this.tableState.data
|
189
|
+
],
|
190
|
+
rowRender: this.rowRender,
|
191
|
+
editField: "inEdit",
|
192
|
+
filter: this.tableState.filter,
|
193
|
+
filterOperators: filterOperators !== null && filterOperators !== void 0 ? filterOperators : operators,
|
194
|
+
onFilterChange: this.tableState.handleFilterChange,
|
195
|
+
group: [
|
196
|
+
...this.tableState.group
|
197
|
+
],
|
198
|
+
onGroupChange: this.tableState.handleGroupChange,
|
199
|
+
onExpandChange: this.tableState.handleExpandChange,
|
200
|
+
expandField: "expanded",
|
201
|
+
sort: [
|
202
|
+
...this.tableState.sort
|
203
|
+
],
|
204
|
+
onSortChange: this.tableState.handleSortChange,
|
205
|
+
onHeaderSelectionChange: this.handleHeaderSelectionChange,
|
206
|
+
onSelectionChange: this.handleSelectionChange,
|
207
|
+
selectedField: "selected",
|
208
|
+
pageable: this.getPageable(),
|
209
|
+
pageSize: this.tableState.pageSize,
|
210
|
+
skip: this.tableState.skip,
|
211
|
+
onPageChange: this.tableState.handlePageChange,
|
212
|
+
total: this.tableState.filteredCount,
|
213
|
+
className: classNames(Styles.table, className),
|
214
|
+
selectable: {
|
215
|
+
enabled: selectable,
|
216
|
+
mode: 'multiple'
|
217
|
+
},
|
218
|
+
children: [
|
219
|
+
selectable && /*#__PURE__*/ _jsx(TableColumn, {
|
220
|
+
locked: true,
|
221
|
+
field: "selected",
|
222
|
+
id: "selected",
|
223
|
+
width: "50px",
|
224
|
+
filterable: false,
|
225
|
+
resizable: false,
|
226
|
+
reorderable: false,
|
227
|
+
headerSelectionValue: props.scrollable !== 'virtual' ? this.tableState.isAllPageRowsSelected : this.tableState.isAllRowsSelected,
|
228
|
+
headerCell: this.selectHeaderCell,
|
229
|
+
cell: this.selectColumnCell,
|
230
|
+
headerClassName: "lh-1-i ta-center-i",
|
231
|
+
className: classNames(Styles.unselectable, 'lh-1-i', 'ta-center-i')
|
232
|
+
}),
|
233
|
+
this.withCellTableState(props.children)
|
234
|
+
]
|
235
|
+
});
|
236
|
+
}), _define_property(this, "getOrCreateCellComponentWithTableState", (Cell, field)=>{
|
237
|
+
if (!Cell) {
|
238
|
+
return undefined;
|
218
239
|
}
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
return
|
231
|
-
};
|
232
|
-
CellWithTableState.displayName = 'CellWithTableState';
|
233
|
-
if (field) {
|
234
|
-
if (this.customCellMap.has(field)) {
|
235
|
-
return this.customCellMap.get(field);
|
236
|
-
}
|
237
|
-
this.customCellMap.set(field, CellWithTableState);
|
240
|
+
const CellWithTableState = (props)=>{
|
241
|
+
const tdProps = useTdProps(props);
|
242
|
+
return /*#__PURE__*/ _jsx(Cell, {
|
243
|
+
...props,
|
244
|
+
tableState: this.tableState,
|
245
|
+
tdProps: tdProps
|
246
|
+
});
|
247
|
+
};
|
248
|
+
CellWithTableState.displayName = 'CellWithTableState';
|
249
|
+
if (field) {
|
250
|
+
if (this.customCellMap.has(field)) {
|
251
|
+
return this.customCellMap.get(field);
|
238
252
|
}
|
239
|
-
|
253
|
+
this.customCellMap.set(field, CellWithTableState);
|
240
254
|
}
|
255
|
+
return CellWithTableState;
|
241
256
|
});
|
242
257
|
makeObservable(this);
|
243
258
|
this.observableScrollable = this.props.scrollable;
|
244
259
|
this.observableSelectionControl = this.props.selectionControl;
|
245
260
|
this.observableHideSelectAll = this.props.hideSelectAll;
|
246
261
|
}
|
247
|
-
|
248
|
-
|
249
|
-
this.observableSelectionControl = this.props.selectionControl;
|
250
|
-
this.observableHideSelectAll = this.props.hideSelectAll;
|
251
|
-
}
|
252
|
-
applyToColumns(children, transformer) {
|
253
|
-
return Children.map(children, child => {
|
254
|
-
if (!isColumnElement(child)) {
|
255
|
-
return child;
|
256
|
-
}
|
257
|
-
return child.props.children
|
258
|
-
? cloneElement(transformer(child), {
|
259
|
-
children: this.applyToColumns(child.props.children, transformer),
|
260
|
-
})
|
261
|
-
: transformer(child);
|
262
|
-
});
|
263
|
-
}
|
264
|
-
render() {
|
265
|
-
if (this.tableState.dataSource instanceof AsyncDataSource &&
|
266
|
-
this.props.scrollable === 'virtual' &&
|
267
|
-
this.props.selectable) {
|
268
|
-
return (_jsx(Announcement, { status: "critical", title: "AsyncDataSource doesn't support virtual scroll with selection." }));
|
269
|
-
}
|
270
|
-
const table = this.table();
|
271
|
-
return (_jsxs(Fragment, { children: [table, this.props.exportable && (_jsxs(Fragment, { children: [_jsxs(TablePDFExport, { ref: this.tableState.setTablePdfExportRef, fileName: sanitizeExportFileName(this.props.exportFileName), children: [this.props.children, table] }), _jsx(ExcelExport, { ref: this.tableState.setTableExcelExportRef, fileName: sanitizeExportFileName(this.props.exportFileName), children: this.props.children })] }))] }));
|
272
|
-
}
|
273
|
-
getPageable() {
|
274
|
-
var _a;
|
275
|
-
if (this.props.scrollable === 'virtual' || !this.tableState.pageSize) {
|
276
|
-
return false;
|
277
|
-
}
|
278
|
-
return (_a = this.props.pager) !== null && _a !== void 0 ? _a : true;
|
279
|
-
}
|
280
|
-
};
|
281
|
-
__decorate([
|
262
|
+
}
|
263
|
+
_ts_decorate([
|
282
264
|
observable,
|
283
|
-
|
265
|
+
_ts_metadata("design:type", Object)
|
284
266
|
], Table.prototype, "observableScrollable", void 0);
|
285
|
-
|
267
|
+
_ts_decorate([
|
286
268
|
observable,
|
287
|
-
|
269
|
+
_ts_metadata("design:type", Object)
|
288
270
|
], Table.prototype, "observableSelectionControl", void 0);
|
289
|
-
|
271
|
+
_ts_decorate([
|
290
272
|
observable,
|
291
|
-
|
273
|
+
_ts_metadata("design:type", Object)
|
292
274
|
], Table.prototype, "observableHideSelectAll", void 0);
|
293
|
-
|
275
|
+
_ts_decorate([
|
294
276
|
observable,
|
295
|
-
|
277
|
+
_ts_metadata("design:type", Object)
|
296
278
|
], Table.prototype, "observableSelectable", void 0);
|
297
|
-
|
279
|
+
_ts_decorate([
|
298
280
|
action,
|
299
|
-
|
300
|
-
|
301
|
-
|
281
|
+
_ts_metadata("design:type", Function),
|
282
|
+
_ts_metadata("design:paramtypes", []),
|
283
|
+
_ts_metadata("design:returntype", void 0)
|
302
284
|
], Table.prototype, "componentDidUpdate", null);
|
303
|
-
Table =
|
285
|
+
Table = _ts_decorate([
|
304
286
|
observer,
|
305
|
-
|
287
|
+
_ts_metadata("design:type", Function),
|
288
|
+
_ts_metadata("design:paramtypes", [
|
289
|
+
typeof TableProps === "undefined" ? Object : TableProps
|
290
|
+
])
|
306
291
|
], Table);
|
307
|
-
|
308
|
-
|
292
|
+
const sanitizeExportFileName = memoizeOne((fileName)=>fileName === null || fileName === void 0 ? void 0 : fileName.replace(/\.+/g, '_'));
|
293
|
+
|
309
294
|
//# sourceMappingURL=table.js.map
|
package/dist/table.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.tsx"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"sources":["../src/table.tsx"],"sourcesContent":["import {\n isValidElement,\n Component,\n createRef,\n cloneElement,\n Children,\n Fragment,\n ReactNode,\n ReactElement,\n ComponentType,\n FC,\n ComponentProps,\n} from 'react';\nimport {\n Announcement,\n Table as AnvilTable,\n TableProps as AnvilTableProps,\n TableRowProps,\n TableColumn,\n TableColumnProps as AnvilTableColumnProps,\n TableCellProps as AnvilTableCellProps,\n TableHeaderCellProps,\n TableHeaderSelectionChangeEvent,\n TableSelectionChangeEvent,\n TablePagerSettings,\n} from '@servicetitan/design-system';\nimport { operators as kendoOperators } from '@progress/kendo-react-grid/dist/npm/filterCommon';\nimport { GridPDFExport as TablePDFExport } from '@progress/kendo-react-pdf';\nimport { ExcelExport } from '@progress/kendo-react-excel-export';\nimport { observer } from 'mobx-react';\nimport { GRID_COL_INDEX_ATTRIBUTE } from '@progress/kendo-react-grid';\n\nimport { AsyncDataSource, IdType } from '@servicetitan/data-query';\nimport { TableState, Selectable } from './table-state';\nimport {\n SelectionControlType,\n SelectColumnCell,\n SelectHeaderCell,\n} from './select-cell/select-cell';\nimport memoizeOne from 'memoize-one';\n\nimport classNames from 'classnames';\nimport * as Styles from './table.module.css';\nimport { action, makeObservable, observable } from 'mobx';\nimport { useTdProps } from './utils/use-td-props';\n\nconst { text: textOperators, ...operators } = kendoOperators;\noperators.text = [\n ...textOperators.filter(o => o.operator !== 'isnull' && o.operator !== 'isnotnull'),\n];\n\nfunction isColumnElement<\n T = never,\n TId extends IdType = any,\n P = never,\n PId extends IdType = never,\n>(element: ReactNode): element is ReactElement<TableColumnProps<T, TId, P, PId>> {\n if (!isValidElement(element)) {\n return false;\n }\n\n const elementType = (element as ReactElement).type;\n\n return elementType === TableColumn || (elementType as any).originalType === TableColumn;\n}\n\nexport interface TableCellProps<\n T = never,\n TId extends IdType = any,\n P = never,\n PId extends IdType = never,\n> extends AnvilTableCellProps {\n tableState?: TableState<T, TId, P, PId>;\n tdProps?: ComponentProps<'td'> & {\n [GRID_COL_INDEX_ATTRIBUTE]?: number;\n };\n}\n\ninterface TableColumnProps<\n T = never,\n TId extends IdType = any,\n P = never,\n PId extends IdType = never,\n> extends AnvilTableColumnProps {\n cell?: ComponentType<TableCellProps<T, TId, P, PId>>;\n children?: ReactElement<TableColumnProps<T, TId, P, PId>>[];\n}\n\ntype ExcludedTableProps =\n | 'data'\n | 'dataItemKey'\n | 'editField'\n | 'filter'\n | 'onFilterChange'\n | 'group'\n | 'onGroupChange'\n | 'onExpandChange'\n | 'expandField'\n | 'sort'\n | 'onSortChange'\n | 'onHeaderSelectionChange'\n | 'onSelectionChange'\n | 'selectedField'\n | 'pageable'\n | 'pageSize'\n | 'skip'\n | 'onPageChange'\n | 'total'\n | 'selectable'\n | 'pager';\n\nexport interface TableProps<T, TId extends IdType = any, P = never, PId extends IdType = never>\n extends Omit<AnvilTableProps, ExcludedTableProps> {\n selectable?: boolean;\n exportable?: boolean;\n hideSelectAll?: boolean;\n exportFileName?: string;\n tableState: TableState<T, TId, P, PId>;\n selectionControl?: SelectionControlType;\n pager?: TablePagerSettings;\n}\n\n@observer\nexport class Table<\n T,\n TId extends IdType = any,\n P = never,\n PId extends IdType = never,\n> extends Component<TableProps<T, TId, P, PId>> {\n @observable observableScrollable: TableProps<T, TId, P, PId>['scrollable'];\n @observable observableSelectionControl: TableProps<T, TId, P, PId>['selectionControl'];\n @observable observableHideSelectAll: TableProps<T, TId, P, PId>['hideSelectAll'];\n @observable observableSelectable: TableProps<T, TId, P, PId>['selectable'];\n\n private tableState = this.props.tableState;\n\n private ref = createRef<HTMLElement>();\n\n private lastSelection?: Selectable<T>;\n\n private selectColumnCell: FC<AnvilTableCellProps> = observer((props: AnvilTableCellProps) => (\n <SelectColumnCell\n {...props}\n isRowSelectable={this.tableState.isRowSelectable(props.dataItem)}\n control={this.observableSelectionControl}\n />\n ));\n\n private customCellMap = new Map<string, FC<TableCellProps<T, TId, P, PId>>>();\n\n private selectHeaderCell: FC<TableHeaderCellProps> = observer((props: TableHeaderCellProps) => {\n if (this.observableHideSelectAll || this.tableState.selectionLimit !== Infinity) {\n return null;\n }\n\n return (\n <SelectHeaderCell\n {...props}\n isSomeRowsSelected={\n this.observableScrollable !== 'virtual'\n ? this.tableState.isSomePageRowsSelected\n : this.tableState.isSomeRowsSelected\n }\n control={this.observableSelectionControl}\n />\n );\n });\n\n // TODO: rid of \"memoizeOne\" after migration on React.FC\n private withCellTableState = memoizeOne((children: ReactNode) =>\n this.applyToColumns(children, column => {\n const { cell: Cell, field } = column.props;\n\n return cloneElement(column, {\n cell: this.getOrCreateCellComponentWithTableState(Cell, field),\n });\n })\n );\n\n constructor(props: TableProps<T, TId, P, PId>) {\n super(props);\n\n makeObservable(this);\n\n this.observableScrollable = this.props.scrollable;\n this.observableSelectionControl = this.props.selectionControl;\n this.observableHideSelectAll = this.props.hideSelectAll;\n }\n\n @action\n componentDidUpdate() {\n this.observableScrollable = this.props.scrollable;\n this.observableSelectionControl = this.props.selectionControl;\n this.observableHideSelectAll = this.props.hideSelectAll;\n }\n\n rowRender = (row: ReactElement, rowProps: TableRowProps) => {\n const overrides: typeof row.props = {};\n\n if (\n this.props.selectable &&\n rowProps.rowType === 'data' &&\n !this.tableState.isRowSelectable(rowProps.dataItem)\n ) {\n overrides.className = classNames(row.props.className, Styles.disabled);\n }\n\n const result = Object.keys(overrides).length ? cloneElement(row, overrides) : row;\n\n return this.props.rowRender ? this.props.rowRender(result, rowProps) : result;\n };\n\n applyToColumns(\n children: ReactNode,\n transformer: (\n column: ReactElement<TableColumnProps<T, TId, P, PId>>\n ) => ReactElement<TableColumnProps<T, TId, P, PId>>\n ): ReactNode {\n return Children.map(children, child => {\n if (!isColumnElement<T, TId, P, PId>(child)) {\n return child;\n }\n\n return child.props.children\n ? cloneElement(transformer(child), {\n children: this.applyToColumns(\n child.props.children,\n transformer\n ) as typeof child.props.children,\n })\n : transformer(child);\n });\n }\n\n handleHeaderSelectionChange = (ev: TableHeaderSelectionChangeEvent) => {\n const checked = ev.syntheticEvent.currentTarget.checked;\n\n if (this.observableScrollable !== 'virtual') {\n if (checked) {\n this.tableState.selectPage();\n } else {\n this.tableState.deselectPage();\n }\n } else {\n if (checked) {\n this.tableState.selectAll();\n } else {\n this.tableState.deselectAll();\n }\n }\n };\n\n handleSelectionChange = (ev: TableSelectionChangeEvent) => {\n if (!ev.dataItem) {\n return;\n }\n if (ev.nativeEvent.shiftKey && this.lastSelection) {\n const rows = this.tableState\n .getRowsBetween(this.lastSelection, ev.dataItem)\n .filter(row => this.tableState.isRowSelectable(row));\n const isAsc =\n this.tableState.dataSource?.idSelector?.(this.lastSelection) ===\n this.tableState.dataSource?.idSelector?.(rows[0]);\n const selection = !ev.dataItem.selected;\n\n if (selection) {\n const toBeSelected: Selectable<T>[] = [];\n for (const row of isAsc ? rows : rows.reverse()) {\n if (\n this.tableState.selectedCount + toBeSelected.length >=\n this.tableState.selectionLimit\n ) {\n break;\n }\n\n if (row.selected) {\n continue;\n }\n\n toBeSelected.push(row);\n }\n\n this.tableState.setRowsSelection(toBeSelected, selection);\n } else {\n this.tableState.setRowsSelection(rows, selection);\n }\n } else {\n this.tableState.toggleRowSelection(ev.dataItem);\n }\n\n this.lastSelection = ev.dataItem;\n };\n\n scrollToBottom = () => {\n if (this.ref.current) {\n const container = this.ref.current.getElementsByClassName(\n 'k-grid-content'\n )[0] as HTMLDivElement;\n container.scrollTop = container.scrollHeight - container.clientHeight * 2;\n container.scroll({ top: container.scrollHeight, behavior: 'smooth' });\n }\n };\n\n render() {\n if (\n this.tableState.dataSource instanceof AsyncDataSource &&\n this.props.scrollable === 'virtual' &&\n this.props.selectable\n ) {\n return (\n <Announcement\n status=\"critical\"\n title=\"AsyncDataSource doesn't support virtual scroll with selection.\"\n />\n );\n }\n\n const table = this.table();\n return (\n <Fragment>\n {table}\n {this.props.exportable && (\n <Fragment>\n <TablePDFExport\n ref={this.tableState.setTablePdfExportRef}\n fileName={sanitizeExportFileName(this.props.exportFileName)}\n >\n {this.props.children}\n {table}\n </TablePDFExport>\n <ExcelExport\n ref={this.tableState.setTableExcelExportRef}\n fileName={sanitizeExportFileName(this.props.exportFileName)}\n >\n {this.props.children}\n </ExcelExport>\n </Fragment>\n )}\n </Fragment>\n );\n }\n\n private getPageable() {\n if (this.props.scrollable === 'virtual' || !this.tableState.pageSize) {\n return false;\n }\n\n return this.props.pager ?? true;\n }\n\n private table = () => {\n const { className, filterOperators, selectable, pager, ...props } = this.props;\n\n return (\n <AnvilTable\n ref={this.ref}\n {...props}\n dataItemKey={this.tableState.rowIdKey}\n data={[...this.tableState.data]}\n rowRender={this.rowRender}\n editField=\"inEdit\"\n filter={this.tableState.filter}\n filterOperators={filterOperators ?? operators}\n onFilterChange={this.tableState.handleFilterChange}\n group={[...this.tableState.group] as AnvilTableProps['group']}\n onGroupChange={this.tableState.handleGroupChange}\n onExpandChange={this.tableState.handleExpandChange}\n expandField=\"expanded\"\n sort={[...this.tableState.sort]}\n onSortChange={this.tableState.handleSortChange}\n onHeaderSelectionChange={this.handleHeaderSelectionChange}\n onSelectionChange={this.handleSelectionChange}\n selectedField=\"selected\"\n pageable={this.getPageable()}\n pageSize={this.tableState.pageSize}\n skip={this.tableState.skip}\n onPageChange={this.tableState.handlePageChange}\n total={this.tableState.filteredCount}\n className={classNames(Styles.table, className)}\n selectable={{ enabled: selectable, mode: 'multiple' }}\n >\n {selectable && (\n <TableColumn\n locked\n field=\"selected\"\n id=\"selected\"\n width=\"50px\"\n filterable={false}\n resizable={false}\n reorderable={false}\n headerSelectionValue={\n props.scrollable !== 'virtual'\n ? this.tableState.isAllPageRowsSelected\n : this.tableState.isAllRowsSelected\n }\n headerCell={this.selectHeaderCell}\n cell={this.selectColumnCell}\n headerClassName=\"lh-1-i ta-center-i\"\n className={classNames(Styles.unselectable, 'lh-1-i', 'ta-center-i')}\n />\n )}\n {this.withCellTableState(props.children)}\n </AnvilTable>\n );\n };\n\n private getOrCreateCellComponentWithTableState = (\n Cell: any,\n field?: string\n ): FC<TableCellProps<T, TId, P, PId>> | undefined => {\n if (!Cell) {\n return undefined;\n }\n\n const CellWithTableState: FC<TableCellProps<T, TId, P, PId>> = (\n props: TableCellProps<T, TId, P, PId>\n ) => {\n const tdProps = useTdProps(props);\n return <Cell {...props} tableState={this.tableState} tdProps={tdProps} />;\n };\n CellWithTableState.displayName = 'CellWithTableState';\n\n if (field) {\n if (this.customCellMap.has(field)) {\n return this.customCellMap.get(field)!;\n }\n this.customCellMap.set(field, CellWithTableState);\n }\n return CellWithTableState;\n };\n}\n\nconst sanitizeExportFileName = memoizeOne((fileName: string | undefined) =>\n fileName?.replace(/\\.+/g, '_')\n);\n"],"names":["isValidElement","Component","createRef","cloneElement","Children","Fragment","Announcement","Table","AnvilTable","TableColumn","operators","kendoOperators","GridPDFExport","TablePDFExport","ExcelExport","observer","AsyncDataSource","SelectColumnCell","SelectHeaderCell","memoizeOne","classNames","Styles","action","makeObservable","observable","useTdProps","text","textOperators","filter","o","operator","isColumnElement","element","elementType","type","originalType","componentDidUpdate","observableScrollable","props","scrollable","observableSelectionControl","selectionControl","observableHideSelectAll","hideSelectAll","applyToColumns","children","transformer","map","child","render","tableState","dataSource","selectable","status","title","table","exportable","ref","setTablePdfExportRef","fileName","sanitizeExportFileName","exportFileName","setTableExcelExportRef","getPageable","pageSize","pager","constructor","observableSelectable","lastSelection","selectColumnCell","isRowSelectable","dataItem","control","customCellMap","Map","selectHeaderCell","selectionLimit","Infinity","isSomeRowsSelected","isSomePageRowsSelected","withCellTableState","column","cell","Cell","field","getOrCreateCellComponentWithTableState","rowRender","row","rowProps","overrides","rowType","className","disabled","result","Object","keys","length","handleHeaderSelectionChange","ev","checked","syntheticEvent","currentTarget","selectPage","deselectPage","selectAll","deselectAll","handleSelectionChange","nativeEvent","shiftKey","rows","getRowsBetween","isAsc","idSelector","selection","selected","toBeSelected","reverse","selectedCount","push","setRowsSelection","toggleRowSelection","scrollToBottom","current","container","getElementsByClassName","scrollTop","scrollHeight","clientHeight","scroll","top","behavior","filterOperators","dataItemKey","rowIdKey","data","editField","onFilterChange","handleFilterChange","group","onGroupChange","handleGroupChange","onExpandChange","handleExpandChange","expandField","sort","onSortChange","handleSortChange","onHeaderSelectionChange","onSelectionChange","selectedField","pageable","skip","onPageChange","handlePageChange","total","filteredCount","enabled","mode","locked","id","width","filterable","resizable","reorderable","headerSelectionValue","isAllPageRowsSelected","isAllRowsSelected","headerCell","headerClassName","unselectable","undefined","CellWithTableState","tdProps","displayName","has","get","set","replace"],"mappings":"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"}
|