@pisell/private-materials 6.12.197 → 6.12.198

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.
Files changed (77) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/meta.js +1 -1
  5. package/build/lowcode/render/default/view.js +18 -18
  6. package/build/lowcode/view.js +18 -18
  7. package/es/components/bigSale/components/BookingFloatingPanel/useBookingPanelController.js +1 -0
  8. package/es/components/bigSale/components/TimeBar/index.js +1 -0
  9. package/es/components/bigSale/dialog.js +1 -0
  10. package/es/components/bigSale/hooks/useBigSaleContext.js +1 -0
  11. package/es/components/bigSale/hooks/useSelectFloorMapResourceForBigSale.js +1 -0
  12. package/es/components/bigSale/hooks/useSyncBigSaleCartToCds.js +46 -17
  13. package/es/components/bigSale/index.js +1 -0
  14. package/es/components/bigSale/templates/Kiosk/index.js +1 -0
  15. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.js +5 -1
  16. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/index.js +9 -1
  17. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/SelectDate/index.js +3 -1
  18. package/es/components/eventBooking/components/bookingAvailabilityCalendar/index.d.ts +5 -0
  19. package/es/components/eventBooking/components/bookingAvailabilityCalendar/index.js +2 -1
  20. package/es/components/sharedSecondaryBigSale/SharedSecondaryBigSaleReceiver.js +1 -0
  21. package/es/index.js +2 -0
  22. package/es/plus/pisellReservation/data/bookingToReservationTables.js +1 -1
  23. package/es/plus/pisellReservation/data/reservationDataUtils.js +2 -8
  24. package/es/plus/pisellReservation/floorMap/floorPlanApi.js +1 -1
  25. package/es/plus/pisellReservation/floorMap/reservationMock.js +1 -1
  26. package/es/plus/pisellReservation/index.js +17 -0
  27. package/es/plus/pisellSaleSummaryDetail/index.js +2 -1
  28. package/es/plus/saleDetail/Base.js +1 -0
  29. package/es/plus/saleDetail/components/Client/hooks/useClientSelectorProps.js +1 -0
  30. package/es/plus/saleDetail/components/DetailActions/index.js +1 -0
  31. package/es/plus/saleDetail/components/SummaryFinancialSections/index.js +7 -3
  32. package/es/plus/saleDetail/index.js +1 -0
  33. package/es/plus/saleDetail/tmpl/B/components/Dish/index.js +1 -0
  34. package/es/plus/saleDetail/tmpl/B/components/Pay/index.js +2 -1
  35. package/es/plus/saleDetail/tmpl/B/index.js +1 -0
  36. package/es/plus/saleDetail/utils/paymentStatus.js +15 -0
  37. package/es/plus/salesSdk/index.js +52 -0
  38. package/es/plus/salesSdk/normalProductDetail/NormalProductDetailHostRenderer.js +105 -45
  39. package/es/plus/salesSdk/normalProductDetail/availabilityContextRouting.js +29 -0
  40. package/es/plus/salesSdk/utils/addProductWithFlowDebounced.js +1 -1
  41. package/es/plus/salesSdk/utils/bookingDate.js +1 -1
  42. package/es/plus/salesSdk/utils/customerAuthGate.js +1 -1
  43. package/es/plus/salesSdk/utils/enrichCartLineHolderDisplay.js +1 -1
  44. package/es/pro/Login2.0/AuthModal.d.ts +1 -1
  45. package/es/pro/Login2.0/index.d.ts +2 -1
  46. package/es/pro/Login2.0/shared/types.d.ts +1 -1
  47. package/es/pro/skuDetailModal/flow/modules/date/availabilityWindow.js +71 -0
  48. package/es/pro/skuDetailModal/flow/modules/date/index.js +24 -9
  49. package/es/pro/skuDetailModal/flow/modules/time/index.js +36 -17
  50. package/es/pro/skuDetailModal/flow/modules/time/posCustomTime.js +10 -24
  51. package/es/pro/skuDetailModal/flow/posAutoResolution.js +3 -1
  52. package/es/pro/skuDetailModal/flow/registry.d.ts +2 -2
  53. package/es/pro/skuDetailModal/flow/types.d.ts +8 -0
  54. package/es/pro/skuDetailModal/index.js +50 -12
  55. package/lib/components/bigSale/hooks/useSyncBigSaleCartToCds.js +46 -17
  56. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.js +5 -1
  57. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/index.js +9 -1
  58. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/SelectDate/index.js +3 -1
  59. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/index.d.ts +5 -0
  60. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/index.js +2 -1
  61. package/lib/plus/pisellReservation/data/reservationDataUtils.js +2 -8
  62. package/lib/plus/pisellSaleSummaryDetail/index.js +2 -1
  63. package/lib/plus/saleDetail/components/SummaryFinancialSections/index.js +6 -3
  64. package/lib/plus/saleDetail/tmpl/B/components/Pay/index.js +2 -1
  65. package/lib/plus/saleDetail/utils/paymentStatus.js +15 -0
  66. package/lib/plus/salesSdk/normalProductDetail/NormalProductDetailHostRenderer.js +105 -45
  67. package/lib/plus/salesSdk/normalProductDetail/availabilityContextRouting.js +32 -0
  68. package/lib/pro/skuDetailModal/flow/modules/date/availabilityWindow.js +74 -0
  69. package/lib/pro/skuDetailModal/flow/modules/date/index.js +24 -9
  70. package/lib/pro/skuDetailModal/flow/modules/time/index.js +39 -20
  71. package/lib/pro/skuDetailModal/flow/modules/time/posCustomTime.js +11 -24
  72. package/lib/pro/skuDetailModal/flow/posAutoResolution.js +4 -0
  73. package/lib/pro/skuDetailModal/flow/registry.d.ts +2 -2
  74. package/lib/pro/skuDetailModal/flow/types.d.ts +8 -0
  75. package/lib/pro/skuDetailModal/index.js +49 -11
  76. package/package.json +2 -2
  77. package/es/private-materials/lowcode/authmodal/meta.d.ts +0 -1
@@ -1,5 +1,6 @@
1
1
  import useEngineContext from "../../../../hooks/useEngineContext.js";
2
2
  import { subscribeBookingDateChange } from "../../../../plus/salesSdk/utils/bookingDate.js";
3
+ import "../../../../plus/salesSdk/index.js";
3
4
  import dayjs from "dayjs";
4
5
  import { useCallback, useEffect, useState } from "react";
5
6
  //#region src/components/bigSale/components/BookingFloatingPanel/useBookingPanelController.ts
@@ -4,6 +4,7 @@ import withResponsive from "../../../../responsive/withResponsive.js";
4
4
  import useInitLocalesOnce from "../../../../hooks/useInitLocalesOnce.js";
5
5
  import { subscribeBookingDateChange } from "../../../../plus/salesSdk/utils/bookingDate.js";
6
6
  import { useSalesSdkBookingContext } from "../../../../plus/salesSdk/context/SalesSdkBookingContext.js";
