@asdp/ferryui 0.1.22-dev.10206 → 0.1.22-dev.10214
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/index.d.mts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +45 -7
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +45 -7
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -2869,6 +2869,8 @@ interface ModalPassengerFormProps {
|
|
|
2869
2869
|
* Whether the form is currently submitting
|
|
2870
2870
|
*/
|
|
2871
2871
|
isLoading?: boolean;
|
|
2872
|
+
minAge: number;
|
|
2873
|
+
maxAge: number;
|
|
2872
2874
|
}
|
|
2873
2875
|
|
|
2874
2876
|
declare const ModalPassengerForm: React$1.FC<ModalPassengerFormProps>;
|
|
@@ -2896,6 +2898,10 @@ interface CardPassengerListProps {
|
|
|
2896
2898
|
* Callback when a passenger is clicked
|
|
2897
2899
|
*/
|
|
2898
2900
|
onPassengerClick: (passenger: Passenger) => void;
|
|
2901
|
+
/**
|
|
2902
|
+
* Callback when a passenger is clicked
|
|
2903
|
+
*/
|
|
2904
|
+
onIconClick: (event: React.MouseEvent<SVGSVGElement, MouseEvent>, passenger: Passenger, mode: 'add' | 'edit') => void;
|
|
2899
2905
|
/**
|
|
2900
2906
|
* Custom labels override (optional)
|
|
2901
2907
|
* If not provided, default labels based on language will be used
|
package/dist/index.d.ts
CHANGED
|
@@ -2869,6 +2869,8 @@ interface ModalPassengerFormProps {
|
|
|
2869
2869
|
* Whether the form is currently submitting
|
|
2870
2870
|
*/
|
|
2871
2871
|
isLoading?: boolean;
|
|
2872
|
+
minAge: number;
|
|
2873
|
+
maxAge: number;
|
|
2872
2874
|
}
|
|
2873
2875
|
|
|
2874
2876
|
declare const ModalPassengerForm: React$1.FC<ModalPassengerFormProps>;
|
|
@@ -2896,6 +2898,10 @@ interface CardPassengerListProps {
|
|
|
2896
2898
|
* Callback when a passenger is clicked
|
|
2897
2899
|
*/
|
|
2898
2900
|
onPassengerClick: (passenger: Passenger) => void;
|
|
2901
|
+
/**
|
|
2902
|
+
* Callback when a passenger is clicked
|
|
2903
|
+
*/
|
|
2904
|
+
onIconClick: (event: React.MouseEvent<SVGSVGElement, MouseEvent>, passenger: Passenger, mode: 'add' | 'edit') => void;
|
|
2899
2905
|
/**
|
|
2900
2906
|
* Custom labels override (optional)
|
|
2901
2907
|
* If not provided, default labels based on language will be used
|
package/dist/index.js
CHANGED
|
@@ -11298,7 +11298,9 @@ var ModalPassengerForm = ({
|
|
|
11298
11298
|
idTypes,
|
|
11299
11299
|
ticketClassOptions,
|
|
11300
11300
|
onScanComplete,
|
|
11301
|
-
isLoading
|
|
11301
|
+
isLoading,
|
|
11302
|
+
minAge,
|
|
11303
|
+
maxAge
|
|
11302
11304
|
}) => {
|
|
11303
11305
|
const styles = useStyles24();
|
|
11304
11306
|
const mergedLabels = { ...DEFAULT_LABELS23[language], ...labels };
|
|
@@ -11307,6 +11309,15 @@ var ModalPassengerForm = ({
|
|
|
11307
11309
|
...labels?.errors
|
|
11308
11310
|
};
|
|
11309
11311
|
const displayTitle = title || mergedLabels.title;
|
|
11312
|
+
const computeDateBound = (yearsOffset) => {
|
|
11313
|
+
const d = /* @__PURE__ */ new Date();
|
|
11314
|
+
d.setFullYear(d.getFullYear() - yearsOffset);
|
|
11315
|
+
const offset = d.getTimezoneOffset();
|
|
11316
|
+
const adjusted = new Date(d.getTime() - offset * 60 * 1e3);
|
|
11317
|
+
return adjusted.toISOString().split("T")[0];
|
|
11318
|
+
};
|
|
11319
|
+
const birthdateMaxDate = computeDateBound(minAge);
|
|
11320
|
+
const birthdateMinDate = computeDateBound(maxAge);
|
|
11310
11321
|
const [isModalSelectIdTypeOpen, setIsModalSelectIdTypeOpen] = React.useState(false);
|
|
11311
11322
|
const [isModalScanOpen, setIsModalScanOpen] = React.useState(false);
|
|
11312
11323
|
const [scannedIdType, setScannedIdType] = React.useState(null);
|
|
@@ -11342,6 +11353,15 @@ var ModalPassengerForm = ({
|
|
|
11342
11353
|
const dynamicMinLengthId = idRuleLengthMatch ? parseInt(idRuleLengthMatch[1], 10) : 6;
|
|
11343
11354
|
React.useEffect(() => {
|
|
11344
11355
|
reset(defaultValues);
|
|
11356
|
+
if (defaultValues?.birthdate) {
|
|
11357
|
+
const { years, months } = calculateAge(defaultValues.birthdate);
|
|
11358
|
+
setValue(
|
|
11359
|
+
"age",
|
|
11360
|
+
`${years} ${mergedLabels.yearLabel} ${months} ${mergedLabels.monthLabel}`
|
|
11361
|
+
);
|
|
11362
|
+
} else {
|
|
11363
|
+
setValue("age", "");
|
|
11364
|
+
}
|
|
11345
11365
|
}, [defaultValues, reset]);
|
|
11346
11366
|
React.useEffect(() => {
|
|
11347
11367
|
if (watchIdentityTypeId) {
|
|
@@ -11359,6 +11379,7 @@ var ModalPassengerForm = ({
|
|
|
11359
11379
|
setValue("age", "");
|
|
11360
11380
|
}
|
|
11361
11381
|
}, [
|
|
11382
|
+
open,
|
|
11362
11383
|
watchBirthdate,
|
|
11363
11384
|
setValue,
|
|
11364
11385
|
mergedLabels.yearLabel,
|
|
@@ -11894,14 +11915,23 @@ var ModalPassengerForm = ({
|
|
|
11894
11915
|
size: "large",
|
|
11895
11916
|
required: true,
|
|
11896
11917
|
disableFutureDates: true,
|
|
11918
|
+
min: birthdateMinDate,
|
|
11919
|
+
max: birthdateMaxDate,
|
|
11897
11920
|
validationRules: {
|
|
11898
11921
|
required: mergedErrors.requiredDate,
|
|
11899
11922
|
validate: (value) => {
|
|
11900
|
-
const
|
|
11901
|
-
|
|
11902
|
-
|
|
11903
|
-
|
|
11904
|
-
|
|
11923
|
+
const { years } = calculateAge(value);
|
|
11924
|
+
if (years < minAge) {
|
|
11925
|
+
return mergedErrors.minAge.replace(
|
|
11926
|
+
/\d+/,
|
|
11927
|
+
minAge.toString()
|
|
11928
|
+
);
|
|
11929
|
+
}
|
|
11930
|
+
if (years > maxAge) {
|
|
11931
|
+
return mergedErrors.maxAge.replace(
|
|
11932
|
+
/\d+/,
|
|
11933
|
+
maxAge.toString()
|
|
11934
|
+
);
|
|
11905
11935
|
}
|
|
11906
11936
|
return true;
|
|
11907
11937
|
}
|
|
@@ -12221,6 +12251,7 @@ var CardPassengerList = ({
|
|
|
12221
12251
|
title,
|
|
12222
12252
|
passengers,
|
|
12223
12253
|
onPassengerClick,
|
|
12254
|
+
onIconClick,
|
|
12224
12255
|
labels,
|
|
12225
12256
|
className
|
|
12226
12257
|
}) => {
|
|
@@ -12287,7 +12318,14 @@ var CardPassengerList = ({
|
|
|
12287
12318
|
{
|
|
12288
12319
|
icon: passenger.id && passenger.serviceName ? "fluent:edit-24-regular" : "fluent:chevron-right-24-regular",
|
|
12289
12320
|
width: 20,
|
|
12290
|
-
height: 20
|
|
12321
|
+
height: 20,
|
|
12322
|
+
onClick: (event) => {
|
|
12323
|
+
onIconClick(
|
|
12324
|
+
event,
|
|
12325
|
+
passenger,
|
|
12326
|
+
passenger.id && passenger.serviceName ? "edit" : "add"
|
|
12327
|
+
);
|
|
12328
|
+
}
|
|
12291
12329
|
}
|
|
12292
12330
|
)
|
|
12293
12331
|
]
|