@asdp/ferryui 0.1.22-dev.10171 → 0.1.22-dev.10177
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 +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +117 -78
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +117 -78
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -7922,7 +7922,9 @@ var DEFAULT_LABELS14 = {
|
|
|
7922
7922
|
loading: "Memuat...",
|
|
7923
7923
|
saveButton: "Simpan",
|
|
7924
7924
|
closeAriaLabel: "Tutup",
|
|
7925
|
-
emptyContent: "Kelas Penumpang"
|
|
7925
|
+
emptyContent: "Kelas Penumpang",
|
|
7926
|
+
childCompanionWarning: "Anak harus didampingi minimal 1 dewasa atau lansia.",
|
|
7927
|
+
infantCompanionWarning: "Bayi harus didampingi minimal 1 dewasa atau lansia."
|
|
7926
7928
|
},
|
|
7927
7929
|
en: {
|
|
7928
7930
|
title: "Select Total Passengers",
|
|
@@ -7930,7 +7932,9 @@ var DEFAULT_LABELS14 = {
|
|
|
7930
7932
|
loading: "Loading...",
|
|
7931
7933
|
saveButton: "Save",
|
|
7932
7934
|
closeAriaLabel: "Close",
|
|
7933
|
-
emptyContent: "Passengers Class"
|
|
7935
|
+
emptyContent: "Passengers Class",
|
|
7936
|
+
childCompanionWarning: "Children must be accompanied by at least 1 adult or elderly.",
|
|
7937
|
+
infantCompanionWarning: "Infants must be accompanied by at least 1 adult or elderly."
|
|
7934
7938
|
}
|
|
7935
7939
|
};
|
|
7936
7940
|
var useStyles15 = makeStyles({
|
|
@@ -8003,6 +8007,14 @@ var useStyles15 = makeStyles({
|
|
|
8003
8007
|
},
|
|
8004
8008
|
accordionPanel: {
|
|
8005
8009
|
margin: 0
|
|
8010
|
+
},
|
|
8011
|
+
warningText: {
|
|
8012
|
+
display: "flex",
|
|
8013
|
+
alignItems: "center",
|
|
8014
|
+
gap: "6px",
|
|
8015
|
+
marginBottom: "1rem",
|
|
8016
|
+
fontSize: tokens.fontSizeBase300,
|
|
8017
|
+
color: "#E87511"
|
|
8006
8018
|
}
|
|
8007
8019
|
});
|
|
8008
8020
|
var TotalPassengersListSkeleton = ({
|
|
@@ -8081,6 +8093,9 @@ var ModalTotalPassengers = ({
|
|
|
8081
8093
|
const mergedLabels = { ...DEFAULT_LABELS14[language], ...labels };
|
|
8082
8094
|
const [passengers, setPassengers] = useState([]);
|
|
8083
8095
|
const [openItems, setOpenItems] = useState([]);
|
|
8096
|
+
const [companionWarnings, setCompanionWarnings] = useState(
|
|
8097
|
+
/* @__PURE__ */ new Set()
|
|
8098
|
+
);
|
|
8084
8099
|
const defaultInfoMessage = mergedLabels.infoMessage.replace(
|
|
8085
8100
|
"{maxPassengers}",
|
|
8086
8101
|
String(maxPassengers)
|
|
@@ -8138,13 +8153,6 @@ var ModalTotalPassengers = ({
|
|
|
8138
8153
|
const cls = passenger.classes.find((c) => c.classCode === classCode);
|
|
8139
8154
|
return cls?.count ?? 0;
|
|
8140
8155
|
};
|
|
8141
|
-
const getTotalCountForType = (passengerAgeCode) => {
|
|
8142
|
-
const passenger = passengers.find(
|
|
8143
|
-
(p) => p.passengerAgeCode === passengerAgeCode
|
|
8144
|
-
);
|
|
8145
|
-
if (!passenger) return 0;
|
|
8146
|
-
return passenger.classes.reduce((sum, cls) => sum + (cls.count ?? 0), 0);
|
|
8147
|
-
};
|
|
8148
8156
|
const getTotalForType = (passengerAgeCode) => {
|
|
8149
8157
|
const passenger = passengers.find(
|
|
8150
8158
|
(p) => p.passengerAgeCode === passengerAgeCode
|
|
@@ -8163,6 +8171,20 @@ var ModalTotalPassengers = ({
|
|
|
8163
8171
|
(total, passenger) => total + passenger.classes.reduce((sum, cls) => sum + (cls.count ?? 0), 0),
|
|
8164
8172
|
0
|
|
8165
8173
|
);
|
|
8174
|
+
useEffect(() => {
|
|
8175
|
+
const warnings = /* @__PURE__ */ new Set();
|
|
8176
|
+
const hasAdultOrElderly = passengers.some(
|
|
8177
|
+
(p) => (p.passengerAgeCode === "ADULT" || p.passengerAgeCode === "ELDERLY") && p.classes.some((cls) => (cls.count ?? 0) > 0)
|
|
8178
|
+
);
|
|
8179
|
+
if (!hasAdultOrElderly) {
|
|
8180
|
+
passengers.forEach((p) => {
|
|
8181
|
+
if ((p.passengerAgeCode === "CHILD" || p.passengerAgeCode === "INFANT") && p.classes.some((cls) => (cls.count ?? 0) > 0)) {
|
|
8182
|
+
warnings.add(p.passengerAgeCode);
|
|
8183
|
+
}
|
|
8184
|
+
});
|
|
8185
|
+
}
|
|
8186
|
+
setCompanionWarnings(warnings);
|
|
8187
|
+
}, [passengers]);
|
|
8166
8188
|
const handleIncrement = (passengerAgeCode, classCode) => {
|
|
8167
8189
|
setPassengers(
|
|
8168
8190
|
(prev) => prev.map((passenger) => {
|
|
@@ -8257,80 +8279,96 @@ var ModalTotalPassengers = ({
|
|
|
8257
8279
|
className: styles.passengerSection,
|
|
8258
8280
|
children: passengerTypes.map((passengerType) => {
|
|
8259
8281
|
const classes = passengerType.classes || [];
|
|
8260
|
-
return /* @__PURE__ */ jsxs(
|
|
8261
|
-
|
|
8262
|
-
|
|
8263
|
-
|
|
8264
|
-
|
|
8265
|
-
|
|
8266
|
-
|
|
8267
|
-
|
|
8268
|
-
|
|
8269
|
-
|
|
8270
|
-
|
|
8271
|
-
|
|
8272
|
-
|
|
8273
|
-
|
|
8274
|
-
|
|
8275
|
-
|
|
8276
|
-
|
|
8277
|
-
|
|
8278
|
-
|
|
8279
|
-
|
|
8280
|
-
/* @__PURE__ */ jsx(
|
|
8281
|
-
|
|
8282
|
-
/* @__PURE__ */
|
|
8283
|
-
|
|
8284
|
-
|
|
8285
|
-
|
|
8286
|
-
|
|
8287
|
-
|
|
8288
|
-
|
|
8289
|
-
|
|
8290
|
-
e
|
|
8291
|
-
|
|
8282
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
8283
|
+
/* @__PURE__ */ jsxs(
|
|
8284
|
+
AccordionItem,
|
|
8285
|
+
{
|
|
8286
|
+
value: String(passengerType.id),
|
|
8287
|
+
className: styles.accordionItem,
|
|
8288
|
+
children: [
|
|
8289
|
+
/* @__PURE__ */ jsxs(
|
|
8290
|
+
AccordionHeader,
|
|
8291
|
+
{
|
|
8292
|
+
className: styles.accordionHeader,
|
|
8293
|
+
expandIconPosition: "end",
|
|
8294
|
+
children: [
|
|
8295
|
+
passengerType.passengerAgeName,
|
|
8296
|
+
" (",
|
|
8297
|
+
getTotalForType(passengerType.passengerAgeCode),
|
|
8298
|
+
")"
|
|
8299
|
+
]
|
|
8300
|
+
}
|
|
8301
|
+
),
|
|
8302
|
+
/* @__PURE__ */ jsx(AccordionPanel, { className: styles.accordionPanel, children: /* @__PURE__ */ jsx("div", { className: styles.nestedSection, children: classes.map((cls) => /* @__PURE__ */ jsxs("div", { className: styles.nestedRow, children: [
|
|
8303
|
+
/* @__PURE__ */ jsx(Body1, { children: (cls?.className || "")?.toUpperCase() }),
|
|
8304
|
+
/* @__PURE__ */ jsxs("div", { className: styles.passengerCount, children: [
|
|
8305
|
+
/* @__PURE__ */ jsx(
|
|
8306
|
+
Button,
|
|
8307
|
+
{
|
|
8308
|
+
appearance: "outline",
|
|
8309
|
+
className: styles.counterButton,
|
|
8310
|
+
size: "small",
|
|
8311
|
+
icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:subtract-12-regular" }),
|
|
8312
|
+
onClick: (e) => {
|
|
8313
|
+
e.stopPropagation();
|
|
8314
|
+
handleDecrement(
|
|
8315
|
+
passengerType.passengerAgeCode,
|
|
8316
|
+
cls.classCode
|
|
8317
|
+
);
|
|
8318
|
+
},
|
|
8319
|
+
disabled: getServiceCount(
|
|
8292
8320
|
passengerType.passengerAgeCode,
|
|
8293
8321
|
cls.classCode
|
|
8294
|
-
)
|
|
8295
|
-
}
|
|
8296
|
-
|
|
8297
|
-
|
|
8298
|
-
|
|
8299
|
-
|
|
8300
|
-
|
|
8301
|
-
|
|
8302
|
-
|
|
8303
|
-
|
|
8304
|
-
|
|
8305
|
-
|
|
8306
|
-
|
|
8307
|
-
|
|
8308
|
-
|
|
8309
|
-
Button,
|
|
8310
|
-
{
|
|
8311
|
-
appearance: "outline",
|
|
8312
|
-
className: styles.counterButton,
|
|
8313
|
-
size: "small",
|
|
8314
|
-
icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:add-12-regular" }),
|
|
8315
|
-
disabled: getServiceCount(
|
|
8316
|
-
passengerType.passengerAgeCode,
|
|
8317
|
-
cls.classCode
|
|
8318
|
-
) >= cls.maxCapacity || totalPassengerCount >= maxPassengers,
|
|
8319
|
-
onClick: (e) => {
|
|
8320
|
-
e.stopPropagation();
|
|
8321
|
-
handleIncrement(
|
|
8322
|
+
) === 0
|
|
8323
|
+
}
|
|
8324
|
+
),
|
|
8325
|
+
/* @__PURE__ */ jsx(Body1, { className: styles.countText, children: getServiceCount(
|
|
8326
|
+
passengerType.passengerAgeCode,
|
|
8327
|
+
cls.classCode
|
|
8328
|
+
) }),
|
|
8329
|
+
/* @__PURE__ */ jsx(
|
|
8330
|
+
Button,
|
|
8331
|
+
{
|
|
8332
|
+
appearance: "outline",
|
|
8333
|
+
className: styles.counterButton,
|
|
8334
|
+
size: "small",
|
|
8335
|
+
icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:add-12-regular" }),
|
|
8336
|
+
disabled: getServiceCount(
|
|
8322
8337
|
passengerType.passengerAgeCode,
|
|
8323
8338
|
cls.classCode
|
|
8324
|
-
)
|
|
8339
|
+
) >= cls.maxCapacity || totalPassengerCount >= maxPassengers,
|
|
8340
|
+
onClick: (e) => {
|
|
8341
|
+
e.stopPropagation();
|
|
8342
|
+
handleIncrement(
|
|
8343
|
+
passengerType.passengerAgeCode,
|
|
8344
|
+
cls.classCode
|
|
8345
|
+
);
|
|
8346
|
+
}
|
|
8325
8347
|
}
|
|
8326
|
-
|
|
8327
|
-
)
|
|
8328
|
-
] })
|
|
8329
|
-
]
|
|
8330
|
-
|
|
8331
|
-
|
|
8332
|
-
|
|
8333
|
-
|
|
8348
|
+
)
|
|
8349
|
+
] })
|
|
8350
|
+
] }, cls.id)) }) })
|
|
8351
|
+
]
|
|
8352
|
+
},
|
|
8353
|
+
passengerType.id
|
|
8354
|
+
),
|
|
8355
|
+
companionWarnings.has(
|
|
8356
|
+
passengerType.passengerAgeCode
|
|
8357
|
+
) && /* @__PURE__ */ jsxs("div", { className: styles.warningText, children: [
|
|
8358
|
+
/* @__PURE__ */ jsx(
|
|
8359
|
+
Icon,
|
|
8360
|
+
{
|
|
8361
|
+
icon: "fluent:warning-12-filled",
|
|
8362
|
+
style: {
|
|
8363
|
+
fontSize: "16px",
|
|
8364
|
+
color: "#E87511",
|
|
8365
|
+
flexShrink: 0
|
|
8366
|
+
}
|
|
8367
|
+
}
|
|
8368
|
+
),
|
|
8369
|
+
passengerType.passengerAgeCode === "CHILD" ? mergedLabels.childCompanionWarning : mergedLabels.infantCompanionWarning
|
|
8370
|
+
] })
|
|
8371
|
+
] });
|
|
8334
8372
|
})
|
|
8335
8373
|
}
|
|
8336
8374
|
),
|
|
@@ -8341,6 +8379,7 @@ var ModalTotalPassengers = ({
|
|
|
8341
8379
|
size: "medium",
|
|
8342
8380
|
className: styles.submitButton,
|
|
8343
8381
|
onClick: handleSave,
|
|
8382
|
+
disabled: totalPassengerCount === 0,
|
|
8344
8383
|
children: mergedLabels.saveButton
|
|
8345
8384
|
}
|
|
8346
8385
|
)
|