@digigov/ui 0.33.0 → 0.34.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.
@@ -8,19 +8,13 @@ Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
10
  var _exportNames = {
11
- TableHeadCellSortBase: true,
12
- TableHeadCellSort: true,
13
- useSortableData: true
11
+ TableSortLabel: true
14
12
  };
15
- exports.useSortableData = exports["default"] = exports.TableHeadCellSortBase = exports.TableHeadCellSort = void 0;
16
-
17
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+ exports["default"] = exports.TableSortLabel = void 0;
18
14
 
19
15
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
20
16
 
21
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
22
-
23
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
24
18
 
25
19
  var _react = _interopRequireWildcard(require("react"));
26
20
 
@@ -46,20 +40,6 @@ var _NavVerticalItem = require("@digigov/ui/core/NavList/NavVerticalItem");
46
40
 
47
41
  var _SvgIcon = require("@digigov/ui/core/SvgIcon");
48
42
 
49
- var _TableHeadCell = _interopRequireWildcard(require("@digigov/react-core/TableHeadCell"));
50
-
51
- Object.keys(_TableHeadCell).forEach(function (key) {
52
- if (key === "default" || key === "__esModule") return;
53
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
54
- if (key in exports && exports[key] === _TableHeadCell[key]) return;
55
- Object.defineProperty(exports, key, {
56
- enumerable: true,
57
- get: function get() {
58
- return _TableHeadCell[key];
59
- }
60
- });
61
- });
62
-
63
43
  var _CaretContainer = _interopRequireDefault(require("@digigov/ui/core/CaretContainer"));
64
44
 
65
45
  var _TableContainer = require("@digigov/react-core/TableContainer");
@@ -132,6 +112,20 @@ Object.keys(_TableHead).forEach(function (key) {
132
112
  });
133
113
  });
134
114
 
115
+ var _TableHeadCell = require("@digigov/react-core/TableHeadCell");
116
+
117
+ Object.keys(_TableHeadCell).forEach(function (key) {
118
+ if (key === "default" || key === "__esModule") return;
119
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
120
+ if (key in exports && exports[key] === _TableHeadCell[key]) return;
121
+ Object.defineProperty(exports, key, {
122
+ enumerable: true,
123
+ get: function get() {
124
+ return _TableHeadCell[key];
125
+ }
126
+ });
127
+ });
128
+
135
129
  var _TableRow = require("@digigov/react-core/TableRow");
136
130
 
137
131
  Object.keys(_TableRow).forEach(function (key) {
@@ -173,170 +167,87 @@ Object.keys(_TableFloatingScroll).forEach(function (key) {
173
167
  }
174
168
  });
175
169
  });
176
- var _excluded = ["sortedAscDesc", "sortedField", "sortedDirectionValue", "headerItems", "sortedData", "children"];
170
+ var _excluded = ["labels", "disabled", "children", "direction", "onSort"];
177
171
 
178
172
  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); }
179
173
 
180
174
  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; }
181
175
 
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));
176
+ var _ref2 = /*#__PURE__*/_react["default"].createElement(_SvgIcon.CaretIcon, {
177
+ direction: 'up',
178
+ marginRight: 1,
179
+ marginTop: 1,
180
+ size: "m"
237
181
  });
