@pisell/private-materials 6.12.293 → 6.12.294

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 (44) 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 +12 -12
  6. package/build/lowcode/view.js +12 -12
  7. package/es/components/bigSale/components/BookingFloatingPanel/useBookingPanelController.js +0 -1
  8. package/es/components/bigSale/components/ProductList/index.js +0 -1
  9. package/es/components/bigSale/components/TimeBar/index.js +0 -1
  10. package/es/components/bigSale/dialog.js +0 -1
  11. package/es/components/bigSale/hooks/useBigSaleContext.js +0 -1
  12. package/es/components/bigSale/hooks/useSelectFloorMapResourceForBigSale.js +0 -1
  13. package/es/components/bigSale/index.js +0 -1
  14. package/es/components/bigSale/templates/Kiosk/index.js +0 -1
  15. package/es/components/sharedSecondaryBigSale/SharedSecondaryBigSaleReceiver.js +0 -1
  16. package/es/index.js +0 -2
  17. package/es/plus/multiCurrencySettlement/index.js +1 -1
  18. package/es/plus/pisellReservation/data/bookingToReservationTables.js +1 -1
  19. package/es/plus/pisellReservation/floorMap/floorPlanApi.js +1 -1
  20. package/es/plus/pisellReservation/floorMap/reservationMock.js +1 -1
  21. package/es/plus/saasDevice/devicePasscodes/model.js +4 -4
  22. package/es/plus/saleDetail/Base.js +0 -1
  23. package/es/plus/saleDetail/components/Client/hooks/useClientSelectorProps.js +0 -1
  24. package/es/plus/saleDetail/components/DetailActions/PrintAction.js +0 -1
  25. package/es/plus/saleDetail/components/DetailActions/index.js +0 -1
  26. package/es/plus/saleDetail/components/SummaryFinancialSections/index.js +0 -1
  27. package/es/plus/saleDetail/components/Voucher/DiscountCardHolderContext.js +6 -7
  28. package/es/plus/saleDetail/index.js +0 -1
  29. package/es/plus/saleDetail/tmpl/B/components/Dish/index.js +0 -1
  30. package/es/plus/saleDetail/tmpl/B/index.js +0 -1
  31. package/es/plus/salesSdk/utils/addProductWithFlowDebounced.js +1 -1
  32. package/es/plus/salesSdk/utils/bookingDate.js +1 -1
  33. package/es/plus/salesSdk/utils/discountCard.js +7 -3
  34. package/es/plus/salesSdk/utils/enrichCartLineHolderDisplay.js +1 -1
  35. package/es/plus/walletPassGallery/components/timelineSection/index.js +4 -4
  36. package/es/private-materials/lowcode/authmodal/meta.d.ts +1 -0
  37. package/es/pro/Login2.0/AuthModal.d.ts +1 -1
  38. package/es/pro/Login2.0/index.d.ts +2 -2
  39. package/es/pro/Login2.0/shared/types.d.ts +1 -1
  40. package/lib/plus/saleDetail/components/Voucher/DiscountCardHolderContext.js +5 -6
  41. package/lib/plus/salesSdk/utils/discountCard.js +7 -2
  42. package/package.json +3 -3
  43. package/es/plus/pisellReservation/index.js +0 -17
  44. package/es/plus/salesSdk/index.js +0 -54
@@ -1,6 +1,5 @@
1
1
  import useEngineContext from "../../../../hooks/useEngineContext.js";
2
2
  import { subscribeBookingDateChange } from "../../../../plus/salesSdk/utils/bookingDate.js";
3
- import "../../../../plus/salesSdk/index.js";
4
3
  import dayjs from "dayjs";
5
4
  import { useCallback, useEffect, useState } from "react";
6
5
  //#region src/components/bigSale/components/BookingFloatingPanel/useBookingPanelController.ts
@@ -14,7 +14,6 @@ import { generateProductTabs } from "../../../ticketBooking/components/ProductDi
14
14
  import { useSalesSdkBusinessAvailability } from "../../../../plus/salesSdk/context/SalesSdkBusinessAvailabilityContext.js";
15
15
  import { showAddToCartToast } from "../../../../plus/salesSdk/components/showAddToCartToast.js";
16
16
  import { mergeBookingsForDisplay } from "../../../../plus/salesSdk/utils/mergeBookingsForDisplay.js";
17
- import "../../../../plus/salesSdk/index.js";
18
17
  import { buildBigSaleProductListPreferencesKey, readBigSaleProductListPreferences, readStoredBigSaleProductListPreferences, removeBigSaleProductListPreferences, resolveBigSaleAutoProductListPreferences, writeBigSaleProductListPreferences } from "../../utils/productListPreferences.js";
19
18
  import { resolveBigSaleProductDisplayConfig, useBigSaleProductListConfig } from "../../hooks/useBigSaleProductListConfig.js";
20
19
  import locales_default from "../../locales/index.js";
@@ -4,7 +4,6 @@ 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";
8
7
  import locales_default from "../../locales/index.js";
9
8
  import { getPosWeekStartsOn, resolvePosCountryCode } from "../../../../utils/posDateLocale.js";
10
9
  import dayjs from "dayjs";
@@ -6,7 +6,6 @@ import { buildInitBookingContextParams, collectBookingIdsFromTempOrder } from ".
6
6
  import { useSalesSdk } from "../../plus/salesSdk/hooks/useSalesSdk.js";
7
7
  import { useSalesSdkCart } from "../../plus/salesSdk/hooks/useSalesSdkCart.js";
