@portnet/ui 2.0.2 → 2.0.4
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/dist/components/buttons/PuiButton.js +80 -72
- package/dist/components/common/StyledMuiTextField.js +53 -18
- package/dist/components/inputs/PuiFileField.js +82 -10
- package/dist/components/others/PuiDialog.js +18 -9
- package/dist/components/others/PuiSection.js +11 -11
- package/dist/components/table/PuiTable.js +220 -481
- package/dist/components/ui/pages/general/PuiSearchPage.js +172 -142
- package/dist/config/ThemeProvider.js +32 -0
- package/dist/config/styleUtils.js +135 -0
- package/dist/config/theme.js +183 -0
- package/dist/index.js +63 -0
- package/package.json +2 -1
|
@@ -8,320 +8,148 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
});
|
|
9
9
|
exports.default = void 0;
|
|
10
10
|
require("core-js/modules/es.array.includes.js");
|
|
11
|
-
require("core-js/modules/es.
|
|
11
|
+
require("core-js/modules/es.regexp.to-string.js");
|
|
12
12
|
require("core-js/modules/es.string.includes.js");
|
|
13
13
|
require("core-js/modules/esnext.iterator.constructor.js");
|
|
14
14
|
require("core-js/modules/esnext.iterator.map.js");
|
|
15
15
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
16
|
-
var _MoreVert = _interopRequireDefault(require("@mui/icons-material/MoreVert"));
|
|
17
|
-
var _material = require("@mui/material");
|
|
18
|
-
var _styles = require("@mui/material/styles");
|
|
19
|
-
var _xDataGrid = require("@mui/x-data-grid");
|
|
20
16
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
21
17
|
var React = _interopRequireWildcard(require("react"));
|
|
22
18
|
var _apperance = require("../../config/apperance");
|
|
23
|
-
var _PuiCheckbox = _interopRequireDefault(require("../inputs/PuiCheckbox"));
|
|
24
|
-
var _PuiIcon = _interopRequireDefault(require("../others/PuiIcon"));
|
|
25
19
|
var _PuiTooltip = _interopRequireDefault(require("../others/PuiTooltip"));
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
var _system = require("@mui/system");
|
|
20
|
+
var _antd = require("antd");
|
|
21
|
+
var _icons = require("@ant-design/icons");
|
|
29
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
30
|
-
const _excluded = ["id", "className", "sx", "elevate", "rows", "rowCount", "columns", "paginationMode", "page", "pageSize", "checkboxSelection", "loading", "stripped", "actions", "oneActionOnly", "onSelect", "onPageChange", "onPageSizeChange", "
|
|
23
|
+
const _excluded = ["id", "className", "sx", "elevate", "rows", "rowCount", "columns", "paginationMode", "page", "pageSize", "checkboxSelection", "loading", "stripped", "actions", "oneActionOnly", "onSelect", "onPageChange", "onPageSizeChange", "stickyColumns", "pinnedColumns"]; // Styles personnalisés pour le tableau
|
|
31
24
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
32
25
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
33
26
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
34
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
35
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
36
27
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
37
28
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
38
29
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
39
30
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
40
31
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
},
|
|
56
|
-
"&.elevate": {
|
|
57
|
-
boxShadow: "0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%)"
|
|
58
|
-
},
|
|
59
|
-
backgroundColor: _apperance.palette.gray.light,
|
|
60
|
-
border: "2px solid ".concat(_apperance.palette.gray.dark),
|
|
61
|
-
"& .MuiPaginationItem-root": {
|
|
62
|
-
"&.Mui-selected": {
|
|
63
|
-
color: _apperance.palette.white,
|
|
64
|
-
backgroundColor: _apperance.palette.primary
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
"&.table-loading .MuiDataGrid-virtualScroller, &.table-loading .MuiDataGrid-footerContainer": {
|
|
68
|
-
filter: "blur(1px)",
|
|
69
|
-
"&::before": {
|
|
70
|
-
content: "''",
|
|
71
|
-
width: "100%",
|
|
72
|
-
height: "100%",
|
|
73
|
-
backgroundColor: _apperance.palette.white,
|
|
74
|
-
position: "absolute",
|
|
75
|
-
zIndex: 1,
|
|
76
|
-
display: "block",
|
|
77
|
-
opacity: 0
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
"&.table-stripped .MuiDataGrid-row": {
|
|
81
|
-
"&:nth-of-type(even)": {
|
|
82
|
-
backgroundColor: _apperance.palette.gray.light
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
"& .MuiLinearProgress-root": {
|
|
86
|
-
zIndex: 1,
|
|
87
|
-
backgroundColor: _apperance.palette.info,
|
|
88
|
-
"& .MuiLinearProgress-bar": {
|
|
89
|
-
backgroundColor: _apperance.palette.primary
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
"& .MuiDataGrid-columnHeaders": {
|
|
93
|
-
"& .MuiDataGrid-columnHeader": {
|
|
94
|
-
"& .MuiDataGrid-columnHeaderTitle": {
|
|
95
|
-
display: "flex",
|
|
96
|
-
alignItems: "center",
|
|
97
|
-
fontWeight: "600",
|
|
98
|
-
color: _apperance.palette.primary,
|
|
99
|
-
whiteSpace: "normal",
|
|
100
|
-
lineHeight: "1.2em"
|
|
101
|
-
},
|
|
102
|
-
"&:focus-within": {
|
|
103
|
-
outline: "none"
|
|
104
|
-
},
|
|
105
|
-
"&:last-of-type .MuiDataGrid-columnSeparator": {
|
|
106
|
-
display: "none"
|
|
107
|
-
},
|
|
108
|
-
// Colonne sticky - styles améliorés
|
|
109
|
-
"&.sticky-column": {
|
|
110
|
-
position: "sticky",
|
|
111
|
-
zIndex: 3,
|
|
112
|
-
// Valeur supérieure pour s'assurer qu'elle reste au-dessus lors du défilement
|
|
113
|
-
"&.sticky-column-left": {
|
|
114
|
-
left: 0
|
|
115
|
-
},
|
|
116
|
-
"&.sticky-column-right": {
|
|
117
|
-
right: 0
|
|
118
|
-
},
|
|
119
|
-
// S'assurer que le contenu est visible
|
|
120
|
-
"& .MuiDataGrid-columnHeaderTitleContainer": {
|
|
121
|
-
visibility: "visible",
|
|
122
|
-
overflow: "visible"
|
|
123
|
-
},
|
|
124
|
-
"& .MuiDataGrid-columnHeaderTitle": {
|
|
125
|
-
visibility: "visible",
|
|
126
|
-
overflow: "visible"
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
},
|
|
130
|
-
"& .MuiDataGrid-columnSeparator": {
|
|
131
|
-
color: _apperance.palette.gray.dark
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
"& .MuiDataGrid-cell": {
|
|
135
|
-
paddingTop: "2px",
|
|
136
|
-
paddingBottom: "2px",
|
|
137
|
-
whiteSpace: "normal",
|
|
138
|
-
textOverflow: "ellipsis",
|
|
139
|
-
overflow: "hidden",
|
|
140
|
-
maxHeight: "none",
|
|
141
|
-
minWidth: 'maxWidth',
|
|
142
|
-
wordBreak: "break-word",
|
|
143
|
-
"&.tableAction": {
|
|
144
|
-
justifyContent: "center",
|
|
145
|
-
position: "relative",
|
|
146
|
-
overflow: "initial !important"
|
|
147
|
-
},
|
|
148
|
-
"&:focus-within": {
|
|
149
|
-
outline: "none"
|
|
150
|
-
},
|
|
151
|
-
// Cellules sticky - styles améliorés
|
|
152
|
-
"&.sticky-column": {
|
|
153
|
-
position: "sticky",
|
|
154
|
-
zIndex: 2,
|
|
155
|
-
"&.sticky-column-left": {
|
|
156
|
-
left: 0
|
|
157
|
-
},
|
|
158
|
-
"&.sticky-column-right": {
|
|
159
|
-
right: 0
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
},
|
|
163
|
-
"& .MuiDataGrid-row": {
|
|
164
|
-
maxHeight: "none !important",
|
|
165
|
-
"&:nth-of-type(odd)": {
|
|
166
|
-
backgroundColor: "#ffffff" // color for odd rows
|
|
167
|
-
},
|
|
168
|
-
"&:nth-of-type(even)": {
|
|
169
|
-
backgroundColor: "#F6F9FF" // color for even rows
|
|
170
|
-
},
|
|
171
|
-
"&:hover": {
|
|
172
|
-
backgroundColor: "#95C7FC"
|
|
173
|
-
}
|
|
174
|
-
},
|
|
175
|
-
"& .MuiDataGrid-virtualScrollerContent": {
|
|
176
|
-
"& .MuiDataGrid-row": {
|
|
177
|
-
maxHeight: "none !important"
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
"& .MuiDataGrid-virtualScroller": {
|
|
181
|
-
backgroundColor: _apperance.palette.white
|
|
182
|
-
},
|
|
183
|
-
"& .MuiDataGrid-footerContainer": {
|
|
184
|
-
backgroundColor: _apperance.palette.white,
|
|
185
|
-
height: "28px",
|
|
186
|
-
minHeight: "28px"
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
};
|
|
190
|
-
});
|
|
191
|
-
const localeText = {
|
|
192
|
-
noRowsLabel: "Aucune ligne",
|
|
193
|
-
footerRowSelected: count => count !== 1 ? "".concat(count.toLocaleString(), " lignes s\xE9lectionn\xE9es") : "".concat(count.toLocaleString(), " ligne s\xE9lectionn\xE9e"),
|
|
194
|
-
footerTotalVisibleRows: (visibleCount, totalCount) => "".concat(visibleCount.toLocaleString(), " de ").concat(totalCount.toLocaleString()),
|
|
195
|
-
MuiTablePagination: {
|
|
196
|
-
labelDisplayedRows: _ref => {
|
|
197
|
-
let {
|
|
198
|
-
from,
|
|
199
|
-
to,
|
|
200
|
-
count
|
|
201
|
-
} = _ref;
|
|
202
|
-
return "".concat(from, "\u2013").concat(to, " de ").concat(count !== -1 ? count : "plus que ".concat(to));
|
|
203
|
-
},
|
|
204
|
-
labelRowsPerPage: "Lignes par page"
|
|
32
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
33
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
34
|
+
const tableCustomStyles = "\n /* Styles g\xE9n\xE9raux am\xE9lior\xE9s */\n .pui-table {\n border-radius: 10px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n }\n \n .pui-table .ant-table {\n border-radius: 8px;\n }\n \n .pui-table .ant-table-thead > tr > th {\n background-color: #f7f9fc;\n color: #1f2937;\n font-weight: 600;\n padding: 12px 16px;\n border-bottom: 2px solid #e5e7eb;\n transition: background-color 0.2s;\n }\n \n .pui-table .ant-table-thead > tr > th:hover {\n background-color: #eef2ff;\n }\n \n .pui-table .ant-table-tbody > tr > td {\n padding: 12px 16px;\n transition: all 0.2s ease;\n }\n \n /* Couleurs altern\xE9es plus contrast\xE9es */\n .pui-table .ant-table-tbody > tr.ant-table-row-light > td {\n background-color: #ffffff;\n }\n \n .pui-table .ant-table-tbody > tr.ant-table-row-dark > td {\n background-color: #f4f6f8;\n }\n \n /* Effet de survol doux */\n .pui-table .ant-table-tbody > tr:hover > td {\n background-color: rgba(24, 144, 255, 0.1) !important;\n transition: background-color 0.3s ease;\n }\n \n /* Indicateur visuel sans d\xE9placement */\n .pui-table .ant-table-tbody > tr {\n position: relative;\n }\n \n .pui-table .ant-table-tbody > tr:hover {\n box-shadow: inset 0 0 0 1px rgba(24, 144, 255, 0.3);\n }\n \n .pui-table .ant-table-tbody > tr > td:first-child {\n position: relative;\n }\n \n .pui-table .ant-table-tbody > tr:hover > td:first-child::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n width: 3px;\n background-color: #1890ff;\n animation: pulse 1.5s infinite;\n }\n \n /* Styles des lignes s\xE9lectionn\xE9es */\n .pui-table .ant-table-tbody > tr.ant-table-row-selected > td {\n background-color: rgba(24, 144, 255, 0.05);\n border-left: none !important;\n }\n \n .pui-table .ant-table-tbody > tr.ant-table-row-selected > td:first-child {\n position: relative;\n }\n \n /* Indicateur anim\xE9 discret pour lignes s\xE9lectionn\xE9es */\n .pui-table .ant-table-tbody > tr.ant-table-row-selected > td:first-child::after {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n width: 3px;\n background-color: rgba(24, 144, 255, 0.7);\n animation: pulse 2s infinite;\n }\n \n .pui-table .ant-table-tbody > tr.ant-table-row-selected:hover > td {\n background-color: rgba(24, 144, 255, 0.15) !important;\n }\n \n /* Styles des lignes en \xE9dition */\n .pui-table .ant-table-tbody > tr.ant-table-row-editing {\n background-color: rgba(24, 144, 255, 0.1) !important;\n }\n \n .pui-table .ant-table-tbody > tr.ant-table-row-editing > td {\n border-bottom: 1px solid #1890ff !important;\n border-top: 1px solid #1890ff !important;\n }\n \n .pui-table .ant-table-tbody > tr:first-child.ant-table-row-editing > td {\n border-top: 2px solid #1890ff !important;\n }\n \n .pui-table .ant-table-tbody > tr:last-child.ant-table-row-editing > td {\n border-bottom: 2px solid #1890ff !important;\n }\n \n /* Animation pour l'indicateur de ligne */\n @keyframes pulse {\n 0% { opacity: 0.5; }\n 50% { opacity: 1; }\n 100% { opacity: 0.5; }\n }\n \n /* Pagination ergonomique */\n .pui-table-pagination {\n padding: 14px 24px;\n gap: 16px;\n }\n \n .pui-table-pagination .ant-pagination-item,\n .pui-table-pagination .ant-pagination-prev button,\n .pui-table-pagination .ant-pagination-next button {\n height: 36px;\n min-width: 36px;\n }\n \n .pui-table-pagination .ant-pagination-item {\n border-radius: 6px;\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n border: 1px solid #e2e8f0;\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n \n .pui-table-pagination .ant-pagination-item a {\n padding: 0 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n }\n \n .pui-table-pagination .ant-pagination-prev,\n .pui-table-pagination .ant-pagination-next {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n \n .pui-table-pagination .ant-pagination-item:hover,\n .pui-table-pagination .ant-pagination-prev:hover button,\n .pui-table-pagination .ant-pagination-next:hover button {\n transform: translateY(-2px);\n box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12);\n border-color: #bfdbfe;\n color: #1890ff;\n z-index: 2;\n }\n \n .pui-table-pagination .ant-pagination-item-active {\n background: linear-gradient(135deg, #1890ff, #0050b3);\n border-color: transparent !important;\n font-weight: 600;\n position: relative;\n z-index: 1;\n }\n \n .pui-table-pagination .ant-pagination-item-active::after {\n content: '';\n position: absolute;\n inset: -1px;\n background: linear-gradient(135deg, #40a9ff, #1890ff);\n border-radius: 7px;\n z-index: -1;\n opacity: 0;\n transition: opacity 0.3s;\n }\n \n .pui-table-pagination .ant-pagination-item-active:hover::after {\n opacity: 1;\n }\n \n .pui-table-pagination .ant-pagination-item-active a {\n color: white !important;\n font-weight: 600;\n text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);\n }\n \n .pui-table-pagination .ant-pagination-options {\n margin-left: 16px;\n display: flex;\n align-items: center;\n gap: 12px;\n }\n \n .pui-table-pagination .ant-select-selector {\n border-radius: 6px !important;\n height: 32px !important;\n padding: 0 8px !important;\n border-color: #e2e8f0 !important;\n transition: all 0.2s !important;\n }\n \n .pui-table-pagination .ant-select:hover .ant-select-selector {\n border-color: #bfdbfe !important;\n }\n \n .pui-table-pagination .ant-select-focused .ant-select-selector {\n border-color: #1890ff !important;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2) !important;\n }\n \n .pui-table-pagination .ant-select-selection-item {\n line-height: 30px !important;\n font-weight: 500;\n }\n \n .pui-table-pagination .ant-pagination-options-quick-jumper {\n margin-left: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n color: #4b5563;\n }\n \n .pui-table-pagination .ant-pagination-options-quick-jumper input {\n border-radius: 6px;\n transition: all 0.2s;\n height: 32px;\n border-color: #e2e8f0;\n width: 50px;\n padding: 4px 8px;\n text-align: center;\n }\n \n .pui-table-pagination .ant-pagination-options-quick-jumper input:hover {\n border-color: #bfdbfe;\n }\n \n .pui-table-pagination .ant-pagination-options-quick-jumper input:focus {\n border-color: #1890ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n }\n \n .pui-table-total-items {\n color: #4b5563;\n font-size: 14px;\n font-weight: 500;\n background-color: rgba(255, 255, 255, 0.7);\n padding: 6px 12px;\n border-radius: 6px;\n border: 1px solid #e2e8f0;\n display: flex;\n align-items: center;\n gap: 4px;\n }\n \n .pui-table-total-items strong {\n color: #1f2937;\n background-color: #f1f5f9;\n padding: 1px 6px;\n border-radius: 4px;\n font-weight: 600;\n min-width: 40px;\n text-align: center;\n }\n \n @media (max-width: 640px) {\n .pui-table-pagination {\n flex-direction: column;\n align-items: flex-start;\n }\n \n .pui-table-pagination .ant-pagination {\n width: 100%;\n justify-content: center;\n }\n \n .pui-table-total-items {\n align-self: center;\n }\n }\n";
|
|
35
|
+
|
|
36
|
+
// Injection des styles dans le document
|
|
37
|
+
const injectStyles = () => {
|
|
38
|
+
const styleId = 'pui-table-custom-styles';
|
|
39
|
+
|
|
40
|
+
// Vérifie si les styles existent déjà
|
|
41
|
+
if (!document.getElementById(styleId)) {
|
|
42
|
+
const styleElement = document.createElement('style');
|
|
43
|
+
styleElement.id = styleId;
|
|
44
|
+
styleElement.innerHTML = tableCustomStyles;
|
|
45
|
+
document.head.appendChild(styleElement);
|
|
205
46
|
}
|
|
206
47
|
};
|
|
207
|
-
|
|
48
|
+
|
|
49
|
+
// Suppression des styles lors du démontage
|
|
50
|
+
const removeStyles = () => {
|
|
51
|
+
const styleElement = document.getElementById('pui-table-custom-styles');
|
|
52
|
+
if (styleElement) {
|
|
53
|
+
document.head.removeChild(styleElement);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
// Composant pour les actions du tableau
|
|
58
|
+
const TableActions = _ref => {
|
|
208
59
|
let {
|
|
209
60
|
row,
|
|
210
61
|
actions
|
|
211
|
-
} =
|
|
62
|
+
} = _ref;
|
|
212
63
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
213
|
-
const
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
closeHandler();
|
|
64
|
+
const handleActionClick = action => {
|
|
65
|
+
if (typeof action === 'function') {
|
|
66
|
+
action(row);
|
|
217
67
|
}
|
|
218
|
-
if (!Boolean(actionsRef.current)) {
|
|
219
|
-
document.removeEventListener("mouseup", outsideClickHandler, false);
|
|
220
|
-
}
|
|
221
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
222
|
-
}, []);
|
|
223
|
-
const openHandler = () => {
|
|
224
|
-
document.addEventListener("mouseup", outsideClickHandler, false);
|
|
225
|
-
setIsOpen(true);
|
|
226
|
-
};
|
|
227
|
-
const closeHandler = () => {
|
|
228
|
-
document.removeEventListener("mouseup", outsideClickHandler, false);
|
|
229
|
-
setIsOpen(false);
|
|
230
68
|
};
|
|
231
|
-
|
|
232
|
-
return () => {
|
|
233
|
-
document.removeEventListener("mouseup", outsideClickHandler, false);
|
|
234
|
-
};
|
|
235
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
236
|
-
}, []);
|
|
237
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
238
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiTableAction.default, {
|
|
239
|
-
title: "Voir plus",
|
|
240
|
-
color: "primary",
|
|
241
|
-
onClick: openHandler,
|
|
242
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiIcon.default, {
|
|
243
|
-
type: "voir-plus"
|
|
244
|
-
})
|
|
245
|
-
}), Boolean(isOpen) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Paper, {
|
|
246
|
-
ref: actionsRef,
|
|
247
|
-
elevation: 1,
|
|
248
|
-
sx: {
|
|
249
|
-
borderRadius: "5px",
|
|
250
|
-
position: "absolute",
|
|
251
|
-
right: "0",
|
|
252
|
-
top: "50%",
|
|
253
|
-
transform: "translate(0, -50%)",
|
|
254
|
-
display: "flex",
|
|
255
|
-
alignItems: "center",
|
|
256
|
-
gap: "8px",
|
|
257
|
-
paddingX: "11px",
|
|
258
|
-
height: "calc(100% - 4px)",
|
|
259
|
-
backgroundColor: _apperance.palette.gray.light,
|
|
260
|
-
border: "2px solid ".concat(_apperance.palette.gray.dark)
|
|
261
|
-
},
|
|
262
|
-
children: [actions.map((action, index) => /*#__PURE__*/React.cloneElement(action, {
|
|
263
|
-
row,
|
|
264
|
-
key: index
|
|
265
|
-
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiTableAction.default, {
|
|
266
|
-
size: "small",
|
|
267
|
-
title: "Fermer",
|
|
268
|
-
color: "primary",
|
|
269
|
-
onClick: closeHandler,
|
|
270
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiIcon.default, {
|
|
271
|
-
type: "voir-plus"
|
|
272
|
-
})
|
|
273
|
-
})]
|
|
274
|
-
})]
|
|
275
|
-
});
|
|
276
|
-
};
|
|
277
|
-
const TablePagination = () => {
|
|
278
|
-
const apiRef = (0, _xDataGrid.useGridApiContext)();
|
|
279
|
-
const page = (0, _xDataGrid.useGridSelector)(apiRef, _xDataGrid.gridPageSelector);
|
|
280
|
-
const pageCount = (0, _xDataGrid.useGridSelector)(apiRef, _xDataGrid.gridPageCountSelector);
|
|
281
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Pagination, {
|
|
69
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Space, {
|
|
282
70
|
size: "small",
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
}
|
|
293
|
-
},
|
|
294
|
-
count: pageCount,
|
|
295
|
-
page: page + 1,
|
|
296
|
-
onChange: (event, value) => apiRef.current.setPage(value - 1),
|
|
297
|
-
showFirstButton: true,
|
|
298
|
-
showLastButton: true
|
|
71
|
+
children: actions.map((action, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Tooltip, {
|
|
72
|
+
title: action.title || '',
|
|
73
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Button, {
|
|
74
|
+
type: "text",
|
|
75
|
+
icon: action.icon,
|
|
76
|
+
size: "small",
|
|
77
|
+
onClick: () => handleActionClick(action.action)
|
|
78
|
+
})
|
|
79
|
+
}, index))
|
|
299
80
|
});
|
|
300
81
|
};
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
})
|
|
82
|
+
|
|
83
|
+
// Personnalisation des éléments vides
|
|
84
|
+
const customRenderEmpty = () => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
85
|
+
style: {
|
|
86
|
+
textAlign: 'center',
|
|
87
|
+
padding: '20px 0'
|
|
88
|
+
},
|
|
89
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
90
|
+
children: "Aucune donn\xE9e \xE0 afficher"
|
|
91
|
+
})
|
|
311
92
|
});
|
|
312
|
-
const autosizeOptions = {
|
|
313
|
-
includeHeaders: true,
|
|
314
|
-
includeOutliers: true
|
|
315
|
-
};
|
|
316
93
|
|
|
317
|
-
//
|
|
318
|
-
const
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
94
|
+
// Convertir les colonnes du format DataGrid au format Ant Design
|
|
95
|
+
const convertColumns = (columns, actions, handleSort) => {
|
|
96
|
+
const processedColumns = columns.map(column => {
|
|
97
|
+
const antColumn = {
|
|
98
|
+
title: column.headerName,
|
|
99
|
+
dataIndex: column.field,
|
|
100
|
+
key: column.field,
|
|
101
|
+
width: column.width,
|
|
102
|
+
sorter: column.sortable !== false,
|
|
103
|
+
ellipsis: true,
|
|
104
|
+
className: column.cellClassName
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
// Gestion du rendu personnalisé
|
|
108
|
+
if (column.renderCell) {
|
|
109
|
+
antColumn.render = (text, record) => column.renderCell({
|
|
110
|
+
row: record,
|
|
111
|
+
value: text
|
|
112
|
+
});
|
|
113
|
+
} else if (column.valueGetter) {
|
|
114
|
+
antColumn.render = (text, record) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Tooltip, {
|
|
115
|
+
title: column.titleGetter ? column.titleGetter(record) : String(column.valueGetter({
|
|
116
|
+
row: record
|
|
117
|
+
})),
|
|
118
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
119
|
+
children: column.valueGetter({
|
|
120
|
+
row: record
|
|
121
|
+
})
|
|
122
|
+
})
|
|
123
|
+
});
|
|
124
|
+
} else if (column.field) {
|
|
125
|
+
antColumn.render = (text, record) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Tooltip, {
|
|
126
|
+
title: column.titleGetter ? column.titleGetter(record) : String(record[column.field] || ''),
|
|
127
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
128
|
+
children: record[column.field]
|
|
129
|
+
})
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
return antColumn;
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
// Ajouter la colonne d'actions si nécessaire
|
|
136
|
+
if (actions && actions.length > 0) {
|
|
137
|
+
processedColumns.push({
|
|
138
|
+
title: 'Actions',
|
|
139
|
+
key: 'action',
|
|
140
|
+
width: 100,
|
|
141
|
+
align: 'center',
|
|
142
|
+
render: (_, record) => /*#__PURE__*/(0, _jsxRuntime.jsx)(TableActions, {
|
|
143
|
+
row: record,
|
|
144
|
+
actions: actions
|
|
145
|
+
})
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
return processedColumns;
|
|
323
149
|
};
|
|
324
|
-
|
|
150
|
+
|
|
151
|
+
// Composant principal PuiTable avec Ant Design
|
|
152
|
+
const PuiTable = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
|
|
325
153
|
let {
|
|
326
154
|
id,
|
|
327
155
|
className,
|
|
@@ -341,207 +169,113 @@ const PuiTable = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
|
|
|
341
169
|
onSelect,
|
|
342
170
|
onPageChange,
|
|
343
171
|
onPageSizeChange,
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
} =
|
|
347
|
-
rest = _objectWithoutProperties(
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
// Calcule les positions sticky pour les colonnes figées - logique améliorée
|
|
351
|
-
const calculateStickyPositions = columns => {
|
|
352
|
-
let leftOffset = 0;
|
|
353
|
-
|
|
354
|
-
// Trier les colonnes sticky par ordre d'apparition dans le tableau stickyColumns
|
|
355
|
-
const sortedColumns = [...columns].sort((a, b) => {
|
|
356
|
-
const aOrder = calculateStickyOrder(a.field, stickyColumns);
|
|
357
|
-
const bOrder = calculateStickyOrder(b.field, stickyColumns);
|
|
358
|
-
if (aOrder === 0 && bOrder === 0) return 0;
|
|
359
|
-
if (aOrder === 0) return 1;
|
|
360
|
-
if (bOrder === 0) return -1;
|
|
361
|
-
return aOrder - bOrder;
|
|
362
|
-
});
|
|
363
|
-
|
|
364
|
-
// Pour chaque colonne, calculer sa position sticky si nécessaire
|
|
365
|
-
return sortedColumns.map(column => {
|
|
366
|
-
// Si la colonne n'est pas figée, retournez-la telle quelle
|
|
367
|
-
if (!stickyColumns.includes(column.field)) {
|
|
368
|
-
return column;
|
|
369
|
-
}
|
|
172
|
+
stickyColumns = [],
|
|
173
|
+
pinnedColumns
|
|
174
|
+
} = _ref2,
|
|
175
|
+
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
176
|
+
// Convertir les colonnes au format Ant Design
|
|
177
|
+
const antColumns = React.useMemo(() => convertColumns(columns, actions), [columns, actions]);
|
|
370
178
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
179
|
+
// Gérer la sélection
|
|
180
|
+
const [selectedRowKeys, setSelectedRowKeys] = React.useState([]);
|
|
181
|
+
const onSelectChange = newSelectedRowKeys => {
|
|
182
|
+
setSelectedRowKeys(newSelectedRowKeys);
|
|
183
|
+
if (onSelect) {
|
|
184
|
+
onSelect(newSelectedRowKeys);
|
|
185
|
+
}
|
|
186
|
+
};
|
|
374
187
|
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
// Appliquer un léger effet d'ombre pour indiquer la position sticky
|
|
381
|
-
boxShadow: '2px 0 4px -2px rgba(0, 0, 0, 0.15)'
|
|
382
|
-
});
|
|
383
|
-
const cellStyle = _objectSpread(_objectSpread({}, column.cellStyle || {}), {}, {
|
|
384
|
-
left: "".concat(leftOffset, "px"),
|
|
385
|
-
// Assurer que le fond correspond à celui de la ligne
|
|
386
|
-
backgroundColor: 'inherit',
|
|
387
|
-
// Appliquer un léger effet d'ombre pour indiquer la position sticky
|
|
388
|
-
boxShadow: '2px 0 4px -2px rgba(0, 0, 0, 0.15)'
|
|
389
|
-
});
|
|
188
|
+
// Configuration des lignes sélectionnables
|
|
189
|
+
const rowSelection = checkboxSelection ? {
|
|
190
|
+
selectedRowKeys,
|
|
191
|
+
onChange: onSelectChange
|
|
192
|
+
} : undefined;
|
|
390
193
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
}
|
|
194
|
+
// Gérer le changement de page
|
|
195
|
+
const handlePageChange = (newPage, newPageSize) => {
|
|
196
|
+
if (onPageChange) {
|
|
197
|
+
// Ant Design utilise une pagination 1-indexed, mais nous gardons notre convention 0-indexed
|
|
198
|
+
onPageChange(newPage - 1);
|
|
199
|
+
}
|
|
200
|
+
if (onPageSizeChange && pageSize !== newPageSize) {
|
|
201
|
+
onPageSizeChange(newPageSize);
|
|
202
|
+
}
|
|
400
203
|
};
|
|
401
|
-
React.useEffect(() => {
|
|
402
|
-
// Assurez-vous que les colonnes d'action sont ajoutées après le calcul des positions sticky
|
|
403
|
-
let columnsToProcess = columns;
|
|
404
204
|
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
sortable: false,
|
|
413
|
-
filterable: false,
|
|
414
|
-
width: 100,
|
|
415
|
-
renderCell: _ref4 => {
|
|
416
|
-
let {
|
|
417
|
-
row
|
|
418
|
-
} = _ref4;
|
|
419
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_system.Box, {
|
|
420
|
-
sx: {
|
|
421
|
-
display: 'flex',
|
|
422
|
-
gap: '8px',
|
|
423
|
-
flexWrap: 'wrap',
|
|
424
|
-
justifyContent: 'center',
|
|
425
|
-
alignItems: 'center',
|
|
426
|
-
minWidth: 0
|
|
427
|
-
},
|
|
428
|
-
children: actions.map((action, index) => /*#__PURE__*/React.cloneElement(action, {
|
|
429
|
-
row,
|
|
430
|
-
key: index,
|
|
431
|
-
sx: _objectSpread(_objectSpread({}, action.props.sx), {}, {
|
|
432
|
-
marginRight: 0,
|
|
433
|
-
'&:last-child': {
|
|
434
|
-
marginRight: 0
|
|
435
|
-
}
|
|
436
|
-
})
|
|
437
|
-
}))
|
|
438
|
-
});
|
|
439
|
-
},
|
|
440
|
-
cellClassName: "tableAction",
|
|
441
|
-
headerClassName: "tableActionColumn"
|
|
442
|
-
}] : columnsWithSticky;
|
|
443
|
-
setAppColumns(finalColumns.map(column => {
|
|
444
|
-
const renderCell = Boolean(column.renderCell) ? column.renderCell : Boolean(column.valueGetter) ? columnData => /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiTooltip.default, {
|
|
445
|
-
title: Boolean(column.titleGetter) ? column.titleGetter(columnData.row) : String(column.valueGetter(columnData)),
|
|
446
|
-
children: column.valueGetter(columnData)
|
|
447
|
-
}) : Boolean(column.field) ? _ref5 => {
|
|
448
|
-
let {
|
|
449
|
-
row
|
|
450
|
-
} = _ref5;
|
|
451
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiTooltip.default, {
|
|
452
|
-
title: Boolean(column.titleGetter) ? column.titleGetter(row) : String(row[column.field]),
|
|
453
|
-
children: row[column.field]
|
|
205
|
+
// Configurer les colonnes sticky
|
|
206
|
+
const configuredColumns = React.useMemo(() => {
|
|
207
|
+
if (!stickyColumns || stickyColumns.length === 0) return antColumns;
|
|
208
|
+
return antColumns.map(column => {
|
|
209
|
+
if (stickyColumns.includes(column.dataIndex) || stickyColumns.includes(column.key)) {
|
|
210
|
+
return _objectSpread(_objectSpread({}, column), {}, {
|
|
211
|
+
fixed: 'left'
|
|
454
212
|
});
|
|
455
|
-
}
|
|
456
|
-
return
|
|
457
|
-
renderCell
|
|
458
|
-
});
|
|
459
|
-
}));
|
|
460
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
461
|
-
}, [actions, columns, stickyColumns]);
|
|
462
|
-
const renderRowDetailPanel = params => {
|
|
463
|
-
const {
|
|
464
|
-
data
|
|
465
|
-
} = params;
|
|
466
|
-
// Render the passed rowDetailPanel component with the row data
|
|
467
|
-
return /*#__PURE__*/React.cloneElement(rowDetailPanel, {
|
|
468
|
-
rowData: data
|
|
213
|
+
}
|
|
214
|
+
return column;
|
|
469
215
|
});
|
|
470
|
-
};
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
},
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
width: '100%',
|
|
504
|
-
overflow: 'visible'
|
|
505
|
-
},
|
|
506
|
-
'& .MuiDataGrid-virtualScroller': {
|
|
507
|
-
overflow: 'visible'
|
|
508
|
-
},
|
|
509
|
-
'& .MuiDataGrid-virtualScrollerRenderZone': {
|
|
510
|
-
width: '100%'
|
|
511
|
-
},
|
|
512
|
-
'& .MuiDataGrid-virtualScrollerContent': {
|
|
513
|
-
width: '100% !important' // Empêcher le contenu de dépasser la largeur
|
|
216
|
+
}, [antColumns, stickyColumns]);
|
|
217
|
+
|
|
218
|
+
// Style du tableau
|
|
219
|
+
const tableStyle = _objectSpread(_objectSpread({
|
|
220
|
+
fontSize: '0.85em'
|
|
221
|
+
}, elevate ? {
|
|
222
|
+
boxShadow: '0 2px 8px rgba(0,0,0,0.07)'
|
|
223
|
+
} : {}), sx || {});
|
|
224
|
+
|
|
225
|
+
// Injection des styles CSS personnalisés
|
|
226
|
+
React.useEffect(() => {
|
|
227
|
+
injectStyles();
|
|
228
|
+
return () => removeStyles();
|
|
229
|
+
}, []);
|
|
230
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.ConfigProvider, {
|
|
231
|
+
renderEmpty: customRenderEmpty,
|
|
232
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_antd.Spin, {
|
|
233
|
+
spinning: loading,
|
|
234
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Table, _objectSpread({
|
|
235
|
+
ref: ref,
|
|
236
|
+
id: id,
|
|
237
|
+
className: "pui-table ".concat(className || '', " ").concat(stripped ? 'table-stripped' : ''),
|
|
238
|
+
columns: configuredColumns,
|
|
239
|
+
dataSource: rows.map(row => _objectSpread(_objectSpread({}, row), {}, {
|
|
240
|
+
key: row.id || row.key || Math.random().toString(36).substr(2, 9)
|
|
241
|
+
})),
|
|
242
|
+
pagination: false,
|
|
243
|
+
rowSelection: rowSelection,
|
|
244
|
+
size: "small",
|
|
245
|
+
bordered: true,
|
|
246
|
+
style: tableStyle,
|
|
247
|
+
scroll: {
|
|
248
|
+
x: 'max-content'
|
|
514
249
|
},
|
|
515
|
-
|
|
516
|
-
|
|
250
|
+
rowClassName: (record, index) => {
|
|
251
|
+
let className = index % 2 === 0 ? 'ant-table-row-light' : 'ant-table-row-dark';
|
|
252
|
+
if (record.isEditing) className += ' ant-table-row-editing';
|
|
253
|
+
return className;
|
|
517
254
|
}
|
|
518
|
-
},
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
autosizeOptions: autosizeOptions,
|
|
543
|
-
rowDetailPanel: renderRowDetailPanel
|
|
544
|
-
}, rest))
|
|
255
|
+
}, rest)), paginationMode !== 'none' && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
256
|
+
className: "pui-table-pagination",
|
|
257
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
258
|
+
className: "pui-table-total-items",
|
|
259
|
+
children: ["Total : ", /*#__PURE__*/(0, _jsxRuntime.jsx)("strong", {
|
|
260
|
+
children: rowCount || rows.length
|
|
261
|
+
}), " \xE9l\xE9ments"]
|
|
262
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Pagination, {
|
|
263
|
+
current: page + 1,
|
|
264
|
+
pageSize: pageSize,
|
|
265
|
+
total: rowCount || rows.length,
|
|
266
|
+
onChange: handlePageChange,
|
|
267
|
+
showSizeChanger: true,
|
|
268
|
+
showQuickJumper: true,
|
|
269
|
+
showTotal: total => "".concat(total, " \xE9l\xE9ments"),
|
|
270
|
+
size: "default",
|
|
271
|
+
onShowSizeChange: (current, size) => {
|
|
272
|
+
if (onPageSizeChange) {
|
|
273
|
+
onPageSizeChange(size);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
})]
|
|
277
|
+
})]
|
|
278
|
+
})
|
|
545
279
|
});
|
|
546
280
|
});
|
|
547
281
|
PuiTable.propTypes = {
|
|
@@ -556,24 +290,29 @@ PuiTable.propTypes = {
|
|
|
556
290
|
columns: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
|
|
557
291
|
page: _propTypes.default.number,
|
|
558
292
|
pageSize: _propTypes.default.number,
|
|
559
|
-
actions: _propTypes.default.arrayOf(_propTypes.default.
|
|
293
|
+
actions: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
294
|
+
title: _propTypes.default.string,
|
|
295
|
+
icon: _propTypes.default.element,
|
|
296
|
+
action: _propTypes.default.func.isRequired
|
|
297
|
+
})),
|
|
560
298
|
checkboxSelection: _propTypes.default.bool,
|
|
561
|
-
paginationMode: _propTypes.default.oneOf(["client", "server"]),
|
|
299
|
+
paginationMode: _propTypes.default.oneOf(["client", "server", "none"]),
|
|
562
300
|
loading: _propTypes.default.bool,
|
|
563
301
|
onSelect: _propTypes.default.func,
|
|
564
302
|
onPageChange: _propTypes.default.func,
|
|
565
303
|
onPageSizeChange: _propTypes.default.func,
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
stickyColumns: _propTypes.default.arrayOf(_propTypes.default.string)
|
|
304
|
+
stickyColumns: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
305
|
+
pinnedColumns: _propTypes.default.object
|
|
569
306
|
};
|
|
570
307
|
PuiTable.defaultProps = {
|
|
571
308
|
oneActionOnly: false,
|
|
572
309
|
elevate: true,
|
|
573
310
|
pageSize: 5,
|
|
311
|
+
page: 0,
|
|
574
312
|
paginationMode: "client",
|
|
575
313
|
stripped: false,
|
|
576
314
|
actions: [],
|
|
577
|
-
stickyColumns: []
|
|
315
|
+
stickyColumns: [],
|
|
316
|
+
rows: []
|
|
578
317
|
};
|
|
579
318
|
var _default = exports.default = PuiTable;
|