@portnet/ui 3.0.3 → 3.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.
Files changed (68) hide show
  1. package/dist/components/buttons/PuiButton.js +136 -0
  2. package/dist/components/buttons/PuiIconButton.js +97 -0
  3. package/dist/components/common/PuiAlertContext.js +13 -0
  4. package/dist/components/common/StyledMuiButton.js +47 -0
  5. package/dist/components/common/StyledMuiTextField.js +120 -0
  6. package/dist/components/inputs/PuiAutocomplete.js +350 -0
  7. package/dist/components/inputs/PuiCheckbox.js +307 -0
  8. package/dist/components/inputs/PuiCheckboxGroup.js +213 -0
  9. package/dist/components/inputs/PuiCheckboxItem.js +161 -0
  10. package/dist/components/inputs/PuiDateField.js +279 -0
  11. package/dist/components/inputs/PuiDateTimeField.js +395 -0
  12. package/dist/components/inputs/PuiFileField.js +264 -0
  13. package/dist/components/inputs/PuiRadioGroup.js +196 -0
  14. package/dist/components/inputs/PuiRadioItem.js +99 -0
  15. package/dist/components/inputs/PuiSelect.js +357 -0
  16. package/dist/components/inputs/PuiTextField.js +262 -0
  17. package/dist/components/others/PuiBadge.js +56 -0
  18. package/dist/components/others/PuiChip.js +149 -0
  19. package/dist/components/others/PuiDialog.js +101 -0
  20. package/dist/components/others/PuiFormikForm.js +71 -0
  21. package/dist/components/others/PuiGrid.js +21 -0
  22. package/dist/components/others/PuiIcon.js +91 -0
  23. package/dist/components/others/PuiLoadingBackdrop.js +32 -0
  24. package/dist/components/others/PuiMainContainer.js +40 -0
  25. package/dist/components/others/PuiNavigation.js +67 -0
  26. package/dist/components/others/PuiSection.js +97 -0
  27. package/dist/components/others/PuiTooltip.js +85 -0
  28. package/dist/components/providers/PuiAlertProvider.js +132 -0
  29. package/dist/components/providers/PuiLocalizationProvider.js +32 -0
  30. package/dist/components/referentiel/common/ReferetielContext.js +13 -0
  31. package/dist/components/referentiel/common/constants/specificReferentielsApis.js +22 -0
  32. package/dist/components/referentiel/common/constants/specificReferentielsBaseColumns.js +691 -0
  33. package/dist/components/referentiel/common/constants/specificReferentielsBaseFilters.js +598 -0
  34. package/dist/components/referentiel/common/constants/specificReferentielsInitialValues.js +80 -0
  35. package/dist/components/referentiel/common/constants/specificReferentielsKeys.js +18 -0
  36. package/dist/components/referentiel/common/constants/specificReferentielsTitles.js +22 -0
  37. package/dist/components/referentiel/common/constants/specificReferentielsValidationSchemas.js +86 -0
  38. package/dist/components/referentiel/components/PuiBasePopupReferentielField.js +355 -0
  39. package/dist/components/referentiel/components/PuiCustomPopupReferentielField.js +180 -0
  40. package/dist/components/referentiel/components/PuiSimplePopupReferentielField.js +323 -0
  41. package/dist/components/referentiel/components/PuiSimpleReferentielField.js +201 -0
  42. package/dist/components/referentiel/components/PuiSpecificReferentielField.js +330 -0
  43. package/dist/components/referentiel/providers/PuiReferentielProvider.js +65 -0
  44. package/dist/components/tab/PuiTab.js +25 -0
  45. package/dist/components/tab/PuiTabs.js +145 -0
  46. package/dist/components/table/ActionPopover.js +54 -0
  47. package/dist/components/table/PuiTable.js +446 -0
  48. package/dist/components/table/PuiTableAction.js +63 -0
  49. package/dist/components/typography/PuiDefinition.js +42 -0
  50. package/dist/components/typography/PuiIndication.js +79 -0
  51. package/dist/components/typography/PuiMainTitle.js +85 -0
  52. package/dist/components/ui/dialogs/PuiSearchDialog.js +105 -0
  53. package/dist/components/ui/pages/errors/PuiErrorBasePage.js +73 -0
  54. package/dist/components/ui/pages/errors/PuiForbiddenErrorPage.js +36 -0
  55. package/dist/components/ui/pages/errors/PuiNetworkErrorPage.js +36 -0
  56. package/dist/components/ui/pages/errors/PuiNotFoundErrorPage.js +30 -0
  57. package/dist/components/ui/pages/errors/PuiServerErrorPage.js +37 -0
  58. package/dist/components/ui/pages/general/PuiDefaultPage.js +68 -0
  59. package/dist/components/ui/pages/general/PuiSearchPage.js +201 -0
  60. package/dist/config/apperance.js +26 -0
  61. package/dist/config/mapping.js +26 -0
  62. package/dist/config/referentiel.js +10 -0
  63. package/dist/general/yupValidationErrors.js +8 -0
  64. package/dist/hooks/useAlert.js +20 -0
  65. package/dist/hooks/useAxios.js +23 -0
  66. package/dist/hooks/useQuery.js +19 -0
  67. package/dist/index.js +335 -0
  68. package/package.json +1 -1