8
8
  import { SalesSdkPrepareOrderSwitchContext, SalesSdkRootRefreshContext } from "../../plus/salesSdk/context/SalesSdkProvider.js";
9
- import "../../plus/salesSdk/index.js";
10
9
  import { isPersistedBigSaleOrderId } from "./utils/orderIdentity.js";
11
10
  import { seedDineInReservationToCart } from "../../plus/pisellReservation/utils/seedDineInReservationToCart.js";
12
11
  import BigSale from "./index.js";
@@ -4,7 +4,6 @@ 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";
8
7
  import { useMemo } from "react";
9
8
  //#region src/components/bigSale/hooks/useBigSaleContext.ts
10
9
  /**
@@ -3,7 +3,6 @@ import { _asyncToGenerator } from "../../../_virtual/_@oxc-project_runtime@0.122
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";
7
6
  import { isPersistedBigSaleOrderId } from "../utils/orderIdentity.js";
8
7
  import { resolveOrderIdForHostActions } from "../../../plus/pisellReservation/components/bookingDetailModal/bookingDetailHostActions.js";
9
8
  import { usePicoCodingOpenData } from "../../../plus/pisellReservation/hooks/usePicoCodingOpenData.js";
@@ -8,7 +8,6 @@ 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";
12
11
  import { ResponsiveBigSaleBase } from "./Base.js";
13
12
  import { isBigSaleProductSelectionFlowScene, resolveBigSaleSelectionFlowConfig } from "./selectionFlowConfig.js";
14
13
  import { isKioskPresentation } from "./templateCapabilities.js";
@@ -12,7 +12,6 @@ import { useSalesSdkBusinessAvailability } from "../../../../plus/salesSdk/conte
12
12
  import { collectUnassignedHolderLines } from "../../../../plus/salesSdk/utils/holderSubmitValidation.js";
13
13
  import { isFulfillmentTimingBooking } from "../../../../plus/salesSdk/utils/fulfillmentTimingBooking.js";
14
14
  import { useSalesSdk } from "../../../../plus/salesSdk/hooks/useSalesSdk.js";
15
- import "../../../../plus/salesSdk/index.js";
16
15
  import { usePickSaleDetailContext } from "../../hooks/usePickSaleDetailContext.js";
17
16
  import { resolveBigSaleAutoProductListPreferences } from "../../utils/productListPreferences.js";
18
17
  import { resolveBigSaleProductDisplayConfig } from "../../hooks/useBigSaleProductListConfig.js";
@@ -2,7 +2,6 @@ import useEngineContext from "../../hooks/useEngineContext.js";
2
2
  import { _asyncToGenerator } from "../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.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";
6
5
  import { useEffect, useRef } from "react";
7
6
  import { useMemoizedFn } from "ahooks";
8
7
  //#region src/components/sharedSecondaryBigSale/SharedSecondaryBigSaleReceiver.tsx
package/es/index.js CHANGED
@@ -87,7 +87,6 @@ import { useSalesSdkProducts } from "./plus/salesSdk/hooks/useSalesSdkProducts.j
87
87
  import SalesSdkDemo from "./plus/salesSdk/demo/index.js";
88
88
  import { useSalesSdkDish } from "./plus/salesSdk/hooks/useSalesSdkDish.js";
89
89
  import { useSyncOsModule } from "./plus/salesSdk/hooks/useSyncOsModule.js";
90
- import "./plus/salesSdk/index.js";
91
90
  import BigSaleRightActionPanel from "./components/BigSaleRightActionPanel/index.js";
92
91
  import ResponsiveWrapper from "./components/list/ResponsiveWrapper.js";
93
92
  import { resolveBigSaleSelectionFlowConfig } from "./components/bigSale/selectionFlowConfig.js";
@@ -142,7 +141,6 @@ import PisellVenueControlPage from "./plus/pisellReservation/PisellVenueControlP
142
141
  import PisellVenueWallPage from "./plus/pisellReservation/PisellVenueWallPage.js";
143
142
  import PisellReservationTablePage from "./plus/pisellReservation/PisellReservationTablePage.js";
144
143
  import SelectFloorMapResourceDialog from "./plus/pisellReservation/components/SelectFloorMapResourceDialog.js";
145
- import "./plus/pisellReservation/index.js";
146
144
  import { PisellTopology, PisellTopologyCore } from "./plus/pisellTopology/PisellTopology.js";
147
145
  import cupProject_default from "./components/ecocup/cupProject/index.js";
148
146
  import CupList from "./components/ecocup/cupList/index.js";
@@ -280,4 +280,4 @@ function attachSelectedSettlement(item, selectedSettlement) {
280
280
  });
281
281
  }
282
282
  //#endregion
283
- export { attachSelectedSettlement, buildSettlementPriceRows, createVirtualOnlySkuDisplayProduct, findFirstVirtualCurrencyAsset, formatSettlementAmount, formatSettlementSelectionTotal, formatTempOrderSettlementAmount, getReservedVirtualSettlementAmount, getSettlementKey, getSettlementOptions, hasSettlementOptions, hasSufficientVirtualCurrencyBalance, isVirtualOnlySettlementProduct, isVirtualSettlementTempOrder, resolveConfiguredUnavailableReason, resolveLegalSettlementAddOnUnitPrice, resolveSettlementOptionEntries, resolveVirtualSettlementErrorMessage, showVirtualSettlementErrorToast };
283
+ export { attachSelectedSettlement, buildSettlementPriceRows, createVirtualOnlySkuDisplayProduct, formatSettlementAmount, formatSettlementSelectionTotal, formatTempOrderSettlementAmount, getSettlementKey, getSettlementOptions, hasSettlementOptions, hasSufficientVirtualCurrencyBalance, isVirtualOnlySettlementProduct, isVirtualSettlementTempOrder, resolveConfiguredUnavailableReason, resolveLegalSettlementAddOnUnitPrice, resolveSettlementOptionEntries, resolveVirtualSettlementErrorMessage, showVirtualSettlementErrorToast };
@@ -259,4 +259,4 @@ function bookingListToReservationTableRows(bookings) {
259
259
  return rows;
260
260
  }
261
261
  //#endregion
262
- export { applyHostResourceShellToBaseRow, bookingListToReservationTableRows, customerBrief, extractResourceRecordIds, filterBookingsByResourceIds, hostBookingStatusToCardStatus, hostBookingUiPatchFromRecord, mergeBookingsForResourceRecord };
262
+ export { applyHostResourceShellToBaseRow, bookingListToReservationTableRows, customerBrief, extractResourceRecordIds, filterBookingsByResourceIds, hostBookingUiPatchFromRecord, mergeBookingsForResourceRecord };
@@ -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, buildDefaultReservationFloorPlanPostBody, ensureShopFloorPlanByCode, putShopFloorPlan, saveViewConfigToShopFloorPlan, shopLayoutToSceneElements$1 as shopLayoutToSceneElements, toastFloorPlanLoadError, toastFloorPlanSaveError, unsubscribeShopFloorPlanCodeQuery };
81
+ export { PISELL_RESERVATION_FLOOR_PLAN_CODE, ensureShopFloorPlanByCode, 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, defaultReservationSceneElements, defaultReservationTableRows, getDefaultReservationFloorMapConfig, getReservationDataSourceFormColumns, getReservationFloorMapShellConfig, mergeFloorMapElementKindCategoriesWithDefaults, mergeFloorMapElementKindsWithDefaults };
930
+ export { RESERVATION_BOUND_ROUND_TABLE_ELEMENT_KIND, RESERVATION_BOUND_TABLE_ELEMENT_KIND, applyReservationFloorMapLiveLabels, defaultReservationTableRows, getDefaultReservationFloorMapConfig, getReservationDataSourceFormColumns, getReservationFloorMapShellConfig, mergeFloorMapElementKindCategoriesWithDefaults, mergeFloorMapElementKindsWithDefaults };
@@ -1,10 +1,10 @@
1
1
  import { _objectSpread2 } from "../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js";
2
2
  import dayjs from "dayjs";
3
- import timezone from "dayjs/plugin/timezone";
4
- import utc from "dayjs/plugin/utc";
3
+ import timezonePlugin from "dayjs/plugin/timezone";
4
+ import utcPlugin from "dayjs/plugin/utc";
5
5
  //#region src/plus/saasDevice/devicePasscodes/model.ts
6
- dayjs.extend(utc);
7
- dayjs.extend(timezone);
6
+ dayjs.extend(utcPlugin);
7
+ dayjs.extend(timezonePlugin);
8
8
  const INITIAL_DEVICE_PASSCODE_STATE = {
9
9
  deviceIds: [],
10
10
  devicesById: {}
@@ -13,7 +13,6 @@ import { useSalesSdkCustomer } from "../salesSdk/hooks/useSalesSdkCustomer.js";
13
13
  import locales_default from "./locales.js";
14
14
  import { useSalesSdkBookingContext } from "../salesSdk/context/SalesSdkBookingContext.js";
15
15
  import { useSalesSdkSummary } from "../salesSdk/hooks/useSalesSdkSummary.js";
16
- import "../salesSdk/index.js";
17
16
  import locales_default$1 from "./components/LineItem/locales.js";
18
17
  import { SaleOrderActionBoundary } from "./actions/index.js";
19
18
  import { SaleDetailTemplateRenderer } from "./tmpl/index.js";
@@ -1,7 +1,6 @@
1
1
  import useEngineContext from "../../../../../hooks/useEngineContext.js";
2
2
  import { _objectSpread2 } from "../../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js";
3
3
  import { useSalesSdkBookingContext } from "../../../../salesSdk/context/SalesSdkBookingContext.js";
4
- import "../../../../salesSdk/index.js";
5
4
  import { useMemo } from "react";
6
5
  import { useMemoizedFn } from "ahooks";
7
6
  //#region src/plus/saleDetail/components/Client/hooks/useClientSelectorProps.ts
@@ -4,7 +4,6 @@ import { _asyncToGenerator } from "../../../../_virtual/_@oxc-project_runtime@0.
4
4
  import { _objectWithoutProperties } from "../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectWithoutProperties.js";
5
5
  import useLogger from "../../../../hooks/useLogger.js";
6
6
  import { useSalesSdk } from "../../../salesSdk/hooks/useSalesSdk.js";
7
- import "../../../salesSdk/index.js";
8
7
  import { invokeLocalReceiptPrint, resolveLocalReceiptPrintModule, resolveSaleDetailOrderIdFromSales } from "./utils.js";
9
8
  import { getRemotePrintActions, getWristbandList } from "../../serve.js";
10
9
  import { EBizPrintType } from "./types.js";
@@ -10,7 +10,6 @@ import { useSalesSdk } from "../../../salesSdk/hooks/useSalesSdk.js";
10
10
  import { useSalesSdkCart } from "../../../salesSdk/hooks/useSalesSdkCart.js";
11
11
  import { useSalesSdkGlobalScanActivity } from "../../../salesSdk/context/SalesSdkGlobalScanActivityContext.js";
12
12
  import { useSalesSdkSummary } from "../../../salesSdk/hooks/useSalesSdkSummary.js";
13
- import "../../../salesSdk/index.js";
14
13
  import { resolveSaleDetailTempOrder } from "../../utils.js";
15
14
  import { getNumericAmount, getSalesHostModule, resolveSaleDetailOrderIdFromSales, resolveSaleDetailOrderIdFromSalesResult, shouldCloseDialogAfterCheckout, updateLocalOrder } from "./utils.js";
16
15
  import { deriveSaleOrderSubmitState } from "../../actions/state.js";
@@ -5,7 +5,6 @@ import { isAppliedPaymentRecord } from "../../../salesSdk/utils/paymentStatus.js
5
5
  import { useSalesSdk } from "../../../salesSdk/hooks/useSalesSdk.js";
6
6
  import { useSalesSdkCart } from "../../../salesSdk/hooks/useSalesSdkCart.js";
7
7
  import { useSalesSdkSummary } from "../../../salesSdk/hooks/useSalesSdkSummary.js";
8
- import "../../../salesSdk/index.js";
9
8
  import { resolveSaleDetailTempOrder } from "../../utils.js";
10
9
  import React, { memo, useMemo } from "react";
11
10
  import { formatAmount, locales } from "@pisell/utils";
@@ -1,7 +1,7 @@
1
1
  import { usePlatform } from "../../../../hooks/useEngineContext.js";
2
2
  import { _asyncToGenerator } from "../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js";
3
3
  import { isWalkIn } from "../../../../components/booking/utils.js";
4
- import { buildMachineCodeHolderPayload, getDiscountHolderActionKey, isHolderBindableWalletPass, patchDiscountCardHolder, pickDiscountCardMachineCode, resolveDiscountCardHolderContext, shouldPromptHolderForDiscountCard } from "../../../salesSdk/utils/discountCard.js";
4
+ import { buildMachineCodeHolderPayload, getDiscountHolderActionKey, hasMissingWalletPassHolder, isHolderBindableWalletPass, isWalletPassUsageBlocked, patchDiscountCardHolder, pickDiscountCardMachineCode, resolveDiscountCardHolderContext } from "../../../salesSdk/utils/discountCard.js";
5
5
  import { isDiscountScanAccepted, showDiscountScanFailMessage } from "../../utils.js";
6
6
  import { updateMachineCodeHolder } from "../../serve.js";
7
7
  import DiscountCardHolderModal from "./components/DiscountCardHolderModal.js";
@@ -100,12 +100,12 @@ function DiscountCardHolderProvider({ children, customerId, discountList, getDis
100
100
  setHolderListRevision((revision) => revision + 1);
101
101
  }, [onDiscountListRefresh]);
102
102
  const getHolderListPasses = useCallback(() => {
103
- return ((getDiscountList === null || getDiscountList === void 0 ? void 0 : getDiscountList()) || discountList || []).filter(isHolderBindableWalletPass).sort((a, b) => Number(shouldPromptHolderForDiscountCard(b)) - Number(shouldPromptHolderForDiscountCard(a)));
103
+ return ((getDiscountList === null || getDiscountList === void 0 ? void 0 : getDiscountList()) || discountList || []).filter(isHolderBindableWalletPass).sort((a, b) => Number(hasMissingWalletPassHolder(b)) - Number(hasMissingWalletPassHolder(a)));
104
104
  }, [discountList, getDiscountList]);
105
105
  const openHolderListModal = useCallback(() => {
106
106
  if (holderPromptDisabled) return;
107
107
  const passList = getHolderListPasses();
108
- const pendingKeys = passList.filter(shouldPromptHolderForDiscountCard).map(getDiscountHolderActionKey);
108
+ const pendingKeys = passList.filter(hasMissingWalletPassHolder).map(getDiscountHolderActionKey);
109
109
  if (!pendingKeys.length) return;
110
110
  setPendingHolderAction(null);
111
111
  holderActionQueueRef.current = [];
@@ -144,8 +144,7 @@ function DiscountCardHolderProvider({ children, customerId, discountList, getDis
144
144
  const latestDiscountList = (getDiscountList === null || getDiscountList === void 0 ? void 0 : getDiscountList()) || discountList || [];
145
145
  const nextActions = [];
146
146
  latestDiscountList.forEach((discount) => {
147
- if ((discount === null || discount === void 0 ? void 0 : discount.isAvailable) !== false) return;
148
- if (!shouldPromptHolderForDiscountCard(discount)) return;
147
+ if (!hasMissingWalletPassHolder(discount)) return;
149
148
  const actionKey = getDiscountHolderActionKey(discount);
150
149
  if (processedAutoHolderRef.current.has(actionKey)) return;
151
150
  if (!resolveDiscountCardHolderContext(discount)) {
@@ -238,7 +237,7 @@ function DiscountCardHolderProvider({ children, customerId, discountList, getDis
238
237
  (_scanCodeClearRef$cur = scanCodeClearRef.current) === null || _scanCodeClearRef$cur === void 0 || _scanCodeClearRef$cur.call(scanCodeClearRef);
239
238
  (_scanCodeSuccessRef$c = scanCodeSuccessRef.current) === null || _scanCodeSuccessRef$c === void 0 || _scanCodeSuccessRef$c.call(scanCodeSuccessRef);
240
239
  } else PisellToast({ content: showDiscountScanFailMessage(result) });
241
- } else if (setDiscountSelected) {
240
+ } else if (setDiscountSelected && !isWalletPassUsageBlocked(activeHolderAction.discount)) {
242
241
  const discountId = selectedHolderListPass ? Number(selectedHolderListPass.id) : activeHolderAction.applyAfterSave && activeHolderAction.selectValue ? Number(activeHolderAction.selectValue.id) : NaN;
243
242
  if (Number.isFinite(discountId)) {
244
243
  var _activeHolderAction$s;
@@ -299,7 +298,7 @@ function DiscountCardHolderProvider({ children, customerId, discountList, getDis
299
298
  ]);
300
299
  const pendingHolderContext = activeHolderAction ? resolveDiscountCardHolderContext(activeHolderAction.discount) : null;
301
300
  const holderModalCustomerId = resolveHolderModalCustomerId(customerId, activeHolderAction === null || activeHolderAction === void 0 ? void 0 : activeHolderAction.discount);
302
- const holderMissingCount = useMemo(() => holderPromptDisabled ? 0 : ((getDiscountList === null || getDiscountList === void 0 ? void 0 : getDiscountList()) || discountList || []).filter(shouldPromptHolderForDiscountCard).length, [
301
+ const holderMissingCount = useMemo(() => holderPromptDisabled ? 0 : ((getDiscountList === null || getDiscountList === void 0 ? void 0 : getDiscountList()) || discountList || []).filter(hasMissingWalletPassHolder).length, [
303
302
  discountList,
304
303
  getDiscountList,
305
304
  holderListRevision,
@@ -5,7 +5,6 @@ import { useSalesSdk } from "../salesSdk/hooks/useSalesSdk.js";
5
5
  import { SalesSdkProvider } from "../salesSdk/context/SalesSdkProvider.js";
6
6
  import { SalesSdkDishProvider } from "../salesSdk/context/SalesSdkDishContext.js";
7
7
  import { SalesSdkBookingContextProvider } from "../salesSdk/context/SalesSdkBookingContext.js";
8
- import "../salesSdk/index.js";
9
8
  import Base_default from "./Base.js";
10
9
  import { resolveSaleDetailOsProps } from "./osProps.js";
11
10
  import React, { forwardRef, useImperativeHandle } from "react";
@@ -1,7 +1,6 @@
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";
5
4
  import { SaleDetailStatusOverview } from "../shared/StatusOverview.js";
6
5
  import { DishGroupView } from "./DishGroupView.js";
7
6
  import dayjs from "dayjs";
@@ -1,7 +1,6 @@
1
1
  import useEngineContext from "../../../../hooks/useEngineContext.js";
2
2
  import { _objectSpread2 } from "../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js";
3
3
  import { useCurrentSalesSdkDish } from "../../../salesSdk/hooks/useCurrentSalesSdkDish.js";
4
- import "../../../salesSdk/index.js";
5
4
  import { getInternalNotesByScheduleEvent } from "../../serve.js";
6
5
  import { TEMPLATE_B_PAY_ACTIONS, TEMPLATE_B_SUMMARY_ACTIONS } from "../../components/DetailActions/configs/index.js";
7
6
  import { DetailActions } from "../../components/DetailActions/index.js";
@@ -366,4 +366,4 @@ function createAddProductWithFlowDebounced(deps) {
366
366
  };
367
367
  }
368
368
  //#endregion
369
- export { createAddProductWithFlowDebounced, shouldBypassAddProductDebounce };
369
+ export { createAddProductWithFlowDebounced };
@@ -31,4 +31,4 @@ function subscribeBookingDateChange(bookingTicket, callback) {
31
31
  return typeof off === "function" ? off : () => {};
32
32
  }
33
33
  //#endregion
34
- export { BOOKING_CONTEXT_DATE_EVENT, formatBookingDateTime, subscribeBookingDateChange };
34
+ export { formatBookingDateTime, subscribeBookingDateChange };
@@ -63,9 +63,9 @@ function isWalletPassUsageBlocked(discount) {
63
63
  const reasonCode = discount === null || discount === void 0 ? void 0 : discount.reasonCode;
64
64
  return Boolean((discount === null || discount === void 0 ? void 0 : discount.usageLimitFailKey) || status !== void 0 && status !== null && status !== "" && Number(status) === 0 || reasonCode && !["product_not_applicable", "holder_not_matched"].includes(reasonCode) || (discount === null || discount === void 0 || (_discount$config = discount.config) === null || _discount$config === void 0 ? void 0 : _discount$config.isAvailable) === false || (discount === null || discount === void 0 ? void 0 : discount.isDisabled) === true);
65
65
  }
66
- function shouldPromptHolderForDiscountCard(discount) {
66
+ /** Holder 资料补全独立于当前订单的日程、次数等使用限制。 */
67
+ function hasMissingWalletPassHolder(discount) {
67
68
  var _discount$holder$meta, _discount$holder, _holder$metadata, _holder$holder_id2;
68
- if (isWalletPassUsageBlocked(discount)) return false;
69
69
  if (!isHolderBindableWalletPass(discount)) return false;
70
70
  const machineCode = pickDiscountCardMachineCode(discount);
71
71
  const holder = machineCode === null || machineCode === void 0 ? void 0 : machineCode.holder;
@@ -73,6 +73,10 @@ function shouldPromptHolderForDiscountCard(discount) {
73
73
  if (!holder || holder.holder_type !== "form" && !formId) return false;
74
74
  return !hasHolderValue((_holder$holder_id2 = holder.holder_id) !== null && _holder$holder_id2 !== void 0 ? _holder$holder_id2 : machineCode === null || machineCode === void 0 ? void 0 : machineCode.holder_id);
75
75
  }
76
+ /** 扫码或应用卡券时,仍需先满足当前使用条件才能进入补绑流程。 */
77
+ function shouldPromptHolderForDiscountCard(discount) {
78
+ return !isWalletPassUsageBlocked(discount) && hasMissingWalletPassHolder(discount);
79
+ }
76
80
  function patchDiscountCardHolder(discount, holderId, holderDetail) {
77
81
  var _discount$data4;
78
82
  const patchMachineCode = (machineCode) => {
@@ -140,4 +144,4 @@ function shouldSkipCustomerRepriceForDiscountedLine(line) {
140
144
  return Array.isArray(line.discount_list) && line.discount_list.some(isDiscountCardApplied);
141
145
  }
142
146
  //#endregion
143
- export { buildMachineCodeHolderPayload, getDiscountHolderActionKey, isHolderBindableWalletPass, isWalletPassUsageBlocked, patchDiscountCardHolder, pickDiscountCardMachineCode, resolveDiscountCardHolderContext, shouldPromptHolderForDiscountCard, shouldSkipCustomerRepriceForDiscountedLine, syncDiscountCardHolderInStore };
147
+ export { buildMachineCodeHolderPayload, getDiscountHolderActionKey, hasMissingWalletPassHolder, isHolderBindableWalletPass, isWalletPassUsageBlocked, patchDiscountCardHolder, pickDiscountCardMachineCode, resolveDiscountCardHolderContext, shouldPromptHolderForDiscountCard, shouldSkipCustomerRepriceForDiscountedLine, syncDiscountCardHolderInStore };
@@ -71,4 +71,4 @@ function buildHolderListRequestKey(params) {
71
71
  });
72
72
  }
73
73
  //#endregion
74
- export { buildHolderListRequestKey, buildHolderListRequestParams, enrichCartBookingHolderDisplay, pickHolderIdFromBooking, resolveHolderDisplayConfig };
74
+ export { buildHolderListRequestKey, buildHolderListRequestParams, enrichCartBookingHolderDisplay, resolveHolderDisplayConfig };
@@ -6,12 +6,12 @@ import React, { useCallback, useEffect, useMemo, useRef } from "react";
6
6
  import { locales } from "@pisell/utils";
7
7
  import { Button, PisellEmpty, PisellModal, PisellStatisticList, Skeleton, Timeline, usePisellConfig } from "@pisell/materials";
8
8
  import { useRequest } from "ahooks";
9
- import timezone from "dayjs/plugin/timezone";
10
- import utc from "dayjs/plugin/utc";
9
+ import timezonePlugin from "dayjs/plugin/timezone";
10
+ import utcPlugin from "dayjs/plugin/utc";
11
11
  import "./index.less";
12
12
  //#region src/plus/walletPassGallery/components/timelineSection/index.tsx
13
- dayjs.extend(timezone);
14
- dayjs.extend(utc);
13
+ dayjs.extend(timezonePlugin);
14
+ dayjs.extend(utcPlugin);
15
15
  const stateTimeUnix = 1723255863;
16
16
  const POLL_INTERVAL = 2e3;
17
17
  const POLL_MAX_TIMES = 5;
@@ -0,0 +1 @@
1
+ export { };
@@ -14,4 +14,4 @@ interface AuthModalProps {
14
14
  */
15
15
  declare const AuthModal: React.FC<AuthModalProps>;
16
16
  //#endregion
17
- export { AuthModal };
17
+ export { AuthModal, AuthModalProps };
@@ -1,4 +1,4 @@
1
- import { AuthMethodType, EmailAuthConfig, EmailRegistrationVerification, LoginFormData, OAuthConfig, PhoneAuthConfig, RegisterFormData, UIConfig, VerificationMethod } from "./shared/types.js";
1
+ import { AuthMethodType, VerificationMethod } from "./shared/types.js";
2
2
  import { Login2, Login2Config, Login2Events, Login2Props } from "./Login2.js";
3
3
  import { Register2, Register2Config, Register2Events, Register2Props } from "./Register2.js";
4
- import { AuthModal } from "./AuthModal.js";
4
+ import { AuthModal, AuthModalProps } from "./AuthModal.js";
@@ -226,4 +226,4 @@ interface RegisterFormData {
226
226
  verification_token?: string;
227
227
  }
228
228
  //#endregion
229
- export { AuthMethodType, EmailAuthConfig, EmailRegistrationVerification, LegalTermsConfig, LoginFormData, LoginMethodItem, OAuthConfig, PhoneAuthConfig, RegisterFormData, RegistrationMethodItem, UIConfig, VerificationMethod };
229
+ export { AuthMethodType, EmailAuthConfig, LegalTermsConfig, LoginFormData, LoginMethodItem, OAuthConfig, PhoneAuthConfig, RegisterFormData, RegistrationMethodItem, UIConfig, VerificationMethod };
@@ -102,12 +102,12 @@ function DiscountCardHolderProvider({ children, customerId, discountList, getDis
102
102
  setHolderListRevision((revision) => revision + 1);
103
103
  }, [onDiscountListRefresh]);
104
104
  const getHolderListPasses = (0, react.useCallback)(() => {
105
- return ((getDiscountList === null || getDiscountList === void 0 ? void 0 : getDiscountList()) || discountList || []).filter(require_discountCard.isHolderBindableWalletPass).sort((a, b) => Number(require_discountCard.shouldPromptHolderForDiscountCard(b)) - Number(require_discountCard.shouldPromptHolderForDiscountCard(a)));
105
+ return ((getDiscountList === null || getDiscountList === void 0 ? void 0 : getDiscountList()) || discountList || []).filter(require_discountCard.isHolderBindableWalletPass).sort((a, b) => Number(require_discountCard.hasMissingWalletPassHolder(b)) - Number(require_discountCard.hasMissingWalletPassHolder(a)));
106
106
  }, [discountList, getDiscountList]);
107
107
  const openHolderListModal = (0, react.useCallback)(() => {
108
108
  if (holderPromptDisabled) return;
109
109
  const passList = getHolderListPasses();
110
- const pendingKeys = passList.filter(require_discountCard.shouldPromptHolderForDiscountCard).map(require_discountCard.getDiscountHolderActionKey);
110
+ const pendingKeys = passList.filter(require_discountCard.hasMissingWalletPassHolder).map(require_discountCard.getDiscountHolderActionKey);
111
111
  if (!pendingKeys.length) return;
112
112
  setPendingHolderAction(null);
113
113
  holderActionQueueRef.current = [];
@@ -146,8 +146,7 @@ function DiscountCardHolderProvider({ children, customerId, discountList, getDis
146
146
  const latestDiscountList = (getDiscountList === null || getDiscountList === void 0 ? void 0 : getDiscountList()) || discountList || [];
147
147
  const nextActions = [];
148
148
  latestDiscountList.forEach((discount) => {
149
- if ((discount === null || discount === void 0 ? void 0 : discount.isAvailable) !== false) return;
150
- if (!require_discountCard.shouldPromptHolderForDiscountCard(discount)) return;
149
+ if (!require_discountCard.hasMissingWalletPassHolder(discount)) return;
151
150
  const actionKey = require_discountCard.getDiscountHolderActionKey(discount);
152
151
  if (processedAutoHolderRef.current.has(actionKey)) return;
153
152
  if (!require_discountCard.resolveDiscountCardHolderContext(discount)) {
@@ -240,7 +239,7 @@ function DiscountCardHolderProvider({ children, customerId, discountList, getDis
240
239
  (_scanCodeClearRef$cur = scanCodeClearRef.current) === null || _scanCodeClearRef$cur === void 0 || _scanCodeClearRef$cur.call(scanCodeClearRef);
241
240
  (_scanCodeSuccessRef$c = scanCodeSuccessRef.current) === null || _scanCodeSuccessRef$c === void 0 || _scanCodeSuccessRef$c.call(scanCodeSuccessRef);
242
241
  } else (0, _pisell_materials.PisellToast)({ content: require_utils$1.showDiscountScanFailMessage(result) });
243
- } else if (setDiscountSelected) {
242
+ } else if (setDiscountSelected && !require_discountCard.isWalletPassUsageBlocked(activeHolderAction.discount)) {
244
243
  const discountId = selectedHolderListPass ? Number(selectedHolderListPass.id) : activeHolderAction.applyAfterSave && activeHolderAction.selectValue ? Number(activeHolderAction.selectValue.id) : NaN;
245
244
  if (Number.isFinite(discountId)) {
246
245
  var _activeHolderAction$s;
@@ -301,7 +300,7 @@ function DiscountCardHolderProvider({ children, customerId, discountList, getDis
301
300
  ]);
302
301
  const pendingHolderContext = activeHolderAction ? require_discountCard.resolveDiscountCardHolderContext(activeHolderAction.discount) : null;
303
302
  const holderModalCustomerId = resolveHolderModalCustomerId(customerId, activeHolderAction === null || activeHolderAction === void 0 ? void 0 : activeHolderAction.discount);
304
- const holderMissingCount = (0, react.useMemo)(() => holderPromptDisabled ? 0 : ((getDiscountList === null || getDiscountList === void 0 ? void 0 : getDiscountList()) || discountList || []).filter(require_discountCard.shouldPromptHolderForDiscountCard).length, [
303
+ const holderMissingCount = (0, react.useMemo)(() => holderPromptDisabled ? 0 : ((getDiscountList === null || getDiscountList === void 0 ? void 0 : getDiscountList()) || discountList || []).filter(require_discountCard.hasMissingWalletPassHolder).length, [
305
304
  discountList,
306
305
  getDiscountList,
307
306
  holderListRevision,
@@ -63,9 +63,9 @@ function isWalletPassUsageBlocked(discount) {
63
63
  const reasonCode = discount === null || discount === void 0 ? void 0 : discount.reasonCode;
64
64
  return Boolean((discount === null || discount === void 0 ? void 0 : discount.usageLimitFailKey) || status !== void 0 && status !== null && status !== "" && Number(status) === 0 || reasonCode && !["product_not_applicable", "holder_not_matched"].includes(reasonCode) || (discount === null || discount === void 0 || (_discount$config = discount.config) === null || _discount$config === void 0 ? void 0 : _discount$config.isAvailable) === false || (discount === null || discount === void 0 ? void 0 : discount.isDisabled) === true);
65
65
  }
66
- function shouldPromptHolderForDiscountCard(discount) {
66
+ /** Holder 资料补全独立于当前订单的日程、次数等使用限制。 */
67
+ function hasMissingWalletPassHolder(discount) {
67
68
  var _discount$holder$meta, _discount$holder, _holder$metadata, _holder$holder_id2;
68
- if (isWalletPassUsageBlocked(discount)) return false;
69
69
  if (!isHolderBindableWalletPass(discount)) return false;
70
70
  const machineCode = pickDiscountCardMachineCode(discount);
71
71
  const holder = machineCode === null || machineCode === void 0 ? void 0 : machineCode.holder;
@@ -73,6 +73,10 @@ function shouldPromptHolderForDiscountCard(discount) {
73
73
  if (!holder || holder.holder_type !== "form" && !formId) return false;
74
74
  return !hasHolderValue((_holder$holder_id2 = holder.holder_id) !== null && _holder$holder_id2 !== void 0 ? _holder$holder_id2 : machineCode === null || machineCode === void 0 ? void 0 : machineCode.holder_id);
75
75
  }
76
+ /** 扫码或应用卡券时,仍需先满足当前使用条件才能进入补绑流程。 */
77
+ function shouldPromptHolderForDiscountCard(discount) {
78
+ return !isWalletPassUsageBlocked(discount) && hasMissingWalletPassHolder(discount);
79
+ }
76
80
  function patchDiscountCardHolder(discount, holderId, holderDetail) {
77
81
  var _discount$data4;
78
82
  const patchMachineCode = (machineCode) => {
@@ -142,6 +146,7 @@ function shouldSkipCustomerRepriceForDiscountedLine(line) {
142
146
  //#endregion
143
147
  exports.buildMachineCodeHolderPayload = buildMachineCodeHolderPayload;
144
148
  exports.getDiscountHolderActionKey = getDiscountHolderActionKey;
149
+ exports.hasMissingWalletPassHolder = hasMissingWalletPassHolder;
145
150
  exports.isHolderBindableWalletPass = isHolderBindableWalletPass;
146
151
  exports.isWalletPassUsageBlocked = isWalletPassUsageBlocked;
147
152
  exports.patchDiscountCardHolder = patchDiscountCardHolder;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pisell/private-materials",
3
- "version": "6.12.293",
3
+ "version": "6.12.294",
4
4
  "main": "./lib/index.js",
5
5
  "module": "./es/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -72,10 +72,10 @@
72
72
  "styled-components": "^6.0.0-rc.3",
73
73
  "use-sync-external-store": "^1.6.0",
74
74
  "@pisell/pi-payment-sdk": "0.0.3",
75
+ "@pisell/date-picker": "3.0.12",
75
76
  "@pisell/utils": "3.0.7",
76
77
  "@pisell/materials": "6.12.75",
77
- "@pisell/icon": "0.0.11",
78
- "@pisell/date-picker": "3.0.12"
78
+ "@pisell/icon": "0.0.11"
79
79
  },
80
80
  "peerDependencies": {
81
81
  "react": "^18.0.0",
@@ -1,17 +0,0 @@
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 {};
@@ -1,54 +0,0 @@
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 "../multiCurrencySettlement/index.js";
9
- import "./context/SalesSdkBusinessAvailabilityContext.js";
10
- import "./utils/appendPromotionTags.js";
11
- import "./context/SalesSdkUIHostsContext.js";
12
- import "./utils/runAddProductFlow.js";
13
- import "./components/showAddToCartToast.js";
14
- import "./utils/resolveAddProductDebounceKey.js";
15
- import "./utils/productSkuOptions.js";
16
- import "./utils/identity.js";
17
- import "./utils/resolveInCartQuantityForAddToast.js";
18
- import "./utils/addProductWithFlowDebounced.js";
19
- import "./utils/customerAuthGate.js";
20
- import "./utils/bookingDate.js";
21
- import "./utils/holderSubmitValidation.js";
22
- import "./utils/removeOrderProducts.js";
23
- import "./selectors.js";
24
- import "./utils/enrich.js";
25
- import "./giftSelect/createOpenGiftSelectHost.js";
26
- import "./utils/ensureHoldersBeforeSubmit.js";
27
- import "./hooks/useSalesSdk.js";
28
- import "./bookingEditService/BookingEditServiceDrawer.js";
29
- import "./hosts/BookingEditHostRenderer.js";
30
- import "./hosts/CustomerAuthHostRenderer.js";
31
- import "./hooks/useSalesSdkCart.js";
32
- import "./hooks/useSalesSdkCustomer.js";
33
- import "./normalProductDetail/NormalProductDetailHostRenderer.js";
34
- import "./hosts/createOpenBookingEditHost.js";
35
- import "./hosts/createOpenMultiDaySelectHost.js";
36
- import "./hosts/createOpenHolderSelectHost.js";
37
- import "./hosts/createOpenCustomerAuthHost.js";
38
- import "./demo/hosts/legacyOpenProductDetail.js";
39
- import "./hosts/createCompositeOpenProductDetailHost.js";
40
- import "./normalProductDetail/createOpenNormalProductDetailHost.js";
41
- import "./normalProductDetail/createOpenBookingSelectionFlowHost.js";
42
- import "./giftSelect/GiftSelectModal.js";
43
- import "./giftSelect/GiftSelectHostRenderer.js";
44
- import "./allergy/AllergySelectionModal.js";
45
- import "./context/SalesSdkProvider.js";
46
- import "./context/SalesSdkDishContext.js";
47
- import "./context/SalesSdkBookingContext.js";
48
- import "./hooks/useSalesSdkSummary.js";
49
- import "./hooks/useSalesSdkProducts.js";
50
- import "./demo/index.js";
51
- import "./hooks/useSalesSdkDish.js";
52
- import "./hooks/useCurrentSalesSdkDish.js";
53
- import "./hooks/useSyncOsModule.js";
54
- export {};