@movalib/movalib-commons 1.45.0 → 1.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/devIndex.tsx CHANGED
@@ -26,6 +26,8 @@ import GaragePLV from './src/GaragePLV';
26
26
  import AddressFields from './src/AddressFields';
27
27
  import IbanInput from './src/IbanInput';
28
28
  import GenderSelector from './src/GenderSelector';
29
+ import {VehicleTire} from "./index";
30
+ import MovaVehicleTireField from "./src/MovaVehicleTireField";
29
31
 
30
32
  const App = () => {
31
33
 
@@ -123,6 +125,11 @@ const App = () => {
123
125
  alert('plaque valide');
124
126
  } } />
125
127
  </Container>
128
+ <Container style={flexCenter} sx={{ width: '400px', mt: 2}}>
129
+ <MovaVehicleTireField onChangeVehicleTire={(vehicleTire) => {
130
+ console.log(vehicleTire);
131
+ }}/>
132
+ </Container>
126
133
 
127
134
 
128
135
  <MovaLogin
package/dist/devIndex.js CHANGED
@@ -63,6 +63,7 @@ var GaragePLV_1 = __importDefault(require("./src/GaragePLV"));
63
63
  var AddressFields_1 = __importDefault(require("./src/AddressFields"));
64
64
  var IbanInput_1 = __importDefault(require("./src/IbanInput"));
65
65
  var GenderSelector_1 = __importDefault(require("./src/GenderSelector"));
