@oc-digital/react-component-library 7.2.5-beta.0 → 7.3.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/build/index.d.ts +2 -1
- package/build/index.js +1 -1
- package/package.json +1 -1
- package/build/Alert/Alert.js +0 -43
- package/build/Alert/Alert.js.map +0 -1
- package/build/Alert/Alert.types.js +0 -2
- package/build/Alert/Alert.types.js.map +0 -1
- package/build/AlphabeticalList/AlphabeticalList.js +0 -81
- package/build/AlphabeticalList/AlphabeticalList.js.map +0 -1
- package/build/AlphabeticalList/AlphabeticalList.types.js +0 -2
- package/build/AlphabeticalList/AlphabeticalList.types.js.map +0 -1
- package/build/Breadcrumbs/Breadcrumbs.js +0 -137
- package/build/Breadcrumbs/Breadcrumbs.js.map +0 -1
- package/build/Breadcrumbs/Breadcrumbs.types.js +0 -2
- package/build/Breadcrumbs/Breadcrumbs.types.js.map +0 -1
- package/build/Button/Button.js +0 -54
- package/build/Button/Button.js.map +0 -1
- package/build/Button/Button.types.js +0 -2
- package/build/Button/Button.types.js.map +0 -1
- package/build/ButtonWithConfirm/ButtonWithConfirm.js +0 -66
- package/build/ButtonWithConfirm/ButtonWithConfirm.js.map +0 -1
- package/build/ButtonWithConfirm/ButtonWithConfirm.types.js +0 -2
- package/build/ButtonWithConfirm/ButtonWithConfirm.types.js.map +0 -1
- package/build/ContentBox/ContentBox.js +0 -22
- package/build/ContentBox/ContentBox.js.map +0 -1
- package/build/ContentBox/ContentBox.types.js +0 -2
- package/build/ContentBox/ContentBox.types.js.map +0 -1
- package/build/ContentLabel/ContentLabel.js +0 -10
- package/build/ContentLabel/ContentLabel.js.map +0 -1
- package/build/ContentLabel/ContentLabel.types.js +0 -2
- package/build/ContentLabel/ContentLabel.types.js.map +0 -1
- package/build/DatePicker/DatePicker.js +0 -40
- package/build/DatePicker/DatePicker.js.map +0 -1
- package/build/DatePicker/DatePicker.types.js +0 -2
- package/build/DatePicker/DatePicker.types.js.map +0 -1
- package/build/EditableTable/EditableTable.js +0 -434
- package/build/EditableTable/EditableTable.js.map +0 -1
- package/build/EditableTable/EditableTable.types.js +0 -2
- package/build/EditableTable/EditableTable.types.js.map +0 -1
- package/build/EditableTable/defaultCells.js +0 -166
- package/build/EditableTable/defaultCells.js.map +0 -1
- package/build/EntityList/EntityList.js +0 -54
- package/build/EntityList/EntityList.js.map +0 -1
- package/build/EntityList/EntityList.types.js +0 -2
- package/build/EntityList/EntityList.types.js.map +0 -1
- package/build/ErrorIndicator/ErrorIndicator.js +0 -24
- package/build/ErrorIndicator/ErrorIndicator.js.map +0 -1
- package/build/ErrorIndicator/ErrorIndicator.types.js +0 -2
- package/build/ErrorIndicator/ErrorIndicator.types.js.map +0 -1
- package/build/ImageDisplayAndUpload/ImageDisplayAndUpload.js +0 -309
- package/build/ImageDisplayAndUpload/ImageDisplayAndUpload.js.map +0 -1
- package/build/ImageDisplayAndUpload/ImageDisplayAndUpload.types.js +0 -2
- package/build/ImageDisplayAndUpload/ImageDisplayAndUpload.types.js.map +0 -1
- package/build/KeyboardDatePicker/KeyboardDatePicker.js +0 -40
- package/build/KeyboardDatePicker/KeyboardDatePicker.js.map +0 -1
- package/build/KeyboardDatePicker/KeyboardDatePicker.types.js +0 -2
- package/build/KeyboardDatePicker/KeyboardDatePicker.types.js.map +0 -1
- package/build/LeftNavigation/LeftNavigation.js +0 -47
- package/build/LeftNavigation/LeftNavigation.js.map +0 -1
- package/build/LeftNavigation/LeftNavigation.types.js +0 -2
- package/build/LeftNavigation/LeftNavigation.types.js.map +0 -1
- package/build/LeftNavigation/NavListItem.js +0 -138
- package/build/LeftNavigation/NavListItem.js.map +0 -1
- package/build/LeftNavigation/PrimaryLeftNavigation.js +0 -111
- package/build/LeftNavigation/PrimaryLeftNavigation.js.map +0 -1
- package/build/LeftNavigation/SecondaryLeftNavigation.js +0 -98
- package/build/LeftNavigation/SecondaryLeftNavigation.js.map +0 -1
- package/build/LoadingSpinner/LoadingSpinner.js +0 -23
- package/build/LoadingSpinner/LoadingSpinner.js.map +0 -1
- package/build/LoadingSpinner/LoadingSpinner.types.js +0 -2
- package/build/LoadingSpinner/LoadingSpinner.types.js.map +0 -1
- package/build/MainLayout/MainLayout.js +0 -37
- package/build/MainLayout/MainLayout.js.map +0 -1
- package/build/MainLayout/MainLayout.types.js +0 -2
- package/build/MainLayout/MainLayout.types.js.map +0 -1
- package/build/NavbarLayout/Navbar.js +0 -104
- package/build/NavbarLayout/Navbar.js.map +0 -1
- package/build/NavbarLayout/NavbarLayout.js +0 -56
- package/build/NavbarLayout/NavbarLayout.js.map +0 -1
- package/build/NavbarLayout/constants.d.ts +0 -1
- package/build/NavbarLayout/index.js +0 -2
- package/build/NavbarLayout/index.js.map +0 -1
- package/build/SearchBar/SearchBar.js +0 -77
- package/build/SearchBar/SearchBar.js.map +0 -1
- package/build/SearchBar/SearchBar.types.js +0 -2
- package/build/SearchBar/SearchBar.types.js.map +0 -1
- package/build/Select/Select.js +0 -69
- package/build/Select/Select.js.map +0 -1
- package/build/Select/Select.types.js +0 -2
- package/build/Select/Select.types.js.map +0 -1
- package/build/StaticTable/StaticTable.js +0 -152
- package/build/StaticTable/StaticTable.js.map +0 -1
- package/build/StaticTable/StaticTable.types.js +0 -2
- package/build/StaticTable/StaticTable.types.js.map +0 -1
- package/build/SvgComponents/ContainedPartnersLogo.js +0 -10
- package/build/SvgComponents/ContainedPartnersLogo.js.map +0 -1
- package/build/SvgComponents/HomeSvg.js +0 -16
- package/build/SvgComponents/HomeSvg.js.map +0 -1
- package/build/SvgComponents/NovelLogoSvg.js +0 -97
- package/build/SvgComponents/NovelLogoSvg.js.map +0 -1
- package/build/SvgComponents/OrganisationList.js +0 -103
- package/build/SvgComponents/OrganisationList.js.map +0 -1
- package/build/SvgComponents/ProjectsSvg.js +0 -18
- package/build/SvgComponents/ProjectsSvg.js.map +0 -1
- package/build/SvgComponents/index.js +0 -6
- package/build/SvgComponents/index.js.map +0 -1
- package/build/SvgComponents/types.js +0 -2
- package/build/SvgComponents/types.js.map +0 -1
- package/build/TextField/TextField.js +0 -66
- package/build/TextField/TextField.js.map +0 -1
- package/build/TextField/TextField.types.js +0 -2
- package/build/TextField/TextField.types.js.map +0 -1
- package/build/globals/index.js +0 -27
- package/build/globals/index.js.map +0 -1
- package/build/hooks/index.js +0 -4
- package/build/hooks/index.js.map +0 -1
- package/build/hooks/useDebounceEffect.js +0 -12
- package/build/hooks/useDebounceEffect.js.map +0 -1
- package/build/hooks/useInterval.js +0 -19
- package/build/hooks/useInterval.js.map +0 -1
- package/build/hooks/useWhyDidYouUpdate.js +0 -43
- package/build/hooks/useWhyDidYouUpdate.js.map +0 -1
- package/build/styles/font.js +0 -19
- package/build/styles/font.js.map +0 -1
- package/build/styles/index.js +0 -4
- package/build/styles/index.js.map +0 -1
- package/build/styles/layout.js +0 -81
- package/build/styles/layout.js.map +0 -1
- package/build/styles/spacing.js +0 -50
- package/build/styles/spacing.js.map +0 -1
- package/build/utils/index.js +0 -14
- package/build/utils/index.js.map +0 -1
|
@@ -1,434 +0,0 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
13
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
14
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
16
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
17
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
18
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
23
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
|
-
function step(op) {
|
|
26
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
27
|
-
while (_) try {
|
|
28
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
29
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
30
|
-
switch (op[0]) {
|
|
31
|
-
case 0: case 1: t = op; break;
|
|
32
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
33
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
34
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
35
|
-
default:
|
|
36
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
37
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
38
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
39
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
40
|
-
if (t[2]) _.ops.pop();
|
|
41
|
-
_.trys.pop(); continue;
|
|
42
|
-
}
|
|
43
|
-
op = body.call(thisArg, _);
|
|
44
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
45
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
49
|
-
var t = {};
|
|
50
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
51
|
-
t[p] = s[p];
|
|
52
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
53
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
54
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
55
|
-
t[p[i]] = s[p[i]];
|
|
56
|
-
}
|
|
57
|
-
return t;
|
|
58
|
-
};
|
|
59
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
60
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
61
|
-
if (ar || !(i in from)) {
|
|
62
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
63
|
-
ar[i] = from[i];
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
67
|
-
};
|
|
68
|
-
import React, { forwardRef, Fragment, memo, useCallback, useEffect, useState, } from "react";
|
|
69
|
-
import { useTable, useRowSelect, useFilters, usePagination, useGlobalFilter, useAsyncDebounce, } from "react-table";
|
|
70
|
-
import { Table as MUITable, TableBody, TableCell, TableHead, TableRow, makeStyles, Typography, Box, Tooltip, InputBase, } from "@material-ui/core";
|
|
71
|
-
import SearchIcon from "@material-ui/icons/Search";
|
|
72
|
-
import { EDITED_STATUS, NEW_STATUS } from "../globals";
|
|
73
|
-
import { SelectionCheckbox, tableTextField } from "./defaultCells";
|
|
74
|
-
import { didCellValueChange } from "../utils";
|
|
75
|
-
import LoadingSpinner from "../LoadingSpinner/LoadingSpinner";
|
|
76
|
-
import { Pagination } from "@material-ui/lab";
|
|
77
|
-
import { useLayoutStyles, useSpacingStyles } from "../styles";
|
|
78
|
-
import { useVirtual } from "react-virtual";
|
|
79
|
-
var useStyles = makeStyles(function (theme) { return ({
|
|
80
|
-
newRowHighlight: {
|
|
81
|
-
backgroundColor: "#73c4ca30",
|
|
82
|
-
},
|
|
83
|
-
editedCellHighlight: {
|
|
84
|
-
backgroundColor: "#5840f52e",
|
|
85
|
-
backgroundClip: "padding-box",
|
|
86
|
-
},
|
|
87
|
-
editedBorder: {
|
|
88
|
-
border: "3px solid #5840f52e",
|
|
89
|
-
borderWidth: "2px 4px",
|
|
90
|
-
},
|
|
91
|
-
errorBorder: {
|
|
92
|
-
border: "3px solid " + theme.palette.error.light,
|
|
93
|
-
borderWidth: "2px 4px",
|
|
94
|
-
},
|
|
95
|
-
emptyLoadingPadding: {
|
|
96
|
-
paddingTop: "0.75rem",
|
|
97
|
-
paddingBottom: "0.75rem",
|
|
98
|
-
},
|
|
99
|
-
centeredText: {
|
|
100
|
-
textAlign: "center",
|
|
101
|
-
},
|
|
102
|
-
disabled: {
|
|
103
|
-
backgroundColor: theme.palette.action.hover,
|
|
104
|
-
},
|
|
105
|
-
pagination: {
|
|
106
|
-
marginTop: "1rem",
|
|
107
|
-
marginBottom: "1rem",
|
|
108
|
-
},
|
|
109
|
-
virtualisationContainer: {
|
|
110
|
-
maxHeight: "500px",
|
|
111
|
-
overflow: "auto",
|
|
112
|
-
},
|
|
113
|
-
cellPadding: {
|
|
114
|
-
padding: ".5rem .75rem",
|
|
115
|
-
},
|
|
116
|
-
}); });
|
|
117
|
-
var EditableCell = function (_a) {
|
|
118
|
-
var _b = _a.value, initialValue = _b === void 0 ? "" : _b, _c = _a.row, index = _c.index, values = _c.values, original = _c.original, id = _a.column.id, syncCellWithState = _a.syncCellWithState, setRows = _a.setRows, fieldConfig = _a.fieldConfig, disabled = _a.disabled;
|
|
119
|
-
var _d = fieldConfig[id], validationRule = _d.validationRule, dependentValidationRule = _d.dependentValidationRule, isCheckbox = _d.isCheckbox, isDateField = _d.isDateField, customRenderFn = _d.customRenderFn, prefix = _d.prefix, suffix = _d.suffix, textAlign = _d.textAlign, configOnBlur = _d.onBlur, onChangeValueModifier = _d.onChangeValueModifier;
|
|
120
|
-
var _e = useState(false), error = _e[0], setError = _e[1];
|
|
121
|
-
// We need to keep and update the state of the cell normally
|
|
122
|
-
var _f = useState(initialValue), value = _f[0], setValue = _f[1];
|
|
123
|
-
var checkbox = isCheckbox;
|
|
124
|
-
var validateValue = function (value) {
|
|
125
|
-
var returnValue = false;
|
|
126
|
-
if (validationRule) {
|
|
127
|
-
try {
|
|
128
|
-
validationRule.validateSync(value);
|
|
129
|
-
if (error)
|
|
130
|
-
setError(false);
|
|
131
|
-
}
|
|
132
|
-
catch (e) {
|
|
133
|
-
returnValue = true;
|
|
134
|
-
!error && setError(e.message);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
if (dependentValidationRule) {
|
|
138
|
-
try {
|
|
139
|
-
dependentValidationRule(values).validateSync(value);
|
|
140
|
-
if (error)
|
|
141
|
-
setError(false);
|
|
142
|
-
}
|
|
143
|
-
catch (e) {
|
|
144
|
-
returnValue = true;
|
|
145
|
-
!error && setError(e.message);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
return returnValue;
|
|
149
|
-
};
|
|
150
|
-
// We'll only update the external data when the input is blurred
|
|
151
|
-
var onBlur = function (fieldValue) { return __awaiter(void 0, void 0, void 0, function () {
|
|
152
|
-
return __generator(this, function (_a) {
|
|
153
|
-
switch (_a.label) {
|
|
154
|
-
case 0:
|
|
155
|
-
if (checkbox) {
|
|
156
|
-
syncCellWithState(index, id, fieldValue, false);
|
|
157
|
-
}
|
|
158
|
-
else
|
|
159
|
-
syncCellWithState(index, id, value, !!error);
|
|
160
|
-
if (!(configOnBlur &&
|
|
161
|
-
setRows &&
|
|
162
|
-
!error &&
|
|
163
|
-
!didCellValueChange(values[id], value, isDateField))) return [3 /*break*/, 2];
|
|
164
|
-
return [4 /*yield*/, configOnBlur({
|
|
165
|
-
rowIndex: index,
|
|
166
|
-
value: value,
|
|
167
|
-
setRows: setRows,
|
|
168
|
-
values: original,
|
|
169
|
-
})];
|
|
170
|
-
case 1:
|
|
171
|
-
_a.sent();
|
|
172
|
-
_a.label = 2;
|
|
173
|
-
case 2: return [2 /*return*/];
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
}); };
|
|
177
|
-
var onChange = function (e) {
|
|
178
|
-
var event;
|
|
179
|
-
if (isDateField) {
|
|
180
|
-
event = e;
|
|
181
|
-
var adjustedDateValue = onChangeValueModifier
|
|
182
|
-
? onChangeValueModifier(event)
|
|
183
|
-
: event;
|
|
184
|
-
setValue(adjustedDateValue);
|
|
185
|
-
validateValue(adjustedDateValue);
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
event = e;
|
|
189
|
-
var eventValue = checkbox ? event.target.checked : event.target.value;
|
|
190
|
-
if (checkbox) {
|
|
191
|
-
setValue(eventValue);
|
|
192
|
-
onBlur(eventValue);
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
setValue(eventValue);
|
|
196
|
-
validateValue(eventValue);
|
|
197
|
-
}
|
|
198
|
-
};
|
|
199
|
-
// If the initialValue is changed external, sync it up with our state
|
|
200
|
-
useEffect(function () {
|
|
201
|
-
setValue(initialValue);
|
|
202
|
-
var errorStatus = validateValue(initialValue);
|
|
203
|
-
if (error !== errorStatus) {
|
|
204
|
-
syncCellWithState(index, id, initialValue, errorStatus, true);
|
|
205
|
-
}
|
|
206
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
207
|
-
}, [initialValue]);
|
|
208
|
-
useEffect(function () {
|
|
209
|
-
if (original.errors && !!original.errors[id] !== !!error) {
|
|
210
|
-
validateValue(initialValue);
|
|
211
|
-
}
|
|
212
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
213
|
-
}, [original.errors]);
|
|
214
|
-
var renderFnProps = {
|
|
215
|
-
value: value,
|
|
216
|
-
values: values,
|
|
217
|
-
disabled: disabled || original.disabledRow,
|
|
218
|
-
error: error,
|
|
219
|
-
onChange: onChange,
|
|
220
|
-
onBlur: onBlur,
|
|
221
|
-
prefix: prefix,
|
|
222
|
-
suffix: suffix,
|
|
223
|
-
textAlign: textAlign,
|
|
224
|
-
originalValues: original,
|
|
225
|
-
};
|
|
226
|
-
if (customRenderFn) {
|
|
227
|
-
return customRenderFn(renderFnProps);
|
|
228
|
-
}
|
|
229
|
-
else
|
|
230
|
-
return tableTextField(renderFnProps);
|
|
231
|
-
};
|
|
232
|
-
var TableRowContents = forwardRef(function (_a, ref) {
|
|
233
|
-
var row = _a.row, classes = _a.classes, disabled = _a.disabled, includeRowSelect = _a.includeRowSelect, rest = __rest(_a, ["row", "classes", "disabled", "includeRowSelect"]);
|
|
234
|
-
return (React.createElement(TableRow, __assign({}, rest, { ref: ref, hover: true, className: (row.original.rowStatus === NEW_STATUS ? classes.newRowHighlight : "") + " " + (row.original.rowStatus === EDITED_STATUS ? classes.editedBorder : "") + "\n" + (Object.values(row.original.errors || {}).includes(true) ? classes.errorBorder : "") + " " + (row.original.disabledRow || disabled ? classes.disabled : "") }), row.cells.map(function (cell, n) { return (React.createElement(TableCell, __assign({}, cell.getCellProps(), {
|
|
235
|
-
//@ts-ignore FIX REQUIRED incorrect use of react table props
|
|
236
|
-
align: cell.column.textAlign || "center", className: (cell.row.original.rowStatus === EDITED_STATUS &&
|
|
237
|
-
cell.row.original.edited[cell.column.id]
|
|
238
|
-
? classes.editedCellHighlight
|
|
239
|
-
: "") + " " + classes.cellPadding, padding: includeRowSelect && n === 0 ? "checkbox" : "normal" }), cell.render("Cell"))); })));
|
|
240
|
-
});
|
|
241
|
-
// emptyRows is needed for when incoming data is null (loading state).
|
|
242
|
-
// useTable requires memoised row data to be defined at all times.
|
|
243
|
-
var emptyRows = [];
|
|
244
|
-
var EditableTable = memo(function (_a) {
|
|
245
|
-
var tableRows = _a.tableRows, tableHeaders = _a.tableHeaders, syncCellWithState = _a.syncCellWithState, _b = _a.setRows, setRows = _b === void 0 ? undefined : _b, _c = _a.skipPageReset, skipPageReset = _c === void 0 ? false : _c, fieldConfig = _a.fieldConfig, _d = _a.disabled, disabled = _d === void 0 ? false : _d, setSelectedRows = _a.setSelectedRows, _e = _a.includeRowSelect, includeRowSelect = _e === void 0 ? true : _e, filterData = _a.filterData, filterTypes = _a.filterTypes, _f = _a.emptyTableText, emptyTableText = _f === void 0 ? "Table is empty" : _f, _g = _a.paginate, paginate = _g === void 0 ? false : _g, _h = _a.defaultPageSize, defaultPageSize = _h === void 0 ? 50 : _h, virtContainerStyling = _a.virtContainerStyling, overscan = _a.overscan, rowHeight = _a.rowHeight, includeGlobalSearch = _a.includeGlobalSearch, disableHeaderSelect = _a.disableHeaderSelect;
|
|
246
|
-
var classes = __assign(__assign({}, useStyles()), useLayoutStyles());
|
|
247
|
-
var parentRef = React.useRef(null);
|
|
248
|
-
// Set our editable cell renderer as the default Cell renderer
|
|
249
|
-
var defaultColumn = React.useMemo(function () { return ({
|
|
250
|
-
Cell: EditableCell,
|
|
251
|
-
}); }, []);
|
|
252
|
-
var _j = useTable({
|
|
253
|
-
columns: tableHeaders,
|
|
254
|
-
data: tableRows || emptyRows,
|
|
255
|
-
defaultColumn: defaultColumn,
|
|
256
|
-
autoResetPage: paginate ? !skipPageReset : false,
|
|
257
|
-
filterTypes: filterTypes,
|
|
258
|
-
initialState: { pageSize: paginate ? defaultPageSize : undefined },
|
|
259
|
-
// below are custom methods and variables that will be supplied to EditableCell
|
|
260
|
-
syncCellWithState: syncCellWithState,
|
|
261
|
-
setRows: setRows,
|
|
262
|
-
fieldConfig: fieldConfig,
|
|
263
|
-
disabled: disabled,
|
|
264
|
-
autoResetGlobalFilter: false,
|
|
265
|
-
}, useFilters, // plugging in useFilters hook
|
|
266
|
-
useGlobalFilter, // plugging in useGlobalFilters hook
|
|
267
|
-
usePagination, // plugging in usePagination hook
|
|
268
|
-
useRowSelect, // plugging in useRowSelect hook
|
|
269
|
-
function (hooks) {
|
|
270
|
-
if (includeRowSelect) {
|
|
271
|
-
hooks.visibleColumns.push(function (columns) { return __spreadArray([
|
|
272
|
-
// Let's make a column for selection
|
|
273
|
-
{
|
|
274
|
-
id: "selection",
|
|
275
|
-
// The header can use the table's getToggleAllRowsSelectedProps method
|
|
276
|
-
// to render a checkbox
|
|
277
|
-
Header: function (_a) {
|
|
278
|
-
var getToggleAllRowsSelectedProps = _a.getToggleAllRowsSelectedProps, getToggleAllPageRowsSelectedProps = _a.getToggleAllPageRowsSelectedProps;
|
|
279
|
-
return !disableHeaderSelect ? (React.createElement(SelectionCheckbox, __assign({}, (paginate
|
|
280
|
-
? getToggleAllPageRowsSelectedProps()
|
|
281
|
-
: getToggleAllRowsSelectedProps()), { disabled: disabled, size: "small" }))) : ("Select");
|
|
282
|
-
},
|
|
283
|
-
// The cell can use the individual row's getToggleRowSelectedProps method
|
|
284
|
-
// to the render a checkbox
|
|
285
|
-
Cell: function (_a) {
|
|
286
|
-
var row = _a.row;
|
|
287
|
-
return (React.createElement(SelectionCheckbox, __assign({}, row.getToggleRowSelectedProps(), { disabled: disabled || row.original.disableSelection, size: "small" })));
|
|
288
|
-
},
|
|
289
|
-
}
|
|
290
|
-
], columns, true); });
|
|
291
|
-
}
|
|
292
|
-
}), getTableProps = _j.getTableProps, // props to use in table, supplied by react-table
|
|
293
|
-
getTableBodyProps = _j.getTableBodyProps, // props to use in table, supplied by react-table
|
|
294
|
-
headerGroups = _j.headerGroups, // headers enriched with methods by react-table
|
|
295
|
-
rows = _j.rows, // rows enriched with methods by react-table
|
|
296
|
-
page = _j.page, // selected slice of data subset of rows. Visible paginated data
|
|
297
|
-
prepareRow = _j.prepareRow, // row optimisation function that must be called when rendering rows
|
|
298
|
-
_k = _j.state, selectedRowIds = _k.selectedRowIds, pageIndex = _k.pageIndex, // ids of selected rows and page index from internal table state
|
|
299
|
-
state = _j.state, setFilter = _j.setFilter, // manipulate filter criteria
|
|
300
|
-
pageCount = _j.pageCount, gotoPage = _j.gotoPage, preGlobalFilteredRows = _j.preGlobalFilteredRows, setGlobalFilter = _j.setGlobalFilter, isAllRowsSelected = _j.isAllRowsSelected, // used only to induce re-render in the header and update checkbox state
|
|
301
|
-
selectedFlatRows = _j.selectedFlatRows;
|
|
302
|
-
/* Few resources that helped the most with virtualisation work
|
|
303
|
-
* https://github.com/TanStack/virtual/issues/10
|
|
304
|
-
* https://codesandbox.io/s/poc-react-virtual-table-forked-857kdi?file=/src/index.js:2037-2101
|
|
305
|
-
*/
|
|
306
|
-
var rowVirtualizer = useVirtual({
|
|
307
|
-
size: (paginate ? page : rows).length,
|
|
308
|
-
parentRef: parentRef,
|
|
309
|
-
// amount of rows to render above and below visible rows
|
|
310
|
-
overscan: overscan || 5,
|
|
311
|
-
// estimated row size to determine how many rows are visible
|
|
312
|
-
estimateSize: useCallback(function () { return rowHeight || 54; }, [rowHeight]),
|
|
313
|
-
});
|
|
314
|
-
var rowsToRender = paginate ? page : rows;
|
|
315
|
-
var items = rowVirtualizer.virtualItems;
|
|
316
|
-
var paddingTop = items.length > 0 ? items[0].start : 0;
|
|
317
|
-
var paddingBottom = items.length > 0 ? rowVirtualizer.totalSize - items[items.length - 1].end : 0;
|
|
318
|
-
var handlePageChange = useCallback(function (event, value) {
|
|
319
|
-
gotoPage(value - 1);
|
|
320
|
-
},
|
|
321
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
322
|
-
[]);
|
|
323
|
-
// provide the data to filter on, if filter types is not present the default filter will be used
|
|
324
|
-
useEffect(function () {
|
|
325
|
-
if (filterData) {
|
|
326
|
-
setFilter(filterData.filterRow, filterData.filterValues);
|
|
327
|
-
}
|
|
328
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
329
|
-
}, [filterData]);
|
|
330
|
-
useEffect(function () {
|
|
331
|
-
if (setSelectedRows) {
|
|
332
|
-
setSelectedRows(Object.keys(selectedRowIds).map(function (id) { return +id; }));
|
|
333
|
-
}
|
|
334
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
335
|
-
}, [selectedRowIds]);
|
|
336
|
-
return (React.createElement(React.Fragment, null,
|
|
337
|
-
includeGlobalSearch ? (React.createElement(GlobalSearch, { preGlobalFilteredRows: preGlobalFilteredRows, globalFilter: state.globalFilter, setGlobalFilter: setGlobalFilter })) : null,
|
|
338
|
-
React.createElement("div", { ref: parentRef, className: virtContainerStyling || classes.virtualisationContainer },
|
|
339
|
-
React.createElement(TableContent, __assign({}, {
|
|
340
|
-
disabled: disabled,
|
|
341
|
-
includeRowSelect: includeRowSelect,
|
|
342
|
-
getTableProps: getTableProps,
|
|
343
|
-
headerGroups: headerGroups,
|
|
344
|
-
getTableBodyProps: getTableBodyProps,
|
|
345
|
-
rowsToRender: rowsToRender,
|
|
346
|
-
prepareRow: prepareRow,
|
|
347
|
-
paddingTop: paddingTop,
|
|
348
|
-
paddingBottom: paddingBottom,
|
|
349
|
-
virtualRows: items,
|
|
350
|
-
isAllRowsSelected: isAllRowsSelected,
|
|
351
|
-
selectedFlatRows: selectedFlatRows,
|
|
352
|
-
}))),
|
|
353
|
-
tableRows === null ? (React.createElement(Box, { className: classes.emptyLoadingPadding },
|
|
354
|
-
React.createElement(LoadingSpinner, null))) : null,
|
|
355
|
-
tableRows && !tableRows.length ? (React.createElement(Box, { className: classes.emptyLoadingPadding + " " + classes.centeredText },
|
|
356
|
-
React.createElement(Typography, { variant: "body2" }, emptyTableText))) : null,
|
|
357
|
-
paginate && (tableRows === null || tableRows === void 0 ? void 0 : tableRows.length) ? (React.createElement(Pagination, { className: classes.flexCenter + " " + classes.pagination, count: pageCount, page: pageIndex + 1, onChange: handlePageChange, shape: "rounded", showFirstButton: true, showLastButton: true })) : null));
|
|
358
|
-
});
|
|
359
|
-
export default EditableTable;
|
|
360
|
-
var useGlobalSearchStyles = makeStyles(function (theme) { return ({
|
|
361
|
-
container: {
|
|
362
|
-
display: "flex",
|
|
363
|
-
justifyContent: "center",
|
|
364
|
-
alignItems: "center",
|
|
365
|
-
border: "1px solid " + theme.palette.grey[600],
|
|
366
|
-
borderRadius: "8px",
|
|
367
|
-
width: "100%",
|
|
368
|
-
maxWidth: "20rem",
|
|
369
|
-
marginInline: "auto",
|
|
370
|
-
color: theme.palette.grey[600],
|
|
371
|
-
"&:hover": {
|
|
372
|
-
borderColor: theme.palette.grey[800],
|
|
373
|
-
color: theme.palette.grey[800],
|
|
374
|
-
},
|
|
375
|
-
"&:focus-within": {
|
|
376
|
-
borderColor: theme.palette.grey[800],
|
|
377
|
-
color: theme.palette.grey[800],
|
|
378
|
-
},
|
|
379
|
-
},
|
|
380
|
-
input: __assign({ width: "100%", maxWidth: "18rem", color: "inherit" }, theme.typography.body2),
|
|
381
|
-
}); });
|
|
382
|
-
var GlobalSearch = memo(function (_a) {
|
|
383
|
-
var preGlobalFilteredRows = _a.preGlobalFilteredRows, globalFilter = _a.globalFilter, setGlobalFilter = _a.setGlobalFilter;
|
|
384
|
-
var _b = useState(globalFilter), value = _b[0], setValue = _b[1];
|
|
385
|
-
var classes = __assign(__assign({}, useSpacingStyles()), useGlobalSearchStyles());
|
|
386
|
-
var onChange = useAsyncDebounce(function (value) {
|
|
387
|
-
setGlobalFilter(value || undefined);
|
|
388
|
-
}, 200);
|
|
389
|
-
var count = preGlobalFilteredRows.length;
|
|
390
|
-
return (React.createElement("div", { className: classes.container + " " + classes.contentBreak },
|
|
391
|
-
React.createElement(SearchIcon, { className: classes.rightSpacer1 + " " + classes.leftSpacer1 }),
|
|
392
|
-
React.createElement(InputBase, { className: "" + classes.input, value: value || "", onChange: function (e) {
|
|
393
|
-
setValue(e.target.value);
|
|
394
|
-
onChange(e.target.value);
|
|
395
|
-
}, placeholder: "Search " + count + " records...", inputProps: { "aria-label": "search" } })));
|
|
396
|
-
});
|
|
397
|
-
var TableContent = memo(function (_a) {
|
|
398
|
-
var disabled = _a.disabled, includeRowSelect = _a.includeRowSelect, getTableProps = _a.getTableProps, headerGroups = _a.headerGroups, getTableBodyProps = _a.getTableBodyProps, rowsToRender = _a.rowsToRender, prepareRow = _a.prepareRow, paddingTop = _a.paddingTop, paddingBottom = _a.paddingBottom, virtualRows = _a.virtualRows, isAllRowsSelected = _a.isAllRowsSelected, selectedFlatRows = _a.selectedFlatRows;
|
|
399
|
-
return (React.createElement(MUITable, __assign({}, getTableProps(), { stickyHeader: true, style: { borderCollapse: "collapse" } }),
|
|
400
|
-
React.createElement(TableHeaderContent, { headerGroups: headerGroups, includeRowSelect: includeRowSelect, isAllRowsSelected: isAllRowsSelected }),
|
|
401
|
-
React.createElement(TableBody, __assign({}, getTableBodyProps()),
|
|
402
|
-
paddingTop > 0 && (React.createElement("tr", null,
|
|
403
|
-
React.createElement("td", { style: { height: paddingTop + "px" } }))),
|
|
404
|
-
React.createElement(TableRows, __assign({}, {
|
|
405
|
-
disabled: disabled,
|
|
406
|
-
includeRowSelect: includeRowSelect,
|
|
407
|
-
rowsToRender: rowsToRender,
|
|
408
|
-
prepareRow: prepareRow,
|
|
409
|
-
virtualRows: virtualRows,
|
|
410
|
-
selectedFlatRows: selectedFlatRows,
|
|
411
|
-
})),
|
|
412
|
-
paddingBottom > 0 && (React.createElement("tr", null,
|
|
413
|
-
React.createElement("td", { style: { height: paddingBottom + "px" } }))))));
|
|
414
|
-
});
|
|
415
|
-
var TableHeaderContent = memo(function (_a) {
|
|
416
|
-
var headerGroups = _a.headerGroups, includeRowSelect = _a.includeRowSelect, isAllRowsSelected = _a.isAllRowsSelected;
|
|
417
|
-
return (React.createElement(TableHead, null, headerGroups.map(function (headerGroup) { return (React.createElement(TableRow, __assign({}, headerGroup.getHeaderGroupProps()), headerGroup.headers.map(function (column, i) { return (React.createElement(TableCell, __assign({}, column.getHeaderProps(), {
|
|
418
|
-
//@ts-ignore FIX REQUIRED incorrect use of react table props
|
|
419
|
-
align: column.textAlign || "center", padding: includeRowSelect && i === 0 ? "checkbox" : "normal" }), column.render("Header"))); }))); })));
|
|
420
|
-
});
|
|
421
|
-
var TableRows = memo(function (_a) {
|
|
422
|
-
var rowsToRender = _a.rowsToRender, virtualRows = _a.virtualRows, prepareRow = _a.prepareRow, rest = __rest(_a, ["rowsToRender", "virtualRows", "prepareRow"]);
|
|
423
|
-
var classes = __assign(__assign({}, useStyles()), useLayoutStyles());
|
|
424
|
-
return (React.createElement(React.Fragment, null, virtualRows.map(function (virtualRow) {
|
|
425
|
-
var row = rowsToRender[virtualRow.index];
|
|
426
|
-
prepareRow(row);
|
|
427
|
-
return (React.createElement(Fragment, { key: row.original.rowKey || row.getRowProps().key }, row.original.disabledRow ? (
|
|
428
|
-
//At the moment disabledRow prop is only passed on xero costs so this check is fine
|
|
429
|
-
// If this changes will need to change the check to be more specific
|
|
430
|
-
React.createElement(Tooltip, { title: row.original.tooltipText || "This row is disabled", arrow: true },
|
|
431
|
-
React.createElement(TableRowContents, __assign({}, __assign(__assign({}, rest), { row: row, classes: classes }))))) : (React.createElement(TableRowContents, __assign({}, __assign(__assign({}, rest), { row: row, classes: classes }))))));
|
|
432
|
-
})));
|
|
433
|
-
});
|
|
434
|
-
//# sourceMappingURL=EditableTable.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditableTable.js","sourceRoot":"","sources":["../../src/EditableTable/EditableTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditableTable.types.js","sourceRoot":"","sources":["../../src/EditableTable/EditableTable.types.ts"],"names":[],"mappings":""}
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
import React from "react";
|
|
13
|
-
import { Box, Checkbox, createStyles, FormControl, FormHelperText, InputAdornment, makeStyles, MenuItem, Select, TextField, Typography, withStyles, } from "@material-ui/core";
|
|
14
|
-
import { NumberFormatField } from "../TextField/TextField";
|
|
15
|
-
import { DatePicker, MuiPickersUtilsProvider } from "@material-ui/pickers";
|
|
16
|
-
import DateFnsUtils from "@date-io/date-fns";
|
|
17
|
-
import NumberFormat from "react-number-format";
|
|
18
|
-
var determineWidth = function (value, fixedDecimalScale) {
|
|
19
|
-
var valueLength = value.toString().length;
|
|
20
|
-
if (!valueLength)
|
|
21
|
-
return "6ch";
|
|
22
|
-
return valueLength + (fixedDecimalScale ? 3 : 1) + Math.floor(valueLength / 3) / 3 + "ch";
|
|
23
|
-
};
|
|
24
|
-
var useDefaultTableCellsStyles = makeStyles(function (theme) { return ({
|
|
25
|
-
inputBase: function (_a) {
|
|
26
|
-
var textAlign = _a.textAlign;
|
|
27
|
-
return ({
|
|
28
|
-
height: "unset",
|
|
29
|
-
padding: 0,
|
|
30
|
-
textAlign: textAlign || "center",
|
|
31
|
-
});
|
|
32
|
-
},
|
|
33
|
-
input: function (_a) {
|
|
34
|
-
var textAlign = _a.textAlign;
|
|
35
|
-
return ({
|
|
36
|
-
textAlign: textAlign || "center",
|
|
37
|
-
marginRight: "0.4rem",
|
|
38
|
-
marginLeft: "0.4rem",
|
|
39
|
-
});
|
|
40
|
-
},
|
|
41
|
-
startAdornment: {
|
|
42
|
-
color: theme.palette.text.secondary,
|
|
43
|
-
},
|
|
44
|
-
modifiedUnderline: {
|
|
45
|
-
"&:not(.Mui-disabled):before": {
|
|
46
|
-
borderBottom: "none",
|
|
47
|
-
transition: "none",
|
|
48
|
-
},
|
|
49
|
-
"&:hover:not(.Mui-disabled):before": {
|
|
50
|
-
borderBottom: "1px solid " + theme.palette.grey["500"] + " !important",
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
body2Text: __assign({}, theme.typography.body2),
|
|
54
|
-
dateFieldWidth: {
|
|
55
|
-
width: "8ch",
|
|
56
|
-
},
|
|
57
|
-
fullDateWidth: {
|
|
58
|
-
width: "11ch",
|
|
59
|
-
},
|
|
60
|
-
justifyStart: {
|
|
61
|
-
justifyContent: "flex-start",
|
|
62
|
-
},
|
|
63
|
-
justifyCenter: {
|
|
64
|
-
justifyContent: "center",
|
|
65
|
-
},
|
|
66
|
-
justifyEnd: {
|
|
67
|
-
justifyContent: "flex-end",
|
|
68
|
-
},
|
|
69
|
-
totalContainer: {
|
|
70
|
-
display: "flex",
|
|
71
|
-
alignItems: "center",
|
|
72
|
-
cursor: "default",
|
|
73
|
-
},
|
|
74
|
-
selectFocusBackground: {
|
|
75
|
-
"&:focus": {
|
|
76
|
-
backgroundColor: "unset",
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
}); });
|
|
80
|
-
export var TableTextField = function (_a) {
|
|
81
|
-
var error = _a.error, disabled = _a.disabled, value = _a.value, onBlur = _a.onBlur, onChange = _a.onChange, prefix = _a.prefix, suffix = _a.suffix, _b = _a.numberField, numberField = _b === void 0 ? false : _b, textAlign = _a.textAlign, fixedDecimalScale = _a.fixedDecimalScale;
|
|
82
|
-
var classes = useDefaultTableCellsStyles({ textAlign: textAlign });
|
|
83
|
-
var inputPropsForNumberField = __assign({}, (numberField && { fixedDecimalScale: !!fixedDecimalScale }));
|
|
84
|
-
if (typeof value === "string" || typeof value === "number") {
|
|
85
|
-
return (React.createElement(TextField, { error: !!error, inputProps: __assign({ className: classes.inputBase, style: { width: determineWidth(value, !!fixedDecimalScale) } }, inputPropsForNumberField), value: value, onChange: onChange, onBlur: onBlur, InputProps: {
|
|
86
|
-
startAdornment: prefix ? (React.createElement(InputAdornment, { position: "end", className: classes.startAdornment }, prefix)) : null,
|
|
87
|
-
endAdornment: suffix ? (React.createElement(InputAdornment, { position: "start", className: classes.startAdornment }, suffix)) : null,
|
|
88
|
-
inputComponent: numberField ? NumberFormatField : undefined,
|
|
89
|
-
className: classes.body2Text + " " + classes.modifiedUnderline,
|
|
90
|
-
classes: { input: classes.input },
|
|
91
|
-
}, helperText: error || undefined, disabled: disabled }));
|
|
92
|
-
}
|
|
93
|
-
else
|
|
94
|
-
return React.createElement(Typography, { variant: "body2" }, "Incorrect value type");
|
|
95
|
-
};
|
|
96
|
-
export var tableTextField = function (tableProps) {
|
|
97
|
-
return React.createElement(TableTextField, __assign({}, __assign({}, tableProps)));
|
|
98
|
-
};
|
|
99
|
-
export var tableNumericStringField = function (tableProps) {
|
|
100
|
-
return React.createElement(TableTextField, __assign({}, __assign(__assign({}, tableProps), { numberField: true })));
|
|
101
|
-
};
|
|
102
|
-
export var tableNumericStringFixedDecimalField = function (tableProps) {
|
|
103
|
-
return (React.createElement(TableTextField, __assign({}, __assign(__assign({}, tableProps), { numberField: true, fixedDecimalScale: true }))));
|
|
104
|
-
};
|
|
105
|
-
export var SelectionCheckbox = withStyles(createStyles({
|
|
106
|
-
root: {
|
|
107
|
-
padding: "3px",
|
|
108
|
-
},
|
|
109
|
-
}))(Checkbox);
|
|
110
|
-
export var TableDatePicker = function (_a) {
|
|
111
|
-
var disabled = _a.disabled, _b = _a.fullDate, fullDate = _b === void 0 ? false : _b, value = _a.value, error = _a.error, onChange = _a.onChange, onBlur = _a.onBlur, textAlign = _a.textAlign;
|
|
112
|
-
var classes = useDefaultTableCellsStyles({ textAlign: textAlign });
|
|
113
|
-
return (React.createElement(MuiPickersUtilsProvider, { utils: DateFnsUtils },
|
|
114
|
-
React.createElement(DatePicker, { disabled: disabled, views: fullDate ? undefined : ["year", "month"], value: value, autoOk: true, format: fullDate ? "dd MMM yyyy" : "MMM yyyy", InputProps: {
|
|
115
|
-
className: classes.body2Text + " " + classes.modifiedUnderline,
|
|
116
|
-
}, inputProps: {
|
|
117
|
-
className: classes.inputBase + " " + (fullDate ? classes.fullDateWidth : classes.dateFieldWidth),
|
|
118
|
-
classes: { input: classes.input },
|
|
119
|
-
}, error: !!error, helperText: error || undefined, onChange: onChange, onBlur: onBlur })));
|
|
120
|
-
};
|
|
121
|
-
export var tableDateField = function (tableProps) {
|
|
122
|
-
return React.createElement(TableDatePicker, __assign({}, tableProps));
|
|
123
|
-
};
|
|
124
|
-
export var tableInvoiceDateField = function (tableProps) {
|
|
125
|
-
return React.createElement(TableDatePicker, __assign({}, tableProps, { fullDate: true }));
|
|
126
|
-
};
|
|
127
|
-
var TableCheckbox = function (_a) {
|
|
128
|
-
var value = _a.value, disabled = _a.disabled, onChange = _a.onChange;
|
|
129
|
-
return (React.createElement(Checkbox, { disabled: disabled, checked: value, onChange: onChange, color: "primary", size: "small" }));
|
|
130
|
-
};
|
|
131
|
-
export var tableCheckbox = function (tableProps) {
|
|
132
|
-
return React.createElement(TableCheckbox, __assign({}, tableProps));
|
|
133
|
-
};
|
|
134
|
-
export var NonEditableField = function (_a) {
|
|
135
|
-
var text = _a.text, _b = _a.numberField, numberField = _b === void 0 ? false : _b, _c = _a.prefix, prefix = _c === void 0 ? null : _c, _d = _a.suffix, suffix = _d === void 0 ? null : _d, textAlign = _a.textAlign, fixedDecimalScale = _a.fixedDecimalScale;
|
|
136
|
-
var classes = useDefaultTableCellsStyles({});
|
|
137
|
-
return (React.createElement(Box, { className: classes.totalContainer + " " + classes.body2Text + " " + (textAlign === "left"
|
|
138
|
-
? classes.justifyStart
|
|
139
|
-
: textAlign === "right"
|
|
140
|
-
? classes.justifyEnd
|
|
141
|
-
: classes.justifyCenter) },
|
|
142
|
-
prefix && prefix,
|
|
143
|
-
React.createElement(Box, { className: classes.body2Text }, numberField ? (React.createElement(NumberFormat, { value: text, displayType: "text", thousandSeparator: true, isNumericString: true, decimalScale: 2, fixedDecimalScale: fixedDecimalScale })) : (text)),
|
|
144
|
-
suffix && suffix));
|
|
145
|
-
};
|
|
146
|
-
export var TableSelect = function (_a) {
|
|
147
|
-
var error = _a.error, value = _a.value, onBlur = _a.onBlur, onChange = _a.onChange, selectOptions = _a.selectOptions, disabled = _a.disabled;
|
|
148
|
-
var classes = useDefaultTableCellsStyles({});
|
|
149
|
-
return (React.createElement(FormControl, { margin: "none", error: !!error },
|
|
150
|
-
React.createElement(Select, { className: classes.body2Text + " " + classes.modifiedUnderline, inputProps: { className: classes.selectFocusBackground }, value: value, onChange: onChange, onBlur: onBlur, disabled: disabled }, Object.entries(selectOptions).map(function (_a) {
|
|
151
|
-
var key = _a[0], value = _a[1];
|
|
152
|
-
return (React.createElement(MenuItem, { className: classes.body2Text, key: key, value: key }, value));
|
|
153
|
-
})),
|
|
154
|
-
error && React.createElement(FormHelperText, null, error)));
|
|
155
|
-
};
|
|
156
|
-
export var TableMultipleSelect = function (_a) {
|
|
157
|
-
var error = _a.error, value = _a.value, onBlur = _a.onBlur, onChange = _a.onChange, selectOptions = _a.selectOptions, disabled = _a.disabled, renderValue = _a.renderValue;
|
|
158
|
-
var classes = useDefaultTableCellsStyles({});
|
|
159
|
-
return (React.createElement(FormControl, { margin: "none", error: !!error },
|
|
160
|
-
React.createElement(Select, { className: classes.body2Text + " " + classes.modifiedUnderline, inputProps: { className: classes.selectFocusBackground }, value: value, onChange: onChange, onBlur: onBlur, disabled: disabled, renderValue: renderValue, multiple: true }, Object.entries(selectOptions).map(function (_a) {
|
|
161
|
-
var key = _a[0], value = _a[1];
|
|
162
|
-
return (React.createElement(MenuItem, { className: classes.body2Text, key: key, value: key }, value));
|
|
163
|
-
})),
|
|
164
|
-
error && React.createElement(FormHelperText, null, error)));
|
|
165
|
-
};
|
|
166
|
-
//# sourceMappingURL=defaultCells.js.map
|