@digigov/ui 0.32.2 → 0.33.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 (46) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/admin/Drawer/__stories__/Default.js +3 -0
  3. package/admin/Dropdown/index.d.ts +1 -1
  4. package/admin/Dropdown/index.js +14 -3
  5. package/core/CaretContainer/index.d.ts +3 -0
  6. package/core/CaretContainer/index.js +30 -0
  7. package/core/Table/Table.stories.d.ts +1 -0
  8. package/core/Table/Table.stories.js +14 -0
  9. package/core/Table/Table.stories.playwright.json +16 -0
  10. package/core/Table/__stories__/WithSortFilters.d.ts +2 -0
  11. package/core/Table/__stories__/WithSortFilters.js +141 -0
  12. package/core/Table/index.d.ts +22 -1
  13. package/core/Table/index.js +210 -24
  14. package/core/index.d.ts +1 -0
  15. package/core/index.js +13 -0
  16. package/es/admin/Drawer/__stories__/Default.js +3 -0
  17. package/es/admin/Dropdown/index.js +14 -3
  18. package/es/core/CaretContainer/index.js +3 -0
  19. package/es/core/Table/Table.stories.js +1 -0
  20. package/es/core/Table/Table.stories.playwright.json +16 -0
  21. package/es/core/Table/__stories__/WithSortFilters.js +126 -0
  22. package/es/core/Table/index.js +170 -1
  23. package/es/core/index.js +1 -0
  24. package/es/registry.js +2 -0
  25. package/esm/admin/Drawer/__stories__/Default.js +3 -0
  26. package/esm/admin/Dropdown/index.js +14 -3
  27. package/esm/core/CaretContainer/index.js +3 -0
  28. package/esm/core/Table/Table.stories.js +1 -0
  29. package/esm/core/Table/Table.stories.playwright.json +16 -0
  30. package/esm/core/Table/__stories__/WithSortFilters.js +126 -0
  31. package/esm/core/Table/index.js +170 -1
  32. package/esm/core/index.js +1 -0
  33. package/esm/index.js +1 -1
  34. package/esm/registry.js +2 -0
  35. package/package.json +3 -3
  36. package/registry.d.ts +1 -0
  37. package/registry.js +3 -0
  38. package/src/admin/Drawer/__stories__/Default.tsx +3 -1
  39. package/src/admin/Dropdown/index.tsx +16 -7
  40. package/src/core/CaretContainer/index.tsx +3 -0
  41. package/src/core/Table/Table.stories.js +1 -0
  42. package/src/core/Table/Table.stories.playwright.json +16 -0
  43. package/src/core/Table/__stories__/WithSortFilters.tsx +189 -0
  44. package/src/core/Table/index.tsx +195 -2
  45. package/src/core/index.ts +1 -0
  46. package/src/registry.js +2 -0
@@ -1,37 +1,77 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  var _typeof = require("@babel/runtime/helpers/typeof");
4
6
 
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
- var _exportNames = {};
9
- exports["default"] = void 0;
10
+ var _exportNames = {
11
+ TableHeadCellSortBase: true,
12
+ TableHeadCellSort: true,
13
+ useSortableData: true
14
+ };
15
+ exports.useSortableData = exports["default"] = exports.TableHeadCellSortBase = exports.TableHeadCellSort = void 0;
10
16
 
11
- var _TableContainer = require("@digigov/react-core/TableContainer");
17
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
18
 
