@pisell/private-materials 6.12.365 → 6.12.366

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.
@@ -2,7 +2,6 @@ import { _objectSpread2 } from "../../../_virtual/_@oxc-project_runtime@0.122.0/
2
2
  import { _objectWithoutProperties } from "../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectWithoutProperties.js";
3
3
  import { generateProductTabs, sortProductsByTabOrder } from "../../ticketBooking/components/ProductDisplayAdapter/utils.js";
4
4
  import { ProductDisplayPresets } from "../../ticketBooking/components/ProductDisplayAdapter/types.js";
5
- import "../../ticketBooking/components/ProductDisplayAdapter/index.js";
6
5
  import { mergeBigSaleProductListPreferences } from "../utils/productListPreferences.js";
7
6
  import { useMemo, useRef } from "react";
8
7
  import isEqual from "lodash/isEqual";
@@ -34,6 +34,7 @@ import { resolveKioskDeferredSubmission } from "./deferredCheckout.js";
34
34
  import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
35
35
  import { Alert, Button, Modal, Spin } from "antd";
36
36
  import { locales } from "@pisell/utils";
37
+ import { useToast } from "@pisell/materials";
37
38
  import { ArrowLeftOutlined, CheckCircleFilled, PercentageOutlined } from "@ant-design/icons";
38
39
  import "./index.less";
39
40
  //#region src/components/bigSale/templates/Kiosk/index.tsx
@@ -231,6 +232,7 @@ function createKioskLoginContinuationHandler(options) {
231
232
  function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesChannel, context, mode, variant, kioskShellLayout = "single-screen", productLoadParams, businessCode, productDisplayConfig, productCatalogSessionKey, orderId, saleDetailModuleConfig, locale, onOrderComplete }) {
232
233
  var _context$sales$bookin, _engineContext$appHel, _utils$getApp, _engineContext$appHel2;
233
234
  locales.init(locales_default, locale || "en");
235
+ const Toast = useToast();
234
236
  const engineContext = useEngineContext();
235
237
  const enginePlatform = usePlatform();
236
238
  const businessAvailability = useSalesSdkBusinessAvailability();
@@ -642,8 +644,24 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
642
644
  }));
643
645
  setView("failure");
644
646
  };
