@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.
- package/CHANGELOG.md +12 -1
- package/admin/Drawer/__stories__/Default.js +3 -0
- package/admin/Dropdown/index.d.ts +1 -1
- package/admin/Dropdown/index.js +14 -3
- package/core/CaretContainer/index.d.ts +3 -0
- package/core/CaretContainer/index.js +30 -0
- package/core/Table/Table.stories.d.ts +1 -0
- package/core/Table/Table.stories.js +14 -0
- package/core/Table/Table.stories.playwright.json +16 -0
- package/core/Table/__stories__/WithSortFilters.d.ts +2 -0
- package/core/Table/__stories__/WithSortFilters.js +141 -0
- package/core/Table/index.d.ts +22 -1
- package/core/Table/index.js +210 -24
- package/core/index.d.ts +1 -0
- package/core/index.js +13 -0
- package/es/admin/Drawer/__stories__/Default.js +3 -0
- package/es/admin/Dropdown/index.js +14 -3
- package/es/core/CaretContainer/index.js +3 -0
- package/es/core/Table/Table.stories.js +1 -0
- package/es/core/Table/Table.stories.playwright.json +16 -0
- package/es/core/Table/__stories__/WithSortFilters.js +126 -0
- package/es/core/Table/index.js +170 -1
- package/es/core/index.js +1 -0
- package/es/registry.js +2 -0
- package/esm/admin/Drawer/__stories__/Default.js +3 -0
- package/esm/admin/Dropdown/index.js +14 -3
- package/esm/core/CaretContainer/index.js +3 -0
- package/esm/core/Table/Table.stories.js +1 -0
- package/esm/core/Table/Table.stories.playwright.json +16 -0
- package/esm/core/Table/__stories__/WithSortFilters.js +126 -0
- package/esm/core/Table/index.js +170 -1
- package/esm/core/index.js +1 -0
- package/esm/index.js +1 -1
- package/esm/registry.js +2 -0
- package/package.json +3 -3
- package/registry.d.ts +1 -0
- package/registry.js +3 -0
- package/src/admin/Drawer/__stories__/Default.tsx +3 -1
- package/src/admin/Dropdown/index.tsx +16 -7
- package/src/core/CaretContainer/index.tsx +3 -0
- package/src/core/Table/Table.stories.js +1 -0
- package/src/core/Table/Table.stories.playwright.json +16 -0
- package/src/core/Table/__stories__/WithSortFilters.tsx +189 -0
- package/src/core/Table/index.tsx +195 -2
- package/src/core/index.ts +1 -0
- package/src/registry.js +2 -0
package/core/Table/index.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
17
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
12
18
|
|
|
13
|
-
|
|
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] ===
|
|
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
|
|
36
|
+
return _Table[key];
|
|
21
37
|
}
|
|
22
38
|
});
|
|
23
39
|
});
|
|
24
40
|
|
|
25
|
-
var
|
|
41
|
+
var _Dropdown = require("@digigov/ui/admin/Dropdown");
|
|
26
42
|
|
|
27
|
-
|
|
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] ===
|
|
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
|
|
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;
|
|
@@ -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;
|