@asdp/ferryui 0.1.22-dev.8945 → 0.1.22-dev.8990

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.mjs CHANGED
@@ -4386,7 +4386,8 @@ var DEFAULT_LABELS10 = {
4386
4386
  allHarborsHeader: "Semua Pelabuhan",
4387
4387
  loadingData: "Memuat data...",
4388
4388
  harborNotFound: "Pelabuhan tidak ditemukan",
4389
- closeAriaLabel: "Tutup"
4389
+ closeAriaLabel: "Tutup",
4390
+ popularHarborHeader: "Pelabuhan Populer"
4390
4391
  },
4391
4392
  en: {
4392
4393
  title: "Select Harbor",
@@ -4396,7 +4397,8 @@ var DEFAULT_LABELS10 = {
4396
4397
  allHarborsHeader: "All Harbors",
4397
4398
  loadingData: "Loading data...",
4398
4399
  harborNotFound: "Harbor not found",
4399
- closeAriaLabel: "Close"
4400
+ closeAriaLabel: "Close",
4401
+ popularHarborHeader: "Popular Harbor"
4400
4402
  }
4401
4403
  };
4402
4404
  var useStyles10 = makeStyles({
@@ -4473,8 +4475,8 @@ var useStyles10 = makeStyles({
4473
4475
  headerRow: {
4474
4476
  display: "flex",
4475
4477
  justifyContent: "space-between",
4476
- marginTop: "1rem",
4477
- marginBottom: "1rem"
4478
+ marginTop: "1rem"
4479
+ // marginBottom: "1rem",
4478
4480
  },
4479
4481
  dangerText: {
4480
4482
  color: tokens.colorStatusDangerForeground1
@@ -4528,7 +4530,8 @@ var ModalSearchHarbor = ({
4528
4530
  onToggleFavorite,
4529
4531
  onAddLastSearched,
4530
4532
  onRemoveLastSearched,
4531
- onClearLastSearched
4533
+ onClearLastSearched,
4534
+ popularHarbors
4532
4535
  }) => {
4533
4536
  const styles = useStyles10();
4534
4537
  const mergedLabels = { ...DEFAULT_LABELS10[language], ...labels };
@@ -4594,9 +4597,9 @@ var ModalSearchHarbor = ({
4594
4597
  iconPosition: "before",
4595
4598
  className: styles.circularButton,
4596
4599
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:ribbon-20-filled" }),
4597
- children: /* @__PURE__ */ jsx(Body1, { children: harbor.name })
4600
+ children: /* @__PURE__ */ jsx(Body1, { children: harbor.portName + ", " + harbor.branchName })
4598
4601
  },
4599
- harbor.id
4602
+ harbor.portId
4600
4603
  )) }),
4601
4604
  /* @__PURE__ */ jsx(Divider, {}),
4602
4605
  /* @__PURE__ */ jsxs("div", { className: styles.resultList, children: [
@@ -4626,20 +4629,41 @@ var ModalSearchHarbor = ({
4626
4629
  className: styles.iconMargin
4627
4630
  }
4628
4631
  ),
4629
- harbor.name
4632
+ harbor.portName + ", " + harbor.branchName
4630
4633
  ]
4631
4634
  }
4632
4635
  ),
4633
4636
  /* @__PURE__ */ jsx(
4634
4637
  Icon,
4635
4638
  {
4636
- onClick: () => onRemoveLastSearched(harbor.id),
4639
+ onClick: () => onRemoveLastSearched(harbor),
4637
4640
  icon: "fluent:dismiss-24-regular",
4638
4641
  color: tokens.colorStatusDangerForeground1,
4639
4642
  className: styles.cursorPointer
4640
4643
  }
4641
4644
  )
4642
- ] }, harbor.id)) }),
4645
+ ] }, harbor.portId)) }),
4646
+ /* @__PURE__ */ jsx(Divider, {})
4647
+ ] }),
4648
+ popularHarbors.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
4649
+ /* @__PURE__ */ jsx("div", { className: styles.headerRow, children: /* @__PURE__ */ jsx(Body1Strong, { children: mergedLabels.popularHarborHeader }) }),
4650
+ /* @__PURE__ */ jsx("div", { children: popularHarbors.map((harbor) => /* @__PURE__ */ jsx("div", { className: styles.historyItem, children: /* @__PURE__ */ jsxs(
4651
+ "div",
4652
+ {
4653
+ style: { cursor: "pointer" },
4654
+ onClick: () => handleSelect(harbor),
4655
+ children: [
4656
+ /* @__PURE__ */ jsx(
4657
+ Icon,
4658
+ {
4659
+ icon: "fluent:vehicle-ship-24-regular",
4660
+ className: styles.iconMargin
4661
+ }
4662
+ ),
4663
+ harbor.portName + ", " + harbor.branchName
4664
+ ]
4665
+ }
4666
+ ) }, harbor.portId)) }),
4643
4667
  /* @__PURE__ */ jsx(Divider, {})
4644
4668
  ] }),
4645
4669
  /* @__PURE__ */ jsx(Body1Strong, { className: styles.sectionTitle, children: mergedLabels.allHarborsHeader }),
@@ -4657,14 +4681,14 @@ var ModalSearchHarbor = ({
4657
4681
  className: styles.iconMargin
4658
4682
  }
4659
4683
  ),
4660
- harbor.name
4684
+ harbor.portName + ", " + harbor.branchName
4661
4685
  ]
4662
4686
  }
4663
4687
  ),
4664
4688
  /* @__PURE__ */ jsx(
4665
4689
  Icon,
4666
4690
  {
4667
- icon: favoriteHarbors.find((fav) => fav.id === harbor.id) ? "fluent:star-24-filled" : "fluent:star-24-regular",
4691
+ icon: harbor.isFavorite ? "fluent:star-24-filled" : "fluent:star-24-regular",
4668
4692
  color: tokens.colorBrandBackground,
4669
4693
  className: styles.cursorPointer,
4670
4694
  onClick: () => onToggleFavorite(harbor)
@@ -5212,7 +5236,6 @@ var ModalService = ({
5212
5236
  "div",
5213
5237
  {
5214
5238
  className: styles.serviceItem,
5215
- onClick: () => handleToggleService(service.serviceTypeId),
5216
5239
  children: [
5217
5240
  /* @__PURE__ */ jsxs("div", { className: styles.serviceContent, children: [
5218
5241
  /* @__PURE__ */ jsx(Body1, { className: styles.serviceName, children: service.serviceTypeName }),
@@ -5253,9 +5276,6 @@ var DEFAULT_LABELS13 = {
5253
5276
  infoMessage: "Anda dapat menambahkan hingga {maxPassengers} penumpang pada golongan kendaraan ini.",
5254
5277
  loading: "Memuat...",
5255
5278
  saveButton: "Simpan",
5256
- economy: "Ekonomi",
5257
- business: "Bisnis",
5258
- executive: "Eksekutif",
5259
5279
  closeAriaLabel: "Tutup"
5260
5280
  },
5261
5281
  en: {
@@ -5263,17 +5283,9 @@ var DEFAULT_LABELS13 = {
5263
5283
  infoMessage: "You can add up to {maxPassengers} passengers in this vehicle category.",
5264
5284
  loading: "Loading...",
5265
5285
  saveButton: "Save",
5266
- economy: "Economy",
5267
- business: "Business",
5268
- executive: "Executive",
5269
5286
  closeAriaLabel: "Close"
5270
5287
  }
5271
5288
  };
5272
- var DEFAULT_SERVICE_CLASSES = [
5273
- { id: 1, name: "Ekonomi", key: "ekonomi", serviceName: "ECONOMY", labelKey: "economy" },
5274
- { id: 2, name: "Bisnis", key: "bisnis", serviceName: "BUSINESS", labelKey: "business" },
5275
- { id: 3, name: "Eksekutif", key: "eksekutif", serviceName: "EXECUTIVE", labelKey: "executive" }
5276
- ];
5277
5289
  var useStyles13 = makeStyles({
5278
5290
  dialogSurface: {
5279
5291
  maxWidth: "600px",
@@ -5348,7 +5360,6 @@ var ModalTotalPassengers = ({
5348
5360
  onClose,
5349
5361
  title,
5350
5362
  passengerTypes,
5351
- serviceClasses = DEFAULT_SERVICE_CLASSES,
5352
5363
  selectedPassengers,
5353
5364
  onSave,
5354
5365
  isLoading = false,
@@ -5367,12 +5378,9 @@ var ModalTotalPassengers = ({
5367
5378
  if (passengerTypes.length === 0) return;
5368
5379
  const defaultPassengers = passengerTypes.map(
5369
5380
  (passengerType) => ({
5370
- passengerTypeId: passengerType.id,
5371
- passengerTypeCode: passengerType.passengerTypeCode,
5372
- passengerTypeName: passengerType.passengerTypeName,
5373
- services: serviceClasses.map((sc) => ({
5374
- serviceId: sc.id,
5375
- serviceName: sc.serviceName,
5381
+ ...passengerType,
5382
+ classes: (passengerType.classes || []).map((cls) => ({
5383
+ ...cls,
5376
5384
  count: 0,
5377
5385
  passengers: []
5378
5386
  }))
@@ -5380,28 +5388,28 @@ var ModalTotalPassengers = ({
5380
5388
  );
5381
5389
  if (selectedPassengers && selectedPassengers.length > 0) {
5382
5390
  const mergedPassengers = defaultPassengers.map((defaultP) => {
5383
- const selectedP = selectedPassengers.find(
5384
- (p) => p.passengerTypeCode === defaultP.passengerTypeCode
5391
+ const selectedP = selectedPassengers?.find(
5392
+ (p) => p.passengerAgeCode === defaultP.passengerAgeCode
5385
5393
  );
5386
5394
  if (selectedP) {
5387
- const mergedServices = defaultP.services.map((defaultS) => {
5388
- const selectedS = selectedP.services.find(
5389
- (s) => s.serviceName === defaultS.serviceName
5395
+ const mergedClasses = defaultP.classes.map((defaultC) => {
5396
+ const selectedC = selectedP.classes?.find(
5397
+ (c) => c.classCode === defaultC.classCode
5390
5398
  );
5391
- return selectedS ? {
5392
- ...defaultS,
5393
- count: selectedS.count,
5394
- passengers: selectedS.passengers || []
5395
- } : defaultS;
5399
+ return selectedC ? {
5400
+ ...defaultC,
5401
+ count: selectedC.count,
5402
+ passengers: selectedC.passengers || []
5403
+ } : defaultC;
5396
5404
  });
5397
- return { ...defaultP, services: mergedServices };
5405
+ return { ...defaultP, classes: mergedClasses };
5398
5406
  }
5399
5407
  return defaultP;
5400
5408
  });
5401
5409
  setPassengers(mergedPassengers);
5402
- const itemsWithData = selectedPassengers.filter((p) => p.services.some((s) => s.count > 0)).map((p) => {
5410
+ const itemsWithData = selectedPassengers.filter((p) => p.classes.some((c) => (c.count ?? 0) > 0)).map((p) => {
5403
5411
  const passengerType = passengerTypes.find(
5404
- (pt) => pt.passengerTypeCode === p.passengerTypeCode
5412
+ (pt) => pt.passengerAgeCode === p.passengerAgeCode
5405
5413
  );
5406
5414
  return passengerType ? String(passengerType.id) : "";
5407
5415
  }).filter((id) => id !== "");
@@ -5410,54 +5418,55 @@ var ModalTotalPassengers = ({
5410
5418
  setPassengers(defaultPassengers);
5411
5419
  setOpenItems([]);
5412
5420
  }
5413
- }, [open, passengerTypes, serviceClasses, selectedPassengers]);
5414
- const getServiceCount = (passengerTypeCode, serviceName) => {
5421
+ }, [open, passengerTypes, selectedPassengers]);
5422
+ const getServiceCount = (passengerAgeCode, classCode) => {
5415
5423
  const passenger = passengers.find(
5416
- (p) => p.passengerTypeCode === passengerTypeCode
5424
+ (p) => p.passengerAgeCode === passengerAgeCode
5417
5425
  );
5418
5426
  if (!passenger) return 0;
5419
- const service = passenger.services.find(
5420
- (s) => s.serviceName === serviceName
5427
+ const cls = passenger.classes.find(
5428
+ (c) => c.classCode === classCode
5421
5429
  );
5422
- return service?.count || 0;
5430
+ return cls?.count ?? 0;
5423
5431
  };
5424
- const getTotalForType = (passengerTypeCode) => {
5432
+ const getTotalForType = (passengerAgeCode) => {
5425
5433
  const passenger = passengers.find(
5426
- (p) => p.passengerTypeCode === passengerTypeCode
5434
+ (p) => p.passengerAgeCode === passengerAgeCode
5427
5435
  );
5428
5436
  if (!passenger) return "0";
5429
5437
  const parts = [];
5430
- passenger.services.forEach((service) => {
5431
- if (service.count > 0) {
5432
- const serviceClass = serviceClasses.find(
5433
- (sc) => sc.serviceName === service.serviceName
5434
- );
5435
- const serviceName = serviceClass ? mergedLabels[serviceClass.labelKey] : service.serviceName;
5436
- parts.push(`${service.count} ${serviceName}`);
5438
+ passenger.classes.forEach((cls) => {
5439
+ if ((cls.count ?? 0) > 0) {
5440
+ const displayName = cls.classCode?.toUpperCase();
5441
+ parts.push(`${cls.count} ${displayName}`);
5437
5442
  }
5438
5443
  });
5439
5444
  return parts.length > 0 ? parts.join(", ") : "0";
5440
5445
  };
5441
- const handleIncrement = (passengerTypeCode, serviceName) => {
5446
+ const totalPassengerCount = passengers.reduce(
5447
+ (total, passenger) => total + passenger.classes.reduce((sum, cls) => sum + (cls.count ?? 0), 0),
5448
+ 0
5449
+ );
5450
+ const handleIncrement = (passengerAgeCode, classCode) => {
5442
5451
  setPassengers(
5443
5452
  (prev) => prev.map((passenger) => {
5444
- if (passenger.passengerTypeCode === passengerTypeCode) {
5453
+ if (passenger.passengerAgeCode === passengerAgeCode) {
5445
5454
  return {
5446
5455
  ...passenger,
5447
- services: passenger.services.map((service) => {
5448
- if (service.serviceName === serviceName) {
5449
- const newCount = service.count + 1;
5450
- const newPassengers = [...service.passengers || []];
5456
+ classes: passenger.classes.map((cls) => {
5457
+ if (cls.classCode === classCode) {
5458
+ const newCount = (cls.count ?? 0) + 1;
5459
+ const newPassengers = [...cls.passengers || []];
5451
5460
  while (newPassengers.length < newCount) {
5452
5461
  newPassengers.push({});
5453
5462
  }
5454
5463
  return {
5455
- ...service,
5464
+ ...cls,
5456
5465
  count: newCount,
5457
5466
  passengers: newPassengers
5458
5467
  };
5459
5468
  }
5460
- return service;
5469
+ return cls;
5461
5470
  })
5462
5471
  };
5463
5472
  }
@@ -5465,26 +5474,26 @@ var ModalTotalPassengers = ({
5465
5474
  })
5466
5475
  );
5467
5476
  };
5468
- const handleDecrement = (passengerTypeCode, serviceName) => {
5477
+ const handleDecrement = (passengerAgeCode, classCode) => {
5469
5478
  setPassengers(
5470
5479
  (prev) => prev.map((passenger) => {
5471
- if (passenger.passengerTypeCode === passengerTypeCode) {
5480
+ if (passenger.passengerAgeCode === passengerAgeCode) {
5472
5481
  return {
5473
5482
  ...passenger,
5474
- services: passenger.services.map((service) => {
5475
- if (service.serviceName === serviceName && service.count > 0) {
5476
- const newCount = service.count - 1;
5477
- const newPassengers = (service.passengers || []).slice(
5483
+ classes: passenger.classes.map((cls) => {
5484
+ if (cls.classCode === classCode && (cls.count ?? 0) > 0) {
5485
+ const newCount = (cls.count ?? 0) - 1;
5486
+ const newPassengers = (cls.passengers || []).slice(
5478
5487
  0,
5479
5488
  newCount
5480
5489
  );
5481
5490
  return {
5482
- ...service,
5491
+ ...cls,
5483
5492
  count: newCount,
5484
5493
  passengers: newPassengers
5485
5494
  };
5486
5495
  }
5487
- return service;
5496
+ return cls;
5488
5497
  })
5489
5498
  };
5490
5499
  }
@@ -5495,8 +5504,8 @@ var ModalTotalPassengers = ({
5495
5504
  const handleSave = () => {
5496
5505
  const filteredPassengers = passengers.map((passenger) => ({
5497
5506
  ...passenger,
5498
- services: passenger.services.filter((service) => service.count > 0)
5499
- })).filter((passenger) => passenger.services.length > 0);
5507
+ classes: passenger.classes.filter((cls) => (cls.count ?? 0) > 0)
5508
+ })).filter((passenger) => passenger.classes.length > 0);
5500
5509
  onSave(filteredPassengers);
5501
5510
  };
5502
5511
  return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: (_, data) => !data.open && onClose(), children: /* @__PURE__ */ jsx(DialogSurface, { children: /* @__PURE__ */ jsxs(DialogBody, { children: [
@@ -5527,6 +5536,7 @@ var ModalTotalPassengers = ({
5527
5536
  onToggle: (_, data) => setOpenItems(data.openItems),
5528
5537
  className: styles.passengerSection,
5529
5538
  children: passengerTypes.map((passengerType) => {
5539
+ const classes = passengerType.classes || [];
5530
5540
  return /* @__PURE__ */ jsxs(
5531
5541
  AccordionItem,
5532
5542
  {
@@ -5539,19 +5549,19 @@ var ModalTotalPassengers = ({
5539
5549
  className: styles.accordionHeader,
5540
5550
  expandIconPosition: "end",
5541
5551
  children: [
5542
- passengerType.passengerTypeName,
5552
+ passengerType.passengerAgeName,
5543
5553
  " (",
5544
- getTotalForType(passengerType.passengerTypeCode),
5554
+ getTotalForType(passengerType.passengerAgeCode),
5545
5555
  ")"
5546
5556
  ]
5547
5557
  }
5548
5558
  ),
5549
- /* @__PURE__ */ jsx(AccordionPanel, { className: styles.accordionPanel, children: /* @__PURE__ */ jsx("div", { className: styles.nestedSection, children: serviceClasses.map((service) => /* @__PURE__ */ jsxs(
5559
+ /* @__PURE__ */ jsx(AccordionPanel, { className: styles.accordionPanel, children: /* @__PURE__ */ jsx("div", { className: styles.nestedSection, children: classes.map((cls) => /* @__PURE__ */ jsxs(
5550
5560
  "div",
5551
5561
  {
5552
5562
  className: styles.nestedRow,
5553
5563
  children: [
5554
- /* @__PURE__ */ jsx(Body1, { children: mergedLabels[service.labelKey] }),
5564
+ /* @__PURE__ */ jsx(Body1, { children: cls.classCode.toUpperCase() }),
5555
5565
  /* @__PURE__ */ jsxs("div", { className: styles.passengerCount, children: [
5556
5566
  /* @__PURE__ */ jsx(
5557
5567
  Button,
@@ -5563,19 +5573,19 @@ var ModalTotalPassengers = ({
5563
5573
  onClick: (e) => {
5564
5574
  e.stopPropagation();
5565
5575
  handleDecrement(
5566
- passengerType.passengerTypeCode,
5567
- service.serviceName
5576
+ passengerType.passengerAgeCode,
5577
+ cls.classCode
5568
5578
  );
5569
5579
  },
5570
5580
  disabled: getServiceCount(
5571
- passengerType.passengerTypeCode,
5572
- service.serviceName
5581
+ passengerType.passengerAgeCode,
5582
+ cls.classCode
5573
5583
  ) === 0
5574
5584
  }
5575
5585
  ),
5576
5586
  /* @__PURE__ */ jsx(Body1, { className: styles.countText, children: getServiceCount(
5577
- passengerType.passengerTypeCode,
5578
- service.serviceName
5587
+ passengerType.passengerAgeCode,
5588
+ cls.classCode
5579
5589
  ) }),
5580
5590
  /* @__PURE__ */ jsx(
5581
5591
  Button,
@@ -5584,11 +5594,15 @@ var ModalTotalPassengers = ({
5584
5594
  className: styles.counterButton,
5585
5595
  size: "small",
5586
5596
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:add-12-regular" }),
5597
+ disabled: getServiceCount(
5598
+ passengerType.passengerAgeCode,
5599
+ cls.classCode
5600
+ ) >= cls.maxCapacity || totalPassengerCount >= maxPassengers,
5587
5601
  onClick: (e) => {
5588
5602
  e.stopPropagation();
5589
5603
  handleIncrement(
5590
- passengerType.passengerTypeCode,
5591
- service.serviceName
5604
+ passengerType.passengerAgeCode,
5605
+ cls.classCode
5592
5606
  );
5593
5607
  }
5594
5608
  }
@@ -5596,7 +5610,7 @@ var ModalTotalPassengers = ({
5596
5610
  ] })
5597
5611
  ]
5598
5612
  },
5599
- service.key
5613
+ cls.id
5600
5614
  )) }) })
5601
5615
  ]
5602
5616
  },
@@ -5705,22 +5719,22 @@ var ModalTypeOfService = ({
5705
5719
  }) => {
5706
5720
  const styles = useStyles14();
5707
5721
  const mergedLabels = { ...DEFAULT_LABELS14[language], ...labels };
5708
- const [selectedServiceTitle, setSelectedServiceTitle] = useState(
5709
- selectedService?.title || ""
5722
+ const [selectedServiceId, setSelectedServiceId] = useState(
5723
+ selectedService?.id || 0
5710
5724
  );
5711
5725
  const [openItems, setOpenItems] = useState(() => {
5712
- if (!selectedService) return void 0;
5726
+ if (!selectedService) return [];
5713
5727
  for (const item of serviceTypes) {
5714
- if (item.type === "accordion" && item.child.length > 0) {
5715
- const hasSelectedChild = item.child.some(
5716
- (child) => child.title === selectedService.title
5728
+ if (item.children && item.children.length > 0) {
5729
+ const hasSelectedChild = item.children.some(
5730
+ (child) => child.id === selectedService.id
5717
5731
  );
5718
5732
  if (hasSelectedChild) {
5719
- return item.id;
5733
+ return [item.id];
5720
5734
  }
5721
5735
  }
5722
5736
  }
5723
- return void 0;
5737
+ return [];
5724
5738
  });
5725
5739
  const defaultRenderImage = ({
5726
5740
  src,
@@ -5739,61 +5753,57 @@ var ModalTypeOfService = ({
5739
5753
  );
5740
5754
  const imageRenderer = renderImage || defaultRenderImage;
5741
5755
  useEffect(() => {
5742
- const newTitle = selectedService?.title || "";
5743
- if (newTitle !== selectedServiceTitle) {
5744
- setSelectedServiceTitle(newTitle);
5756
+ const newId = selectedService?.id || 0;
5757
+ if (newId !== selectedServiceId) {
5758
+ setSelectedServiceId(newId);
5745
5759
  }
5746
5760
  if (selectedService) {
5747
5761
  for (const item of serviceTypes) {
5748
- if (item.type === "accordion" && item.child.length > 0) {
5749
- const hasSelectedChild = item.child.some(
5750
- (child) => child.title === selectedService.title
5762
+ if (item.children && item.children.length > 0) {
5763
+ const hasSelectedChild = item.children.some(
5764
+ (child) => child.id === selectedService.id
5751
5765
  );
5752
- if (hasSelectedChild && openItems !== item.id) {
5753
- setOpenItems(item.id);
5766
+ if (hasSelectedChild && !openItems.includes(item.id)) {
5767
+ setOpenItems([item.id]);
5754
5768
  break;
5755
5769
  }
5756
5770
  }
5757
5771
  }
5758
- } else if (openItems !== void 0) {
5759
- setOpenItems(void 0);
5772
+ } else if (openItems.length > 0) {
5773
+ setOpenItems([]);
5760
5774
  }
5761
- }, [open, selectedService?.title]);
5775
+ }, [open, selectedService?.id]);
5762
5776
  const handleConfirm = () => {
5763
- if (selectedServiceTitle) {
5777
+ if (selectedServiceId) {
5764
5778
  let selectedItem = null;
5765
5779
  for (const item of serviceTypes) {
5766
- if (item.title === selectedServiceTitle) {
5780
+ if (item.id === selectedServiceId) {
5767
5781
  selectedItem = {
5768
5782
  id: item.id,
5769
- image: item.image,
5783
+ loadType: item.loadType,
5784
+ group: item.group,
5770
5785
  title: item.title,
5771
5786
  info: item.info,
5772
- price: item.price,
5773
- parentTitle: "",
5774
- parentId: 0,
5775
- type: item.type,
5776
- typeOfPassanger: item.typeOfPassanger,
5777
- child: []
5787
+ image: item.image,
5788
+ children: [],
5789
+ capacity: item.capacity
5778
5790
  };
5779
5791
  break;
5780
5792
  }
5781
- if (item.child && item.child.length > 0) {
5782
- const childItem = item.child.find(
5783
- (child) => child.title === selectedServiceTitle
5793
+ if (item.children && item.children.length > 0) {
5794
+ const childItem = item.children.find(
5795
+ (child) => child.id === selectedServiceId
5784
5796
  );
5785
5797
  if (childItem) {
5786
5798
  selectedItem = {
5787
5799
  id: childItem.id,
5788
- image: childItem.image,
5800
+ loadType: childItem.loadType,
5801
+ group: childItem.group,
5789
5802
  title: childItem.title,
5790
5803
  info: childItem.info,
5791
- price: childItem.price,
5792
- parentTitle: childItem.parentTitle,
5793
- parentId: childItem.parentId,
5794
- type: childItem.type,
5795
- typeOfPassanger: childItem.typeOfPassanger,
5796
- child: []
5804
+ image: childItem.image,
5805
+ children: [],
5806
+ capacity: childItem.capacity
5797
5807
  };
5798
5808
  break;
5799
5809
  }
@@ -5827,19 +5837,19 @@ var ModalTypeOfService = ({
5827
5837
  {
5828
5838
  collapsible: true,
5829
5839
  openItems,
5830
- onToggle: (_, data) => setOpenItems(data.openItems[0]),
5840
+ onToggle: (_, data) => setOpenItems(data.openItems),
5831
5841
  className: styles.passengerSection,
5832
5842
  children: /* @__PURE__ */ jsx(
5833
5843
  RadioGroup,
5834
5844
  {
5835
- value: selectedServiceTitle,
5836
- onChange: (_, data) => setSelectedServiceTitle(data.value),
5845
+ value: String(selectedServiceId),
5846
+ onChange: (_, data) => setSelectedServiceId(Number(data.value)),
5837
5847
  children: serviceTypes.map((item, index) => {
5838
- if (item.type === "accordion") {
5848
+ if (item.children.length > 0) {
5839
5849
  return /* @__PURE__ */ jsxs(
5840
5850
  AccordionItem,
5841
5851
  {
5842
- value: item.id,
5852
+ value: item?.id,
5843
5853
  className: styles.accordionItem,
5844
5854
  children: [
5845
5855
  /* @__PURE__ */ jsxs(
@@ -5850,7 +5860,7 @@ var ModalTypeOfService = ({
5850
5860
  children: [
5851
5861
  /* @__PURE__ */ jsx("div", { children: imageRenderer({
5852
5862
  src: item.image,
5853
- alt: mergedLabels.vehiclesAlt,
5863
+ alt: item.title,
5854
5864
  width: 74,
5855
5865
  height: 74
5856
5866
  }) }),
@@ -5861,7 +5871,7 @@ var ModalTypeOfService = ({
5861
5871
  ]
5862
5872
  }
5863
5873
  ),
5864
- /* @__PURE__ */ jsx(AccordionPanel, { className: styles.accordionBody, children: item.child.length > 0 && item.child.map((childItem, childIndex) => /* @__PURE__ */ jsxs(
5874
+ /* @__PURE__ */ jsx(AccordionPanel, { className: styles.accordionBody, children: item.children.length > 0 && item.children.map((childItem, childIndex) => /* @__PURE__ */ jsxs(
5865
5875
  "div",
5866
5876
  {
5867
5877
  className: mergeClasses(
@@ -5880,7 +5890,7 @@ var ModalTypeOfService = ({
5880
5890
  /* @__PURE__ */ jsx(Body1, { children: childItem.title }),
5881
5891
  /* @__PURE__ */ jsx(Caption1, { children: childItem.info })
5882
5892
  ] }),
5883
- /* @__PURE__ */ jsx(Radio, { value: childItem.title })
5893
+ /* @__PURE__ */ jsx(Radio, { value: String(childItem.id) })
5884
5894
  ]
5885
5895
  },
5886
5896
  childIndex
@@ -5889,7 +5899,7 @@ var ModalTypeOfService = ({
5889
5899
  },
5890
5900
  index
5891
5901
  );
5892
- } else if (item.type === "radio") {
5902
+ } else if (item.children.length === 0) {
5893
5903
  return /* @__PURE__ */ jsxs(
5894
5904
  "div",
5895
5905
  {
@@ -5916,7 +5926,7 @@ var ModalTypeOfService = ({
5916
5926
  ]
5917
5927
  }
5918
5928
  ),
5919
- /* @__PURE__ */ jsx(Radio, { value: item.title })
5929
+ /* @__PURE__ */ jsx(Radio, { value: String(item.id) })
5920
5930
  ]
5921
5931
  },
5922
5932
  index
@@ -5936,7 +5946,7 @@ var ModalTypeOfService = ({
5936
5946
  appearance: "primary",
5937
5947
  shape: "circular",
5938
5948
  onClick: handleConfirm,
5939
- disabled: !selectedServiceTitle,
5949
+ disabled: !selectedServiceId,
5940
5950
  children: mergedLabels.saveButton
5941
5951
  }
5942
5952
  )
@@ -8879,23 +8889,28 @@ var getBadgeConfig = (ticketClass) => {
8879
8889
  case "EKONOMI":
8880
8890
  case "ECONOMY":
8881
8891
  return {
8892
+ code: "ECONOMY",
8882
8893
  color: "#A74109",
8883
8894
  icon: "/assets/images/class/shield_badge_ekonomi.svg"
8884
8895
  };
8885
8896
  case "BISNIS":
8886
8897
  case "BUSINESS":
8887
8898
  return {
8899
+ code: "BUSINESS",
8888
8900
  color: "#859599",
8889
8901
  icon: "/assets/images/class/ribbon_badge_bisnis.svg"
8890
8902
  };
8891
8903
  case "EKSEKUTIF":
8904
+ case "EKSEKUTIVE":
8892
8905
  case "EXECUTIVE":
8893
8906
  return {
8907
+ code: "EXECUTIVE",
8894
8908
  color: "#C19C00",
8895
8909
  icon: "/assets/images/class/crown_badge_eksekutif.svg"
8896
8910
  };
8897
8911
  default:
8898
8912
  return {
8913
+ code: "",
8899
8914
  color: tokens.colorNeutralBackground3,
8900
8915
  icon: ""
8901
8916
  };
@@ -13191,6 +13206,6 @@ var CardProfileMenu = ({
13191
13206
  ) });
13192
13207
  };
13193
13208
 
13194
- export { BackgroundTicketCard_default as BackgroundTicketCard, BackgroundTicketCardVertical_default as BackgroundTicketCardVertical, COUNTRIES, CardAddon, CardBanner, CardBookingTicket, CardFAQ, CardMealCatalog, CardOrdererInfo, CardPassengerList, CardPaymentGuide, CardPaymentInfo, CardPaymentMethodList, CardPriceDetails, CardProfileMenu, CardPromo, CardReview, CardReviewPassenger, CardServiceMenu, CardStatusOrder, CardTicket, CardTicketSearch, DEFAULT_LABELS8 as CardTicketSearchDefaultLabels, CardTicketSearchSummary, DEFAULT_LABELS9 as CardTicketSearchSummaryDefaultLabels, CardVehicleDetail, CardVehicleOwnerForm, CarouselWithCustomNav, DEFAULT_DURATION_RANGE, DEFAULT_PRICE_RANGE, DEFAULT_SCROLL_AMOUNT, DEFAULT_SERVICE_CLASSES, DEFAULT_SERVICE_TYPES, DEFAULT_SORT_OPTIONS, DEFAULT_TIME_SLOTS, DEFAULT_VEHICLE_ICONS, DateFilter, DEFAULT_LABELS17 as DateFilterDefaultLabels, FileUpload_default as FileUpload, InputDynamic_default as InputDynamic, MODAL_PRESETS, ModalFilterTicket, DEFAULT_LABELS16 as ModalFilterTicketDefaultLabels, ModalIllustration, ModalListPassenger, ModalPassengerForm, ModalPriceDetail, ModalSearchHarbor, ModalSearchTicket, ModalSelectDate, ModalService, ModalTotalPassengers, ModalTypeOfService, SortMenu, Stepper, getBadgeConfig, getModalPreset, getSortLabel };
13209
+ export { BackgroundTicketCard_default as BackgroundTicketCard, BackgroundTicketCardVertical_default as BackgroundTicketCardVertical, COUNTRIES, CardAddon, CardBanner, CardBookingTicket, CardFAQ, CardMealCatalog, CardOrdererInfo, CardPassengerList, CardPaymentGuide, CardPaymentInfo, CardPaymentMethodList, CardPriceDetails, CardProfileMenu, CardPromo, CardReview, CardReviewPassenger, CardServiceMenu, CardStatusOrder, CardTicket, CardTicketSearch, DEFAULT_LABELS8 as CardTicketSearchDefaultLabels, CardTicketSearchSummary, DEFAULT_LABELS9 as CardTicketSearchSummaryDefaultLabels, CardVehicleDetail, CardVehicleOwnerForm, CarouselWithCustomNav, DEFAULT_DURATION_RANGE, DEFAULT_PRICE_RANGE, DEFAULT_SCROLL_AMOUNT, DEFAULT_SERVICE_TYPES, DEFAULT_SORT_OPTIONS, DEFAULT_TIME_SLOTS, DEFAULT_VEHICLE_ICONS, DateFilter, DEFAULT_LABELS17 as DateFilterDefaultLabels, FileUpload_default as FileUpload, InputDynamic_default as InputDynamic, MODAL_PRESETS, ModalFilterTicket, DEFAULT_LABELS16 as ModalFilterTicketDefaultLabels, ModalIllustration, ModalListPassenger, ModalPassengerForm, ModalPriceDetail, ModalSearchHarbor, ModalSearchTicket, ModalSelectDate, ModalService, ModalTotalPassengers, ModalTypeOfService, SortMenu, Stepper, getBadgeConfig, getModalPreset, getSortLabel };
13195
13210
  //# sourceMappingURL=index.mjs.map
13196
13211
  //# sourceMappingURL=index.mjs.map