@digigov/ui 0.32.2 → 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.
Files changed (56) hide show
  1. package/CHANGELOG.md +23 -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 +45 -27
  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 +2 -0
  8. package/core/Table/Table.stories.js +28 -0
  9. package/core/Table/Table.stories.playwright.json +16 -0
  10. package/core/Table/__stories__/Stacked.d.ts +2 -0
  11. package/core/Table/__stories__/Stacked.js +42 -0
  12. package/core/Table/__stories__/WithSortFilters.d.ts +2 -0
  13. package/core/Table/__stories__/WithSortFilters.js +121 -0
  14. package/core/Table/index.d.ts +14 -1
  15. package/core/Table/index.js +107 -10
  16. package/core/index.d.ts +1 -0
  17. package/core/index.js +13 -0
  18. package/es/admin/Drawer/__stories__/Default.js +3 -0
  19. package/es/admin/Dropdown/index.js +45 -27
  20. package/es/core/CaretContainer/index.js +3 -0
  21. package/es/core/Table/Table.stories.js +2 -0
  22. package/es/core/Table/Table.stories.playwright.json +16 -0
  23. package/es/core/Table/__stories__/Stacked.js +29 -0
  24. package/es/core/Table/__stories__/WithSortFilters.js +106 -0
  25. package/es/core/Table/index.js +86 -1
  26. package/es/core/index.js +1 -0
  27. package/es/hooks/useSort.js +54 -0
  28. package/es/registry.js +2 -0
  29. package/esm/admin/Drawer/__stories__/Default.js +3 -0
  30. package/esm/admin/Dropdown/index.js +45 -27
  31. package/esm/core/CaretContainer/index.js +3 -0
  32. package/esm/core/Table/Table.stories.js +2 -0
  33. package/esm/core/Table/Table.stories.playwright.json +16 -0
  34. package/esm/core/Table/__stories__/Stacked.js +29 -0
  35. package/esm/core/Table/__stories__/WithSortFilters.js +106 -0
  36. package/esm/core/Table/index.js +86 -1
  37. package/esm/core/index.js +1 -0
  38. package/esm/hooks/useSort.js +54 -0
  39. package/esm/index.js +1 -1
  40. package/esm/registry.js +2 -0
  41. package/hooks/useSort.d.ts +9 -0
  42. package/hooks/useSort.js +67 -0
  43. package/package.json +3 -3
  44. package/registry.d.ts +1 -0
  45. package/registry.js +3 -0
  46. package/src/admin/Drawer/__stories__/Default.tsx +3 -1
  47. package/src/admin/Dropdown/index.tsx +80 -55
  48. package/src/core/CaretContainer/index.tsx +3 -0
  49. package/src/core/Table/Table.stories.js +2 -0
  50. package/src/core/Table/Table.stories.playwright.json +16 -0
  51. package/src/core/Table/__stories__/Stacked.tsx +59 -0
  52. package/src/core/Table/__stories__/WithSortFilters.tsx +152 -0
  53. package/src/core/Table/index.tsx +112 -2
  54. package/src/core/index.ts +1 -0
  55. package/src/hooks/useSort.tsx +53 -0
  56. package/src/registry.js +2 -0
package/CHANGELOG.md CHANGED
@@ -1,6 +1,28 @@
1
1
  # Change Log - @digigov/ui
2
2
 
3
- This log was last generated on Tue, 16 May 2023 13:42:28 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 13 Jun 2023 09:12:26 GMT and should not be manually modified.
4
+
5
+ ## 0.34.0
6
+ Tue, 13 Jun 2023 09:12:26 GMT
7
+
8
+ ### Minor changes
9
+
10
+ - Add storybook example for stacked table
11
+
12
+ ### Patches
13
+
14
+ - refactor table sort functionality to match patterns used on the codebase
15
+
16
+ ## 0.33.0
17
+ Fri, 19 May 2023 13:15:06 GMT
18
+
19
+ ### Minor changes
20
+
21
+ - Implement TableHeadCellSort logic for table, fix close Dropdown by clicking escape
22
+
23
+ ### Patches
24
+
25
+ - Fix default Drawer
4
26
 
5
27
  ## 0.32.2
6
28
  Tue, 16 May 2023 13:42:28 GMT
