@oc-digital/react-component-library 7.2.4-beta.0 → 7.2.5-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/build/Alert/Alert.js +43 -0
  2. package/build/Alert/Alert.js.map +1 -0
  3. package/build/Alert/Alert.types.js +2 -0
  4. package/build/Alert/Alert.types.js.map +1 -0
  5. package/build/AlphabeticalList/AlphabeticalList.js +81 -0
  6. package/build/AlphabeticalList/AlphabeticalList.js.map +1 -0
  7. package/build/AlphabeticalList/AlphabeticalList.types.js +2 -0
  8. package/build/AlphabeticalList/AlphabeticalList.types.js.map +1 -0
  9. package/build/Breadcrumbs/Breadcrumbs.js +137 -0
  10. package/build/Breadcrumbs/Breadcrumbs.js.map +1 -0
  11. package/build/Breadcrumbs/Breadcrumbs.types.js +2 -0
  12. package/build/Breadcrumbs/Breadcrumbs.types.js.map +1 -0
  13. package/build/Button/Button.js +54 -0
  14. package/build/Button/Button.js.map +1 -0
  15. package/build/Button/Button.types.js +2 -0
  16. package/build/Button/Button.types.js.map +1 -0
  17. package/build/ButtonWithConfirm/ButtonWithConfirm.js +66 -0
  18. package/build/ButtonWithConfirm/ButtonWithConfirm.js.map +1 -0
  19. package/build/ButtonWithConfirm/ButtonWithConfirm.types.js +2 -0
  20. package/build/ButtonWithConfirm/ButtonWithConfirm.types.js.map +1 -0
  21. package/build/ContentBox/ContentBox.js +22 -0
  22. package/build/ContentBox/ContentBox.js.map +1 -0
  23. package/build/ContentBox/ContentBox.types.js +2 -0
  24. package/build/ContentBox/ContentBox.types.js.map +1 -0
  25. package/build/ContentLabel/ContentLabel.js +10 -0
  26. package/build/ContentLabel/ContentLabel.js.map +1 -0
  27. package/build/ContentLabel/ContentLabel.types.js +2 -0
  28. package/build/ContentLabel/ContentLabel.types.js.map +1 -0
  29. package/build/DatePicker/DatePicker.js +40 -0
  30. package/build/DatePicker/DatePicker.js.map +1 -0
  31. package/build/DatePicker/DatePicker.types.js +2 -0
  32. package/build/DatePicker/DatePicker.types.js.map +1 -0
  33. package/build/EditableTable/EditableTable.js +434 -0
  34. package/build/EditableTable/EditableTable.js.map +1 -0
  35. package/build/EditableTable/EditableTable.types.js +2 -0
  36. package/build/EditableTable/EditableTable.types.js.map +1 -0
  37. package/build/EditableTable/defaultCells.js +166 -0
  38. package/build/EditableTable/defaultCells.js.map +1 -0
  39. package/build/EntityList/EntityList.js +54 -0
  40. package/build/EntityList/EntityList.js.map +1 -0
  41. package/build/EntityList/EntityList.types.js +2 -0
  42. package/build/EntityList/EntityList.types.js.map +1 -0
  43. package/build/ErrorIndicator/ErrorIndicator.js +24 -0
  44. package/build/ErrorIndicator/ErrorIndicator.js.map +1 -0
  45. package/build/ErrorIndicator/ErrorIndicator.types.js +2 -0
  46. package/build/ErrorIndicator/ErrorIndicator.types.js.map +1 -0
  47. package/build/ImageDisplayAndUpload/ImageDisplayAndUpload.js +309 -0
  48. package/build/ImageDisplayAndUpload/ImageDisplayAndUpload.js.map +1 -0
  49. package/build/ImageDisplayAndUpload/ImageDisplayAndUpload.types.js +2 -0
  50. package/build/ImageDisplayAndUpload/ImageDisplayAndUpload.types.js.map +1 -0
  51. package/build/KeyboardDatePicker/KeyboardDatePicker.js +40 -0
  52. package/build/KeyboardDatePicker/KeyboardDatePicker.js.map +1 -0
  53. package/build/KeyboardDatePicker/KeyboardDatePicker.types.js +2 -0
  54. package/build/KeyboardDatePicker/KeyboardDatePicker.types.js.map +1 -0
  55. package/build/LeftNavigation/LeftNavigation.js +47 -0
  56. package/build/LeftNavigation/LeftNavigation.js.map +1 -0
  57. package/build/LeftNavigation/LeftNavigation.types.js +2 -0
  58. package/build/LeftNavigation/LeftNavigation.types.js.map +1 -0
  59. package/build/LeftNavigation/NavListItem.js +138 -0
  60. package/build/LeftNavigation/NavListItem.js.map +1 -0
  61. package/build/LeftNavigation/PrimaryLeftNavigation.js +111 -0
  62. package/build/LeftNavigation/PrimaryLeftNavigation.js.map +1 -0
  63. package/build/LeftNavigation/SecondaryLeftNavigation.js +98 -0
  64. package/build/LeftNavigation/SecondaryLeftNavigation.js.map +1 -0
  65. package/build/LoadingSpinner/LoadingSpinner.js +23 -0
  66. package/build/LoadingSpinner/LoadingSpinner.js.map +1 -0
  67. package/build/LoadingSpinner/LoadingSpinner.types.js +2 -0
  68. package/build/LoadingSpinner/LoadingSpinner.types.js.map +1 -0
  69. package/build/MainLayout/MainLayout.js +37 -0
  70. package/build/MainLayout/MainLayout.js.map +1 -0
  71. package/build/MainLayout/MainLayout.types.js +2 -0
  72. package/build/MainLayout/MainLayout.types.js.map +1 -0
  73. package/build/NavbarLayout/Navbar.js +104 -0
  74. package/build/NavbarLayout/Navbar.js.map +1 -0
  75. package/build/NavbarLayout/NavbarLayout.d.ts +3 -1
  76. package/build/NavbarLayout/NavbarLayout.js +56 -0
  77. package/build/NavbarLayout/NavbarLayout.js.map +1 -0
  78. package/build/NavbarLayout/constants.d.ts +1 -0
  79. package/build/NavbarLayout/index.js +2 -0
  80. package/build/NavbarLayout/index.js.map +1 -0
  81. package/build/SearchBar/SearchBar.js +77 -0
  82. package/build/SearchBar/SearchBar.js.map +1 -0
  83. package/build/SearchBar/SearchBar.types.js +2 -0
  84. package/build/SearchBar/SearchBar.types.js.map +1 -0
  85. package/build/Select/Select.js +69 -0
  86. package/build/Select/Select.js.map +1 -0
  87. package/build/Select/Select.types.js +2 -0
  88. package/build/Select/Select.types.js.map +1 -0
  89. package/build/StaticTable/StaticTable.js +152 -0
  90. package/build/StaticTable/StaticTable.js.map +1 -0
  91. package/build/StaticTable/StaticTable.types.js +2 -0
  92. package/build/StaticTable/StaticTable.types.js.map +1 -0
  93. package/build/SvgComponents/ContainedPartnersLogo.js +10 -0
  94. package/build/SvgComponents/ContainedPartnersLogo.js.map +1 -0
  95. package/build/SvgComponents/HomeSvg.js +16 -0
  96. package/build/SvgComponents/HomeSvg.js.map +1 -0
  97. package/build/SvgComponents/NovelLogoSvg.js +97 -0
  98. package/build/SvgComponents/NovelLogoSvg.js.map +1 -0
  99. package/build/SvgComponents/OrganisationList.js +103 -0
  100. package/build/SvgComponents/OrganisationList.js.map +1 -0
  101. package/build/SvgComponents/ProjectsSvg.js +18 -0
  102. package/build/SvgComponents/ProjectsSvg.js.map +1 -0
  103. package/build/SvgComponents/index.js +6 -0
  104. package/build/SvgComponents/index.js.map +1 -0
  105. package/build/SvgComponents/types.js +2 -0
  106. package/build/SvgComponents/types.js.map +1 -0
  107. package/build/TextField/TextField.js +66 -0
  108. package/build/TextField/TextField.js.map +1 -0
  109. package/build/TextField/TextField.types.js +2 -0
  110. package/build/TextField/TextField.types.js.map +1 -0
  111. package/build/ThemeProvider/index.d.ts +2 -2
  112. package/build/globals/index.js +27 -0
  113. package/build/globals/index.js.map +1 -0
  114. package/build/hooks/index.js +4 -0
  115. package/build/hooks/index.js.map +1 -0
  116. package/build/hooks/useDebounceEffect.js +12 -0
  117. package/build/hooks/useDebounceEffect.js.map +1 -0
  118. package/build/hooks/useInterval.js +19 -0
  119. package/build/hooks/useInterval.js.map +1 -0
  120. package/build/hooks/useWhyDidYouUpdate.js +43 -0
  121. package/build/hooks/useWhyDidYouUpdate.js.map +1 -0
  122. package/build/index.js +1 -1
  123. package/build/index.js.map +1 -1
  124. package/build/styles/font.js +19 -0
  125. package/build/styles/font.js.map +1 -0
  126. package/build/styles/index.js +4 -0
  127. package/build/styles/index.js.map +1 -0
  128. package/build/styles/layout.js +81 -0
  129. package/build/styles/layout.js.map +1 -0
  130. package/build/styles/spacing.js +50 -0
  131. package/build/styles/spacing.js.map +1 -0
  132. package/build/utils/index.js +14 -0
  133. package/build/utils/index.js.map +1 -0
  134. package/package.json +1 -2
  135. package/build/AutoSave/Select/AutoSave.d.ts +0 -3
  136. package/build/AutoSave/Text/AutoSave.d.ts +0 -3
  137. package/build/EditableTable/components/styled/Checkbox.d.ts +0 -5
  138. package/build/EditableTable/components/styled/CheckboxLabel.d.ts +0 -5
  139. package/build/EditableTable/components/styled/Input.d.ts +0 -5
  140. package/build/EditableTable/components/styled/InputWrapper.d.ts +0 -5
  141. package/build/EditableTable/components/styled/SmallError.d.ts +0 -5
  142. package/build/styles/theme.d.ts +0 -1
@@ -0,0 +1,434 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditableTable.js","sourceRoot":"","sources":["../../src/EditableTable/EditableTable.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=EditableTable.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditableTable.types.js","sourceRoot":"","sources":["../../src/EditableTable/EditableTable.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,166 @@
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