@pisell/private-materials 6.11.674 → 6.11.676

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 (57) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/meta.js +1 -1
  5. package/build/lowcode/render/default/view.js +18 -18
  6. package/build/lowcode/view.js +18 -18
  7. package/es/components/bigSale/components/BookingFloatingPanel/useBookingPanelController.js +1 -0
  8. package/es/components/bigSale/components/TimeBar/index.js +1 -0
  9. package/es/components/bigSale/dialog.js +1 -0
  10. package/es/components/bigSale/hooks/useBigSaleContext.js +1 -0
  11. package/es/components/bigSale/hooks/useSelectFloorMapResourceForBigSale.js +1 -0
  12. package/es/components/bigSale/index.js +1 -0
  13. package/es/components/bigSale/templates/Kiosk/index.js +1 -0
  14. package/es/components/sharedSecondaryBigSale/SharedSecondaryBigSaleReceiver.js +1 -0
  15. package/es/index.js +2 -0
  16. package/es/plus/multiCurrencySettlement/index.js +1 -1
  17. package/es/plus/piPaymentOld/ui/eftpos/amount.js +6 -3
  18. package/es/plus/piPaymentOld/ui/eftpos/pages/DevicePage.js +9 -21
  19. package/es/plus/piPaymentUI/eftpos/amount.js +6 -3
  20. package/es/plus/piPaymentUI/eftpos/pages/DevicePage.js +9 -21
  21. package/es/plus/pisellReservation/data/bookingToReservationTables.js +1 -1
  22. package/es/plus/pisellReservation/floorMap/floorPlanApi.js +1 -1
  23. package/es/plus/pisellReservation/floorMap/reservationMock.js +1 -1
  24. package/es/plus/pisellReservation/index.js +17 -0
  25. package/es/plus/saasDevice/devicePasscodes/model.js +4 -4
  26. package/es/plus/saleDetail/Base.js +1 -0
  27. package/es/plus/saleDetail/components/Client/hooks/useClientSelectorProps.js +1 -0
  28. package/es/plus/saleDetail/components/DetailActions/index.js +1 -0
  29. package/es/plus/saleDetail/components/SummaryFinancialSections/index.js +1 -0
  30. package/es/plus/saleDetail/index.js +1 -0
  31. package/es/plus/saleDetail/tmpl/B/components/Dish/index.js +1 -0
  32. package/es/plus/saleDetail/tmpl/B/index.js +1 -0
  33. package/es/plus/salesSdk/index.js +53 -0
  34. package/es/plus/salesSdk/utils/addProductWithFlowDebounced.js +1 -1
  35. package/es/plus/salesSdk/utils/bookingDate.js +1 -1
  36. package/es/plus/salesSdk/utils/customerAuthGate.js +1 -1
  37. package/es/plus/salesSdk/utils/enrichCartLineHolderDisplay.js +1 -1
  38. package/es/plus/walletPassGallery/components/timelineSection/index.js +4 -4
  39. package/es/pro/Login2.0/AuthModal.d.ts +1 -1
  40. package/es/pro/Login2.0/index.d.ts +2 -2
  41. package/es/pro/Login2.0/shared/types.d.ts +1 -1
  42. package/es/pro/skuDetailModal/flow/modules/autoResolution.js +19 -3
  43. package/es/pro/skuDetailModal/flow/modules/time/index.js +78 -38
  44. package/es/pro/skuDetailModal/flow/modules/time/posCustomTime.js +17 -8
  45. package/es/pro/skuDetailModal/flow/types.d.ts +4 -0
  46. package/es/pro/skuDetailModal/index.js +36 -28
  47. package/lib/plus/piPaymentOld/ui/eftpos/amount.js +6 -2
  48. package/lib/plus/piPaymentOld/ui/eftpos/pages/DevicePage.js +9 -22
  49. package/lib/plus/piPaymentUI/eftpos/amount.js +6 -2
  50. package/lib/plus/piPaymentUI/eftpos/pages/DevicePage.js +9 -22
  51. package/lib/pro/skuDetailModal/flow/modules/autoResolution.js +19 -2
  52. package/lib/pro/skuDetailModal/flow/modules/time/index.js +76 -36
  53. package/lib/pro/skuDetailModal/flow/modules/time/posCustomTime.js +18 -9
  54. package/lib/pro/skuDetailModal/flow/types.d.ts +4 -0
  55. package/lib/pro/skuDetailModal/index.js +36 -28
  56. package/package.json +2 -2
  57. package/es/private-materials/lowcode/authmodal/meta.d.ts +0 -1
@@ -1,5 +1,6 @@
1
1
  import useEngineContext from "../../../../hooks/useEngineContext.js";
2
2
  import { subscribeBookingDateChange } from "../../../../plus/salesSdk/utils/bookingDate.js";
3
+ import "../../../../plus/salesSdk/index.js";
3
4
  import dayjs from "dayjs";
4
5
  import { useCallback, useEffect, useState } from "react";
5
6
  //#region src/components/bigSale/components/BookingFloatingPanel/useBookingPanelController.ts
@@ -4,6 +4,7 @@ import withResponsive from "../../../../responsive/withResponsive.js";
4
4
  import useInitLocalesOnce from "../../../../hooks/useInitLocalesOnce.js";
5
5
  import { subscribeBookingDateChange } from "../../../../plus/salesSdk/utils/bookingDate.js";
6
6
  import { useSalesSdkBookingContext } from "../../../../plus/salesSdk/context/SalesSdkBookingContext.js";
7
+ import "../../../../plus/salesSdk/index.js";
7
8
  import locales_default from "../../locales/index.js";