@@ -98,7 +98,9 @@ var Default = function Default() {
98
98
 
99
99
  var layout = 'vertical';
100
100
  var border = false;
101
+ var fixed = false;
101
102
  return /*#__PURE__*/_react["default"].createElement(_Drawer.Drawer, {
103
+ upRelative: "m",
102
104
  direction: "left",
103
105
  open: open
104
106
  }, /*#__PURE__*/_react["default"].createElement(_Drawer.DrawerHeading, {
@@ -109,6 +111,7 @@ var Default = function Default() {
109
111
  layout: layout,
110
112
  links: links,
111
113
  border: border,
114
+ fixed: fixed,
112
115
  "aria-label": "Nav list"
113
116
  }, links.map(function (item, key) {
114
117
  var _item$subMenu;
@@ -17,6 +17,6 @@ export interface DropdownProps extends DropdownBaseProps {
17
17
  /**
18
18
  * Dropdown component is used for showing more options with a button.
19
19
  */
20
- export declare const Dropdown: ({ closeBehaviour, float, ...props }: DropdownProps) => React.ReactElement;
20
+ export declare const Dropdown: React.ForwardRefExoticComponent<Pick<DropdownProps, "slot" | "style" | "title" | "as" | "className" | "color" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "disabled" | "open" | "onToggle" | "align" | "margin" | "marginTop" | "marginBottom" | "marginLeft" | "marginRight" | "padding" | "paddingTop" | "paddingBottom" | "paddingLeft" | "paddingRight" | "printHidden" | "xsUpHidden" | "smUpHidden" | "mdUpHidden" | "lgUpHidden" | "xlUpHidden" | "xsHidden" | "smHidden" | "mdHidden" | "lgHidden" | "xlHidden" | "placement" | "closeBehaviour" | "float"> & React.RefAttributes<HTMLDetailsElement>>;
21
21
  export { DropdownBase };
22
22
  export default Dropdown;
@@ -64,18 +64,31 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
64
64
  /**
65
65
  * Dropdown component is used for showing more options with a button.
66
66
  */
67
- var Dropdown = function Dropdown(_ref) {
67
+ var Dropdown = /*#__PURE__*/_react["default"].forwardRef(function Dropdown(_ref, _ref2) {
68
68
  var _ref$closeBehaviour = _ref.closeBehaviour,
69
69
  closeBehaviour = _ref$closeBehaviour === void 0 ? 'clickOutside' : _ref$closeBehaviour,
70
70
  _ref$float = _ref["float"],
71
71
  _float = _ref$float === void 0 ? false : _ref$float,
72
72
  props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
73
73
 
74
- var innerRef = (0, _react.useRef)();
74
+ var innerRef = (0, _react.useRef)(null);
75
75
  (0, _react.useEffect)(function () {
76
+ var element = innerRef.current;
77
+
78
+ if (!element) {
79
+ return;
80
+ }
81
+
82
+ var keyDownHandler = function keyDownHandler(event) {
83
+ if (event.key === 'Escape') {
84
+ element.open = false;
85
+ event.preventDefault();
86
+ }
87
+ };
88
+
76
89
  var handleClickOutside = function handleClickOutside(event) {
77
- if (innerRef.current && !innerRef.current.contains(event.target)) {
78
- innerRef.current.open = false;
90
+ if (element && !element.contains(event.target)) {
91
+ element.open = false;
79
92
  }
80
93
  };
81
94
 
@@ -83,43 +96,40 @@ var Dropdown = function Dropdown(_ref) {
83
96
  document.addEventListener('click', handleClickOutside, true);
84
97
  }
85
98
 
86
- var toggleFloat = function toggleFloat() {
87
- var _innerRef$current;
88
-
89
- var tbody = innerRef.current.closest('tbody');
90
- var parentElement = (_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 ? void 0 : _innerRef$current.parentElement;
99
+ document.addEventListener('keydown', keyDownHandler);
91
100
 
92
- if (innerRef.current.open) {
93
- var _innerRef$current2;
101
+ var toggleFloat = function toggleFloat() {
102
+ var tbody = element.closest('tbody');
103
+ var parentElement = element === null || element === void 0 ? void 0 : element.parentElement;
94
104
 
105
+ if (element.open) {
95
106
  tbody.style.position = 'static';
96
- var rect = (_innerRef$current2 = innerRef.current) === null || _innerRef$current2 === void 0 ? void 0 : _innerRef$current2.getBoundingClientRect();
107
+ var rect = element === null || element === void 0 ? void 0 : element.getBoundingClientRect();
97
108
  var parentRect = parentElement.getBoundingClientRect();
98
- innerRef.current.style.position = 'static'; // arbitrary spacing of 12 pixels because CSS
109
+ element.style.position = 'static'; // arbitrary spacing of 12 pixels because CSS
99
110
 
100
111
  var top = rect.top + window.pageYOffset;
101
112
  var left = rect.left + window.pageXOffset;
102
113
  parentElement.style.height = "".concat(parentRect.height, "px");
103
114
  parentElement.style.width = "".concat(parentRect.width, "px");
104
- innerRef.current.style.top = "".concat(top, "px");
105
- innerRef.current.style.left = "".concat(left, "px");
106
- innerRef.current.style.position = "absolute";
107
- innerRef.current.style.display = "block";
108
- innerRef.current.style.background = 'white';
115
+ element.style.top = "".concat(top, "px");
116
+ element.style.left = "".concat(left, "px");
117
+ element.style.position = "absolute";
118
+ element.style.display = "block";
119
+ element.style.background = 'white';
109
120
  } else {
110
121
  tbody.style.position = 'relative';
111
122
  parentElement.style.height = '';
112
123
  parentElement.style.width = '';
113
- innerRef.current.style.top = "0";
114
- innerRef.current.style.left = "0";
115
- innerRef.current.style.position = "relative";
116
- innerRef.current.style.display = "table-cell";
117
- innerRef.current.style.background = 'transparent';
124
+ element.style.top = "0";
125
+ element.style.left = "0";
126
+ element.style.position = "relative";
127
+ element.style.display = "table-cell"; // element.style.background = 'transparent';
118
128
  }
119
129
  };
120
130
 
121
131
  if (_float) {
122
- innerRef.current.addEventListener('toggle', toggleFloat);
132
+ element.addEventListener('toggle', toggleFloat);
123
133
  }
124
134
 
125
135
  return function () {
@@ -128,16 +138,24 @@ var Dropdown = function Dropdown(_ref) {
128
138
  }
129
139
 
130
140
  if (_float) {
131
- innerRef.current.removeEventListener('toggle', toggleFloat);
141
+ element.removeEventListener('toggle', toggleFloat);
132
142
  }
143
+
144
+ document.removeEventListener('keydown', keyDownHandler);
133
145
  };
134
146
  }, []); // eslint-disable-next-line @typescript-eslint/ban-ts-comment
135
147
  // @ts-ignore
136
148
 
137
149
  return /*#__PURE__*/_react["default"].createElement(_DropdownBase["default"], (0, _extends2["default"])({
138
- ref: innerRef
150
+ ref: function ref(el) {
151
+ innerRef.current = el;
152
+
153
+ if (typeof _ref2 === 'function') {
154
+ _ref2(el);
155
+ }
156
+ }
139
157
  }, props));
140
- };
158
+ });
141
159
 
142
160
  exports.Dropdown = Dropdown;
143
161
  var _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;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ var _exportNames = {};
9
+ exports["default"] = void 0;
10
+
11
+ var _CaretContainer = _interopRequireWildcard(require("@digigov/react-core/CaretContainer"));
12
+
13
+ Object.keys(_CaretContainer).forEach(function (key) {
14
+ if (key === "default" || key === "__esModule") return;
15
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
16
+ if (key in exports && exports[key] === _CaretContainer[key]) return;
17
+ Object.defineProperty(exports, key, {
18
+ enumerable: true,
19
+ get: function get() {
20
+ return _CaretContainer[key];
21
+ }
22
+ });
23
+ });
24
+
25
+ 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); }
26
+
27
+ 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; }
28
+
29
+ var _default = _CaretContainer["default"];
30
+ exports["default"] = _default;
@@ -13,12 +13,14 @@ export * from "./__stories__/VerticalHeaders";
13
13
  export * from "./__stories__/ZebraProp";
14
14
  export * from "./__stories__/NumericDataType";
15
15
  export * from "./__stories__/VerticalBorders";
16
+ export * from "./__stories__/Stacked";
16
17
  export * from "./__stories__/DarkVariant";
17
18
  export * from "./__stories__/DarkVariantWithVerticalHeaders";
18
19
  export * from "./__stories__/WithLoader";
19
20
  export * from "./__stories__/DefinedWidth";
20
21
  export * from "./__stories__/Densed";
21
22
  export * from "./__stories__/MultipleProps";
23
+ export * from "./__stories__/WithSortFilters";
22
24
  export * from "./__stories__/WithFloatingScroll";
23
25
  export * from "./__stories__/Full";
24
26
  import Table from "@digigov/ui/core/Table";
@@ -108,6 +108,20 @@ Object.keys(_VerticalBorders).forEach(function (key) {
108
108
  });
109
109
  });
110
110
 
111
+ var _Stacked = require("./__stories__/Stacked");
112
+
113
+ Object.keys(_Stacked).forEach(function (key) {
114
+ if (key === "default" || key === "__esModule") return;
115
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
116
+ if (key in exports && exports[key] === _Stacked[key]) return;
117
+ Object.defineProperty(exports, key, {
118
+ enumerable: true,
119
+ get: function get() {
120
+ return _Stacked[key];
121
+ }
122
+ });
123
+ });
124
+
111
125
  var _DarkVariant = require("./__stories__/DarkVariant");
112
126
 
113
127
  Object.keys(_DarkVariant).forEach(function (key) {
@@ -192,6 +206,20 @@ Object.keys(_MultipleProps).forEach(function (key) {
192
206
  });
193
207
  });
194
208
 
209
+ var _WithSortFilters = require("./__stories__/WithSortFilters");
210
+
211
+ Object.keys(_WithSortFilters).forEach(function (key) {
212
+ if (key === "default" || key === "__esModule") return;
213
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
214
+ if (key in exports && exports[key] === _WithSortFilters[key]) return;
215
+ Object.defineProperty(exports, key, {
216
+ enumerable: true,
217
+ get: function get() {
218
+ return _WithSortFilters[key];
219
+ }
220
+ });
221
+ });
222
+
195
223
  var _WithFloatingScroll = require("./__stories__/WithFloatingScroll");
196
224
 
197
225
  Object.keys(_WithFloatingScroll).forEach(function (key) {
@@ -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,2 @@
1
+ export declare const Stacked: () => JSX.Element;
2
+ export default Stacked;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.Stacked = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _Table = require("@digigov/ui/core/Table");
13
+
14
+ var _ref = /*#__PURE__*/_react["default"].createElement(_Table.TableContainer, null, /*#__PURE__*/_react["default"].createElement(_Table.Table, {
15
+ stacked: "always"
16
+ }, /*#__PURE__*/_react["default"].createElement(_Table.TableCaption, null, "\u03A0\u03B5\u03C1\u03AF\u03BF\u03B4\u03BF\u03C2 \u03BA\u03B1\u03B9 \u03C0\u03BF\u03C3\u03AC"), /*#__PURE__*/_react["default"].createElement(_Table.TableHead, null, /*#__PURE__*/_react["default"].createElement(_Table.TableRow, null, /*#__PURE__*/_react["default"].createElement(_Table.TableHeadCell, null, "\u03A0\u03B5\u03C1\u03AF\u03BF\u03B4\u03BF\u03C2"), /*#__PURE__*/_react["default"].createElement(_Table.TableHeadCell, null, "\u039A\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03CC \u03C0\u03BF\u03C3\u03CC"), /*#__PURE__*/_react["default"].createElement(_Table.TableHeadCell, null, "\u039C\u03B5\u03B9\u03C9\u03BC\u03AD\u03BD\u03BF \u03C0\u03BF\u03C3\u03CC"))), /*#__PURE__*/_react["default"].createElement(_Table.TableBody, null, /*#__PURE__*/_react["default"].createElement(_Table.TableRow, null, /*#__PURE__*/_react["default"].createElement(_Table.TableDataCell, {
17
+ "data-label": "\u03A0\u03B5\u03C1\u03AF\u03BF\u03B4\u03BF\u03C2"
18
+ }, "\u03A0\u03C1\u03CE\u03C4\u03B5\u03C2 6 \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B5\u03C2"), /*#__PURE__*/_react["default"].createElement(_Table.TableDataCell, {
19
+ "data-label": "\u039A\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03CC \u03C0\u03BF\u03C3\u03CC"
20
+ }, "\u20AC109.80 / \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1"), /*#__PURE__*/_react["default"].createElement(_Table.TableDataCell, {
21
+ "data-label": "\u039C\u03B5\u03B9\u03C9\u03BC\u03AD\u03BD\u03BF \u03C0\u03BF\u03C3\u03CC"
22
+ }, "\u20AC69.80 / \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1")), /*#__PURE__*/_react["default"].createElement(_Table.TableRow, null, /*#__PURE__*/_react["default"].createElement(_Table.TableDataCell, {
23
+ "data-label": "\u03A0\u03B5\u03C1\u03AF\u03BF\u03B4\u03BF\u03C2"
24
+ }, "\u0395\u03C0\u03CC\u03BC\u03B5\u03BD\u03B5\u03C2 33 \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B5\u03C2"), /*#__PURE__*/_react["default"].createElement(_Table.TableDataCell, {
25
+ "data-label": "\u039A\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03CC \u03C0\u03BF\u03C3\u03CC"
26
+ }, "\u20AC99.80 / \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1"), /*#__PURE__*/_react["default"].createElement(_Table.TableDataCell, {
27
+ "data-label": "\u039C\u03B5\u03B9\u03C9\u03BC\u03AD\u03BD\u03BF \u03C0\u03BF\u03C3\u03CC"
28
+ }, "\u20AC64.80 / \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1")), /*#__PURE__*/_react["default"].createElement(_Table.TableRow, null, /*#__PURE__*/_react["default"].createElement(_Table.TableDataCell, {
29
+ "data-label": "\u03A0\u03B5\u03C1\u03AF\u03BF\u03B4\u03BF\u03C2"
30
+ }, "\u03A3\u03C5\u03BD\u03BF\u03BB\u03B9\u03BA\u03CC \u03C0\u03BF\u03C3\u03CC "), /*#__PURE__*/_react["default"].createElement(_Table.TableDataCell, {
31
+ "data-label": "\u039A\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03CC \u03C0\u03BF\u03C3\u03CC"
32
+ }, "\u20AC4.282,20 "), /*#__PURE__*/_react["default"].createElement(_Table.TableDataCell, {
33
+ "data-label": "\u039C\u03B5\u03B9\u03C9\u03BC\u03AD\u03BD\u03BF \u03C0\u03BF\u03C3\u03CC"
34
+ }, " \u20AC3.282,20")))));
35
+
36
+ var Stacked = function Stacked() {
37
+ return _ref;
38
+ };
39
+
40
+ exports.Stacked = Stacked;
41
+ var _default = Stacked;
42
+ exports["default"] = _default;
@@ -0,0 +1,2 @@
1
+ export declare const WithSortFilters: () => JSX.Element;
2
+ export default WithSortFilters;
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.WithSortFilters = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _Table = require("@digigov/ui/core/Table");
13
+
14
+ var _useSort2 = require("@digigov/ui/hooks/useSort");
15
+
16
+ var headerConfig = [{
17
+ name: 'product',
18
+ label: 'Προϊόν',
19
+ sortLabels: {
20
+ asc: 'Αλφαβητική σειρά (Α -> Ω)',
21
+ desc: 'Αλφαβητική σειρά (Ω -> Α)'
22
+ }
23
+ }, {
24
+ name: 'price',
25
+ label: 'Τιμή',
26
+ sortLabels: {
27
+ asc: 'Αύξουσα σειρά',
28
+ desc: 'Φθίνουσα σειρά'
29
+ }
30
+ }, {
31
+ name: 'stock',
32
+ label: 'Στοκ',
33
+ sortLabels: {
34
+ asc: 'Αύξουσα σειρά',
35
+ desc: 'Φθίνουσα σειρά'
36
+ }
37
+ }, {
38
+ name: 'date',
39
+ label: 'Ημερομηνία',
40
+ sortLabels: {
41
+ asc: 'Αύξουσα σειρά',
42
+ desc: 'Φθίνουσα σειρά'
43
+ }
44
+ }];
45
+ var data = [{
46
+ id: 1,
47
+ product: 'Τυρί',
48
+ price: '4.9€',
49
+ stock: 20,
50
+ date: '2013-04-01'
51
+ }, {
52
+ id: 2,
53
+ product: 'Γάλα',
54
+ price: '1.9€',
55
+ stock: 32,
56
+ date: '2013-01-01'
57
+ }, {
58
+ id: 3,
59
+ product: 'Γιαούρτι',
60
+ price: '2.4€',
61
+ stock: 12,
62
+ date: '2002-04-12'
63
+ }, {
64
+ id: 4,
65
+ product: 'Κρέμα',
66
+ price: '3.9€',
67
+ stock: 8,
68
+ date: '2011-12-12'
69
+ }, {
70
+ id: 5,
71
+ product: 'Βούτυρο',
72
+ price: '0.9€',
73
+ stock: 99,
74
+ date: '2019-06-01'
75
+ }, {
76
+ id: 6,
77
+ product: 'Καφές',
78
+ price: '2.9€',
79
+ stock: 86,
80
+ date: '2023-02-11'
81
+ }, {
82
+ id: 7,
83
+ product: 'Ψωμί',
84
+ price: '99€',
85
+ stock: 12,
86
+ date: '2000-12-12'
87
+ }];
88
+
89
+ var _ref = /*#__PURE__*/_react["default"].createElement(_Table.TableCaption, null, "Table of products");
90
+
91
+ var _ref2 = /*#__PURE__*/_react["default"].createElement(_Table.TableNoDataRow, null, "No data");
92
+
93
+ var WithSortFilters = function WithSortFilters() {
94
+ var _useSort = (0, _useSort2.useSort)(data),
95
+ sortedData = _useSort.sortedData,
96
+ setSortedField = _useSort.setSortedField,
97
+ field = _useSort.field,
98
+ direction = _useSort.direction;
99
+
100
+ return /*#__PURE__*/_react["default"].createElement("div", {
101
+ className: "example"
102
+ }, /*#__PURE__*/_react["default"].createElement(_Table.TableContainer, null, /*#__PURE__*/_react["default"].createElement(_Table.Table, null, _ref, /*#__PURE__*/_react["default"].createElement(_Table.TableHead, null, /*#__PURE__*/_react["default"].createElement(_Table.TableRow, null, headerConfig.map(function (header, index) {
103
+ return /*#__PURE__*/_react["default"].createElement(_Table.TableHeadCell, {
104
+ key: index
105
+ }, /*#__PURE__*/_react["default"].createElement(_Table.TableSortLabel, {
106
+ labels: header.sortLabels,
107
+ onSort: function onSort(dir) {
108
+ return setSortedField(header.name, dir);
109
+ },
110
+ direction: header.name === field ? direction : 0
111
+ }, header.label));
112
+ }))), /*#__PURE__*/_react["default"].createElement(_Table.TableBody, null, sortedData.length > 0 ? sortedData.map(function (d, index) {
113
+ return /*#__PURE__*/_react["default"].createElement(_Table.TableRow, {
114
+ key: index
115
+ }, /*#__PURE__*/_react["default"].createElement(_Table.TableDataCell, null, d.product), /*#__PURE__*/_react["default"].createElement(_Table.TableDataCell, null, d.price), /*#__PURE__*/_react["default"].createElement(_Table.TableDataCell, null, d.stock), /*#__PURE__*/_react["default"].createElement(_Table.TableDataCell, null, new Date(d.date).toLocaleDateString('en-GB')));
116
+ }) : _ref2))));
117
+ };
118
+
119
+ exports.WithSortFilters = WithSortFilters;
120
+ var _default = WithSortFilters;
121
+ exports["default"] = _default;
@@ -1,3 +1,17 @@
1
+ import React from 'react';
2
+ import Table from '@digigov/react-core/Table';
3
+ import { DropdownProps } from '@digigov/ui/admin/Dropdown';
4
+ export declare type SortDirection = 1 | -1 | 0;
5
+ export interface TableSortLabelProps extends DropdownProps {
6
+ labels: {
7
+ asc: string;
8
+ desc: string;
9
+ };
10
+ disabled?: boolean;
11
+ direction?: SortDirection;
12
+ onSort: (direction: SortDirection) => void;
13
+ }
14
+ export declare const TableSortLabel: React.ForwardRefExoticComponent<Pick<TableSortLabelProps, "slot" | "style" | "title" | "as" | "className" | "color" | "id" | "lang" | "role" | "tabIndex" | "direction" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "disabled" | "open" | "onToggle" | "align" | "margin" | "marginTop" | "marginBottom" | "marginLeft" | "marginRight" | "padding" | "paddingTop" | "paddingBottom" | "paddingLeft" | "paddingRight" | "printHidden" | "xsUpHidden" | "smUpHidden" | "mdUpHidden" | "lgUpHidden" | "xlUpHidden" | "xsHidden" | "smHidden" | "mdHidden" | "lgHidden" | "xlHidden" | "placement" | "closeBehaviour" | "float" | "labels" | "onSort"> & React.RefAttributes<HTMLDetailsElement>>;
1
15
  export * from '@digigov/react-core/TableContainer';
2
16
  export * from '@digigov/react-core/Table';
3
17
  export * from '@digigov/react-core/TableBody';
@@ -8,5 +22,4 @@ export * from '@digigov/react-core/TableHeadCell';
8
22
  export * from '@digigov/react-core/TableRow';
9
23
  export * from '@digigov/react-core/TableNoDataRow';
10
24
  export * from '@digigov/ui/core/Table/TableFloatingScroll';
11
- import Table from '@digigov/react-core/Table';
12
25
  export default Table;