@pisell/private-materials 6.12.175 → 6.12.177

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 (165) 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/preview.css +1 -1
  6. package/build/lowcode/preview.js +1 -1
  7. package/build/lowcode/render/default/view.js +21 -21
  8. package/build/lowcode/view.js +21 -21
  9. package/es/components/appointmentBooking/deposit/index.d.ts +2 -1
  10. package/es/components/appointmentBooking/index.d.ts +2 -1
  11. package/es/components/bigSale/components/BookingFloatingPanel/useBookingPanelController.js +0 -1
  12. package/es/components/bigSale/components/TimeBar/index.js +0 -1
  13. package/es/components/bigSale/dialog.js +0 -1
  14. package/es/components/bigSale/hooks/useBigSaleContext.js +0 -1
  15. package/es/components/bigSale/hooks/useSelectFloorMapResourceForBigSale.js +0 -1
  16. package/es/components/bigSale/index.js +1 -1
  17. package/es/components/bigSale/templates/Kiosk/index.js +104 -48
  18. package/es/components/booking/deposit/index.d.ts +3 -1
  19. package/es/components/booking/info/addServiceVariant/index.d.ts +3 -1
  20. package/es/components/booking/info/index.d.ts +2 -1
  21. package/es/components/booking/materiels/contacts/index.d.ts +2 -1
  22. package/es/components/booking/materiels/duration/index.d.ts +2 -1
  23. package/es/components/booking/materiels/startTime/index.d.ts +2 -1
  24. package/es/components/ecocup/cupList/index.d.ts +2 -1
  25. package/es/components/ecocup/customerList/index.d.ts +2 -2
  26. package/es/components/eftpos/index.d.ts +2 -1
  27. package/es/components/eftposPay/index.d.ts +2 -1
  28. package/es/components/eventBooking/index.d.ts +2 -1
  29. package/es/components/kioskSale/index.d.ts +2 -2
  30. package/es/components/kioskSale/index.js +1 -1
  31. package/es/components/kioskSkuDetail/index.d.ts +1 -1
  32. package/es/components/login/index.d.ts +2 -1
  33. package/es/components/pisellSelectCustomerModal/index.d.ts +2 -1
  34. package/es/components/productExtension/index.d.ts +2 -1
  35. package/es/components/ruleSetting/index.d.ts +2 -1
  36. package/es/components/scanOrder/index.d.ts +2 -2
  37. package/es/components/sharedSecondaryBigSale/SharedSecondaryBigSaleReceiver.js +0 -1
  38. package/es/components/sharedSecondaryBigSale/index.d.ts +2 -2
  39. package/es/components/shoppingCart/index.d.ts +2 -1
  40. package/es/components/subTotal/index.d.ts +1 -1
  41. package/es/components/taxSelect/index.d.ts +2 -1
  42. package/es/components/ticketBooking/index.d.ts +1 -1
  43. package/es/components/venueBooking/index.d.ts +2 -2
  44. package/es/components/walletList/index.d.ts +2 -1
  45. package/es/index.js +0 -2
  46. package/es/plus/orderList/index.d.ts +1 -1
  47. package/es/plus/pisellProResourcePickerModal/PisellFloorMapPaletteViewAllModal.d.ts +1 -1
  48. package/es/plus/pisellProResourcePickerModal/PisellProResourcePickerModal.d.ts +2 -2
  49. package/es/plus/pisellReservation/components/SelectFloorMapResourceDialog.d.ts +1 -1
  50. package/es/plus/pisellReservation/data/bookingToReservationTables.js +1 -1
  51. package/es/plus/pisellReservation/floorMap/floorPlanApi.js +1 -1
  52. package/es/plus/pisellReservation/floorMap/reservationMock.js +1 -1
  53. package/es/plus/pisellReservation/floorRoomCard/FloorRoomCardFromData.d.ts +1 -1
  54. package/es/plus/pisellReservation/floorRoomCard/ReservationFloorRoomCard.d.ts +1 -1
  55. package/es/plus/pisellReservation/floorRoomCard/mapFloorRoomCardViewProps.d.ts +1 -0
  56. package/es/plus/pisellReservation/floorRoomCard/views/RoomCardHeaderView.d.ts +1 -0
  57. package/es/plus/pisellSalesManagement/index.d.ts +1 -1
  58. package/es/plus/pisellTopology/PisellTopology.d.ts +2 -2
  59. package/es/plus/pisellTopology/TopologyDeviceCard.d.ts +1 -1
  60. package/es/plus/productSelect/ProductCard/SkuCard/index.d.ts +7 -5
  61. package/es/plus/saasCreateOrganization/index.d.ts +2 -1
  62. package/es/plus/saleDetail/Base.js +0 -1
  63. package/es/plus/saleDetail/components/Client/hooks/useClientSelectorProps.js +0 -1
  64. package/es/plus/saleDetail/components/DetailActions/index.js +0 -1
  65. package/es/plus/saleDetail/components/PromotionWalletPanels/index.d.ts +1 -1
  66. package/es/plus/saleDetail/components/SummaryFinancialSections/index.js +0 -1
  67. package/es/plus/saleDetail/index.js +0 -1
  68. package/es/plus/saleDetail/tmpl/B/components/Dish/index.js +0 -1
  69. package/es/plus/saleDetail/tmpl/B/index.js +0 -1
  70. package/es/plus/salesSdk/bookingEditService/BookingEditHolderField.js +6 -6
  71. package/es/plus/salesSdk/components/SalesSdkConfirmHolderModal.js +2 -4
  72. package/es/plus/salesSdk/context/SalesSdkCartContext.js +28 -21
  73. package/es/plus/salesSdk/context/SalesSdkHolderContext.js +104 -22
  74. package/es/plus/salesSdk/context/SalesSdkProvider.js +3 -12
  75. package/es/plus/salesSdk/hosts/ConfirmHolderHostRenderer.js +14 -5
  76. package/es/plus/salesSdk/normalProductDetail/NormalProductDetailHostRenderer.js +5 -2
  77. package/es/plus/salesSdk/types.d.ts +16 -1
  78. package/es/plus/salesSdk/utils/addProductWithFlowDebounced.js +1 -1
  79. package/es/plus/salesSdk/utils/bookingDate.js +1 -1
  80. package/es/plus/salesSdk/utils/customerAuthGate.js +2 -5
  81. package/es/plus/salesSdk/utils/enrichCacheItemBeforeAdd.js +1 -1
  82. package/es/plus/salesSdk/utils/enrichCartLineHolderDisplay.js +1 -1
  83. package/es/plus/salesSdk/utils/ensureCustomerAuthBeforeAdd.js +6 -6
  84. package/es/plus/salesSdk/utils/holderSubmitValidation.js +3 -4
  85. package/es/plus/salesSdk/utils/productHolderConfig.js +3 -17
  86. package/es/plus/salesSdk/utils/runAddProductFlow.js +14 -5
  87. package/es/plus/walletPassGallery/components/passDetail/index.d.ts +2 -1
  88. package/es/plus/walletPassGallery/index.d.ts +2 -1
  89. package/es/private-materials/lowcode/authmodal/meta.d.ts +1 -0
  90. package/es/pro/Login2.0/AuthModal.d.ts +1 -1
  91. package/es/pro/Login2.0/index.d.ts +1 -2
  92. package/es/pro/Login2.0/shared/types.d.ts +1 -1
  93. package/es/pro/Selector/Item.d.ts +1 -1
  94. package/es/pro/numberKeyboard/index.d.ts +1 -1
  95. package/es/pro/pisellPhoneKeyboard/index.d.ts +2 -1
  96. package/es/pro/skuDetailModal/components/weighing/index.d.ts +2 -1
  97. package/es/pro/skuDetailModal/flow/modules/holder/index.js +4 -1
  98. package/lib/components/appointmentBooking/deposit/index.d.ts +2 -2
  99. package/lib/components/appointmentBooking/index.d.ts +2 -2
  100. package/lib/components/bigSale/index.js +1 -0
  101. package/lib/components/bigSale/templates/Kiosk/index.js +104 -47
  102. package/lib/components/booking/deposit/index.d.ts +3 -2
  103. package/lib/components/booking/info/addServiceVariant/index.d.ts +3 -2
  104. package/lib/components/booking/info/index.d.ts +2 -2
  105. package/lib/components/booking/materiels/contacts/index.d.ts +2 -2
  106. package/lib/components/booking/materiels/duration/index.d.ts +2 -2
  107. package/lib/components/booking/materiels/startTime/index.d.ts +2 -2
  108. package/lib/components/ecocup/cupList/index.d.ts +2 -2
  109. package/lib/components/ecocup/customerList/index.d.ts +2 -2
  110. package/lib/components/eftpos/index.d.ts +2 -2
  111. package/lib/components/eftposPay/index.d.ts +2 -2
  112. package/lib/components/eventBooking/index.d.ts +2 -2
  113. package/lib/components/kioskSale/index.d.ts +2 -2
  114. package/lib/components/kioskSale/index.js +1 -1
  115. package/lib/components/kioskSkuDetail/index.d.ts +1 -1
  116. package/lib/components/login/index.d.ts +2 -2
  117. package/lib/components/pisellSelectCustomerModal/index.d.ts +2 -2
  118. package/lib/components/productExtension/index.d.ts +2 -2
  119. package/lib/components/ruleSetting/index.d.ts +2 -2
  120. package/lib/components/scanOrder/index.d.ts +2 -2
  121. package/lib/components/sharedSecondaryBigSale/index.d.ts +2 -2
  122. package/lib/components/shoppingCart/index.d.ts +2 -2
  123. package/lib/components/subTotal/index.d.ts +1 -1
  124. package/lib/components/taxSelect/index.d.ts +2 -2
  125. package/lib/components/ticketBooking/index.d.ts +1 -1
  126. package/lib/components/venueBooking/index.d.ts +2 -2
  127. package/lib/components/walletList/index.d.ts +2 -2
  128. package/lib/plus/orderList/index.d.ts +1 -1
  129. package/lib/plus/pisellProResourcePickerModal/PisellFloorMapPaletteViewAllModal.d.ts +1 -1
  130. package/lib/plus/pisellProResourcePickerModal/PisellProResourcePickerModal.d.ts +2 -2
  131. package/lib/plus/pisellReservation/components/SelectFloorMapResourceDialog.d.ts +1 -1
  132. package/lib/plus/pisellReservation/floorRoomCard/FloorRoomCardFromData.d.ts +1 -1
  133. package/lib/plus/pisellReservation/floorRoomCard/ReservationFloorRoomCard.d.ts +1 -1
  134. package/lib/plus/pisellReservation/floorRoomCard/mapFloorRoomCardViewProps.d.ts +1 -0
  135. package/lib/plus/pisellReservation/floorRoomCard/views/RoomCardHeaderView.d.ts +1 -0
  136. package/lib/plus/pisellSalesManagement/index.d.ts +1 -1
  137. package/lib/plus/pisellTopology/PisellTopology.d.ts +2 -2
  138. package/lib/plus/pisellTopology/TopologyDeviceCard.d.ts +1 -1
  139. package/lib/plus/productSelect/ProductCard/SkuCard/index.d.ts +7 -6
  140. package/lib/plus/saasCreateOrganization/index.d.ts +2 -2
  141. package/lib/plus/saleDetail/components/PromotionWalletPanels/index.d.ts +1 -1
  142. package/lib/plus/salesSdk/bookingEditService/BookingEditHolderField.js +5 -5
  143. package/lib/plus/salesSdk/components/SalesSdkConfirmHolderModal.js +2 -4
  144. package/lib/plus/salesSdk/context/SalesSdkCartContext.js +28 -21
  145. package/lib/plus/salesSdk/context/SalesSdkHolderContext.js +104 -22
  146. package/lib/plus/salesSdk/context/SalesSdkProvider.js +3 -12
  147. package/lib/plus/salesSdk/hosts/ConfirmHolderHostRenderer.js +14 -5
  148. package/lib/plus/salesSdk/normalProductDetail/NormalProductDetailHostRenderer.js +5 -2
  149. package/lib/plus/salesSdk/types.d.ts +16 -1
  150. package/lib/plus/salesSdk/utils/customerAuthGate.js +1 -4
  151. package/lib/plus/salesSdk/utils/enrichCacheItemBeforeAdd.js +1 -1
  152. package/lib/plus/salesSdk/utils/ensureCustomerAuthBeforeAdd.js +6 -6
  153. package/lib/plus/salesSdk/utils/holderSubmitValidation.js +3 -4
  154. package/lib/plus/salesSdk/utils/productHolderConfig.js +3 -17
  155. package/lib/plus/salesSdk/utils/runAddProductFlow.js +14 -5
  156. package/lib/plus/walletPassGallery/components/passDetail/index.d.ts +2 -2
  157. package/lib/plus/walletPassGallery/index.d.ts +2 -2
  158. package/lib/pro/Selector/Item.d.ts +1 -1
  159. package/lib/pro/numberKeyboard/index.d.ts +1 -1
  160. package/lib/pro/pisellPhoneKeyboard/index.d.ts +2 -2
  161. package/lib/pro/skuDetailModal/components/weighing/index.d.ts +2 -2
  162. package/lib/pro/skuDetailModal/flow/modules/holder/index.js +4 -1
  163. package/package.json +4 -4
  164. package/es/plus/pisellReservation/index.js +0 -17
  165. package/es/plus/salesSdk/index.js +0 -51
