@asdp/ferryui 0.1.22-dev.10168 → 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.d.mts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -7931,7 +7931,9 @@ var DEFAULT_LABELS14 = {
|
|
|
7931
7931
|
loading: "Memuat...",
|
|
7932
7932
|
saveButton: "Simpan",
|
|
7933
7933
|
closeAriaLabel: "Tutup",
|
|
7934
|
-
emptyContent: "Kelas Penumpang"
|
|
7934
|
+
emptyContent: "Kelas Penumpang",
|
|
7935
|
+
childCompanionWarning: "Anak harus didampingi minimal 1 dewasa atau lansia.",
|
|
7936
|
+
infantCompanionWarning: "Bayi harus didampingi minimal 1 dewasa atau lansia."
|
|
7935
7937
|
},
|
|
7936
7938
|
en: {
|
|
7937
7939
|
title: "Select Total Passengers",
|
|
@@ -7939,7 +7941,9 @@ var DEFAULT_LABELS14 = {
|
|
|
7939
7941
|
loading: "Loading...",
|
|
7940
7942
|
saveButton: "Save",
|
|
7941
7943
|
closeAriaLabel: "Close",
|
|
7942
|
-
emptyContent: "Passengers Class"
|
|
7944
|
+
emptyContent: "Passengers Class",
|
|
7945
|
+
childCompanionWarning: "Children must be accompanied by at least 1 adult or elderly.",
|
|
7946
|
+
infantCompanionWarning: "Infants must be accompanied by at least 1 adult or elderly."
|
|
7943
7947
|
}
|
|
7944
7948
|
};
|
|
7945
7949
|
var useStyles15 = reactComponents.makeStyles({
|
|
@@ -8012,6 +8016,14 @@ var useStyles15 = reactComponents.makeStyles({
|
|
|
8012
8016
|
},
|
|
8013
8017
|
accordionPanel: {
|
|
8014
8018
|
margin: 0
|
|
8019
|
+
},
|
|
8020
|
+
warningText: {
|
|
8021
|
+
display: "flex",
|
|
8022
|
+
alignItems: "center",
|
|
8023
|
+
gap: "6px",
|
|
8024
|
+
marginBottom: "1rem",
|
|
8025
|
+
fontSize: reactComponents.tokens.fontSizeBase300,
|
|
8026
|
+
color: "#E87511"
|
|
8015
8027
|
}
|
|
8016
8028
|
});
|
|
8017
8029
|
var TotalPassengersListSkeleton = ({
|
|
@@ -8090,6 +8102,9 @@ var ModalTotalPassengers = ({
|
|
|
8090
8102
|
const mergedLabels = { ...DEFAULT_LABELS14[language], ...labels };
|
|
8091
8103
|
const [passengers, setPassengers] = React.useState([]);
|
|
8092
8104
|
const [openItems, setOpenItems] = React.useState([]);
|
|
8105
|
+
const [companionWarnings, setCompanionWarnings] = React.useState(
|
|
8106
|
+
/* @__PURE__ */ new Set()
|
|
8107
|
+
);
|
|
8093
8108
|
const defaultInfoMessage = mergedLabels.infoMessage.replace(
|
|
8094
8109
|
"{maxPassengers}",
|
|
8095
8110
|
String(maxPassengers)
|
|
@@ -8147,13 +8162,6 @@ var ModalTotalPassengers = ({
|
|
|
8147
8162
|
const cls = passenger.classes.find((c) => c.classCode === classCode);
|
|
8148
8163
|
return cls?.count ?? 0;
|
|
8149
8164
|
};
|
|
8150
|
-
const getTotalCountForType = (passengerAgeCode) => {
|
|
8151
|
-
const passenger = passengers.find(
|
|
8152
|
-
(p) => p.passengerAgeCode === passengerAgeCode
|
|
8153
|
-
);
|
|
8154
|
-
if (!passenger) return 0;
|
|
8155
|
-
return passenger.classes.reduce((sum, cls) => sum + (cls.count ?? 0), 0);
|
|
8156
|
-
};
|
|
8157
8165
|
const getTotalForType = (passengerAgeCode) => {
|
|
8158
8166
|
const passenger = passengers.find(
|
|
8159
8167
|
(p) => p.passengerAgeCode === passengerAgeCode
|
|
@@ -8172,6 +8180,20 @@ var ModalTotalPassengers = ({
|
|
|
8172
8180
|
(total, passenger) => total + passenger.classes.reduce((sum, cls) => sum + (cls.count ?? 0), 0),
|
|
8173
8181
|
0
|
|
8174
8182
|
);
|
|
8183
|
+
React.useEffect(() => {
|
|
8184
|
+
const warnings = /* @__PURE__ */ new Set();
|
|
8185
|
+
const hasAdultOrElderly = passengers.some(
|
|
8186
|
+
(p) => (p.passengerAgeCode === "ADULT" || p.passengerAgeCode === "ELDERLY") && p.classes.some((cls) => (cls.count ?? 0) > 0)
|
|
8187
|
+
);
|
|
8188
|
+
if (!hasAdultOrElderly) {
|
|
8189
|
+
passengers.forEach((p) => {
|
|
8190
|
+
if ((p.passengerAgeCode === "CHILD" || p.passengerAgeCode === "INFANT") && p.classes.some((cls) => (cls.count ?? 0) > 0)) {
|
|
8191
|
+
warnings.add(p.passengerAgeCode);
|
|
8192
|
+
}
|
|
8193
|
+
});
|
|
8194
|
+
}
|
|
8195
|
+
setCompanionWarnings(warnings);
|
|
8196
|
+
}, [passengers]);
|
|
8175
8197
|
const handleIncrement = (passengerAgeCode, classCode) => {
|
|
8176
8198
|
setPassengers(
|
|
8177
8199
|
(prev) => prev.map((passenger) => {
|
|
@@ -8266,80 +8288,96 @@ var ModalTotalPassengers = ({
|
|
|
8266
8288
|
className: styles.passengerSection,
|
|
8267
8289
|
children: passengerTypes.map((passengerType) => {
|
|
8268
8290
|
const classes = passengerType.classes || [];
|
|
8269
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8270
|
-
|
|
8271
|
-
|
|
8272
|
-
|
|
8273
|
-
|
|
8274
|
-
|
|
8275
|
-
|
|
8276
|
-
|
|
8277
|
-
|
|
8278
|
-
|
|
8279
|
-
|
|
8280
|
-
|
|
8281
|
-
|
|
8282
|
-
|
|
8283
|
-
|
|
8284
|
-
|
|
8285
|
-
|
|
8286
|
-
|
|
8287
|
-
|
|
8288
|
-
|
|
8289
|
-
/* @__PURE__ */ jsxRuntime.jsx(reactComponents.
|
|
8290
|
-
|
|
8291
|
-
/* @__PURE__ */ jsxRuntime.
|
|
8292
|
-
|
|
8293
|
-
|
|
8294
|
-
|
|
8295
|
-
|
|
8296
|
-
|
|
8297
|
-
|
|
8298
|
-
|
|
8299
|
-
e
|
|
8300
|
-
|
|
8291
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
8292
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
8293
|
+
reactComponents.AccordionItem,
|
|
8294
|
+
{
|
|
8295
|
+
value: String(passengerType.id),
|
|
8296
|
+
className: styles.accordionItem,
|
|
8297
|
+
children: [
|
|
8298
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
8299
|
+
reactComponents.AccordionHeader,
|
|
8300
|
+
{
|
|
8301
|
+
className: styles.accordionHeader,
|
|
8302
|
+
expandIconPosition: "end",
|
|
8303
|
+
children: [
|
|
8304
|
+
passengerType.passengerAgeName,
|
|
8305
|
+
" (",
|
|
8306
|
+
getTotalForType(passengerType.passengerAgeCode),
|
|
8307
|
+
")"
|
|
8308
|
+
]
|
|
8309
|
+
}
|
|
8310
|
+
),
|
|
8311
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactComponents.AccordionPanel, { className: styles.accordionPanel, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.nestedSection, children: classes.map((cls) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.nestedRow, children: [
|
|
8312
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: (cls?.className || "")?.toUpperCase() }),
|
|
8313
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.passengerCount, children: [
|
|
8314
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8315
|
+
reactComponents.Button,
|
|
8316
|
+
{
|
|
8317
|
+
appearance: "outline",
|
|
8318
|
+
className: styles.counterButton,
|
|
8319
|
+
size: "small",
|
|
8320
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:subtract-12-regular" }),
|
|
8321
|
+
onClick: (e) => {
|
|
8322
|
+
e.stopPropagation();
|
|
8323
|
+
handleDecrement(
|
|
8324
|
+
passengerType.passengerAgeCode,
|
|
8325
|
+
cls.classCode
|
|
8326
|
+
);
|
|
8327
|
+
},
|
|
8328
|
+
disabled: getServiceCount(
|
|
8301
8329
|
passengerType.passengerAgeCode,
|
|
8302
8330
|
cls.classCode
|
|
8303
|
-
)
|
|
8304
|
-
}
|
|
8305
|
-
|
|
8306
|
-
|
|
8307
|
-
|
|
8308
|
-
|
|
8309
|
-
|
|
8310
|
-
|
|
8311
|
-
|
|
8312
|
-
|
|
8313
|
-
|
|
8314
|
-
|
|
8315
|
-
|
|
8316
|
-
|
|
8317
|
-
|
|
8318
|
-
reactComponents.Button,
|
|
8319
|
-
{
|
|
8320
|
-
appearance: "outline",
|
|
8321
|
-
className: styles.counterButton,
|
|
8322
|
-
size: "small",
|
|
8323
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:add-12-regular" }),
|
|
8324
|
-
disabled: getServiceCount(
|
|
8325
|
-
passengerType.passengerAgeCode,
|
|
8326
|
-
cls.classCode
|
|
8327
|
-
) >= cls.maxCapacity || totalPassengerCount >= maxPassengers,
|
|
8328
|
-
onClick: (e) => {
|
|
8329
|
-
e.stopPropagation();
|
|
8330
|
-
handleIncrement(
|
|
8331
|
+
) === 0
|
|
8332
|
+
}
|
|
8333
|
+
),
|
|
8334
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { className: styles.countText, children: getServiceCount(
|
|
8335
|
+
passengerType.passengerAgeCode,
|
|
8336
|
+
cls.classCode
|
|
8337
|
+
) }),
|
|
8338
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8339
|
+
reactComponents.Button,
|
|
8340
|
+
{
|
|
8341
|
+
appearance: "outline",
|
|
8342
|
+
className: styles.counterButton,
|
|
8343
|
+
size: "small",
|
|
8344
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:add-12-regular" }),
|
|
8345
|
+
disabled: getServiceCount(
|
|
8331
8346
|
passengerType.passengerAgeCode,
|
|
8332
8347
|
cls.classCode
|
|
8333
|
-
)
|
|
8348
|
+
) >= cls.maxCapacity || totalPassengerCount >= maxPassengers,
|
|
8349
|
+
onClick: (e) => {
|
|
8350
|
+
e.stopPropagation();
|
|
8351
|
+
handleIncrement(
|
|
8352
|
+
passengerType.passengerAgeCode,
|
|
8353
|
+
cls.classCode
|
|
8354
|
+
);
|
|
8355
|
+
}
|
|
8334
8356
|
}
|
|
8335
|
-
|
|
8336
|
-
)
|
|
8337
|
-
] })
|
|
8338
|
-
]
|
|
8339
|
-
|
|
8340
|
-
|
|
8341
|
-
|
|
8342
|
-
|
|
8357
|
+
)
|
|
8358
|
+
] })
|
|
8359
|
+
] }, cls.id)) }) })
|
|
8360
|
+
]
|
|
8361
|
+
},
|
|
8362
|
+
passengerType.id
|
|
8363
|
+
),
|
|
8364
|
+
companionWarnings.has(
|
|
8365
|
+
passengerType.passengerAgeCode
|
|
8366
|
+
) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.warningText, children: [
|
|
8367
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8368
|
+
react.Icon,
|
|
8369
|
+
{
|
|
8370
|
+
icon: "fluent:warning-12-filled",
|
|
8371
|
+
style: {
|
|
8372
|
+
fontSize: "16px",
|
|
8373
|
+
color: "#E87511",
|
|
8374
|
+
flexShrink: 0
|
|
8375
|
+
}
|
|
8376
|
+
}
|
|
8377
|
+
),
|
|
8378
|
+
passengerType.passengerAgeCode === "CHILD" ? mergedLabels.childCompanionWarning : mergedLabels.infantCompanionWarning
|
|
8379
|
+
] })
|
|
8380
|
+
] });
|
|
8343
8381
|
})
|
|
8344
8382
|
}
|
|
8345
8383
|
),
|
|
@@ -8350,6 +8388,7 @@ var ModalTotalPassengers = ({
|
|
|
8350
8388
|
size: "medium",
|
|
8351
8389
|
className: styles.submitButton,
|
|
8352
8390
|
onClick: handleSave,
|
|
8391
|
+
disabled: totalPassengerCount === 0,
|
|
8353
8392
|
children: mergedLabels.saveButton
|
|
8354
8393
|
}
|
|
8355
8394
|
)
|