7
+ import "../../../../plus/salesSdk/index.js";
7
8
  import locales_default from "../../locales/index.js";
8
9
  import dayjs from "dayjs";
9
10
  import React, { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
@@ -5,6 +5,7 @@ import { buildInitBookingContextParams, collectBookingIdsFromTempOrder } from ".
5
5
  import { useSalesSdk } from "../../plus/salesSdk/hooks/useSalesSdk.js";
6
6
  import { useSalesSdkCart } from "../../plus/salesSdk/hooks/useSalesSdkCart.js";
7
7
  import { SalesSdkPrepareOrderSwitchContext, SalesSdkRootRefreshContext } from "../../plus/salesSdk/context/SalesSdkProvider.js";
8
+ import "../../plus/salesSdk/index.js";
8
9
  import { seedDineInReservationToCart } from "../../plus/pisellReservation/utils/seedDineInReservationToCart.js";
9
10
  import { isPersistedBigSaleOrderId } from "./utils/orderIdentity.js";
10
11
  import BigSale from "./index.js";
@@ -4,6 +4,7 @@ import { useSalesSdkCustomer } from "../../../plus/salesSdk/hooks/useSalesSdkCus
4
4
  import { useSalesSdkBookingContext } from "../../../plus/salesSdk/context/SalesSdkBookingContext.js";
5
5
  import { useSalesSdkSummary } from "../../../plus/salesSdk/hooks/useSalesSdkSummary.js";
6
6
  import { useSalesSdkProducts } from "../../../plus/salesSdk/hooks/useSalesSdkProducts.js";
7
+ import "../../../plus/salesSdk/index.js";
7
8
  import { useMemo } from "react";
8
9
  //#region src/components/bigSale/hooks/useBigSaleContext.ts
9
10
  /**
@@ -3,6 +3,7 @@ import useEngineContext from "../../../hooks/useEngineContext.js";
3
3
  import { buildInitBookingContextParams, collectBookingIdsFromTempOrder } from "../../../plus/salesSdk/utils/buildDefaultLoadProductsParams.js";
4
4
  import { useSalesSdkUIHosts } from "../../../plus/salesSdk/context/SalesSdkUIHostsContext.js";
5
5
  import { SalesSdkRootRefreshContext } from "../../../plus/salesSdk/context/SalesSdkProvider.js";
6
+ import "../../../plus/salesSdk/index.js";
6
7
  import { resolveOrderIdForHostActions } from "../../../plus/pisellReservation/components/bookingDetailModal/bookingDetailHostActions.js";
7
8
  import { usePicoCodingOpenData } from "../../../plus/pisellReservation/hooks/usePicoCodingOpenData.js";
8
9
  import { buildReplacementBookingResourcesFromReservationRow } from "../../../plus/pisellReservation/utils/reservationTicketBookingHostParams.js";
@@ -249,15 +249,18 @@ const buildCdsProductPayload = (cartLine, params) => {
249
249
  return payload;
250
250
  };
251
251
  const buildCartUpdatePayload = (context, params) => {
252
- var _context$summary, _context$sales, _summary$product_orig, _summary$total_amount, _summary$expect_amoun;
252
+ var _context$summary, _context$sales, _context$sales2, _bookingTicket$getOrd, _amountSnapshot$summa, _bookingTicket$getTem, _summary$product_orig, _context$cart, _ref, _amountSnapshot$total, _amountSnapshot$summa2, _amountSnapshot$summa3;
253
253
  const cartLines = getCartProductLines(context === null || context === void 0 ? void 0 : context.cart);
254
254
  if (!cartLines.length) return _objectSpread2({ currency_symbol: params.currencySymbol }, EMPTY_CART_UPDATE);
255
255
  const products = cartLines.map((cartLine) => buildCdsProductPayload(cartLine, params));
256
- const summary = (_context$summary = context.summary) === null || _context$summary === void 0 ? void 0 : _context$summary.summary;
256
+ const contextSummary = (_context$summary = context.summary) === null || _context$summary === void 0 ? void 0 : _context$summary.summary;
257
257
  const tempOrder = (_context$sales = context.sales) === null || _context$sales === void 0 ? void 0 : _context$sales.tempOrder;
258
- const payments = tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.payments;
258
+ const bookingTicket = (_context$sales2 = context.sales) === null || _context$sales2 === void 0 ? void 0 : _context$sales2.bookingTicket;
259
+ const amountSnapshot = bookingTicket === null || bookingTicket === void 0 || (_bookingTicket$getOrd = bookingTicket.getOrderAmountSnapshot) === null || _bookingTicket$getOrd === void 0 ? void 0 : _bookingTicket$getOrd.call(bookingTicket);
260
+ const summary = (_amountSnapshot$summa = amountSnapshot === null || amountSnapshot === void 0 ? void 0 : amountSnapshot.summary) !== null && _amountSnapshot$summa !== void 0 ? _amountSnapshot$summa : contextSummary;
261
+ const currentTempOrder = (bookingTicket === null || bookingTicket === void 0 || (_bookingTicket$getTem = bookingTicket.getTempOrder) === null || _bookingTicket$getTem === void 0 ? void 0 : _bookingTicket$getTem.call(bookingTicket)) || tempOrder;
262
+ const payments = currentTempOrder === null || currentTempOrder === void 0 ? void 0 : currentTempOrder.payments;
259
263
  const isTaxIncluded = Number(tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.is_price_include_tax) === 1;
260
- const hasPendingWalletPayment = toArray(payments).some(isPendingWalletPayment);
261
264
  const cartProducts = cartLines.map((cartLine) => cartLine.product);
262
265
  const fees = [
263
266
  {
@@ -279,7 +282,8 @@ const buildCartUpdatePayload = (context, params) => {
279
282
  type: "tax"
280
283
  });
281
284
  }
282
- fees.push(...collectOrderPassFees(tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.discount_list));
285
+ const cartOrderPassFees = collectOrderPassFees(context === null || context === void 0 || (_context$cart = context.cart) === null || _context$cart === void 0 ? void 0 : _context$cart.discountList);
286
+ fees.push(...cartOrderPassFees.length ? cartOrderPassFees : collectOrderPassFees(tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.discount_list));
283
287
  if (toFiniteNumber(tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.shop_discount) > 0) fees.push({
284
288
  isReduce: true,
285
289
  title: callLocaleText("pisell2.sale-detail.manual-order-adjustment"),
@@ -287,15 +291,16 @@ const buildCartUpdatePayload = (context, params) => {
287
291
  type: "order_discount"
288
292
  });
289
293
  fees.push(...collectWalletPaymentFees(payments, params.locale));
290
- const effectiveAmountDue = hasPendingWalletPayment ? resolveEffectiveSaleDetailAmountDue({
294
+ const effectiveAmountDue = resolveEffectiveSaleDetailAmountDue({
295
+ baseSalesAmountGap: amountSnapshot === null || amountSnapshot === void 0 ? void 0 : amountSnapshot.amountGap,
291
296
  amountGap: summary === null || summary === void 0 ? void 0 : summary.amount_gap,
292
- fallbackAmount: (_summary$total_amount = summary === null || summary === void 0 ? void 0 : summary.total_amount) !== null && _summary$total_amount !== void 0 ? _summary$total_amount : summary === null || summary === void 0 ? void 0 : summary.expect_amount,
293
- orderPaidAmount: summary === null || summary === void 0 ? void 0 : summary.order_paid_amount,
297
+ fallbackAmount: (_ref = (_amountSnapshot$total = amountSnapshot === null || amountSnapshot === void 0 ? void 0 : amountSnapshot.totalAmount) !== null && _amountSnapshot$total !== void 0 ? _amountSnapshot$total : summary === null || summary === void 0 ? void 0 : summary.total_amount) !== null && _ref !== void 0 ? _ref : summary === null || summary === void 0 ? void 0 : summary.expect_amount,
298
+ orderPaidAmount: (_amountSnapshot$summa2 = amountSnapshot === null || amountSnapshot === void 0 || (_amountSnapshot$summa3 = amountSnapshot.summary) === null || _amountSnapshot$summa3 === void 0 ? void 0 : _amountSnapshot$summa3.order_paid_amount) !== null && _amountSnapshot$summa2 !== void 0 ? _amountSnapshot$summa2 : summary === null || summary === void 0 ? void 0 : summary.order_paid_amount,
294
299
  payments
295
- }) : null;
300
+ });
296
301
  return {
297
302
  currency_symbol: params.currencySymbol,
298
- total: effectiveAmountDue !== null ? effectiveAmountDue.toFixed(2) : (_summary$expect_amoun = summary === null || summary === void 0 ? void 0 : summary.expect_amount) !== null && _summary$expect_amoun !== void 0 ? _summary$expect_amoun : "0",
303
+ total: effectiveAmountDue.toFixed(2),
299
304
  products,
300
305
  fees
301
306
  };
@@ -304,7 +309,7 @@ const buildCartUpdatePayload = (context, params) => {
304
309
  * Standard 大促模板购物车变更时,向 Native CDS 同步购物车快照。
305
310
  */
306
311
  function useSyncBigSaleCartToCds(context, options = {}) {
307
- var _context$cart, _context$cart2, _context$cart3, _context$summary2, _context$sales2, _context$sales3, _context$sales4;
312
+ var _context$cart2, _context$cart3, _context$cart4, _context$cart5, _context$summary2, _context$sales3, _context$sales4, _context$sales5, _context$sales7;
308
313
  const engineContext = useEngineContext();
309
314
  const { enabled = true } = options;
310
315
  useEffect(() => {
@@ -317,13 +322,37 @@ function useSyncBigSaleCartToCds(context, options = {}) {
317
322
  locale
318
323
  }));
319
324
  }, [
320
- context === null || context === void 0 || (_context$cart = context.cart) === null || _context$cart === void 0 ? void 0 : _context$cart.bookings,
321
- context === null || context === void 0 || (_context$cart2 = context.cart) === null || _context$cart2 === void 0 ? void 0 : _context$cart2.displayLines,
322
- context === null || context === void 0 || (_context$cart3 = context.cart) === null || _context$cart3 === void 0 ? void 0 : _context$cart3.items,
325
+ context === null || context === void 0 || (_context$cart2 = context.cart) === null || _context$cart2 === void 0 ? void 0 : _context$cart2.bookings,
326
+ context === null || context === void 0 || (_context$cart3 = context.cart) === null || _context$cart3 === void 0 ? void 0 : _context$cart3.discountList,
327
+ context === null || context === void 0 || (_context$cart4 = context.cart) === null || _context$cart4 === void 0 ? void 0 : _context$cart4.displayLines,
328
+ context === null || context === void 0 || (_context$cart5 = context.cart) === null || _context$cart5 === void 0 ? void 0 : _context$cart5.items,
323
329
  context === null || context === void 0 || (_context$summary2 = context.summary) === null || _context$summary2 === void 0 ? void 0 : _context$summary2.summary,
324
- context === null || context === void 0 || (_context$sales2 = context.sales) === null || _context$sales2 === void 0 ? void 0 : _context$sales2.tempOrder,
325
- context === null || context === void 0 || (_context$sales3 = context.sales) === null || _context$sales3 === void 0 || (_context$sales3 = _context$sales3.tempOrder) === null || _context$sales3 === void 0 ? void 0 : _context$sales3.payments,
326
- context === null || context === void 0 || (_context$sales4 = context.sales) === null || _context$sales4 === void 0 ? void 0 : _context$sales4.bookingTicket,
330
+ context === null || context === void 0 || (_context$sales3 = context.sales) === null || _context$sales3 === void 0 ? void 0 : _context$sales3.tempOrder,
331
+ context === null || context === void 0 || (_context$sales4 = context.sales) === null || _context$sales4 === void 0 || (_context$sales4 = _context$sales4.tempOrder) === null || _context$sales4 === void 0 ? void 0 : _context$sales4.payments,
332
+ context === null || context === void 0 || (_context$sales5 = context.sales) === null || _context$sales5 === void 0 ? void 0 : _context$sales5.bookingTicket,
333
+ engineContext,
334
+ enabled
335
+ ]);
336
+ useEffect(() => {
337
+ var _context$sales6, _engineContext$appHel2;
338
+ if (!enabled) return void 0;
339
+ const bookingTicket = context === null || context === void 0 || (_context$sales6 = context.sales) === null || _context$sales6 === void 0 ? void 0 : _context$sales6.bookingTicket;
340
+ if (!bookingTicket || typeof bookingTicket.effectsOn !== "function") return;
341
+ const utils = (engineContext === null || engineContext === void 0 || (_engineContext$appHel2 = engineContext.appHelper) === null || _engineContext$appHel2 === void 0 ? void 0 : _engineContext$appHel2.utils) || {};
342
+ const off = bookingTicket.effectsOn("onTempOrderReplaced", () => {
343
+ var _bookingTicket$getTem2;
344
+ const tempOrder = (_bookingTicket$getTem2 = bookingTicket.getTempOrder) === null || _bookingTicket$getTem2 === void 0 ? void 0 : _bookingTicket$getTem2.call(bookingTicket);
345
+ if (!tempOrder) return;
346
+ if (toArray(tempOrder.products).length > 0 || toArray(tempOrder.bookings).length > 0) return;
347
+ postCartUpdateToCds(utils, _objectSpread2({ currency_symbol: getCurrencySymbol(utils) }, EMPTY_CART_UPDATE));
348
+ });
349
+ return () => {
350
+ try {
351
+ off();
352
+ } catch (_unused) {}
353
+ };
354
+ }, [
355
+ context === null || context === void 0 || (_context$sales7 = context.sales) === null || _context$sales7 === void 0 ? void 0 : _context$sales7.bookingTicket,
327
356
  engineContext,
328
357
  enabled
329
358
  ]);