@@ -222,7 +222,7 @@ function SalesSdkBootstrap({ autoRestoreOnInit, autoBootstrap, autoInitBookingCo
222
222
  ]);
223
223
  return null;
224
224
  }
225
- const SalesSdkProvider = ({ osKey, solution = "bookingTicket", moduleAccess = "ensure", lifecycleOwner = "provider", businessCode, bookingConfigParams, autoInitBookingContext = true, otherParams, shouldMergeProductLines, rulesHooks, orderId, preloadedSalesDetail, autoBootstrap = true, autoRestoreOnInit = true, restoreOrderAfterPaidCheckout = true, destroyOnUnmount = true, uiHosts, normalProductDetailConfig, mergeBookingLinesForDisplay = true, legacyOpenProductDetail, enableTempOrderSync = false, enableTempOrderPersist = false, syncDetailOnOrderChange = false, isActive = true, preserveProductCatalogOnInactiveCustomerClear = false, enableGlobalScanListener = false, promotionScanSuccessMessageKey, promotionItemIncreaseMessageKey, defaultProductLoadParams, children }) => {
225
+ const SalesSdkProvider = ({ osKey, solution = "bookingTicket", moduleAccess = "ensure", lifecycleOwner = "provider", businessCode, bookingConfigParams, autoInitBookingContext = true, otherParams, deferHolderAuthOnClose = false, shouldMergeProductLines, rulesHooks, orderId, preloadedSalesDetail, autoBootstrap = true, autoRestoreOnInit = true, restoreOrderAfterPaidCheckout = true, destroyOnUnmount = true, uiHosts, normalProductDetailConfig, mergeBookingLinesForDisplay = true, legacyOpenProductDetail, enableTempOrderSync = false, enableTempOrderPersist = false, syncDetailOnOrderChange = false, isActive = true, preserveProductCatalogOnInactiveCustomerClear = false, enableGlobalScanListener = false, promotionScanSuccessMessageKey, promotionItemIncreaseMessageKey, defaultProductLoadParams, children }) => {
226
226
  var _context$appHelper, _osKey$replace;
227
227
  const context = require_useEngineContext.default();
228
228
  const utils = (context === null || context === void 0 || (_context$appHelper = context.appHelper) === null || _context$appHelper === void 0 ? void 0 : _context$appHelper.utils) || {};
@@ -234,17 +234,7 @@ const SalesSdkProvider = ({ osKey, solution = "bookingTicket", moduleAccess = "e
234
234
  engineChannel: channel,
235
235
  platform: otherParams === null || otherParams === void 0 ? void 0 : otherParams.platform
236
236
  });
237
- const shouldEnableCustomerAuthModule = (0, react.useMemo)(() => [
238
- otherParams === null || otherParams === void 0 ? void 0 : otherParams.platform,
239
- otherParams === null || otherParams === void 0 ? void 0 : otherParams.channel,
240
- channel,
241
- productLoadChannel
242
- ].some((value) => String(value || "").trim().toLowerCase() === "kiosk"), [
243
- channel,
244
- otherParams === null || otherParams === void 0 ? void 0 : otherParams.channel,
245
- otherParams === null || otherParams === void 0 ? void 0 : otherParams.platform,
246
- productLoadChannel
247
- ]);
237
+ const shouldEnableCustomerAuthModule = deferHolderAuthOnClose;
248
238
  const [promotionScanItemIncreaseRevision, setPromotionScanItemIncreaseRevision] = (0, react.useState)(0);
249
239
  /** 加车 enrich 早于 BookingEdit 抽屉,须提前注入 HTTP 客户端供跨日报价等 serve 使用 */
250
240
  (0, react.useEffect)(() => {
@@ -1338,6 +1328,7 @@ const SalesSdkProvider = ({ osKey, solution = "bookingTicket", moduleAccess = "e
1338
1328
  isActive,
1339
1329
  preserveCatalogOnInactiveCustomerClear: preserveProductCatalogOnInactiveCustomerClear
1340
1330
  }, /* @__PURE__ */ react.default.createElement(require_SalesSdkSummaryContext.SalesSdkSummaryProvider, { ref: summaryProviderRef }, /* @__PURE__ */ react.default.createElement(require_SalesSdkCartContext.SalesSdkCartProvider, {
1331
+ deferHolderAuthOnClose,
1341
1332
  shouldMergeProductLines,
1342
1333
  mergeBookingLinesForDisplay
1343
1334
  }, /* @__PURE__ */ react.default.createElement(require_SalesSdkGlobalScanSubscriber.default, {
@@ -1,6 +1,7 @@
1
1
  const require_runtime = require("../../../_virtual/_rolldown/runtime.js");
2
2
  const require_asyncToGenerator = require("../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js");
3
3
  const require_SalesSdkHostBridgesContext = require("../context/SalesSdkHostBridgesContext.js");
4
+ const require_productHolderConfig = require("../utils/productHolderConfig.js");
4
5
  const require_SalesSdkHolderContext = require("../context/SalesSdkHolderContext.js");
5
6
  const require_SalesSdkUIHostsContext = require("../context/SalesSdkUIHostsContext.js");
6
7
  const require_assignHolderToCartLine = require("../utils/assignHolderToCartLine.js");
@@ -30,14 +31,16 @@ const ConfirmHolderHostRenderer = () => {
30
31
  const ctx = pending === null || pending === void 0 ? void 0 : pending.ctx;
31
32
  const open = Boolean((pending === null || pending === void 0 ? void 0 : pending.open) && ctx);
32
33
  const snapshotLineKeys = (_ctx$snapshotLineKeys = ctx === null || ctx === void 0 ? void 0 : ctx.snapshotLineKeys) !== null && _ctx$snapshotLineKeys !== void 0 ? _ctx$snapshotLineKeys : [];
33
- const liveUnassignedCount = (0, react.useMemo)(() => {
34
- if (!open || !bookingTicket) return 0;
35
- return require_holderSubmitValidation.calculateUnassignedHolderCount(require_holderSubmitValidation.collectUnassignedHolderLines(bookingTicket));
34
+ const liveUnassignedLines = (0, react.useMemo)(() => {
35
+ if (!open || !bookingTicket) return [];
36
+ return require_holderSubmitValidation.collectUnassignedHolderLines(bookingTicket);
36
37
  }, [
37
38
  bookingTicket,
38
39
  open,
39
40
  refreshKey
40
41
  ]);
42
+ const liveUnassignedCount = (0, react.useMemo)(() => require_holderSubmitValidation.calculateUnassignedHolderCount(liveUnassignedLines), [liveUnassignedLines]);
43
+ const canSkip = liveUnassignedLines.length > 0 && !liveUnassignedLines.some((line) => require_productHolderConfig.isProductHolderRequired(line.cacheItem));
41
44
  const lines = (0, react.useMemo)(() => {
42
45
  if (!open || !bookingTicket || !snapshotLineKeys.length) return [];
43
46
  return require_holderSubmitValidation.buildHolderConfirmDisplayLines({
@@ -87,8 +90,14 @@ const ConfirmHolderHostRenderer = () => {
87
90
  holderConfirm.complete();
88
91
  }, [holderConfirm, liveUnassignedCount]);
89
92
  const handleSkip = (0, react.useCallback)(() => {
93
+ if (!canSkip) {
94
+ (0, _pisell_materials.PisellToast)({ content: _pisell_utils.locales.getText("pisell2.text.press-card-assign-holder") });
95
+ setRefreshKey((key) => key + 1);
96
+ holderConfirm.refresh();
97
+ return;
98
+ }
90
99
  holderConfirm.complete();
91
- }, [holderConfirm]);
100
+ }, [canSkip, holderConfirm]);
92
101
  const handleDismissConfirmed = (0, react.useCallback)(() => {
93
102
  holderConfirm.cancel();
94
103
  }, [holderConfirm]);
@@ -97,7 +106,7 @@ const ConfirmHolderHostRenderer = () => {
97
106
  open,
98
107
  lines,
99
108
  liveUnassignedCount,
100
- bookingConfig: ctx.bookingConfig,
109
+ canSkip,
101
110
  onAssign: handleAssign,
102
111
  onConfirm: handleConfirm,
103
112
  onSkip: handleSkip,
@@ -220,6 +220,7 @@ const NormalProductDetailHostRenderer = ({ defaultSkuDetailConfig }) => {
220
220
  var _ref17 = require_asyncToGenerator._asyncToGenerator(function* () {
221
221
  var _bookingTicket$getBoo3, _bookingTicket$getBoo4;
222
222
  const payload = capturedPending.payload;
223
+ const deferHolderUntilSubmit = payload.mode === "create" ? payload.requiresDetailPayload.deferHolderUntilSubmit === true : payload.mode === "booking-create" ? payload.requiresBookingEditPayload.deferHolderUntilSubmit === true : false;
223
224
  let openArgs;
224
225
  let bookingConfig = (_bookingTicket$getBoo3 = bookingTicket === null || bookingTicket === void 0 || (_bookingTicket$getBoo4 = bookingTicket.getBookingConfig) === null || _bookingTicket$getBoo4 === void 0 ? void 0 : _bookingTicket$getBoo4.call(bookingTicket)) !== null && _bookingTicket$getBoo3 !== void 0 ? _bookingTicket$getBoo3 : null;
225
226
  let bookingState = null;
@@ -336,7 +337,8 @@ const NormalProductDetailHostRenderer = ({ defaultSkuDetailConfig }) => {
336
337
  const refreshHolderContextFromHydratedProduct = function() {
337
338
  var _ref6 = require_asyncToGenerator._asyncToGenerator(function* ({ productData }) {
338
339
  holderSource = productData;
339
- try {
340
+ if (deferHolderUntilSubmit) holderOptions = getHolderOptionsForSource(productData);
341
+ else try {
340
342
  holderOptions = yield ensureHolderOptionsForSource(productData);
341
343
  } catch (error) {
342
344
  console.warn("[SalesSdk] 水合后 Holder 字典加载失败,沿用当前分源缓存", error);
@@ -350,7 +352,7 @@ const NormalProductDetailHostRenderer = ({ defaultSkuDetailConfig }) => {
350
352
  } catch (error) {
351
353
  console.warn("[SalesSdk] 水合后预约配置加载失败,沿用当前 isFranchisee", error);
352
354
  }
353
- if (bookingState) bookingState = require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, bookingState), {}, {
355
+ if (bookingState) bookingState = require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, bookingState), deferHolderUntilSubmit ? { deferHolderUntilSubmit: true } : {}), {}, {
354
356
  isFranchisee: hydratedIsFranchisee,
355
357
  otherParams: hydratedOtherParams,
356
358
  pet: require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, bookingState.pet || {}), {}, { holders: holderOptions })
@@ -571,6 +573,7 @@ const NormalProductDetailHostRenderer = ({ defaultSkuDetailConfig }) => {
571
573
  };
572
574
  }
573
575
  if (!isCurrentPending()) return;
576
+ if (bookingState && deferHolderUntilSubmit) bookingState = require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, bookingState), {}, { deferHolderUntilSubmit: true });
574
577
  setPreparedOpen({
575
578
  pending: capturedPending,
576
579
  openArgs,
@@ -1324,6 +1324,8 @@ interface SalesSdkAddProductRequiresDetailPayload {
1324
1324
  initialQuantity?: number;
1325
1325
  /** @internal 本次详情 Flow 的 Holder 初始选择。 */
1326
1326
  initialHolderIds?: Array<number | string>;
1327
+ /** @internal 登录被关闭后,仅把 Holder 必填延后到提交前校验。 */
1328
+ deferHolderUntilSubmit?: boolean;
1327
1329
  }
1328
1330
  /**
1329
1331
  * `requiresBookingEdit` 时 UI 打开资源 / 时间编辑抽屉所需 payload。
@@ -1334,6 +1336,8 @@ interface SalesSdkRequiresBookingEditPayload {
1334
1336
  date: string | null;
1335
1337
  /** @internal 仅供加车前 Selection Flow 初始化 Holder 草稿。 */
1336
1338
  initialHolderIds?: Array<number | string>;
1339
+ /** @internal 登录被关闭后,仅把 Holder 必填延后到提交前校验。 */
1340
+ deferHolderUntilSubmit?: boolean;
1337
1341
  /**
1338
1342
  * 已加车行「编辑资源」:强制打开抽屉,忽略 cacheItem.autoClose。
1339
1343
  * 加车链路(requiresBookingEdit)不传此字段;autoClose=true 时自动 confirm 跳过抽屉。
@@ -1529,7 +1533,8 @@ interface SalesSdkConfirmDetailInput {
1529
1533
  quantity?: number;
1530
1534
  notShowToast?: boolean; /** Holder 弹窗的初始选中项;最终仍以用户确认结果为准 */
1531
1535
  initialHolderIds?: Array<number | string>; /** 跨日弹窗确认后的区间(规格弹窗之后注入) */
1532
- multiDayRange?: SalesSdkMultiDaySelectResult;
1536
+ multiDayRange?: SalesSdkMultiDaySelectResult; /** @internal 当前确认延后 Holder 到提交前补录。 */
1537
+ deferHolderUntilSubmit?: boolean;
1533
1538
  };
1534
1539
  }
1535
1540
  /**
@@ -1639,6 +1644,11 @@ interface SalesSdkAddProductWithFlowOptions {
1639
1644
  * @internal 由 createAddProductWithFlowDebounced 注入,业务调用方勿传。
1640
1645
  */
1641
1646
  preparedCacheItem?: any;
1647
+ /**
1648
+ * 当前商品 Flow 已关闭登录;详情/加购阶段延后 Holder,提交前仍按原配置校验。
1649
+ * @internal 由 Kiosk 模板登录门禁注入,业务调用方勿传。
1650
+ */
1651
+ deferHolderUntilSubmit?: boolean;
1642
1652
  }
1643
1653
  /**
1644
1654
  * 资源不可用原因(与 OS `BookingContext.ResourceUnavailableReason` 一比一对齐)。
@@ -1701,6 +1711,11 @@ interface SalesSdkProviderProps {
1701
1711
  autoInitBookingContext?: boolean;
1702
1712
  /** 透传给 OS 注册时的 otherParams(platform / type / channel / dineInConfig 等) */
1703
1713
  otherParams?: Record<string, any>;
1714
+ /**
1715
+ * Kiosk 模板专用:用户关闭商品 Holder 登录后继续详情/加购,并延后到提交前补录。
1716
+ * @internal 由 BigSale 根据 resolvedTemplate 注入。
1717
+ */
1718
+ deferHolderAuthOnClose?: boolean;
1704
1719
  /**
1705
1720
  * 运行时商品行合并策略;返回 false 时快速加购不做防抖合并,OS 始终新增商品行,
1706
1721
  * 预约商品也保持独立展示。默认合并。
@@ -14,15 +14,12 @@ function isTruthyRequired(value) {
14
14
  function normalizeText(value) {
15
15
  return value == null ? "" : String(value).trim().toLowerCase();
16
16
  }
17
- function isKioskRuntime(params) {
18
- return normalizeText(params.platform) === "kiosk" || normalizeText(params.channel) === "kiosk";
19
- }
20
17
  function isHolderRequiredProduct(product) {
21
18
  const holderConfig = product === null || product === void 0 ? void 0 : product.holder_config;
22
19
  return normalizeText(holderConfig === null || holderConfig === void 0 ? void 0 : holderConfig.status) === "enable" && isTruthyRequired(holderConfig === null || holderConfig === void 0 ? void 0 : holderConfig.required);
23
20
  }
24
21
  function shouldPromptCustomerAuthForProduct(params) {
25
- return isKioskRuntime(params) && isHolderRequiredProduct(params.product) && !isValidOrderCustomerId(params.currentCustomerId);
22
+ return params.enabled === true && isHolderRequiredProduct(params.product) && !isValidOrderCustomerId(params.currentCustomerId);
26
23
  }
27
24
  function normalizeCustomerAuthCustomer(value) {
28
25
  if (!value || typeof value !== "object") return null;
@@ -20,7 +20,7 @@ function _enrichCacheItemBeforeAdd() {
20
20
  const customerId = require_buildBookingEditDrawerState.resolveAddFlowCustomerId(input.tempOrder, input.customerId);
21
21
  const holderSource = (_input$catalogItem2 = input.catalogItem) !== null && _input$catalogItem2 !== void 0 ? _input$catalogItem2 : cacheItem;
22
22
  const effectiveHolderConfig = require_productHolderConfig.resolveEffectiveHolderConfig(holderSource, input.bookingConfig);
23
- if (require_shouldPromptHolderOnAddCart.shouldPromptHolderOnAddCart({
23
+ if (!input.deferHolderUntilSubmit && require_shouldPromptHolderOnAddCart.shouldPromptHolderOnAddCart({
24
24
  cacheItem,
25
25
  bookingConfig: input.bookingConfig,
26
26
  productSource: holderSource,
@@ -6,10 +6,10 @@ function ensureCustomerAuthBeforeAdd(_x) {
6
6
  }
7
7
  function _ensureCustomerAuthBeforeAdd() {
8
8
  _ensureCustomerAuthBeforeAdd = require_asyncToGenerator._asyncToGenerator(function* (params) {
9
- if (!require_customerAuthGate.shouldPromptCustomerAuthForProduct(params)) return true;
9
+ if (!require_customerAuthGate.shouldPromptCustomerAuthForProduct(params)) return { status: "ready" };
10
10
  if (!params.openCustomerAuth) {
11
11
  console.warn("[SalesSdk] Kiosk holder-required product needs customer auth, but openCustomerAuth is unavailable");
12
- return false;
12
+ return { status: "fallback" };
13
13
  }
14
14
  try {
15
15
  const result = yield params.openCustomerAuth({
@@ -17,16 +17,16 @@ function _ensureCustomerAuthBeforeAdd() {
17
17
  product: params.product,
18
18
  currentCustomerId: params.currentCustomerId
19
19
  });
20
- if (!(result === null || result === void 0 ? void 0 : result.customer)) return false;
20
+ if (!(result === null || result === void 0 ? void 0 : result.customer)) return { status: "deferred" };
21
21
  if (typeof params.setOrderCustomer !== "function") {
22
22
  console.warn("[SalesSdk] Customer auth succeeded, but setOrderCustomer is unavailable");
23
- return false;
23
+ return { status: "fallback" };
24
24
  }
25
25
  yield params.setOrderCustomer(result.customer);
26
- return true;
26
+ return { status: "ready" };
27
27
  } catch (error) {
28
28
  console.warn("[SalesSdk] Customer auth before add failed", error);
29
- return false;
29
+ return { status: "fallback" };
30
30
  }
31
31
  });
32
32
  return _ensureCustomerAuthBeforeAdd.apply(this, arguments);
@@ -104,9 +104,8 @@ function collectUnassignedHolderLines(bookingTicket) {
104
104
  const orderLine = (_bookingView$_extend = bookingView._extend) === null || _bookingView$_extend === void 0 ? void 0 : _bookingView$_extend.product;
105
105
  if (!orderLine) return;
106
106
  const sourceProduct = (_catalog$find = catalog.find((p) => String(p.id) === String(orderLine.product_id))) !== null && _catalog$find !== void 0 ? _catalog$find : null;
107
- const holderSource = (_ref = sourceProduct !== null && sourceProduct !== void 0 ? sourceProduct : orderLine) !== null && _ref !== void 0 ? _ref : bookingView;
108
- const effectiveHolderConfig = require_productHolderConfig.resolveEffectiveHolderConfig(holderSource, bookingConfig);
109
- if (!(effectiveHolderConfig.source === "product" ? effectiveHolderConfig.required : effectiveHolderConfig.enabled)) return;
107
+ const effectiveHolderConfig = require_productHolderConfig.resolveEffectiveHolderConfig((_ref = sourceProduct !== null && sourceProduct !== void 0 ? sourceProduct : orderLine) !== null && _ref !== void 0 ? _ref : bookingView, bookingConfig);
108
+ if (!effectiveHolderConfig.enabled) return;
110
109
  const cacheItem = buildCacheItemFromOrderLine({
111
110
  product: orderLine,
112
111
  booking: bookingView,
@@ -115,7 +114,7 @@ function collectUnassignedHolderLines(bookingTicket) {
115
114
  if (require_utils.isNormalProductByDurationSchedule(cacheItem)) return;
116
115
  if (hasHolderAssigned(cacheItem)) return;
117
116
  rawLines.push({
118
- cacheItem: require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, cacheItem), require_productHolderConfig.isProductHolderRequired(cacheItem) ? {} : { holder_config: holderSource === null || holderSource === void 0 ? void 0 : holderSource.holder_config }),
117
+ cacheItem: require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, cacheItem), require_productHolderConfig.isProductHolderRequired(cacheItem) ? {} : { holder_config: effectiveHolderConfig.raw }),
119
118
  booking: bookingView,
120
119
  orderLine
121
120
  });
@@ -30,26 +30,12 @@ function resolveProductHolderConfig(source) {
30
30
  }, formId !== void 0 && formId !== null && formId !== "" ? { formId } : {}), {}, { raw });
31
31
  }
32
32
  /**
33
- * 统一解析 Holder 配置:商品只要明确携带 holder_config(包括 disable),
34
- * 就完全以商品级配置为准;只有商品没有该字段时才回退旧 appointment_subject。
35
- *
36
- * 这样既允许新商品单独关闭店铺级 Holder,也能继续兼容尚未迁移的旧预约商品。
33
+ * 统一解析 Holder 配置:保留旧函数签名以减少调用方改动,
34
+ * 启用与必填判断不再回退 bookingConfig。
37
35
  */
38
- function resolveEffectiveHolderConfig(source, bookingConfig) {
39
- var _bookingConfig$config;
36
+ function resolveEffectiveHolderConfig(source, _bookingConfig) {
40
37
  const productConfig = resolveProductHolderConfig(source);
41
38
  if (productConfig.raw) return require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, productConfig), {}, { source: "product" });
42
- const basicConfig = bookingConfig === null || bookingConfig === void 0 || (_bookingConfig$config = bookingConfig.config) === null || _bookingConfig$config === void 0 ? void 0 : _bookingConfig$config.basic;
43
- const appointmentSubject = basicConfig === null || basicConfig === void 0 ? void 0 : basicConfig.appointment_subject;
44
- const legacyEnabled = (appointmentSubject === null || appointmentSubject === void 0 ? void 0 : appointmentSubject.type) === "form" && (appointmentSubject === null || appointmentSubject === void 0 ? void 0 : appointmentSubject.show_hold_on_add_cart) !== 0;
45
- const legacyFormId = appointmentSubject === null || appointmentSubject === void 0 ? void 0 : appointmentSubject.form_id;
46
- if (appointmentSubject) return require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({
47
- enabled: legacyEnabled,
48
- required: legacyEnabled && (basicConfig === null || basicConfig === void 0 ? void 0 : basicConfig.subject_require) === "require"
49
- }, legacyFormId !== void 0 && legacyFormId !== null && legacyFormId !== "" ? { formId: legacyFormId } : {}), {}, {
50
- raw: null,
51
- source: "legacy"
52
- });
53
39
  return {
54
40
  enabled: false,
55
41
  required: false,
@@ -42,7 +42,8 @@ function _openBookingEditAfterEnrich() {
42
42
  cacheItem,
43
43
  catalogProduct: catalogProduct !== null && catalogProduct !== void 0 ? catalogProduct : payload.catalogProduct,
44
44
  customerId: drawerCustomerId,
45
- initialHolderIds: flowOptions.initialHolderIds
45
+ initialHolderIds: flowOptions.initialHolderIds,
46
+ deferHolderUntilSubmit: flowOptions.deferHolderUntilSubmit
46
47
  }));
47
48
  if (selectionResult.status === "cancelled") return { status: "cancelled" };
48
49
  if (selectionResult.status === "committed") {
@@ -65,6 +66,7 @@ function _openBookingEditAfterEnrich() {
65
66
  customerId: (_flowOptions$customer2 = flowOptions.customerId) !== null && _flowOptions$customer2 !== void 0 ? _flowOptions$customer2 : payload.customerId,
66
67
  initialHolderIds: flowOptions.initialHolderIds,
67
68
  holderOptions: flowOptions.holderOptions,
69
+ deferHolderUntilSubmit: flowOptions.deferHolderUntilSubmit,
68
70
  date: payload.date,
69
71
  locale: flowOptions.locale,
70
72
  mode: "drawer"
@@ -104,6 +106,7 @@ function _openBookingEditAfterEnrich() {
104
106
  customerId: (_flowOptions$customer3 = flowOptions.customerId) !== null && _flowOptions$customer3 !== void 0 ? _flowOptions$customer3 : payload.customerId,
105
107
  initialHolderIds: flowOptions.initialHolderIds,
106
108
  holderOptions: flowOptions.holderOptions,
109
+ deferHolderUntilSubmit: flowOptions.deferHolderUntilSubmit,
107
110
  date: payload.date,
108
111
  locale: flowOptions.locale,
109
112
  mode: "drawer"
@@ -112,12 +115,16 @@ function _openBookingEditAfterEnrich() {
112
115
  const openEdit = hosts === null || hosts === void 0 ? void 0 : hosts.openBookingEdit;
113
116
  if (!openEdit) return {
114
117
  status: "requiresBookingEdit",
115
- payload: require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, payload), {}, { cacheItem: enriched.cacheItem })
118
+ payload: require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, payload), {}, {
119
+ cacheItem: enriched.cacheItem,
120
+ deferHolderUntilSubmit: flowOptions.deferHolderUntilSubmit
121
+ })
116
122
  };
117
123
  const edited = yield openEdit(require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, payload), {}, {
118
124
  cacheItem: enriched.cacheItem,
119
125
  catalogProduct: catalogProduct !== null && catalogProduct !== void 0 ? catalogProduct : payload.catalogProduct,
120
- customerId: drawerCustomerId
126
+ customerId: drawerCustomerId,
127
+ deferHolderUntilSubmit: flowOptions.deferHolderUntilSubmit
121
128
  }));
122
129
  if (!edited) return { status: "cancelled" };
123
130
  const { products } = yield cart.confirmBookingEdit({
@@ -151,7 +158,8 @@ function _runAddProductFlow() {
151
158
  if (!openDetail) return result;
152
159
  const detailResult = yield openDetail(require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, result.payload), {}, {
153
160
  initialQuantity: (_flowOptions$quantity = flowOptions.quantity) !== null && _flowOptions$quantity !== void 0 ? _flowOptions$quantity : result.payload.initialQuantity,
154
- initialHolderIds: (_flowOptions$initialH = flowOptions.initialHolderIds) !== null && _flowOptions$initialH !== void 0 ? _flowOptions$initialH : result.payload.initialHolderIds
161
+ initialHolderIds: (_flowOptions$initialH = flowOptions.initialHolderIds) !== null && _flowOptions$initialH !== void 0 ? _flowOptions$initialH : result.payload.initialHolderIds,
162
+ deferHolderUntilSubmit: flowOptions.deferHolderUntilSubmit
155
163
  }));
156
164
  if (!detailResult) return { status: "cancelled" };
157
165
  if (detailResult._committedProducts) {
@@ -191,7 +199,8 @@ function _runAddProductFlow() {
191
199
  options: flowOptions
192
200
  }),
193
201
  initialHolderIds: flowOptions.initialHolderIds,
194
- multiDayRange: multiDayRange || void 0
202
+ multiDayRange: multiDayRange || void 0,
203
+ deferHolderUntilSubmit: flowOptions.deferHolderUntilSubmit
195
204
  }
196
205
  };
197
206
  result = yield cart.confirmDetail(confirmInput);
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  //#region src/plus/walletPassGallery/components/passDetail/index.d.ts
3
3
  interface PassDetailProps {
4
4
  dataSource?: any | null;
@@ -8,6 +8,6 @@ interface PassDetailProps {
8
8
  showTimeLine?: boolean;
9
9
  onListRefresh?: () => void;
10
10
  }
11
- declare const PassDetail: (props: PassDetailProps) => JSX.Element | null;
11
+ declare const PassDetail: (props: PassDetailProps) => React.JSX.Element | null;
12
12
  //#endregion
13
13
  export { PassDetail };
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  //#region src/plus/walletPassGallery/index.d.ts
3
3
  interface WalletPassGalleryProps {
4
4
  hideTitle: boolean;
@@ -7,6 +7,6 @@ interface WalletPassGalleryProps {
7
7
  platform?: 'pc' | 'h5';
8
8
  [key: string]: any;
9
9
  }
10
- declare const WalletPassGallery: (props: WalletPassGalleryProps) => JSX.Element;
10
+ declare const WalletPassGallery: (props: WalletPassGalleryProps) => React.JSX.Element;
11
11
  //#endregion
12
12
  export { WalletPassGallery };
@@ -17,6 +17,6 @@ interface IItemProps {
17
17
  */
18
18
  onClick?: React.MouseEventHandler<HTMLDivElement>;
19
19
  }
20
- declare const Item: (props: IItemProps) => JSX.Element;
20
+ declare const Item: (props: IItemProps) => React.JSX.Element;
21
21
  //#endregion
22
22
  export { Item };
@@ -24,6 +24,6 @@ interface NumberKeyboardProps {
24
24
  /** 输入框的样式 */
25
25
  inputStyle?: React.CSSProperties;
26
26
  }
27
- declare const NumberKeyboard: (props: NumberKeyboardProps) => JSX.Element;
27
+ declare const NumberKeyboard: (props: NumberKeyboardProps) => React.JSX.Element;
28
28
  //#endregion
29
29
  export { NumberKeyboard };
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import { PopoverProps } from "antd";
3
3
  //#region src/pro/pisellPhoneKeyboard/index.d.ts
4
4
  interface PisellPhoneKeyboardProps {
@@ -9,6 +9,6 @@ interface PisellPhoneKeyboardProps {
9
9
  keyboardProps?: any;
10
10
  virtualKeyInputProps?: any;
11
11
  }
12
- declare const PisellPhoneKeyboard: (props: PisellPhoneKeyboardProps) => JSX.Element;
12
+ declare const PisellPhoneKeyboard: (props: PisellPhoneKeyboardProps) => React.JSX.Element;
13
13
  //#endregion
14
14
  export { PisellPhoneKeyboard };
@@ -1,2 +1,2 @@
1
- /// <reference types="react" />
2
- import { ScaleConnectionState, WeighingMode, WeighingValue } from "./types.js";
1
+ import { ScaleConnectionState, WeighingMode, WeighingValue } from "./types.js";
2
+ import React from "react";
@@ -64,7 +64,8 @@ const HolderFlowModuleComponent = ({ context, module, registerHandle }) => {
64
64
  const holderIds = context.draft.booking.holderIds;
65
65
  const quantity = context.draft.quantity || 1;
66
66
  const bookingState = context.hostContext;
67
- const required = resolveFlowHolderConfig(productData, bookingState).required;
67
+ const deferHolderUntilSubmit = (bookingState === null || bookingState === void 0 ? void 0 : bookingState.deferHolderUntilSubmit) === true;
68
+ const required = resolveFlowHolderConfig(productData, bookingState).required && !deferHolderUntilSubmit;
68
69
  const unsupportedReason = require_utils.isMultiDayProduct(productData) ? void 0 : require_index.getUnsupportedBookingFlowReason(productData);
69
70
  const customerId = getCustomerId(bookingState);
70
71
  const [hostError, setHostError] = (0, react.useState)(null);
@@ -170,9 +171,11 @@ const holderFlowModule = {
170
171
  "booking.customerId"
171
172
  ],
172
173
  isApplicable: (context) => {
174
+ var _context$hostContext;
173
175
  const productData = context.draft.productData;
174
176
  if (require_utils$1.isNormalProductByDurationSchedule(productData)) return false;
175
177
  if (!resolveFlowHolderConfig(productData, context.hostContext).enabled) return false;
178
+ if (((_context$hostContext = context.hostContext) === null || _context$hostContext === void 0 ? void 0 : _context$hostContext.deferHolderUntilSubmit) === true) return false;
176
179
  if (!context.hostContext) return true;
177
180
  return !require_utils$2.isWalkIn(getCustomerId(context.hostContext));
178
181
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pisell/private-materials",
3
- "version": "6.12.175",
3
+ "version": "6.12.177",
4
4
  "main": "./lib/index.js",
5
5
  "module": "./es/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -69,10 +69,10 @@
69
69
  "react-zoom-pan-pinch": "^3.7.0",
70
70
  "styled-components": "^6.0.0-rc.3",
71
71
  "use-sync-external-store": "^1.6.0",
72
- "@pisell/utils": "3.0.4",
73
- "@pisell/materials": "6.12.47",
74
- "@pisell/icon": "0.0.11",
75
72
  "@pisell/pi-payment-sdk": "0.0.3",
73
+ "@pisell/icon": "0.0.11",
74
+ "@pisell/materials": "6.11.254",
75
+ "@pisell/utils": "3.0.4",
76
76
  "@pisell/date-picker": "3.0.10"
77
77
  },
78
78
  "peerDependencies": {
@@ -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,51 +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 "./utils/appendPromotionTags.js";
9
- import "./context/SalesSdkUIHostsContext.js";
10
- import "./utils/runAddProductFlow.js";
11
- import "./components/showAddToCartToast.js";
12
- import "./utils/resolveAddProductDebounceKey.js";
13
- import "./utils/productSkuOptions.js";
14
- import "./utils/identity.js";
15
- import "./utils/resolveInCartQuantityForAddToast.js";
16
- import "./utils/addProductWithFlowDebounced.js";
17
- import "./utils/customerAuthGate.js";
18
- import "./utils/bookingDate.js";
19
- import "./utils/holderSubmitValidation.js";
20
- import "./utils/removeOrderProducts.js";
21
- import "./selectors.js";
22
- import "./utils/enrich.js";
23
- import "./giftSelect/createOpenGiftSelectHost.js";
24
- import "./utils/ensureHoldersBeforeSubmit.js";
25
- import "./hooks/useSalesSdk.js";
26
- import "./bookingEditService/BookingEditServiceDrawer.js";
27
- import "./hosts/BookingEditHostRenderer.js";
28
- import "./hosts/CustomerAuthHostRenderer.js";
29
- import "./hooks/useSalesSdkCart.js";
30
- import "./hooks/useSalesSdkCustomer.js";
31
- import "./normalProductDetail/NormalProductDetailHostRenderer.js";
32
- import "./hosts/createOpenBookingEditHost.js";
33
- import "./hosts/createOpenMultiDaySelectHost.js";
34
- import "./hosts/createOpenHolderSelectHost.js";
35
- import "./hosts/createOpenCustomerAuthHost.js";
36
- import "./demo/hosts/legacyOpenProductDetail.js";
37
- import "./hosts/createCompositeOpenProductDetailHost.js";
38
- import "./normalProductDetail/createOpenNormalProductDetailHost.js";
39
- import "./normalProductDetail/createOpenBookingSelectionFlowHost.js";
40
- import "./giftSelect/GiftSelectModal.js";
41
- import "./giftSelect/GiftSelectHostRenderer.js";
42
- import "./context/SalesSdkProvider.js";
43
- import "./context/SalesSdkDishContext.js";
44
- import "./context/SalesSdkBookingContext.js";
45
- import "./hooks/useSalesSdkSummary.js";
46
- import "./hooks/useSalesSdkProducts.js";
47
- import "./demo/index.js";
48
- import "./hooks/useSalesSdkDish.js";
49
- import "./hooks/useCurrentSalesSdkDish.js";
50
- import "./hooks/useSyncOsModule.js";
51
- export {};