@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.
- package/CHANGELOG.md +23 -1
- package/admin/Drawer/__stories__/Default.js +3 -0
- package/admin/Dropdown/index.d.ts +1 -1
- package/admin/Dropdown/index.js +45 -27
- package/core/CaretContainer/index.d.ts +3 -0
- package/core/CaretContainer/index.js +30 -0
- package/core/Table/Table.stories.d.ts +2 -0
- package/core/Table/Table.stories.js +28 -0
- package/core/Table/Table.stories.playwright.json +16 -0
- package/core/Table/__stories__/Stacked.d.ts +2 -0
- package/core/Table/__stories__/Stacked.js +42 -0
- package/core/Table/__stories__/WithSortFilters.d.ts +2 -0
- package/core/Table/__stories__/WithSortFilters.js +121 -0
- package/core/Table/index.d.ts +14 -1
- package/core/Table/index.js +107 -10
- 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 +45 -27
- package/es/core/CaretContainer/index.js +3 -0
- package/es/core/Table/Table.stories.js +2 -0
- package/es/core/Table/Table.stories.playwright.json +16 -0
- package/es/core/Table/__stories__/Stacked.js +29 -0
- package/es/core/Table/__stories__/WithSortFilters.js +106 -0
- package/es/core/Table/index.js +86 -1
- package/es/core/index.js +1 -0
- package/es/hooks/useSort.js +54 -0
- package/es/registry.js +2 -0
- package/esm/admin/Drawer/__stories__/Default.js +3 -0
- package/esm/admin/Dropdown/index.js +45 -27
- package/esm/core/CaretContainer/index.js +3 -0
- package/esm/core/Table/Table.stories.js +2 -0
- package/esm/core/Table/Table.stories.playwright.json +16 -0
- package/esm/core/Table/__stories__/Stacked.js +29 -0
- package/esm/core/Table/__stories__/WithSortFilters.js +106 -0
- package/esm/core/Table/index.js +86 -1
- package/esm/core/index.js +1 -0
- package/esm/hooks/useSort.js +54 -0
- package/esm/index.js +1 -1
- package/esm/registry.js +2 -0
- package/hooks/useSort.d.ts +9 -0
- package/hooks/useSort.js +67 -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 +80 -55
- package/src/core/CaretContainer/index.tsx +3 -0
- package/src/core/Table/Table.stories.js +2 -0
- package/src/core/Table/Table.stories.playwright.json +16 -0
- package/src/core/Table/__stories__/Stacked.tsx +59 -0
- package/src/core/Table/__stories__/WithSortFilters.tsx +152 -0
- package/src/core/Table/index.tsx +112 -2
- package/src/core/index.ts +1 -0
- package/src/hooks/useSort.tsx +53 -0
- 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,
|
|
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:
|
|
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;
|
package/admin/Dropdown/index.js
CHANGED
|
@@ -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 (
|
|
78
|
-
|
|
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
|
-
|
|
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
|
-
|
|
93
|
-
|
|
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 =
|
|
107
|
+
var rect = element === null || element === void 0 ? void 0 : element.getBoundingClientRect();
|
|
97
108
|
var parentRect = parentElement.getBoundingClientRect();
|
|
98
|
-
|
|
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
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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,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,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,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;
|
package/core/Table/index.d.ts
CHANGED
|
@@ -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;
|