@portnet/ui 0.1.40 → 1.1.1

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.
@@ -11,7 +11,6 @@ require("core-js/modules/es.array.includes.js");
11
11
  require("core-js/modules/es.string.includes.js");
12
12
  require("core-js/modules/es.symbol.description.js");
13
13
  var _CheckBoxOutlineBlankRounded = _interopRequireDefault(require("@mui/icons-material/CheckBoxOutlineBlankRounded"));
14
- var _CheckBoxRounded = _interopRequireDefault(require("@mui/icons-material/CheckBoxRounded"));
15
14
  var _material = require("@mui/material");
16
15
  var _styles = require("@mui/material/styles");
17
16
  var _formik = require("formik");
@@ -140,7 +139,7 @@ const PuiStandardCheckbox = /*#__PURE__*/React.forwardRef((_ref, ref) => {
140
139
  disabled: disabled,
141
140
  value: value !== null && value !== void 0 ? value : true,
142
141
  icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CheckBoxOutlineBlankRounded.default, {}),
143
- checkedIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CheckBoxRounded.default, {}),
142
+ checkedIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CheckBoxOutlineBlankRounded.default, {}),
144
143
  onChange: onChange
145
144
  }, rest))
146
145
  }), !disableHelperText && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.FormHelperText, {
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.description.js");
4
+ require("core-js/modules/es.weak-map.js");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ require("core-js/modules/web.dom-collections.iterator.js");
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _agGridReact = require("ag-grid-react");
12
+ var _material = require("@mui/material");
13
+ var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ require("ag-grid-community/styles/ag-grid.css");
15
+ require("ag-grid-community/styles/ag-theme-alpine.css");
16
+ var _PuiTooltip = _interopRequireDefault(require("../others/PuiTooltip"));
17
+ var _PuiIcon = _interopRequireDefault(require("../others/PuiIcon"));
18
+ var _ActionPopover = _interopRequireDefault(require("./ActionPopover"));
19
+ var _PuiCheckbox = _interopRequireDefault(require("../inputs/PuiCheckbox"));
20
+ var _apperance = require("../../config/apperance");
21
+ var _jsxRuntime = require("react/jsx-runtime");
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+ 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); }
24
+ 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 && Object.prototype.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; }
25
+ 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; }
26
+ 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; }
27
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
28
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
29
+ 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); }
30
+ const NewPuiTable = _ref => {
31
+ let {
32
+ id,
33
+ className,
34
+ rows,
35
+ columns,
36
+ pageSize,
37
+ checkboxSelection,
38
+ actions,
39
+ rowDetailPanel,
40
+ loading,
41
+ onPageChange,
42
+ onPageSizeChange,
43
+ onRowSelected,
44
+ rowCount,
45
+ stripped
46
+ } = _ref;
47
+ _react.default.useEffect(() => {
48
+ console.log("Rows:", rows);
49
+ console.log("Columns:", columns);
50
+ }, [rows, columns]);
51
+ const gridRef = (0, _react.useRef)();
52
+ const [currentPage, setCurrentPage] = (0, _react.useState)(0);
53
+ const onGridReady = (0, _react.useCallback)(params => {
54
+ gridRef.current = params.api;
55
+ params.api.sizeColumnsToFit();
56
+ }, []);
57
+ const handlePageChange = (event, newPage) => {
58
+ setCurrentPage(newPage - 1);
59
+ if (onPageChange) onPageChange(newPage - 1);
60
+ };
61
+ const handleRowSelection = event => {
62
+ if (onRowSelected) onRowSelected(event.api.getSelectedRows());
63
+ };
64
+ const renderCellWithTooltip = params => /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiTooltip.default, {
65
+ title: params.value || '',
66
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
67
+ children: params.value
68
+ })
69
+ });
70
+ const actionCellRenderer = params => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
71
+ display: "flex",
72
+ justifyContent: "center",
73
+ children: actions.map((action, index) => /*#__PURE__*/_react.default.cloneElement(action, {
74
+ key: index,
75
+ row: params.data
76
+ }))
77
+ });
78
+ const gridColumns = (0, _react.useMemo)(() => {
79
+ return columns.map(col => _objectSpread(_objectSpread({}, col), {}, {
80
+ cellRenderer: col.renderCell ? renderCellWithTooltip : null
81
+ })).concat(actions.length ? {
82
+ headerName: 'Actions',
83
+ field: 'action',
84
+ cellRenderer: actionCellRenderer,
85
+ width: 100
86
+ } : []);
87
+ }, [columns, actions]);
88
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
89
+ id: id,
90
+ className: "ag-theme-alpine ".concat(className, " ").concat(stripped ? 'table-stripped' : ''),
91
+ style: {
92
+ height: '100%',
93
+ width: '100%'
94
+ },
95
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_agGridReact.AgGridReact, {
96
+ ref: gridRef,
97
+ rowData: rows,
98
+ columnDefs: columns,
99
+ pagination: true,
100
+ paginationPageSize: pageSize,
101
+ onGridReady: onGridReady,
102
+ rowSelection: checkboxSelection ? 'multiple' : 'single',
103
+ onRowSelected: handleRowSelection,
104
+ loadingOverlayComponentFramework: () => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
105
+ children: "Loading..."
106
+ }),
107
+ overlayNoRowsTemplate: "<span>Aucune ligne</span>",
108
+ loadingOverlay: loading,
109
+ suppressRowClickSelection: true
110
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Pagination, {
111
+ count: Math.ceil(rowCount / pageSize),
112
+ page: currentPage + 1,
113
+ onChange: handlePageChange,
114
+ sx: {
115
+ '& .MuiPaginationItem-root': {
116
+ color: _apperance.palette.primary
117
+ },
118
+ '& .MuiPaginationItem-root.Mui-selected': {
119
+ backgroundColor: _apperance.palette.primary,
120
+ color: _apperance.palette.white
121
+ }
122
+ }
123
+ })]
124
+ });
125
+ };
126
+ NewPuiTable.propTypes = {
127
+ id: _propTypes.default.string,
128
+ className: _propTypes.default.string,
129
+ rows: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
130
+ columns: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
131
+ pageSize: _propTypes.default.number,
132
+ checkboxSelection: _propTypes.default.bool,
133
+ actions: _propTypes.default.arrayOf(_propTypes.default.element),
134
+ rowDetailPanel: _propTypes.default.element,
135
+ loading: _propTypes.default.bool,
136
+ onPageChange: _propTypes.default.func,
137
+ onPageSizeChange: _propTypes.default.func,
138
+ onRowSelected: _propTypes.default.func,
139
+ rowCount: _propTypes.default.number,
140
+ stripped: _propTypes.default.bool
141
+ };
142
+ NewPuiTable.defaultProps = {
143
+ pageSize: 10,
144
+ checkboxSelection: false,
145
+ actions: [],
146
+ stripped: false
147
+ };
148
+ var _default = exports.default = NewPuiTable;
@@ -18,9 +18,8 @@ var _PuiCheckbox = _interopRequireDefault(require("../inputs/PuiCheckbox"));
18
18
  var _PuiIcon = _interopRequireDefault(require("../others/PuiIcon"));