647
+ const ensureRequiredProducts = function() {
648
+ var _ref5 = _asyncToGenerator(function* () {
649
+ const bookingTicket = context.sales.bookingTicket;
650
+ try {
651
+ if (bookingTicket === null || bookingTicket === void 0 ? void 0 : bookingTicket.validateRequiredProducts) yield bookingTicket.validateRequiredProducts();
652
+ return true;
653
+ } catch (error) {
654
+ Toast.info(error instanceof Error ? error.message : String(error));
655
+ setNavigableView("cart");
656
+ return false;
657
+ }
658
+ });
659
+ return function ensureRequiredProducts() {
660
+ return _ref5.apply(this, arguments);
661
+ };
662
+ }();
645
663
  const performCheckout = function() {
646
- var _ref22 = _asyncToGenerator(function* () {
664
+ var _ref23 = _asyncToGenerator(function* () {
647
665
  if (checkoutOpeningRef.current || !shouldUseFulfillmentCheckout && isPickupTimingPending || cartItemCount === 0) return;
648
666
  checkoutOpeningRef.current = true;
649
667
  const openingScope = fulfillmentCheckout.captureScope();
@@ -652,18 +670,22 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
652
670
  return isActiveRef.current && currentScope.handle === openingScope.handle && currentScope.scopeKey === openingScope.scopeKey && currentScope.identity === openingScope.identity;
653
671
  };
654
672
  const checkoutSubmitOptions = _objectSpread2(_objectSpread2({}, KIOSK_CHECKOUT_SUBMIT_OPTIONS), {}, { beforeSubmit: function() {
655
- var _ref5 = _asyncToGenerator(function* () {
673
+ var _ref6 = _asyncToGenerator(function* () {
674
+ if (!isCurrentCheckoutRequest() || !(yield ensureRequiredProducts())) return false;
656
675
  return isCurrentCheckoutRequest() && (yield businessAvailability.beginCheckout());
657
676
  });
658
677
  return function beforeSubmit() {
659
- return _ref5.apply(this, arguments);
678
+ return _ref6.apply(this, arguments);
660
679
  };
661
680
  }() });
662
681
  let deferredAttempt = false;
663
682
  setIsCheckoutLoading(true);
664
683
  try {
665
- var _ref6, _context$sales$bookin6, _context$sales$bookin7, _context$sales$bookin8, _ref14, _context$sales$bookin13, _context$sales$bookin14, _context$sales$bookin15, _ref15, _ref16, _result$payload$payme, _result$payload, _result$data6;
684
+ var _ref7, _context$sales$bookin6, _context$sales$bookin7, _context$sales$bookin8, _ref15, _context$sales$bookin13, _context$sales$bookin14, _context$sales$bookin15, _ref16, _ref17, _result$payload$payme, _result$payload, _result$data6;
666
685
  if (!(yield businessAvailability.ensureCanShop())) return;
686
+ yield context.cart.waitForCartConsistency();
687
+ if (!isCurrentCheckoutRequest() || !(yield ensureRequiredProducts())) return;
688
+ if (!isCurrentCheckoutRequest()) return;
667
689
  yield new Promise((resolve) => setTimeout(resolve, 0));
668
690
  setPickupTimingError(void 0);
669
691
  try {
@@ -687,7 +709,7 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
687
709
  }
688
710
  if (context.sales.contactInfo && !(yield context.sales.contactInfo.ensureComplete())) return;
689
711
  if (!isCurrentCheckoutRequest()) return;
690
- const liveTempOrder = (_ref6 = (_context$sales$bookin6 = (_context$sales$bookin7 = context.sales.bookingTicket) === null || _context$sales$bookin7 === void 0 || (_context$sales$bookin8 = _context$sales$bookin7.getTempOrder) === null || _context$sales$bookin8 === void 0 ? void 0 : _context$sales$bookin8.call(_context$sales$bookin7)) !== null && _context$sales$bookin6 !== void 0 ? _context$sales$bookin6 : context.sales.tempOrder) !== null && _ref6 !== void 0 ? _ref6 : null;
712
+ const liveTempOrder = (_ref7 = (_context$sales$bookin6 = (_context$sales$bookin7 = context.sales.bookingTicket) === null || _context$sales$bookin7 === void 0 || (_context$sales$bookin8 = _context$sales$bookin7.getTempOrder) === null || _context$sales$bookin8 === void 0 ? void 0 : _context$sales$bookin8.call(_context$sales$bookin7)) !== null && _context$sales$bookin6 !== void 0 ? _context$sales$bookin6 : context.sales.tempOrder) !== null && _ref7 !== void 0 ? _ref7 : null;
691
713
  if (businessAvailability.enabled && !businessAvailability.requirePaymentOnSubmit) {
692
714
  deferredAttempt = true;
693
715
  setSubmissionError(null);
@@ -696,8 +718,8 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
696
718
  if (!isCurrentCheckoutRequest()) return;
697
719
  const submitted = resolveKioskDeferredSubmission(result, liveTempOrder);
698
720
  if (!submitted) {
699
- var _ref7, _ref8, _result$message, _result$data;
700
- throw new Error(String((_ref7 = (_ref8 = (_result$message = result === null || result === void 0 ? void 0 : result.message) !== null && _result$message !== void 0 ? _result$message : result === null || result === void 0 ? void 0 : result.msg) !== null && _ref8 !== void 0 ? _ref8 : result === null || result === void 0 || (_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.message) !== null && _ref7 !== void 0 ? _ref7 : locales.getText("pisell2.big-sale.kiosk.submit-failure")));
721
+ var _ref8, _ref9, _result$message, _result$data;
722
+ throw new Error(String((_ref8 = (_ref9 = (_result$message = result === null || result === void 0 ? void 0 : result.message) !== null && _result$message !== void 0 ? _result$message : result === null || result === void 0 ? void 0 : result.msg) !== null && _ref9 !== void 0 ? _ref9 : result === null || result === void 0 || (_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.message) !== null && _ref8 !== void 0 ? _ref8 : locales.getText("pisell2.big-sale.kiosk.submit-failure")));
701
723
  }
702
724
  if (platform === "pc" || platform === "h5" || shouldUseConsumerPayment) {
703
725
  var _utils$history, _app$history3;
@@ -726,12 +748,12 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
726
748
  return;
727
749
  }
728
750
  if (shouldUseConsumerPayment && context.sales.enableMultiCurrencySettlement && isVirtualSettlementTempOrder(liveTempOrder)) {
729
- var _ref11, _ref12, _ref13, _result$data$total_am, _result$data3, _result$data4, _liveTempOrder$summar, _context$summary$summ, _context$sales$bookin11, _context$sales$bookin12, _utils$history2, _app$history4;
751
+ var _ref12, _ref13, _ref14, _result$data$total_am, _result$data3, _result$data4, _liveTempOrder$summar, _context$summary$summ, _context$sales$bookin11, _context$sales$bookin12, _utils$history2, _app$history4;
730
752
  yield context.cart.waitForCartConsistency();
731
753
  const result = yield context.cart.submit(void 0, checkoutSubmitOptions);
732
754
  if (!isSalesOrderSubmitSuccess(result)) {
733
- var _ref9, _ref10, _result$message2, _result$data2;
734
- showCheckoutFailure(String((_ref9 = (_ref10 = (_result$message2 = result === null || result === void 0 ? void 0 : result.message) !== null && _result$message2 !== void 0 ? _result$message2 : result === null || result === void 0 ? void 0 : result.msg) !== null && _ref10 !== void 0 ? _ref10 : result === null || result === void 0 || (_result$data2 = result.data) === null || _result$data2 === void 0 ? void 0 : _result$data2.message) !== null && _ref9 !== void 0 ? _ref9 : locales.getText("pisell2.big-sale.kiosk.payment-failure-description")));
755
+ var _ref10, _ref11, _result$message2, _result$data2;
756
+ showCheckoutFailure(String((_ref10 = (_ref11 = (_result$message2 = result === null || result === void 0 ? void 0 : result.message) !== null && _result$message2 !== void 0 ? _result$message2 : result === null || result === void 0 ? void 0 : result.msg) !== null && _ref11 !== void 0 ? _ref11 : result === null || result === void 0 || (_result$data2 = result.data) === null || _result$data2 === void 0 ? void 0 : _result$data2.message) !== null && _ref10 !== void 0 ? _ref10 : locales.getText("pisell2.big-sale.kiosk.payment-failure-description")));
735
757
  return;
736
758
  }
737
759
  const orderId = resolveSaleDetailOrderIdFromSalesResult(context.sales, result);
@@ -739,7 +761,7 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
739
761
  showCheckoutFailure(String(locales.getText("pisell2.big-sale.kiosk.payment-failure-description")));
740
762
  return;
741
763
  }
742
- const totalAmount = (_ref11 = (_ref12 = (_ref13 = (_result$data$total_am = result === null || result === void 0 || (_result$data3 = result.data) === null || _result$data3 === void 0 ? void 0 : _result$data3.total_amount) !== null && _result$data$total_am !== void 0 ? _result$data$total_am : result === null || result === void 0 || (_result$data4 = result.data) === null || _result$data4 === void 0 ? void 0 : _result$data4.expect_amount) !== null && _ref13 !== void 0 ? _ref13 : liveTempOrder === null || liveTempOrder === void 0 || (_liveTempOrder$summar = liveTempOrder.summary) === null || _liveTempOrder$summar === void 0 ? void 0 : _liveTempOrder$summar.total_amount) !== null && _ref12 !== void 0 ? _ref12 : (_context$summary$summ = context.summary.summary) === null || _context$summary$summ === void 0 ? void 0 : _context$summary$summ.total_amount) !== null && _ref11 !== void 0 ? _ref11 : 0;
764
+ const totalAmount = (_ref12 = (_ref13 = (_ref14 = (_result$data$total_am = result === null || result === void 0 || (_result$data3 = result.data) === null || _result$data3 === void 0 ? void 0 : _result$data3.total_amount) !== null && _result$data$total_am !== void 0 ? _result$data$total_am : result === null || result === void 0 || (_result$data4 = result.data) === null || _result$data4 === void 0 ? void 0 : _result$data4.expect_amount) !== null && _ref14 !== void 0 ? _ref14 : liveTempOrder === null || liveTempOrder === void 0 || (_liveTempOrder$summar = liveTempOrder.summary) === null || _liveTempOrder$summar === void 0 ? void 0 : _liveTempOrder$summar.total_amount) !== null && _ref13 !== void 0 ? _ref13 : (_context$summary$summ = context.summary.summary) === null || _context$summary$summ === void 0 ? void 0 : _context$summary$summ.total_amount) !== null && _ref12 !== void 0 ? _ref12 : 0;
743
765
  yield context.sales.clearCartAndReset();
744
766
  (_context$sales$bookin11 = context.sales.bookingTicket) === null || _context$sales$bookin11 === void 0 || (_context$sales$bookin12 = _context$sales$bookin11.clearSessionStorageOrderSnapshot) === null || _context$sales$bookin12 === void 0 || _context$sales$bookin12.call(_context$sales$bookin11);
745
767
  persistKioskSessionView(context.sales.bookingTicket, "catalog");
@@ -750,8 +772,8 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
750
772
  return;
751
773
  }
752
774
  yield context.cart.waitForCartConsistency();
753
- const currentTempOrder = (_ref14 = (_context$sales$bookin13 = (_context$sales$bookin14 = context.sales.bookingTicket) === null || _context$sales$bookin14 === void 0 || (_context$sales$bookin15 = _context$sales$bookin14.getTempOrder) === null || _context$sales$bookin15 === void 0 ? void 0 : _context$sales$bookin15.call(_context$sales$bookin14)) !== null && _context$sales$bookin13 !== void 0 ? _context$sales$bookin13 : context.sales.tempOrder) !== null && _ref14 !== void 0 ? _ref14 : null;
754
- const currentSummary = (_ref15 = (_ref16 = context.summary.summary) !== null && _ref16 !== void 0 ? _ref16 : currentTempOrder === null || currentTempOrder === void 0 ? void 0 : currentTempOrder.summary) !== null && _ref15 !== void 0 ? _ref15 : null;
775
+ const currentTempOrder = (_ref15 = (_context$sales$bookin13 = (_context$sales$bookin14 = context.sales.bookingTicket) === null || _context$sales$bookin14 === void 0 || (_context$sales$bookin15 = _context$sales$bookin14.getTempOrder) === null || _context$sales$bookin15 === void 0 ? void 0 : _context$sales$bookin15.call(_context$sales$bookin14)) !== null && _context$sales$bookin13 !== void 0 ? _context$sales$bookin13 : context.sales.tempOrder) !== null && _ref15 !== void 0 ? _ref15 : null;
776
+ const currentSummary = (_ref16 = (_ref17 = context.summary.summary) !== null && _ref17 !== void 0 ? _ref17 : currentTempOrder === null || currentTempOrder === void 0 ? void 0 : currentTempOrder.summary) !== null && _ref16 !== void 0 ? _ref16 : null;
755
777
  const shouldCompleteNoPaymentInPage = isKioskPlatformZeroAmountCheckout(platform, currentSummary);
756
778
  if (shouldUseConsumerPayment && !shouldCompleteNoPaymentInPage && typeof utils.action !== "function") throw new Error("[KioskBigSale] appHelper.utils.action is not available.");
757
779
  if (shouldSubmitKioskOrderBeforeCheckout({
@@ -759,7 +781,7 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
759
781
  summary: currentSummary,
760
782
  shouldUseConsumerPayment
761
783
  })) {
762
- var _context$sales$bookin16, _context$sales$bookin17, _ref19, _context$sales$bookin18, _context$sales$bookin19, _context$sales$bookin20;
784
+ var _context$sales$bookin16, _context$sales$bookin17, _ref20, _context$sales$bookin18, _context$sales$bookin19, _context$sales$bookin20;
763
785
  const walletAssetsState = (_context$sales$bookin16 = context.sales.bookingTicket) === null || _context$sales$bookin16 === void 0 || (_context$sales$bookin17 = _context$sales$bookin16.getWalletAssetsState) === null || _context$sales$bookin17 === void 0 ? void 0 : _context$sales$bookin17.call(_context$sales$bookin16);
764
786
  const deferredWalletPaymentPlan = resolveKioskDeferredWalletPaymentPlan({
765
787
  platform,
@@ -772,8 +794,8 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
772
794
  if (shouldCompleteNoPaymentInPage) publishKioskCollaborationPreviewStatus(app, "checkout");
773
795
  const result = yield context.cart.submit(submitParams, checkoutSubmitOptions);
774
796
  if (!isSalesOrderSubmitSuccess(result)) {
775
- var _ref17, _ref18, _result$message3, _result$data5;
776
- showCheckoutFailure(String((_ref17 = (_ref18 = (_result$message3 = result === null || result === void 0 ? void 0 : result.message) !== null && _result$message3 !== void 0 ? _result$message3 : result === null || result === void 0 ? void 0 : result.msg) !== null && _ref18 !== void 0 ? _ref18 : result === null || result === void 0 || (_result$data5 = result.data) === null || _result$data5 === void 0 ? void 0 : _result$data5.message) !== null && _ref17 !== void 0 ? _ref17 : locales.getText("pisell2.big-sale.kiosk.payment-failure-description")));
797
+ var _ref18, _ref19, _result$message3, _result$data5;
798
+ showCheckoutFailure(String((_ref18 = (_ref19 = (_result$message3 = result === null || result === void 0 ? void 0 : result.message) !== null && _result$message3 !== void 0 ? _result$message3 : result === null || result === void 0 ? void 0 : result.msg) !== null && _ref19 !== void 0 ? _ref19 : result === null || result === void 0 || (_result$data5 = result.data) === null || _result$data5 === void 0 ? void 0 : _result$data5.message) !== null && _ref18 !== void 0 ? _ref18 : locales.getText("pisell2.big-sale.kiosk.payment-failure-description")));
777
799
  return;
778
800
  }
779
801
  const orderId = resolveSaleDetailOrderIdFromSalesResult(context.sales, result);
@@ -781,10 +803,10 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
781
803
  showCheckoutFailure(String(locales.getText("pisell2.big-sale.kiosk.payment-failure-description")));
782
804
  return;
783
805
  }
784
- const tempOrder = (_ref19 = (_context$sales$bookin18 = (_context$sales$bookin19 = context.sales.bookingTicket) === null || _context$sales$bookin19 === void 0 || (_context$sales$bookin20 = _context$sales$bookin19.getTempOrder) === null || _context$sales$bookin20 === void 0 ? void 0 : _context$sales$bookin20.call(_context$sales$bookin19)) !== null && _context$sales$bookin18 !== void 0 ? _context$sales$bookin18 : context.sales.tempOrder) !== null && _ref19 !== void 0 ? _ref19 : null;
806
+ const tempOrder = (_ref20 = (_context$sales$bookin18 = (_context$sales$bookin19 = context.sales.bookingTicket) === null || _context$sales$bookin19 === void 0 || (_context$sales$bookin20 = _context$sales$bookin19.getTempOrder) === null || _context$sales$bookin20 === void 0 ? void 0 : _context$sales$bookin20.call(_context$sales$bookin19)) !== null && _context$sales$bookin18 !== void 0 ? _context$sales$bookin18 : context.sales.tempOrder) !== null && _ref20 !== void 0 ? _ref20 : null;
785
807
  const totalAmount = resolveKioskSubmittedPayableAmount(result, tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.summary, context.summary.summary);
786
808
  if (shouldCompleteNoPaymentInPage) {
787
- var _ref20;
809
+ var _ref21;
788
810
  const validation = validateKioskNoPaymentSubmitResult({
789
811
  result,
790
812
  orderId,
@@ -796,7 +818,7 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
796
818
  return;
797
819
  }
798
820
  setPaymentResult(resolveKioskNoPaymentResultViewModel({
799
- summary: (_ref20 = tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.summary) !== null && _ref20 !== void 0 ? _ref20 : currentSummary,
821
+ summary: (_ref21 = tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.summary) !== null && _ref21 !== void 0 ? _ref21 : currentSummary,
800
822
  currencySymbol: (tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.currency_symbol) || "$"
801
823
  }));
802
824
  persistKioskSessionView(context.sales.bookingTicket, "catalog");
@@ -868,8 +890,8 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
868
890
  if (nextPaymentResult.status !== "failed") persistKioskSessionView(context.sales.bookingTicket, "catalog");
869
891
  setView(nextPaymentResult.status === "failed" ? "failure" : "success");
870
892
  } else if ((result === null || result === void 0 ? void 0 : result.type) === "error" || (result === null || result === void 0 ? void 0 : result.status) === "failed") {
871
- var _ref21, _result$error, _result$payload2;
872
- showCheckoutFailure((_ref21 = (_result$error = result === null || result === void 0 ? void 0 : result.error) !== null && _result$error !== void 0 ? _result$error : result === null || result === void 0 || (_result$payload2 = result.payload) === null || _result$payload2 === void 0 ? void 0 : _result$payload2.message) !== null && _ref21 !== void 0 ? _ref21 : locales.getText("pisell2.big-sale.kiosk.payment-failure-description"));
893
+ var _ref22, _result$error, _result$payload2;
894
+ showCheckoutFailure((_ref22 = (_result$error = result === null || result === void 0 ? void 0 : result.error) !== null && _result$error !== void 0 ? _result$error : result === null || result === void 0 || (_result$payload2 = result.payload) === null || _result$payload2 === void 0 ? void 0 : _result$payload2.message) !== null && _ref22 !== void 0 ? _ref22 : locales.getText("pisell2.big-sale.kiosk.payment-failure-description"));
873
895
  }
874
896
  if (shouldCloseDialogAfterCheckout(result)) {
875
897
  var _result$data7;
@@ -901,7 +923,7 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
901
923
  }
902
924
  });
903
925
  return function performCheckout() {
904
- return _ref22.apply(this, arguments);
926
+ return _ref23.apply(this, arguments);
905
927
  };
906
928
  }();
907
929
  const hasSelectedCustomerVoucher = () => {
@@ -910,22 +932,22 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
910
932
  return (runtimeDiscountList.length > 0 ? runtimeDiscountList : context.cart.discountList || []).some((discount) => isCustomerVoucher(discount) && Boolean(discount === null || discount === void 0 ? void 0 : discount.isSelected));
911
933
  };
912
934
  const hasAppliedWalletAsset = () => {
913
- var _context$sales$bookin23, _context$sales$bookin24, _walletAssetsState$se, _walletAssetsState$se2, _walletAssetsState$se3, _walletAssetsState$se4, _walletAssetsState$co, _walletAssetsState$co2, _ref23, _context$sales$bookin25, _context$sales$bookin26, _context$sales$bookin27;
935
+ var _context$sales$bookin23, _context$sales$bookin24, _walletAssetsState$se, _walletAssetsState$se2, _walletAssetsState$se3, _walletAssetsState$se4, _walletAssetsState$co, _walletAssetsState$co2, _ref24, _context$sales$bookin25, _context$sales$bookin26, _context$sales$bookin27;
914
936
  const walletAssetsState = (_context$sales$bookin23 = context.sales.bookingTicket) === null || _context$sales$bookin23 === void 0 || (_context$sales$bookin24 = _context$sales$bookin23.getWalletAssetsState) === null || _context$sales$bookin24 === void 0 ? void 0 : _context$sales$bookin24.call(_context$sales$bookin23);
915
937
  if (((_walletAssetsState$se = walletAssetsState === null || walletAssetsState === void 0 || (_walletAssetsState$se2 = walletAssetsState.selectedIds) === null || _walletAssetsState$se2 === void 0 ? void 0 : _walletAssetsState$se2.length) !== null && _walletAssetsState$se !== void 0 ? _walletAssetsState$se : 0) > 0 || ((_walletAssetsState$se3 = walletAssetsState === null || walletAssetsState === void 0 || (_walletAssetsState$se4 = walletAssetsState.selectedItems) === null || _walletAssetsState$se4 === void 0 ? void 0 : _walletAssetsState$se4.length) !== null && _walletAssetsState$se3 !== void 0 ? _walletAssetsState$se3 : 0) > 0 || ((_walletAssetsState$co = walletAssetsState === null || walletAssetsState === void 0 || (_walletAssetsState$co2 = walletAssetsState.committedIds) === null || _walletAssetsState$co2 === void 0 ? void 0 : _walletAssetsState$co2.length) !== null && _walletAssetsState$co !== void 0 ? _walletAssetsState$co : 0) > 0) return true;
916
- const tempOrder = (_ref23 = (_context$sales$bookin25 = (_context$sales$bookin26 = context.sales.bookingTicket) === null || _context$sales$bookin26 === void 0 || (_context$sales$bookin27 = _context$sales$bookin26.getTempOrder) === null || _context$sales$bookin27 === void 0 ? void 0 : _context$sales$bookin27.call(_context$sales$bookin26)) !== null && _context$sales$bookin25 !== void 0 ? _context$sales$bookin25 : context.sales.tempOrder) !== null && _ref23 !== void 0 ? _ref23 : null;
938
+ const tempOrder = (_ref24 = (_context$sales$bookin25 = (_context$sales$bookin26 = context.sales.bookingTicket) === null || _context$sales$bookin26 === void 0 || (_context$sales$bookin27 = _context$sales$bookin26.getTempOrder) === null || _context$sales$bookin27 === void 0 ? void 0 : _context$sales$bookin27.call(_context$sales$bookin26)) !== null && _context$sales$bookin25 !== void 0 ? _context$sales$bookin25 : context.sales.tempOrder) !== null && _ref24 !== void 0 ? _ref24 : null;
917
939
  return ((tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.payments) || []).some((payment) => {
918
940
  const voucherId = payment === null || payment === void 0 ? void 0 : payment.voucher_id;
919
941
  return voucherId !== void 0 && voucherId !== null && String(voucherId).trim() !== "" && Number(voucherId) !== 0;
920
942
  });
921
943
  };
922
944
  const continueCheckout = () => {
923
- var _ref24, _context$sales$bookin28, _context$sales$bookin29, _context$sales$bookin30;
945
+ var _ref25, _context$sales$bookin28, _context$sales$bookin29, _context$sales$bookin30;
924
946
  if (businessAvailability.enabled && !businessAvailability.requirePaymentOnSubmit) {
925
947
  performCheckout();
926
948
  return;
927
949
  }
928
- const liveTempOrder = (_ref24 = (_context$sales$bookin28 = (_context$sales$bookin29 = context.sales.bookingTicket) === null || _context$sales$bookin29 === void 0 || (_context$sales$bookin30 = _context$sales$bookin29.getTempOrder) === null || _context$sales$bookin30 === void 0 ? void 0 : _context$sales$bookin30.call(_context$sales$bookin29)) !== null && _context$sales$bookin28 !== void 0 ? _context$sales$bookin28 : context.sales.tempOrder) !== null && _ref24 !== void 0 ? _ref24 : null;
950
+ const liveTempOrder = (_ref25 = (_context$sales$bookin28 = (_context$sales$bookin29 = context.sales.bookingTicket) === null || _context$sales$bookin29 === void 0 || (_context$sales$bookin30 = _context$sales$bookin29.getTempOrder) === null || _context$sales$bookin30 === void 0 ? void 0 : _context$sales$bookin30.call(_context$sales$bookin29)) !== null && _context$sales$bookin28 !== void 0 ? _context$sales$bookin28 : context.sales.tempOrder) !== null && _ref25 !== void 0 ? _ref25 : null;
929
951
  if (context.sales.enableMultiCurrencySettlement && isVirtualSettlementTempOrder(liveTempOrder)) {
930
952
  performCheckout();
931
953
  return;
@@ -939,7 +961,7 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
939
961
  setIsVoucherReminderOpen(true);
940
962
  };
941
963
  const beginCheckoutWithFulfillment = function() {
942
- var _ref25 = _asyncToGenerator(function* () {
964
+ var _ref26 = _asyncToGenerator(function* () {
943
965
  if (!(yield businessAvailability.ensureCanShop())) return;
944
966
  if (!shouldUseFulfillmentCheckout) {
945
967
  continueCheckout();
@@ -958,11 +980,11 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
958
980
  }
959
981
  });
960
982
  return function beginCheckoutWithFulfillment() {
961
- return _ref25.apply(this, arguments);
983
+ return _ref26.apply(this, arguments);
962
984
  };
963
985
  }();
964
986
  const handleCheckout = function() {
965
- var _ref26 = _asyncToGenerator(function* () {
987
+ var _ref27 = _asyncToGenerator(function* () {
966
988
  if (checkoutEntryOpeningRef.current || checkoutOpeningRef.current || checkoutLoginOpeningRef.current || fulfillmentOpeningRef.current) return;
967
989
  checkoutEntryOpeningRef.current = true;
968
990
  try {
@@ -1040,7 +1062,7 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
1040
1062
  }
1041
1063
  });
1042
1064
  return function handleCheckout() {
1043
- return _ref26.apply(this, arguments);
1065
+ return _ref27.apply(this, arguments);
1044
1066
  };
1045
1067
  }();
1046
1068
  const handleUseVoucherBeforeCheckout = () => {
@@ -19,7 +19,6 @@ import { useProducts } from "../../hooks/pisellos/useProducts.js";
19
19
  import { useService } from "../../../booking/info/service/serviceManager/index.js";
20
20
  import ProductDisplayAdapter_default from "../ProductDisplayAdapter/ProductDisplayAdapter.js";
21
21
  import { resolveProductDisplayConfig } from "../ProductDisplayAdapter/types.js";
22
- import "../ProductDisplayAdapter/index.js";
23
22
  import notAvailable_default from "../notAvailable/index.js";
24
23
  import MultiDayTimeSelectModal from "./MultiDayTimeSelectModal.js";
25
24
  import dayjs from "dayjs";
@@ -1080,6 +1080,8 @@ interface BookingTicketHandle extends PickupTimingHandle {
1080
1080
  getOpenData?: () => Promise<Record<string, any> | null>;
1081
1081
  getContactInfoConfig?: () => Promise<SalesContactInfoConfig>;
1082
1082
  validateContactInfo?: () => Promise<void>;
1083
+ /** Online venue-ticket checkout: reject missing configured required products. */
1084
+ validateRequiredProducts?: () => Promise<void>;
1083
1085
  /** 写入当前临时订单根字段 tempOrder.buzzer。 */
1084
1086
  setPickupRef?: (buzzer: string) => string;
1085
1087
  /** 将自助点餐固定为柜台取餐。 */
@@ -36,6 +36,7 @@ let react = require("react");
36
36
  react = require_runtime.__toESM(react);
37
37
  let antd = require("antd");
38
38
  let _pisell_utils = require("@pisell/utils");
39
+ let _pisell_materials = require("@pisell/materials");
39
40
  let _ant_design_icons = require("@ant-design/icons");
40
41
  require("./index.less");
41
42
  //#region src/components/bigSale/templates/Kiosk/index.tsx
@@ -233,6 +234,7 @@ function createKioskLoginContinuationHandler(options) {
233
234
  function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesChannel, context, mode, variant, kioskShellLayout = "single-screen", productLoadParams, businessCode, productDisplayConfig, productCatalogSessionKey, orderId, saleDetailModuleConfig, locale, onOrderComplete }) {
234
235
  var _context$sales$bookin, _engineContext$appHel, _utils$getApp, _engineContext$appHel2;
235
236
  _pisell_utils.locales.init(require_index$2.default, locale || "en");
237
+ const Toast = (0, _pisell_materials.useToast)();
236
238
  const engineContext = require_useEngineContext.default();
237
239
  const enginePlatform = require_useEngineContext.usePlatform();
238
240
  const businessAvailability = require_SalesSdkBusinessAvailabilityContext.useSalesSdkBusinessAvailability();
@@ -644,8 +646,24 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
644
646
  }));
645
647
  setView("failure");
646
648
  };
649
+ const ensureRequiredProducts = function() {
650
+ var _ref5 = require_asyncToGenerator._asyncToGenerator(function* () {
651
+ const bookingTicket = context.sales.bookingTicket;
652
+ try {
653
+ if (bookingTicket === null || bookingTicket === void 0 ? void 0 : bookingTicket.validateRequiredProducts) yield bookingTicket.validateRequiredProducts();
654
+ return true;
655
+ } catch (error) {
656
+ Toast.info(error instanceof Error ? error.message : String(error));
657
+ setNavigableView("cart");
658
+ return false;
659
+ }
660
+ });
661
+ return function ensureRequiredProducts() {
662
+ return _ref5.apply(this, arguments);
663
+ };
664
+ }();
647
665
  const performCheckout = function() {
648
- var _ref22 = require_asyncToGenerator._asyncToGenerator(function* () {
666
+ var _ref23 = require_asyncToGenerator._asyncToGenerator(function* () {
649
667
  if (checkoutOpeningRef.current || !shouldUseFulfillmentCheckout && isPickupTimingPending || cartItemCount === 0) return;
650
668
  checkoutOpeningRef.current = true;
651
669
  const openingScope = fulfillmentCheckout.captureScope();
@@ -654,18 +672,22 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
654
672
  return isActiveRef.current && currentScope.handle === openingScope.handle && currentScope.scopeKey === openingScope.scopeKey && currentScope.identity === openingScope.identity;
655
673
  };
656
674
  const checkoutSubmitOptions = require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, KIOSK_CHECKOUT_SUBMIT_OPTIONS), {}, { beforeSubmit: function() {
657
- var _ref5 = require_asyncToGenerator._asyncToGenerator(function* () {
675
+ var _ref6 = require_asyncToGenerator._asyncToGenerator(function* () {
676
+ if (!isCurrentCheckoutRequest() || !(yield ensureRequiredProducts())) return false;
658
677
  return isCurrentCheckoutRequest() && (yield businessAvailability.beginCheckout());
659
678
  });
660
679
  return function beforeSubmit() {
661
- return _ref5.apply(this, arguments);
680
+ return _ref6.apply(this, arguments);
662
681
  };
663
682
  }() });
664
683
  let deferredAttempt = false;
665
684
  setIsCheckoutLoading(true);
666
685
  try {
667
- var _ref6, _context$sales$bookin6, _context$sales$bookin7, _context$sales$bookin8, _ref14, _context$sales$bookin13, _context$sales$bookin14, _context$sales$bookin15, _ref15, _ref16, _result$payload$payme, _result$payload, _result$data6;
686
+ var _ref7, _context$sales$bookin6, _context$sales$bookin7, _context$sales$bookin8, _ref15, _context$sales$bookin13, _context$sales$bookin14, _context$sales$bookin15, _ref16, _ref17, _result$payload$payme, _result$payload, _result$data6;
668
687
  if (!(yield businessAvailability.ensureCanShop())) return;
688
+ yield context.cart.waitForCartConsistency();
689
+ if (!isCurrentCheckoutRequest() || !(yield ensureRequiredProducts())) return;
690
+ if (!isCurrentCheckoutRequest()) return;
669
691
  yield new Promise((resolve) => setTimeout(resolve, 0));
670
692
  setPickupTimingError(void 0);
671
693
  try {
@@ -689,7 +711,7 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
689
711
  }
690
712
  if (context.sales.contactInfo && !(yield context.sales.contactInfo.ensureComplete())) return;
691
713
  if (!isCurrentCheckoutRequest()) return;
692
- const liveTempOrder = (_ref6 = (_context$sales$bookin6 = (_context$sales$bookin7 = context.sales.bookingTicket) === null || _context$sales$bookin7 === void 0 || (_context$sales$bookin8 = _context$sales$bookin7.getTempOrder) === null || _context$sales$bookin8 === void 0 ? void 0 : _context$sales$bookin8.call(_context$sales$bookin7)) !== null && _context$sales$bookin6 !== void 0 ? _context$sales$bookin6 : context.sales.tempOrder) !== null && _ref6 !== void 0 ? _ref6 : null;
714
+ const liveTempOrder = (_ref7 = (_context$sales$bookin6 = (_context$sales$bookin7 = context.sales.bookingTicket) === null || _context$sales$bookin7 === void 0 || (_context$sales$bookin8 = _context$sales$bookin7.getTempOrder) === null || _context$sales$bookin8 === void 0 ? void 0 : _context$sales$bookin8.call(_context$sales$bookin7)) !== null && _context$sales$bookin6 !== void 0 ? _context$sales$bookin6 : context.sales.tempOrder) !== null && _ref7 !== void 0 ? _ref7 : null;
693
715
  if (businessAvailability.enabled && !businessAvailability.requirePaymentOnSubmit) {
694
716
  deferredAttempt = true;
695
717
  setSubmissionError(null);
@@ -698,8 +720,8 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
698
720
  if (!isCurrentCheckoutRequest()) return;
699
721
  const submitted = require_deferredCheckout.resolveKioskDeferredSubmission(result, liveTempOrder);
700
722
  if (!submitted) {
701
- var _ref7, _ref8, _result$message, _result$data;
702
- throw new Error(String((_ref7 = (_ref8 = (_result$message = result === null || result === void 0 ? void 0 : result.message) !== null && _result$message !== void 0 ? _result$message : result === null || result === void 0 ? void 0 : result.msg) !== null && _ref8 !== void 0 ? _ref8 : result === null || result === void 0 || (_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.message) !== null && _ref7 !== void 0 ? _ref7 : _pisell_utils.locales.getText("pisell2.big-sale.kiosk.submit-failure")));
723
+ var _ref8, _ref9, _result$message, _result$data;
724
+ throw new Error(String((_ref8 = (_ref9 = (_result$message = result === null || result === void 0 ? void 0 : result.message) !== null && _result$message !== void 0 ? _result$message : result === null || result === void 0 ? void 0 : result.msg) !== null && _ref9 !== void 0 ? _ref9 : result === null || result === void 0 || (_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.message) !== null && _ref8 !== void 0 ? _ref8 : _pisell_utils.locales.getText("pisell2.big-sale.kiosk.submit-failure")));
703
725
  }
704
726
  if (platform === "pc" || platform === "h5" || shouldUseConsumerPayment) {
705
727
  var _utils$history, _app$history3;
@@ -728,12 +750,12 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
728
750
  return;
729
751
  }
730
752
  if (shouldUseConsumerPayment && context.sales.enableMultiCurrencySettlement && require_index.isVirtualSettlementTempOrder(liveTempOrder)) {
731
- var _ref11, _ref12, _ref13, _result$data$total_am, _result$data3, _result$data4, _liveTempOrder$summar, _context$summary$summ, _context$sales$bookin11, _context$sales$bookin12, _utils$history2, _app$history4;
753
+ var _ref12, _ref13, _ref14, _result$data$total_am, _result$data3, _result$data4, _liveTempOrder$summar, _context$summary$summ, _context$sales$bookin11, _context$sales$bookin12, _utils$history2, _app$history4;
732
754
  yield context.cart.waitForCartConsistency();
733
755
  const result = yield context.cart.submit(void 0, checkoutSubmitOptions);
734
756
  if (!require_utils$1.isSalesOrderSubmitSuccess(result)) {
735
- var _ref9, _ref10, _result$message2, _result$data2;
736
- showCheckoutFailure(String((_ref9 = (_ref10 = (_result$message2 = result === null || result === void 0 ? void 0 : result.message) !== null && _result$message2 !== void 0 ? _result$message2 : result === null || result === void 0 ? void 0 : result.msg) !== null && _ref10 !== void 0 ? _ref10 : result === null || result === void 0 || (_result$data2 = result.data) === null || _result$data2 === void 0 ? void 0 : _result$data2.message) !== null && _ref9 !== void 0 ? _ref9 : _pisell_utils.locales.getText("pisell2.big-sale.kiosk.payment-failure-description")));
757
+ var _ref10, _ref11, _result$message2, _result$data2;
758
+ showCheckoutFailure(String((_ref10 = (_ref11 = (_result$message2 = result === null || result === void 0 ? void 0 : result.message) !== null && _result$message2 !== void 0 ? _result$message2 : result === null || result === void 0 ? void 0 : result.msg) !== null && _ref11 !== void 0 ? _ref11 : result === null || result === void 0 || (_result$data2 = result.data) === null || _result$data2 === void 0 ? void 0 : _result$data2.message) !== null && _ref10 !== void 0 ? _ref10 : _pisell_utils.locales.getText("pisell2.big-sale.kiosk.payment-failure-description")));
737
759
  return;
738
760
  }
739
761
  const orderId = require_utils$1.resolveSaleDetailOrderIdFromSalesResult(context.sales, result);
@@ -741,7 +763,7 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
741
763
  showCheckoutFailure(String(_pisell_utils.locales.getText("pisell2.big-sale.kiosk.payment-failure-description")));
742
764
  return;
743
765
  }
744
- const totalAmount = (_ref11 = (_ref12 = (_ref13 = (_result$data$total_am = result === null || result === void 0 || (_result$data3 = result.data) === null || _result$data3 === void 0 ? void 0 : _result$data3.total_amount) !== null && _result$data$total_am !== void 0 ? _result$data$total_am : result === null || result === void 0 || (_result$data4 = result.data) === null || _result$data4 === void 0 ? void 0 : _result$data4.expect_amount) !== null && _ref13 !== void 0 ? _ref13 : liveTempOrder === null || liveTempOrder === void 0 || (_liveTempOrder$summar = liveTempOrder.summary) === null || _liveTempOrder$summar === void 0 ? void 0 : _liveTempOrder$summar.total_amount) !== null && _ref12 !== void 0 ? _ref12 : (_context$summary$summ = context.summary.summary) === null || _context$summary$summ === void 0 ? void 0 : _context$summary$summ.total_amount) !== null && _ref11 !== void 0 ? _ref11 : 0;
766
+ const totalAmount = (_ref12 = (_ref13 = (_ref14 = (_result$data$total_am = result === null || result === void 0 || (_result$data3 = result.data) === null || _result$data3 === void 0 ? void 0 : _result$data3.total_amount) !== null && _result$data$total_am !== void 0 ? _result$data$total_am : result === null || result === void 0 || (_result$data4 = result.data) === null || _result$data4 === void 0 ? void 0 : _result$data4.expect_amount) !== null && _ref14 !== void 0 ? _ref14 : liveTempOrder === null || liveTempOrder === void 0 || (_liveTempOrder$summar = liveTempOrder.summary) === null || _liveTempOrder$summar === void 0 ? void 0 : _liveTempOrder$summar.total_amount) !== null && _ref13 !== void 0 ? _ref13 : (_context$summary$summ = context.summary.summary) === null || _context$summary$summ === void 0 ? void 0 : _context$summary$summ.total_amount) !== null && _ref12 !== void 0 ? _ref12 : 0;
745
767
  yield context.sales.clearCartAndReset();
746
768
  (_context$sales$bookin11 = context.sales.bookingTicket) === null || _context$sales$bookin11 === void 0 || (_context$sales$bookin12 = _context$sales$bookin11.clearSessionStorageOrderSnapshot) === null || _context$sales$bookin12 === void 0 || _context$sales$bookin12.call(_context$sales$bookin11);
747
769
  persistKioskSessionView(context.sales.bookingTicket, "catalog");
@@ -752,8 +774,8 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
752
774
  return;
753
775
  }
754
776
  yield context.cart.waitForCartConsistency();
755
- const currentTempOrder = (_ref14 = (_context$sales$bookin13 = (_context$sales$bookin14 = context.sales.bookingTicket) === null || _context$sales$bookin14 === void 0 || (_context$sales$bookin15 = _context$sales$bookin14.getTempOrder) === null || _context$sales$bookin15 === void 0 ? void 0 : _context$sales$bookin15.call(_context$sales$bookin14)) !== null && _context$sales$bookin13 !== void 0 ? _context$sales$bookin13 : context.sales.tempOrder) !== null && _ref14 !== void 0 ? _ref14 : null;
756
- const currentSummary = (_ref15 = (_ref16 = context.summary.summary) !== null && _ref16 !== void 0 ? _ref16 : currentTempOrder === null || currentTempOrder === void 0 ? void 0 : currentTempOrder.summary) !== null && _ref15 !== void 0 ? _ref15 : null;
777
+ const currentTempOrder = (_ref15 = (_context$sales$bookin13 = (_context$sales$bookin14 = context.sales.bookingTicket) === null || _context$sales$bookin14 === void 0 || (_context$sales$bookin15 = _context$sales$bookin14.getTempOrder) === null || _context$sales$bookin15 === void 0 ? void 0 : _context$sales$bookin15.call(_context$sales$bookin14)) !== null && _context$sales$bookin13 !== void 0 ? _context$sales$bookin13 : context.sales.tempOrder) !== null && _ref15 !== void 0 ? _ref15 : null;
778
+ const currentSummary = (_ref16 = (_ref17 = context.summary.summary) !== null && _ref17 !== void 0 ? _ref17 : currentTempOrder === null || currentTempOrder === void 0 ? void 0 : currentTempOrder.summary) !== null && _ref16 !== void 0 ? _ref16 : null;
757
779
  const shouldCompleteNoPaymentInPage = require_zeroAmountCheckout.isKioskPlatformZeroAmountCheckout(platform, currentSummary);
758
780
  if (shouldUseConsumerPayment && !shouldCompleteNoPaymentInPage && typeof utils.action !== "function") throw new Error("[KioskBigSale] appHelper.utils.action is not available.");
759
781
  if (require_zeroAmountCheckout.shouldSubmitKioskOrderBeforeCheckout({
@@ -761,7 +783,7 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
761
783
  summary: currentSummary,
762
784
  shouldUseConsumerPayment
763
785
  })) {
764
- var _context$sales$bookin16, _context$sales$bookin17, _ref19, _context$sales$bookin18, _context$sales$bookin19, _context$sales$bookin20;
786
+ var _context$sales$bookin16, _context$sales$bookin17, _ref20, _context$sales$bookin18, _context$sales$bookin19, _context$sales$bookin20;
765
787
  const walletAssetsState = (_context$sales$bookin16 = context.sales.bookingTicket) === null || _context$sales$bookin16 === void 0 || (_context$sales$bookin17 = _context$sales$bookin16.getWalletAssetsState) === null || _context$sales$bookin17 === void 0 ? void 0 : _context$sales$bookin17.call(_context$sales$bookin16);
766
788
  const deferredWalletPaymentPlan = resolveKioskDeferredWalletPaymentPlan({
767
789
  platform,
@@ -774,8 +796,8 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
774
796
  if (shouldCompleteNoPaymentInPage) publishKioskCollaborationPreviewStatus(app, "checkout");
775
797
  const result = yield context.cart.submit(submitParams, checkoutSubmitOptions);
776
798
  if (!require_utils$1.isSalesOrderSubmitSuccess(result)) {
777
- var _ref17, _ref18, _result$message3, _result$data5;
778
- showCheckoutFailure(String((_ref17 = (_ref18 = (_result$message3 = result === null || result === void 0 ? void 0 : result.message) !== null && _result$message3 !== void 0 ? _result$message3 : result === null || result === void 0 ? void 0 : result.msg) !== null && _ref18 !== void 0 ? _ref18 : result === null || result === void 0 || (_result$data5 = result.data) === null || _result$data5 === void 0 ? void 0 : _result$data5.message) !== null && _ref17 !== void 0 ? _ref17 : _pisell_utils.locales.getText("pisell2.big-sale.kiosk.payment-failure-description")));
799
+ var _ref18, _ref19, _result$message3, _result$data5;
800
+ showCheckoutFailure(String((_ref18 = (_ref19 = (_result$message3 = result === null || result === void 0 ? void 0 : result.message) !== null && _result$message3 !== void 0 ? _result$message3 : result === null || result === void 0 ? void 0 : result.msg) !== null && _ref19 !== void 0 ? _ref19 : result === null || result === void 0 || (_result$data5 = result.data) === null || _result$data5 === void 0 ? void 0 : _result$data5.message) !== null && _ref18 !== void 0 ? _ref18 : _pisell_utils.locales.getText("pisell2.big-sale.kiosk.payment-failure-description")));
779
801
  return;
780
802
  }
781
803
  const orderId = require_utils$1.resolveSaleDetailOrderIdFromSalesResult(context.sales, result);
@@ -783,10 +805,10 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
783
805
  showCheckoutFailure(String(_pisell_utils.locales.getText("pisell2.big-sale.kiosk.payment-failure-description")));
784
806
  return;
785
807
  }
786
- const tempOrder = (_ref19 = (_context$sales$bookin18 = (_context$sales$bookin19 = context.sales.bookingTicket) === null || _context$sales$bookin19 === void 0 || (_context$sales$bookin20 = _context$sales$bookin19.getTempOrder) === null || _context$sales$bookin20 === void 0 ? void 0 : _context$sales$bookin20.call(_context$sales$bookin19)) !== null && _context$sales$bookin18 !== void 0 ? _context$sales$bookin18 : context.sales.tempOrder) !== null && _ref19 !== void 0 ? _ref19 : null;
808
+ const tempOrder = (_ref20 = (_context$sales$bookin18 = (_context$sales$bookin19 = context.sales.bookingTicket) === null || _context$sales$bookin19 === void 0 || (_context$sales$bookin20 = _context$sales$bookin19.getTempOrder) === null || _context$sales$bookin20 === void 0 ? void 0 : _context$sales$bookin20.call(_context$sales$bookin19)) !== null && _context$sales$bookin18 !== void 0 ? _context$sales$bookin18 : context.sales.tempOrder) !== null && _ref20 !== void 0 ? _ref20 : null;
787
809
  const totalAmount = require_zeroAmountCheckout.resolveKioskSubmittedPayableAmount(result, tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.summary, context.summary.summary);
788
810
  if (shouldCompleteNoPaymentInPage) {
789
- var _ref20;
811
+ var _ref21;
790
812
  const validation = require_zeroAmountCheckout.validateKioskNoPaymentSubmitResult({
791
813
  result,
792
814
  orderId,
@@ -798,7 +820,7 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
798
820
  return;
799
821
  }
800
822
  setPaymentResult(require_zeroAmountCheckout.resolveKioskNoPaymentResultViewModel({
801
- summary: (_ref20 = tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.summary) !== null && _ref20 !== void 0 ? _ref20 : currentSummary,
823
+ summary: (_ref21 = tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.summary) !== null && _ref21 !== void 0 ? _ref21 : currentSummary,
802
824
  currencySymbol: (tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.currency_symbol) || "$"
803
825
  }));
804
826
  persistKioskSessionView(context.sales.bookingTicket, "catalog");
@@ -870,8 +892,8 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
870
892
  if (nextPaymentResult.status !== "failed") persistKioskSessionView(context.sales.bookingTicket, "catalog");
871
893
  setView(nextPaymentResult.status === "failed" ? "failure" : "success");
872
894
  } else if ((result === null || result === void 0 ? void 0 : result.type) === "error" || (result === null || result === void 0 ? void 0 : result.status) === "failed") {
873
- var _ref21, _result$error, _result$payload2;
874
- showCheckoutFailure((_ref21 = (_result$error = result === null || result === void 0 ? void 0 : result.error) !== null && _result$error !== void 0 ? _result$error : result === null || result === void 0 || (_result$payload2 = result.payload) === null || _result$payload2 === void 0 ? void 0 : _result$payload2.message) !== null && _ref21 !== void 0 ? _ref21 : _pisell_utils.locales.getText("pisell2.big-sale.kiosk.payment-failure-description"));
895
+ var _ref22, _result$error, _result$payload2;
896
+ showCheckoutFailure((_ref22 = (_result$error = result === null || result === void 0 ? void 0 : result.error) !== null && _result$error !== void 0 ? _result$error : result === null || result === void 0 || (_result$payload2 = result.payload) === null || _result$payload2 === void 0 ? void 0 : _result$payload2.message) !== null && _ref22 !== void 0 ? _ref22 : _pisell_utils.locales.getText("pisell2.big-sale.kiosk.payment-failure-description"));
875
897
  }
876
898
  if (require_utils$1.shouldCloseDialogAfterCheckout(result)) {
877
899
  var _result$data7;
@@ -903,7 +925,7 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
903
925
  }
904
926
  });
905
927
  return function performCheckout() {
906
- return _ref22.apply(this, arguments);
928
+ return _ref23.apply(this, arguments);
907
929
  };
908
930
  }();
909
931
  const hasSelectedCustomerVoucher = () => {
@@ -912,22 +934,22 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
912
934
  return (runtimeDiscountList.length > 0 ? runtimeDiscountList : context.cart.discountList || []).some((discount) => require_adapters.isCustomerVoucher(discount) && Boolean(discount === null || discount === void 0 ? void 0 : discount.isSelected));
913
935
  };
914
936
  const hasAppliedWalletAsset = () => {
915
- var _context$sales$bookin23, _context$sales$bookin24, _walletAssetsState$se, _walletAssetsState$se2, _walletAssetsState$se3, _walletAssetsState$se4, _walletAssetsState$co, _walletAssetsState$co2, _ref23, _context$sales$bookin25, _context$sales$bookin26, _context$sales$bookin27;
937
+ var _context$sales$bookin23, _context$sales$bookin24, _walletAssetsState$se, _walletAssetsState$se2, _walletAssetsState$se3, _walletAssetsState$se4, _walletAssetsState$co, _walletAssetsState$co2, _ref24, _context$sales$bookin25, _context$sales$bookin26, _context$sales$bookin27;
916
938
  const walletAssetsState = (_context$sales$bookin23 = context.sales.bookingTicket) === null || _context$sales$bookin23 === void 0 || (_context$sales$bookin24 = _context$sales$bookin23.getWalletAssetsState) === null || _context$sales$bookin24 === void 0 ? void 0 : _context$sales$bookin24.call(_context$sales$bookin23);
917
939
  if (((_walletAssetsState$se = walletAssetsState === null || walletAssetsState === void 0 || (_walletAssetsState$se2 = walletAssetsState.selectedIds) === null || _walletAssetsState$se2 === void 0 ? void 0 : _walletAssetsState$se2.length) !== null && _walletAssetsState$se !== void 0 ? _walletAssetsState$se : 0) > 0 || ((_walletAssetsState$se3 = walletAssetsState === null || walletAssetsState === void 0 || (_walletAssetsState$se4 = walletAssetsState.selectedItems) === null || _walletAssetsState$se4 === void 0 ? void 0 : _walletAssetsState$se4.length) !== null && _walletAssetsState$se3 !== void 0 ? _walletAssetsState$se3 : 0) > 0 || ((_walletAssetsState$co = walletAssetsState === null || walletAssetsState === void 0 || (_walletAssetsState$co2 = walletAssetsState.committedIds) === null || _walletAssetsState$co2 === void 0 ? void 0 : _walletAssetsState$co2.length) !== null && _walletAssetsState$co !== void 0 ? _walletAssetsState$co : 0) > 0) return true;
918
- const tempOrder = (_ref23 = (_context$sales$bookin25 = (_context$sales$bookin26 = context.sales.bookingTicket) === null || _context$sales$bookin26 === void 0 || (_context$sales$bookin27 = _context$sales$bookin26.getTempOrder) === null || _context$sales$bookin27 === void 0 ? void 0 : _context$sales$bookin27.call(_context$sales$bookin26)) !== null && _context$sales$bookin25 !== void 0 ? _context$sales$bookin25 : context.sales.tempOrder) !== null && _ref23 !== void 0 ? _ref23 : null;
940
+ const tempOrder = (_ref24 = (_context$sales$bookin25 = (_context$sales$bookin26 = context.sales.bookingTicket) === null || _context$sales$bookin26 === void 0 || (_context$sales$bookin27 = _context$sales$bookin26.getTempOrder) === null || _context$sales$bookin27 === void 0 ? void 0 : _context$sales$bookin27.call(_context$sales$bookin26)) !== null && _context$sales$bookin25 !== void 0 ? _context$sales$bookin25 : context.sales.tempOrder) !== null && _ref24 !== void 0 ? _ref24 : null;
919
941
  return ((tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.payments) || []).some((payment) => {
920
942
  const voucherId = payment === null || payment === void 0 ? void 0 : payment.voucher_id;
921
943
  return voucherId !== void 0 && voucherId !== null && String(voucherId).trim() !== "" && Number(voucherId) !== 0;
922
944
  });
923
945
  };
924
946
  const continueCheckout = () => {
925
- var _ref24, _context$sales$bookin28, _context$sales$bookin29, _context$sales$bookin30;
947
+ var _ref25, _context$sales$bookin28, _context$sales$bookin29, _context$sales$bookin30;
926
948
  if (businessAvailability.enabled && !businessAvailability.requirePaymentOnSubmit) {
927
949
  performCheckout();
928
950
  return;
929
951
  }
930
- const liveTempOrder = (_ref24 = (_context$sales$bookin28 = (_context$sales$bookin29 = context.sales.bookingTicket) === null || _context$sales$bookin29 === void 0 || (_context$sales$bookin30 = _context$sales$bookin29.getTempOrder) === null || _context$sales$bookin30 === void 0 ? void 0 : _context$sales$bookin30.call(_context$sales$bookin29)) !== null && _context$sales$bookin28 !== void 0 ? _context$sales$bookin28 : context.sales.tempOrder) !== null && _ref24 !== void 0 ? _ref24 : null;
952
+ const liveTempOrder = (_ref25 = (_context$sales$bookin28 = (_context$sales$bookin29 = context.sales.bookingTicket) === null || _context$sales$bookin29 === void 0 || (_context$sales$bookin30 = _context$sales$bookin29.getTempOrder) === null || _context$sales$bookin30 === void 0 ? void 0 : _context$sales$bookin30.call(_context$sales$bookin29)) !== null && _context$sales$bookin28 !== void 0 ? _context$sales$bookin28 : context.sales.tempOrder) !== null && _ref25 !== void 0 ? _ref25 : null;
931
953
  if (context.sales.enableMultiCurrencySettlement && require_index.isVirtualSettlementTempOrder(liveTempOrder)) {
932
954
  performCheckout();
933
955
  return;
@@ -941,7 +963,7 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
941
963
  setIsVoucherReminderOpen(true);
942
964
  };
943
965
  const beginCheckoutWithFulfillment = function() {
944
- var _ref25 = require_asyncToGenerator._asyncToGenerator(function* () {
966
+ var _ref26 = require_asyncToGenerator._asyncToGenerator(function* () {
945
967
  if (!(yield businessAvailability.ensureCanShop())) return;
946
968
  if (!shouldUseFulfillmentCheckout) {
947
969
  continueCheckout();
@@ -960,11 +982,11 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
960
982
  }
961
983
  });
962
984
  return function beginCheckoutWithFulfillment() {
963
- return _ref25.apply(this, arguments);
985
+ return _ref26.apply(this, arguments);
964
986
  };
965
987
  }();
966
988
  const handleCheckout = function() {
967
- var _ref26 = require_asyncToGenerator._asyncToGenerator(function* () {
989
+ var _ref27 = require_asyncToGenerator._asyncToGenerator(function* () {
968
990
  if (checkoutEntryOpeningRef.current || checkoutOpeningRef.current || checkoutLoginOpeningRef.current || fulfillmentOpeningRef.current) return;
969
991
  checkoutEntryOpeningRef.current = true;
970
992
  try {
@@ -1042,7 +1064,7 @@ function KioskBigSaleTemplate({ isActive = true, osKey, productListPreferencesCh
1042
1064
  }
1043
1065
  });
1044
1066
  return function handleCheckout() {
1045
- return _ref26.apply(this, arguments);
1067
+ return _ref27.apply(this, arguments);
1046
1068
  };
1047
1069
  }();
1048
1070
  const handleUseVoucherBeforeCheckout = () => {
@@ -1080,6 +1080,8 @@ interface BookingTicketHandle extends PickupTimingHandle {
1080
1080
  getOpenData?: () => Promise<Record<string, any> | null>;
1081
1081
  getContactInfoConfig?: () => Promise<SalesContactInfoConfig>;
1082
1082
  validateContactInfo?: () => Promise<void>;
1083
+ /** Online venue-ticket checkout: reject missing configured required products. */
1084
+ validateRequiredProducts?: () => Promise<void>;
1083
1085
  /** 写入当前临时订单根字段 tempOrder.buzzer。 */
1084
1086
  setPickupRef?: (buzzer: string) => string;
1085
1087
  /** 将自助点餐固定为柜台取餐。 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pisell/private-materials",
3
- "version": "6.12.365",
3
+ "version": "6.12.366",
4
4
  "main": "./lib/index.js",
5
5
  "module": "./es/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -74,10 +74,10 @@
74
74
  "styled-components": "^6.0.0-rc.3",
75
75
  "use-sync-external-store": "^1.6.0",
76
76
  "@pisell/pi-payment-sdk": "0.0.4",
77
- "@pisell/materials": "6.12.87",
78
77
  "@pisell/date-picker": "3.0.12",
79
- "@pisell/icon": "0.0.11",
80
- "@pisell/utils": "3.0.7"
78
+ "@pisell/materials": "6.12.87",
79
+ "@pisell/utils": "3.0.7",
80
+ "@pisell/icon": "0.0.11"
81
81
  },
82
82
  "peerDependencies": {
83
83
  "react": "^18.0.0",
@@ -1,3 +0,0 @@
1
- import "./ProductDisplayAdapter.js";
2
- import "./types.js";
3
- export {};