@@ -0,0 +1,395 @@
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.symbol.description.js");
10
+ var _material = require("@mui/material");
11
+ var _styles = require("@mui/material/styles");
12
+ var _DatePicker = require("@mui/x-date-pickers/DatePicker");
13
+ var _formik = require("formik");
14
+ var _moment = _interopRequireDefault(require("moment"));
15
+ var _propTypes = _interopRequireDefault(require("prop-types"));
16
+ var React = _interopRequireWildcard(require("react"));
17
+ var _apperance = require("../../config/apperance");
18
+ var _PuiButton = _interopRequireDefault(require("../buttons/PuiButton"));
19
+ var _StyledMuiTextField = _interopRequireDefault(require("../common/StyledMuiTextField"));
20
+ var _PuiDialog = _interopRequireDefault(require("../others/PuiDialog"));
21
+ var _PuiTextField = _interopRequireDefault(require("./PuiTextField"));
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+ const _excluded = ["id", "className", "sx", "label", "name", "required", "value", "minDate", "maxDate", "inputFormat", "format", "disablePast", "disableFuture", "error", "readOnly", "fullWidth", "disabled", "helperText", "onChange", "onBlur"],
24
+ _excluded2 = ["id", "className", "sx", "label", "name", "required", "value", "minDate", "maxDate", "inputFormat", "format", "disablePast", "disableFuture", "error", "readOnly", "fullWidth", "disabled", "helperText", "onChange", "onBlur"],
25
+ _excluded3 = ["formik", "id", "className", "sx", "label", "name", "required", "value", "minDate", "maxDate", "inputFormat", "format", "disablePast", "disableFuture", "error", "readOnly", "fullWidth", "disabled", "helperText", "onChange", "onBlur"];
26
+ 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); }
27
+ 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; }
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
30
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
31
+ 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; }
32
+ 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
+ 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
+ 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); }
36
+ const StyledDateMuiTextField = (0, _styles.styled)( /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_StyledMuiTextField.default, _objectSpread({
37
+ ref: ref
38
+ }, props))))(() => ({
39
+ "&.MuiFormControl-root": {
40
+ display: "block",
41
+ "& .MuiInputAdornment-root .MuiButtonBase-root": {
42
+ padding: "6px",
43
+ marginRight: "-8px",
44
+ "& .MuiSvgIcon-root": {
45
+ width: "16px",
46
+ height: "16px"
47
+ }
48
+ }
49
+ }
50
+ }));
51
+ const TimePickerDialog = _ref => {
52
+ var _ref2, _ref3;
53
+ let {
54
+ open,
55
+ selectedDate,
56
+ onTimeSelected,
57
+ onClose,
58
+ position
59
+ } = _ref;
60
+ const defaultTime = (0, _moment.default)(selectedDate).isValid() ? (0, _moment.default)(selectedDate).format("HH:mm") : (0, _moment.default)().format("HH:mm");
61
+ const [selectedTime, setSelectedTime] = React.useState(defaultTime);
62
+ const handleTimeChange = event => {
63
+ setSelectedTime(event.target.value);
64
+ };
65
+ const handleOk = () => {
66
+ onTimeSelected(selectedTime);
67
+ onClose();
68
+ };
69
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiDialog.default, {
70
+ open: open,
71
+ onClose: onClose,
72
+ slotProps: {
73
+ backdrop: {
74
+ style: {
75
+ backgroundColor: "transparent",
76
+ boxShadow: "none"
77
+ }
78
+ }
79
+ },
80
+ hideBackdrop: true,
81
+ PaperProps: {
82
+ elevation: 5,
83
+ sx: {
84
+ position: "fixed",
85
+ alignContent: "center",
86
+ justifyContent: "center",
87
+ alignItems: "center",
88
+ backgroundColor: "white",
89
+ height: 58,
90
+ width: 340,
91
+ maxWidth: "720px!important",
92
+ left: (_ref2 = (position === null || position === void 0 ? void 0 : position.left) - 420 / 2) !== null && _ref2 !== void 0 ? _ref2 : 0,
93
+ top: (_ref3 = (position === null || position === void 0 ? void 0 : position.top) + 36) !== null && _ref3 !== void 0 ? _ref3 : 36
94
+ }
95
+ },
96
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
97
+ sx: {
98
+ display: "flex",
99
+ gap: 1
100
+ },
101
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiTextField.default, {
102
+ id: "time",
103
+ type: "time",
104
+ value: selectedTime,
105
+ onChange: handleTimeChange,
106
+ InputLabelProps: {
107
+ shrink: true
108
+ },
109
+ inputProps: {
110
+ step: 60
111
+ },
112
+ formik: false,
113
+ sx: {
114
+ width: 150
115
+ }
116
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiButton.default, {
117
+ onClick: onClose,
118
+ sx: {
119
+ color: _apperance.palette.primary
120
+ },
121
+ children: "Cancel"
122
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiButton.default, {
123
+ onClick: handleOk,
124
+ sx: {
125
+ color: _apperance.palette.primary
126
+ },
127
+ children: "OK"
128
+ })]
129
+ })
130
+ });
131
+ };
132
+ const PuiStandardDateTimeField = /*#__PURE__*/React.forwardRef((_ref4, ref) => {
133
+ let {
134
+ id,
135
+ className,
136
+ sx,
137
+ label,
138
+ name,
139
+ required,
140
+ value,
141
+ minDate,
142
+ maxDate,
143
+ inputFormat = "YYYY-MM-DDTHH:mm:ss.SSSZ",
144
+ format = "YYYY-MM-DDTHH:mm:ss.SSSZ",
145
+ disablePast,
146
+ disableFuture,
147
+ error,
148
+ readOnly,
149
+ fullWidth,
150
+ disabled,
151
+ helperText,
152
+ onChange,
153
+ onBlur
154
+ } = _ref4,
155
+ rest = _objectWithoutProperties(_ref4, _excluded);
156
+ const textFieldRef = React.useRef(null);
157
+ const [dateTime, setDateTime] = React.useState(value || null);
158
+ const minDateObj = minDate ? (0, _moment.default)(minDate, format).toDate() : undefined;
159
+ const maxDateObj = maxDate ? (0, _moment.default)(maxDate, format).toDate() : undefined;
160
+ const [displayedDateTime, setDisplayedDateTime] = React.useState(value || null);
161
+ const [openTimePicker, setOpenTimePicker] = React.useState(false);
162
+ const [dialogPosition, setDialogPosition] = React.useState();
163
+ const handleDateChange = date => {
164
+ if (date) {
165
+ setDateTime((0, _moment.default)(date).format(format));
166
+ setOpenTimePicker(true);
167
+ }
168
+ };
169
+ const handleTimeSelected = time => {
170
+ const newDateTime = (0, _moment.default)(dateTime).format("YYYY-MM-DD") + "T" + time;
171
+ const updatedDateTime = (0, _moment.default)(newDateTime, "YYYY-MM-DDTHH:mm").format(format);
172
+ setDateTime(updatedDateTime);
173
+ setDisplayedDateTime(updatedDateTime);
174
+ onChange(updatedDateTime);
175
+ };
176
+ React.useEffect(() => {
177
+ const updatePosition = () => {
178
+ if (textFieldRef !== null && textFieldRef !== void 0 && textFieldRef.current) {
179
+ const rect = textFieldRef.current.getBoundingClientRect();
180
+ console.log("rect : ", rect);
181
+ setDialogPosition({
182
+ left: rect.left + rect.width / 2 + window.scrollX,
183
+ top: rect.top > 310 ? rect.top - 80 : rect.top + 80
184
+ });
185
+ }
186
+ };
187
+ updatePosition();
188
+ window.addEventListener("resize", updatePosition);
189
+ window.addEventListener("scroll", updatePosition);
190
+ return () => {
191
+ window.removeEventListener("resize", updatePosition);
192
+ window.removeEventListener("scroll", updatePosition);
193
+ };
194
+ }, []);
195
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
196
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DatePicker.DatePicker, _objectSpread({
197
+ ref: textFieldRef,
198
+ sx: sx,
199
+ ampm: false,
200
+ label: label,
201
+ inputFormat: "DD/MM/yyyy HH:mm",
202
+ value: displayedDateTime,
203
+ onChange: handleDateChange,
204
+ disablePast: disablePast,
205
+ disableFuture: disableFuture,
206
+ disabled: disabled,
207
+ maxDate: maxDateObj,
208
+ minDate: minDateObj,
209
+ readOnly: readOnly,
210
+ PopperProps: {
211
+ sx: {
212
+ "& .MuiButtonBase-root.Mui-selected, & .MuiButtonBase-root.Mui-selected:focus, & .MuiButtonBase-root.Mui-selected:hover": {
213
+ backgroundColor: _apperance.palette.primary
214
+ }
215
+ }
216
+ },
217
+ renderInput: params => /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledDateMuiTextField, _objectSpread(_objectSpread({}, params), {}, {
218
+ ref: textFieldRef,
219
+ id: id,
220
+ className: className,
221
+ label: label,
222
+ name: name,
223
+ required: required,
224
+ fullWidth: fullWidth,
225
+ onBlur: onBlur,
226
+ helperText: helperText,
227
+ error: error,
228
+ inputProps: _objectSpread(_objectSpread({}, params.inputProps), {}, {
229
+ readOnly: readOnly
230
+ })
231
+ }))
232
+ }, rest)), /*#__PURE__*/(0, _jsxRuntime.jsx)(TimePickerDialog, {
233
+ open: openTimePicker,
234
+ selectedDate: dateTime,
235
+ onTimeSelected: handleTimeSelected,
236
+ onClose: () => setOpenTimePicker(false),
237
+ position: dialogPosition
238
+ })]
239
+ });
240
+ });
241
+ const PuiFormikDateTimeField = /*#__PURE__*/React.forwardRef((_ref5, ref) => {
242
+ let {
243
+ id,
244
+ className,
245
+ sx,
246
+ label,
247
+ name,
248
+ required,
249
+ value,
250
+ minDate,
251
+ maxDate,
252
+ inputFormat,
253
+ format,
254
+ disablePast,
255
+ disableFuture,
256
+ error,
257
+ readOnly,
258
+ fullWidth,
259
+ disabled,
260
+ helperText,
261
+ onChange,
262
+ onBlur
263
+ } = _ref5,
264
+ rest = _objectWithoutProperties(_ref5, _excluded2);
265
+ const [field, meta] = (0, _formik.useField)(name);
266
+ const formikContext = (0, _formik.useFormikContext)();
267
+ const [hasError, setHasError] = React.useState(false);
268
+ const minDateObj = minDate ? (0, _moment.default)(minDate, format).toDate() : undefined;
269
+ const maxDateObj = maxDate ? (0, _moment.default)(maxDate, format).toDate() : undefined;
270
+ const handleChange = value => {
271
+ formikContext.setFieldValue(name, value);
272
+ onChange(value);
273
+ };
274
+ const handleBlur = event => {
275
+ onBlur(event);
276
+ field.onBlur(event);
277
+ };
278
+ React.useEffect(() => {
279
+ setHasError(Boolean(meta) && Boolean(meta.touched) && Boolean(meta.error));
280
+ }, [meta]);
281
+ React.useEffect(() => {
282
+ if (Boolean(value)) {
283
+ formikContext.setFieldValue(name, value);
284
+ }
285
+ // eslint-disable-next-line react-hooks/exhaustive-deps
286
+ }, [value]);
287
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(PuiStandardDateTimeField, _objectSpread({
288
+ id: id,
289
+ ref: ref,
290
+ className: className,
291
+ sx: sx,
292
+ label: label,
293
+ name: name,
294
+ required: required,
295
+ value: Boolean(field.value) ? format ? _moment.default.utc(field.value, format) : _moment.default.utc(field.value) : null,
296
+ format: format,
297
+ minDate: minDateObj,
298
+ maxDate: maxDateObj,
299
+ inputFormat: inputFormat,
300
+ disableFuture: disableFuture,
301
+ disablePast: disablePast,
302
+ error: error || hasError,
303
+ readOnly: readOnly,
304
+ fullWidth: fullWidth,
305
+ disabled: disabled,
306
+ helperText: hasError && Boolean(meta.error) ? meta.error : helperText !== null && helperText !== void 0 ? helperText : "",
307
+ onChange: handleChange,
308
+ onBlur: handleBlur
309
+ }, rest));
310
+ });
311
+ const PuiDateTimeField = /*#__PURE__*/React.forwardRef((_ref6, ref) => {
312
+ let {
313
+ formik,
314
+ id,
315
+ className,
316
+ sx,
317
+ label,
318
+ name,
319
+ required,
320
+ value,
321
+ minDate,
322
+ maxDate,
323
+ inputFormat,
324
+ format,
325
+ disablePast,
326
+ disableFuture,
327
+ error,
328
+ readOnly,
329
+ fullWidth,
330
+ disabled,
331
+ helperText,
332
+ onChange,
333
+ onBlur
334
+ } = _ref6,
335
+ rest = _objectWithoutProperties(_ref6, _excluded3);
336
+ return /*#__PURE__*/React.createElement(formik ? PuiFormikDateTimeField : PuiStandardDateTimeField, _objectSpread({
337
+ ref,
338
+ id,
339
+ className,
340
+ sx,
341
+ label,
342
+ name,
343
+ required,
344
+ value,
345
+ minDate,
346
+ maxDate,
347
+ inputFormat,
348
+ format,
349
+ disablePast,
350
+ disableFuture,
351
+ error,
352
+ readOnly,
353
+ fullWidth,
354
+ disabled,
355
+ helperText,
356
+ onChange,
357
+ onBlur
358
+ }, rest));
359
+ });
360
+ PuiDateTimeField.propTypes = {
361
+ id: _propTypes.default.string,
362
+ className: _propTypes.default.string,
363
+ sx: _propTypes.default.object,
364
+ label: _propTypes.default.string,
365
+ name: _propTypes.default.string,
366
+ helperText: _propTypes.default.string,
367
+ inputFormat: _propTypes.default.string,
368
+ format: _propTypes.default.string,
369
+ minDate: _propTypes.default.string,
370
+ maxDate: _propTypes.default.string,
371
+ formik: _propTypes.default.bool,
372
+ disabled: _propTypes.default.bool,
373
+ required: _propTypes.default.bool,
374
+ error: _propTypes.default.bool,
375
+ disablePast: _propTypes.default.bool,
376
+ disableFuture: _propTypes.default.bool,
377
+ readOnly: _propTypes.default.bool,
378
+ fullWidth: _propTypes.default.bool,
379
+ onChange: _propTypes.default.func,
380
+ onBlur: _propTypes.default.func
381
+ };
382
+ PuiDateTimeField.defaultProps = {
383
+ inputFormat: "DD/MM/YYYY HH:mm",
384
+ formik: true,
385
+ disabled: false,
386
+ required: false,
387
+ error: false,
388
+ fullWidth: true,
389
+ readOnly: false,
390
+ disablePast: false,
391
+ disableFuture: false,
392
+ onChange: () => {},
393
+ onBlur: () => {}
394
+ };
395
+ var _default = exports.default = PuiDateTimeField;
@@ -0,0 +1,264 @@
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.symbol.description.js");
11
+ var _material = require("@mui/material");
12
+ var _styles = require("@mui/material/styles");
13
+ var _formik = require("formik");
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+ var React = _interopRequireWildcard(require("react"));
16
+ var _PuiButton = _interopRequireDefault(require("../buttons/PuiButton"));
17
+ var _StyledMuiTextField = _interopRequireDefault(require("../common/StyledMuiTextField"));
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ const _excluded = ["id", "className", "sx", "name", "label", "fileDescription", "buttonText", "error", "disabled", "helperText", "focused", "fullWidth", "InputProps", "required", "accept", "multiple", "formatValue", "onChange"],
20
+ _excluded2 = ["id", "className", "sx", "name", "label", "buttonText", "error", "helperText", "disabled", "focused", "fullWidth", "InputProps", "required", "accept", "multiple", "formatValue", "onChange"],
21
+ _excluded3 = ["formik", "id", "className", "sx", "name", "label", "buttonText", "error", "disabled", "helperText", "focused", "fullWidth", "InputProps", "required", "accept", "multiple", "formatValue", "onChange"];
22
+ 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); }
23
+ 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; }
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
26
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
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; }
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; }
29
+ 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; }
30
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
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); }
32
+ const StyledFileMuiTextField = (0, _styles.styled)( /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_StyledMuiTextField.default, _objectSpread({
33
+ ref: ref
34
+ }, props))))(() => {
35
+ return {
36
+ "& .MuiInputBase-root": {
37
+ alignItems: "stretch",
38
+ padding: 0,
39
+ "& .MuiButtonBase-root": {
40
+ minWidth: "fit-content",
41
+ fontSize: ".7rem",
42
+ paddingRight: "18px",
43
+ paddingLeft: "18px",
44
+ margin: "-2px"
45
+ }
46
+ }
47
+ };
48
+ });
49
+ const PuiStandardFileField = /*#__PURE__*/React.forwardRef((_ref, ref) => {
50
+ let {
51
+ id,
52
+ className,
53
+ sx,
54
+ name,
55
+ label,
56
+ fileDescription,
57
+ buttonText,
58
+ error,
59
+ disabled,
60
+ helperText,
61
+ focused,
62
+ fullWidth,
63
+ InputProps,
64
+ required,
65
+ accept,
66
+ multiple,
67
+ formatValue,
68
+ onChange
69
+ } = _ref,
70
+ rest = _objectWithoutProperties(_ref, _excluded);
71
+ const fileInputRef = React.useRef();
72
+ const [innerFileDescription, setInnerFileDecription] = React.useState("");
73
+ const fileChangeHandler = async event => {
74
+ const files = event.target.files;
75
+ const filesCount = files.length;
76
+ if (filesCount > 1) {
77
+ setInnerFileDecription("".concat(filesCount, " Fichiers charg\xE9es"));
78
+ } else {
79
+ setInnerFileDecription(files[0].name);
80
+ }
81
+ onChange(files);
82
+ };
83
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
84
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(StyledFileMuiTextField, _objectSpread(_objectSpread({
85
+ ref: ref,
86
+ id: id,
87
+ className: className,
88
+ sx: sx,
89
+ label: label,
90
+ value: fileDescription !== null && fileDescription !== void 0 ? fileDescription : innerFileDescription,
91
+ required: required,
92
+ disabled: disabled,
93
+ type: "text",
94
+ error: error,
95
+ focused: focused,
96
+ fullWidth: fullWidth,
97
+ helperText: helperText,
98
+ inputProps: {
99
+ name
100
+ },
101
+ InputProps: _objectSpread({
102
+ endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PuiButton.default, {
103
+ children: buttonText
104
+ }),
105
+ readOnly: true
106
+ }, InputProps)
107
+ }, rest), {}, {
108
+ onClick: () => {
109
+ fileInputRef.current.click();
110
+ }
111
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Input, {
112
+ type: "file",
113
+ inputRef: fileInputRef,
114
+ name: name,
115
+ inputProps: {
116
+ accept,
117
+ multiple
118
+ },
119
+ sx: {
120
+ display: "none"
121
+ },
122
+ onChange: fileChangeHandler
123
+ })]
124
+ });
125
+ });
126
+ const PuiFormikFileField = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
127
+ let {
128
+ id,
129
+ className,
130
+ sx,
131
+ name,
132
+ label,
133
+ buttonText,
134
+ error,
135
+ helperText,
136
+ disabled,
137
+ focused,
138
+ fullWidth,
139
+ InputProps,
140
+ required,
141
+ accept,
142
+ multiple,
143
+ formatValue,
144
+ onChange
145
+ } = _ref2,
146
+ rest = _objectWithoutProperties(_ref2, _excluded2);
147
+ const [field, meta] = (0, _formik.useField)(name);
148
+ const [hasError, setHasError] = React.useState(false);
149
+ const [fileDescription, setFileDecription] = React.useState("");
150
+ const formikContext = (0, _formik.useFormikContext)();
151
+ const handleChange = files => {
152
+ const filesCount = files.length;
153
+ if (filesCount > 1) {
154
+ setFileDecription("".concat(filesCount, " Fichiers charg\xE9es"));
155
+ } else {
156
+ setFileDecription(files[0].name);
157
+ }
158
+ formikContext.setFieldValue(name, formatValue(files));
159
+ onChange(files);
160
+ };
161
+ React.useEffect(() => {
162
+ setHasError(Boolean(name) && Boolean(meta) && Boolean(meta.touched) && Boolean(meta.error));
163
+ }, [name, meta]);
164
+ React.useEffect(() => {
165
+ if (!Boolean(field.value)) {
166
+ setFileDecription("");
167
+ }
168
+ // eslint-disable-next-line react-hooks/exhaustive-deps
169
+ }, [field.value]);
170
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(PuiStandardFileField, _objectSpread({
171
+ id: id,
172
+ ref: ref,
173
+ className: className,
174
+ sx: sx,
175
+ name: name,
176
+ label: label,
177
+ fileDescription: fileDescription,
178
+ buttonText: buttonText,
179
+ disabled: disabled,
180
+ error: error || hasError,
181
+ helperText: hasError && Boolean(meta.error) ? meta.error : helperText !== null && helperText !== void 0 ? helperText : "",
182
+ focued: focused,
183
+ fullWidth: fullWidth,
184
+ InputProps: InputProps,
185
+ required: required,
186
+ accept: accept,
187
+ multiple: multiple,
188
+ onChange: handleChange
189
+ }, rest));
190
+ });
191
+ const PuiFileField = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
192
+ let {
193
+ formik,
194
+ id,
195
+ className,
196
+ sx,
197
+ name,
198
+ label,
199
+ buttonText,
200
+ error,
201
+ disabled,
202
+ helperText,
203
+ focused,
204
+ fullWidth,
205
+ InputProps,
206
+ required,
207
+ accept,
208
+ multiple,
209
+ formatValue,
210
+ onChange
211
+ } = _ref3,
212
+ rest = _objectWithoutProperties(_ref3, _excluded3);
213
+ return /*#__PURE__*/React.createElement(formik ? PuiFormikFileField : PuiStandardFileField, _objectSpread({
214
+ ref,
215
+ id,
216
+ className,
217
+ sx,
218
+ name,
219
+ label,
220
+ buttonText,
221
+ error,
222
+ disabled,
223
+ helperText,
224
+ focused,
225
+ fullWidth,
226
+ InputProps,
227
+ required,
228
+ accept,
229
+ multiple,
230
+ formatValue,
231
+ onChange
232
+ }, rest));
233
+ });
234
+ PuiFileField.propTypes = {
235
+ id: _propTypes.default.string,
236
+ className: _propTypes.default.string,
237
+ sx: _propTypes.default.object,
238
+ label: _propTypes.default.string,
239
+ name: _propTypes.default.string,
240
+ buttonText: _propTypes.default.string.isRequired,
241
+ helperText: _propTypes.default.string,
242
+ accept: _propTypes.default.string,
243
+ formik: _propTypes.default.bool,
244
+ disabled: _propTypes.default.bool,
245
+ required: _propTypes.default.bool,
246
+ error: _propTypes.default.bool,
247
+ focused: _propTypes.default.bool,
248
+ fullWidth: _propTypes.default.bool,
249
+ multiple: _propTypes.default.bool,
250
+ InputProps: _propTypes.default.object,
251
+ formatValue: _propTypes.default.func,
252
+ onChange: _propTypes.default.func
253
+ };
254
+ PuiFileField.defaultProps = {
255
+ formik: true,
256
+ disabled: false,
257
+ required: false,
258
+ error: false,
259
+ fullWidth: true,
260
+ multiple: false,
261
+ formatValue: value => value,
262
+ onChange: () => {}
263
+ };
264
+ var _default = exports.default = PuiFileField;