19
19
  var _PuiTooltip = _interopRequireDefault(require("../others/PuiTooltip"));
20
20
  var _PuiTableAction = _interopRequireDefault(require("./PuiTableAction"));
21
+ var _ActionPopover = _interopRequireDefault(require("./ActionPopover"));
21
22
  var _system = require("@mui/system");
22
- var _KeyboardArrowDown = _interopRequireDefault(require("@mui/icons-material/KeyboardArrowDown"));
23
- var _KeyboardArrowUp = _interopRequireDefault(require("@mui/icons-material/KeyboardArrowUp"));
24
23
  var _jsxRuntime = require("react/jsx-runtime");
25
24
  const _excluded = ["id", "className", "sx", "elevate", "rows", "rowCount", "columns", "paginationMode", "page", "pageSize", "checkboxSelection", "loading", "stripped", "actions", "oneActionOnly", "onSelect", "onPageChange", "onPageSizeChange", "rowDetailPanel"];
26
25
  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,21 +31,251 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
32
31
  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; }
33
32
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
34
33
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
35
- 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); } // Styles for your DataGrid
34
+ 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); }
36
35
  const StyledMuiTable = (0, _styles.styled)( /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_xDataGrid.DataGrid, _objectSpread({
37
36
  ref: ref
38
37
  }, props))))(() => {
39
38
  return {
40
39
  "&.MuiDataGrid-root": {
41
40
  fontSize: ".8em",
41
+ "& .tableActionColumn": {
42
+ "& .MuiDataGrid-columnHeaderTitle": {
43
+ justifyContent: "center",
44
+ display: "flex"
45
+ },
46
+ "& .MuiDataGrid-columnHeaderTitleContainer": {
47
+ justifyContent: "center"
48
+ }
49
+ },
50
+ "&.elevate": {
51
+ 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%)"
52
+ },
42
53
  backgroundColor: _apperance.palette.gray.light,
43
- border: "2px solid ".concat(_apperance.palette.gray.dark)
54
+ border: "2px solid ".concat(_apperance.palette.gray.dark),
55
+ "& .MuiPaginationItem-root": {
56
+ "&.Mui-selected": {
57
+ color: _apperance.palette.white,
58
+ backgroundColor: _apperance.palette.primary
59
+ }
60
+ },
61
+ "&.table-loading .MuiDataGrid-virtualScroller, &.table-loading .MuiDataGrid-footerContainer": {
62
+ filter: "blur(1px)",
63
+ "&::before": {
64
+ content: "''",
65
+ width: "100%",
66
+ height: "100%",
67
+ backgroundColor: _apperance.palette.white,
68
+ position: "absolute",
69
+ zIndex: 1,
70
+ display: "block",
71
+ opacity: 0
72
+ }
73
+ },
74
+ "&.table-stripped .MuiDataGrid-row": {
75
+ "&:nth-of-type(even)": {
76
+ backgroundColor: _apperance.palette.gray.light
77
+ }
78
+ },
79
+ "& .MuiLinearProgress-root": {
80
+ zIndex: 1,
81
+ backgroundColor: _apperance.palette.info,
82
+ "& .MuiLinearProgress-bar": {
83
+ backgroundColor: _apperance.palette.primary
84
+ }
85
+ },
86
+ "& .MuiDataGrid-columnHeaders": {
87
+ "& .MuiDataGrid-columnHeader": {
88
+ "& .MuiDataGrid-columnHeaderTitle": {
89
+ display: "flex",
90
+ alignItems: "center",
91
+ fontWeight: "600",
92
+ color: _apperance.palette.primary,
93
+ whiteSpace: "normal",
94
+ lineHeight: "1.2em"
95
+ },
96
+ "&:focus-within": {
97
+ outline: "none"
98
+ },
99
+ "&:last-of-type .MuiDataGrid-columnSeparator": {
100
+ display: "none"
101
+ }
102
+ },
103
+ "& .MuiDataGrid-columnSeparator": {
104
+ color: _apperance.palette.gray.dark
105
+ }
106
+ },
107
+ "& .MuiDataGrid-cell": {
108
+ paddingTop: "2px",
109
+ paddingBottom: "2px",
110
+ whiteSpace: "normal",
111
+ textOverflow: "ellipsis",
112
+ overflow: "hidden",
113
+ maxHeight: "none",
114
+ minWidth: 'maxWidth',
115
+ wordBreak: "break-word",
116
+ "&.tableAction": {
117
+ justifyContent: "center",
118
+ position: "relative",
119
+ overflow: "initial !important"
120
+ },
121
+ "&:focus-within": {
122
+ outline: "none"
123
+ }
124
+ },
125
+ "& .MuiDataGrid-row": {
126
+ maxHeight: "none !important",
127
+ "&:nth-of-type(odd)": {
128
+ backgroundColor: "#ffffff" // color for odd rows
129
+ },
130
+ "&:nth-of-type(even)": {
131
+ backgroundColor: "#F6F9FF" // color for even rows
132
+ },
133
+ "&:hover": {
134
+ backgroundColor: "#95C7FC"
135
+ }
136
+ },
137
+ "& .MuiDataGrid-virtualScrollerContent": {
138
+ "& .MuiDataGrid-row": {
139
+ maxHeight: "none !important"
140
+ }
141
+ },
142
+ "& .MuiDataGrid-virtualScroller": {
143
+ backgroundColor: _apperance.palette.white
144
+ },
145
+ "& .MuiDataGrid-footerContainer": {
146
+ backgroundColor: _apperance.palette.white,
147
+ height: "28px",
148
+ minHeight: "28px"
149
+ }
44
150
  }
45
151
  };
46
152
  });
47
-
48
- // Define the table component
49
- const PuiTable = /*#__PURE__*/React.forwardRef((_ref, ref) => {
153
+ const localeText = {
154
+ noRowsLabel: "Aucune ligne",
155
+ footerRowSelected: count => count !== 1 ? "".concat(count.toLocaleString(), " lignes s\xE9lectionn\xE9es") : "".concat(count.toLocaleString(), " ligne s\xE9lectionn\xE9e"),
156
+ footerTotalVisibleRows: (visibleCount, totalCount) => "".concat(visibleCount.toLocaleString(), " de ").concat(totalCount.toLocaleString()),
157
+ MuiTablePagination: {
158
+ labelDisplayedRows: _ref => {
159
+ let {
160
+ from,
161
+ to,
162
+ count
163
+ } = _ref;
164
+ return "".concat(from, "\u2013").concat(to, " de ").concat(count !== -1 ? count : "plus que ".concat(to));
165
+ },
166
+ labelRowsPerPage: "Lignes par page"
167
+ }
168
+ };
169
+ const TableActions = _ref2 => {
170
+ let {
171
+ row,
172
+ actions
173
+ } = _ref2;
174
+ const [isOpen, setIsOpen] = React.useState(false);
175
+ const actionsRef = React.useRef();
176
+ const outsideClickHandler = React.useCallback(event => {
177
+ if (Boolean(actionsRef.current) && !actionsRef.current.contains(event.target)) {
178
+ closeHandler();
179
+ }
180
+ if (!Boolean(actionsRef.current)) {
181
+ document.removeEventListener("mouseup", outsideClickHandler, false);
182
+ }
183
+ // eslint-disable-next-line react-hooks/exhaustive-deps
184
+ }, []);
185
+ const openHandler = () => {
186
+ document.addEventListener("mouseup", outsideClickHandler, false);
187
+ setIsOpen(true);
188
+ };
189
+ const closeHandler = () => {
190
+ document.removeEventListener("mouseup", outsideClickHandler, false);
191
+ setIsOpen(false);
192
+ };
193
+ React.useEffect(() => {
194
+ return () => {
195
+ document.removeEventListener("mouseup", outsideClickHandler, false);
196
+ };
197
+ // eslint-disable-next-line react-hooks/exhaustive-deps
198
+ }, []);
199
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
200
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiTableAction.default, {
201
+ title: "Voir plus",
202
+ color: "primary",
203
+ onClick: openHandler,
204
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiIcon.default, {
205
+ type: "voir-plus"
206
+ })
207
+ }), Boolean(isOpen) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Paper, {
208
+ ref: actionsRef,
209
+ elevation: 1,
210
+ sx: {
211
+ borderRadius: "5px",
212
+ position: "absolute",
213
+ right: "0",
214
+ top: "50%",
215
+ transform: "translate(0, -50%)",
216
+ display: "flex",
217
+ alignItems: "center",
218
+ gap: "8px",
219
+ paddingX: "11px",
220
+ height: "calc(100% - 4px)",
221
+ backgroundColor: _apperance.palette.gray.light,
222
+ border: "2px solid ".concat(_apperance.palette.gray.dark)
223
+ },
224
+ children: [actions.map((action, index) => /*#__PURE__*/React.cloneElement(action, {
225
+ row,
226
+ key: index
227
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiTableAction.default, {
228
+ size: "small",
229
+ title: "Fermer",
230
+ color: "primary",
231
+ onClick: closeHandler,
232
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiIcon.default, {
233
+ type: "voir-plus"
234
+ })
235
+ })]
236
+ })]
237
+ });
238
+ };
239
+ const TablePagination = () => {
240
+ const apiRef = (0, _xDataGrid.useGridApiContext)();
241
+ const page = (0, _xDataGrid.useGridSelector)(apiRef, _xDataGrid.gridPageSelector);
242
+ const pageCount = (0, _xDataGrid.useGridSelector)(apiRef, _xDataGrid.gridPageCountSelector);
243
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Pagination, {
244
+ size: "small",
245
+ sx: {
246
+ position: "absolute",
247
+ left: "50%",
248
+ transform: "translateX(-50%)",
249
+ "& .MuiButtonBase-root": {
250
+ lineHeight: "1em",
251
+ fontSize: "1em",
252
+ minWidth: "20px",
253
+ height: "20px"
254
+ }
255
+ },
256
+ count: pageCount,
257
+ page: page + 1,
258
+ onChange: (event, value) => apiRef.current.setPage(value - 1),
259
+ showFirstButton: true,
260
+ showLastButton: true
261
+ });
262
+ };
263
+ const TableCheckbox = /*#__PURE__*/React.forwardRef((props, ref) => {
264
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiCheckbox.default, _objectSpread(_objectSpread({
265
+ ref: ref
266
+ }, props), {}, {
267
+ formik: false,
268
+ sx: {
269
+ transform: "scale(.6)",
270
+ marginTop: "-4px"
271
+ }
272
+ }));
273
+ });
274
+ const autosizeOptions = {
275
+ includeHeaders: true,
276
+ includeOutliers: true
277
+ };
278
+ const PuiTable = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
50
279
  let {
51
280
  id,
52
281
  className,
@@ -67,65 +296,88 @@ const PuiTable = /*#__PURE__*/React.forwardRef((_ref, ref) => {
67
296
  onPageChange,
68
297
  onPageSizeChange,
69
298
  rowDetailPanel
70
- } = _ref,
71
- rest = _objectWithoutProperties(_ref, _excluded);
72
- const [expandedRows, setExpandedRows] = React.useState({});
73
-
74
- // Toggle row expansion
75
- const toggleRowExpansion = rowId => {
76
- setExpandedRows(prev => _objectSpread(_objectSpread({}, prev), {}, {
77
- [rowId]: !prev[rowId]
299
+ } = _ref3,
300
+ rest = _objectWithoutProperties(_ref3, _excluded);
301
+ const [appColumns, setAppColumns] = React.useState(columns);
302
+ React.useEffect(() => {
303
+ const newColumns = Boolean(actions.length) ? [...columns, {
304
+ field: "action",
305
+ headerName: "Actions",
306
+ sortable: false,
307
+ filterable: false,
308
+ width: 100,
309
+ renderCell: _ref4 => {
310
+ let {
311
+ row
312
+ } = _ref4;
313
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_system.Box, {
314
+ sx: {
315
+ display: 'flex',
316
+ gap: '8px',
317
+ // Adjust the space between icons as needed
318
+ flexWrap: 'wrap',
319
+ // Keep icons on the same line; remove if you want them to wrap
320
+ justifyContent: 'center',
321
+ // Center the icons horizontally
322
+ alignItems: 'center',
323
+ // Align icons vertically
324
+ minWidth: 0 // Prevent the flex container from stretching past its content width
325
+ },
326
+ children: actions.map((action, index) => /*#__PURE__*/React.cloneElement(action, {
327
+ row,
328
+ key: index,
329
+ sx: _objectSpread(_objectSpread({}, action.props.sx), {}, {
330
+ marginRight: 0,
331
+ // Remove any outer margins
332
+ '&:last-child': {
333
+ marginRight: 0 // Ensure the last item doesn't push the container width
334
+ }
335
+ })
336
+ }))
337
+ });
338
+ },
339
+ cellClassName: "tableAction",
340
+ headerClassName: "tableActionColumn"
341
+ }] : columns;
342
+ setAppColumns(newColumns.map(column => {
343
+ const renderCell = Boolean(column.renderCell) ? column.renderCell : Boolean(column.valueGetter) ? columnData => /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiTooltip.default, {
344
+ title: Boolean(column.titleGetter) ? column.titleGetter(columnData.row) : String(column.valueGetter(columnData)),
345
+ children: column.valueGetter(columnData)
346
+ }) : Boolean(column.field) ? _ref5 => {
347
+ let {
348
+ row
349
+ } = _ref5;
350
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiTooltip.default, {
351
+ title: Boolean(column.titleGetter) ? column.titleGetter(row) : String(row[column.field]),
352
+ children: row[column.field]
353
+ });
354
+ } : undefined;
355
+ return _objectSpread(_objectSpread({}, column), {}, {
356
+ renderCell
357
+ });
78
358
  }));
79
- };
80
-
81
- // Render the detail panel for expanded rows
82
- const renderRowDetails = row => {
83
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Collapse, {
84
- in: expandedRows[row.id],
85
- timeout: "auto",
86
- unmountOnExit: true,
87
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_system.Box, {
88
- sx: {
89
- padding: 2,
90
- backgroundColor: "#f9f9f9"
91
- },
92
- children: rowDetailPanel && /*#__PURE__*/React.cloneElement(rowDetailPanel, {
93
- rowData: row
94
- })
95
- })
359
+ // eslint-disable-next-line react-hooks/exhaustive-deps
360
+ }, [actions, columns]);
361
+ const renderRowDetailPanel = params => {
362
+ const {
363
+ data
364
+ } = params;
365
+ // Render the passed rowDetailPanel component with the row data
366
+ return /*#__PURE__*/React.cloneElement(rowDetailPanel, {
367
+ rowData: data
96
368
  });
97
369
  };
98
-
99
- // Add an extra column for the expand/collapse button
100
- const appColumns = React.useMemo(() => [{
101
- field: "expand",
102
- headerName: "",
103
- sortable: false,
104
- width: 50,
105
- renderCell: _ref2 => {
106
- let {
107
- row
108
- } = _ref2;
109
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, {
110
- "aria-label": "expand row",
111
- size: "small",
112
- onClick: () => toggleRowExpansion(row.id),
113
- children: expandedRows[row.id] ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyboardArrowUp.default, {}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyboardArrowDown.default, {})
114
- });
115
- }
116
- }, ...columns // Spread the existing columns
117
- ], [columns, expandedRows]);
118
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
370
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
119
371
  style: {
120
- width: "100%"
372
+ width: '100%'
121
373
  },
