@servicetitan/table 22.4.5 → 22.5.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +21 -0
- package/dist/demo/column-hiding/index.d.ts +2 -0
- package/dist/demo/column-hiding/index.d.ts.map +1 -0
- package/dist/demo/column-hiding/index.js +2 -0
- package/dist/demo/column-hiding/index.js.map +1 -0
- package/dist/demo/column-hiding/product.d.ts +27 -0
- package/dist/demo/column-hiding/product.d.ts.map +1 -0
- package/dist/demo/column-hiding/product.js +16 -0
- package/dist/demo/column-hiding/product.js.map +1 -0
- package/dist/demo/column-hiding/products.d.ts +3 -0
- package/dist/demo/column-hiding/products.d.ts.map +1 -0
- package/dist/demo/column-hiding/products.js +127 -0
- package/dist/demo/column-hiding/products.js.map +1 -0
- package/dist/demo/column-hiding/table.d.ts +3 -0
- package/dist/demo/column-hiding/table.d.ts.map +1 -0
- package/dist/demo/column-hiding/table.js +63 -0
- package/dist/demo/column-hiding/table.js.map +1 -0
- package/dist/demo/column-hiding/table.store.d.ts +9 -0
- package/dist/demo/column-hiding/table.store.d.ts.map +1 -0
- package/dist/demo/column-hiding/table.store.js +44 -0
- package/dist/demo/column-hiding/table.store.js.map +1 -0
- package/dist/demo/index.d.ts +1 -0
- package/dist/demo/index.d.ts.map +1 -1
- package/dist/demo/index.js +1 -0
- package/dist/demo/index.js.map +1 -1
- package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.d.ts +1 -1
- package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.d.ts.map +1 -1
- package/dist/table-state.d.ts +3 -1
- package/dist/table-state.d.ts.map +1 -1
- package/dist/table-state.js +8 -1
- package/dist/table-state.js.map +1 -1
- package/dist/table.d.ts +3 -1
- package/dist/table.d.ts.map +1 -1
- package/dist/table.js +28 -4
- package/dist/table.js.map +1 -1
- package/package.json +24 -24
- package/src/demo/column-hiding/index.ts +1 -0
- package/src/demo/column-hiding/product.ts +28 -0
- package/src/demo/column-hiding/products.ts +127 -0
- package/src/demo/column-hiding/table.store.ts +26 -0
- package/src/demo/column-hiding/table.tsx +118 -0
- package/src/demo/index.ts +1 -0
- package/src/filters/standard-filter-with-multiselect/filter-cell-ext.tsx +1 -1
- package/src/table-state.ts +18 -2
- package/src/table.stories.tsx +15 -0
- package/src/table.tsx +29 -6
package/dist/table.d.ts
CHANGED
@@ -10,7 +10,7 @@ interface TableColumnProps<T = never, TId extends IdType = any, P = never, PId e
|
|
10
10
|
cell?: ComponentType<TableCellProps<T, TId, P, PId>>;
|
11
11
|
children?: ReactElement<TableColumnProps<T, TId, P, PId>>[];
|
12
12
|
}
|
13
|
-
declare type ExcludedTableProps = 'data' | 'editField' | 'filter' | 'onFilterChange' | 'group' | 'onGroupChange' | 'onExpandChange' | 'expandField' | 'sort' | 'onSortChange' | 'onHeaderSelectionChange' | 'onSelectionChange' | 'selectedField' | 'pageable' | 'pageSize' | 'skip' | 'onPageChange' | 'total' | 'selectable' | 'pager';
|
13
|
+
declare type ExcludedTableProps = 'data' | 'dataItemKey' | 'editField' | 'filter' | 'onFilterChange' | 'group' | 'onGroupChange' | 'onExpandChange' | 'expandField' | 'sort' | 'onSortChange' | 'onHeaderSelectionChange' | 'onSelectionChange' | 'selectedField' | 'pageable' | 'pageSize' | 'skip' | 'onPageChange' | 'total' | 'selectable' | 'pager';
|
14
14
|
export interface TableProps<T, TId extends IdType = any, P = never, PId extends IdType = never> extends Omit<AnvilTableProps, ExcludedTableProps> {
|
15
15
|
selectable?: boolean;
|
16
16
|
exportable?: boolean;
|
@@ -25,6 +25,7 @@ export declare class Table<T, TId extends IdType = any, P = never, PId extends I
|
|
25
25
|
private ref;
|
26
26
|
private lastSelection?;
|
27
27
|
private selectColumnCell;
|
28
|
+
private customCellMap;
|
28
29
|
private selectHeaderCell;
|
29
30
|
private withCellTableState;
|
30
31
|
rowRender: (row: ReactElement, rowProps: TableRowProps) => ReactNode;
|
@@ -35,6 +36,7 @@ export declare class Table<T, TId extends IdType = any, P = never, PId extends I
|
|
35
36
|
render(): JSX.Element;
|
36
37
|
private getPageable;
|
37
38
|
private table;
|
39
|
+
private getOrCreateCellComponentWithTableState;
|
38
40
|
}
|
39
41
|
export {};
|
40
42
|
//# sourceMappingURL=table.d.ts.map
|
package/dist/table.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../src/table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEH,SAAS,EAKT,SAAS,EACT,YAAY,EACZ,aAAa,EAEhB,MAAM,OAAO,CAAC;AACf,OAAO,EAGH,UAAU,IAAI,eAAe,EAC7B,aAAa,EAEb,gBAAgB,IAAI,qBAAqB,EACzC,cAAc,IAAI,mBAAmB,EAErC,+BAA+B,EAC/B,yBAAyB,EACzB,kBAAkB,EACrB,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAAmB,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAc,MAAM,eAAe,CAAC;AACvD,OAAO,EACH,oBAAoB,EAGvB,MAAM,2BAA2B,CAAC;AA0BnC,MAAM,WAAW,cAAc,CAC3B,CAAC,GAAG,KAAK,EACT,GAAG,SAAS,MAAM,GAAG,GAAG,EACxB,CAAC,GAAG,KAAK,EACT,GAAG,SAAS,MAAM,GAAG,KAAK,CAC5B,SAAQ,mBAAmB;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;CAC3C;AAED,UAAU,gBAAgB,CACtB,CAAC,GAAG,KAAK,EACT,GAAG,SAAS,MAAM,GAAG,GAAG,EACxB,CAAC,GAAG,KAAK,EACT,GAAG,SAAS,MAAM,GAAG,KAAK,CAC5B,SAAQ,qBAAqB;IAC3B,IAAI,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;CAC/D;AAED,aAAK,kBAAkB,GACjB,MAAM,GACN,WAAW,GACX,QAAQ,GACR,gBAAgB,GAChB,OAAO,GACP,eAAe,GACf,gBAAgB,GAChB,aAAa,GACb,MAAM,GACN,cAAc,GACd,yBAAyB,GACzB,mBAAmB,GACnB,eAAe,GACf,UAAU,GACV,UAAU,GACV,MAAM,GACN,cAAc,GACd,OAAO,GACP,YAAY,GACZ,OAAO,CAAC;AAEd,MAAM,WAAW,UAAU,CAAC,CAAC,EAAE,GAAG,SAAS,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,SAAS,MAAM,GAAG,KAAK,CAC1F,SAAQ,IAAI,CAAC,eAAe,EAAE,kBAAkB,CAAC;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACvC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,qBACa,KAAK,CACd,CAAC,EACD,GAAG,SAAS,MAAM,GAAG,GAAG,EACxB,CAAC,GAAG,KAAK,EACT,GAAG,SAAS,MAAM,GAAG,KAAK,CAC5B,SAAQ,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAyB;IAE3C,OAAO,CAAC,GAAG,CAA4B;IAEvC,OAAO,CAAC,aAAa,CAAC,CAAgB;IAEtC,OAAO,CAAC,gBAAgB,CAMrB;IAEH,OAAO,CAAC,gBAAgB,CAgBrB;IAGH,OAAO,CAAC,kBAAkB,
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../src/table.tsx"],"names":[],"mappings":"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"}
|
package/dist/table.js
CHANGED
@@ -65,6 +65,12 @@ let Table = class Table extends Component {
|
|
65
65
|
writable: true,
|
66
66
|
value: observer((props) => (_jsx(SelectColumnCell, Object.assign({}, props, { isRowSelectable: this.tableState.isRowSelectable(props.dataItem), control: this.props.selectionControl }))))
|
67
67
|
});
|
68
|
+
Object.defineProperty(this, "customCellMap", {
|
69
|
+
enumerable: true,
|
70
|
+
configurable: true,
|
71
|
+
writable: true,
|
72
|
+
value: new Map()
|
73
|
+
});
|
68
74
|
Object.defineProperty(this, "selectHeaderCell", {
|
69
75
|
enumerable: true,
|
70
76
|
configurable: true,
|
@@ -84,10 +90,9 @@ let Table = class Table extends Component {
|
|
84
90
|
configurable: true,
|
85
91
|
writable: true,
|
86
92
|
value: memoizeOne((children) => this.applyToColumns(children, column => {
|
87
|
-
const { cell: Cell } = column.props;
|
93
|
+
const { cell: Cell, field } = column.props;
|
88
94
|
return cloneElement(column, {
|
89
|
-
cell: Cell
|
90
|
-
((props) => (_jsx(Cell, Object.assign({}, props, { tableState: this.tableState })))),
|
95
|
+
cell: this.getOrCreateCellComponentWithTableState(Cell, field),
|
91
96
|
});
|
92
97
|
}))
|
93
98
|
});
|
@@ -188,11 +193,30 @@ let Table = class Table extends Component {
|
|
188
193
|
writable: true,
|
189
194
|
value: () => {
|
190
195
|
const _a = this.props, { className, filterOperators, selectable, pager } = _a, props = __rest(_a, ["className", "filterOperators", "selectable", "pager"]);
|
191
|
-
return (_jsxs(AnvilTable, Object.assign({ ref: this.ref }, props, { data: [...this.tableState.data], rowRender: this.rowRender, editField: "inEdit", filter: this.tableState.filter, filterOperators: filterOperators !== null && filterOperators !== void 0 ? filterOperators : operators, onFilterChange: this.tableState.handleFilterChange, group: [...this.tableState.group], onGroupChange: this.tableState.handleGroupChange, onExpandChange: this.tableState.handleExpandChange, expandField: "expanded", sort: [...this.tableState.sort], onSortChange: this.tableState.handleSortChange, onHeaderSelectionChange: this.handleHeaderSelectionChange, onSelectionChange: this.handleSelectionChange, selectedField: "selected", pageable: this.getPageable(), pageSize: this.tableState.pageSize, skip: this.tableState.skip, onPageChange: this.tableState.handlePageChange, total: this.tableState.filteredCount, className: classNames(Styles.table, className), selectable: { enabled: selectable, mode: 'multiple' } }, { children: [selectable && (_jsx(TableColumn, { locked: true, field: "selected", width: "50px", filterable: false, resizable: false, headerSelectionValue: props.scrollable !== 'virtual'
|
196
|
+
return (_jsxs(AnvilTable, Object.assign({ ref: this.ref }, props, { dataItemKey: this.tableState.rowIdKey, data: [...this.tableState.data], rowRender: this.rowRender, editField: "inEdit", filter: this.tableState.filter, filterOperators: filterOperators !== null && filterOperators !== void 0 ? filterOperators : operators, onFilterChange: this.tableState.handleFilterChange, group: [...this.tableState.group], onGroupChange: this.tableState.handleGroupChange, onExpandChange: this.tableState.handleExpandChange, expandField: "expanded", sort: [...this.tableState.sort], onSortChange: this.tableState.handleSortChange, onHeaderSelectionChange: this.handleHeaderSelectionChange, onSelectionChange: this.handleSelectionChange, selectedField: "selected", pageable: this.getPageable(), pageSize: this.tableState.pageSize, skip: this.tableState.skip, onPageChange: this.tableState.handlePageChange, total: this.tableState.filteredCount, className: classNames(Styles.table, className), selectable: { enabled: selectable, mode: 'multiple' } }, { children: [selectable && (_jsx(TableColumn, { locked: true, field: "selected", id: "selected", width: "50px", filterable: false, resizable: false, headerSelectionValue: props.scrollable !== 'virtual'
|
192
197
|
? this.tableState.isAllPageRowsSelected
|
193
198
|
: this.tableState.isAllRowsSelected, headerCell: this.selectHeaderCell, cell: this.selectColumnCell, headerClassName: "lh-1-i ta-center-i", className: classNames(Styles.unselectable, 'lh-1-i', 'ta-center-i') })), this.withCellTableState(props.children)] })));
|
194
199
|
}
|
195
200
|
});
|
201
|
+
Object.defineProperty(this, "getOrCreateCellComponentWithTableState", {
|
202
|
+
enumerable: true,
|
203
|
+
configurable: true,
|
204
|
+
writable: true,
|
205
|
+
value: (Cell, field) => {
|
206
|
+
if (!Cell) {
|
207
|
+
return undefined;
|
208
|
+
}
|
209
|
+
const CellWithTableState = (props) => _jsx(Cell, Object.assign({}, props, { tableState: this.tableState }));
|
210
|
+
CellWithTableState.displayName = 'CellWithTableState';
|
211
|
+
if (field) {
|
212
|
+
if (this.customCellMap.has(field)) {
|
213
|
+
return this.customCellMap.get(field);
|
214
|
+
}
|
215
|
+
this.customCellMap.set(field, CellWithTableState);
|
216
|
+
}
|
217
|
+
return CellWithTableState;
|
218
|
+
}
|
219
|
+
});
|
196
220
|
}
|
197
221
|
applyToColumns(children, transformer) {
|
198
222
|
return Children.map(children, child => {
|
package/dist/table.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,EACH,cAAc,EACd,SAAS,EACT,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,QAAQ,GAKX,MAAM,OAAO,CAAC;AACf,OAAO,EACH,YAAY,EACZ,KAAK,IAAI,UAAU,EAGnB,WAAW,GAOd,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAC/F,OAAO,EAAE,aAAa,IAAI,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAU,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAEH,gBAAgB,EAChB,gBAAgB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAE7C,MAAM,EAAE,IAAI,EAAE,aAAa,KAAmB,cAAc,EAA5B,SAAS,UAAK,cAAc,EAAtD,QAAqC,CAAiB,CAAC;AAC7D,SAAS,CAAC,IAAI,GAAG;IACb,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC;CACtF,CAAC;AAEF,SAAS,eAAe,CAKtB,OAAkB;IAChB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;QAC1B,OAAO,KAAK,CAAC;KAChB;IAED,MAAM,WAAW,GAAI,OAAwB,CAAC,IAAI,CAAC;IAEnD,OAAO,WAAW,KAAK,WAAW,IAAK,WAAmB,CAAC,YAAY,KAAK,WAAW,CAAC;AAC5F,CAAC;
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@servicetitan/table",
|
3
|
-
"version": "22.
|
3
|
+
"version": "22.5.0",
|
4
4
|
"description": "",
|
5
5
|
"homepage": "https://docs.st.dev/docs/frontend/table",
|
6
6
|
"repository": {
|
@@ -16,35 +16,35 @@
|
|
16
16
|
"src"
|
17
17
|
],
|
18
18
|
"dependencies": {
|
19
|
-
"@progress/kendo-data-query": "~1.
|
20
|
-
"@progress/kendo-drawing": "~1.
|
19
|
+
"@progress/kendo-data-query": "~1.6.0",
|
20
|
+
"@progress/kendo-drawing": "~1.17.1",
|
21
21
|
"@progress/kendo-licensing": "~1.2.0",
|
22
22
|
"@progress/kendo-ooxml": "~1.6.2",
|
23
|
-
"@progress/kendo-react-animation": "~
|
24
|
-
"@progress/kendo-react-buttons": "~
|
25
|
-
"@progress/kendo-react-data-tools": "~
|
26
|
-
"@progress/kendo-react-dateinputs": "~
|
27
|
-
"@progress/kendo-react-dropdowns": "~
|
28
|
-
"@progress/kendo-react-excel-export": "~
|
29
|
-
"@progress/kendo-react-grid": "~
|
30
|
-
"@progress/kendo-react-inputs": "~
|
31
|
-
"@progress/kendo-react-intl": "~
|
32
|
-
"@progress/kendo-react-pdf": "~
|
33
|
-
"@progress/kendo-react-popup": "~
|
34
|
-
"@progress/kendo-react-treeview": "~
|
23
|
+
"@progress/kendo-react-animation": "~5.5.0",
|
24
|
+
"@progress/kendo-react-buttons": "~5.5.0",
|
25
|
+
"@progress/kendo-react-data-tools": "~5.5.0",
|
26
|
+
"@progress/kendo-react-dateinputs": "~5.5.0",
|
27
|
+
"@progress/kendo-react-dropdowns": "~5.5.0",
|
28
|
+
"@progress/kendo-react-excel-export": "~5.5.0",
|
29
|
+
"@progress/kendo-react-grid": "~5.5.0",
|
30
|
+
"@progress/kendo-react-inputs": "~5.5.0",
|
31
|
+
"@progress/kendo-react-intl": "~5.5.0",
|
32
|
+
"@progress/kendo-react-pdf": "~5.5.0",
|
33
|
+
"@progress/kendo-react-popup": "~5.5.0",
|
34
|
+
"@progress/kendo-react-treeview": "~5.5.0",
|
35
35
|
"classnames": "~2.3.1",
|
36
36
|
"memoize-one": "~6.0.0"
|
37
37
|
},
|
38
38
|
"devDependencies": {
|
39
|
-
"@servicetitan/data-query": "^22.
|
40
|
-
"@servicetitan/design-system": "~
|
41
|
-
"@servicetitan/form": "^22.
|
39
|
+
"@servicetitan/data-query": "^22.5.0",
|
40
|
+
"@servicetitan/design-system": "~12.4.0",
|
41
|
+
"@servicetitan/form": "^22.5.0",
|
42
42
|
"@servicetitan/react-ioc": "^21.6.0",
|
43
43
|
"@servicetitan/suppress-warnings": "^21.6.0",
|
44
44
|
"@types/accounting": "~0.4.2",
|
45
45
|
"@types/react": "~17.0.38",
|
46
46
|
"accounting": "~0.4.1",
|
47
|
-
"formstate": "~2.
|
47
|
+
"formstate": "~2.1.0",
|
48
48
|
"mobx": "~6.6.0",
|
49
49
|
"mobx-react": "~7.5.0",
|
50
50
|
"mobx-utils": "~6.0.5",
|
@@ -52,13 +52,13 @@
|
|
52
52
|
"react": "~17.0.2"
|
53
53
|
},
|
54
54
|
"peerDependencies": {
|
55
|
-
"@servicetitan/data-query": "^22.
|
56
|
-
"@servicetitan/design-system": ">
|
57
|
-
"@servicetitan/form": "^22.
|
55
|
+
"@servicetitan/data-query": "^22.5.0",
|
56
|
+
"@servicetitan/design-system": ">12.4.0",
|
57
|
+
"@servicetitan/form": "^22.5.0",
|
58
58
|
"@servicetitan/react-ioc": ">21.0.0",
|
59
59
|
"@servicetitan/suppress-warnings": ">21.0.0",
|
60
60
|
"accounting": "~0.4.1",
|
61
|
-
"formstate": "~2.
|
61
|
+
"formstate": "~2.1.0",
|
62
62
|
"mobx": "~6.6.0",
|
63
63
|
"mobx-react": "~7.5.0",
|
64
64
|
"mobx-utils": "~6.0.5",
|
@@ -71,5 +71,5 @@
|
|
71
71
|
"cli": {
|
72
72
|
"webpack": false
|
73
73
|
},
|
74
|
-
"gitHead": "
|
74
|
+
"gitHead": "4aa6870f390e31bca1b4657f24ab621c96c6226a"
|
75
75
|
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './table';
|
@@ -0,0 +1,28 @@
|
|
1
|
+
export enum UserRole {
|
2
|
+
Unspecified,
|
3
|
+
Technician,
|
4
|
+
GeneralOffice,
|
5
|
+
Admin,
|
6
|
+
Owner,
|
7
|
+
}
|
8
|
+
|
9
|
+
export enum Supplier {
|
10
|
+
Dan = 1,
|
11
|
+
Adam,
|
12
|
+
Charlie,
|
13
|
+
Benjamin,
|
14
|
+
}
|
15
|
+
|
16
|
+
export interface Product {
|
17
|
+
ProductID: number;
|
18
|
+
ProductName: string;
|
19
|
+
Supplier: Supplier;
|
20
|
+
CategoryID: number;
|
21
|
+
MadeIn: string;
|
22
|
+
QuantityPerUnit: string;
|
23
|
+
UnitPrice: number;
|
24
|
+
UnitsInStock: number;
|
25
|
+
UnitsOnOrder: Date;
|
26
|
+
Discontinued: boolean;
|
27
|
+
AvailableFor?: UserRole;
|
28
|
+
}
|
@@ -0,0 +1,127 @@
|
|
1
|
+
import { Product, UserRole, Supplier } from './product';
|
2
|
+
|
3
|
+
export const products: Product[] = [
|
4
|
+
{
|
5
|
+
ProductID: 101,
|
6
|
+
ProductName: 'Chai',
|
7
|
+
Supplier: Supplier.Dan,
|
8
|
+
CategoryID: 1,
|
9
|
+
MadeIn: 'China',
|
10
|
+
QuantityPerUnit: '10 boxes x 20 bags',
|
11
|
+
UnitPrice: 18.0,
|
12
|
+
UnitsInStock: 39,
|
13
|
+
UnitsOnOrder: new Date('1/11/2019'),
|
14
|
+
Discontinued: false,
|
15
|
+
AvailableFor: UserRole.Admin,
|
16
|
+
},
|
17
|
+
{
|
18
|
+
ProductID: 102,
|
19
|
+
ProductName: 'Chang',
|
20
|
+
Supplier: Supplier.Dan,
|
21
|
+
CategoryID: 1,
|
22
|
+
MadeIn: 'Thailand',
|
23
|
+
QuantityPerUnit: '24 - 12 oz bottles',
|
24
|
+
UnitPrice: 19.0,
|
25
|
+
UnitsInStock: 17,
|
26
|
+
UnitsOnOrder: new Date('2/11/2019'),
|
27
|
+
Discontinued: false,
|
28
|
+
},
|
29
|
+
{
|
30
|
+
ProductID: 103,
|
31
|
+
ProductName: 'Aniseed Syrup',
|
32
|
+
Supplier: Supplier.Dan,
|
33
|
+
CategoryID: 2,
|
34
|
+
MadeIn: 'France',
|
35
|
+
QuantityPerUnit: '12 - 550 ml bottles',
|
36
|
+
UnitPrice: 10.0,
|
37
|
+
UnitsInStock: 13,
|
38
|
+
UnitsOnOrder: new Date('3/11/2019'),
|
39
|
+
Discontinued: false,
|
40
|
+
AvailableFor: UserRole.Owner,
|
41
|
+
},
|
42
|
+
{
|
43
|
+
ProductID: 104,
|
44
|
+
ProductName: "Chef Anton's Cajun Seasoning",
|
45
|
+
Supplier: Supplier.Adam,
|
46
|
+
CategoryID: 2,
|
47
|
+
MadeIn: 'USA',
|
48
|
+
QuantityPerUnit: '48 - 6 oz jars',
|
49
|
+
UnitPrice: 22.0,
|
50
|
+
UnitsInStock: 53,
|
51
|
+
UnitsOnOrder: new Date('4/11/2019'),
|
52
|
+
Discontinued: false,
|
53
|
+
},
|
54
|
+
{
|
55
|
+
ProductID: 105,
|
56
|
+
ProductName: "Chef Anton's Gumbo Mix",
|
57
|
+
Supplier: Supplier.Adam,
|
58
|
+
CategoryID: 2,
|
59
|
+
MadeIn: 'USA',
|
60
|
+
QuantityPerUnit: '36 boxes',
|
61
|
+
UnitPrice: 21.35,
|
62
|
+
UnitsInStock: 0,
|
63
|
+
UnitsOnOrder: new Date('5/11/2019'),
|
64
|
+
Discontinued: true,
|
65
|
+
AvailableFor: UserRole.GeneralOffice,
|
66
|
+
},
|
67
|
+
{
|
68
|
+
ProductID: 106,
|
69
|
+
ProductName: "Grandma's Boysenberry Spread",
|
70
|
+
Supplier: Supplier.Charlie,
|
71
|
+
CategoryID: 2,
|
72
|
+
MadeIn: 'Norway',
|
73
|
+
QuantityPerUnit: '12 - 8 oz jars',
|
74
|
+
UnitPrice: 25.0,
|
75
|
+
UnitsInStock: 120,
|
76
|
+
UnitsOnOrder: new Date('6/11/2019'),
|
77
|
+
Discontinued: false,
|
78
|
+
},
|
79
|
+
{
|
80
|
+
ProductID: 107,
|
81
|
+
ProductName: "Uncle Bob's Organic Dried Pears",
|
82
|
+
Supplier: Supplier.Charlie,
|
83
|
+
CategoryID: 7,
|
84
|
+
MadeIn: 'USA',
|
85
|
+
QuantityPerUnit: '12 - 1 lb pkgs.',
|
86
|
+
UnitPrice: 30.0,
|
87
|
+
UnitsInStock: 15,
|
88
|
+
UnitsOnOrder: new Date('7/11/2019'),
|
89
|
+
Discontinued: false,
|
90
|
+
},
|
91
|
+
{
|
92
|
+
ProductID: 108,
|
93
|
+
ProductName: 'Northwoods Cranberry Sauce',
|
94
|
+
Supplier: Supplier.Charlie,
|
95
|
+
CategoryID: 2,
|
96
|
+
MadeIn: 'Norway',
|
97
|
+
QuantityPerUnit: '12 - 12 oz jars',
|
98
|
+
UnitPrice: 40.0,
|
99
|
+
UnitsInStock: 6,
|
100
|
+
UnitsOnOrder: new Date('8/11/2019'),
|
101
|
+
Discontinued: false,
|
102
|
+
},
|
103
|
+
{
|
104
|
+
ProductID: 109,
|
105
|
+
ProductName: 'Mishi Kobe Niku',
|
106
|
+
Supplier: Supplier.Benjamin,
|
107
|
+
CategoryID: 6,
|
108
|
+
MadeIn: 'Japan',
|
109
|
+
QuantityPerUnit: '18 - 500 g pkgs.',
|
110
|
+
UnitPrice: 97.0,
|
111
|
+
UnitsInStock: 29,
|
112
|
+
UnitsOnOrder: new Date('9/11/2019'),
|
113
|
+
Discontinued: true,
|
114
|
+
},
|
115
|
+
{
|
116
|
+
ProductID: 110,
|
117
|
+
ProductName: 'Ikura',
|
118
|
+
Supplier: Supplier.Benjamin,
|
119
|
+
CategoryID: 8,
|
120
|
+
MadeIn: 'Japan',
|
121
|
+
QuantityPerUnit: '12 - 200 ml jars',
|
122
|
+
UnitPrice: 31.0,
|
123
|
+
UnitsInStock: 31,
|
124
|
+
UnitsOnOrder: new Date('10/11/2019'),
|
125
|
+
Discontinued: false,
|
126
|
+
},
|
127
|
+
];
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { injectable } from '@servicetitan/react-ioc';
|
2
|
+
import { IdType, InMemoryDataSource, TableState } from '../..';
|
3
|
+
import { Product, UserRole, Supplier } from './product';
|
4
|
+
import { products } from './products';
|
5
|
+
|
6
|
+
@injectable()
|
7
|
+
export class TableStore {
|
8
|
+
rowIdKey: keyof Product = 'ProductID';
|
9
|
+
|
10
|
+
tableState = new TableState({
|
11
|
+
dataSource: this.getDataSource(),
|
12
|
+
pageSize: 5,
|
13
|
+
rowIdKey: this.rowIdKey,
|
14
|
+
});
|
15
|
+
|
16
|
+
private getDataSource() {
|
17
|
+
return new InMemoryDataSource(products, this.idSelector, {
|
18
|
+
Supplier: (value: Supplier) => Supplier[value],
|
19
|
+
AvailableFor: (value: UserRole | undefined) => value && UserRole[value],
|
20
|
+
});
|
21
|
+
}
|
22
|
+
|
23
|
+
private idSelector(row: Product) {
|
24
|
+
return row[this.rowIdKey] as IdType;
|
25
|
+
}
|
26
|
+
}
|
@@ -0,0 +1,118 @@
|
|
1
|
+
import { Fragment, FC, memo, useCallback, useState } from 'react';
|
2
|
+
import { provide, useDependencies } from '@servicetitan/react-ioc';
|
3
|
+
import { observer } from 'mobx-react';
|
4
|
+
|
5
|
+
import { Table, TableColumn, TableCellProps } from '../..';
|
6
|
+
import { TableStore } from './table.store';
|
7
|
+
import { Supplier } from './product';
|
8
|
+
import { TableCell } from '@servicetitan/design-system';
|
9
|
+
|
10
|
+
const SupplierCell: FC<TableCellProps> = props => {
|
11
|
+
const { field, dataItem } = props;
|
12
|
+
|
13
|
+
return <td>{Supplier[dataItem[field!]]}</td>;
|
14
|
+
};
|
15
|
+
|
16
|
+
const columns = [
|
17
|
+
{ field: 'ProductID', title: 'ID', minWidth: 50 },
|
18
|
+
{ field: 'ProductName', title: 'Name', minWidth: 200 },
|
19
|
+
{ field: 'Supplier', title: 'Supplier', minWidth: 200 },
|
20
|
+
{ field: 'MadeIn', title: 'Made In', minWidth: 200 },
|
21
|
+
{ field: 'QuantityPerUnit', title: 'Quantity Per Unit', minWidth: 200 },
|
22
|
+
{ field: 'UnitPrice', title: 'Price', minWidth: 100 },
|
23
|
+
{ field: 'UnitsInStock', title: 'In stock', minWidth: 100 },
|
24
|
+
{ field: 'UnitsOnOrder', title: 'On Order', minWidth: 100 },
|
25
|
+
{ field: 'Discontinued', title: 'Discontinued', minWidth: 100 },
|
26
|
+
];
|
27
|
+
|
28
|
+
const CheckboxRow = memo(({ field, label, checked, onChange }: any) => {
|
29
|
+
const handleChange = useCallback(
|
30
|
+
event => {
|
31
|
+
onChange(field, event.target.checked);
|
32
|
+
},
|
33
|
+
[field, onChange]
|
34
|
+
);
|
35
|
+
|
36
|
+
return (
|
37
|
+
<div>
|
38
|
+
<label>
|
39
|
+
<input type="checkbox" checked={checked} onChange={handleChange} /> {label}
|
40
|
+
</label>
|
41
|
+
</div>
|
42
|
+
);
|
43
|
+
});
|
44
|
+
|
45
|
+
const HiddenColumns = ({ onChange, checkedColumns }: any) => {
|
46
|
+
const handleChange = useCallback(
|
47
|
+
(field: string, checked: boolean) => {
|
48
|
+
const newState = new Set(Array.from(checkedColumns));
|
49
|
+
if (checked) {
|
50
|
+
newState.add(field);
|
51
|
+
} else {
|
52
|
+
newState.delete(field);
|
53
|
+
}
|
54
|
+
onChange(newState);
|
55
|
+
},
|
56
|
+
[checkedColumns, onChange]
|
57
|
+
);
|
58
|
+
return (
|
59
|
+
<div>
|
60
|
+
<span>Select columns to hide</span>
|
61
|
+
<div>
|
62
|
+
{columns.map(col => (
|
63
|
+
<CheckboxRow
|
64
|
+
key={col.field}
|
65
|
+
field={col.field}
|
66
|
+
label={col.title}
|
67
|
+
onChange={handleChange}
|
68
|
+
checked={checkedColumns.has(col.field)}
|
69
|
+
/>
|
70
|
+
))}
|
71
|
+
</div>
|
72
|
+
</div>
|
73
|
+
);
|
74
|
+
};
|
75
|
+
|
76
|
+
const CellProvider = (props: TableCellProps) => {
|
77
|
+
if (props.field === 'Supplier') {
|
78
|
+
return <SupplierCell {...props} />;
|
79
|
+
}
|
80
|
+
return <TableCell {...props} />;
|
81
|
+
};
|
82
|
+
|
83
|
+
export const TableColumnHidingExample: FC = provide({
|
84
|
+
singletons: [TableStore],
|
85
|
+
})(
|
86
|
+
observer(() => {
|
87
|
+
const [{ tableState }] = useDependencies(TableStore);
|
88
|
+
const [hiddenColumns, setHiddenColumns] = useState(new Set());
|
89
|
+
|
90
|
+
const handleHiddenColumnsChange = useCallback(columns => {
|
91
|
+
setHiddenColumns(new Set([...columns]));
|
92
|
+
}, []);
|
93
|
+
|
94
|
+
return (
|
95
|
+
<Fragment>
|
96
|
+
<HiddenColumns
|
97
|
+
checkedColumns={hiddenColumns}
|
98
|
+
onChange={handleHiddenColumnsChange}
|
99
|
+
/>
|
100
|
+
<Table tableState={tableState} striped={false}>
|
101
|
+
{columns
|
102
|
+
.filter(col => !hiddenColumns.has(col.field))
|
103
|
+
.map(column => {
|
104
|
+
return (
|
105
|
+
<TableColumn
|
106
|
+
field={column.field}
|
107
|
+
title={column.title}
|
108
|
+
key={column.field}
|
109
|
+
id={column.field}
|
110
|
+
cell={CellProvider}
|
111
|
+
/>
|
112
|
+
);
|
113
|
+
})}
|
114
|
+
</Table>
|
115
|
+
</Fragment>
|
116
|
+
);
|
117
|
+
})
|
118
|
+
);
|
package/src/demo/index.ts
CHANGED
@@ -38,7 +38,7 @@ export interface FilterCellExtProps extends TableColumnMenuFilterCellProps {
|
|
38
38
|
multiselectTagRender?(
|
39
39
|
tagData: MultiSelectTagData,
|
40
40
|
li: ReactElement<HTMLLIElement>
|
41
|
-
): ReactElement<HTMLLIElement
|
41
|
+
): ReactElement<HTMLLIElement>;
|
42
42
|
multiselectListNoDataRender?(element: ReactElement<HTMLDivElement>): ReactNode;
|
43
43
|
}
|
44
44
|
|
package/src/table-state.ts
CHANGED
@@ -86,6 +86,7 @@ interface TableStateConstructorParams<
|
|
86
86
|
getDetailTableState?: (row: T) => TableState<any, any, any, any> | undefined;
|
87
87
|
initialState?: TableStateModel<TId>;
|
88
88
|
alwaysEditable?: boolean;
|
89
|
+
rowIdKey?: string;
|
89
90
|
}
|
90
91
|
|
91
92
|
interface FetchDataParams {
|
@@ -128,6 +129,7 @@ export interface ITableState<T, TId extends IdType = never> {
|
|
128
129
|
|
129
130
|
export class TableState<T, TId extends IdType = never, P = never, PId extends IdType = never> {
|
130
131
|
@observable private innerDataSource: DataSource<T, TId> | null;
|
132
|
+
|
131
133
|
@computed get dataSource() {
|
132
134
|
return this.innerDataSource;
|
133
135
|
}
|
@@ -157,7 +159,8 @@ export class TableState<T, TId extends IdType = never, P = never, PId extends Id
|
|
157
159
|
}
|
158
160
|
}
|
159
161
|
|
160
|
-
@computed
|
162
|
+
@computed
|
163
|
+
private get originalData() {
|
161
164
|
const result: Selectable<T>[] = [];
|
162
165
|
|
163
166
|
this.traverse(this.data, item => {
|
@@ -188,19 +191,25 @@ export class TableState<T, TId extends IdType = never, P = never, PId extends Id
|
|
188
191
|
@observable filteredCount = 0;
|
189
192
|
@observable selectedCount = 0;
|
190
193
|
@observable unselectableCount = 0;
|
194
|
+
|
191
195
|
@computed get unselectedCount() {
|
192
196
|
return this.totalCount - this.selectedCount;
|
193
197
|
}
|
198
|
+
|
194
199
|
@computed get selectableCount() {
|
195
200
|
return this.totalCount - this.unselectableCount;
|
196
201
|
}
|
202
|
+
|
197
203
|
@computed get filteredUnselectableCount() {
|
198
204
|
return this.originalData.filter(this.isRowUnselectable).length;
|
199
205
|
}
|
206
|
+
|
200
207
|
@computed get filteredSelectableCount() {
|
201
208
|
return this.originalData.length - this.filteredUnselectableCount;
|
202
209
|
}
|
203
|
-
|
210
|
+
|
211
|
+
@computed
|
212
|
+
private get totalFilteredSelectableCountPromise() {
|
204
213
|
return fromPromise(
|
205
214
|
new Promise<number>((resolve, reject) => {
|
206
215
|
if (!this.dataSource) {
|
@@ -221,19 +230,23 @@ export class TableState<T, TId extends IdType = never, P = never, PId extends Id
|
|
221
230
|
})
|
222
231
|
);
|
223
232
|
}
|
233
|
+
|
224
234
|
@computed get totalFilteredSelectableCount(): number {
|
225
235
|
return (this.totalFilteredSelectableCountPromise.value as number) || 0;
|
226
236
|
}
|
237
|
+
|
227
238
|
@observable sort: SortDescriptor[] = [];
|
228
239
|
@observable filter: CompositeFilterDescriptor | undefined;
|
229
240
|
|
230
241
|
@observable aggregates: AggregateDescriptor[] = [];
|
231
242
|
|
232
243
|
@observable innerGroup: GroupDescriptor[] = [];
|
244
|
+
|
233
245
|
@computed
|
234
246
|
get group(): GroupDescriptor[] {
|
235
247
|
return addAggregatesToGroups(this.innerGroup, this.aggregates);
|
236
248
|
}
|
249
|
+
|
237
250
|
set group(value: GroupDescriptor[]) {
|
238
251
|
this.innerGroup = value;
|
239
252
|
}
|
@@ -244,10 +257,12 @@ export class TableState<T, TId extends IdType = never, P = never, PId extends Id
|
|
244
257
|
private tablePdfExport: TablePDFExport | null = null;
|
245
258
|
private tableExcelExport: ExcelExport | null = null;
|
246
259
|
|
260
|
+
rowIdKey?: string;
|
247
261
|
alwaysEditable: boolean;
|
248
262
|
|
249
263
|
constructor({
|
250
264
|
dataSource = null,
|
265
|
+
rowIdKey,
|
251
266
|
pageSize,
|
252
267
|
isRowUnselectable = () => false,
|
253
268
|
selectionLimit = Infinity,
|
@@ -263,6 +278,7 @@ export class TableState<T, TId extends IdType = never, P = never, PId extends Id
|
|
263
278
|
this.pageSize = pageSize;
|
264
279
|
this.isRowUnselectable = isRowUnselectable;
|
265
280
|
this.selectionLimit = selectionLimit;
|
281
|
+
this.rowIdKey = rowIdKey;
|
266
282
|
|
267
283
|
this.getFormState = getFormState;
|
268
284
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import {
|
2
|
+
TableExample,
|
3
|
+
TableMasterDetailExample,
|
4
|
+
TableStateCachingExample,
|
5
|
+
TableColumnHidingExample
|
6
|
+
} from '../dist/demo';
|
7
|
+
|
8
|
+
export default {
|
9
|
+
title: 'Table/Demos'
|
10
|
+
};
|
11
|
+
|
12
|
+
export const Table = () => <TableExample />;
|
13
|
+
export const TableMasterDetail = () => <TableMasterDetailExample />;
|
14
|
+
export const TableStateCaching = () => <TableStateCachingExample />;
|
15
|
+
export const TableColumnHiding = () => <TableColumnHidingExample />;
|