8
9
  import dayjs from "dayjs";
9
10
  import React, { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
@@ -5,6 +5,7 @@ import { buildInitBookingContextParams, collectBookingIdsFromTempOrder } from ".
5
5
  import { useSalesSdk } from "../../plus/salesSdk/hooks/useSalesSdk.js";
6
6
  import { useSalesSdkCart } from "../../plus/salesSdk/hooks/useSalesSdkCart.js";
7
7
  import { SalesSdkPrepareOrderSwitchContext, SalesSdkRootRefreshContext } from "../../plus/salesSdk/context/SalesSdkProvider.js";
8
+ import "../../plus/salesSdk/index.js";
8
9
  import { seedDineInReservationToCart } from "../../plus/pisellReservation/utils/seedDineInReservationToCart.js";
9
10
  import { isPersistedBigSaleOrderId } from "./utils/orderIdentity.js";
10
11
  import BigSale from "./index.js";
@@ -4,6 +4,7 @@ import { useSalesSdkCustomer } from "../../../plus/salesSdk/hooks/useSalesSdkCus
4
4
  import { useSalesSdkBookingContext } from "../../../plus/salesSdk/context/SalesSdkBookingContext.js";
5
5
  import { useSalesSdkSummary } from "../../../plus/salesSdk/hooks/useSalesSdkSummary.js";
6
6
  import { useSalesSdkProducts } from "../../../plus/salesSdk/hooks/useSalesSdkProducts.js";
7
+ import "../../../plus/salesSdk/index.js";
7
8
  import { useMemo } from "react";
8
9
  //#region src/components/bigSale/hooks/useBigSaleContext.ts
9
10
  /**
@@ -3,6 +3,7 @@ import useEngineContext from "../../../hooks/useEngineContext.js";
3
3
  import { buildInitBookingContextParams, collectBookingIdsFromTempOrder } from "../../../plus/salesSdk/utils/buildDefaultLoadProductsParams.js";
4
4
  import { useSalesSdkUIHosts } from "../../../plus/salesSdk/context/SalesSdkUIHostsContext.js";
5
5
  import { SalesSdkRootRefreshContext } from "../../../plus/salesSdk/context/SalesSdkProvider.js";
6
+ import "../../../plus/salesSdk/index.js";
6
7
  import { resolveOrderIdForHostActions } from "../../../plus/pisellReservation/components/bookingDetailModal/bookingDetailHostActions.js";
7
8
  import { usePicoCodingOpenData } from "../../../plus/pisellReservation/hooks/usePicoCodingOpenData.js";
8
9
  import { buildReplacementBookingResourcesFromReservationRow } from "../../../plus/pisellReservation/utils/reservationTicketBookingHostParams.js";
@@ -8,6 +8,7 @@ import { useSalesSdk } from "../../plus/salesSdk/hooks/useSalesSdk.js";
8
8
  import { useSalesSdkCustomer } from "../../plus/salesSdk/hooks/useSalesSdkCustomer.js";
9
9
  import { SalesSdkProvider } from "../../plus/salesSdk/context/SalesSdkProvider.js";
10
10
  import { SalesSdkBookingContextProvider } from "../../plus/salesSdk/context/SalesSdkBookingContext.js";
11
+ import "../../plus/salesSdk/index.js";
11
12
  import { ResponsiveBigSaleBase } from "./Base.js";
12
13
  import { isBigSaleProductSelectionFlowScene, resolveBigSaleSelectionFlowConfig } from "./selectionFlowConfig.js";
13
14
  import { isKioskPresentation } from "./templateCapabilities.js";
@@ -9,6 +9,7 @@ import { resolvePaymentResultToastV2ViewModel } from "../../../checkout/componen
9
9
  import PaymentResultToastV2_default from "../../../checkout/components/PaymentResultToastV2/index.js";
10
10
  import { freePayApi } from "../../../Sales/Checkout/serve.js";
11
11
  import { useSalesSdk } from "../../../../plus/salesSdk/hooks/useSalesSdk.js";
12
+ import "../../../../plus/salesSdk/index.js";
12
13
  import { usePickSaleDetailContext } from "../../hooks/usePickSaleDetailContext.js";
13
14
  import { resolveBigSaleAutoProductListPreferences } from "../../utils/productListPreferences.js";
14
15
  import { resolveBigSaleProductDisplayConfig } from "../../hooks/useBigSaleProductListConfig.js";
@@ -2,6 +2,7 @@ import { _asyncToGenerator } from "../../_virtual/_@oxc-project_runtime@0.122.0/
2
2
  import useEngineContext from "../../hooks/useEngineContext.js";
3
3
  import { useSalesSdk } from "../../plus/salesSdk/hooks/useSalesSdk.js";
4
4
  import { getTempOrderSyncPayload, shouldApplySharedTempOrderPayload } from "../../plus/salesSdk/tempOrderSync.js";
5
+ import "../../plus/salesSdk/index.js";
5
6
  import { useEffect, useRef } from "react";
6
7
  import { useMemoizedFn } from "ahooks";
7
8
  //#region src/components/sharedSecondaryBigSale/SharedSecondaryBigSaleReceiver.tsx
package/es/index.js CHANGED
@@ -86,6 +86,7 @@ import { useSalesSdkProducts } from "./plus/salesSdk/hooks/useSalesSdkProducts.j
86
86
  import SalesSdkDemo from "./plus/salesSdk/demo/index.js";
87
87
  import { useSalesSdkDish } from "./plus/salesSdk/hooks/useSalesSdkDish.js";
88
88
  import { useSyncOsModule } from "./plus/salesSdk/hooks/useSyncOsModule.js";
89
+ import "./plus/salesSdk/index.js";
89
90
  import BigSaleRightActionPanel from "./components/BigSaleRightActionPanel/index.js";
90
91
  import ResponsiveWrapper from "./components/list/ResponsiveWrapper.js";
91
92
  import { resolveBigSaleSelectionFlowConfig } from "./components/bigSale/selectionFlowConfig.js";
@@ -139,6 +140,7 @@ import PisellVenueControlPage from "./plus/pisellReservation/PisellVenueControlP
139
140
  import PisellVenueWallPage from "./plus/pisellReservation/PisellVenueWallPage.js";
140
141
  import PisellReservationTablePage from "./plus/pisellReservation/PisellReservationTablePage.js";
141
142
  import SelectFloorMapResourceDialog from "./plus/pisellReservation/components/SelectFloorMapResourceDialog.js";
143
+ import "./plus/pisellReservation/index.js";
142
144
  import { PisellTopology, PisellTopologyCore } from "./plus/pisellTopology/PisellTopology.js";
143
145
  import cupProject_default from "./components/ecocup/cupProject/index.js";
144
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, formatSettlementAmount, formatSettlementSelectionTotal, formatTempOrderSettlementAmount, getSettlementKey, getSettlementOptions, hasSettlementOptions, hasSufficientVirtualCurrencyBalance, isVirtualOnlySettlementProduct, isVirtualSettlementTempOrder, resolveConfiguredUnavailableReason, resolveLegalSettlementAddOnUnitPrice, resolveSettlementOptionEntries, resolveVirtualSettlementErrorMessage, showVirtualSettlementErrorToast };
283
+ export { attachSelectedSettlement, buildSettlementPriceRows, createVirtualOnlySkuDisplayProduct, findFirstVirtualCurrencyAsset, formatSettlementAmount, formatSettlementSelectionTotal, formatTempOrderSettlementAmount, getReservedVirtualSettlementAmount, getSettlementKey, getSettlementOptions, hasSettlementOptions, hasSufficientVirtualCurrencyBalance, isVirtualOnlySettlementProduct, isVirtualSettlementTempOrder, resolveConfiguredUnavailableReason, resolveLegalSettlementAddOnUnitPrice, resolveSettlementOptionEntries, resolveVirtualSettlementErrorMessage, showVirtualSettlementErrorToast };
@@ -15,8 +15,11 @@ const decimal = (value) => {
15
15
  const readerSurcharge = (reader) => {
16
16
  var _ref, _ref2, _ref3, _setting$surcharge_ra, _ref4, _ref5, _setting$surcharge_fi;
17
17
  const setting = (reader === null || reader === void 0 ? void 0 : reader.setting) || {};
18
- /** useOriginSurcharge 表示业务方自行计算,卡机默认费率不得叠加。 */
19
- if (setting.useOriginSurcharge) return {
18
+ /**
19
+ * useOriginSurcharge 表示由卡机收取原始手续费;surcharge=false 表示商户已关闭
20
+ * Pisell 手续费。两种场景都不得继续使用 Reader 中可能残留的历史费率。
21
+ */
22
+ if (setting.useOriginSurcharge || setting.surcharge === false) return {
20
23
  rate: 0,
21
24
  fixed: 0
22
25
  };
@@ -61,4 +64,4 @@ const updateEftposDraftAmount = (draft, input) => {
61
64
  });
62
65
  };
