@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":"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"}
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,CA4K3D"}
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: 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: onFocus,
159
+ onFocus: textfieldOnFocus,
153
160
  required: required,
154
161
  maxLength: maxLength,
155
162
  style: (styles || {}).textarea
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@terraware/web-components",
3
- "version": "4.0.6",
3
+ "version": "4.1.1",
4
4
  "author": "Terraformation Inc.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {