@asdp/ferryui 0.1.22-dev.10166 → 0.1.22-dev.10167

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
@@ -5467,7 +5467,7 @@ var DEFAULT_LABELS8 = {
5467
5467
  id: {
5468
5468
  fromLabel: "Dari",
5469
5469
  toLabel: "Ke",
5470
- departureDateLabel: "Tanggal Berangkat",
5470
+ departureDateLabel: "Tanggal Pergi",
5471
5471
  returnDateLabel: "Tanggal Pulang",
5472
5472
  serviceClassLabel: "Jenis Layanan",
5473
5473
  typeOfServiceLabel: "Jenis Penumpang",
@@ -5476,14 +5476,14 @@ var DEFAULT_LABELS8 = {
5476
5476
  searchButton: "Cari Tiket",
5477
5477
  placeholderPort: "Pilih Pelabuhan Asal",
5478
5478
  placeholderDestinationPort: "Pilih Pelabuhan Tujuan",
5479
- placeholderDepartureDate: "Pilih Tanggal Keberangkatan",
5480
- placeholderReturnDate: "Pilih Tanggal Kepulangan",
5479
+ placeholderDepartureDate: "Pilih Tanggal Pergi",
5480
+ placeholderReturnDate: "Pilih Tanggal Pulang",
5481
5481
  placeholderTypeClass: "Pilih Jenis Layanan",
5482
5482
  placeholderTypeService: "Pilih Jenis Penumpang",
5483
5483
  placeholderPassenger: "Pilih Jumlah Penumpang",
5484
5484
  errorOriginRequired: "Pelabuhan asal wajib diisi",
5485
5485
  errorDestinationRequired: "Pelabuhan tujuan wajib diisi",
5486
- errorDepartureDateRequired: "Tanggal Berangkat wajib diisi",
5486
+ errorDepartureDateRequired: "Tanggal Pergi wajib diisi",
5487
5487
  errorReturnDateRequired: "Tanggal Pulang wajib diisi",
5488
5488
  switchAriaLabel: "Tukar asal dan tujuan",
5489
5489
  ferryDescription: "Layanan Penyeberangan Ferry ASDP",
@@ -6173,7 +6173,8 @@ var DEFAULT_LABELS9 = {
6173
6173
  id: {
6174
6174
  originHarbor: "Pelabuhan Keberangkatan",
6175
6175
  destinationHarbor: "Pelabuhan Tujuan",
6176
- departureDate: "Tanggal Keberangkatan",
6176
+ departureDate: "Tanggal Pergi",
6177
+ returnDate: "Tanggal Pulang",
6177
6178
  serviceClass: "Jenis Layanan",
6178
6179
  typeOfService: "Jenis Penumpang",
6179
6180
  totalPassengers: "Jumlah Penumpang",
@@ -6184,6 +6185,7 @@ var DEFAULT_LABELS9 = {
6184
6185
  originHarbor: "Departure Port",
6185
6186
  destinationHarbor: "Destination Port",
6186
6187
  departureDate: "Departure Date",
6188
+ returnDate: "Return Date",
6187
6189
  serviceClass: "Service Type",
6188
6190
  typeOfService: "Type Of Passenger",
6189
6191
  totalPassengers: "Total Passengers",
@@ -6261,10 +6263,12 @@ var useStyles10 = makeStyles({
6261
6263
  }
6262
6264
  });
6263
6265
  var CardTicketSearchSummary = ({
6266
+ showReturnDate = false,
6264
6267
  language = "id",
6265
6268
  originHarbor,
6266
6269
  destinationHarbor,
6267
6270
  departureDate,
6271
+ returnDate,
6268
6272
  serviceClass,
6269
6273
  typeOfService,
6270
6274
  totalPassengers,
@@ -6460,8 +6464,8 @@ var CardTicketSearchSummary = ({
6460
6464
  children: /* @__PURE__ */ jsx(
6461
6465
  RenderField,
6462
6466
  {
6463
- label: mergedLabels.departureDate,
6464
- value: departureDate,
6467
+ label: showReturnDate ? mergedLabels.returnDate : mergedLabels.departureDate,
6468
+ value: showReturnDate ? returnDate : departureDate,
6465
6469
  icon: "fluent:calendar-24-regular"
6466
6470
  }
6467
6471
  )
@@ -7332,6 +7336,10 @@ var ModalSelectDate = ({
7332
7336
  }) => {
7333
7337
  const styles = useStyles13();
7334
7338
  const mergedLabels = { ...DEFAULT_LABELS12[language], ...labels };
7339
+ const isSameCalendarDay = (first, second) => {
7340
+ if (!first || !second) return false;
7341
+ return moment(first).isSame(second, "day");
7342
+ };
7335
7343
  useEffect(() => {
7336
7344
  moment.locale(language === "id" ? "id" : "en");
7337
7345
  }, [language]);
@@ -7343,24 +7351,26 @@ var ModalSelectDate = ({
7343
7351
  );
7344
7352
  const [hoveredDate, setHoveredDate] = useState();
7345
7353
  const [activeTab, setActiveTab] = useState(initialTab);
7346
- const previewEndDate = useMemo(() => {
7347
- if (selectedEndDate) return selectedEndDate;
7348
- if (selectedDate && hoveredDate && hoveredDate > selectedDate) {
7349
- return hoveredDate;
7354
+ const previewRange = useMemo(() => {
7355
+ if (selectedEndDate) {
7356
+ return { start: selectedDate, end: selectedEndDate };
7350
7357
  }
7351
- return void 0;
7358
+ if (selectedDate && hoveredDate && !isSameCalendarDay(hoveredDate, selectedDate)) {
7359
+ const earlier = hoveredDate < selectedDate ? hoveredDate : selectedDate;
7360
+ const later = hoveredDate > selectedDate ? hoveredDate : selectedDate;
7361
+ return { start: earlier, end: later };
7362
+ }
7363
+ return { start: selectedDate, end: void 0 };
7352
7364
  }, [hoveredDate, selectedDate, selectedEndDate]);
7353
- const isSameCalendarDay = (first, second) => {
7354
- if (!first || !second) return false;
7355
- return moment(first).isSame(second, "day");
7356
- };
7365
+ const prevOpenRef = useRef(false);
7357
7366
  useEffect(() => {
7358
- if (open) {
7367
+ if (open && !prevOpenRef.current) {
7359
7368
  setSelectedDate(selectedDepartureDate);
7360
7369
  setSelectedEndDate(selectedReturnDate);
7361
7370
  setActiveTab(initialTab);
7362
7371
  setHoveredDate(void 0);
7363
7372
  }
7373
+ prevOpenRef.current = open;
7364
7374
  }, [open, selectedDepartureDate, selectedReturnDate, initialTab]);
7365
7375
  const handleTabChange = (tab) => {
7366
7376
  setActiveTab(tab);
@@ -7384,18 +7394,19 @@ var ModalSelectDate = ({
7384
7394
  setHoveredDate(void 0);
7385
7395
  onSelectDepartureDate(date);
7386
7396
  } else {
7387
- if (date < currentStart) {
7388
- setSelectedEndDate(currentStart);
7397
+ const earlier = date < currentStart ? date : currentStart;
7398
+ const later = date > currentStart ? date : currentStart;
7399
+ if (isSameCalendarDay(date, currentStart)) {
7389
7400
  setSelectedDate(date);
7390
- onSelectDepartureDate(date);
7391
- if (onSelectReturnDate) {
7392
- onSelectReturnDate(currentStart);
7393
- }
7394
- } else {
7395
- setSelectedEndDate(date);
7396
- if (onSelectReturnDate) {
7397
- onSelectReturnDate(date);
7398
- }
7401
+ setSelectedEndDate(void 0);
7402
+ setHoveredDate(void 0);
7403
+ return;
7404
+ }
7405
+ setSelectedDate(earlier);
7406
+ setSelectedEndDate(later);
7407
+ onSelectDepartureDate(earlier);
7408
+ if (onSelectReturnDate) {
7409
+ onSelectReturnDate(later);
7399
7410
  }
7400
7411
  setHoveredDate(void 0);
7401
7412
  handleClose();
@@ -7428,14 +7439,15 @@ var ModalSelectDate = ({
7428
7439
  element.onmouseleave = null;
7429
7440
  return;
7430
7441
  }
7431
- const endDateForVisual = previewEndDate;
7432
- const startTime = selectedDate.getTime();
7433
- const endTime = endDateForVisual?.getTime();
7442
+ const rangeStart = previewRange.start;
7443
+ const rangeEnd = previewRange.end;
7444
+ const startTime = rangeStart?.getTime();
7445
+ const endTime = rangeEnd?.getTime();
7434
7446
  const currentTime = date.getTime();
7435
- const isSameStartEnd = isSameCalendarDay(endDateForVisual, selectedDate);
7436
- const isStartDay = isSameCalendarDay(date, selectedDate);
7437
- const isEndDay = isSameCalendarDay(date, endDateForVisual);
7438
- if (isStartDay && (!endDateForVisual || isSameStartEnd)) {
7447
+ const isSameStartEnd = isSameCalendarDay(rangeStart, rangeEnd);
7448
+ const isStartDay = isSameCalendarDay(date, rangeStart);
7449
+ const isEndDay = isSameCalendarDay(date, rangeEnd);
7450
+ if (isStartDay && (!rangeEnd || isSameStartEnd)) {
7439
7451
  addTokens(styles.rangeSingle);
7440
7452
  } else {
7441
7453
  if (isStartDay) {
@@ -7445,12 +7457,11 @@ var ModalSelectDate = ({
7445
7457
  addTokens(styles.rangeEnd);
7446
7458
  }
7447
7459
  }
7448
- if (endTime && currentTime > startTime && currentTime < endTime) {
7460
+ if (startTime && endTime && currentTime > startTime && currentTime < endTime) {
7449
7461
  addTokens(selectedEndDate ? styles.rangeMiddle : styles.rangePreview);
7450
7462
  }
7451
7463
  if (!selectedEndDate) {
7452
7464
  element.onmouseenter = () => {
7453
- if (date < selectedDate) return;
7454
7465
  setHoveredDate((prev) => {
7455
7466
  if (isSameCalendarDay(prev, date)) {
7456
7467
  return prev;
@@ -7468,7 +7479,7 @@ var ModalSelectDate = ({
7468
7479
  },
7469
7480
  [
7470
7481
  activeTab,
7471
- previewEndDate,
7482
+ previewRange,
7472
7483
  selectedDate,
7473
7484
  selectedEndDate,
7474
7485
  styles.rangeEnd,
@@ -8848,8 +8859,8 @@ var DEFAULT_LABELS16 = {
8848
8859
  recommendation: "Rekomendasi",
8849
8860
  highestPrice: "Harga Tertinggi",
8850
8861
  lowestPrice: "Harga Terendah",
8851
- earliestDeparture: "Keberangkatan Paling Awal",
8852
- latestDeparture: "Keberangkatan Paling Akhir",
8862
+ earliestDeparture: "Pergi Paling Awal",
8863
+ latestDeparture: "Pergi Paling Akhir",
8853
8864
  resetSortAriaLabel: "Hapus pengurutan"
8854
8865
  },
8855
8866
  en: {
@@ -8875,8 +8886,8 @@ var DEFAULT_SORT_OPTIONS = [
8875
8886
  { value: "recommended", sortBy: "recommendation", sortDir: "ASC", label: "Rekomendasi" },
8876
8887
  { value: "price-desc", sortBy: "price", sortDir: "DESC", label: "Harga Tertinggi" },
8877
8888
  { value: "price-asc", sortBy: "price", sortDir: "ASC", label: "Harga Terendah" },
8878
- { value: "departure-asc", sortBy: "departure", sortDir: "ASC", label: "Keberangkatan Paling Awal" },
8879
- { value: "departure-desc", sortBy: "departure", sortDir: "DESC", label: "Keberangkatan Paling Akhir" }
8889
+ { value: "departure-asc", sortBy: "departure", sortDir: "ASC", label: "Pergi Paling Awal" },
8890
+ { value: "departure-desc", sortBy: "departure", sortDir: "DESC", label: "Pergi Paling Akhir" }
8880
8891
  ];
8881
8892
  var getSortLabel = (value) => {
8882
8893
  const option = DEFAULT_SORT_OPTIONS.find((opt) => opt.value === value);
@@ -9771,9 +9782,9 @@ var DEFAULT_LABELS19 = {
9771
9782
  toLabel: "Ke",
9772
9783
  toPlaceholder: "Pilih pelabuhan tujuan",
9773
9784
  toRequired: "Pelabuhan tujuan wajib diisi",
9774
- departureDateLabel: "Tanggal Berangkat",
9775
- departureDatePlaceholder: "Pilih Tanggal Berangkat",
9776
- departureDateRequired: "Tanggal Berangkat wajib diisi",
9785
+ departureDateLabel: "Tanggal Pergi",
9786
+ departureDatePlaceholder: "Pilih Tanggal Pergi",
9787
+ departureDateRequired: "Tanggal Pergi wajib diisi",
9777
9788
  roundTripLabel: "Pulang Pergi",
9778
9789
  returnDateLabel: "Tanggal Pulang",
9779
9790
  returnDatePlaceholder: "Pilih Tanggal Pulang",