63
66
  //#endregion
64
- export { updateEftposDraftAmount };
67
+ export { buildPaymentAmountQuote, updateEftposDraftAmount };
@@ -1,23 +1,15 @@
1
1
  import { EftposProvider, PaymentMode } from "../contracts/index.js";
2
+ import { buildPaymentAmountQuote } from "../amount.js";
2
3
  import React from "react";
3
4
  import { locales } from "@pisell/utils";
4
- import Decimal from "decimal.js";
5
5
  import ChevronRight from "@pisell/icon/es/ChevronRight";
6
6
  //#region src/plus/piPaymentOld/ui/eftpos/pages/DevicePage.tsx
7
- /** 转成 Decimal。 */
8
- const toDecimal = (value) => {
9
- try {
10
- return new Decimal(value === void 0 || value === null || value === "" ? 0 : value);
11
- } catch (_error) {
12
- return new Decimal(0);
13
- }
14
- };
15
7
  /** 从 reader setting 计算设备列表展示金额。 */
16
8
  const resolveReaderPay = (reader, options) => {
17
- var _ref, _ref2, _ref3, _setting$surcharge_ra, _ref4, _ref5, _setting$surcharge_fi;
18
9
  /** pay/setting 均来自不同版本后端,读取时需要保持兼容。 */
19
10
  const pay = reader.pay;
20
- if (pay) {
11
+ const setting = reader.setting || {};
12
+ if (pay && !setting.useOriginSurcharge && setting.surcharge !== false) {
21
13
  var _pay$surRate, _pay$surMoney, _pay$surcharge;
22
14
  return {
23
15
  totalUnit: String(pay.totalUnit || pay.total || ""),
@@ -26,17 +18,13 @@ const resolveReaderPay = (reader, options) => {
26
18
  surcharge: String((_pay$surcharge = pay.surcharge) !== null && _pay$surcharge !== void 0 ? _pay$surcharge : "")
27
19
  };
28
20
  }
29
- const setting = reader.setting || {};
30
- const amount = toDecimal(options === null || options === void 0 ? void 0 : options.amount);
31
- const rate = setting.useOriginSurcharge ? new Decimal(0) : toDecimal((_ref = (_ref2 = (_ref3 = (_setting$surcharge_ra = setting.surcharge_rate) !== null && _setting$surcharge_ra !== void 0 ? _setting$surcharge_ra : setting.surRate) !== null && _ref3 !== void 0 ? _ref3 : setting.constant_rate) !== null && _ref2 !== void 0 ? _ref2 : setting.surcharge) !== null && _ref !== void 0 ? _ref : 0);
32
- const fixed = setting.useOriginSurcharge ? new Decimal(0) : toDecimal((_ref4 = (_ref5 = (_setting$surcharge_fi = setting.surcharge_fixed) !== null && _setting$surcharge_fi !== void 0 ? _setting$surcharge_fi : setting.surMoney) !== null && _ref5 !== void 0 ? _ref5 : setting.constant_money) !== null && _ref4 !== void 0 ? _ref4 : 0);
33
- /** 设备卡片展示的总手续费与最终扣款额,只用于选择前的预览。 */
34
- const surcharge = amount.mul(rate.div(100)).add(fixed);
21
+ /** 设备预览与选择 Reader 后的实际支付报价必须使用同一套金额规则。 */
22
+ const quote = buildPaymentAmountQuote(options === null || options === void 0 ? void 0 : options.amount, options === null || options === void 0 ? void 0 : options.surcharge, reader);
35
23
  return {
36
- totalUnit: amount.add(surcharge).toFixed(2, Decimal.ROUND_HALF_UP),
37
- surRate: rate.toString(),
38
- surMoney: fixed.toFixed(2, Decimal.ROUND_HALF_UP),
39
- surcharge: surcharge.toFixed(2, Decimal.ROUND_HALF_UP)
24
+ totalUnit: quote.total,
25
+ surRate: quote.surchargeRate,
26
+ surMoney: quote.surchargeFixed,
27
+ surcharge: quote.surchargeTotal
40
28
  };
41
29
  };
42
30
  /** 获取 MX51 pairing id。 */
@@ -15,8 +15,11 @@ const decimal = (value) => {
15
15
  const readerSurcharge = (reader) => {
16
16
  var _ref, _ref2, _ref3, _setting$surcharge_ra, _ref4, _ref5, _setting$surcharge_fi;
17
17
  const setting = (reader === null || reader === void 0 ? void 0 : reader.setting) || {};
18
- /** useOriginSurcharge 表示业务方自行计算,卡机默认费率不得叠加。 */
19
- if (setting.useOriginSurcharge) return {
18
+ /**
19
+ * useOriginSurcharge 表示由卡机收取原始手续费;surcharge=false 表示商户已关闭
20
+ * Pisell 手续费。两种场景都不得继续使用 Reader 中可能残留的历史费率。
21
+ */
22
+ if (setting.useOriginSurcharge || setting.surcharge === false) return {
20
23
  rate: 0,
21
24
  fixed: 0
22
25
  };
@@ -61,4 +64,4 @@ const updateEftposDraftAmount = (draft, input) => {
61
64
  });
62
65
  };
63
66
  //#endregion
64
- export { updateEftposDraftAmount };
67
+ export { buildPaymentAmountQuote, updateEftposDraftAmount };
@@ -1,23 +1,15 @@
1
1
  import { EftposProvider, PaymentMode } from "../contracts/index.js";
2
+ import { buildPaymentAmountQuote } from "../amount.js";
2
3
  import React from "react";
3
4
  import { locales } from "@pisell/utils";
4
- import Decimal from "decimal.js";
5
5
  import ChevronRight from "@pisell/icon/es/ChevronRight";
6
6
  //#region src/plus/piPaymentUI/eftpos/pages/DevicePage.tsx
7
- /** 转成 Decimal。 */
8
- const toDecimal = (value) => {
9
- try {
10
- return new Decimal(value === void 0 || value === null || value === "" ? 0 : value);
11
- } catch (_error) {
12
- return new Decimal(0);
13
- }
14
- };
15
7
  /** 从 reader setting 计算设备列表展示金额。 */
16
8
  const resolveReaderPay = (reader, options) => {
17
- var _ref, _ref2, _ref3, _setting$surcharge_ra, _ref4, _ref5, _setting$surcharge_fi;
18
9
  /** pay/setting 均来自不同版本后端,读取时需要保持兼容。 */
19
10
  const pay = reader.pay;
20
- if (pay) {
11
+ const setting = reader.setting || {};
12
+ if (pay && !setting.useOriginSurcharge && setting.surcharge !== false) {
21
13
  var _pay$surRate, _pay$surMoney, _pay$surcharge;
22
14
  return {
23
15
  totalUnit: String(pay.totalUnit || pay.total || ""),
@@ -26,17 +18,13 @@ const resolveReaderPay = (reader, options) => {
26
18
  surcharge: String((_pay$surcharge = pay.surcharge) !== null && _pay$surcharge !== void 0 ? _pay$surcharge : "")
27
19
  };
28
20
  }
29
- const setting = reader.setting || {};
30
- const amount = toDecimal(options === null || options === void 0 ? void 0 : options.amount);
31
- const rate = setting.useOriginSurcharge ? new Decimal(0) : toDecimal((_ref = (_ref2 = (_ref3 = (_setting$surcharge_ra = setting.surcharge_rate) !== null && _setting$surcharge_ra !== void 0 ? _setting$surcharge_ra : setting.surRate) !== null && _ref3 !== void 0 ? _ref3 : setting.constant_rate) !== null && _ref2 !== void 0 ? _ref2 : setting.surcharge) !== null && _ref !== void 0 ? _ref : 0);
32
- const fixed = setting.useOriginSurcharge ? new Decimal(0) : toDecimal((_ref4 = (_ref5 = (_setting$surcharge_fi = setting.surcharge_fixed) !== null && _setting$surcharge_fi !== void 0 ? _setting$surcharge_fi : setting.surMoney) !== null && _ref5 !== void 0 ? _ref5 : setting.constant_money) !== null && _ref4 !== void 0 ? _ref4 : 0);
33
- /** 设备卡片展示的总手续费与最终扣款额,只用于选择前的预览。 */
34
- const surcharge = amount.mul(rate.div(100)).add(fixed);
21
+ /** 设备预览与选择 Reader 后的实际支付报价必须使用同一套金额规则。 */
22
+ const quote = buildPaymentAmountQuote(options === null || options === void 0 ? void 0 : options.amount, options === null || options === void 0 ? void 0 : options.surcharge, reader);
35
23
  return {
36
- totalUnit: amount.add(surcharge).toFixed(2, Decimal.ROUND_HALF_UP),
37
- surRate: rate.toString(),
38
- surMoney: fixed.toFixed(2, Decimal.ROUND_HALF_UP),
39
- surcharge: surcharge.toFixed(2, Decimal.ROUND_HALF_UP)
24
+ totalUnit: quote.total,
25
+ surRate: quote.surchargeRate,
26
+ surMoney: quote.surchargeFixed,
27
+ surcharge: quote.surchargeTotal
40
28
  };
41
29
  };
42
30
  /** 获取 MX51 pairing id。 */
@@ -259,4 +259,4 @@ function bookingListToReservationTableRows(bookings) {
259
259
  return rows;
260
260
  }
261
261
  //#endregion
262
- export { applyHostResourceShellToBaseRow, bookingListToReservationTableRows, customerBrief, extractResourceRecordIds, filterBookingsByResourceIds, hostBookingUiPatchFromRecord, mergeBookingsForResourceRecord };
262
+ export { applyHostResourceShellToBaseRow, bookingListToReservationTableRows, customerBrief, extractResourceRecordIds, filterBookingsByResourceIds, hostBookingStatusToCardStatus, hostBookingUiPatchFromRecord, mergeBookingsForResourceRecord };
@@ -78,4 +78,4 @@ function toastFloorPlanLoadError(err) {
78
78
  PisellToast({ content: err instanceof Error ? err.message : String(err) });
79
79
  }
80
80
  //#endregion
81
- export { PISELL_RESERVATION_FLOOR_PLAN_CODE, ensureShopFloorPlanByCode, saveViewConfigToShopFloorPlan, shopLayoutToSceneElements$1 as shopLayoutToSceneElements, toastFloorPlanLoadError, toastFloorPlanSaveError, unsubscribeShopFloorPlanCodeQuery };
81
+ export { PISELL_RESERVATION_FLOOR_PLAN_CODE, buildDefaultReservationFloorPlanPostBody, ensureShopFloorPlanByCode, putShopFloorPlan, saveViewConfigToShopFloorPlan, shopLayoutToSceneElements$1 as shopLayoutToSceneElements, toastFloorPlanLoadError, toastFloorPlanSaveError, unsubscribeShopFloorPlanCodeQuery };
@@ -927,4 +927,4 @@ function getReservationDataSourceFormColumns() {
927
927
  ];
928
928
  }
929
929
  //#endregion
930
- export { RESERVATION_BOUND_ROUND_TABLE_ELEMENT_KIND, RESERVATION_BOUND_TABLE_ELEMENT_KIND, applyReservationFloorMapLiveLabels, defaultReservationTableRows, getDefaultReservationFloorMapConfig, getReservationDataSourceFormColumns, getReservationFloorMapShellConfig, mergeFloorMapElementKindCategoriesWithDefaults, mergeFloorMapElementKindsWithDefaults };
930
+ export { RESERVATION_BOUND_ROUND_TABLE_ELEMENT_KIND, RESERVATION_BOUND_TABLE_ELEMENT_KIND, applyReservationFloorMapLiveLabels, defaultReservationSceneElements, defaultReservationTableRows, getDefaultReservationFloorMapConfig, getReservationDataSourceFormColumns, getReservationFloorMapShellConfig, mergeFloorMapElementKindCategoriesWithDefaults, mergeFloorMapElementKindsWithDefaults };
@@ -0,0 +1,17 @@
1
+ import "./serve/formResourcePage.js";
2
+ import "./floorRoomCard/mapRowToFloorRoomCardData.js";
3
+ import "./floorRoomCard/ReservationFloorRoomCard.js";
4
+ import "./floorMap/reservationMock.js";
5
+ import "./floorMap/floorPlanApi.js";
6
+ import "./reservationConstants.js";
7
+ import "./data/bookingToReservationTables.js";
8
+ import "./data/formResourceToReservationTables.js";
9
+ import "./data/salesEmbeddedResourceToTableRows.js";
10
+ import "./floorMap/reservationCards.js";
11
+ import "./PisellReservation.js";
12
+ import "./PisellReservationBookingPage.js";
13
+ import "./PisellVenueControlPage.js";
14
+ import "./PisellVenueWallPage.js";
15
+ import "./PisellReservationTablePage.js";
16
+ import "./components/SelectFloorMapResourceDialog.js";
17
+ export {};
@@ -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 timezonePlugin from "dayjs/plugin/timezone";
4
- import utcPlugin from "dayjs/plugin/utc";
3
+ import timezone from "dayjs/plugin/timezone";
4
+ import utc from "dayjs/plugin/utc";
5
5
  //#region src/plus/saasDevice/devicePasscodes/model.ts
6
- dayjs.extend(utcPlugin);
7
- dayjs.extend(timezonePlugin);
6
+ dayjs.extend(utc);
7
+ dayjs.extend(timezone);
8
8
  const INITIAL_DEVICE_PASSCODE_STATE = {
9
9
  deviceIds: [],
10
10
  devicesById: {}
@@ -11,6 +11,7 @@ import { useSalesSdkCart } from "../salesSdk/hooks/useSalesSdkCart.js";
11
11
  import { useSalesSdkCustomer } from "../salesSdk/hooks/useSalesSdkCustomer.js";
12
12
  import { useSalesSdkBookingContext } from "../salesSdk/context/SalesSdkBookingContext.js";
13
13
  import { useSalesSdkSummary } from "../salesSdk/hooks/useSalesSdkSummary.js";
14
+ import "../salesSdk/index.js";
14
15
  import locales_default from "./locales.js";
15
16
  import locales_default$1 from "./components/LineItem/locales.js";
16
17
  import { SaleOrderActionBoundary } from "./actions/index.js";
@@ -1,6 +1,7 @@
1
1
  import { _objectSpread2 } from "../../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js";
2
2
  import useEngineContext from "../../../../../hooks/useEngineContext.js";
3
3
  import { useSalesSdkBookingContext } from "../../../../salesSdk/context/SalesSdkBookingContext.js";
4
+ import "../../../../salesSdk/index.js";
4
5
  import { useMemo } from "react";
5
6
  import { useMemoizedFn } from "ahooks";
6
7
  //#region src/plus/saleDetail/components/Client/hooks/useClientSelectorProps.ts
@@ -10,6 +10,7 @@ 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";
13
14
  import { resolveSaleDetailTempOrder } from "../../utils.js";
14
15
  import { getNumericAmount, getSalesHostModule, resolveSaleDetailOrderIdFromSales, resolveSaleDetailOrderIdFromSalesResult, shouldCloseDialogAfterCheckout, updateLocalOrder } from "./utils.js";
15
16
  import { getRemotePrintActions, getWristbandList } from "../../serve.js";
@@ -5,6 +5,7 @@ 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";
8
9
  import { resolveSaleDetailTempOrder } from "../../utils.js";
9
10
  import React, { memo, useMemo } from "react";
10
11
  import { formatAmount, locales } from "@pisell/utils";
@@ -4,6 +4,7 @@ import { useSalesSdk } from "../salesSdk/hooks/useSalesSdk.js";
4
4
  import { SalesSdkProvider } from "../salesSdk/context/SalesSdkProvider.js";
5
5
  import { SalesSdkDishProvider } from "../salesSdk/context/SalesSdkDishContext.js";
6
6
  import { SalesSdkBookingContextProvider } from "../salesSdk/context/SalesSdkBookingContext.js";
7
+ import "../salesSdk/index.js";
7
8
  import Base_default from "./Base.js";
8
9
  import React, { forwardRef, useImperativeHandle } from "react";
9
10
  //#region src/plus/saleDetail/index.tsx
@@ -1,6 +1,7 @@
1
1
  import useStableInstanceId from "../../../../../../hooks/useStableInstanceId.js";
2
2
  import { useSalesSdkDish } from "../../../../../salesSdk/hooks/useSalesSdkDish.js";
3
3
  import { useCurrentSalesSdkDish } from "../../../../../salesSdk/hooks/useCurrentSalesSdkDish.js";
4
+ import "../../../../../salesSdk/index.js";
4
5
  import { SaleDetailStatusOverview } from "../shared/StatusOverview.js";
5
6
  import { DishGroupView } from "./DishGroupView.js";
6
7
  import dayjs from "dayjs";
@@ -1,6 +1,7 @@
1
1
  import { _objectSpread2 } from "../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js";
2
2
  import useEngineContext from "../../../../hooks/useEngineContext.js";
3
3
  import { useCurrentSalesSdkDish } from "../../../salesSdk/hooks/useCurrentSalesSdkDish.js";
4
+ import "../../../salesSdk/index.js";
4
5
  import { getInternalNotesByScheduleEvent } from "../../serve.js";
5
6
  import { TEMPLATE_B_PAY_ACTIONS, TEMPLATE_B_SUMMARY_ACTIONS } from "../../components/DetailActions/configs/index.js";
6
7
  import { DetailActions } from "../../components/DetailActions/index.js";
@@ -0,0 +1,53 @@
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 "./utils/appendPromotionTags.js";
10
+ import "./context/SalesSdkUIHostsContext.js";
11
+ import "./utils/runAddProductFlow.js";
12
+ import "./components/showAddToCartToast.js";
13
+ import "./utils/resolveAddProductDebounceKey.js";
14
+ import "./utils/productSkuOptions.js";
15
+ import "./utils/identity.js";
16
+ import "./utils/resolveInCartQuantityForAddToast.js";
17
+ import "./utils/addProductWithFlowDebounced.js";
18
+ import "./utils/customerAuthGate.js";
19
+ import "./utils/bookingDate.js";
20
+ import "./utils/holderSubmitValidation.js";
21
+ import "./utils/removeOrderProducts.js";
22
+ import "./selectors.js";
23
+ import "./utils/enrich.js";
24
+ import "./giftSelect/createOpenGiftSelectHost.js";
25
+ import "./utils/ensureHoldersBeforeSubmit.js";
26
+ import "./hooks/useSalesSdk.js";
27
+ import "./bookingEditService/BookingEditServiceDrawer.js";
28
+ import "./hosts/BookingEditHostRenderer.js";
29
+ import "./hosts/CustomerAuthHostRenderer.js";
30
+ import "./hooks/useSalesSdkCart.js";
31
+ import "./hooks/useSalesSdkCustomer.js";
32
+ import "./normalProductDetail/NormalProductDetailHostRenderer.js";
33
+ import "./hosts/createOpenBookingEditHost.js";
34
+ import "./hosts/createOpenMultiDaySelectHost.js";
35
+ import "./hosts/createOpenHolderSelectHost.js";
36
+ import "./hosts/createOpenCustomerAuthHost.js";
37
+ import "./demo/hosts/legacyOpenProductDetail.js";
38
+ import "./hosts/createCompositeOpenProductDetailHost.js";
39
+ import "./normalProductDetail/createOpenNormalProductDetailHost.js";
40
+ import "./normalProductDetail/createOpenBookingSelectionFlowHost.js";
41
+ import "./giftSelect/GiftSelectModal.js";
42
+ import "./giftSelect/GiftSelectHostRenderer.js";
43
+ import "./allergy/AllergySelectionModal.js";
44
+ import "./context/SalesSdkProvider.js";
45
+ import "./context/SalesSdkDishContext.js";
46
+ import "./context/SalesSdkBookingContext.js";
47
+ import "./hooks/useSalesSdkSummary.js";
48
+ import "./hooks/useSalesSdkProducts.js";
49
+ import "./demo/index.js";
50
+ import "./hooks/useSalesSdkDish.js";
51
+ import "./hooks/useCurrentSalesSdkDish.js";
52
+ import "./hooks/useSyncOsModule.js";
53
+ export {};
@@ -360,4 +360,4 @@ function createAddProductWithFlowDebounced(deps) {
360
360
  };
361
361
  }
362
362
  //#endregion
363
- export { createAddProductWithFlowDebounced };
363
+ export { createAddProductWithFlowDebounced, shouldBypassAddProductDebounce };
@@ -31,4 +31,4 @@ function subscribeBookingDateChange(bookingTicket, callback) {
31
31
  return typeof off === "function" ? off : () => {};
32
32
  }
33
33
  //#endregion
34
- export { formatBookingDateTime, subscribeBookingDateChange };
34
+ export { BOOKING_CONTEXT_DATE_EVENT, formatBookingDateTime, subscribeBookingDateChange };
@@ -59,4 +59,4 @@ function normalizeCustomerAuthCustomer(value) {
59
59
  return null;
60
60
  }
61
61
  //#endregion
62
- export { isValidOrderCustomerId, normalizeCustomerAuthCustomer, resolveCustomerAuthCurrentCustomerId, shouldPromptCustomerAuthForProduct };
62
+ export { isHolderRequiredProduct, isValidOrderCustomerId, normalizeCustomerAuthCustomer, resolveCustomerAuthCurrentCustomerId, shouldPromptCustomerAuthForProduct };
@@ -71,4 +71,4 @@ function buildHolderListRequestKey(params) {
71
71
  });
72
72
  }
73
73
  //#endregion
74
- export { buildHolderListRequestKey, buildHolderListRequestParams, enrichCartBookingHolderDisplay, resolveHolderDisplayConfig };
74
+ export { buildHolderListRequestKey, buildHolderListRequestParams, enrichCartBookingHolderDisplay, pickHolderIdFromBooking, resolveHolderDisplayConfig };
@@ -5,12 +5,12 @@ import React, { useCallback, useEffect, useMemo, useRef } from "react";
5
5
  import { locales } from "@pisell/utils";
6
6
  import { Button, PisellEmpty, PisellModal, PisellStatisticList, Skeleton, Timeline, usePisellConfig } from "@pisell/materials";
7
7
  import { useRequest } from "ahooks";
8
- import timezonePlugin from "dayjs/plugin/timezone";
9
- import utcPlugin from "dayjs/plugin/utc";
8
+ import timezone from "dayjs/plugin/timezone";
9
+ import utc from "dayjs/plugin/utc";
10
10
  import "./index.less";
11
11
  //#region src/plus/walletPassGallery/components/timelineSection/index.tsx
12
- dayjs.extend(timezonePlugin);
13
- dayjs.extend(utcPlugin);
12
+ dayjs.extend(timezone);
13
+ dayjs.extend(utc);
14
14
  const stateTimeUnix = 1723255863;
15
15
  const POLL_INTERVAL = 2e3;
16
16
  const POLL_MAX_TIMES = 5;
@@ -14,4 +14,4 @@ interface AuthModalProps {
14
14
  */
15
15
  declare const AuthModal: React.FC<AuthModalProps>;
16
16
  //#endregion
17
- export { AuthModal, AuthModalProps };
17
+ export { AuthModal };
@@ -1,4 +1,4 @@
1
- import { AuthMethodType, VerificationMethod } from "./shared/types.js";
1
+ import { AuthMethodType, EmailAuthConfig, EmailRegistrationVerification, LoginFormData, OAuthConfig, PhoneAuthConfig, RegisterFormData, UIConfig, 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, AuthModalProps } from "./AuthModal.js";
4
+ import { AuthModal } from "./AuthModal.js";
@@ -226,4 +226,4 @@ interface RegisterFormData {
226
226
  verification_token?: string;
227
227
  }
228
228
  //#endregion
229
- export { AuthMethodType, EmailAuthConfig, LegalTermsConfig, LoginFormData, LoginMethodItem, OAuthConfig, PhoneAuthConfig, RegisterFormData, RegistrationMethodItem, UIConfig, VerificationMethod };
229
+ export { AuthMethodType, EmailAuthConfig, EmailRegistrationVerification, LegalTermsConfig, LoginFormData, LoginMethodItem, OAuthConfig, PhoneAuthConfig, RegisterFormData, RegistrationMethodItem, UIConfig, VerificationMethod };
@@ -2,6 +2,15 @@ import { isAvailabilityResourceNormallySelectable } from "../availabilityModel.j
2
2
  import { resolveAvailabilityStatus } from "../../../../components/eventBooking/components/bookingAvailabilityCalendar/utils.js";
3
3
  import { resolveResourceGroupMaxSelectable } from "./resource/model.js";
4
4
  //#region src/pro/skuDetailModal/flow/modules/autoResolution.ts
5
+ /**
6
+ * POS 首屏自动推导 Session 时只认 UBS 返回顺序中的第一场。
7
+ * 缺省容量沿用旧兼容语义;明确无容量时不允许走自动确认。
8
+ */
9
+ const resolveFirstPosSessionAutoCandidate = (candidates) => {
10
+ const firstCandidate = candidates[0];
11
+ if (!firstCandidate || firstCandidate.source !== "session_schedule" || firstCandidate.status !== "available" && firstCandidate.status !== "limited" || typeof firstCandidate.maxPartySize === "number" && firstCandidate.maxPartySize <= 0) return;
12
+ return firstCandidate;
13
+ };
5
14
  const findFirstNormallyAvailableDate = (items) => items.find((item) => {
6
15
  const status = resolveAvailabilityStatus(item) || "unavailable";
7
16
  return status === "available" || status === "limited";
@@ -18,13 +27,20 @@ const validateAvailabilityDateAutoResolution = (context, module) => {
18
27
  return startDate.isSame(endDate, "day") && (status === "available" || status === "limited");
19
28
  };
20
29
  const validateAvailabilityTimeAutoResolution = (context, module) => {
21
- var _module$options2, _context$getModuleDat, _context$draft$bookin;
30
+ var _module$options2, _context$draft$bookin, _context$services$isP, _context$services, _context$services$isP2, _context$services2;
22
31
  if (((_module$options2 = module.options) === null || _module$options2 === void 0 ? void 0 : _module$options2.mode) !== "availability" || !context.services.availability) return false;
23
- const candidate = (_context$getModuleDat = context.getModuleData(module.key)) === null || _context$getModuleDat === void 0 ? void 0 : _context$getModuleDat.selectedCandidate;
32
+ const data = context.getModuleData(module.key);
33
+ const candidate = data === null || data === void 0 ? void 0 : data.selectedCandidate;
24
34
  const duration = context.draft.booking.duration;
25
35
  if (!candidate || !context.draft.booking.startTime || !(typeof duration === "number" && duration > 0 || typeof duration === "string" && duration.length > 0) || String(((_context$draft$bookin = context.draft.booking.selectedCandidate) === null || _context$draft$bookin === void 0 ? void 0 : _context$draft$bookin.key) || "") !== String(candidate.key)) return false;
36
+ if (((_context$services$isP = (_context$services = context.services).isPosAutoResolutionActive) === null || _context$services$isP === void 0 ? void 0 : _context$services$isP.call(_context$services)) === true && (data === null || data === void 0 ? void 0 : data.posCustomTimeSelectionIntent) === "fallback") return false;
26
37
  if (candidate.status !== "available" && candidate.status !== "limited") return false;
27
38
  if (typeof candidate.maxPartySize === "number" && candidate.maxPartySize <= 0) return false;
39
+ if (((_context$services$isP2 = (_context$services2 = context.services).isPosAutoResolutionActive) === null || _context$services$isP2 === void 0 ? void 0 : _context$services$isP2.call(_context$services2)) === true && candidate.source === "session_schedule") {
40
+ var _data$timeSlots;
41
+ const firstCandidate = data === null || data === void 0 || (_data$timeSlots = data.timeSlots) === null || _data$timeSlots === void 0 || (_data$timeSlots = _data$timeSlots[0]) === null || _data$timeSlots === void 0 ? void 0 : _data$timeSlots.candidate;
42
+ if (!firstCandidate || resolveFirstPosSessionAutoCandidate([firstCandidate]) !== candidate) return false;
43
+ }
28
44
  return context.steps.some((step) => step.modules.some((item) => item.type === "resource")) || Boolean(context.draft.booking.commitCandidate);
29
45
  };
30
46
  const validateAvailabilityResourceAutoResolution = (context, module) => {
@@ -60,4 +76,4 @@ const getDefaultCustomCapacitySelection = (capacityConfig) => (capacityConfig ==
60
76
  })) : [];
61
77
  const isHolderAutoResolved = ({ required, holderIds, quantity }) => !required || holderIds.length === quantity;
62
78
  //#endregion
63
- export { findFirstNormallyAvailableDate, getDefaultCustomCapacitySelection, isCapacityAutoResolved, isHolderAutoResolved, validateAvailabilityDateAutoResolution, validateAvailabilityResourceAutoResolution, validateAvailabilityTimeAutoResolution };
79
+ export { findFirstNormallyAvailableDate, getDefaultCustomCapacitySelection, isCapacityAutoResolved, isHolderAutoResolved, resolveFirstPosSessionAutoCandidate, validateAvailabilityDateAutoResolution, validateAvailabilityResourceAutoResolution, validateAvailabilityTimeAutoResolution };