238
182
 
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]);
183
+ var _ref3 = /*#__PURE__*/_react["default"].createElement(_SvgIcon.CaretIcon, {
184
+ direction: 'down',
185
+ marginRight: 1,
186
+ marginTop: 1,
187
+ size: "m"
188
+ });
277
189
 
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, {
190
+ var TableSortLabel = /*#__PURE__*/_react["default"].forwardRef(function TableSortLabel(_ref, _ref4) {
191
+ var labels = _ref.labels,
192
+ disabled = _ref.disabled,
193
+ children = _ref.children,
194
+ _ref$direction = _ref.direction,
195
+ direction = _ref$direction === void 0 ? 0 : _ref$direction,
196
+ onSort = _ref.onSort,
197
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
198
+ // TODO: this is a workaround for the dropdown component
199
+ // https://itnext.io/reusing-the-ref-from-forwardref-with-react-hooks-4ce9df693dd
200
+ var dropdownRef = (0, _react.useRef)(null);
201
+ var active = [-1, 1].includes(direction);
202
+ return /*#__PURE__*/_react["default"].createElement(_Dropdown.Dropdown, (0, _extends2["default"])({
203
+ ref: function ref(el) {
204
+ dropdownRef.current = el;
205
+ typeof _ref4 === 'function' && _ref4(el);
206
+ },
207
+ disabled: disabled
208
+ }, props), /*#__PURE__*/_react["default"].createElement(_Dropdown.DropdownButton, {
304
209
  variant: "link",
305
- underline: sortedField === name ? true : false
210
+ tabIndex: 0,
211
+ underline: active
306
212
  }, children, /*#__PURE__*/_react["default"].createElement(_CaretContainer["default"], {
307
213
  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);
214
+ }, /*#__PURE__*/_react["default"].createElement(_SvgIcon.CaretIcon, {
215
+ direction: 'up',
216
+ size: "m",
217
+ variant: direction === 1 ? 'dark' : 'gray'
218
+ }), /*#__PURE__*/_react["default"].createElement(_SvgIcon.CaretIcon, {
219
+ direction: 'down',
220
+ size: "m",
221
+ variant: direction === -1 ? 'dark' : 'gray'
222
+ }))), /*#__PURE__*/_react["default"].createElement(_Dropdown.DropdownContent, null, /*#__PURE__*/_react["default"].createElement(_NavVertical.NavVertical, null, /*#__PURE__*/_react["default"].createElement(_NavVerticalItem.NavVerticalItem, {
223
+ active: direction === 1,
224
+ tabIndex: 0,
225
+ onClick: function onClick() {
226
+ onSort(1);
227
+ dropdownRef.current && (dropdownRef.current.open = false);
228
+ },
229
+ onKeyDown: function onKeyDown(e) {
230
+ if (e.key === 'Enter') {
231
+ onSort(1);
232
+ dropdownRef.current && (dropdownRef.current.open = false);
233
+ }
234
+ }
235
+ }, _ref2, labels.asc), /*#__PURE__*/_react["default"].createElement(_NavVerticalItem.NavVerticalItem, {
236
+ active: direction === -1,
237
+ tabIndex: 0,
238
+ onClick: function onClick() {
239
+ onSort(-1);
240
+ dropdownRef.current && (dropdownRef.current.open = false);
241
+ },
242
+ onKeyDown: function onKeyDown(e) {
243
+ if (e.key === 'Enter') {
244
+ onSort(-1);
245
+ dropdownRef.current && (dropdownRef.current.open = false);
330
246
  }
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
- }))));
247
+ }
248
+ }, _ref3, labels.desc))));
338
249
  });
339
250
 
340
- exports.TableHeadCellSortBase = TableHeadCellSortBase;
251
+ exports.TableSortLabel = TableSortLabel;
341
252
  var _default = _Table["default"];
342
253
  exports["default"] = _default;
