@entur/table 4.5.28 → 4.5.29
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/dist/styles.css +7 -7
- package/dist/table.cjs.development.js +65 -113
- package/dist/table.cjs.development.js.map +1 -1
- package/dist/table.cjs.production.min.js +1 -1
- package/dist/table.cjs.production.min.js.map +1 -1
- package/dist/table.esm.js +65 -113
- package/dist/table.esm.js.map +1 -1
- package/package.json +16 -11
- package/CHANGELOG.md +0 -536
package/dist/styles.css
CHANGED
|
@@ -108,13 +108,6 @@
|
|
|
108
108
|
border-color: #393d79;
|
|
109
109
|
}/* DO NOT CHANGE!*/
|
|
110
110
|
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
111
|
-
.eds-expand-row-button__icon {
|
|
112
|
-
transition: transform ease-in-out 0.2s;
|
|
113
|
-
}
|
|
114
|
-
.eds-expand-row-button--open .eds-expand-row-button__icon {
|
|
115
|
-
transform: rotate(180deg);
|
|
116
|
-
}/* DO NOT CHANGE!*/
|
|
117
|
-
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
118
111
|
.eds-table__header-cell {
|
|
119
112
|
color: #656782;
|
|
120
113
|
font-size: 0.875rem;
|
|
@@ -289,4 +282,11 @@
|
|
|
289
282
|
}
|
|
290
283
|
.eds-table--small .eds-editable-cell .eds-form-control-wrapper .eds-form-control {
|
|
291
284
|
padding: calc(0.25rem - 0.125rem) calc(0.5rem - 0.0625rem);
|
|
285
|
+
}/* DO NOT CHANGE!*/
|
|
286
|
+
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
287
|
+
.eds-expand-row-button__icon {
|
|
288
|
+
transition: transform ease-in-out 0.2s;
|
|
289
|
+
}
|
|
290
|
+
.eds-expand-row-button--open .eds-expand-row-button__icon {
|
|
291
|
+
transform: rotate(180deg);
|
|
292
292
|
}
|
|
@@ -22,46 +22,42 @@ function _extends() {
|
|
|
22
22
|
_extends = Object.assign || function (target) {
|
|
23
23
|
for (var i = 1; i < arguments.length; i++) {
|
|
24
24
|
var source = arguments[i];
|
|
25
|
-
|
|
26
25
|
for (var key in source) {
|
|
27
26
|
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
28
27
|
target[key] = source[key];
|
|
29
28
|
}
|
|
30
29
|
}
|
|
31
30
|
}
|
|
32
|
-
|
|
33
31
|
return target;
|
|
34
32
|
};
|
|
35
|
-
|
|
36
33
|
return _extends.apply(this, arguments);
|
|
37
34
|
}
|
|
38
|
-
|
|
35
|
+
function _objectDestructuringEmpty(obj) {
|
|
36
|
+
if (obj == null) throw new TypeError("Cannot destructure undefined");
|
|
37
|
+
}
|
|
39
38
|
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
40
39
|
if (source == null) return {};
|
|
41
40
|
var target = {};
|
|
42
41
|
var sourceKeys = Object.keys(source);
|
|
43
42
|
var key, i;
|
|
44
|
-
|
|
45
43
|
for (i = 0; i < sourceKeys.length; i++) {
|
|
46
44
|
key = sourceKeys[i];
|
|
47
45
|
if (excluded.indexOf(key) >= 0) continue;
|
|
48
46
|
target[key] = source[key];
|
|
49
47
|
}
|
|
50
|
-
|
|
51
48
|
return target;
|
|
52
49
|
}
|
|
53
50
|
|
|
54
51
|
var _excluded$8 = ["className", "fixed", "spacing", "sortable"];
|
|
55
52
|
var Table = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
56
53
|
var className = _ref.className,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
54
|
+
_ref$fixed = _ref.fixed,
|
|
55
|
+
fixed = _ref$fixed === void 0 ? false : _ref$fixed,
|
|
56
|
+
_ref$spacing = _ref.spacing,
|
|
57
|
+
spacing = _ref$spacing === void 0 ? 'default' : _ref$spacing,
|
|
58
|
+
_ref$sortable = _ref.sortable,
|
|
59
|
+
sortable = _ref$sortable === void 0 ? false : _ref$sortable,
|
|
60
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);
|
|
65
61
|
return React__default["default"].createElement("table", _extends({
|
|
66
62
|
className: classNames__default["default"]('eds-table', {
|
|
67
63
|
'eds-table--fixed': fixed
|
|
@@ -79,8 +75,7 @@ var Table = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, re
|
|
|
79
75
|
var _excluded$7 = ["className"];
|
|
80
76
|
var TableHead = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
81
77
|
var className = _ref.className,
|
|
82
|
-
|
|
83
|
-
|
|
78
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$7);
|
|
84
79
|
return React__default["default"].createElement("thead", _extends({
|
|
85
80
|
className: classNames__default["default"]('eds-table__head', className),
|
|
86
81
|
ref: ref
|
|
@@ -90,8 +85,7 @@ var TableHead = /*#__PURE__*/React__default["default"].forwardRef(function (_ref
|
|
|
90
85
|
var _excluded$6 = ["className"];
|
|
91
86
|
var TableBody = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
92
87
|
var className = _ref.className,
|
|
93
|
-
|
|
94
|
-
|
|
88
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
95
89
|
return React__default["default"].createElement("tbody", _extends({
|
|
96
90
|
className: classNames__default["default"]('eds-table__body', className),
|
|
97
91
|
ref: ref
|
|
@@ -99,8 +93,7 @@ var TableBody = /*#__PURE__*/React__default["default"].forwardRef(function (_ref
|
|
|
99
93
|
});
|
|
100
94
|
|
|
101
95
|
var TableFooter = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
102
|
-
var props = _extends({}, _ref);
|
|
103
|
-
|
|
96
|
+
var props = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
|
|
104
97
|
return React__default["default"].createElement("tfoot", _extends({
|
|
105
98
|
ref: ref
|
|
106
99
|
}, props));
|
|
@@ -109,14 +102,13 @@ var TableFooter = /*#__PURE__*/React__default["default"].forwardRef(function (_r
|
|
|
109
102
|
var _excluded$5 = ["className", "hover", "active", "error"];
|
|
110
103
|
var TableRow = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
111
104
|
var className = _ref.className,
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
105
|
+
_ref$hover = _ref.hover,
|
|
106
|
+
hover = _ref$hover === void 0 ? false : _ref$hover,
|
|
107
|
+
_ref$active = _ref.active,
|
|
108
|
+
active = _ref$active === void 0 ? false : _ref$active,
|
|
109
|
+
_ref$error = _ref.error,
|
|
110
|
+
error = _ref$error === void 0 ? false : _ref$error,
|
|
111
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
|
120
112
|
return React__default["default"].createElement("tr", _extends({
|
|
121
113
|
className: classNames__default["default"]('eds-table__row', className, {
|
|
122
114
|
'eds-table__row--hover': hover,
|
|
@@ -130,14 +122,12 @@ var TableRow = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
|
|
|
130
122
|
var _excluded$4 = ["className", "padding", "status"];
|
|
131
123
|
var DataCell = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
132
124
|
var _classNames;
|
|
133
|
-
|
|
134
125
|
var className = _ref.className,
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
126
|
+
_ref$padding = _ref.padding,
|
|
127
|
+
padding = _ref$padding === void 0 ? 'default' : _ref$padding,
|
|
128
|
+
_ref$status = _ref.status,
|
|
129
|
+
status = _ref$status === void 0 ? undefined : _ref$status,
|
|
130
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
|
|
141
131
|
return React__default["default"].createElement("td", _extends({
|
|
142
132
|
ref: ref,
|
|
143
133
|
className: classNames__default["default"]('eds-table__data-cell', className, (_classNames = {}, _classNames["eds-table__data-cell--status-" + status] = status, _classNames['eds-table__data-cell--padding-checkbox'] = padding === 'checkbox', _classNames['eds-table__data-cell--padding-radio'] = padding === 'radio', _classNames['eds-table__data-cell--padding-overflow-menu'] = padding === 'overflow-menu', _classNames))
|
|
@@ -145,23 +135,21 @@ var DataCell = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
|
|
|
145
135
|
});
|
|
146
136
|
|
|
147
137
|
var _excluded$3 = ["className", "children", "name", "sortable", "sortConfig", "padding", "sortableButtonProps"],
|
|
148
|
-
|
|
138
|
+
_excluded2$1 = ["className"];
|
|
149
139
|
var HeaderCell = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
150
140
|
var className = _ref.className,
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
141
|
+
children = _ref.children,
|
|
142
|
+
name = _ref.name,
|
|
143
|
+
_ref$sortable = _ref.sortable,
|
|
144
|
+
sortable = _ref$sortable === void 0 ? false : _ref$sortable,
|
|
145
|
+
sortConfig = _ref.sortConfig,
|
|
146
|
+
_ref$padding = _ref.padding,
|
|
147
|
+
padding = _ref$padding === void 0 ? 'default' : _ref$padding,
|
|
148
|
+
sortableButtonProps = _ref.sortableButtonProps,
|
|
149
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
161
150
|
var _React$useState = React__default["default"].useState(false),
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
151
|
+
isCurrentlySorted = _React$useState[0],
|
|
152
|
+
setIsCurrentlySorted = _React$useState[1];
|
|
165
153
|
React__default["default"].useEffect(function () {
|
|
166
154
|
sortConfig && name && setIsCurrentlySorted(sortConfig && name === sortConfig.key);
|
|
167
155
|
}, [sortConfig, name]);
|
|
@@ -181,16 +169,13 @@ var HeaderCell = /*#__PURE__*/React__default["default"].forwardRef(function (_re
|
|
|
181
169
|
isCurrentlySorted: isCurrentlySorted
|
|
182
170
|
}, children) : children);
|
|
183
171
|
});
|
|
184
|
-
|
|
185
172
|
var SortableHeaderCellButton = function SortableHeaderCellButton(_ref2) {
|
|
186
173
|
var sortConfig = _ref2.sortConfig,
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
174
|
+
sortableButtonProps = _ref2.sortableButtonProps,
|
|
175
|
+
isCurrentlySorted = _ref2.isCurrentlySorted,
|
|
176
|
+
children = _ref2.children;
|
|
191
177
|
var className = sortableButtonProps.className,
|
|
192
|
-
|
|
193
|
-
|
|
178
|
+
rest = _objectWithoutPropertiesLoose(sortableButtonProps, _excluded2$1);
|
|
194
179
|
return React__default["default"].createElement("button", _extends({
|
|
195
180
|
className: classNames__default["default"]('eds-table__header-cell-button', className),
|
|
196
181
|
type: "button"
|
|
@@ -210,7 +195,7 @@ var SortableHeaderCellButton = function SortableHeaderCellButton(_ref2) {
|
|
|
210
195
|
};
|
|
211
196
|
|
|
212
197
|
var _excluded$2 = ["name", "sortable", "buttonProps"],
|
|
213
|
-
|
|
198
|
+
_excluded2 = ["sortable"];
|
|
214
199
|
function useSortableData(rawData, externalSortConfig) {
|
|
215
200
|
if (externalSortConfig === void 0) {
|
|
216
201
|
externalSortConfig = {
|
|
@@ -218,11 +203,9 @@ function useSortableData(rawData, externalSortConfig) {
|
|
|
218
203
|
order: 'none'
|
|
219
204
|
};
|
|
220
205
|
}
|
|
221
|
-
|
|
222
206
|
var _React$useState = React__default["default"].useState(externalSortConfig),
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
207
|
+
sortConfig = _React$useState[0],
|
|
208
|
+
setSortConfig = _React$useState[1];
|
|
226
209
|
var tableCopy = rawData.slice();
|
|
227
210
|
React__default["default"].useEffect(function () {
|
|
228
211
|
setSortConfig({
|
|
@@ -234,7 +217,6 @@ function useSortableData(rawData, externalSortConfig) {
|
|
|
234
217
|
if (sortConfig.order === 'none') {
|
|
235
218
|
return tableCopy;
|
|
236
219
|
}
|
|
237
|
-
|
|
238
220
|
return [].concat(rawData).sort(function (a, b) {
|
|
239
221
|
if (get__default["default"](a, sortConfig.key) < get__default["default"](b, sortConfig.key)) {
|
|
240
222
|
return sortConfig.order === 'ascending' ? -1 : 1;
|
|
@@ -245,29 +227,24 @@ function useSortableData(rawData, externalSortConfig) {
|
|
|
245
227
|
}
|
|
246
228
|
});
|
|
247
229
|
}, [rawData, tableCopy, sortConfig]);
|
|
248
|
-
|
|
249
230
|
var onSortRequested = function onSortRequested(key) {
|
|
250
231
|
var order = 'ascending';
|
|
251
|
-
|
|
252
232
|
if (sortConfig.key === key && sortConfig.order === 'ascending') {
|
|
253
233
|
order = 'descending';
|
|
254
234
|
} else if (sortConfig.key === key && sortConfig.order === 'descending') {
|
|
255
235
|
order = 'none';
|
|
256
236
|
}
|
|
257
|
-
|
|
258
237
|
setSortConfig({
|
|
259
238
|
key: key,
|
|
260
239
|
order: order
|
|
261
240
|
});
|
|
262
241
|
};
|
|
263
|
-
|
|
264
242
|
function getSortableHeaderProps(_ref) {
|
|
265
243
|
var name = _ref.name,
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
244
|
+
_ref$sortable = _ref.sortable,
|
|
245
|
+
sortable = _ref$sortable === void 0 ? true : _ref$sortable,
|
|
246
|
+
buttonProps = _ref.buttonProps,
|
|
247
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
271
248
|
return _extends({
|
|
272
249
|
name: name,
|
|
273
250
|
sortable: sortable,
|
|
@@ -279,18 +256,15 @@ function useSortableData(rawData, externalSortConfig) {
|
|
|
279
256
|
}, buttonProps)
|
|
280
257
|
}, props);
|
|
281
258
|
}
|
|
282
|
-
|
|
283
259
|
function getSortableTableProps(_ref2) {
|
|
284
260
|
var _ref2$sortable = _ref2.sortable,
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
261
|
+
sortable = _ref2$sortable === void 0 ? true : _ref2$sortable,
|
|
262
|
+
props = _objectWithoutPropertiesLoose(_ref2, _excluded2);
|
|
288
263
|
return _extends({
|
|
289
264
|
sortable: sortable,
|
|
290
265
|
sortConfig: sortConfig
|
|
291
266
|
}, props);
|
|
292
267
|
}
|
|
293
|
-
|
|
294
268
|
return {
|
|
295
269
|
sortedData: sortedData,
|
|
296
270
|
getSortableHeaderProps: getSortableHeaderProps,
|
|
@@ -301,13 +275,12 @@ function useSortableData(rawData, externalSortConfig) {
|
|
|
301
275
|
var _excluded$1 = ["children", "className", "feedback", "variant", "outlined"];
|
|
302
276
|
var EditableCell = function EditableCell(_ref) {
|
|
303
277
|
var children = _ref.children,
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
278
|
+
className = _ref.className,
|
|
279
|
+
feedback = _ref.feedback,
|
|
280
|
+
variant = _ref.variant,
|
|
281
|
+
_ref$outlined = _ref.outlined,
|
|
282
|
+
outlined = _ref$outlined === void 0 ? false : _ref$outlined,
|
|
283
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
311
284
|
return React__default["default"].createElement(form.VariantProvider, {
|
|
312
285
|
variant: variant
|
|
313
286
|
}, React__default["default"].createElement(DataCell, _extends({
|
|
@@ -325,9 +298,9 @@ var EditableCell = function EditableCell(_ref) {
|
|
|
325
298
|
|
|
326
299
|
var ExpandableRow = function ExpandableRow(_ref) {
|
|
327
300
|
var _ref$open = _ref.open,
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
301
|
+
open = _ref$open === void 0 ? false : _ref$open,
|
|
302
|
+
children = _ref.children,
|
|
303
|
+
colSpan = _ref.colSpan;
|
|
331
304
|
return React__default["default"].createElement("tr", null, React__default["default"].createElement("td", {
|
|
332
305
|
colSpan: colSpan
|
|
333
306
|
}, React__default["default"].createElement(expand.BaseExpand, {
|
|
@@ -338,9 +311,8 @@ var ExpandableRow = function ExpandableRow(_ref) {
|
|
|
338
311
|
var _excluded = ["open", "onClick"];
|
|
339
312
|
var ExpandRowButton = function ExpandRowButton(_ref) {
|
|
340
313
|
var open = _ref.open,
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
314
|
+
onClick = _ref.onClick,
|
|
315
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
344
316
|
return React__default["default"].createElement(button.IconButton, _extends({
|
|
345
317
|
className: classNames__default["default"]('eds-expand-row-button', {
|
|
346
318
|
'eds-expand-row-button--open': open
|
|
@@ -354,81 +326,62 @@ var ExpandRowButton = function ExpandRowButton(_ref) {
|
|
|
354
326
|
|
|
355
327
|
function onTableKeypress(event, currentRow, maxRow, allowWrap) {
|
|
356
328
|
var keyPress = event.key;
|
|
357
|
-
|
|
358
329
|
switch (keyPress) {
|
|
359
330
|
case 'ArrowUp':
|
|
360
331
|
event.preventDefault();
|
|
361
|
-
|
|
362
332
|
if (allowWrap) {
|
|
363
333
|
return currentRow === 0 ? maxRow - 1 : currentRow - 1;
|
|
364
334
|
} else {
|
|
365
335
|
return currentRow > 0 ? currentRow - 1 : 0;
|
|
366
336
|
}
|
|
367
|
-
|
|
368
337
|
case 'ArrowDown':
|
|
369
338
|
event.preventDefault();
|
|
370
|
-
|
|
371
339
|
if (allowWrap) {
|
|
372
340
|
return currentRow === maxRow - 1 ? 0 : currentRow + 1;
|
|
373
341
|
} else {
|
|
374
342
|
return currentRow < maxRow - 1 ? currentRow + 1 : currentRow;
|
|
375
343
|
}
|
|
376
|
-
|
|
377
344
|
default:
|
|
378
345
|
return currentRow;
|
|
379
346
|
}
|
|
380
347
|
}
|
|
381
|
-
|
|
382
348
|
var useTableKeyboardNavigation = function useTableKeyboardNavigation(numberOfRows, allowWrap) {
|
|
383
349
|
var _tableBodyRef$current;
|
|
384
|
-
|
|
385
350
|
if (numberOfRows === void 0) {
|
|
386
351
|
numberOfRows = 0;
|
|
387
352
|
}
|
|
388
|
-
|
|
389
353
|
if (allowWrap === void 0) {
|
|
390
354
|
allowWrap = true;
|
|
391
355
|
}
|
|
392
|
-
|
|
393
356
|
var _useState = React.useState(numberOfRows),
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
357
|
+
currentRow = _useState[0],
|
|
358
|
+
setCurrentRow = _useState[1];
|
|
397
359
|
var _useState2 = React.useState(0),
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
360
|
+
maxRow = _useState2[0],
|
|
361
|
+
setMaxRow = _useState2[1];
|
|
401
362
|
var tableBodyRef = React__default["default"].useRef(null);
|
|
402
363
|
var tableHasFocus = tableBodyRef == null ? void 0 : (_tableBodyRef$current = tableBodyRef.current) == null ? void 0 : _tableBodyRef$current.contains(document.activeElement);
|
|
403
364
|
React__default["default"].useEffect(function () {
|
|
404
365
|
var _tableBodyRef$current2;
|
|
405
|
-
|
|
406
366
|
tableBodyRef && tableBodyRef.current && tableHasFocus && ((_tableBodyRef$current2 = tableBodyRef.current.childNodes[currentRow].childNodes[0].parentElement) == null ? void 0 : _tableBodyRef$current2.focus());
|
|
407
367
|
}, [currentRow, tableHasFocus]);
|
|
408
|
-
|
|
409
368
|
function getTableBodyNavigationProps() {
|
|
410
369
|
for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
411
370
|
rest[_key] = arguments[_key];
|
|
412
371
|
}
|
|
413
|
-
|
|
414
372
|
return _extends({
|
|
415
373
|
ref: tableBodyRef
|
|
416
374
|
}, rest);
|
|
417
375
|
}
|
|
418
|
-
|
|
419
376
|
var tableRowRef = React__default["default"].useRef(null);
|
|
420
|
-
|
|
421
377
|
function getTableRowNavigationProps(row) {
|
|
422
378
|
if (row >= maxRow) {
|
|
423
379
|
setMaxRow(row + 1);
|
|
424
380
|
}
|
|
425
|
-
|
|
426
381
|
var tabIndex = currentRow ? 0 : -1;
|
|
427
|
-
|
|
428
382
|
for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
429
383
|
rest[_key2 - 1] = arguments[_key2];
|
|
430
384
|
}
|
|
431
|
-
|
|
432
385
|
return _extends({
|
|
433
386
|
tabIndex: tabIndex,
|
|
434
387
|
ref: tableRowRef,
|
|
@@ -441,7 +394,6 @@ var useTableKeyboardNavigation = function useTableKeyboardNavigation(numberOfRow
|
|
|
441
394
|
}
|
|
442
395
|
}, rest);
|
|
443
396
|
}
|
|
444
|
-
|
|
445
397
|
return {
|
|
446
398
|
getTableRowNavigationProps: getTableRowNavigationProps,
|
|
447
399
|
getTableBodyNavigationProps: getTableBodyNavigationProps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.cjs.development.js","sources":["../src/Table.tsx","../src/TableHead.tsx","../src/TableBody.tsx","../src/TableFooter.tsx","../src/TableRow.tsx","../src/DataCell.tsx","../src/HeaderCell.tsx","../src/useSortableTable.ts","../src/EditableCell.tsx","../src/ExpandableRow.tsx","../src/ExpandRowButton.tsx","../src/useTableKeyboardNavigation.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\n\nexport type TableProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Setter tettheten mellom rader og kolonner. Bruk gjerne middle og small for for sider med høy informasjonstetthet\n * @default \"default\"\n */\n spacing?: 'default' | 'middle' | 'small';\n /** Setter kolonne-layout til å være uavhengig av innhold\n * @default false\n */\n fixed?: boolean;\n /** Innholdet i tabellen */\n children: React.ReactNode;\n [key: string]: any;\n};\nexport const Table = React.forwardRef<HTMLTableElement, TableProps>(\n (\n {\n className,\n fixed = false,\n spacing = 'default',\n sortable = false,\n ...rest\n },\n ref,\n ) => {\n return (\n <table\n className={classNames(\n 'eds-table',\n { 'eds-table--fixed': fixed },\n { 'eds-table--middle': spacing === 'middle' },\n { 'eds-table--small': spacing === 'small' },\n { 'eds-table--sortable': sortable },\n className,\n )}\n ref={ref}\n {...rest}\n />\n );\n },\n);\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type TableHeadProps = {\n /** Kolonneoverskrifter */\n children: React.ReactNode;\n /** Esktra klassenavn */\n className?: string;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableSectionElement>,\n HTMLTableSectionElement\n>;\n\nexport const TableHead = React.forwardRef<\n HTMLTableSectionElement,\n TableHeadProps\n>(({ className, ...props }, ref) => (\n <thead\n className={classNames('eds-table__head', className)}\n ref={ref}\n {...props}\n />\n));\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type TableBodyProps = {\n /** Tabellrader */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n ref?: React.Ref<HTMLTableSectionElement>;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableSectionElement>,\n HTMLTableSectionElement\n>;\n\nexport const TableBody = React.forwardRef<\n HTMLTableSectionElement,\n TableBodyProps\n>(({ className, ...rest }, ref) => (\n <tbody\n className={classNames('eds-table__body', className)}\n ref={ref}\n {...rest}\n />\n));\n","import React from 'react';\n\nexport type TableFooterProps = {\n /** Tabellrader */\n children: React.ReactNode;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableSectionElement>,\n HTMLTableSectionElement\n>;\n\nexport const TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n TableFooterProps\n>(({ ...props }, ref) => <tfoot ref={ref} {...props} />);\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type TableRowProps = {\n /** Tabellceller */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /**Hvis satt, så vil tabellraden endre fargen ved hover\n * @default false\n */\n hover?: boolean;\n /** Om raden er klikkbar, så vil raden endre farge, og musepekeren vil symbolisere interaktivitet\n * @default false\n */\n active?: boolean;\n /**Signalisere om at det er en feil i tabellraden\n * @default false\n */\n error?: boolean;\n ref?: React.Ref<HTMLTableRowElement>;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableRowElement>,\n HTMLTableRowElement\n>;\n\nexport const TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n (\n { className, hover = false, active = false, error = false, ...rest },\n ref: React.Ref<HTMLTableRowElement>,\n ) => (\n <tr\n className={classNames('eds-table__row', className, {\n 'eds-table__row--hover': hover,\n 'eds-table__row--active': active,\n 'eds-table__row--error': error,\n })}\n ref={ref}\n {...rest}\n />\n ),\n);\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type DataCellProps = {\n /** Innholdet i tabellcellen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelse som settes for DataCell for ulikt innhold av komponenter */\n padding?: 'default' | 'checkbox' | 'radio' | 'overflow-menu';\n /** Viser en status-sirkel for DataCell */\n status?: 'positive' | 'negative' | 'neutral';\n} & React.DetailedHTMLProps<\n React.TdHTMLAttributes<HTMLTableDataCellElement>,\n HTMLTableDataCellElement\n>;\n\nexport const DataCell = React.forwardRef<\n HTMLTableDataCellElement,\n DataCellProps\n>(\n (\n { className, padding = 'default', status = undefined, ...rest },\n ref: React.Ref<HTMLTableDataCellElement>,\n ) => (\n <td\n ref={ref}\n className={classNames('eds-table__data-cell', className, {\n [`eds-table__data-cell--status-${status}`]: status,\n 'eds-table__data-cell--padding-checkbox': padding === 'checkbox',\n 'eds-table__data-cell--padding-radio': padding === 'radio',\n 'eds-table__data-cell--padding-overflow-menu':\n padding === 'overflow-menu',\n })}\n {...rest}\n />\n ),\n);\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport { DownArrowIcon, UpArrowIcon, UnsortedIcon } from '@entur/icons';\n\nimport { ExternalSortConfig } from '.';\n\nimport './HeaderCell.scss';\n\nexport type HeaderCellProps = {\n /** Kolonneoverskrift */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelse som settes for HeaderCell for ulikt innhold av komponenter */\n padding?: 'default' | 'checkbox' | 'radio' | 'overflow-menu';\n\n /** Ekstra props som kan sendes til sorteringsknappelementet. Benyttes via useSortableTable */\n sortableButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >;\n\n /** Om komponenten brukes til sortering. Benytt via useSortableTable\n * @default false\n */\n sortable?: boolean;\n /** Konfigurering og rekkefølgen på sortering. Benyttes via useSortableTable */\n sortConfig?: ExternalSortConfig;\n /** Navnet det skal sorteres på. Benyttes via useSortableTable */\n name?: string;\n} & React.DetailedHTMLProps<\n React.ThHTMLAttributes<HTMLTableCellElement>,\n HTMLTableCellElement\n>;\n\nexport const HeaderCell = React.forwardRef<\n HTMLTableCellElement,\n HeaderCellProps\n>(\n (\n {\n className,\n children,\n name,\n sortable = false,\n sortConfig,\n padding = 'default',\n sortableButtonProps,\n ...rest\n },\n ref,\n ) => {\n const [isCurrentlySorted, setIsCurrentlySorted] =\n React.useState<boolean>(false);\n React.useEffect(() => {\n sortConfig &&\n name &&\n setIsCurrentlySorted(sortConfig && name === sortConfig.key);\n }, [sortConfig, name]);\n const ariaSort = isCurrentlySorted\n ? sortConfig && sortConfig.order\n : 'none';\n\n return (\n <th\n className={classNames('eds-table__header-cell', className, {\n 'eds-table__header-cell--sortable': sortable,\n 'eds-table__header-cell--padding-radio': padding === 'radio',\n 'eds-table__header-cell--padding-checkbox': padding === 'checkbox',\n 'eds-table__header-cell--padding-overflow-menu':\n padding === 'overflow-menu',\n })}\n aria-sort={ariaSort}\n ref={ref}\n {...rest}\n >\n {sortable && sortConfig && sortableButtonProps ? (\n <SortableHeaderCellButton\n sortableButtonProps={sortableButtonProps}\n sortConfig={sortConfig}\n isCurrentlySorted={isCurrentlySorted}\n >\n {children}\n </SortableHeaderCellButton>\n ) : (\n children\n )}\n </th>\n );\n },\n);\n\ntype SortableHeaderCellButtonProps = {\n sortConfig: ExternalSortConfig;\n isCurrentlySorted: boolean;\n sortableButtonProps: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >;\n};\n\nconst SortableHeaderCellButton: React.FC<SortableHeaderCellButtonProps> = ({\n sortConfig,\n sortableButtonProps,\n isCurrentlySorted,\n children,\n}) => {\n const { className, ...rest } = sortableButtonProps;\n return (\n <button\n className={classNames('eds-table__header-cell-button', className)}\n type=\"button\"\n {...rest}\n >\n {children}\n {(!isCurrentlySorted || sortConfig.order === 'none') && (\n <UnsortedIcon\n size=\"16px\"\n className=\"eds-table__header-cell-button-icon\"\n aria-label=\"usortert kolonne\"\n />\n )}\n {isCurrentlySorted && sortConfig.order === 'ascending' && (\n <UpArrowIcon\n size=\"16px\"\n className=\"eds-table__header-cell-button-icon\"\n aria-label=\"stigende sortert kolonne\"\n />\n )}\n {isCurrentlySorted && sortConfig.order === 'descending' && (\n <DownArrowIcon\n size=\"16px\"\n className=\"eds-table__header-cell-button-icon\"\n aria-label=\"synkende sortert kolonne\"\n />\n )}\n </button>\n );\n};\n","import React from 'react';\nimport get from 'lodash.get';\n\nexport type ExternalSortConfig = {\n /**\n * @default \"\"\n */\n key: string;\n /** @default \"none\" */\n order: 'ascending' | 'descending' | 'none';\n};\n\nexport function useSortableData<T>(\n rawData: T[],\n externalSortConfig: ExternalSortConfig = { key: '', order: 'none' },\n): {\n sortedData: T[];\n getSortableHeaderProps: (\n args: SortableHeaderProps,\n ) => SortableHeaderReturnProps;\n getSortableTableProps: (args: SortableTableProps) => SortableTableReturnProps;\n} {\n const [sortConfig, setSortConfig] = React.useState(externalSortConfig);\n const tableCopy = rawData.slice();\n\n React.useEffect(() => {\n setSortConfig({\n key: externalSortConfig.key,\n order: externalSortConfig.order,\n });\n }, [externalSortConfig.key, externalSortConfig.order]);\n\n const sortedData: T[] = React.useMemo(() => {\n if (sortConfig.order === 'none') {\n return tableCopy;\n }\n return [...rawData].sort((a: any, b: any) => {\n if (get(a, sortConfig.key) < get(b, sortConfig.key)) {\n return sortConfig.order === 'ascending' ? -1 : 1;\n } else if (get(a, sortConfig.key) > get(b, sortConfig.key)) {\n return sortConfig.order === 'ascending' ? 1 : -1;\n } else {\n return 0;\n }\n });\n }, [rawData, tableCopy, sortConfig]);\n\n const onSortRequested = (key: string) => {\n let order: 'ascending' | 'descending' | 'none' = 'ascending';\n if (sortConfig.key === key && sortConfig.order === 'ascending') {\n order = 'descending';\n } else if (sortConfig.key === key && sortConfig.order === 'descending') {\n order = 'none';\n }\n\n setSortConfig({ key, order });\n };\n\n function getSortableHeaderProps({\n name,\n sortable = true,\n buttonProps,\n ...props\n }: SortableHeaderProps): SortableHeaderReturnProps {\n return {\n name,\n sortable,\n sortConfig: sortConfig,\n sortableButtonProps: {\n onClick: () => onSortRequested(name),\n ...buttonProps,\n },\n ...props,\n };\n }\n\n function getSortableTableProps({\n sortable = true,\n ...props\n }: SortableTableProps): SortableTableReturnProps {\n return {\n sortable,\n sortConfig: sortConfig,\n ...props,\n };\n }\n\n return { sortedData, getSortableHeaderProps, getSortableTableProps };\n}\n\nexport type SortableHeaderProps = {\n /** Navnet headeren skal se etter i forhold til sortering av items */\n name: string;\n /** Om headeren skal være sorterbar eller ikke\n * @default true */\n sortable?: boolean;\n /** Props som sendes til knapp-elementet */\n buttonProps?: Omit<\n React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >,\n 'type' | 'onClick'\n >;\n [key: string]: any;\n};\n\nexport type SortableHeaderReturnProps = {\n name: string;\n sortable: boolean;\n sortConfig: ExternalSortConfig;\n [key: string]: any;\n};\n\nexport type SortableTableProps = {\n /** @default true */\n sortable?: boolean;\n [key: string]: any;\n};\n\nexport type SortableTableReturnProps = {\n /** @default true */\n sortable?: boolean;\n sortConfig: ExternalSortConfig;\n [key: string]: any;\n};\n","import classNames from 'classnames';\nimport React from 'react';\nimport { DataCell } from './DataCell';\nimport { VariantProvider, VariantType } from '@entur/form';\nimport { Tooltip } from '@entur/tooltip';\nimport './EditableCell.scss';\n\ntype EditableCellProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Inputelementet som skal være i tabellcellen */\n children: React.ReactElement;\n /** Valideringsvariant for EditableCell */\n variant?: VariantType;\n /** Varselmelding, som vil komme som en Tooltip under EditableCell */\n feedback?: string;\n /** Om cellen skal vise omriss til enhver tid\n * @default false\n */\n outlined?: boolean;\n [key: string]: any;\n};\n\nexport const EditableCell: React.FC<EditableCellProps> = ({\n children,\n className,\n feedback,\n variant,\n outlined = false,\n ...rest\n}) => {\n return (\n <VariantProvider variant={variant}>\n <DataCell\n className={classNames(\n 'eds-editable-cell',\n {\n 'eds-editable-cell--outlined': outlined,\n },\n className,\n )}\n {...rest}\n >\n <Tooltip\n disableHoverListener={!feedback}\n disableFocusListener={!feedback}\n placement=\"bottom\"\n content={feedback || undefined}\n variant={feedback ? 'error' : undefined}\n >\n {children}\n </Tooltip>\n </DataCell>\n </VariantProvider>\n );\n};\n","import React from 'react';\nimport { BaseExpand } from '@entur/expand';\n\nexport type ExpandableRowProps = {\n /** Antall kolonner tabellraden er */\n colSpan: number;\n /** Innholdet til ExpandableRow */\n children: React.ReactNode;\n /** Om ExpandableRow er åpen\n * @default false\n */\n open?: boolean;\n};\n\nexport const ExpandableRow: React.FC<ExpandableRowProps> = ({\n open = false,\n children,\n colSpan,\n}) => {\n return (\n <tr>\n <td colSpan={colSpan}>\n <BaseExpand open={open}>{children}</BaseExpand>\n </td>\n </tr>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { DownArrowIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport './ExpandRowButton.scss';\n\nexport type ExpandRowButtonProps = {\n open: boolean;\n onClick: (e: React.MouseEvent) => void;\n} & React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const ExpandRowButton: React.FC<ExpandRowButtonProps> = ({\n open,\n onClick,\n ...rest\n}) => {\n return (\n <IconButton\n className={classNames('eds-expand-row-button', {\n 'eds-expand-row-button--open': open,\n })}\n onClick={onClick}\n aria-label={open ? 'Lukk tabellrad' : 'Utvid tabellrad'}\n {...rest}\n >\n <DownArrowIcon className=\"eds-expand-row-button__icon\" />\n </IconButton>\n );\n};\n","import React, { useState } from 'react';\nimport { TableBodyProps, TableRowProps } from './index';\n\nfunction onTableKeypress(\n event: React.KeyboardEvent,\n currentRow: number,\n maxRow: number,\n allowWrap?: boolean,\n) {\n const keyPress = event.key;\n switch (keyPress) {\n case 'ArrowUp':\n event.preventDefault();\n if (allowWrap) {\n return currentRow === 0 ? maxRow - 1 : currentRow - 1;\n } else {\n return currentRow > 0 ? currentRow - 1 : 0;\n }\n case 'ArrowDown':\n event.preventDefault();\n if (allowWrap) {\n return currentRow === maxRow - 1 ? 0 : currentRow + 1;\n } else {\n return currentRow < maxRow - 1 ? currentRow + 1 : currentRow;\n }\n default:\n return currentRow;\n }\n}\n\nexport type useTableKeyboardNavigationProps = (\n /** Antall rader i tabellen */\n numberOfRows: number,\n /** Tillate at man kan navigere sirkulært\n * @default false\n */\n allowWrap?: boolean,\n) => {\n getTableRowNavigationProps: (\n /** Raden i tabellen (0-indeksert) */\n row: number,\n ) => Partial<TableRowProps>;\n getTableBodyNavigationProps: () => Partial<TableBodyProps>;\n};\n\nexport const useTableKeyboardNavigation: useTableKeyboardNavigationProps = (\n numberOfRows = 0,\n allowWrap = true,\n) => {\n const [currentRow, setCurrentRow] = useState(numberOfRows);\n const [maxRow, setMaxRow] = useState(0);\n\n const tableBodyRef = React.useRef<HTMLTableSectionElement>(null);\n const tableHasFocus = tableBodyRef?.current?.contains(document.activeElement);\n\n React.useEffect(() => {\n tableBodyRef &&\n tableBodyRef.current &&\n tableHasFocus &&\n tableBodyRef.current.childNodes[\n currentRow\n ].childNodes[0].parentElement?.focus();\n }, [currentRow, tableHasFocus]);\n\n function getTableBodyNavigationProps(...rest: any): Partial<TableBodyProps> {\n return {\n ref: tableBodyRef,\n ...rest,\n };\n }\n\n const tableRowRef = React.useRef<HTMLTableRowElement>(null);\n function getTableRowNavigationProps(\n row: number,\n ...rest: any\n ): Partial<TableRowProps> {\n if (row >= maxRow) {\n setMaxRow(row + 1);\n }\n const tabIndex = currentRow ? 0 : -1;\n return {\n tabIndex,\n ref: tableRowRef,\n onClick: () => setCurrentRow(row),\n onKeyDown: (e: React.KeyboardEvent) => {\n const newCell = onTableKeypress(e, currentRow, numberOfRows, allowWrap);\n setCurrentRow(newCell);\n },\n ...rest,\n };\n }\n return { getTableRowNavigationProps, getTableBodyNavigationProps };\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('table');\n\nexport * from './Table';\nexport * from './TableHead';\nexport * from './TableBody';\nexport * from './TableFooter';\nexport * from './TableRow';\nexport * from './DataCell';\nexport * from './HeaderCell';\nexport * from './useSortableTable';\nexport * from './EditableCell';\nexport * from './ExpandableRow';\nexport * from './ExpandRowButton';\nexport * from './useTableKeyboardNavigation';\n"],"names":["Table","React","forwardRef","ref","className","fixed","spacing","sortable","rest","classNames","TableHead","props","TableBody","TableFooter","TableRow","hover","active","error","DataCell","padding","status","undefined","HeaderCell","children","name","sortConfig","sortableButtonProps","useState","isCurrentlySorted","setIsCurrentlySorted","useEffect","key","ariaSort","order","SortableHeaderCellButton","type","UnsortedIcon","size","UpArrowIcon","DownArrowIcon","useSortableData","rawData","externalSortConfig","setSortConfig","tableCopy","slice","sortedData","useMemo","sort","a","b","get","onSortRequested","getSortableHeaderProps","buttonProps","onClick","getSortableTableProps","EditableCell","feedback","variant","outlined","VariantProvider","Tooltip","disableHoverListener","disableFocusListener","placement","content","ExpandableRow","open","colSpan","BaseExpand","ExpandRowButton","IconButton","onTableKeypress","event","currentRow","maxRow","allowWrap","keyPress","preventDefault","useTableKeyboardNavigation","numberOfRows","setCurrentRow","setMaxRow","tableBodyRef","useRef","tableHasFocus","current","contains","document","activeElement","childNodes","parentElement","focus","getTableBodyNavigationProps","tableRowRef","getTableRowNavigationProps","row","tabIndex","onKeyDown","e","newCell","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.cjs.development.js","sources":["../src/Table.tsx","../src/TableHead.tsx","../src/TableBody.tsx","../src/TableFooter.tsx","../src/TableRow.tsx","../src/DataCell.tsx","../src/HeaderCell.tsx","../src/useSortableTable.ts","../src/EditableCell.tsx","../src/ExpandableRow.tsx","../src/ExpandRowButton.tsx","../src/useTableKeyboardNavigation.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\n\nexport type TableProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Setter tettheten mellom rader og kolonner. Bruk gjerne middle og small for for sider med høy informasjonstetthet\n * @default \"default\"\n */\n spacing?: 'default' | 'middle' | 'small';\n /** Setter kolonne-layout til å være uavhengig av innhold\n * @default false\n */\n fixed?: boolean;\n /** Innholdet i tabellen */\n children: React.ReactNode;\n [key: string]: any;\n};\nexport const Table = React.forwardRef<HTMLTableElement, TableProps>(\n (\n {\n className,\n fixed = false,\n spacing = 'default',\n sortable = false,\n ...rest\n },\n ref,\n ) => {\n return (\n <table\n className={classNames(\n 'eds-table',\n { 'eds-table--fixed': fixed },\n { 'eds-table--middle': spacing === 'middle' },\n { 'eds-table--small': spacing === 'small' },\n { 'eds-table--sortable': sortable },\n className,\n )}\n ref={ref}\n {...rest}\n />\n );\n },\n);\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type TableHeadProps = {\n /** Kolonneoverskrifter */\n children: React.ReactNode;\n /** Esktra klassenavn */\n className?: string;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableSectionElement>,\n HTMLTableSectionElement\n>;\n\nexport const TableHead = React.forwardRef<\n HTMLTableSectionElement,\n TableHeadProps\n>(({ className, ...props }, ref) => (\n <thead\n className={classNames('eds-table__head', className)}\n ref={ref}\n {...props}\n />\n));\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type TableBodyProps = {\n /** Tabellrader */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n ref?: React.Ref<HTMLTableSectionElement>;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableSectionElement>,\n HTMLTableSectionElement\n>;\n\nexport const TableBody = React.forwardRef<\n HTMLTableSectionElement,\n TableBodyProps\n>(({ className, ...rest }, ref) => (\n <tbody\n className={classNames('eds-table__body', className)}\n ref={ref}\n {...rest}\n />\n));\n","import React from 'react';\n\nexport type TableFooterProps = {\n /** Tabellrader */\n children: React.ReactNode;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableSectionElement>,\n HTMLTableSectionElement\n>;\n\nexport const TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n TableFooterProps\n>(({ ...props }, ref) => <tfoot ref={ref} {...props} />);\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type TableRowProps = {\n /** Tabellceller */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /**Hvis satt, så vil tabellraden endre fargen ved hover\n * @default false\n */\n hover?: boolean;\n /** Om raden er klikkbar, så vil raden endre farge, og musepekeren vil symbolisere interaktivitet\n * @default false\n */\n active?: boolean;\n /**Signalisere om at det er en feil i tabellraden\n * @default false\n */\n error?: boolean;\n ref?: React.Ref<HTMLTableRowElement>;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableRowElement>,\n HTMLTableRowElement\n>;\n\nexport const TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n (\n { className, hover = false, active = false, error = false, ...rest },\n ref: React.Ref<HTMLTableRowElement>,\n ) => (\n <tr\n className={classNames('eds-table__row', className, {\n 'eds-table__row--hover': hover,\n 'eds-table__row--active': active,\n 'eds-table__row--error': error,\n })}\n ref={ref}\n {...rest}\n />\n ),\n);\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type DataCellProps = {\n /** Innholdet i tabellcellen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelse som settes for DataCell for ulikt innhold av komponenter */\n padding?: 'default' | 'checkbox' | 'radio' | 'overflow-menu';\n /** Viser en status-sirkel for DataCell */\n status?: 'positive' | 'negative' | 'neutral';\n} & React.DetailedHTMLProps<\n React.TdHTMLAttributes<HTMLTableDataCellElement>,\n HTMLTableDataCellElement\n>;\n\nexport const DataCell = React.forwardRef<\n HTMLTableDataCellElement,\n DataCellProps\n>(\n (\n { className, padding = 'default', status = undefined, ...rest },\n ref: React.Ref<HTMLTableDataCellElement>,\n ) => (\n <td\n ref={ref}\n className={classNames('eds-table__data-cell', className, {\n [`eds-table__data-cell--status-${status}`]: status,\n 'eds-table__data-cell--padding-checkbox': padding === 'checkbox',\n 'eds-table__data-cell--padding-radio': padding === 'radio',\n 'eds-table__data-cell--padding-overflow-menu':\n padding === 'overflow-menu',\n })}\n {...rest}\n />\n ),\n);\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport { DownArrowIcon, UpArrowIcon, UnsortedIcon } from '@entur/icons';\n\nimport { ExternalSortConfig } from '.';\n\nimport './HeaderCell.scss';\n\nexport type HeaderCellProps = {\n /** Kolonneoverskrift */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelse som settes for HeaderCell for ulikt innhold av komponenter */\n padding?: 'default' | 'checkbox' | 'radio' | 'overflow-menu';\n\n /** Ekstra props som kan sendes til sorteringsknappelementet. Benyttes via useSortableTable */\n sortableButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >;\n\n /** Om komponenten brukes til sortering. Benytt via useSortableTable\n * @default false\n */\n sortable?: boolean;\n /** Konfigurering og rekkefølgen på sortering. Benyttes via useSortableTable */\n sortConfig?: ExternalSortConfig;\n /** Navnet det skal sorteres på. Benyttes via useSortableTable */\n name?: string;\n} & React.DetailedHTMLProps<\n React.ThHTMLAttributes<HTMLTableCellElement>,\n HTMLTableCellElement\n>;\n\nexport const HeaderCell = React.forwardRef<\n HTMLTableCellElement,\n HeaderCellProps\n>(\n (\n {\n className,\n children,\n name,\n sortable = false,\n sortConfig,\n padding = 'default',\n sortableButtonProps,\n ...rest\n },\n ref,\n ) => {\n const [isCurrentlySorted, setIsCurrentlySorted] =\n React.useState<boolean>(false);\n React.useEffect(() => {\n sortConfig &&\n name &&\n setIsCurrentlySorted(sortConfig && name === sortConfig.key);\n }, [sortConfig, name]);\n const ariaSort = isCurrentlySorted\n ? sortConfig && sortConfig.order\n : 'none';\n\n return (\n <th\n className={classNames('eds-table__header-cell', className, {\n 'eds-table__header-cell--sortable': sortable,\n 'eds-table__header-cell--padding-radio': padding === 'radio',\n 'eds-table__header-cell--padding-checkbox': padding === 'checkbox',\n 'eds-table__header-cell--padding-overflow-menu':\n padding === 'overflow-menu',\n })}\n aria-sort={ariaSort}\n ref={ref}\n {...rest}\n >\n {sortable && sortConfig && sortableButtonProps ? (\n <SortableHeaderCellButton\n sortableButtonProps={sortableButtonProps}\n sortConfig={sortConfig}\n isCurrentlySorted={isCurrentlySorted}\n >\n {children}\n </SortableHeaderCellButton>\n ) : (\n children\n )}\n </th>\n );\n },\n);\n\ntype SortableHeaderCellButtonProps = {\n sortConfig: ExternalSortConfig;\n isCurrentlySorted: boolean;\n sortableButtonProps: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >;\n};\n\nconst SortableHeaderCellButton: React.FC<SortableHeaderCellButtonProps> = ({\n sortConfig,\n sortableButtonProps,\n isCurrentlySorted,\n children,\n}) => {\n const { className, ...rest } = sortableButtonProps;\n return (\n <button\n className={classNames('eds-table__header-cell-button', className)}\n type=\"button\"\n {...rest}\n >\n {children}\n {(!isCurrentlySorted || sortConfig.order === 'none') && (\n <UnsortedIcon\n size=\"16px\"\n className=\"eds-table__header-cell-button-icon\"\n aria-label=\"usortert kolonne\"\n />\n )}\n {isCurrentlySorted && sortConfig.order === 'ascending' && (\n <UpArrowIcon\n size=\"16px\"\n className=\"eds-table__header-cell-button-icon\"\n aria-label=\"stigende sortert kolonne\"\n />\n )}\n {isCurrentlySorted && sortConfig.order === 'descending' && (\n <DownArrowIcon\n size=\"16px\"\n className=\"eds-table__header-cell-button-icon\"\n aria-label=\"synkende sortert kolonne\"\n />\n )}\n </button>\n );\n};\n","import React from 'react';\nimport get from 'lodash.get';\n\nexport type ExternalSortConfig = {\n /**\n * @default \"\"\n */\n key: string;\n /** @default \"none\" */\n order: 'ascending' | 'descending' | 'none';\n};\n\nexport function useSortableData<T>(\n rawData: T[],\n externalSortConfig: ExternalSortConfig = { key: '', order: 'none' },\n): {\n sortedData: T[];\n getSortableHeaderProps: (\n args: SortableHeaderProps,\n ) => SortableHeaderReturnProps;\n getSortableTableProps: (args: SortableTableProps) => SortableTableReturnProps;\n} {\n const [sortConfig, setSortConfig] = React.useState(externalSortConfig);\n const tableCopy = rawData.slice();\n\n React.useEffect(() => {\n setSortConfig({\n key: externalSortConfig.key,\n order: externalSortConfig.order,\n });\n }, [externalSortConfig.key, externalSortConfig.order]);\n\n const sortedData: T[] = React.useMemo(() => {\n if (sortConfig.order === 'none') {\n return tableCopy;\n }\n return [...rawData].sort((a: any, b: any) => {\n if (get(a, sortConfig.key) < get(b, sortConfig.key)) {\n return sortConfig.order === 'ascending' ? -1 : 1;\n } else if (get(a, sortConfig.key) > get(b, sortConfig.key)) {\n return sortConfig.order === 'ascending' ? 1 : -1;\n } else {\n return 0;\n }\n });\n }, [rawData, tableCopy, sortConfig]);\n\n const onSortRequested = (key: string) => {\n let order: 'ascending' | 'descending' | 'none' = 'ascending';\n if (sortConfig.key === key && sortConfig.order === 'ascending') {\n order = 'descending';\n } else if (sortConfig.key === key && sortConfig.order === 'descending') {\n order = 'none';\n }\n\n setSortConfig({ key, order });\n };\n\n function getSortableHeaderProps({\n name,\n sortable = true,\n buttonProps,\n ...props\n }: SortableHeaderProps): SortableHeaderReturnProps {\n return {\n name,\n sortable,\n sortConfig: sortConfig,\n sortableButtonProps: {\n onClick: () => onSortRequested(name),\n ...buttonProps,\n },\n ...props,\n };\n }\n\n function getSortableTableProps({\n sortable = true,\n ...props\n }: SortableTableProps): SortableTableReturnProps {\n return {\n sortable,\n sortConfig: sortConfig,\n ...props,\n };\n }\n\n return { sortedData, getSortableHeaderProps, getSortableTableProps };\n}\n\nexport type SortableHeaderProps = {\n /** Navnet headeren skal se etter i forhold til sortering av items */\n name: string;\n /** Om headeren skal være sorterbar eller ikke\n * @default true */\n sortable?: boolean;\n /** Props som sendes til knapp-elementet */\n buttonProps?: Omit<\n React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >,\n 'type' | 'onClick'\n >;\n [key: string]: any;\n};\n\nexport type SortableHeaderReturnProps = {\n name: string;\n sortable: boolean;\n sortConfig: ExternalSortConfig;\n [key: string]: any;\n};\n\nexport type SortableTableProps = {\n /** @default true */\n sortable?: boolean;\n [key: string]: any;\n};\n\nexport type SortableTableReturnProps = {\n /** @default true */\n sortable?: boolean;\n sortConfig: ExternalSortConfig;\n [key: string]: any;\n};\n","import classNames from 'classnames';\nimport React from 'react';\nimport { DataCell } from './DataCell';\nimport { VariantProvider, VariantType } from '@entur/form';\nimport { Tooltip } from '@entur/tooltip';\nimport './EditableCell.scss';\n\ntype EditableCellProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Inputelementet som skal være i tabellcellen */\n children: React.ReactElement;\n /** Valideringsvariant for EditableCell */\n variant?: VariantType;\n /** Varselmelding, som vil komme som en Tooltip under EditableCell */\n feedback?: string;\n /** Om cellen skal vise omriss til enhver tid\n * @default false\n */\n outlined?: boolean;\n [key: string]: any;\n};\n\nexport const EditableCell: React.FC<EditableCellProps> = ({\n children,\n className,\n feedback,\n variant,\n outlined = false,\n ...rest\n}) => {\n return (\n <VariantProvider variant={variant}>\n <DataCell\n className={classNames(\n 'eds-editable-cell',\n {\n 'eds-editable-cell--outlined': outlined,\n },\n className,\n )}\n {...rest}\n >\n <Tooltip\n disableHoverListener={!feedback}\n disableFocusListener={!feedback}\n placement=\"bottom\"\n content={feedback || undefined}\n variant={feedback ? 'error' : undefined}\n >\n {children}\n </Tooltip>\n </DataCell>\n </VariantProvider>\n );\n};\n","import React from 'react';\nimport { BaseExpand } from '@entur/expand';\n\nexport type ExpandableRowProps = {\n /** Antall kolonner tabellraden er */\n colSpan: number;\n /** Innholdet til ExpandableRow */\n children: React.ReactNode;\n /** Om ExpandableRow er åpen\n * @default false\n */\n open?: boolean;\n};\n\nexport const ExpandableRow: React.FC<ExpandableRowProps> = ({\n open = false,\n children,\n colSpan,\n}) => {\n return (\n <tr>\n <td colSpan={colSpan}>\n <BaseExpand open={open}>{children}</BaseExpand>\n </td>\n </tr>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { DownArrowIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport './ExpandRowButton.scss';\n\nexport type ExpandRowButtonProps = {\n open: boolean;\n onClick: (e: React.MouseEvent) => void;\n} & React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const ExpandRowButton: React.FC<ExpandRowButtonProps> = ({\n open,\n onClick,\n ...rest\n}) => {\n return (\n <IconButton\n className={classNames('eds-expand-row-button', {\n 'eds-expand-row-button--open': open,\n })}\n onClick={onClick}\n aria-label={open ? 'Lukk tabellrad' : 'Utvid tabellrad'}\n {...rest}\n >\n <DownArrowIcon className=\"eds-expand-row-button__icon\" />\n </IconButton>\n );\n};\n","import React, { useState } from 'react';\nimport { TableBodyProps, TableRowProps } from './index';\n\nfunction onTableKeypress(\n event: React.KeyboardEvent,\n currentRow: number,\n maxRow: number,\n allowWrap?: boolean,\n) {\n const keyPress = event.key;\n switch (keyPress) {\n case 'ArrowUp':\n event.preventDefault();\n if (allowWrap) {\n return currentRow === 0 ? maxRow - 1 : currentRow - 1;\n } else {\n return currentRow > 0 ? currentRow - 1 : 0;\n }\n case 'ArrowDown':\n event.preventDefault();\n if (allowWrap) {\n return currentRow === maxRow - 1 ? 0 : currentRow + 1;\n } else {\n return currentRow < maxRow - 1 ? currentRow + 1 : currentRow;\n }\n default:\n return currentRow;\n }\n}\n\nexport type useTableKeyboardNavigationProps = (\n /** Antall rader i tabellen */\n numberOfRows: number,\n /** Tillate at man kan navigere sirkulært\n * @default false\n */\n allowWrap?: boolean,\n) => {\n getTableRowNavigationProps: (\n /** Raden i tabellen (0-indeksert) */\n row: number,\n ) => Partial<TableRowProps>;\n getTableBodyNavigationProps: () => Partial<TableBodyProps>;\n};\n\nexport const useTableKeyboardNavigation: useTableKeyboardNavigationProps = (\n numberOfRows = 0,\n allowWrap = true,\n) => {\n const [currentRow, setCurrentRow] = useState(numberOfRows);\n const [maxRow, setMaxRow] = useState(0);\n\n const tableBodyRef = React.useRef<HTMLTableSectionElement>(null);\n const tableHasFocus = tableBodyRef?.current?.contains(document.activeElement);\n\n React.useEffect(() => {\n tableBodyRef &&\n tableBodyRef.current &&\n tableHasFocus &&\n tableBodyRef.current.childNodes[\n currentRow\n ].childNodes[0].parentElement?.focus();\n }, [currentRow, tableHasFocus]);\n\n function getTableBodyNavigationProps(...rest: any): Partial<TableBodyProps> {\n return {\n ref: tableBodyRef,\n ...rest,\n };\n }\n\n const tableRowRef = React.useRef<HTMLTableRowElement>(null);\n function getTableRowNavigationProps(\n row: number,\n ...rest: any\n ): Partial<TableRowProps> {\n if (row >= maxRow) {\n setMaxRow(row + 1);\n }\n const tabIndex = currentRow ? 0 : -1;\n return {\n tabIndex,\n ref: tableRowRef,\n onClick: () => setCurrentRow(row),\n onKeyDown: (e: React.KeyboardEvent) => {\n const newCell = onTableKeypress(e, currentRow, numberOfRows, allowWrap);\n setCurrentRow(newCell);\n },\n ...rest,\n };\n }\n return { getTableRowNavigationProps, getTableBodyNavigationProps };\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('table');\n\nexport * from './Table';\nexport * from './TableHead';\nexport * from './TableBody';\nexport * from './TableFooter';\nexport * from './TableRow';\nexport * from './DataCell';\nexport * from './HeaderCell';\nexport * from './useSortableTable';\nexport * from './EditableCell';\nexport * from './ExpandableRow';\nexport * from './ExpandRowButton';\nexport * from './useTableKeyboardNavigation';\n"],"names":["Table","React","forwardRef","ref","className","fixed","spacing","sortable","rest","classNames","TableHead","props","TableBody","TableFooter","TableRow","hover","active","error","DataCell","padding","status","undefined","HeaderCell","children","name","sortConfig","sortableButtonProps","useState","isCurrentlySorted","setIsCurrentlySorted","useEffect","key","ariaSort","order","SortableHeaderCellButton","type","UnsortedIcon","size","UpArrowIcon","DownArrowIcon","useSortableData","rawData","externalSortConfig","setSortConfig","tableCopy","slice","sortedData","useMemo","sort","a","b","get","onSortRequested","getSortableHeaderProps","buttonProps","onClick","getSortableTableProps","EditableCell","feedback","variant","outlined","VariantProvider","Tooltip","disableHoverListener","disableFocusListener","placement","content","ExpandableRow","open","colSpan","BaseExpand","ExpandRowButton","IconButton","onTableKeypress","event","currentRow","maxRow","allowWrap","keyPress","preventDefault","useTableKeyboardNavigation","numberOfRows","setCurrentRow","setMaxRow","tableBodyRef","useRef","tableHasFocus","current","contains","document","activeElement","childNodes","parentElement","focus","getTableBodyNavigationProps","tableRowRef","getTableRowNavigationProps","row","tabIndex","onKeyDown","e","newCell","warnAboutMissingStyles"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),t=require("react"),a=require("classnames"),r=require("@entur/icons"),n=require("lodash.get"),l=require("@entur/form"),o=require("@entur/tooltip"),d=require("@entur/expand"),s=require("@entur/button");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=u(t),i=u(a),f=u(n);function b(){return b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},b.apply(this,arguments)}function v(e,t){if(null==e)return{};var a,r,n={},l=Object.keys(e);for(r=0;r<l.length;r++)t.indexOf(a=l[r])>=0||(n[a]=e[a]);return n}var m=["className","fixed","spacing","sortable"],p=c.default.forwardRef((function(e,t){var a=e.className,r=e.fixed,n=void 0!==r&&r,l=e.spacing,o=void 0===l?"default":l,d=e.sortable,s=void 0!==d&&d,u=v(e,m);return c.default.createElement("table",b({className:i.default("eds-table",{"eds-table--fixed":n},{"eds-table--middle":"middle"===o},{"eds-table--small":"small"===o},{"eds-table--sortable":s},a),ref:t},u))})),_=["className"],g=c.default.forwardRef((function(e,t){var a=e.className,r=v(e,_);return c.default.createElement("thead",b({className:i.default("eds-table__head",a),ref:t},r))})),w=["className"],h=c.default.forwardRef((function(e,t){var a=e.className,r=v(e,w);return c.default.createElement("tbody",b({className:i.default("eds-table__body",a),ref:t},r))})),N=c.default.forwardRef((function(e,t){var a=b({},e);return c.default.createElement("tfoot",b({ref:t},a))})),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),t=require("react"),a=require("classnames"),r=require("@entur/icons"),n=require("lodash.get"),l=require("@entur/form"),o=require("@entur/tooltip"),d=require("@entur/expand"),s=require("@entur/button");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=u(t),i=u(a),f=u(n);function b(){return b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},b.apply(this,arguments)}function v(e,t){if(null==e)return{};var a,r,n={},l=Object.keys(e);for(r=0;r<l.length;r++)t.indexOf(a=l[r])>=0||(n[a]=e[a]);return n}var m=["className","fixed","spacing","sortable"],p=c.default.forwardRef((function(e,t){var a=e.className,r=e.fixed,n=void 0!==r&&r,l=e.spacing,o=void 0===l?"default":l,d=e.sortable,s=void 0!==d&&d,u=v(e,m);return c.default.createElement("table",b({className:i.default("eds-table",{"eds-table--fixed":n},{"eds-table--middle":"middle"===o},{"eds-table--small":"small"===o},{"eds-table--sortable":s},a),ref:t},u))})),_=["className"],g=c.default.forwardRef((function(e,t){var a=e.className,r=v(e,_);return c.default.createElement("thead",b({className:i.default("eds-table__head",a),ref:t},r))})),w=["className"],h=c.default.forwardRef((function(e,t){var a=e.className,r=v(e,w);return c.default.createElement("tbody",b({className:i.default("eds-table__body",a),ref:t},r))})),N=c.default.forwardRef((function(e,t){var a=b({},(function(e){if(null==e)throw new TypeError("Cannot destructure undefined")}(e),e));return c.default.createElement("tfoot",b({ref:t},a))})),y=["className","hover","active","error"],x=c.default.forwardRef((function(e,t){var a=e.className,r=e.hover,n=void 0!==r&&r,l=e.active,o=void 0!==l&&l,d=e.error,s=void 0!==d&&d,u=v(e,y);return c.default.createElement("tr",b({className:i.default("eds-table__row",a,{"eds-table__row--hover":n,"eds-table__row--active":o,"eds-table__row--error":s}),ref:t},u))})),k=["className","padding","status"],E=c.default.forwardRef((function(e,t){var a,r=e.className,n=e.padding,l=void 0===n?"default":n,o=e.status,d=void 0===o?void 0:o,s=v(e,k);return c.default.createElement("td",b({ref:t,className:i.default("eds-table__data-cell",r,(a={},a["eds-table__data-cell--status-"+d]=d,a["eds-table__data-cell--padding-checkbox"]="checkbox"===l,a["eds-table__data-cell--padding-radio"]="radio"===l,a["eds-table__data-cell--padding-overflow-menu"]="overflow-menu"===l,a))},s))})),C=["className","children","name","sortable","sortConfig","padding","sortableButtonProps"],P=["className"],R=c.default.forwardRef((function(e,t){var a=e.className,r=e.children,n=e.name,l=e.sortable,o=void 0!==l&&l,d=e.sortConfig,s=e.padding,u=void 0===s?"default":s,f=e.sortableButtonProps,m=v(e,C),p=c.default.useState(!1),_=p[0],g=p[1];c.default.useEffect((function(){d&&n&&g(d&&n===d.key)}),[d,n]);var w=_?d&&d.order:"none";return c.default.createElement("th",b({className:i.default("eds-table__header-cell",a,{"eds-table__header-cell--sortable":o,"eds-table__header-cell--padding-radio":"radio"===u,"eds-table__header-cell--padding-checkbox":"checkbox"===u,"eds-table__header-cell--padding-overflow-menu":"overflow-menu"===u}),"aria-sort":w,ref:t},m),o&&d&&f?c.default.createElement(S,{sortableButtonProps:f,sortConfig:d,isCurrentlySorted:_},r):r)})),S=function(e){var t=e.sortConfig,a=e.sortableButtonProps,n=e.isCurrentlySorted,l=e.children,o=a.className,d=v(a,P);return c.default.createElement("button",b({className:i.default("eds-table__header-cell-button",o),type:"button"},d),l,(!n||"none"===t.order)&&c.default.createElement(r.UnsortedIcon,{size:"16px",className:"eds-table__header-cell-button-icon","aria-label":"usortert kolonne"}),n&&"ascending"===t.order&&c.default.createElement(r.UpArrowIcon,{size:"16px",className:"eds-table__header-cell-button-icon","aria-label":"stigende sortert kolonne"}),n&&"descending"===t.order&&c.default.createElement(r.DownArrowIcon,{size:"16px",className:"eds-table__header-cell-button-icon","aria-label":"synkende sortert kolonne"}))},T=["name","sortable","buttonProps"],B=["sortable"],q=["children","className","feedback","variant","outlined"],D=["open","onClick"];function A(e,t,a,r){switch(e.key){case"ArrowUp":return e.preventDefault(),r?0===t?a-1:t-1:t>0?t-1:0;case"ArrowDown":return e.preventDefault(),r?t===a-1?0:t+1:t<a-1?t+1:t;default:return t}}e.warnAboutMissingStyles("table"),exports.DataCell=E,exports.EditableCell=function(e){var t=e.children,a=e.className,r=e.feedback,n=e.variant,d=e.outlined,s=void 0!==d&&d,u=v(e,q);return c.default.createElement(l.VariantProvider,{variant:n},c.default.createElement(E,b({className:i.default("eds-editable-cell",{"eds-editable-cell--outlined":s},a)},u),c.default.createElement(o.Tooltip,{disableHoverListener:!r,disableFocusListener:!r,placement:"bottom",content:r||void 0,variant:r?"error":void 0},t)))},exports.ExpandRowButton=function(e){var t=e.open,a=e.onClick,n=v(e,D);return c.default.createElement(s.IconButton,b({className:i.default("eds-expand-row-button",{"eds-expand-row-button--open":t}),onClick:a,"aria-label":t?"Lukk tabellrad":"Utvid tabellrad"},n),c.default.createElement(r.DownArrowIcon,{className:"eds-expand-row-button__icon"}))},exports.ExpandableRow=function(e){var t=e.open;return c.default.createElement("tr",null,c.default.createElement("td",{colSpan:e.colSpan},c.default.createElement(d.BaseExpand,{open:void 0!==t&&t},e.children)))},exports.HeaderCell=R,exports.Table=p,exports.TableBody=h,exports.TableFooter=N,exports.TableHead=g,exports.TableRow=x,exports.useSortableData=function(e,t){void 0===t&&(t={key:"",order:"none"});var a=c.default.useState(t),r=a[0],n=a[1],l=e.slice();return c.default.useEffect((function(){n({key:t.key,order:t.order})}),[t.key,t.order]),{sortedData:c.default.useMemo((function(){return"none"===r.order?l:[].concat(e).sort((function(e,t){return f.default(e,r.key)<f.default(t,r.key)?"ascending"===r.order?-1:1:f.default(e,r.key)>f.default(t,r.key)?"ascending"===r.order?1:-1:0}))}),[e,l,r]),getSortableHeaderProps:function(e){var t=e.name,a=e.sortable,l=void 0===a||a,o=e.buttonProps,d=v(e,T);return b({name:t,sortable:l,sortConfig:r,sortableButtonProps:b({onClick:function(){return a="ascending",r.key===(e=t)&&"ascending"===r.order?a="descending":r.key===e&&"descending"===r.order&&(a="none"),void n({key:e,order:a});var e,a}},o)},d)},getSortableTableProps:function(e){var t=e.sortable,a=void 0===t||t,n=v(e,B);return b({sortable:a,sortConfig:r},n)}}},exports.useTableKeyboardNavigation=function(e,a){var r;void 0===e&&(e=0),void 0===a&&(a=!0);var n=t.useState(e),l=n[0],o=n[1],d=t.useState(0),s=d[0],u=d[1],i=c.default.useRef(null),f=null==i||null==(r=i.current)?void 0:r.contains(document.activeElement);c.default.useEffect((function(){var e;i&&i.current&&f&&(null==(e=i.current.childNodes[l].childNodes[0].parentElement)||e.focus())}),[l,f]);var v=c.default.useRef(null);return{getTableRowNavigationProps:function(t){t>=s&&u(t+1);for(var r=l?0:-1,n=arguments.length,d=new Array(n>1?n-1:0),c=1;c<n;c++)d[c-1]=arguments[c];return b({tabIndex:r,ref:v,onClick:function(){return o(t)},onKeyDown:function(t){var r=A(t,l,e,a);o(r)}},d)},getTableBodyNavigationProps:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return b({ref:i},t)}}};
|
|
2
2
|
//# sourceMappingURL=table.cjs.production.min.js.map
|