@terraware/web-components 4.0.6 → 4.1.1
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.
|
@@ -64,6 +64,10 @@ export type EditableTableProps<TData extends Record<string, any>> = {
|
|
|
64
64
|
enableGlobalFilter?: boolean;
|
|
65
65
|
/** Whether to enable column filters (default: false) */
|
|
66
66
|
enableColumnFilters?: boolean;
|
|
67
|
+
/** Whether to persist column filters in localStorage (default: false) */
|
|
68
|
+
stickyFilters?: boolean;
|
|
69
|
+
/** Unique storage key for persisting filters (required if stickyFilters is true) */
|
|
70
|
+
storageKey?: string;
|
|
67
71
|
/** Whether to enable pagination (default: true) */
|
|
68
72
|
enablePagination?: boolean;
|
|
69
73
|
/** Whether to show the bottom toolbar (default: true) */
|
|
@@ -84,5 +88,5 @@ export type EditableTableProps<TData extends Record<string, any>> = {
|
|
|
84
88
|
/** Additional MRT table options to override defaults */
|
|
85
89
|
tableOptions?: Partial<MRT_TableOptions<TData>>;
|
|
86
90
|
};
|
|
87
|
-
export default function EditableTable<TData extends Record<string, any>>({ columns, data, enableEditing, enableColumnOrdering, enableColumnPinning, enableSorting, enableGlobalFilter, enableColumnFilters, enablePagination, enableBottomToolbar, enableTopToolbar, initialSorting, onRowClick, renderToolbarInternalActions, sx, tableOptions, }: EditableTableProps<TData>): JSX.Element;
|
|
91
|
+
export default function EditableTable<TData extends Record<string, any>>({ columns, data, enableEditing, enableColumnOrdering, enableColumnPinning, enableSorting, enableGlobalFilter, enableColumnFilters, stickyFilters, storageKey, enablePagination, enableBottomToolbar, enableTopToolbar, initialSorting, onRowClick, renderToolbarInternalActions, sx, tableOptions, }: EditableTableProps<TData>): JSX.Element;
|
|
88
92
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/EditableTable/index.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/EditableTable/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,8 @@ function EditableTable(_ref) {
|
|
|
20
20
|
enableSorting = true,
|
|
21
21
|
enableGlobalFilter = false,
|
|
22
22
|
enableColumnFilters = false,
|
|
23
|
+
stickyFilters = false,
|
|
24
|
+
storageKey,
|
|
23
25
|
enablePagination = true,
|
|
24
26
|
enableBottomToolbar = true,
|
|
25
27
|
enableTopToolbar = true,
|
|
@@ -31,6 +33,58 @@ function EditableTable(_ref) {
|
|
|
31
33
|
} = _ref;
|
|
32
34
|
const theme = (0, _material.useTheme)();
|
|
33
35
|
|
|
36
|
+
// Sticky column filters - load from localStorage (only if stickyFilters is enabled)
|
|
37
|
+
const [columnFilters, setColumnFilters] = (0, _react.useState)(() => {
|
|
38
|
+
if (!stickyFilters || !storageKey) {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
const saved = localStorage.getItem("".concat(storageKey, "_columnFilters"));
|
|
43
|
+
if (saved) {
|
|
44
|
+
const parsed = JSON.parse(saved);
|
|
45
|
+
|
|
46
|
+
// Filter out any filters with null or empty values
|
|
47
|
+
return parsed.filter(filter => {
|
|
48
|
+
if (!filter.value) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
// For range filters (arrays), check if at least one value exists
|
|
52
|
+
if (Array.isArray(filter.value)) {
|
|
53
|
+
return filter.value.some(v => v !== null && v !== undefined && v !== '');
|
|
54
|
+
}
|
|
55
|
+
return filter.value !== null && filter.value !== undefined && filter.value !== '';
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return [];
|
|
59
|
+
} catch (error) {
|
|
60
|
+
console.error('Error loading column filters:', error);
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
// Save column filters to localStorage when they change
|
|
66
|
+
(0, _react.useEffect)(() => {
|
|
67
|
+
if (!stickyFilters || !storageKey) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
// Filter out any filters with null or empty values before saving
|
|
72
|
+
const validFilters = columnFilters.filter(filter => {
|
|
73
|
+
if (!filter.value) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
// For range filters (arrays), check if at least one value exists
|
|
77
|
+
if (Array.isArray(filter.value)) {
|
|
78
|
+
return filter.value.some(v => v !== null && v !== undefined && v !== '');
|
|
79
|
+
}
|
|
80
|
+
return filter.value !== null && filter.value !== undefined && filter.value !== '';
|
|
81
|
+
});
|
|
82
|
+
localStorage.setItem("".concat(storageKey, "_columnFilters"), JSON.stringify(validFilters));
|
|
83
|
+
} catch (error) {
|
|
84
|
+
console.error('Error saving column filters:', error);
|
|
85
|
+
}
|
|
86
|
+
}, [columnFilters, stickyFilters, storageKey]);
|
|
87
|
+
|
|
34
88
|
// Convert simplified column definitions to MRT column definitions
|
|
35
89
|
const mrtColumns = (0, _react.useMemo)(() => {
|
|
36
90
|
return columns.map(col => {
|
|
@@ -106,6 +160,7 @@ function EditableTable(_ref) {
|
|
|
106
160
|
onBlur: event => {
|
|
107
161
|
if (onSave) {
|
|
108
162
|
const value = event.target.value;
|
|
163
|
+
// eslint-disable-next-line react/prop-types
|
|
109
164
|
void onSave(row.original, value, col.id);
|
|
110
165
|
}
|
|
111
166
|
}
|
|
@@ -123,7 +178,7 @@ function EditableTable(_ref) {
|
|
|
123
178
|
} : {}), enableGlobalFilter ? {
|
|
124
179
|
showGlobalFilter: true
|
|
125
180
|
} : {});
|
|
126
|
-
const table = (0, _materialReactTable.useMaterialReactTable)((0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
181
|
+
const table = (0, _materialReactTable.useMaterialReactTable)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
127
182
|
columns: mrtColumns,
|
|
128
183
|
data,
|
|
129
184
|
editDisplayMode: 'cell',
|
|
@@ -157,6 +212,7 @@ function EditableTable(_ref) {
|
|
|
157
212
|
row
|
|
158
213
|
} = _ref4;
|
|
159
214
|
return {
|
|
215
|
+
// eslint-disable-next-line react/prop-types
|
|
160
216
|
onClick: onRowClick ? () => onRowClick(row.original) : undefined,
|
|
161
217
|
sx: {
|
|
162
218
|
cursor: onRowClick ? 'pointer' : 'default',
|
|
@@ -166,7 +222,12 @@ function EditableTable(_ref) {
|
|
|
166
222
|
}
|
|
167
223
|
};
|
|
168
224
|
}
|
|
169
|
-
}, tableOptions)
|
|
225
|
+
}, tableOptions), stickyFilters && storageKey ? {
|
|
226
|
+
state: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, tableOptions === null || tableOptions === void 0 ? void 0 : tableOptions.state), {}, {
|
|
227
|
+
columnFilters
|
|
228
|
+
}),
|
|
229
|
+
onColumnFiltersChange: setColumnFilters
|
|
230
|
+
} : {}));
|
|
170
231
|
return /*#__PURE__*/_react.default.createElement(_material.Box, {
|
|
171
232
|
minHeight: "160px",
|
|
172
233
|
padding: 2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textfield.d.ts","sourceRoot":"","sources":["../../../src/components/Textfield/Textfield.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,GAAG,EAAW,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAO,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAK3D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,OAAO,eAAe,CAAC;AAEvB,KAAK,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEpD,KAAK,OAAO,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;AAExC,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,KAAK;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,YAAY,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"Textfield.d.ts","sourceRoot":"","sources":["../../../src/components/Textfield/Textfield.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,GAAG,EAAW,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAO,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAK3D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,OAAO,eAAe,CAAC;AAEvB,KAAK,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEpD,KAAK,OAAO,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;AAExC,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,KAAK;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,YAAY,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAqL3D"}
|
|
@@ -65,6 +65,13 @@ function TextField(props) {
|
|
|
65
65
|
onChange(textValue);
|
|
66
66
|
}
|
|
67
67
|
};
|
|
68
|
+
const textfieldOnFocus = event => {
|
|
69
|
+
// for numeric fields with a value of zero, select all text on focus to make it easier for users to replace the value
|
|
70
|
+
if (type === 'number' && typeof value !== 'undefined' && String(value) === '0') {
|
|
71
|
+
event.currentTarget.select();
|
|
72
|
+
}
|
|
73
|
+
onFocus === null || onFocus === void 0 ? void 0 : onFocus();
|
|
74
|
+
};
|
|
68
75
|
const onKeyDownHandler = e => {
|
|
69
76
|
if (disabledCharacters && disabledCharacters.includes(e.key)) {
|
|
70
77
|
e === null || e === void 0 ? void 0 : e.preventDefault();
|
|
@@ -136,7 +143,7 @@ function TextField(props) {
|
|
|
136
143
|
placeholder: placeholder,
|
|
137
144
|
onChange: textfieldOnChange,
|
|
138
145
|
onBlur: onBlur,
|
|
139
|
-
onFocus:
|
|
146
|
+
onFocus: textfieldOnFocus,
|
|
140
147
|
onKeyDown: onKeyDownHandler,
|
|
141
148
|
onWheel: e => e.currentTarget.blur(),
|
|
142
149
|
required: required,
|
|
@@ -149,7 +156,7 @@ function TextField(props) {
|
|
|
149
156
|
placeholder: placeholder,
|
|
150
157
|
onChange: textfieldOnChange,
|
|
151
158
|
onBlur: onBlur,
|
|
152
|
-
onFocus:
|
|
159
|
+
onFocus: textfieldOnFocus,
|
|
153
160
|
required: required,
|
|
154
161
|
maxLength: maxLength,
|
|
155
162
|
style: (styles || {}).textarea
|