@@ -8,6 +8,7 @@ import { useSalesSdk } from "../../plus/salesSdk/hooks/useSalesSdk.js";
8
8
  import { useSalesSdkCustomer } from "../../plus/salesSdk/hooks/useSalesSdkCustomer.js";
9
9
  import { SalesSdkProvider } from "../../plus/salesSdk/context/SalesSdkProvider.js";
10
10
  import { SalesSdkBookingContextProvider } from "../../plus/salesSdk/context/SalesSdkBookingContext.js";
11
+ import "../../plus/salesSdk/index.js";
11
12
  import { ResponsiveBigSaleBase } from "./Base.js";
12
13
  import { isBigSaleProductSelectionFlowScene, resolveBigSaleSelectionFlowConfig } from "./selectionFlowConfig.js";
13
14
  import { isKioskPresentation } from "./templateCapabilities.js";
@@ -8,6 +8,7 @@ import { resolvePaymentResultToastV2ViewModel } from "../../../checkout/componen
8
8
  import PaymentResultToastV2_default from "../../../checkout/components/PaymentResultToastV2/index.js";
9
9
  import { freePayApi } from "../../../Sales/Checkout/serve.js";
10
10
  import { useSalesSdk } from "../../../../plus/salesSdk/hooks/useSalesSdk.js";