66
+ var MovaVehicleTireField_1 = __importDefault(require("./src/MovaVehicleTireField"));
66
67
  var App = function () {
67
68
  Logger_1.default.enableLogging();
68
69
  // Chargement de données garage de test
@@ -130,6 +131,8 @@ var App = function () {
130
131
  gender: undefined
131
132
  } }), (0, jsx_runtime_1.jsx)(material_1.Container, __assign({ style: Tools_1.flexCenter, sx: { width: '400px', mt: 2 } }, { children: (0, jsx_runtime_1.jsx)(VehiclePlateField_1.default, { onValidVehiclePlate: function (vehiclePlate) {
132
133
  alert('plaque valide');
134
+ } }) })), (0, jsx_runtime_1.jsx)(material_1.Container, __assign({ style: Tools_1.flexCenter, sx: { width: '400px', mt: 2 } }, { children: (0, jsx_runtime_1.jsx)(MovaVehicleTireField_1.default, { onChangeVehicleTire: function (vehicleTire) {
135
+ console.log(vehicleTire);
133
136
  } }) })), (0, jsx_runtime_1.jsx)(MovaLogin_1.default, { darkMode: false, movaAppType: Enums_1.MovaAppType.INDIVIDUAL, version: "0.1.3", onSubmit: function (form) {
134
137
  alert('Form Submitted !');
135
138
  }, onSubmitForgotPassword: function (email) {
@@ -1,7 +1,7 @@
1
1
  import { type FC } from 'react';
2
2
  import VehicleTire from './models/VehicleTire';
3
3
  interface MovaVehicleTireFieldProps {
4
- vehicleTire: VehicleTire;
4
+ vehicleTire?: VehicleTire;
5
5
  onChangeVehicleTire: (vehicleTire: VehicleTire, isValid: boolean) => void;
6
6
  }
7
7
  declare const MovaVehicleTireField: FC<MovaVehicleTireFieldProps>;
@@ -12,59 +12,50 @@ var Tools_1 = require("./helpers/Tools");
12
12
  var regex = /^\d{9}[A-Za-z]$/;
13
13
  var MovaVehicleTireField = function (_a) {
14
14
  var vehicleTire = _a.vehicleTire, onChangeVehicleTire = _a.onChangeVehicleTire;
15
- var _b = (0, react_1.useState)(''), rawValue = _b[0], setRawValue = _b[1];
16
- var _c = (0, react_1.useState)(''), tireInfo = _c[0], setTireInfo = _c[1];
17
- var _d = (0, react_1.useState)(false), error = _d[0], setError = _d[1];
18
- var _e = (0, react_1.useState)(0), lastLength = _e[0], setLastLength = _e[1]; // Ajout d'un état pour stocker la longueur précédente
15
+ var _b = (0, react_1.useState)(''), tireInfo = _b[0], setTireInfo = _b[1];
16
+ var _c = (0, react_1.useState)(false), error = _c[0], setError = _c[1];
17
+ var _d = (0, react_1.useState)(0), lastLength = _d[0], setLastLength = _d[1]; // Ajout d'un état pour stocker la longueur précédente
19
18
  (0, react_1.useEffect)(function () {
20
- setRawValue((0, Tools_1.formatVehicleTire)(vehicleTire));
21
- setTireInfo((0, Tools_1.formatVehicleTire)(vehicleTire));
19
+ if (vehicleTire) {
20
+ setTireInfo((0, Tools_1.formatVehicleTire)(vehicleTire));
21
+ }
22
22
  }, [vehicleTire]);
23
- (0, react_1.useEffect)(function () {
23
+ var handleChange = function (e) {
24
+ e.preventDefault();
25
+ var rawValue = e.target.value;
24
26
  // Cette expression régulière supprimera tous les caractères qui ne sont pas des chiffres ou des lettres alphabétiques, à l'exception de "R" et "r".
25
27
  // On ne peut saisir que 10 caractères maximum (ex : 245551791V)
26
28
  var value = rawValue.toUpperCase().replace(/[^0-9A-QS-Za-qs-z]/g, '').slice(0, 10);
27
- console.log(value);
28
29
  // On valide la saisie (le champ n'est pas obligatoire)
29
30
  var isValid = value.length == 0 || (value.length > 0 && regex.test(value));
30
31
  setError(!regex.test(value));
31
- console.log(isValid);
32
32
  // Vérifier si l'utilisateur est en train de supprimer un caractère
33
33
  var isDeleting = value.length < lastLength;
34
- console.log("Deleting : ".concat(isDeleting));
35
34
  // Ajout du " / "
36
35
  if (value.length >= 3 && !(rawValue.length == 5 && isDeleting)) {
37
- console.log('Ajout : /');
38
36
  value = "".concat(value.substring(0, 3), " / ").concat(value.substring(3));
39
37
  }
40
38
  // Ajout du " R"
41
39
  if (value.length >= 8 && !(rawValue.length == 9 && isDeleting)) {
42
- console.log('Ajout : R');
43
40
  value = "".concat(value.substring(0, 8), " R").concat(value.substring(8));
44
41
  }
45
42
  // Ajout d'un espace après la saisie du diamètre des pneus
46
43
  if (value.length >= 12 && !(rawValue.length <= 12 && isDeleting)) {
47
- console.log('Ajout : " "');
48
44
  value = "".concat(value.substring(0, 12), " ").concat(value.substring(12));
49
45
  }
50
46
  setTireInfo(value);
51
- console.log(value.length);
52
- if (value.length >= 16 && !(rawValue.length == 17 && isDeleting)) {
53
- var parts = value.split(" ");
54
- if (parts.length === 5) {
55
- var width = parts[0], separator = parts[1], height = parts[2], diameter = parts[3], speedIndex = parts[4];
56
- var vehicleTire_1 = new VehicleTire_1.default(width, height, diameter, speedIndex);
57
- onChangeVehicleTire(vehicleTire_1, isValid);
58
- }
47
+ var parts = value.split(" ");
48
+ if (value.length >= 16 && !(rawValue.length == 17 && isDeleting) && parts.length === 5) {
49
+ var width = parts[0], _separator = parts[1], height = parts[2], diameter = parts[3], speedIndex = parts[4];
50
+ var vehicleTire_1 = new VehicleTire_1.default(width, height, diameter, speedIndex);
51
+ onChangeVehicleTire(vehicleTire_1, isValid);
59
52
  }
60
53
  else {
61
- onChangeVehicleTire(vehicleTire, isValid);
54
+ var width = parts[0], _separator = parts[1], height = parts[2], diameter = parts[3], speedIndex = parts[4];
55
+ var vehicleTire_2 = new VehicleTire_1.default(width !== null && width !== void 0 ? width : '', height !== null && height !== void 0 ? height : '', diameter !== null && diameter !== void 0 ? diameter : '', speedIndex !== null && speedIndex !== void 0 ? speedIndex : '');
56
+ onChangeVehicleTire(vehicleTire_2, isValid);
62
57
  }
63
58
  setLastLength(value.length); // Mettre à jour la longueur précédente
64
- }, [rawValue]);
65
- var handleChange = function (e) {
66
- e.preventDefault();
67
- setRawValue(e.target.value);
68
59
  };
69
60
  return ((0, jsx_runtime_1.jsx)(material_1.TextField, { label: "Taille des pneumatiques", variant: "outlined", value: tireInfo, onChange: handleChange, fullWidth: true, placeholder: 'XXX XX RXX XXX', sx: {
70
61
  width: '100%',
@@ -182,7 +182,8 @@ export declare enum EventState {
182
182
  }
183
183
  export declare enum EventType {
184
184
  APPOINTMENT = "APPOINTMENT",
185
- UNAVAILABILITY = "UNAVAILABILITY"
185
+ UNAVAILABILITY = "UNAVAILABILITY",
186
+ NOTE = "NOTE"
186
187
  }
187
188
  export declare enum DayOfWeek {
188
189
  MONDAY = "MONDAY",
@@ -205,6 +205,7 @@ var EventType;
205
205
  (function (EventType) {
206
206
  EventType["APPOINTMENT"] = "APPOINTMENT";
207
207
  EventType["UNAVAILABILITY"] = "UNAVAILABILITY";
208
+ EventType["NOTE"] = "NOTE";
208
209
  })(EventType = exports.EventType || (exports.EventType = {}));
209
210
  var DayOfWeek;
210
211
  (function (DayOfWeek) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@movalib/movalib-commons",
3
- "version": "1.45.0",
3
+ "version": "1.47.0",
4
4
  "description": "Bibliothèque d'objets communs à l'ensemble des projets React de Movalib",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -4,87 +4,77 @@ import VehicleTire from './models/VehicleTire';
4
4
  import { formatVehicleTire } from './helpers/Tools';
5
5
 
6
6
  interface MovaVehicleTireFieldProps {
7
- vehicleTire: VehicleTire,
7
+ vehicleTire?: VehicleTire,
8
8
  onChangeVehicleTire: (vehicleTire: VehicleTire, isValid: boolean) => void;
9
9
  }
10
10
 
11
11
  // Regex pour une taille de pneumatique Française
12
- const regex = /^\d{9}[A-Za-z]$/;
12
+ const regex = /^\d{9}[A-Za-z]$/;
13
13
 
14
14
  const MovaVehicleTireField: FC<MovaVehicleTireFieldProps> = ({ vehicleTire, onChangeVehicleTire }) => {
15
15
 
16
- const [rawValue, setRawValue] = useState('');
17
16
  const [tireInfo, setTireInfo] = useState('');
18
17
  const [error, setError] = useState<boolean>(false);
19
18
  const [lastLength, setLastLength] = useState<number>(0); // Ajout d'un état pour stocker la longueur précédente
20
19
 
21
20
  useEffect(() => {
22
- setRawValue(formatVehicleTire(vehicleTire));
21
+ if(vehicleTire) {
23
22
  setTireInfo(formatVehicleTire(vehicleTire));
23
+ }
24
24
  }, [vehicleTire]);
25
25
 
26
- useEffect(() => {
26
+
27
+ const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
28
+ e.preventDefault();
29
+ const rawValue = e.target.value;
27
30
 
28
31
  // Cette expression régulière supprimera tous les caractères qui ne sont pas des chiffres ou des lettres alphabétiques, à l'exception de "R" et "r".
29
32
  // On ne peut saisir que 10 caractères maximum (ex : 245551791V)
30
33
  let value = rawValue.toUpperCase().replace(/[^0-9A-QS-Za-qs-z]/g, '').slice(0, 10);
31
34
 
32
- console.log(value);
33
35
 
34
36
  // On valide la saisie (le champ n'est pas obligatoire)
35
37
  let isValid = value.length == 0 || (value.length > 0 && regex.test(value));
36
38
  setError(!regex.test(value));
37
39
 
38
- console.log(isValid);
39
-
40
40
  // Vérifier si l'utilisateur est en train de supprimer un caractère
41
41
  const isDeleting = value.length < lastLength;
42
- console.log(`Deleting : ${isDeleting}`);
43
-
42
+
44
43
  // Ajout du " / "
45
44
  if (value.length >= 3 && !(rawValue.length == 5 && isDeleting)) {
46
- console.log('Ajout : /')
47
45
  value = `${value.substring(0, 3)} / ${value.substring(3)}`;
48
46
  }
49
47
 
50
48
  // Ajout du " R"
51
49
  if (value.length >= 8 && !(rawValue.length == 9 && isDeleting)) {
52
- console.log('Ajout : R')
53
50
  value = `${value.substring(0, 8)} R${value.substring(8)}`;
54
51
  }
55
52
 
56
53
 
57
54
  // Ajout d'un espace après la saisie du diamètre des pneus
58
55
  if (value.length >= 12 && !(rawValue.length <= 12 && isDeleting)) {
59
- console.log('Ajout : " "')
60
56
  value = `${value.substring(0, 12)} ${value.substring(12)}`;
61
57
  }
62
58
 
63
59
  setTireInfo(value);
64
- console.log(value.length);
65
-
66
- if (value.length >= 16 && !(rawValue.length == 17 && isDeleting)) {
67
60
 
68
- const parts = value.split(" ");
61
+ const parts = value.split(" ");
69
62
 
70
- if (parts.length === 5) {
71
- let [width, separator, height, diameter, speedIndex] = parts;
63
+ if (value.length >= 16 && !(rawValue.length == 17 && isDeleting) && parts.length === 5) {
64
+ const [width, _separator, height, diameter, speedIndex] = parts;
72
65
  const vehicleTire = new VehicleTire(width, height, diameter, speedIndex);
73
66
  onChangeVehicleTire(vehicleTire, isValid);
74
- }
75
67
  } else {
68
+ const [width, _separator, height, diameter, speedIndex] = parts;
69
+ const vehicleTire = new VehicleTire(width ?? '', height ?? '', diameter ?? '', speedIndex ?? '');
70
+
76
71
  onChangeVehicleTire(vehicleTire, isValid);
77
72
  }
78
73
 
79
74
  setLastLength(value.length); // Mettre à jour la longueur précédente
80
75
 
81
- }, [rawValue]);
76
+ };
82
77
 
83
- const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
84
- e.preventDefault();
85
- setRawValue(e.target.value);
86
- };
87
-
88
78
  return (
89
79
  <TextField
90
80
  label="Taille des pneumatiques"
@@ -93,14 +83,14 @@ const MovaVehicleTireField: FC<MovaVehicleTireFieldProps> = ({ vehicleTire, onCh
93
83
  onChange={handleChange}
94
84
  fullWidth
95
85
  placeholder='XXX XX RXX XXX'
96
- sx={{
97
- width: '100%',
86
+ sx={{
87
+ width: '100%',
98
88
  '& input': { textTransform: 'uppercase' } // CSS pour forcer les majuscules dans l'input
99
89
  }}
100
- error={error && tireInfo.length > 0}
101
- helperText={error && tireInfo.length > 0 ? "Saisie invalide" : ''}
90
+ error={error && tireInfo.length > 0}
91
+ helperText={error && tireInfo.length > 0 ? "Saisie invalide" : ''}
102
92
  />
103
93
  );
104
94
  }
105
95
 
106
- export default MovaVehicleTireField;
96
+ export default MovaVehicleTireField;
@@ -180,7 +180,7 @@ export enum EventState {
180
180
  * Refusé (rendez-vous refusé par le client)
181
181
  * Cela concerne le refus de l'éventuel devis transmis par le garagiste pour le moment
182
182
  */
183
- REJECTED = "REJECTED",
183
+ REJECTED = "REJECTED",
184
184
  /**
185
185
  * Planifé (rendez-vous planifié, devis accepté par le client le cas échéant)
186
186
  * Note : si l'acceptation du devis n'est pas obligatoire pour le centre,
@@ -194,7 +194,7 @@ export enum EventState {
194
194
  /**
195
195
  * Le rendez-vous est clôturé
196
196
  */
197
- DONE = "DONE",
197
+ DONE = "DONE",
198
198
  /**
199
199
  * Le rendez-vous a été annulé (par le centre ou le client)
200
200
  */
@@ -203,7 +203,8 @@ export enum EventState {
203
203
 
204
204
  export enum EventType {
205
205
  APPOINTMENT = "APPOINTMENT",
206
- UNAVAILABILITY = "UNAVAILABILITY"
206
+ UNAVAILABILITY = "UNAVAILABILITY",
207
+ NOTE = "NOTE",
207
208
  }
208
209
 
209
210
  export enum DayOfWeek {
@@ -270,4 +271,4 @@ export enum RoleType {
270
271
  * Super-Administrateur (team Movalib)
271
272
  */
272
273
  SUPER_ADMIN = "ROLE_SUPER_ADMIN",
273
- }
274
+ }