122
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(StyledMuiTable, _objectSpread({
374
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledMuiTable, _objectSpread({
123
375
  ref: ref,
124
376
  id: id,
125
377
  components: {
126
- BaseCheckbox: _PuiCheckbox.default,
378
+ BaseCheckbox: TableCheckbox,
127
379
  LoadingOverlay: _material.LinearProgress,
128
- Pagination: _material.Pagination
380
+ Pagination: TablePagination
129
381
  },
130
382
  className: "".concat(className, " ").concat(stripped ? "table-stripped" : "", " ").concat(loading ? "table-loading" : "", " ").concat(elevate ? "elevate" : ""),
131
383
  sx: {
@@ -151,28 +403,14 @@ const PuiTable = /*#__PURE__*/React.forwardRef((_ref, ref) => {
151
403
  density: "compact",
152
404
  loading: loading,
153
405
  paginationMode: paginationMode,
154
- localeText: {
155
- noRowsLabel: "Aucune ligne",
156
- footerRowSelected: count => count !== 1 ? "".concat(count.toLocaleString(), " lignes s\xE9lectionn\xE9es") : "".concat(count.toLocaleString(), " ligne s\xE9lectionn\xE9e"),
157
- footerTotalVisibleRows: (visibleCount, totalCount) => "".concat(visibleCount.toLocaleString(), " de ").concat(totalCount.toLocaleString()),
158
- MuiTablePagination: {
159
- labelDisplayedRows: _ref3 => {
160
- let {
161
- from,
162
- to,
163
- count
164
- } = _ref3;
165
- return "".concat(from, "\u2013").concat(to, " de ").concat(count !== -1 ? count : "plus que ".concat(to));
166
- },
167
- labelRowsPerPage: "Lignes par page"
168
- }
169
- },
406
+ localeText: localeText,
407
+ getRowHeight: () => 'auto',
170
408
  onPageChange: onPageChange,
171
409
  onPageSizeChange: onPageSizeChange,
172
- onSelectionModelChange: onSelect
173
- }, rest)), rows.map(row => /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
174
- children: expandedRows[row.id] && renderRowDetails(row)
175
- }, row.id))]
410
+ onSelectionModelChange: onSelect,
411
+ autosizeOptions: autosizeOptions,
412
+ rowDetailPanel: renderRowDetailPanel
413
+ }, rest))
176
414
  });