13
- Object.keys(_TableContainer).forEach(function (key) {
19
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
20
+
21
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
22
+
23
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
24
+
25
+ var _react = _interopRequireWildcard(require("react"));
26
+
27
+ var _Table = _interopRequireWildcard(require("@digigov/react-core/Table"));
28
+
29
+ Object.keys(_Table).forEach(function (key) {
14
30
  if (key === "default" || key === "__esModule") return;
15
31
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
16
- if (key in exports && exports[key] === _TableContainer[key]) return;
32
+ if (key in exports && exports[key] === _Table[key]) return;
17
33
  Object.defineProperty(exports, key, {
18
34
  enumerable: true,
19
35
  get: function get() {
20
- return _TableContainer[key];
36
+ return _Table[key];
21
37
  }
22
38
  });
23
39
  });
24
40
 
25
- var _Table = _interopRequireWildcard(require("@digigov/react-core/Table"));
41
+ var _Dropdown = require("@digigov/ui/admin/Dropdown");
26
42
 
27
- Object.keys(_Table).forEach(function (key) {
43
+ var _NavVertical = require("@digigov/ui/core/NavList/NavVertical");
44
+
45
+ var _NavVerticalItem = require("@digigov/ui/core/NavList/NavVerticalItem");
46
+
47
+ var _SvgIcon = require("@digigov/ui/core/SvgIcon");
48
+
49
+ var _TableHeadCell = _interopRequireWildcard(require("@digigov/react-core/TableHeadCell"));
50
+
51
+ Object.keys(_TableHeadCell).forEach(function (key) {
28
52
  if (key === "default" || key === "__esModule") return;
29
53
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
30
- if (key in exports && exports[key] === _Table[key]) return;
54
+ if (key in exports && exports[key] === _TableHeadCell[key]) return;
31
55
  Object.defineProperty(exports, key, {
32
56
  enumerable: true,
33
57
  get: function get() {
34
- return _Table[key];
58
+ return _TableHeadCell[key];
59
+ }
60
+ });
61
+ });
62
+
63
+ var _CaretContainer = _interopRequireDefault(require("@digigov/ui/core/CaretContainer"));
64
+
65
+ var _TableContainer = require("@digigov/react-core/TableContainer");
66
+
67
+ Object.keys(_TableContainer).forEach(function (key) {
68
+ if (key === "default" || key === "__esModule") return;
69
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
70
+ if (key in exports && exports[key] === _TableContainer[key]) return;
71
+ Object.defineProperty(exports, key, {
72
+ enumerable: true,
73
+ get: function get() {
74
+ return _TableContainer[key];
35
75
  }
36
76
  });
37
77
  });
@@ -92,20 +132,6 @@ Object.keys(_TableHead).forEach(function (key) {
92
132
  });
93
133
  });
94
134
 
95
- var _TableHeadCell = require("@digigov/react-core/TableHeadCell");
96
-
97
- Object.keys(_TableHeadCell).forEach(function (key) {
98
- if (key === "default" || key === "__esModule") return;
99
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
100
- if (key in exports && exports[key] === _TableHeadCell[key]) return;
101
- Object.defineProperty(exports, key, {
102
- enumerable: true,
103
- get: function get() {
104
- return _TableHeadCell[key];
105
- }
106
- });
107
- });
108
-
109
135
  var _TableRow = require("@digigov/react-core/TableRow");
110
136
 
111
137
  Object.keys(_TableRow).forEach(function (key) {
@@ -147,10 +173,170 @@ Object.keys(_TableFloatingScroll).forEach(function (key) {
147
173
  }
148
174
  });
149
175
  });
176
+ var _excluded = ["sortedAscDesc", "sortedField", "sortedDirectionValue", "headerItems", "sortedData", "children"];
150
177
 
151
178
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
152
179
 
153
180
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
154
181
 
182
+ var useSortableData = function useSortableData(items) {
183
+ var _useState = (0, _react.useState)(''),
184
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
185
+ field = _useState2[0],
186
+ setField = _useState2[1];
187
+
188
+ var _useState3 = (0, _react.useState)(0),
189
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
190
+ directionValue = _useState4[0],
191
+ setDirectionValue = _useState4[1];
192
+
193
+ var sortedItems = (0, _react.useMemo)(function () {
194
+ var sortableItems = (0, _toConsumableArray2["default"])(items);
195
+
196
+ if (sortableItems.length === 0) {
197
+ return;
198
+ }
199
+
200
+ if (field) {
201
+ sortableItems.sort(function (a, b) {
202
+ if (a[field] === null) return 1;
203
+ if (b[field] === null) return -1;
204
+ if (a[field] === null && b[field] === null) return 0;
205
+ return a[field].toString().localeCompare(b[field].toString(), undefined, {
206
+ numeric: true
207
+ }) * (directionValue > 0 ? 1 : -1);
208
+ });
209
+ }
210
+
211
+ return sortableItems;
212
+ }, [items, directionValue, field]);
213
+
214
+ var sortAscDesc = function sortAscDesc(item, value) {
215
+ setDirectionValue(value);
216
+ setField(item);
217
+ };
218
+
219
+ return {
220
+ sortedData: sortedItems,
221
+ sortedProps: {
222
+ sortedData: sortedItems,
223
+ sortedDirectionValue: directionValue,
224
+ sortedField: field,
225
+ sortedAscDesc: sortAscDesc
226
+ }
227
+ };
228
+ };
229
+
230
+ exports.useSortableData = useSortableData;
231
+
232
+ var TableHeadCellSort = /*#__PURE__*/_react["default"].forwardRef(function TableHeadCellSort(_ref, ref) {
233
+ var props = (0, _extends2["default"])({}, _ref);
234
+ return /*#__PURE__*/_react["default"].createElement(TableHeadCellSortBase, (0, _extends2["default"])({
235
+ ref: ref
236
+ }, props));
237
+ });
238
+
239
+ exports.TableHeadCellSort = TableHeadCellSort;
240
+
241
+ var TableHeadCellSortBase = /*#__PURE__*/_react["default"].forwardRef(function TableHeadCellSortBase(_ref2, ref) {
242
+ var sortedAscDesc = _ref2.sortedAscDesc,
243
+ sortedField = _ref2.sortedField,
244
+ sortedDirectionValue = _ref2.sortedDirectionValue,
245
+ headerItems = _ref2.headerItems,
246
+ sortedData = _ref2.sortedData,
247
+ children = _ref2.children,
248
+ props = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
249
+ var innerRef = (0, _react.useRef)();
250
+
251
+ var _ref3 = headerItems || {},
252
+ name = _ref3.name,
253
+ sortLabels = _ref3.sortLabels;
254
+
255
+ var _useState5 = (0, _react.useState)(0),
256
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
257
+ sortDirection = _useState6[0],
258
+ setSortDirection = _useState6[1];
259
+
260
+ var setSortAscDesc = (0, _react.useCallback)(function (name, value) {
261
+ if (sortedAscDesc) {
262
+ if (sortedField !== name) {
263
+ sortedAscDesc('', 0);
264
+ setSortDirection(value);
265
+ sortedAscDesc(name, value);
266
+ } else {
267
+ if (value !== sortDirection) {
268
+ setSortDirection(value);
269
+ sortedAscDesc(name, value);
270
+ } else {
271
+ setSortDirection(0);
272
+ sortedAscDesc('', 0);
273
+ }
274
+ }
275
+ }
276
+ }, [sortedField, sortedDirectionValue, sortDirection]);
277
+
278
+ var _onKeyDown = (0, _react.useCallback)(function (e, name, value) {
279
+ if (e.key === 'Enter' && innerRef.current.contains(e.target)) {
280
+ if (innerRef.current.open) {
281
+ setSortAscDesc(name, value);
282
+ innerRef.current.open = false;
283
+ }
284
+ }
285
+ }, [name, sortDirection]);
286
+
287
+ var setDisabled = (0, _react.useCallback)(function (sortedData) {
288
+ return sortedData === undefined || sortedData.length === 0 ? true : false;
289
+ }, [sortedData]);
290
+ var setCaretColor = (0, _react.useCallback)(function (value) {
291
+ if (sortedField === name) {
292
+ return sortedDirectionValue === value ? 'dark' : 'gray';
293
+ } else {
294
+ return 'gray';
295
+ }
296
+ }, [sortedDirectionValue, sortedField]);
297
+ return /*#__PURE__*/_react["default"].createElement(_TableHeadCell["default"], (0, _extends2["default"])({}, props, {
298
+ ref: ref
299
+ }), /*#__PURE__*/_react["default"].createElement(_Dropdown.Dropdown, {
300
+ tabIndex: 0,
301
+ disabled: setDisabled(sortedData),
302
+ ref: innerRef
303
+ }, /*#__PURE__*/_react["default"].createElement(_Dropdown.DropdownButton, {
304
+ variant: "link",
305
+ underline: sortedField === name ? true : false
306
+ }, children, /*#__PURE__*/_react["default"].createElement(_CaretContainer["default"], {
307
+ marginLeft: 1
308
+ }, sortLabels && sortLabels.length > 0 && sortLabels.map(function (obj, index) {
309
+ return /*#__PURE__*/_react["default"].createElement(_SvgIcon.CaretIcon, {
310
+ key: index,
311
+ direction: obj.value == 1 ? 'up' : 'down',
312
+ size: "m",
313
+ variant: setCaretColor(obj.value)
314
+ });
315
+ }))), /*#__PURE__*/_react["default"].createElement(_Dropdown.DropdownContent, null, sortLabels && sortLabels.length > 0 && sortLabels.map(function (obj, index) {
316
+ return /*#__PURE__*/_react["default"].createElement(_NavVertical.NavVertical, {
317
+ key: index
318
+ }, /*#__PURE__*/_react["default"].createElement(_NavVerticalItem.NavVerticalItem, (0, _extends2["default"])({}, sortedField === name && sortedDirectionValue === obj.value && {
319
+ active: true
320
+ }, {
321
+ tabIndex: 0,
322
+ onClick: function onClick() {
323
+ if (setSortAscDesc) {
324
+ setSortAscDesc(name, obj.value);
325
+ innerRef.current.open = false;
326
+ }
327
+ },
328
+ onKeyDown: function onKeyDown(e) {
329
+ _onKeyDown(e, name, obj.value);
330
+ }
331
+ }), /*#__PURE__*/_react["default"].createElement(_SvgIcon.CaretIcon, {
332
+ direction: obj.value == 1 ? 'up' : 'down',
333
+ marginRight: 1,
334
+ marginTop: 1,
335
+ size: "m"
336
+ }), obj.label));
337
+ }))));
338
+ });
339
+
340
+ exports.TableHeadCellSortBase = TableHeadCellSortBase;
155
341
  var _default = _Table["default"];
156
342
  exports["default"] = _default;
package/core/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export * from '@digigov/ui/core/Accordion';
6
6
  export * from '@digigov/ui/core/Blockquote';
7
7
  export * from '@digigov/ui/core/Breadcrumbs';
8
8
  export * from '@digigov/ui/core/Card';
9
+ export * from '@digigov/ui/core/CaretContainer';
9
10
  export * from '@digigov/ui/core/Checkbox';
10
11
  export * from '@digigov/ui/core/DateInputContainer';
11
12
  export * from '@digigov/ui/core/Details';
package/core/index.js CHANGED
@@ -95,6 +95,19 @@ Object.keys(_Card).forEach(function (key) {
95
95
  });
96
96
  });