11
+ import "../../../../plus/salesSdk/index.js";
11
12
  import { usePickSaleDetailContext } from "../../hooks/usePickSaleDetailContext.js";
12
13
  import { resolveBigSaleAutoProductListPreferences } from "../../utils/productListPreferences.js";
13
14
  import { resolveBigSaleProductDisplayConfig } from "../../hooks/useBigSaleProductListConfig.js";
@@ -11,7 +11,7 @@ import classNames from "classnames";
11
11
  import "./index.less";
12
12
  //#region src/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.tsx
13
13
  const CalenDateWeek = (props) => {
14
- const { currentDate, dateChange, productId, timeList, dateLimitData, getLimitData, cutTime, showStatusBar = true, showDisabledStatus = true, ignoreAvailabilityDisabled = false, enforceAvailabilitySelection = false, minSelectableDate, minViewDate, enableRangeSelection = false, selectedRangeStartDate, selectedRangeEndDate, showMonthHeader = false, enableSwipeNavigation = false, disableCallToBook = false, navigationVariant = "default" } = props;
14
+ const { currentDate, dateChange, productId, timeList, dateLimitData, getLimitData, cutTime, showStatusBar = true, showDisabledStatus = true, ignoreAvailabilityDisabled = false, enforceAvailabilitySelection = false, minSelectableDate, minViewDate, enableRangeSelection = false, selectedRangeStartDate, selectedRangeEndDate, showMonthHeader = false, enableSwipeNavigation = false, disableCallToBook = false, navigationVariant = "default", onVisibleDateRangeChange } = props;
15
15
  const [weekList, setWeekList] = useState([]);
16
16
  const [weekAnchorDate, setWeekAnchorDate] = useState(currentDate);
17
17
  const [pendingWeekList, setPendingWeekList] = useState(null);
@@ -163,6 +163,10 @@ const CalenDateWeek = (props) => {
163
163
  if (pendingWeekAnchorDate && pendingWeekList) {
164
164
  setWeekAnchorDate(pendingWeekAnchorDate);
165
165
  setWeekList(pendingWeekList);
166
+ onVisibleDateRangeChange === null || onVisibleDateRangeChange === void 0 || onVisibleDateRangeChange({
167
+ startDate: pendingWeekList[0],
168
+ endDate: pendingWeekList[pendingWeekList.length - 1]
169
+ });
166
170
  }
167
171
  setPendingWeekAnchorDate(null);
168
172
  setPendingWeekList(null);
@@ -11,7 +11,7 @@ import "./index.less";
11
11
  //#region src/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/index.tsx
12
12
  dayjs.extend(isSameOrBefore);
13
13
  const CalendarDate = (props, ref) => {
14
- const { cutTime, getLimitData, dateLimitData, loading, disableCallToBook = false, enforceAvailabilitySelection = false, ignoreAvailabilityDisabled = false, availabilityRange, minSelectableDate, title = locales.getText("pisell2.event.calendar.select.date"), closeOnSelect = false } = props;
14
+ const { cutTime, getLimitData, dateLimitData, loading, disableCallToBook = false, enforceAvailabilitySelection = false, ignoreAvailabilityDisabled = false, availabilityRange, minSelectableDate, title = locales.getText("pisell2.event.calendar.select.date"), closeOnSelect = false, onVisibleDateRangeChange } = props;
15
15
  const [productId, setProductId] = useState("");
16
16
  const [currentDate, setCurrentDate] = useState("");
17
17
  const [dateMonthList, setDateMonthList] = useState([]);
@@ -75,6 +75,10 @@ const CalendarDate = (props, ref) => {
75
75
  let newLastMonth = dayjs(currentMonth.format("YYYY-MM")).subtract(1, "month");
76
76
  setCurrentMonth(newLastMonth);
77
77
  setDateMonthList(getMonthData(newLastMonth.format("YYYY-MM")));
78
+ onVisibleDateRangeChange === null || onVisibleDateRangeChange === void 0 || onVisibleDateRangeChange({
79
+ startDate: newLastMonth.startOf("month").format("YYYY-MM-DD"),
80
+ endDate: newLastMonth.endOf("month").format("YYYY-MM-DD")
81
+ });
78
82
  };
79
83
  /**
80
84
  * @title: 切换下个月
@@ -88,6 +92,10 @@ const CalendarDate = (props, ref) => {
88
92
  let newNextMonth = dayjs(currentMonth.format("YYYY-MM")).add(1, "month");
89
93
  setCurrentMonth(newNextMonth);
90
94
  setDateMonthList(getMonthData(newNextMonth.format("YYYY-MM")));
95
+ onVisibleDateRangeChange === null || onVisibleDateRangeChange === void 0 || onVisibleDateRangeChange({
96
+ startDate: newNextMonth.startOf("month").format("YYYY-MM-DD"),
97
+ endDate: newNextMonth.endOf("month").format("YYYY-MM-DD")
98
+ });
91
99
  };
92
100
  /**
93
101
  * @title: 根据当前选择的月份剩余量
@@ -12,7 +12,7 @@ import { Iconfont } from "@pisell/materials";
12
12
  import classNames from "classnames";
13
13
  import "./index.less";
14
14
  //#region src/components/eventBooking/components/bookingAvailabilityCalendar/components/SelectDate/index.tsx
15
- const SelectDate = ({ currentDate, detail, currentDateChange, setSurplusDisabledChange, cutTime, setCutTime, showCalendarPopup, showStatusLegend = true, showDateStatusBar = true, title = locales.getText("pisell2.event.calendar.select.date"), showHeader = true, showDisabledStatus = true, ignoreAvailabilityDisabled = false, minSelectableDate, minViewDate, enableRangeSelection = false, selectedRangeStartDate, selectedRangeEndDate, showMonthHeader = false, enableWeekSwipe = false, weekNavigationVariant = "default", closeCalendarOnSelect = false, availabilityDates }, ref) => {
15
+ const SelectDate = ({ currentDate, detail, currentDateChange, onVisibleDateRangeChange, setSurplusDisabledChange, cutTime, setCutTime, showCalendarPopup, showStatusLegend = true, showDateStatusBar = true, title = locales.getText("pisell2.event.calendar.select.date"), showHeader = true, showDisabledStatus = true, ignoreAvailabilityDisabled = false, minSelectableDate, minViewDate, enableRangeSelection = false, selectedRangeStartDate, selectedRangeEndDate, showMonthHeader = false, enableWeekSwipe = false, weekNavigationVariant = "default", closeCalendarOnSelect = false, availabilityDates }, ref) => {
16
16
  const [dateLimitData, setDateLimitData] = useState(mock.availability_calendar.limitData);
17
17
  /**
18
18
  * UBS 日期结果只负责状态展示,不伪造旧事件预约的 times/库存结构。
@@ -76,6 +76,7 @@ const SelectDate = ({ currentDate, detail, currentDateChange, setSurplusDisabled
76
76
  productId: detail === null || detail === void 0 ? void 0 : detail.id,
77
77
  cutTime,
78
78
  dateLimitData: resolvedDateLimitData,
79
+ onVisibleDateRangeChange,
79
80
  showStatusBar: showDateStatusBar,
80
81
  showDisabledStatus,
81
82
  ignoreAvailabilityDisabled,
@@ -97,6 +98,7 @@ const SelectDate = ({ currentDate, detail, currentDateChange, setSurplusDisabled
97
98
  },
98
99
  cutTime,
99
100
  dateLimitData: resolvedDateLimitData,
101
+ onVisibleDateRangeChange,
100
102
  disableCallToBook: usesExternalAvailability,
101
103
  enforceAvailabilitySelection: usesExternalAvailability,
102
104
  ignoreAvailabilityDisabled,
@@ -25,6 +25,11 @@ interface BookingAvailabilityCalendarProps {
25
25
  currentDate?: string;
26
26
  cutTime?: any;
27
27
  onCurrentDateChange?: (date: string) => void;
28
+ /** 周历或月历切换后,通知外层当前可视日期范围。 */
29
+ onVisibleDateRangeChange?: (range: {
30
+ startDate: string;
31
+ endDate: string;
32
+ }) => void;
28
33
  onCutTimeChange?: (date: string) => void;
29
34
  onSurplusDisabledChange?: (date: boolean) => void;
30
35
  showStatusLegend?: boolean;
@@ -18,7 +18,7 @@ const BookingAvailabilityCalendar = forwardRef((props, ref) => {
18
18
  * 日历挂载后日期图例、Add Note、Cancel 等文案又闪回英文。
19
19
  */
20
20
  locales.init(locales_default, locales.getLocale() || "en");
21
- const { showCalendarPopup, onDateChange, detail = (_mock$availability_ca = mock.availability_calendar) === null || _mock$availability_ca === void 0 ? void 0 : _mock$availability_ca.detail, currentDate = (_mock$availability_ca2 = mock.availability_calendar) === null || _mock$availability_ca2 === void 0 ? void 0 : _mock$availability_ca2.currentDate, cutTime = (_mock$availability_ca3 = mock.availability_calendar) === null || _mock$availability_ca3 === void 0 ? void 0 : _mock$availability_ca3.cutTime, onCurrentDateChange, onCutTimeChange, onSurplusDisabledChange, showStatusLegend = true, showDateStatusBar = true, theme = "light", className, title, showHeader, showDisabledStatus, ignoreAvailabilityDisabled, minSelectableDate, minViewDate, enableRangeSelection, selectedRangeStartDate, selectedRangeEndDate, showMonthHeader, enableWeekSwipe, weekNavigationVariant, closeCalendarOnSelect, availabilityDates } = props;
21
+ const { showCalendarPopup, onDateChange, detail = (_mock$availability_ca = mock.availability_calendar) === null || _mock$availability_ca === void 0 ? void 0 : _mock$availability_ca.detail, currentDate = (_mock$availability_ca2 = mock.availability_calendar) === null || _mock$availability_ca2 === void 0 ? void 0 : _mock$availability_ca2.currentDate, cutTime = (_mock$availability_ca3 = mock.availability_calendar) === null || _mock$availability_ca3 === void 0 ? void 0 : _mock$availability_ca3.cutTime, onCurrentDateChange, onVisibleDateRangeChange, onCutTimeChange, onSurplusDisabledChange, showStatusLegend = true, showDateStatusBar = true, theme = "light", className, title, showHeader, showDisabledStatus, ignoreAvailabilityDisabled, minSelectableDate, minViewDate, enableRangeSelection, selectedRangeStartDate, selectedRangeEndDate, showMonthHeader, enableWeekSwipe, weekNavigationVariant, closeCalendarOnSelect, availabilityDates } = props;
22
22
  const selectDateRef = useRef(null);
23
23
  useImperativeHandle(ref, () => ({ openCalendarPopup: () => {
24
24
  var _selectDateRef$curren;
@@ -34,6 +34,7 @@ const BookingAvailabilityCalendar = forwardRef((props, ref) => {
34
34
  onCurrentDateChange(date);
35
35
  if (currentDate !== date) onDateChange(date);
36
36
  },
37
+ onVisibleDateRangeChange,
37
38
  setSurplusDisabledChange: onSurplusDisabledChange,
38
39
  cutTime,
39
40
  setCutTime: onCutTimeChange,
@@ -2,6 +2,7 @@ import { _asyncToGenerator } from "../../_virtual/_@oxc-project_runtime@0.122.0/
2
2
  import useEngineContext from "../../hooks/useEngineContext.js";
3
3
  import { useSalesSdk } from "../../plus/salesSdk/hooks/useSalesSdk.js";
4
4
  import { getTempOrderSyncPayload, shouldApplySharedTempOrderPayload } from "../../plus/salesSdk/tempOrderSync.js";
5
+ import "../../plus/salesSdk/index.js";
5
6
  import { useEffect, useRef } from "react";
6
7
  import { useMemoizedFn } from "ahooks";
7
8
  //#region src/components/sharedSecondaryBigSale/SharedSecondaryBigSaleReceiver.tsx
package/es/index.js CHANGED
@@ -86,6 +86,7 @@ import { useSalesSdkProducts } from "./plus/salesSdk/hooks/useSalesSdkProducts.j
86
86
  import SalesSdkDemo from "./plus/salesSdk/demo/index.js";
87
87
  import { useSalesSdkDish } from "./plus/salesSdk/hooks/useSalesSdkDish.js";
88
88
  import { useSyncOsModule } from "./plus/salesSdk/hooks/useSyncOsModule.js";
89
+ import "./plus/salesSdk/index.js";
89
90
  import BigSaleRightActionPanel from "./components/BigSaleRightActionPanel/index.js";
90
91
  import ResponsiveWrapper from "./components/list/ResponsiveWrapper.js";
91
92
  import { resolveBigSaleSelectionFlowConfig } from "./components/bigSale/selectionFlowConfig.js";
@@ -138,6 +139,7 @@ import PisellVenueControlPage from "./plus/pisellReservation/PisellVenueControlP
138
139
  import PisellVenueWallPage from "./plus/pisellReservation/PisellVenueWallPage.js";
139
140
  import PisellReservationTablePage from "./plus/pisellReservation/PisellReservationTablePage.js";
140
141
  import SelectFloorMapResourceDialog from "./plus/pisellReservation/components/SelectFloorMapResourceDialog.js";
142
+ import "./plus/pisellReservation/index.js";
141
143
  import { PisellTopology, PisellTopologyCore } from "./plus/pisellTopology/PisellTopology.js";
142
144
  import cupProject_default from "./components/ecocup/cupProject/index.js";
143
145
  import CupList from "./components/ecocup/cupList/index.js";
@@ -259,4 +259,4 @@ function bookingListToReservationTableRows(bookings) {
259
259
  return rows;
260
260
  }
261
261
  //#endregion
262
- export { applyHostResourceShellToBaseRow, bookingListToReservationTableRows, customerBrief, extractResourceRecordIds, filterBookingsByResourceIds, hostBookingUiPatchFromRecord, mergeBookingsForResourceRecord };
262
+ export { applyHostResourceShellToBaseRow, bookingListToReservationTableRows, customerBrief, extractResourceRecordIds, filterBookingsByResourceIds, hostBookingStatusToCardStatus, hostBookingUiPatchFromRecord, mergeBookingsForResourceRecord };
@@ -78,17 +78,11 @@ function stripCalendarOnlyFlags(prev) {
78
78
  delete nextValues.enable_remote_memory_cache;
79
79
  return _objectSpread2(_objectSpread2({}, prev), {}, { filter: _objectSpread2(_objectSpread2({}, prevFilter), {}, { values: nextValues }) });
80
80
  }
81
- /**
82
- * 日历导航:按视口自然日范围扩展 `booking_time_start_between`。
83
- *
84
- * 后端只支持 start_time 过滤;为了让"开始早于视口、结束仍落在视口内"的跨日 booking 也被拉到,
85
- * 这里把下界往前再外推 {@link RESERVATION_CALENDAR_VIEWPORT_LOOKBACK_DAYS} 天,
86
- * 由前端 `getBookingSegmentForDate` / `clipBookingDaySpanToWindow` 在视图层做相交渲染。
87
- */
81
+ /** 日历导航:按当前视口自然日范围更新 `booking_time_start_between`。 */
88
82
  function mergeSearchParamsBookingRange(prev, rangeStart, rangeEnd, operatingDayBoundary) {
89
83
  const prevFilter = typeof prev.filter === "object" && prev.filter ? prev.filter : {};
90
84
  const prevValues = typeof prevFilter.values === "object" && prevFilter.values ? prevFilter.values : {};
91
- const window = bookingTimeWindowForCalendarRequest(/* @__PURE__ */ new Date(rangeStart.getTime() - 720 * 60 * 60 * 1e3), rangeEnd, operatingDayBoundary);
85
+ const window = bookingTimeWindowForCalendarRequest(rangeStart, rangeEnd, operatingDayBoundary);
92
86
  return _objectSpread2(_objectSpread2({}, prev), {}, { filter: _objectSpread2(_objectSpread2({}, prevFilter), {}, { values: _objectSpread2(_objectSpread2({}, prevValues), {}, { booking_time_start_between: window }) }) });
93
87
  }
94
88
  /**
@@ -78,4 +78,4 @@ function toastFloorPlanLoadError(err) {
78
78
  PisellToast({ content: err instanceof Error ? err.message : String(err) });
79
79
  }
80
80
  //#endregion
81
- export { PISELL_RESERVATION_FLOOR_PLAN_CODE, ensureShopFloorPlanByCode, saveViewConfigToShopFloorPlan, shopLayoutToSceneElements$1 as shopLayoutToSceneElements, toastFloorPlanLoadError, toastFloorPlanSaveError, unsubscribeShopFloorPlanCodeQuery };
81
+ export { PISELL_RESERVATION_FLOOR_PLAN_CODE, buildDefaultReservationFloorPlanPostBody, ensureShopFloorPlanByCode, putShopFloorPlan, saveViewConfigToShopFloorPlan, shopLayoutToSceneElements$1 as shopLayoutToSceneElements, toastFloorPlanLoadError, toastFloorPlanSaveError, unsubscribeShopFloorPlanCodeQuery };
@@ -927,4 +927,4 @@ function getReservationDataSourceFormColumns() {
927
927
  ];
928
928
  }
929
929
  //#endregion
930
- export { RESERVATION_BOUND_ROUND_TABLE_ELEMENT_KIND, RESERVATION_BOUND_TABLE_ELEMENT_KIND, applyReservationFloorMapLiveLabels, defaultReservationTableRows, getDefaultReservationFloorMapConfig, getReservationDataSourceFormColumns, getReservationFloorMapShellConfig, mergeFloorMapElementKindCategoriesWithDefaults, mergeFloorMapElementKindsWithDefaults };
930
+ export { RESERVATION_BOUND_ROUND_TABLE_ELEMENT_KIND, RESERVATION_BOUND_TABLE_ELEMENT_KIND, applyReservationFloorMapLiveLabels, defaultReservationSceneElements, defaultReservationTableRows, getDefaultReservationFloorMapConfig, getReservationDataSourceFormColumns, getReservationFloorMapShellConfig, mergeFloorMapElementKindCategoriesWithDefaults, mergeFloorMapElementKindsWithDefaults };
@@ -0,0 +1,17 @@
1
+ import "./serve/formResourcePage.js";
2
+ import "./floorRoomCard/mapRowToFloorRoomCardData.js";
3
+ import "./floorRoomCard/ReservationFloorRoomCard.js";
4
+ import "./floorMap/reservationMock.js";
5
+ import "./floorMap/floorPlanApi.js";
6
+ import "./reservationConstants.js";
7
+ import "./data/bookingToReservationTables.js";
8
+ import "./data/formResourceToReservationTables.js";
9
+ import "./data/salesEmbeddedResourceToTableRows.js";
10
+ import "./floorMap/reservationCards.js";
11
+ import "./PisellReservation.js";
12
+ import "./PisellReservationBookingPage.js";
13
+ import "./PisellVenueControlPage.js";
14
+ import "./PisellVenueWallPage.js";
15
+ import "./PisellReservationTablePage.js";
16
+ import "./components/SelectFloorMapResourceDialog.js";
17
+ export {};
@@ -2,6 +2,7 @@ import { _objectSpread2 } from "../../_virtual/_@oxc-project_runtime@0.122.0/hel
2
2
  import useEngineContext from "../../hooks/useEngineContext.js";
3
3
  import useInitLocalesOnce from "../../hooks/useInitLocalesOnce.js";
4
4
  import { resolvePaymentMethodName, usePaymentMethodNameMap } from "../pisellSalesManagement/hooks/usePaymentMethodNameMap.js";
5
+ import { isAppliedPaymentRecord } from "../saleDetail/utils/paymentStatus.js";
5
6
  import localeTexts from "./locales.js";
6
7
  import React, { useCallback, useMemo, useState } from "react";
7
8
  import { formatAmount, locales } from "@pisell/utils";
@@ -179,7 +180,7 @@ function getPaidExclPaymentSurchargeLabel(paymentSurchargeText) {
179
180
  return `${locales.getText("pisell2.sale-detail.pay.paid")} (${paymentSurchargeText})`;
180
181
  }
181
182
  function buildPaymentRows(payments, paymentMethodNameMap, symbol, options) {
182
- return payments.filter((payment) => !isVoucherPaymentRecord(payment)).map((payment, index) => {
183
+ return payments.filter(isAppliedPaymentRecord).filter((payment) => !isVoucherPaymentRecord(payment)).map((payment, index) => {
183
184
  var _firstDefined;
184
185
  const amount = getPaymentAmount(payment);
185
186
  const isRefund = isRefundPaymentRecord(payment);
@@ -11,6 +11,7 @@ import { useSalesSdkCart } from "../salesSdk/hooks/useSalesSdkCart.js";
11
11
  import { useSalesSdkCustomer } from "../salesSdk/hooks/useSalesSdkCustomer.js";
12
12
  import { useSalesSdkBookingContext } from "../salesSdk/context/SalesSdkBookingContext.js";
13
13
  import { useSalesSdkSummary } from "../salesSdk/hooks/useSalesSdkSummary.js";
14
+ import "../salesSdk/index.js";
14
15
  import locales_default from "./locales.js";
15
16
  import locales_default$1 from "./components/LineItem/locales.js";
16
17
  import { SaleOrderActionBoundary } from "./actions/index.js";
@@ -1,6 +1,7 @@
1
1
  import { _objectSpread2 } from "../../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js";
2
2
  import useEngineContext from "../../../../../hooks/useEngineContext.js";
3
3
  import { useSalesSdkBookingContext } from "../../../../salesSdk/context/SalesSdkBookingContext.js";
4
+ import "../../../../salesSdk/index.js";
4
5
  import { useMemo } from "react";
5
6
  import { useMemoizedFn } from "ahooks";
6
7
  //#region src/plus/saleDetail/components/Client/hooks/useClientSelectorProps.ts
@@ -9,6 +9,7 @@ import { useSalesSdk } from "../../../salesSdk/hooks/useSalesSdk.js";
9
9
  import { useSalesSdkCart } from "../../../salesSdk/hooks/useSalesSdkCart.js";
10
10
  import { useSalesSdkGlobalScanActivity } from "../../../salesSdk/context/SalesSdkGlobalScanActivityContext.js";
11
11
  import { useSalesSdkSummary } from "../../../salesSdk/hooks/useSalesSdkSummary.js";
12
+ import "../../../salesSdk/index.js";
12
13
  import { getNumericAmount, getSalesHostModule, resolveSaleDetailOrderIdFromSales, resolveSaleDetailOrderIdFromSalesResult, shouldCloseDialogAfterCheckout, updateLocalOrder } from "./utils.js";
13
14
  import { getRemotePrintActions, getWristbandList } from "../../serve.js";
14
15
  import { deriveSaleOrderSubmitState } from "../../actions/state.js";
@@ -1,8 +1,10 @@
1
1
  import useEngineContext from "../../../../hooks/useEngineContext.js";
2
2
  import { resolvePaymentMethodName, usePaymentMethodNameMap } from "../../../pisellSalesManagement/hooks/usePaymentMethodNameMap.js";
3
+ import { isAppliedPaymentRecord } from "../../utils/paymentStatus.js";
3
4
  import { useSalesSdk } from "../../../salesSdk/hooks/useSalesSdk.js";
4
5
  import { useSalesSdkCart } from "../../../salesSdk/hooks/useSalesSdkCart.js";
5
6
  import { useSalesSdkSummary } from "../../../salesSdk/hooks/useSalesSdkSummary.js";
7
+ import "../../../salesSdk/index.js";
6
8
  import React, { memo, useMemo } from "react";
7
9
  import { formatAmount, locales } from "@pisell/utils";
8
10
  import Decimal from "decimal.js";
@@ -141,8 +143,9 @@ const PaymentDetailsContent = memo(function PaymentDetailsContent({ symbol, toPa
141
143
  const currentLocale = locales.getLocale();
142
144
  const paymentMethodNameMap = usePaymentMethodNameMap();
143
145
  const entries = useMemo(() => {
144
- const nextEntries = payments.filter((payment) => !isVoucherPaymentRecord(payment)).map((payment, index) => buildPaymentDetailEntry(payment, `payment-${index}`, paymentMethodNameMap));
145
- if (!payments.length) {
146
+ const appliedPayments = payments.filter(isAppliedPaymentRecord);
147
+ const nextEntries = appliedPayments.filter((payment) => !isVoucherPaymentRecord(payment)).map((payment, index) => buildPaymentDetailEntry(payment, `payment-${index}`, paymentMethodNameMap));
148
+ if (!appliedPayments.length) {
146
149
  if (isNonZeroAmount(summary.order_paid_amount)) nextEntries.push({
147
150
  key: "paid-summary",
148
151
  title: locales.getText("pisell2.sale-detail.pay.payment"),
@@ -243,7 +246,8 @@ const PaymentDetailsSectionView = memo(function PaymentDetailsSectionView({ paym
243
246
  const totalRefundAmount = summary === null || summary === void 0 ? void 0 : summary.total_refund_amount;
244
247
  if (!useMemo(() => {
245
248
  if (!hasSummary) return false;
246
- return payments.some((payment) => !isVoucherPaymentRecord(payment)) || !payments.length && (isNonZeroAmount(orderPaidAmount) || isNonZeroAmount(totalRefundAmount));
249
+ const appliedPayments = payments.filter(isAppliedPaymentRecord);
250
+ return appliedPayments.some((payment) => !isVoucherPaymentRecord(payment)) || !appliedPayments.length && (isNonZeroAmount(orderPaidAmount) || isNonZeroAmount(totalRefundAmount));
247
251
  }, [
248
252
  hasSummary,
249
253
  orderPaidAmount,
@@ -4,6 +4,7 @@ import { useSalesSdk } from "../salesSdk/hooks/useSalesSdk.js";
4
4
  import { SalesSdkProvider } from "../salesSdk/context/SalesSdkProvider.js";
5
5
  import { SalesSdkDishProvider } from "../salesSdk/context/SalesSdkDishContext.js";
6
6
  import { SalesSdkBookingContextProvider } from "../salesSdk/context/SalesSdkBookingContext.js";
7
+ import "../salesSdk/index.js";
7
8
  import Base_default from "./Base.js";
8
9
  import React, { forwardRef, useImperativeHandle } from "react";
9
10
  //#region src/plus/saleDetail/index.tsx
@@ -1,6 +1,7 @@
1
1
  import useStableInstanceId from "../../../../../../hooks/useStableInstanceId.js";
2
2
  import { useSalesSdkDish } from "../../../../../salesSdk/hooks/useSalesSdkDish.js";
3
3
  import { useCurrentSalesSdkDish } from "../../../../../salesSdk/hooks/useCurrentSalesSdkDish.js";
4
+ import "../../../../../salesSdk/index.js";
4
5
  import { SaleDetailStatusOverview } from "../shared/StatusOverview.js";
5
6
  import { DishGroupView } from "./DishGroupView.js";
6
7
  import dayjs from "dayjs";
@@ -2,6 +2,7 @@ import { _objectSpread2 } from "../../../../../../_virtual/_@oxc-project_runtime
2
2
  import { _asyncToGenerator } from "../../../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js";
3
3
  import useEngineContext from "../../../../../../hooks/useEngineContext.js";
4
4
  import { resolvePaymentMethodName, usePaymentMethodNameMap } from "../../../../../pisellSalesManagement/hooks/usePaymentMethodNameMap.js";
5
+ import { isAppliedPaymentRecord } from "../../../../utils/paymentStatus.js";
5
6
  import { EftposProvider, PaymentMode } from "../../../../../piPaymentUI/eftpos/contracts/index.js";
6
7
  import { PiPaymentType } from "../../../../../piPaymentUI/contracts/index.js";
7
8
  import PiPayment from "../../../../../piPaymentUI/PiPayment.js";
@@ -708,7 +709,7 @@ function Pay({ context }) {
708
709
  const tempOrder = context.sales.tempOrder;
709
710
  const summary = (_ref14 = (_context$summary$summ2 = context.summary.summary) !== null && _context$summary$summ2 !== void 0 ? _context$summary$summ2 : tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.summary) !== null && _ref14 !== void 0 ? _ref14 : null;
710
711
  const symbol = (tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.currency_symbol) || "$";
711
- const payments = Array.isArray(tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.payments) ? tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.payments : [];
712
+ const payments = Array.isArray(tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.payments) ? tempOrder.payments.filter(isAppliedPaymentRecord) : [];
712
713
  const overviewItems = [
713
714
  {
714
715
  key: "total",
@@ -1,6 +1,7 @@
1
1
  import { _objectSpread2 } from "../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js";
2
2
  import useEngineContext from "../../../../hooks/useEngineContext.js";
3
3
  import { useCurrentSalesSdkDish } from "../../../salesSdk/hooks/useCurrentSalesSdkDish.js";
4
+ import "../../../salesSdk/index.js";
4
5
  import { getInternalNotesByScheduleEvent } from "../../serve.js";
5
6
  import { TEMPLATE_B_PAY_ACTIONS, TEMPLATE_B_SUMMARY_ACTIONS } from "../../components/DetailActions/configs/index.js";
6
7
  import { DetailActions } from "../../components/DetailActions/index.js";
@@ -0,0 +1,15 @@
1
+ //#region src/plus/saleDetail/utils/paymentStatus.ts
2
+ const APPLIED_PAYMENT_STATUSES = new Set(["paid"]);
3
+ /**
4
+ * Payment detail amounts must describe money that was actually applied to the
5
+ * order. The persisted order-payment contract uses `paid` for applied money;
6
+ * SDK/session success states and order-level refund states are not equivalent.
7
+ */
8
+ function isAppliedPaymentRecord(record) {
9
+ var _status;
10
+ if (!record || typeof record !== "object") return false;
11
+ const status = String((_status = record.status) !== null && _status !== void 0 ? _status : "").trim().toLowerCase();
12
+ return APPLIED_PAYMENT_STATUSES.has(status);
13
+ }
14
+ //#endregion
15
+ export { isAppliedPaymentRecord };
@@ -0,0 +1,52 @@
1
+ import "./hosts/createInstanceHostBridge.js";
2
+ import "./holderConfirm/createHolderConfirmBridge.js";
3
+ import "./giftSelect/createGiftSelectBridge.js";
4
+ import "./context/SalesSdkHostBridgesContext.js";
5
+ import "./utils/formatHolderOptions.js";
6
+ import "./utils/enrichCartLineHolderDisplay.js";
7
+ import "./context/SalesSdkHolderContext.js";
8
+ import "./utils/appendPromotionTags.js";
9
+ import "./context/SalesSdkUIHostsContext.js";
10
+ import "./utils/runAddProductFlow.js";
11
+ import "./components/showAddToCartToast.js";
12
+ import "./utils/resolveAddProductDebounceKey.js";
13
+ import "./utils/productSkuOptions.js";
14
+ import "./utils/identity.js";
15
+ import "./utils/resolveInCartQuantityForAddToast.js";
16
+ import "./utils/addProductWithFlowDebounced.js";
17
+ import "./utils/customerAuthGate.js";
18
+ import "./utils/bookingDate.js";
19
+ import "./utils/holderSubmitValidation.js";
20
+ import "./utils/removeOrderProducts.js";
21
+ import "./selectors.js";
22
+ import "./utils/enrich.js";
23
+ import "./giftSelect/createOpenGiftSelectHost.js";
24
+ import "./utils/ensureHoldersBeforeSubmit.js";
25
+ import "./hooks/useSalesSdk.js";
26
+ import "./bookingEditService/BookingEditServiceDrawer.js";
27
+ import "./hosts/BookingEditHostRenderer.js";
28
+ import "./hosts/CustomerAuthHostRenderer.js";
29
+ import "./hooks/useSalesSdkCart.js";
30
+ import "./hooks/useSalesSdkCustomer.js";
31
+ import "./normalProductDetail/NormalProductDetailHostRenderer.js";
32
+ import "./hosts/createOpenBookingEditHost.js";
33
+ import "./hosts/createOpenMultiDaySelectHost.js";
34
+ import "./hosts/createOpenHolderSelectHost.js";
35
+ import "./hosts/createOpenCustomerAuthHost.js";
36
+ import "./demo/hosts/legacyOpenProductDetail.js";
37
+ import "./hosts/createCompositeOpenProductDetailHost.js";
38
+ import "./normalProductDetail/createOpenNormalProductDetailHost.js";
39
+ import "./normalProductDetail/createOpenBookingSelectionFlowHost.js";
40
+ import "./giftSelect/GiftSelectModal.js";
41
+ import "./giftSelect/GiftSelectHostRenderer.js";
42
+ import "./allergy/AllergySelectionModal.js";
43
+ import "./context/SalesSdkProvider.js";
44
+ import "./context/SalesSdkDishContext.js";
45
+ import "./context/SalesSdkBookingContext.js";
46
+ import "./hooks/useSalesSdkSummary.js";
47
+ import "./hooks/useSalesSdkProducts.js";
48
+ import "./demo/index.js";
49
+ import "./hooks/useSalesSdkDish.js";
50
+ import "./hooks/useCurrentSalesSdkDish.js";
51
+ import "./hooks/useSyncOsModule.js";
52
+ export {};