177
415
  });
178
416
  PuiTable.propTypes = {
@@ -194,6 +432,7 @@ PuiTable.propTypes = {
194
432
  onSelect: _propTypes.default.func,
195
433
  onPageChange: _propTypes.default.func,
196
434
  onPageSizeChange: _propTypes.default.func,
435
+ onSelectionModelChange: _propTypes.default.func,
197
436
  rowDetailPanel: _propTypes.default.element
198
437
  };
199
438
  PuiTable.defaultProps = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@portnet/ui",
3
- "version": "0.1.40",
3
+ "version": "1.1.1",
4
4
  "description": "Portnet UI",
5
5
  "keywords": [
6
6
  "react",
@@ -1,331 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.weak-map.js");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- require("core-js/modules/web.dom-collections.iterator.js");
9
- require("core-js/modules/es.promise.js");
10
- require("core-js/modules/es.array.includes.js");
11
- require("core-js/modules/es.string.includes.js");
12
- require("core-js/modules/es.symbol.description.js");
13
- var _formik = require("formik");
14
- var _propTypes = _interopRequireDefault(require("prop-types"));
15
- var React = _interopRequireWildcard(require("react"));
16
- var _useAxios = _interopRequireDefault(require("../../../hooks/useAxios"));
17
- var _PuiButton = _interopRequireDefault(require("../../buttons/PuiButton"));
18
- var _PuiFormikForm = _interopRequireDefault(require("../../others/PuiFormikForm"));
19
- var _PuiGrid = _interopRequireDefault(require("../../others/PuiGrid"));
20
- var _PuiIcon = _interopRequireDefault(require("../../others/PuiIcon"));
21
- var _specificReferentielsApis = _interopRequireDefault(require("../common/constants/specificReferentielsApis"));
22
- var _specificReferentielsBaseColumns = _interopRequireDefault(require("../common/constants/specificReferentielsBaseColumns"));
23
- var _specificReferentielsBaseFilters = _interopRequireDefault(require("../common/constants/specificReferentielsBaseFilters"));
24
- var _specificReferentielsInitialValues = _interopRequireDefault(require("../common/constants/specificReferentielsInitialValues"));
25
- var _specificReferentielsTitles = _interopRequireDefault(require("../common/constants/specificReferentielsTitles"));
26
- var _specificReferentielsValidationSchemas = _interopRequireDefault(require("../common/constants/specificReferentielsValidationSchemas"));
27
- var _ReferetielContext = _interopRequireDefault(require("../common/ReferetielContext"));
28
- var _PuiBasePopupReferentielField = _interopRequireDefault(require("./PuiBasePopupReferentielField"));
29
- var _jsxRuntime = require("react/jsx-runtime");
30
- 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); }
31
- 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 && Object.prototype.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; }
32
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
- 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; }
34
- 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; }
35
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
36
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
37
- 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); }
38
- const dataFetchingInitalState = {
39
- data: [],
40
- totalElements: 0,
41
- isLoading: false,
42
- isSuccessed: false,
43
- isFailed: false,
44
- error: null,
45
- pageSize: 5,
46
- pageNumber: 0
47
- };
48
- const dataFetchingReducer = (state, _ref) => {
49
- let {
50
- type,
51
- payload
52
- } = _ref;
53
- switch (type) {
54
- case "SET_PAGE":
55
- return _objectSpread(_objectSpread({}, state), {}, {
56
- pageNumber: payload
57
- });
58
- case "GET_DATA":
59
- return _objectSpread(_objectSpread({}, state), {}, {
60
- isSuccessed: false,
61
- isFailed: false,
62
- isLoading: true
63
- });
64
- case "SUCCESSED":
65
- return _objectSpread(_objectSpread({}, state), {}, {
66
- data: payload.data,
67
- totalElements: payload.totalElements,
68
- isSuccessed: true,
69
- isLoading: false
70
- });
71
- case "FAILED":
72
- return _objectSpread(_objectSpread({}, state), {}, {
73
- data: [],
74
- isFailed: true,
75
- isLoading: false,
76
- error: payload
77
- });
78
- default:
79
- break;
80
- }
81
- };
82
- const PuiSpecificReferentielField = _ref2 => {
83
- let {
84
- id,
85
- className,
86
- sx,
87
- title,
88
- label,
89
- searchKey,
90
- specifications,
91
- filters,
92
- filtersProps,
93
- columns,
94
- name,
95
- value,
96
- formik,
97
- error,
98
- disabled,
99
- required,
100
- focused,
101
- fullWidth,
102
- helperText,
103
- tableProps,
104
- getReturnedValue,
105
- getRenderedValue,
106
- onChange,
107
- onError
108
- } = _ref2;
109
- const {
110
- token,
111
- secret,
112
- baseURL
113
- } = React.useContext(_ReferetielContext.default);
114
- const axios = (0, _useAxios.default)(token, secret, baseURL);
115
- const [dataFetchingState, dataFetchingDispatch] = React.useReducer(dataFetchingReducer, dataFetchingInitalState);
116
- const [filtreredFilters, setFiltreredFilters] = React.useState([..._specificReferentielsBaseFilters.default[searchKey]]);
117
- const formRef = React.useRef();
118
- const [isMounted, setIsMounted] = React.useState(false);
119
- const pageChangeHandler = pageNumber => {
120
- dataFetchingDispatch({
121
- type: "SET_PAGE",
122
- payload: pageNumber
123
- });
124
- };
125
- const submitHandler = async values => {
126
- try {
127
- dataFetchingDispatch({
128
- type: "GET_DATA"
129
- });
130
- const {
131
- data
132
- } = await axios.post("/api/".concat(_specificReferentielsApis.default[searchKey], "/getPage"), _objectSpread(_objectSpread({}, specifications), {}, {
133
- pageNumber: dataFetchingState.pageNumber,
134
- pageSize: dataFetchingState.pageSize
135
- }, values));
136
- if (data.succes) {
137
- dataFetchingDispatch({
138
- type: "SUCCESSED",
139
- payload: {
140
- data: data.results,
141
- totalElements: data.totalElements
142
- }
143
- });
144
- } else {
145
- throw new Error(data.message);
146
- }
147
- } catch (error) {
148
- dataFetchingDispatch({
149
- type: "FAILED",
150
- payload: error.message
151
- });
152
- onError(error);
153
- }
154
- };
155
- React.useEffect(() => {
156
- if (isMounted) {
157
- var _formRef$current;
158
- (_formRef$current = formRef.current) === null || _formRef$current === void 0 || _formRef$current.submitForm();
159
- }
160
- // eslint-disable-next-line react-hooks/exhaustive-deps
161
- }, [dataFetchingState.pageNumber]);
162
- React.useEffect(() => {
163
- setFiltreredFilters(_specificReferentielsBaseFilters.default[searchKey].filter(innerFilter => !Boolean(filters) || !Boolean(filters.length) || filters.includes(innerFilter.name)));
164
- // eslint-disable-next-line react-hooks/exhaustive-deps
165
- }, [filters]);
166
- React.useEffect(() => {
167
- setIsMounted(true);
168
- }, []);
169
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiBasePopupReferentielField.default, {
170
- id: id,
171
- className: className,
172
- sx: sx,
173
- name: name,
174
- formik: formik,
175
- loading: dataFetchingState.isLoading,
176
- rowCount: dataFetchingState.totalElements,
177
- rows: dataFetchingState.data,
178
- page: dataFetchingState.pageNumber,
179
- pageSize: dataFetchingState.pageSize,
180
- columns: Array.isArray(columns) && Boolean(columns.length) ? columns : _specificReferentielsBaseColumns.default[searchKey],
181
- focused: focused,
182
- required: required,
183
- disabled: disabled,
184
- fullWidth: fullWidth,
185
- value: value,
186
- readOnly: true,
187
- error: error,
188
- helperText: helperText,
189
- label: label,
190
- title: title !== null && title !== void 0 ? title : _specificReferentielsTitles.default[[searchKey]],
191
- tableProps: tableProps,
192
- getReturnedValue: getReturnedValue,
193
- getRenderedValue: getRenderedValue,
194
- onChange: onChange,
195
- onPageChange: pageChangeHandler,
196
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Formik, {
197
- initialValues: _specificReferentielsInitialValues.default[searchKey],
198
- validationSchema: _specificReferentielsValidationSchemas.default[searchKey],
199
- innerRef: formRef,
200
- validateOnBlur: false,
201
- onSubmit: submitHandler,
202
- children: _ref3 => {
203
- let {
204
- resetForm,
205
- submitForm
206
- } = _ref3;
207
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiFormikForm.default, {
208
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PuiGrid.default, {
209
- container: true,
210
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiGrid.default, {
211
- item: true,
212
- xs: 12,
213
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiGrid.default, {
214
- container: true,
215
- children: filtreredFilters.map(filtreredFilter => {
216
- var _filtersProps$filtrer, _filtersProps$filtrer2, _filtersProps$filtrer3, _filtersProps$filtrer4;
217
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiGrid.default, {
218
- item: true,
219
- xs: Boolean(filtersProps) && Boolean((_filtersProps$filtrer = filtersProps[filtreredFilter.name]) === null || _filtersProps$filtrer === void 0 || (_filtersProps$filtrer = _filtersProps$filtrer.size) === null || _filtersProps$filtrer === void 0 ? void 0 : _filtersProps$filtrer.xs) ? filtersProps[filtreredFilter.name].size.xs : filtreredFilter.size.xs,
220
- sm: Boolean(filtersProps) && Boolean((_filtersProps$filtrer2 = filtersProps[filtreredFilter.name]) === null || _filtersProps$filtrer2 === void 0 || (_filtersProps$filtrer2 = _filtersProps$filtrer2.size) === null || _filtersProps$filtrer2 === void 0 ? void 0 : _filtersProps$filtrer2.sm) ? filtersProps[filtreredFilter.name].size.sm : filtreredFilter.size.sm,
221
- md: Boolean(filtersProps) && Boolean((_filtersProps$filtrer3 = filtersProps[filtreredFilter.name]) === null || _filtersProps$filtrer3 === void 0 || (_filtersProps$filtrer3 = _filtersProps$filtrer3.size) === null || _filtersProps$filtrer3 === void 0 ? void 0 : _filtersProps$filtrer3.md) ? filtersProps[filtreredFilter.name].size.md : filtreredFilter.size.md,
222
- sx: {
223
- order: Boolean(filtersProps) && Boolean((_filtersProps$filtrer4 = filtersProps[filtreredFilter.name]) === null || _filtersProps$filtrer4 === void 0 ? void 0 : _filtersProps$filtrer4.order) ? filtersProps[filtreredFilter.name].order : "initial"
224
- },
225
- children: Boolean(filtreredFilter.isSpecific) ? /*#__PURE__*/React.createElement(PuiSpecificReferentielField, Boolean(filtersProps) && Boolean(filtersProps[filtreredFilter.name]) ? _objectSpread(_objectSpread(_objectSpread({}, filtreredFilter.inputProps), {}, {
226
- label: filtreredFilter.label
227
- }, filtersProps[filtreredFilter.name]), {}, {
228
- getReturnedValue: filtreredFilter.inputProps.getReturnedValue,
229
- searchKey: filtreredFilter.inputProps.searchKey,
230
- size: undefined,
231
- order: undefined,
232
- name: filtreredFilter.name
233
- }) : _objectSpread(_objectSpread({}, filtreredFilter.inputProps), {}, {
234
- label: filtreredFilter.label,
235
- name: filtreredFilter.name
236
- })) : /*#__PURE__*/React.cloneElement(filtreredFilter.input, Boolean(filtersProps) && Boolean(filtersProps[filtreredFilter.name]) ? _objectSpread(_objectSpread({
237
- label: filtreredFilter.label
238
- }, filtersProps[filtreredFilter.name]), {}, {
239
- size: undefined,
240
- order: undefined,
241
- name: filtreredFilter.name
242
- }) : {
243
- name: filtreredFilter.name,
244
- label: filtreredFilter.label
245
- })
246
- }, filtreredFilter.name);
247
- })
248
- })
249
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiGrid.default, {
250
- item: true,
251
- xs: 12,
252
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PuiGrid.default, {
253
- container: true,
254
- justifyContent: "end",
255
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiGrid.default, {
256
- item: true,
257
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiButton.default, {
258
- startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiIcon.default, {
259
- type: "effacer",
260
- size: "small"
261
- }),
262
- onClick: resetForm,
263
- color: "tertiary",
264
- children: "Effacer"
265
- })
266
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiGrid.default, {
267
- item: true,
268
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiButton.default, {
269
- startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiIcon.default, {
270
- type: "rechercher",
271
- size: "small"
272
- }),
273
- onClick: submitForm,
274
- loading: dataFetchingState.isLoading,
275
- loadingPosition: "start",
276
- children: "Rechercher"
277
- })
278
- })]
279
- })
280
- })]
281
- })
282
- });
283
- }
284
- })
285
- });
286
- };
287
- PuiSpecificReferentielField.propTypes = {
288
- id: _propTypes.default.string,
289
- className: _propTypes.default.string,
290
- sx: _propTypes.default.object,
291
- title: _propTypes.default.string,
292
- label: _propTypes.default.string,
293
- searchKey: _propTypes.default.string.isRequired,
294
- specifications: _propTypes.default.object,
295
- filters: _propTypes.default.arrayOf(_propTypes.default.string),
296
- filtersProps: _propTypes.default.object,
297
- columns: _propTypes.default.array,
298
- name: _propTypes.default.string,
299
- helperText: _propTypes.default.string,
300
- formik: _propTypes.default.bool,
301
- disabled: _propTypes.default.bool,
302
- required: _propTypes.default.bool,
303
- error: _propTypes.default.bool,
304
- focused: _propTypes.default.bool,
305
- fullWidth: _propTypes.default.bool,
306
- tableProps: _propTypes.default.object,
307
- getRenderedValue: _propTypes.default.func.isRequired,
308
- getReturnedValue: _propTypes.default.func,
309
- onChange: _propTypes.default.func,
310
- onError: _propTypes.default.func,
311
- dataFetchingState: _propTypes.default.shape({
312
- data: _propTypes.default.array.isRequired,
313
- totalElements: _propTypes.default.number.isRequired,
314
- isLoading: _propTypes.default.bool.isRequired
315
- })
316
- };
317
- PuiSpecificReferentielField.defaultProps = {
318
- disabled: false,
319
- required: false,
320
- error: false,
321
- formik: true,
322
- fullWidth: true,
323
- specifications: {},
324
- columns: [],
325
- data: null,
326
- tableProps: {},
327
- getReturnedValue: row => row,
328
- onError: () => {},
329
- onChange: () => {}
330
- };
331
- var _default = exports.default = PuiSpecificReferentielField;
@@ -1,54 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- require("core-js/modules/web.dom-collections.iterator.js");
8
- var _Popover = _interopRequireDefault(require("@mui/material/Popover"));
9
- var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
10
- var _MoreVert = _interopRequireDefault(require("@mui/icons-material/MoreVert"));
11
- var _system = require("@mui/system");
12
- var _react = _interopRequireDefault(require("react"));
13
- var _jsxRuntime = require("react/jsx-runtime");
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
- const ActionPopover = _ref => {
16
- let {
17
- row,
18
- actions
19
- } = _ref;
20
- const [anchorEl, setAnchorEl] = _react.default.useState(null);
21
- const handleClick = event => {
22
- setAnchorEl(event.currentTarget);
23
- };
24
- const handleClose = () => {
25
- setAnchorEl(null);
26
- };
27
- const open = Boolean(anchorEl);
28
- const id = open ? 'simple-popover' : undefined;
29
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
30
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
31
- "aria-describedby": id,
32
- onClick: handleClick,
33
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MoreVert.default, {})
34
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.default, {
35
- id: id,
36
- open: open,
37
- anchorEl: anchorEl,
38
- onClose: handleClose,
39
- anchorOrigin: {
40
- vertical: 'bottom',
41
- horizontal: 'left'
42
- },
43
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_system.Box, {
44
- p: 2,
45
- children: actions.map((action, index) => /*#__PURE__*/_react.default.cloneElement(action, {
46
- row,
47
- key: index,
48
- onClick: handleClose // Assuming you want to close the popover when an action is clicked
49
- }))
50
- })
51
- })]
52
- });
53
- };
54
- var _default = exports.default = ActionPopover;