97
97
 
98
+ var _CaretContainer = require("@digigov/ui/core/CaretContainer");
99
+
100
+ Object.keys(_CaretContainer).forEach(function (key) {
101
+ if (key === "default" || key === "__esModule") return;
102
+ if (key in exports && exports[key] === _CaretContainer[key]) return;
103
+ Object.defineProperty(exports, key, {
104
+ enumerable: true,
105
+ get: function get() {
106
+ return _CaretContainer[key];
107
+ }
108
+ });
109
+ });
110
+
98
111
  var _Checkbox = require("@digigov/ui/core/Checkbox");
99
112
 
100
113
  Object.keys(_Checkbox).forEach(function (key) {
@@ -77,7 +77,9 @@ export var Default = function Default() {
77
77
 
78
78
  var layout = 'vertical';
79
79
  var border = false;
80
+ var fixed = false;
80
81
  return /*#__PURE__*/React.createElement(Drawer, {
82
+ upRelative: "m",
81
83
  direction: "left",
82
84
  open: open
83
85
  }, /*#__PURE__*/React.createElement(DrawerHeading, {
@@ -88,6 +90,7 @@ export var Default = function Default() {
88
90
  layout: layout,
89
91
  links: links,
90
92
  border: border,
93
+ fixed: fixed,
91
94
  "aria-label": "Nav list"
92
95
  }, links.map(function (item, key) {
93
96
  var _item$subMenu;
@@ -9,15 +9,22 @@ export * from '@digigov/react-extensions/admin/DropdownContent';
9
9
  /**
10
10
  * Dropdown component is used for showing more options with a button.
11
11
  */
12
- export var Dropdown = function Dropdown(_ref) {
12
+ export var Dropdown = /*#__PURE__*/React.forwardRef(function Dropdown(_ref, ref) {
13
13
  var _ref$closeBehaviour = _ref.closeBehaviour,
14
14
  closeBehaviour = _ref$closeBehaviour === void 0 ? 'clickOutside' : _ref$closeBehaviour,
15
15
  _ref$float = _ref["float"],
16
16
  _float = _ref$float === void 0 ? false : _ref$float,
17
17
  props = _objectWithoutProperties(_ref, _excluded);
18
18
 
19
- var innerRef = useRef();
19
+ var innerRef = ref || useRef();
20
20
  useEffect(function () {
21
+ var keyDownHandler = function keyDownHandler(event) {
22
+ if (event.key === 'Escape') {
23
+ innerRef.current.open = false;
24
+ event.preventDefault();
25
+ }
26
+ };
27
+
21
28
  var handleClickOutside = function handleClickOutside(event) {
22
29
  if (innerRef.current && !innerRef.current.contains(event.target)) {
23
30
  innerRef.current.open = false;
@@ -28,6 +35,8 @@ export var Dropdown = function Dropdown(_ref) {
28
35
  document.addEventListener('click', handleClickOutside, true);
29
36
  }
30
37
 
38
+ document.addEventListener('keydown', keyDownHandler);
39
+
31
40
  var toggleFloat = function toggleFloat() {
32
41
  var _innerRef$current;
33
42
 
@@ -75,6 +84,8 @@ export var Dropdown = function Dropdown(_ref) {
75
84
  if (_float) {
76
85
  innerRef.current.removeEventListener('toggle', toggleFloat);
77
86
  }
87
+
88
+ document.removeEventListener('keydown', keyDownHandler);
78
89
  };
79
90
  }, []); // eslint-disable-next-line @typescript-eslint/ban-ts-comment
80
91
  // @ts-ignore
@@ -82,6 +93,6 @@ export var Dropdown = function Dropdown(_ref) {
82
93
  return /*#__PURE__*/React.createElement(DropdownBase, _extends({
83
94
  ref: innerRef
84
95
  }, props));
85
- };
96
+ });
86
97
  export { DropdownBase };
87
98
  export default Dropdown;
@@ -0,0 +1,3 @@
1
+ import CaretContainer from '@digigov/react-core/CaretContainer';
2
+ export * from '@digigov/react-core/CaretContainer';
3
+ export default CaretContainer;
@@ -20,5 +20,6 @@ export * from './__stories__/WithLoader';
20
20
  export * from './__stories__/DefinedWidth';
21
21
  export * from './__stories__/Densed';
22
22
  export * from './__stories__/MultipleProps';
23
+ export * from './__stories__/WithSortFilters';
23
24
  export * from './__stories__/WithFloatingScroll';
24
25
  export * from './__stories__/Full';
@@ -16,6 +16,22 @@
16
16
  "title": "Toggle Loading"
17
17
  }
18
18
  ]
19
+ },
20
+ "digigov-ui-core-table--with-sort-filters": {
21
+ "actionSets": [
22
+ {
23
+ "actions": [
24
+ {
25
+ "name": "click",
26
+ "args": {
27
+ "selector": "html>body>div:nth-child(5)>div>div>table>thead>tr>th:nth-child(2)>details>summary"
28
+ }
29
+ }
30
+ ],
31
+ "id": "Gdm_Fpollj7d",
32
+ "title": "Table with filter action"
33
+ }
34
+ ]
19
35
  }
20
36
  }
21
37
  }
@@ -0,0 +1,126 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import { TableContainer, Table, TableCaption, TableHead, TableRow, TableBody, TableHeadCellSort, TableDataCell, TableNoDataRow, useSortableData } from '@digigov/ui/core/Table';
4
+ var headerItems = [{
5
+ name: 'product',
6
+ label: 'Προϊόν',
7
+ sortLabels: [{
8
+ label: 'Αλφαβητική σειρά (Α -> Ω)',
9
+ direction: 'asc',
10
+ value: 1
11
+ }, {
12
+ label: 'Αλφαβητική σειρά (Ω -> Α)',
13
+ direction: 'desc',
14
+ value: -1
15
+ }]
16
+ }, {
17
+ name: 'price',
18
+ label: 'Τιμή',
19
+ sortLabels: [{
20
+ label: 'Αύξουσα σειρά',
21
+ direction: 'ascending',
22
+ value: 1
23
+ }, {
24
+ label: 'Φθίνουσα σειρά',
25
+ direction: 'descending',
26
+ value: -1
27
+ }]
28
+ }, {
29
+ name: 'stock',
30
+ label: 'Στοκ',
31
+ sortLabels: [{
32
+ label: 'Αύξουσα σειρά',
33
+ direction: 'ascending',
34
+ value: 1
35
+ }, {
36
+ label: 'Φθίνουσα σειρά',
37
+ direction: 'descending',
38
+ value: -1
39
+ }]
40
+ }, {
41
+ name: 'date',
42
+ label: 'Ημερομηνία',
43
+ sortLabels: [{
44
+ label: 'Αύξουσα σειρά',
45
+ direction: 'ascending',
46
+ value: 1
47
+ }, {
48
+ label: 'Φθίνουσα σειρά',
49
+ direction: 'descending',
50
+ value: -1
51
+ }]
52
+ }];
53
+ var data = [{
54
+ id: 1,
55
+ product: 'Τυρί',
56
+ price: '4.9€',
57
+ stock: 20,
58
+ date: '2013-04-01'
59
+ }, {
60
+ id: 2,
61
+ product: 'Γάλα',
62
+ price: '1.9€',
63
+ stock: 32,
64
+ date: '2013-01-01'
65
+ }, {
66
+ id: 3,
67
+ product: 'Γιαούρτι',
68
+ price: '2.4€',
69
+ stock: 12,
70
+ date: '2002-04-12'
71
+ }, {
72
+ id: 4,
73
+ product: 'Κρέμα',
74
+ price: '3.9€',
75
+ stock: 8,
76
+ date: '2011-12-12'
77
+ }, {
78
+ id: 5,
79
+ product: 'Βούτυρο',
80
+ price: '0.9€',
81
+ stock: 99,
82
+ date: '2019-06-01'
83
+ }, {
84
+ id: 6,
85
+ product: 'Καφές',
86
+ price: '2.9€',
87
+ stock: 86,
88
+ date: '2023-02-11'
89
+ }, {
90
+ id: 7,
91
+ product: 'Ψωμί',
92
+ price: '99€',
93
+ stock: 12,
94
+ date: '2000-12-12'
95
+ }];
96
+
97
+ var _ref = /*#__PURE__*/React.createElement(TableCaption, null, "Table of products");
98
+
99
+ var _ref2 = /*#__PURE__*/React.createElement(TableNoDataRow, null, "No data");
100
+
101
+ export var WithSortFilters = function WithSortFilters() {
102
+ var _useSortableData = useSortableData(data),
103
+ sortedData = _useSortableData.sortedData,
104
+ sortedProps = _useSortableData.sortedProps;
105
+
106
+ return /*#__PURE__*/React.createElement("div", {
107
+ className: "example"
108
+ }, /*#__PURE__*/React.createElement(TableContainer
109
+ /* Possible style solution in order to display dropdown properly when we have only one table row
110
+ * style={{
111
+ * overflow: 'inherit',
112
+ * }}
113
+ */
114
+ , null, /*#__PURE__*/React.createElement(Table, null, _ref, /*#__PURE__*/React.createElement(TableHead, null, /*#__PURE__*/React.createElement(TableRow, null, headerItems && headerItems.length > 0 && headerItems.map(function (header, index) {
115
+ return /*#__PURE__*/React.createElement(TableHeadCellSort, _extends({
116
+ key: index
117
+ }, sortedProps, {
118
+ headerItems: header
119
+ }), header.label);
120
+ }))), /*#__PURE__*/React.createElement(TableBody, null, sortedData && sortedData.length > 0 ? sortedData.map(function (d, index) {
121
+ return /*#__PURE__*/React.createElement(TableRow, {
122
+ key: index
123
+ }, /*#__PURE__*/React.createElement(TableDataCell, null, d.product), /*#__PURE__*/React.createElement(TableDataCell, null, d.price), /*#__PURE__*/React.createElement(TableDataCell, null, d.stock), /*#__PURE__*/React.createElement(TableDataCell, null, new Date(d.date).toLocaleDateString('en-GB')));
124
+ }) : _ref2))));
125
+ };
126
+ export default WithSortFilters;