@digigov/ui 2.1.0 → 2.1.1-platform-238.29-04-26-11-16
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 +9 -1
- package/index.js +1 -1
- package/navigation/Dropdown/index.js +2 -3
- package/package.json +4 -4
- package/registry.d.ts +4 -4
- package/registry.js +8 -8
- package/src/content/Table/Table.stories.jsx +151 -65
- package/src/content/Table/__stories__/WithMaxWidthWithOverflow.tsx +76 -0
- package/src/content/Table/index.test.tsx +4 -0
- package/src/navigation/Dropdown/index.tsx +2 -5
- package/src/registry.ts +8 -8
- package/src/stories-registry.ts +142 -140
- package/stories-registry.js +142 -140
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
# Change Log - @digigov/ui
|
|
2
2
|
|
|
3
|
-
<!-- This log was last generated on
|
|
3
|
+
<!-- This log was last generated on Wed, 29 Apr 2026 11:16:37 GMT and should not be manually modified. -->
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 2.1.1-platform-238.29-04-26-11-16
|
|
8
|
+
|
|
9
|
+
Wed, 29 Apr 2026 11:16:37 GMT
|
|
10
|
+
|
|
11
|
+
### Minor changes
|
|
12
|
+
|
|
13
|
+
- fix(Dropdown): fix position inside a table when floated (kbrani@admin.grnet.gr)
|
|
14
|
+
|
|
7
15
|
## 2.0.12
|
|
8
16
|
|
|
9
17
|
Mon, 23 Mar 2026 15:59:34 GMT
|
package/index.js
CHANGED
|
@@ -22,10 +22,9 @@ const Dropdown_Dropdown = /*#__PURE__*/ react.forwardRef(function({ closeBehavio
|
|
|
22
22
|
const tbody = element.closest('tbody');
|
|
23
23
|
const parentElement = element?.parentElement;
|
|
24
24
|
if (element.open) {
|
|
25
|
-
tbody.style.position = '
|
|
25
|
+
tbody.style.position = 'inherit';
|
|
26
26
|
const rect = element?.getBoundingClientRect();
|
|
27
27
|
const parentRect = parentElement.getBoundingClientRect();
|
|
28
|
-
element.style.position = 'static';
|
|
29
28
|
const top = rect.top + window.pageYOffset;
|
|
30
29
|
const left = rect.left + window.pageXOffset;
|
|
31
30
|
parentElement.style.height = `${parentRect.height}px`;
|
|
@@ -34,7 +33,7 @@ const Dropdown_Dropdown = /*#__PURE__*/ react.forwardRef(function({ closeBehavio
|
|
|
34
33
|
element.style.left = `${left}px`;
|
|
35
34
|
element.style.position = "absolute";
|
|
36
35
|
element.style.display = "block";
|
|
37
|
-
element.style.background = '
|
|
36
|
+
element.style.background = 'inherit';
|
|
38
37
|
} else {
|
|
39
38
|
tbody.style.position = 'relative';
|
|
40
39
|
parentElement.style.height = '';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digigov/ui",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1-platform-238.29-04-26-11-16",
|
|
4
4
|
"description": "@digigov reusable components toolkit",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
"highlight.js": "11.10.0",
|
|
15
15
|
"react-markdown": "10.1.0",
|
|
16
16
|
"@uides/react-qr-reader": "3.1.0",
|
|
17
|
-
"@digigov/react-icons": "2.1.
|
|
17
|
+
"@digigov/react-icons": "2.1.1-platform-238.29-04-26-11-16"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
20
|
"clsx": "2.1.1",
|
|
21
21
|
"react": "^18.3.0 || ^19.1.0",
|
|
22
22
|
"react-dom": "^18.3.0 || ^19.1.0",
|
|
23
|
-
"@digigov/react-core": "2.1.
|
|
24
|
-
"@digigov/css": "2.1.
|
|
23
|
+
"@digigov/react-core": "2.1.1-platform-238.29-04-26-11-16",
|
|
24
|
+
"@digigov/css": "2.1.1-platform-238.29-04-26-11-16"
|
|
25
25
|
},
|
|
26
26
|
"peerDependenciesMeta": {
|
|
27
27
|
"react-native": {
|
package/registry.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ declare const _default: {
|
|
|
20
20
|
'@digigov/ui/app/FilterContainer': {};
|
|
21
21
|
'@digigov/ui/app/Footer/FooterLink': {};
|
|
22
22
|
'@digigov/ui/app/Footer': {};
|
|
23
|
+
'@digigov/ui/app/Loader': {};
|
|
24
|
+
'@digigov/ui/app/Loader/index.web': {};
|
|
23
25
|
'@digigov/ui/app/Header/HeaderContent': {};
|
|
24
26
|
'@digigov/ui/app/Header/HeaderLogo': {};
|
|
25
27
|
'@digigov/ui/app/Header/HeaderNavMenuContent': {};
|
|
@@ -27,8 +29,6 @@ declare const _default: {
|
|
|
27
29
|
'@digigov/ui/app/Header/HeaderSection': {};
|
|
28
30
|
'@digigov/ui/app/Header/HeaderTitle': {};
|
|
29
31
|
'@digigov/ui/app/Header': {};
|
|
30
|
-
'@digigov/ui/app/Loader': {};
|
|
31
|
-
'@digigov/ui/app/Loader/index.web': {};
|
|
32
32
|
'@digigov/ui/app/Masthead': {};
|
|
33
33
|
'@digigov/ui/app/Modal/auto': {};
|
|
34
34
|
'@digigov/ui/app/Modal/hooks': {};
|
|
@@ -36,10 +36,10 @@ declare const _default: {
|
|
|
36
36
|
'@digigov/ui/app/Modal/index.web': {};
|
|
37
37
|
'@digigov/ui/app/NotFound': {};
|
|
38
38
|
'@digigov/ui/app/OutdatedBrowserBanner': {};
|
|
39
|
-
'@digigov/ui/app/PageTitleContainer': {};
|
|
40
39
|
'@digigov/ui/app/Panel': {};
|
|
41
|
-
'@digigov/ui/app/
|
|
40
|
+
'@digigov/ui/app/PageTitleContainer': {};
|
|
42
41
|
'@digigov/ui/app/PhaseBannerHeader': {};
|
|
42
|
+
'@digigov/ui/app/QrCodeScanner': {};
|
|
43
43
|
'@digigov/ui/app/QrCodeViewer': {};
|
|
44
44
|
'@digigov/ui/app/QrCodeViewer/qrcodegen': {};
|
|
45
45
|
'@digigov/ui/app/QrCodeViewer/types': {};
|
package/registry.js
CHANGED
|
@@ -19,6 +19,8 @@ import * as __WEBPACK_EXTERNAL_MODULE__app_CloseButton_index_js_9f02facf__ from
|
|
|
19
19
|
import * as __WEBPACK_EXTERNAL_MODULE__app_FilterContainer_index_js_33dbfb8a__ from "./app/FilterContainer/index.js";
|
|
20
20
|
import * as __WEBPACK_EXTERNAL_MODULE__app_Footer_FooterLink_js_7b5df4be__ from "./app/Footer/FooterLink.js";
|
|
21
21
|
import * as __WEBPACK_EXTERNAL_MODULE__app_Footer_index_js_656d1f1e__ from "./app/Footer/index.js";
|
|
22
|
+
import * as __WEBPACK_EXTERNAL_MODULE__app_Loader_index_js_2c2f957b__ from "./app/Loader/index.js";
|
|
23
|
+
import * as __WEBPACK_EXTERNAL_MODULE__app_Loader_index_web_js_287ec447__ from "./app/Loader/index.web.js";
|
|
22
24
|
import * as __WEBPACK_EXTERNAL_MODULE__app_Header_HeaderContent_js_3d3e5dbc__ from "./app/Header/HeaderContent.js";
|
|
23
25
|
import * as __WEBPACK_EXTERNAL_MODULE__app_Header_HeaderLogo_js_271dbc3a__ from "./app/Header/HeaderLogo.js";
|
|
24
26
|
import * as __WEBPACK_EXTERNAL_MODULE__app_Header_HeaderNavMenuContent_js_64554766__ from "./app/Header/HeaderNavMenuContent.js";
|
|
@@ -26,8 +28,6 @@ import * as __WEBPACK_EXTERNAL_MODULE__app_Header_HeaderSecondaryLogo_js_7031f32
|
|
|
26
28
|
import * as __WEBPACK_EXTERNAL_MODULE__app_Header_HeaderSection_js_af431557__ from "./app/Header/HeaderSection.js";
|
|
27
29
|
import * as __WEBPACK_EXTERNAL_MODULE__app_Header_HeaderTitle_js_0b1bcc23__ from "./app/Header/HeaderTitle.js";
|
|
28
30
|
import * as __WEBPACK_EXTERNAL_MODULE__app_Header_index_js_98820ab3__ from "./app/Header/index.js";
|
|
29
|
-
import * as __WEBPACK_EXTERNAL_MODULE__app_Loader_index_js_2c2f957b__ from "./app/Loader/index.js";
|
|
30
|
-
import * as __WEBPACK_EXTERNAL_MODULE__app_Loader_index_web_js_287ec447__ from "./app/Loader/index.web.js";
|
|
31
31
|
import * as __WEBPACK_EXTERNAL_MODULE__app_Masthead_index_js_818bba2d__ from "./app/Masthead/index.js";
|
|
32
32
|
import * as __WEBPACK_EXTERNAL_MODULE__app_Modal_auto_js_c687d323__ from "./app/Modal/auto.js";
|
|
33
33
|
import * as __WEBPACK_EXTERNAL_MODULE__app_Modal_hooks_js_e0234b39__ from "./app/Modal/hooks.js";
|
|
@@ -35,10 +35,10 @@ import * as __WEBPACK_EXTERNAL_MODULE__app_Modal_index_js_6d29a44e__ from "./app
|
|
|
35
35
|
import * as __WEBPACK_EXTERNAL_MODULE__app_Modal_index_web_js_53739084__ from "./app/Modal/index.web.js";
|
|
36
36
|
import * as __WEBPACK_EXTERNAL_MODULE__app_NotFound_index_js_50602c54__ from "./app/NotFound/index.js";
|
|
37
37
|
import * as __WEBPACK_EXTERNAL_MODULE__app_OutdatedBrowserBanner_index_js_6d787549__ from "./app/OutdatedBrowserBanner/index.js";
|
|
38
|
-
import * as __WEBPACK_EXTERNAL_MODULE__app_PageTitleContainer_index_js_4d16f6eb__ from "./app/PageTitleContainer/index.js";
|
|
39
38
|
import * as __WEBPACK_EXTERNAL_MODULE__app_Panel_index_js_6b0cd9f3__ from "./app/Panel/index.js";
|
|
40
|
-
import * as
|
|
39
|
+
import * as __WEBPACK_EXTERNAL_MODULE__app_PageTitleContainer_index_js_4d16f6eb__ from "./app/PageTitleContainer/index.js";
|
|
41
40
|
import * as __WEBPACK_EXTERNAL_MODULE__app_PhaseBannerHeader_index_js_510a3fe5__ from "./app/PhaseBannerHeader/index.js";
|
|
41
|
+
import * as __WEBPACK_EXTERNAL_MODULE__app_QrCodeScanner_index_js_bf063156__ from "./app/QrCodeScanner/index.js";
|
|
42
42
|
import * as __WEBPACK_EXTERNAL_MODULE__app_QrCodeViewer_index_js_4071f8f8__ from "./app/QrCodeViewer/index.js";
|
|
43
43
|
import * as __WEBPACK_EXTERNAL_MODULE__app_QrCodeViewer_qrcodegen_js_8c56fa22__ from "./app/QrCodeViewer/qrcodegen.js";
|
|
44
44
|
import * as __WEBPACK_EXTERNAL_MODULE__app_QrCodeViewer_types_js_0b66fe90__ from "./app/QrCodeViewer/types.js";
|
|
@@ -218,6 +218,8 @@ const registry = {
|
|
|
218
218
|
'@digigov/ui/app/FilterContainer': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_FilterContainer_index_js_33dbfb8a__),
|
|
219
219
|
'@digigov/ui/app/Footer/FooterLink': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Footer_FooterLink_js_7b5df4be__),
|
|
220
220
|
'@digigov/ui/app/Footer': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Footer_index_js_656d1f1e__),
|
|
221
|
+
'@digigov/ui/app/Loader': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Loader_index_js_2c2f957b__),
|
|
222
|
+
'@digigov/ui/app/Loader/index.web': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Loader_index_web_js_287ec447__),
|
|
221
223
|
'@digigov/ui/app/Header/HeaderContent': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Header_HeaderContent_js_3d3e5dbc__),
|
|
222
224
|
'@digigov/ui/app/Header/HeaderLogo': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Header_HeaderLogo_js_271dbc3a__),
|
|
223
225
|
'@digigov/ui/app/Header/HeaderNavMenuContent': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Header_HeaderNavMenuContent_js_64554766__),
|
|
@@ -225,8 +227,6 @@ const registry = {
|
|
|
225
227
|
'@digigov/ui/app/Header/HeaderSection': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Header_HeaderSection_js_af431557__),
|
|
226
228
|
'@digigov/ui/app/Header/HeaderTitle': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Header_HeaderTitle_js_0b1bcc23__),
|
|
227
229
|
'@digigov/ui/app/Header': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Header_index_js_98820ab3__),
|
|
228
|
-
'@digigov/ui/app/Loader': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Loader_index_js_2c2f957b__),
|
|
229
|
-
'@digigov/ui/app/Loader/index.web': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Loader_index_web_js_287ec447__),
|
|
230
230
|
'@digigov/ui/app/Masthead': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Masthead_index_js_818bba2d__),
|
|
231
231
|
'@digigov/ui/app/Modal/auto': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Modal_auto_js_c687d323__),
|
|
232
232
|
'@digigov/ui/app/Modal/hooks': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Modal_hooks_js_e0234b39__),
|
|
@@ -234,10 +234,10 @@ const registry = {
|
|
|
234
234
|
'@digigov/ui/app/Modal/index.web': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Modal_index_web_js_53739084__),
|
|
235
235
|
'@digigov/ui/app/NotFound': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_NotFound_index_js_50602c54__),
|
|
236
236
|
'@digigov/ui/app/OutdatedBrowserBanner': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_OutdatedBrowserBanner_index_js_6d787549__),
|
|
237
|
-
'@digigov/ui/app/PageTitleContainer': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_PageTitleContainer_index_js_4d16f6eb__),
|
|
238
237
|
'@digigov/ui/app/Panel': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_Panel_index_js_6b0cd9f3__),
|
|
239
|
-
'@digigov/ui/app/
|
|
238
|
+
'@digigov/ui/app/PageTitleContainer': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_PageTitleContainer_index_js_4d16f6eb__),
|
|
240
239
|
'@digigov/ui/app/PhaseBannerHeader': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_PhaseBannerHeader_index_js_510a3fe5__),
|
|
240
|
+
'@digigov/ui/app/QrCodeScanner': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_QrCodeScanner_index_js_bf063156__),
|
|
241
241
|
'@digigov/ui/app/QrCodeViewer': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_QrCodeViewer_index_js_4071f8f8__),
|
|
242
242
|
'@digigov/ui/app/QrCodeViewer/qrcodegen': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_QrCodeViewer_qrcodegen_js_8c56fa22__),
|
|
243
243
|
'@digigov/ui/app/QrCodeViewer/types': lazyImport(__WEBPACK_EXTERNAL_MODULE__app_QrCodeViewer_types_js_0b66fe90__),
|
|
@@ -10,7 +10,14 @@ import {
|
|
|
10
10
|
TableBody,
|
|
11
11
|
TableHeadCell,
|
|
12
12
|
TableDataCell,
|
|
13
|
+
TableFloatingScroll,
|
|
13
14
|
} from '@digigov/ui/content/Table';
|
|
15
|
+
import {
|
|
16
|
+
Dropdown,
|
|
17
|
+
DropdownButton,
|
|
18
|
+
DropdownContent,
|
|
19
|
+
} from '@digigov/ui/navigation/Dropdown';
|
|
20
|
+
import NavList, { NavListItemAction } from '@digigov/ui/navigation/NavList';
|
|
14
21
|
|
|
15
22
|
export default {
|
|
16
23
|
title: 'Digigov UI/content/Table',
|
|
@@ -30,6 +37,9 @@ const data = {
|
|
|
30
37
|
role: 'Ρόλος',
|
|
31
38
|
email: 'Email',
|
|
32
39
|
phone: 'Ώρες',
|
|
40
|
+
country: 'Χώρα',
|
|
41
|
+
active: 'Ενεργός',
|
|
42
|
+
actions: 'Ενέργειες',
|
|
33
43
|
},
|
|
34
44
|
content: [
|
|
35
45
|
{
|
|
@@ -37,100 +47,158 @@ const data = {
|
|
|
37
47
|
role: 'Χειριστής',
|
|
38
48
|
email: 'marios@mail.com',
|
|
39
49
|
phone: '34',
|
|
50
|
+
country: 'Ελλάδα',
|
|
51
|
+
active: true,
|
|
40
52
|
},
|
|
41
53
|
{
|
|
42
54
|
name: 'Καλλιόπη Παπαδοπούλου',
|
|
43
55
|
role: 'Χειριστής',
|
|
44
56
|
email: 'kalliopi@mail.com',
|
|
45
57
|
phone: '65',
|
|
58
|
+
country: 'Ελλάδα',
|
|
59
|
+
active: true,
|
|
46
60
|
},
|
|
47
61
|
{
|
|
48
62
|
name: 'Μαρία Φλούπη',
|
|
49
63
|
role: 'Διαχειριστής',
|
|
50
64
|
email: 'maria@mail.com',
|
|
51
65
|
phone: '12',
|
|
66
|
+
country: 'Ελλάδα',
|
|
67
|
+
active: false,
|
|
52
68
|
},
|
|
53
69
|
{
|
|
54
70
|
name: 'Ηλέκτρα Αποστόλου',
|
|
55
71
|
role: 'Διαχειριστής',
|
|
56
72
|
email: 'ilektra@mail.com',
|
|
57
73
|
phone: '26',
|
|
74
|
+
country: 'Ελλάδα',
|
|
75
|
+
active: true,
|
|
58
76
|
},
|
|
59
77
|
],
|
|
60
78
|
};
|
|
61
79
|
|
|
62
80
|
export const WithControls = {
|
|
63
81
|
render: (args) => {
|
|
64
|
-
|
|
65
|
-
<
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
<
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
dataType={key === 'phone' && args.tableHeadCellDataType}
|
|
86
|
-
>
|
|
87
|
-
{data.labels[key]}
|
|
88
|
-
</TableHeadCell>
|
|
89
|
-
))}
|
|
90
|
-
</TableRow>
|
|
91
|
-
</TableHead>
|
|
92
|
-
<TableBody>
|
|
93
|
-
{data.content &&
|
|
94
|
-
data.content.map((item, index) => (
|
|
95
|
-
<TableRow
|
|
96
|
-
key={index}
|
|
97
|
-
highlight={index === 1 && args.tableRowHighlight === true}
|
|
98
|
-
color={index === 1 && args.tableRowColor}
|
|
82
|
+
const TableContent = () => (
|
|
83
|
+
<Table
|
|
84
|
+
headerVariant={args.headerVariant}
|
|
85
|
+
verticalBorders={args.verticalBorders}
|
|
86
|
+
variant={args.variant}
|
|
87
|
+
dense={args.dense}
|
|
88
|
+
stacked={args.stacked}
|
|
89
|
+
>
|
|
90
|
+
{data && (
|
|
91
|
+
<>
|
|
92
|
+
<TableCaption size={args.tableCaptionSize}>
|
|
93
|
+
{data.title}
|
|
94
|
+
</TableCaption>
|
|
95
|
+
<TableHead>
|
|
96
|
+
<TableRow>
|
|
97
|
+
{data.labels &&
|
|
98
|
+
Object.keys(data.labels).map((key, index) => (
|
|
99
|
+
<TableHeadCell
|
|
100
|
+
key={key}
|
|
101
|
+
width={index === 0 && args.firstTableHeadCellWidth}
|
|
102
|
+
dataType={key === 'phone' && args.tableHeadCellDataType}
|
|
99
103
|
>
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
</TableDataCell>
|
|
103
|
-
<TableDataCell
|
|
104
|
-
data-label={data.labels.role}
|
|
105
|
-
highlight={
|
|
106
|
-
index === 2 && args.tableCellHighlight === 'warning'
|
|
107
|
-
? 'warning'
|
|
108
|
-
: index === 2 && args.tableCellHighlight === 'error'
|
|
109
|
-
? 'error'
|
|
110
|
-
: undefined
|
|
111
|
-
}
|
|
112
|
-
>
|
|
113
|
-
{item.role}
|
|
114
|
-
</TableDataCell>
|
|
115
|
-
<TableDataCell data-label={data.labels.email}>
|
|
116
|
-
{item.email}
|
|
117
|
-
</TableDataCell>
|
|
118
|
-
<TableDataCell
|
|
119
|
-
data-label={data.labels.phone}
|
|
120
|
-
dataType={args.tableHeadCellDataType}
|
|
121
|
-
>
|
|
122
|
-
{item.phone}
|
|
123
|
-
</TableDataCell>
|
|
124
|
-
</TableRow>
|
|
104
|
+
{data.labels[key]}
|
|
105
|
+
</TableHeadCell>
|
|
125
106
|
))}
|
|
126
|
-
</
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
107
|
+
</TableRow>
|
|
108
|
+
</TableHead>
|
|
109
|
+
<TableBody>
|
|
110
|
+
{data.content &&
|
|
111
|
+
data.content.map((item, index) => (
|
|
112
|
+
<TableRow
|
|
113
|
+
key={index}
|
|
114
|
+
highlight={index === 1 && args.tableRowHighlight === true}
|
|
115
|
+
color={index === 1 && args.tableRowColor}
|
|
116
|
+
>
|
|
117
|
+
<TableDataCell
|
|
118
|
+
data-label={data.labels.name}
|
|
119
|
+
maxWidthWithOverflow={
|
|
120
|
+
args.tableDataCellMaxWidthWithOverflow
|
|
121
|
+
}
|
|
122
|
+
>
|
|
123
|
+
{item.name}
|
|
124
|
+
</TableDataCell>
|
|
125
|
+
<TableDataCell
|
|
126
|
+
data-label={data.labels.role}
|
|
127
|
+
highlight={
|
|
128
|
+
index === 2 && args.tableCellHighlight === 'warning'
|
|
129
|
+
? 'warning'
|
|
130
|
+
: index === 2 && args.tableCellHighlight === 'error'
|
|
131
|
+
? 'error'
|
|
132
|
+
: undefined
|
|
133
|
+
}
|
|
134
|
+
>
|
|
135
|
+
{item.role}
|
|
136
|
+
</TableDataCell>
|
|
137
|
+
<TableDataCell data-label={data.labels.email}>
|
|
138
|
+
{item.email}
|
|
139
|
+
</TableDataCell>
|
|
140
|
+
<TableDataCell
|
|
141
|
+
data-label={data.labels.phone}
|
|
142
|
+
dataType={args.tableHeadCellDataType}
|
|
143
|
+
>
|
|
144
|
+
{item.phone}
|
|
145
|
+
</TableDataCell>
|
|
146
|
+
<TableDataCell data-label={data.labels.country}>
|
|
147
|
+
{item.country}
|
|
148
|
+
</TableDataCell>
|
|
149
|
+
<TableDataCell data-label={data.labels.active}>
|
|
150
|
+
{item.active ? 'Ναι' : 'Όχι'}
|
|
151
|
+
</TableDataCell>
|
|
152
|
+
<TableDataCell
|
|
153
|
+
maxWidthWithOverflow={
|
|
154
|
+
args.tableDataCellMaxWidthWithOverflow
|
|
155
|
+
}
|
|
156
|
+
data-label={data.labels.actions}
|
|
157
|
+
>
|
|
158
|
+
<Dropdown
|
|
159
|
+
float={args.actionsFloat}
|
|
160
|
+
align="right"
|
|
161
|
+
placement="bottom"
|
|
162
|
+
>
|
|
163
|
+
<DropdownButton variant="link">
|
|
164
|
+
Ενέργειες
|
|
165
|
+
</DropdownButton>
|
|
166
|
+
<DropdownContent>
|
|
167
|
+
<NavList layout="vertical">
|
|
168
|
+
<NavListItemAction href="#">
|
|
169
|
+
Εισαγωγή προτύπου
|
|
170
|
+
</NavListItemAction>
|
|
171
|
+
<NavListItemAction href="#">
|
|
172
|
+
Διαγραφή
|
|
173
|
+
</NavListItemAction>
|
|
174
|
+
</NavList>
|
|
175
|
+
</DropdownContent>
|
|
176
|
+
</Dropdown>
|
|
177
|
+
</TableDataCell>
|
|
178
|
+
</TableRow>
|
|
179
|
+
))}
|
|
180
|
+
</TableBody>
|
|
181
|
+
</>
|
|
182
|
+
)}
|
|
183
|
+
</Table>
|
|
184
|
+
);
|
|
185
|
+
return (
|
|
186
|
+
<>
|
|
187
|
+
{args.container === 'FloatingTable' ? (
|
|
188
|
+
<TableFloatingScroll>
|
|
189
|
+
<TableContent />
|
|
190
|
+
</TableFloatingScroll>
|
|
191
|
+
) : (
|
|
192
|
+
<TableContainer border={args.containerBorder}>
|
|
193
|
+
<TableContent />
|
|
194
|
+
</TableContainer>
|
|
195
|
+
)}
|
|
196
|
+
</>
|
|
131
197
|
);
|
|
132
198
|
},
|
|
133
199
|
args: {
|
|
200
|
+
actionsFloat: true,
|
|
201
|
+
container: 'TableContainer',
|
|
134
202
|
containerBorder: false,
|
|
135
203
|
headerVariant: 'light',
|
|
136
204
|
verticalBorders: false,
|
|
@@ -143,8 +211,20 @@ export const WithControls = {
|
|
|
143
211
|
tableRowColor: 'primary',
|
|
144
212
|
firstTableHeadCellWidth: '25%',
|
|
145
213
|
tableHeadCellDataType: 'text',
|
|
214
|
+
tableDataCellMaxWidthWithOverflow: false,
|
|
146
215
|
},
|
|
147
216
|
argTypes: {
|
|
217
|
+
actionsFloat: {
|
|
218
|
+
control: {
|
|
219
|
+
type: 'boolean',
|
|
220
|
+
},
|
|
221
|
+
},
|
|
222
|
+
container: {
|
|
223
|
+
control: {
|
|
224
|
+
type: 'inline-radio',
|
|
225
|
+
},
|
|
226
|
+
options: ['TableContainer', 'FloatingTable'],
|
|
227
|
+
},
|
|
148
228
|
containerBorder: {
|
|
149
229
|
control: {
|
|
150
230
|
type: 'boolean',
|
|
@@ -209,6 +289,11 @@ export const WithControls = {
|
|
|
209
289
|
},
|
|
210
290
|
options: ['numeric', 'text'],
|
|
211
291
|
},
|
|
292
|
+
tableDataCellMaxWidthWithOverflow: {
|
|
293
|
+
control: {
|
|
294
|
+
type: 'boolean',
|
|
295
|
+
},
|
|
296
|
+
},
|
|
212
297
|
},
|
|
213
298
|
parameters: {
|
|
214
299
|
controls: { exclude: ['ref'] },
|
|
@@ -233,4 +318,5 @@ export { UsingHighlights } from '@digigov/ui/content/Table/__stories__/UsingHigh
|
|
|
233
318
|
export { MultipleProps } from '@digigov/ui/content/Table/__stories__/MultipleProps';
|
|
234
319
|
export { WithSortFilters } from '@digigov/ui/content/Table/__stories__/WithSortFilters';
|
|
235
320
|
export { WithFloatingScroll } from '@digigov/ui/content/Table/__stories__/WithFloatingScroll';
|
|
321
|
+
export { WithMaxWidthWithOverflow } from '@digigov/ui/content/Table/__stories__/WithMaxWidthWithOverflow';
|
|
236
322
|
export { Full } from '@digigov/ui/content/Table/__stories__/Full';
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
TableContainer,
|
|
4
|
+
Table,
|
|
5
|
+
TableCaption,
|
|
6
|
+
TableHead,
|
|
7
|
+
TableRow,
|
|
8
|
+
TableBody,
|
|
9
|
+
TableHeadCell,
|
|
10
|
+
TableDataCell,
|
|
11
|
+
} from '@digigov/ui/content/Table';
|
|
12
|
+
|
|
13
|
+
const data = {
|
|
14
|
+
title: 'Χρήστες',
|
|
15
|
+
labels: {
|
|
16
|
+
name: 'Ονοματεπώνυμο',
|
|
17
|
+
description: 'Περιγραφή',
|
|
18
|
+
email: 'Email',
|
|
19
|
+
},
|
|
20
|
+
content: [
|
|
21
|
+
{
|
|
22
|
+
name: 'Μάριος Μενεξές',
|
|
23
|
+
description:
|
|
24
|
+
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
|
|
25
|
+
email: 'marios@mail.com',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'Καλλιόπη Παπαδοπούλου',
|
|
29
|
+
description:
|
|
30
|
+
'Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?',
|
|
31
|
+
email: 'kalliopi@mail.com',
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const WithMaxWidthWithOverflow = (_: any) => {
|
|
37
|
+
return (
|
|
38
|
+
<TableContainer>
|
|
39
|
+
<Table verticalAlign="top">
|
|
40
|
+
{data && (
|
|
41
|
+
<>
|
|
42
|
+
<TableCaption>{data.title}</TableCaption>
|
|
43
|
+
<TableHead>
|
|
44
|
+
<TableRow>
|
|
45
|
+
{data.labels &&
|
|
46
|
+
Object.keys(data.labels).map((key) => (
|
|
47
|
+
<TableHeadCell key={key}>{data.labels[key]}</TableHeadCell>
|
|
48
|
+
))}
|
|
49
|
+
</TableRow>
|
|
50
|
+
</TableHead>
|
|
51
|
+
<TableBody>
|
|
52
|
+
{data.content &&
|
|
53
|
+
data.content.map((item, index) => (
|
|
54
|
+
<TableRow key={index}>
|
|
55
|
+
<TableDataCell data-label={data.labels.name}>
|
|
56
|
+
{item.name}
|
|
57
|
+
</TableDataCell>
|
|
58
|
+
<TableDataCell
|
|
59
|
+
maxWidthWithOverflow
|
|
60
|
+
data-label={data.labels.description}
|
|
61
|
+
>
|
|
62
|
+
{item.description}
|
|
63
|
+
</TableDataCell>
|
|
64
|
+
<TableDataCell data-label={data.labels.email}>
|
|
65
|
+
{item.email}
|
|
66
|
+
</TableDataCell>
|
|
67
|
+
</TableRow>
|
|
68
|
+
))}
|
|
69
|
+
</TableBody>
|
|
70
|
+
</>
|
|
71
|
+
)}
|
|
72
|
+
</Table>
|
|
73
|
+
</TableContainer>
|
|
74
|
+
);
|
|
75
|
+
};
|
|
76
|
+
export default WithMaxWidthWithOverflow;
|
|
@@ -18,6 +18,7 @@ import { VerticalBorders } from '@digigov/ui/content/Table/__stories__/VerticalB
|
|
|
18
18
|
import { VerticalHeaders } from '@digigov/ui/content/Table/__stories__/VerticalHeaders';
|
|
19
19
|
import { WithFloatingScroll } from '@digigov/ui/content/Table/__stories__/WithFloatingScroll';
|
|
20
20
|
import { WithLoader } from '@digigov/ui/content/Table/__stories__/WithLoader';
|
|
21
|
+
import { WithMaxWidthWithOverflow } from '@digigov/ui/content/Table/__stories__/WithMaxWidthWithOverflow';
|
|
21
22
|
import { WithSortFilters } from '@digigov/ui/content/Table/__stories__/WithSortFilters';
|
|
22
23
|
import { ZebraProp } from '@digigov/ui/content/Table/__stories__/ZebraProp';
|
|
23
24
|
const SCREENSHOT_DELAY = 2_000;
|
|
@@ -78,6 +79,9 @@ test('renders the All Table variants', async ({ mount, page }) => {
|
|
|
78
79
|
<TestVariant title="WithLoader">
|
|
79
80
|
<WithLoader />
|
|
80
81
|
</TestVariant>
|
|
82
|
+
<TestVariant title="WithMaxWidthWithOverflow">
|
|
83
|
+
<WithMaxWidthWithOverflow />
|
|
84
|
+
</TestVariant>
|
|
81
85
|
<TestVariant title="WithSortFilters">
|
|
82
86
|
<WithSortFilters />
|
|
83
87
|
</TestVariant>
|
|
@@ -54,11 +54,9 @@ export const Dropdown = React.forwardRef<HTMLDetailsElement, DropdownProps>(
|
|
|
54
54
|
const tbody = element.closest('tbody') as HTMLElement;
|
|
55
55
|
const parentElement = element?.parentElement as HTMLElement;
|
|
56
56
|
if (element.open) {
|
|
57
|
-
tbody.style.position = '
|
|
57
|
+
tbody.style.position = 'inherit';
|
|
58
58
|
const rect = element?.getBoundingClientRect();
|
|
59
59
|
const parentRect = parentElement.getBoundingClientRect();
|
|
60
|
-
element.style.position = 'static';
|
|
61
|
-
// arbitrary spacing of 12 pixels because CSS
|
|
62
60
|
const top = rect.top + window.pageYOffset;
|
|
63
61
|
const left = rect.left + window.pageXOffset;
|
|
64
62
|
parentElement.style.height = `${parentRect.height}px`;
|
|
@@ -67,7 +65,7 @@ export const Dropdown = React.forwardRef<HTMLDetailsElement, DropdownProps>(
|
|
|
67
65
|
element.style.left = `${left}px`;
|
|
68
66
|
element.style.position = `absolute`;
|
|
69
67
|
element.style.display = `block`;
|
|
70
|
-
element.style.background = '
|
|
68
|
+
element.style.background = 'inherit';
|
|
71
69
|
} else {
|
|
72
70
|
tbody.style.position = 'relative';
|
|
73
71
|
parentElement.style.height = '';
|
|
@@ -76,7 +74,6 @@ export const Dropdown = React.forwardRef<HTMLDetailsElement, DropdownProps>(
|
|
|
76
74
|
element.style.left = `0`;
|
|
77
75
|
element.style.position = `relative`;
|
|
78
76
|
element.style.display = `table-cell`;
|
|
79
|
-
// element.style.background = 'transparent';
|
|
80
77
|
}
|
|
81
78
|
};
|
|
82
79
|
if (float) {
|
package/src/registry.ts
CHANGED
|
@@ -20,6 +20,8 @@ import * as _digigov_ui_app_CloseButton from "@digigov/ui/app/CloseButton";
|
|
|
20
20
|
import * as _digigov_ui_app_FilterContainer from "@digigov/ui/app/FilterContainer";
|
|
21
21
|
import * as _digigov_ui_app_Footer_FooterLink from "@digigov/ui/app/Footer/FooterLink";
|
|
22
22
|
import * as _digigov_ui_app_Footer from "@digigov/ui/app/Footer";
|
|
23
|
+
import * as _digigov_ui_app_Loader from "@digigov/ui/app/Loader";
|
|
24
|
+
import * as _digigov_ui_app_Loader_index_web from "@digigov/ui/app/Loader/index.web";
|
|
23
25
|
import * as _digigov_ui_app_Header_HeaderContent from "@digigov/ui/app/Header/HeaderContent";
|
|
24
26
|
import * as _digigov_ui_app_Header_HeaderLogo from "@digigov/ui/app/Header/HeaderLogo";
|
|
25
27
|
import * as _digigov_ui_app_Header_HeaderNavMenuContent from "@digigov/ui/app/Header/HeaderNavMenuContent";
|
|
@@ -27,8 +29,6 @@ import * as _digigov_ui_app_Header_HeaderSecondaryLogo from "@digigov/ui/app/Hea
|
|
|
27
29
|
import * as _digigov_ui_app_Header_HeaderSection from "@digigov/ui/app/Header/HeaderSection";
|
|
28
30
|
import * as _digigov_ui_app_Header_HeaderTitle from "@digigov/ui/app/Header/HeaderTitle";
|
|
29
31
|
import * as _digigov_ui_app_Header from "@digigov/ui/app/Header";
|
|
30
|
-
import * as _digigov_ui_app_Loader from "@digigov/ui/app/Loader";
|
|
31
|
-
import * as _digigov_ui_app_Loader_index_web from "@digigov/ui/app/Loader/index.web";
|
|
32
32
|
import * as _digigov_ui_app_Masthead from "@digigov/ui/app/Masthead";
|
|
33
33
|
import * as _digigov_ui_app_Modal_auto from "@digigov/ui/app/Modal/auto";
|
|
34
34
|
import * as _digigov_ui_app_Modal_hooks from "@digigov/ui/app/Modal/hooks";
|
|
@@ -36,10 +36,10 @@ import * as _digigov_ui_app_Modal from "@digigov/ui/app/Modal";
|
|
|
36
36
|
import * as _digigov_ui_app_Modal_index_web from "@digigov/ui/app/Modal/index.web";
|
|
37
37
|
import * as _digigov_ui_app_NotFound from "@digigov/ui/app/NotFound";
|
|
38
38
|
import * as _digigov_ui_app_OutdatedBrowserBanner from "@digigov/ui/app/OutdatedBrowserBanner";
|
|
39
|
-
import * as _digigov_ui_app_PageTitleContainer from "@digigov/ui/app/PageTitleContainer";
|
|
40
39
|
import * as _digigov_ui_app_Panel from "@digigov/ui/app/Panel";
|
|
41
|
-
import * as
|
|
40
|
+
import * as _digigov_ui_app_PageTitleContainer from "@digigov/ui/app/PageTitleContainer";
|
|
42
41
|
import * as _digigov_ui_app_PhaseBannerHeader from "@digigov/ui/app/PhaseBannerHeader";
|
|
42
|
+
import * as _digigov_ui_app_QrCodeScanner from "@digigov/ui/app/QrCodeScanner";
|
|
43
43
|
import * as _digigov_ui_app_QrCodeViewer from "@digigov/ui/app/QrCodeViewer";
|
|
44
44
|
import * as _digigov_ui_app_QrCodeViewer_qrcodegen from "@digigov/ui/app/QrCodeViewer/qrcodegen";
|
|
45
45
|
import * as _digigov_ui_app_QrCodeViewer_types from "@digigov/ui/app/QrCodeViewer/types";
|
|
@@ -228,6 +228,8 @@ export default {
|
|
|
228
228
|
'@digigov/ui/app/FilterContainer': lazyImport(_digigov_ui_app_FilterContainer),
|
|
229
229
|
'@digigov/ui/app/Footer/FooterLink': lazyImport(_digigov_ui_app_Footer_FooterLink),
|
|
230
230
|
'@digigov/ui/app/Footer': lazyImport(_digigov_ui_app_Footer),
|
|
231
|
+
'@digigov/ui/app/Loader': lazyImport(_digigov_ui_app_Loader),
|
|
232
|
+
'@digigov/ui/app/Loader/index.web': lazyImport(_digigov_ui_app_Loader_index_web),
|
|
231
233
|
'@digigov/ui/app/Header/HeaderContent': lazyImport(_digigov_ui_app_Header_HeaderContent),
|
|
232
234
|
'@digigov/ui/app/Header/HeaderLogo': lazyImport(_digigov_ui_app_Header_HeaderLogo),
|
|
233
235
|
'@digigov/ui/app/Header/HeaderNavMenuContent': lazyImport(_digigov_ui_app_Header_HeaderNavMenuContent),
|
|
@@ -235,8 +237,6 @@ export default {
|
|
|
235
237
|
'@digigov/ui/app/Header/HeaderSection': lazyImport(_digigov_ui_app_Header_HeaderSection),
|
|
236
238
|
'@digigov/ui/app/Header/HeaderTitle': lazyImport(_digigov_ui_app_Header_HeaderTitle),
|
|
237
239
|
'@digigov/ui/app/Header': lazyImport(_digigov_ui_app_Header),
|
|
238
|
-
'@digigov/ui/app/Loader': lazyImport(_digigov_ui_app_Loader),
|
|
239
|
-
'@digigov/ui/app/Loader/index.web': lazyImport(_digigov_ui_app_Loader_index_web),
|
|
240
240
|
'@digigov/ui/app/Masthead': lazyImport(_digigov_ui_app_Masthead),
|
|
241
241
|
'@digigov/ui/app/Modal/auto': lazyImport(_digigov_ui_app_Modal_auto),
|
|
242
242
|
'@digigov/ui/app/Modal/hooks': lazyImport(_digigov_ui_app_Modal_hooks),
|
|
@@ -244,10 +244,10 @@ export default {
|
|
|
244
244
|
'@digigov/ui/app/Modal/index.web': lazyImport(_digigov_ui_app_Modal_index_web),
|
|
245
245
|
'@digigov/ui/app/NotFound': lazyImport(_digigov_ui_app_NotFound),
|
|
246
246
|
'@digigov/ui/app/OutdatedBrowserBanner': lazyImport(_digigov_ui_app_OutdatedBrowserBanner),
|
|
247
|
-
'@digigov/ui/app/PageTitleContainer': lazyImport(_digigov_ui_app_PageTitleContainer),
|
|
248
247
|
'@digigov/ui/app/Panel': lazyImport(_digigov_ui_app_Panel),
|
|
249
|
-
'@digigov/ui/app/
|
|
248
|
+
'@digigov/ui/app/PageTitleContainer': lazyImport(_digigov_ui_app_PageTitleContainer),
|
|
250
249
|
'@digigov/ui/app/PhaseBannerHeader': lazyImport(_digigov_ui_app_PhaseBannerHeader),
|
|
250
|
+
'@digigov/ui/app/QrCodeScanner': lazyImport(_digigov_ui_app_QrCodeScanner),
|
|
251
251
|
'@digigov/ui/app/QrCodeViewer': lazyImport(_digigov_ui_app_QrCodeViewer),
|
|
252
252
|
'@digigov/ui/app/QrCodeViewer/qrcodegen': lazyImport(_digigov_ui_app_QrCodeViewer_qrcodegen),
|
|
253
253
|
'@digigov/ui/app/QrCodeViewer/types': lazyImport(_digigov_ui_app_QrCodeViewer_types),
|