@@ -9,25 +9,31 @@ 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 = /*#__PURE__*/React.forwardRef(function Dropdown(_ref, ref) {
12
+ export var Dropdown = /*#__PURE__*/React.forwardRef(function Dropdown(_ref, _ref2) {
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 = ref || useRef();
19
+ var innerRef = useRef(null);
20
20
  useEffect(function () {
21
+ var element = innerRef.current;
22
+
23
+ if (!element) {
24
+ return;
25
+ }
26
+
21
27
  var keyDownHandler = function keyDownHandler(event) {
22
28
  if (event.key === 'Escape') {
23
- innerRef.current.open = false;
29
+ element.open = false;
24
30
  event.preventDefault();
25
31
  }
26
32
  };
27
33
 
28
34
  var handleClickOutside = function handleClickOutside(event) {
29
- if (innerRef.current && !innerRef.current.contains(event.target)) {
30
- innerRef.current.open = false;
35
+ if (element && !element.contains(event.target)) {
36
+ element.open = false;
31
37
  }
32
38
  };
33
39
 
@@ -38,42 +44,37 @@ export var Dropdown = /*#__PURE__*/React.forwardRef(function Dropdown(_ref, ref)
38
44
  document.addEventListener('keydown', keyDownHandler);
39
45
 
40
46
  var toggleFloat = function toggleFloat() {
41
- var _innerRef$current;
42
-
43
- var tbody = innerRef.current.closest('tbody');
44
- var parentElement = (_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 ? void 0 : _innerRef$current.parentElement;
45
-
46
- if (innerRef.current.open) {
47
- var _innerRef$current2;
47
+ var tbody = element.closest('tbody');
48
+ var parentElement = element === null || element === void 0 ? void 0 : element.parentElement;
48
49
 
50
+ if (element.open) {
49
51
  tbody.style.position = 'static';
50
- var rect = (_innerRef$current2 = innerRef.current) === null || _innerRef$current2 === void 0 ? void 0 : _innerRef$current2.getBoundingClientRect();
52
+ var rect = element === null || element === void 0 ? void 0 : element.getBoundingClientRect();
51
53
  var parentRect = parentElement.getBoundingClientRect();
52
- innerRef.current.style.position = 'static'; // arbitrary spacing of 12 pixels because CSS
54
+ element.style.position = 'static'; // arbitrary spacing of 12 pixels because CSS
53
55
 
54
56
  var top = rect.top + window.pageYOffset;
55
57
  var left = rect.left + window.pageXOffset;
56
58
  parentElement.style.height = "".concat(parentRect.height, "px");
57
59
  parentElement.style.width = "".concat(parentRect.width, "px");
58
- innerRef.current.style.top = "".concat(top, "px");
59
- innerRef.current.style.left = "".concat(left, "px");
60
- innerRef.current.style.position = "absolute";
61
- innerRef.current.style.display = "block";
62
- innerRef.current.style.background = 'white';
60
+ element.style.top = "".concat(top, "px");
61
+ element.style.left = "".concat(left, "px");
62
+ element.style.position = "absolute";
63
+ element.style.display = "block";
64
+ element.style.background = 'white';
63
65
  } else {
64
66
  tbody.style.position = 'relative';
65
67
  parentElement.style.height = '';
66
68
  parentElement.style.width = '';
67
- innerRef.current.style.top = "0";
68
- innerRef.current.style.left = "0";
69
- innerRef.current.style.position = "relative";
70
- innerRef.current.style.display = "table-cell";
71
- innerRef.current.style.background = 'transparent';
69
+ element.style.top = "0";
70
+ element.style.left = "0";
71
+ element.style.position = "relative";
72
+ element.style.display = "table-cell"; // element.style.background = 'transparent';
72
73
  }
73
74
  };
74
75
 
75
76
  if (_float) {
76
- innerRef.current.addEventListener('toggle', toggleFloat);
77
+ element.addEventListener('toggle', toggleFloat);
77
78
  }
78
79
 
79
80
  return function () {
@@ -82,7 +83,7 @@ export var Dropdown = /*#__PURE__*/React.forwardRef(function Dropdown(_ref, ref)
82
83
  }
83
84
 
84
85
  if (_float) {
85
- innerRef.current.removeEventListener('toggle', toggleFloat);
86
+ element.removeEventListener('toggle', toggleFloat);
86
87
  }
87
88
 
88
89
  document.removeEventListener('keydown', keyDownHandler);
@@ -91,7 +92,13 @@ export var Dropdown = /*#__PURE__*/React.forwardRef(function Dropdown(_ref, ref)
91
92
  // @ts-ignore
92
93
 
93
94
  return /*#__PURE__*/React.createElement(DropdownBase, _extends({
94
- ref: innerRef
95
+ ref: function ref(el) {
96
+ innerRef.current = el;
97
+
98
+ if (typeof _ref2 === 'function') {
99
+ _ref2(el);
100
+ }
101
+ }
95
102
  }, props));
96
103
  });
97
104
  export { DropdownBase };
@@ -14,6 +14,7 @@ export * from './__stories__/VerticalHeaders';
14
14
  export * from './__stories__/ZebraProp';
15
15
  export * from './__stories__/NumericDataType';
16
16
  export * from './__stories__/VerticalBorders';
17
+ export * from './__stories__/Stacked';
17
18
  export * from './__stories__/DarkVariant';
18
19
  export * from './__stories__/DarkVariantWithVerticalHeaders';
19
20
  export * from './__stories__/WithLoader';
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { TableContainer, Table, TableCaption, TableHead, TableRow, TableBody, TableHeadCell, TableDataCell } from '@digigov/ui/core/Table';
3
+
4
+ var _ref = /*#__PURE__*/React.createElement(TableContainer, null, /*#__PURE__*/React.createElement(Table, {
5
+ stacked: "always"
6
+ }, /*#__PURE__*/React.createElement(TableCaption, null, "\u03A0\u03B5\u03C1\u03AF\u03BF\u03B4\u03BF\u03C2 \u03BA\u03B1\u03B9 \u03C0\u03BF\u03C3\u03AC"), /*#__PURE__*/React.createElement(TableHead, null, /*#__PURE__*/React.createElement(TableRow, null, /*#__PURE__*/React.createElement(TableHeadCell, null, "\u03A0\u03B5\u03C1\u03AF\u03BF\u03B4\u03BF\u03C2"), /*#__PURE__*/React.createElement(TableHeadCell, null, "\u039A\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03CC \u03C0\u03BF\u03C3\u03CC"), /*#__PURE__*/React.createElement(TableHeadCell, null, "\u039C\u03B5\u03B9\u03C9\u03BC\u03AD\u03BD\u03BF \u03C0\u03BF\u03C3\u03CC"))), /*#__PURE__*/React.createElement(TableBody, null, /*#__PURE__*/React.createElement(TableRow, null, /*#__PURE__*/React.createElement(TableDataCell, {
7
+ "data-label": "\u03A0\u03B5\u03C1\u03AF\u03BF\u03B4\u03BF\u03C2"
8
+ }, "\u03A0\u03C1\u03CE\u03C4\u03B5\u03C2 6 \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B5\u03C2"), /*#__PURE__*/React.createElement(TableDataCell, {
9
+ "data-label": "\u039A\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03CC \u03C0\u03BF\u03C3\u03CC"
10
+ }, "\u20AC109.80 / \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1"), /*#__PURE__*/React.createElement(TableDataCell, {
11
+ "data-label": "\u039C\u03B5\u03B9\u03C9\u03BC\u03AD\u03BD\u03BF \u03C0\u03BF\u03C3\u03CC"
12
+ }, "\u20AC69.80 / \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1")), /*#__PURE__*/React.createElement(TableRow, null, /*#__PURE__*/React.createElement(TableDataCell, {
13
+ "data-label": "\u03A0\u03B5\u03C1\u03AF\u03BF\u03B4\u03BF\u03C2"
14
+ }, "\u0395\u03C0\u03CC\u03BC\u03B5\u03BD\u03B5\u03C2 33 \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B5\u03C2"), /*#__PURE__*/React.createElement(TableDataCell, {
15
+ "data-label": "\u039A\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03CC \u03C0\u03BF\u03C3\u03CC"
16
+ }, "\u20AC99.80 / \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1"), /*#__PURE__*/React.createElement(TableDataCell, {
17
+ "data-label": "\u039C\u03B5\u03B9\u03C9\u03BC\u03AD\u03BD\u03BF \u03C0\u03BF\u03C3\u03CC"
18
+ }, "\u20AC64.80 / \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1")), /*#__PURE__*/React.createElement(TableRow, null, /*#__PURE__*/React.createElement(TableDataCell, {
19
+ "data-label": "\u03A0\u03B5\u03C1\u03AF\u03BF\u03B4\u03BF\u03C2"
20
+ }, "\u03A3\u03C5\u03BD\u03BF\u03BB\u03B9\u03BA\u03CC \u03C0\u03BF\u03C3\u03CC "), /*#__PURE__*/React.createElement(TableDataCell, {
21
+ "data-label": "\u039A\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03CC \u03C0\u03BF\u03C3\u03CC"
22
+ }, "\u20AC4.282,20 "), /*#__PURE__*/React.createElement(TableDataCell, {
23
+ "data-label": "\u039C\u03B5\u03B9\u03C9\u03BC\u03AD\u03BD\u03BF \u03C0\u03BF\u03C3\u03CC"
24
+ }, " \u20AC3.282,20")))));
25
+
26
+ export var Stacked = function Stacked() {
27
+ return _ref;
28
+ };
29
+ export default Stacked;
@@ -1,54 +1,34 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
1
  import React from 'react';
3
- import { TableContainer, Table, TableCaption, TableHead, TableRow, TableBody, TableHeadCellSort, TableDataCell, TableNoDataRow, useSortableData } from '@digigov/ui/core/Table';
4
- var headerItems = [{
2
+ import { TableContainer, Table, TableCaption, TableHead, TableRow, TableBody, TableHeadCell, TableDataCell, TableNoDataRow, TableSortLabel } from '@digigov/ui/core/Table';
3
+ import { useSort } from '@digigov/ui/hooks/useSort';
4
+ var headerConfig = [{
5
5
  name: 'product',
6
6
  label: 'Προϊόν',
7
- sortLabels: [{
8
- label: 'Αλφαβητική σειρά (Α -> Ω)',
9
- direction: 'asc',
10
- value: 1
11
- }, {
12
- label: 'Αλφαβητική σειρά (Ω -> Α)',
13
- direction: 'desc',
14
- value: -1
15
- }]
7
+ sortLabels: {
8
+ asc: 'Αλφαβητική σειρά (Α -> Ω)',
9
+ desc: 'Αλφαβητική σειρά (Ω -> Α)'
10
+ }
16
11
  }, {
17
12
  name: 'price',
18
13
  label: 'Τιμή',
19
- sortLabels: [{
20
- label: 'Αύξουσα σειρά',
21
- direction: 'ascending',
22
- value: 1
23
- }, {
24
- label: 'Φθίνουσα σειρά',
25
- direction: 'descending',
26
- value: -1
27
- }]
14
+ sortLabels: {
15
+ asc: 'Αύξουσα σειρά',
16
+ desc: 'Φθίνουσα σειρά'
17
+ }
28
18
  }, {
29
19
  name: 'stock',
30
20
  label: 'Στοκ',
31
- sortLabels: [{
32
- label: 'Αύξουσα σειρά',
33
- direction: 'ascending',
34
- value: 1
35
- }, {
36
- label: 'Φθίνουσα σειρά',
37
- direction: 'descending',
38
- value: -1
39
- }]
21
+ sortLabels: {
22
+ asc: 'Αύξουσα σειρά',
23
+ desc: 'Φθίνουσα σειρά'
24
+ }
40
25
  }, {
41
26
  name: 'date',
42
27
  label: 'Ημερομηνία',
43
- sortLabels: [{
44
- label: 'Αύξουσα σειρά',
45
- direction: 'ascending',
46
- value: 1
47
- }, {
48
- label: 'Φθίνουσα σειρά',
49
- direction: 'descending',
50
- value: -1
51
- }]
28
+ sortLabels: {
29
+ asc: 'Αύξουσα σειρά',
30
+ desc: 'Φθίνουσα σειρά'
31
+ }
52
32
  }];
53
33
  var data = [{
54
34
  id: 1,
@@ -99,25 +79,25 @@ var _ref = /*#__PURE__*/React.createElement(TableCaption, null, "Table of produc
99
79
  var _ref2 = /*#__PURE__*/React.createElement(TableNoDataRow, null, "No data");
100
80
 
101
81
  export var WithSortFilters = function WithSortFilters() {
102
- var _useSortableData = useSortableData(data),
103
- sortedData = _useSortableData.sortedData,
104
- sortedProps = _useSortableData.sortedProps;
82
+ var _useSort = useSort(data),
83
+ sortedData = _useSort.sortedData,
84
+ setSortedField = _useSort.setSortedField,
85
+ field = _useSort.field,
86
+ direction = _useSort.direction;
105
87
 
106
88
  return /*#__PURE__*/React.createElement("div", {
107
89
  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({
90
+ }, /*#__PURE__*/React.createElement(TableContainer, null, /*#__PURE__*/React.createElement(Table, null, _ref, /*#__PURE__*/React.createElement(TableHead, null, /*#__PURE__*/React.createElement(TableRow, null, headerConfig.map(function (header, index) {
91
+ return /*#__PURE__*/React.createElement(TableHeadCell, {
116
92
  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) {
93
+ }, /*#__PURE__*/React.createElement(TableSortLabel, {
94
+ labels: header.sortLabels,
95
+ onSort: function onSort(dir) {
96
+ return setSortedField(header.name, dir);
97
+ },
98
+ direction: header.name === field ? direction : 0
99
+ }, header.label));
100
+ }))), /*#__PURE__*/React.createElement(TableBody, null, sortedData.length > 0 ? sortedData.map(function (d, index) {
121
101
  return /*#__PURE__*/React.createElement(TableRow, {
122
102
  key: index
123
103
  }, /*#__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')));