@pisell/private-materials 6.12.311 → 6.12.313

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 (48) 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.css +1 -1
  6. package/build/lowcode/render/default/view.js +1 -1
  7. package/build/lowcode/view.css +1 -1
  8. package/build/lowcode/view.js +1 -1
  9. package/es/components/HDLKiosk/slices/customization/Screen/index.less +1 -5
  10. package/es/components/HDLKiosk/slices/payment/Screen/index.js +88 -39
  11. package/es/components/HDLKiosk/slices/payment/view.js +5 -2
  12. package/es/components/bigSale/components/BookingFloatingPanel/useBookingPanelController.js +1 -0
  13. package/es/components/bigSale/components/ProductList/index.js +1 -0
  14. package/es/components/bigSale/components/TimeBar/index.js +1 -0
  15. package/es/components/bigSale/dialog.js +1 -0
  16. package/es/components/bigSale/hooks/useBigSaleContext.js +1 -0
  17. package/es/components/bigSale/hooks/useSelectFloorMapResourceForBigSale.js +1 -0
  18. package/es/components/bigSale/index.js +1 -0
  19. package/es/components/bigSale/templates/Kiosk/index.js +1 -0
  20. package/es/components/sharedSecondaryBigSale/SharedSecondaryBigSaleReceiver.js +1 -0
  21. package/es/index.js +2 -0
  22. package/es/plus/multiCurrencySettlement/index.js +1 -1
  23. package/es/plus/pisellReservation/data/bookingToReservationTables.js +1 -1
  24. package/es/plus/pisellReservation/floorMap/floorPlanApi.js +1 -1
  25. package/es/plus/pisellReservation/floorMap/reservationMock.js +1 -1
  26. package/es/plus/pisellReservation/index.js +17 -0
  27. package/es/plus/saasDevice/devicePasscodes/model.js +4 -4
  28. package/es/plus/saleDetail/Base.js +1 -0
  29. package/es/plus/saleDetail/components/Client/hooks/useClientSelectorProps.js +1 -0
  30. package/es/plus/saleDetail/components/DetailActions/PrintAction.js +1 -0
  31. package/es/plus/saleDetail/components/DetailActions/index.js +1 -0
  32. package/es/plus/saleDetail/components/SummaryFinancialSections/index.js +1 -0
  33. package/es/plus/saleDetail/index.js +1 -0
  34. package/es/plus/saleDetail/tmpl/B/components/Dish/index.js +1 -0
  35. package/es/plus/saleDetail/tmpl/B/index.js +1 -0
  36. package/es/plus/salesSdk/index.js +54 -0
  37. package/es/plus/salesSdk/utils/addProductWithFlowDebounced.js +1 -1
  38. package/es/plus/salesSdk/utils/bookingDate.js +1 -1
  39. package/es/plus/salesSdk/utils/enrichCartLineHolderDisplay.js +1 -1
  40. package/es/plus/walletPassGallery/components/timelineSection/index.js +4 -4
  41. package/es/pro/Login2.0/AuthModal.d.ts +1 -1
  42. package/es/pro/Login2.0/index.d.ts +2 -2
  43. package/es/pro/Login2.0/shared/types.d.ts +1 -1
  44. package/lib/components/HDLKiosk/slices/customization/Screen/index.less +1 -5
  45. package/lib/components/HDLKiosk/slices/payment/Screen/index.js +88 -39
  46. package/lib/components/HDLKiosk/slices/payment/view.js +5 -2
  47. package/package.json +3 -3
  48. package/es/private-materials/lowcode/authmodal/meta.d.ts +0 -1
@@ -62,11 +62,7 @@
62
62
  left: 0;
63
63
  min-width: 0;
64
64
  padding: 15px 22px 17px;
65
- background: linear-gradient(
66
- 180deg,
67
- rgba(255, 255, 255, 0.35),
68
- rgba(255, 255, 255, 0.88)
69
- );
65
+ background: linear-gradient(#e5c0c0dd, #ffffffe0);
70
66
  }
71
67
 
72
68
  .hdl-customization-product__copy p {
@@ -25,23 +25,52 @@ function ConfirmOrderIcon() {
25
25
  "aria-hidden": "true"
26
26
  }, /* @__PURE__ */ React.createElement("path", { d: "m5 12 4 4L19 6" }));
27
27
  }
28
- /** 与 PaymentModal 一致:EFTPOS/信用卡使用 credit,其余自定义方式使用 custom。 */
29
- function PaymentMethodIcon({ code, type }) {
30
- const isCard = code === "EFTPOS" || type === "credit-card" || type === "eftpos";
28
+ /** 名称含 cash 时优先展示纸币,否则按卡支付、现金配置和自定义支付区分。 */
29
+ function PaymentMethodIcon({ code, name, type, eftpos, cash }) {
30
+ const nameContainsCash = /cash/i.test(name);
31
+ const isCash = nameContainsCash || cash;
32
+ const isCard = !nameContainsCash && (eftpos || code === "EFTPOS" || type === "credit-card" || type === "eftpos");
31
33
  return /* @__PURE__ */ React.createElement("span", {
32
34
  className: "hdl-payment-method__icon",
33
- style: { background: isCard ? "#FE8279" : "#D277E4" },
35
+ style: { background: isCard ? "#FE8279" : isCash ? "#D69B28" : "#D277E4" },
34
36
  "aria-hidden": "true"
35
- }, /* @__PURE__ */ React.createElement(Iconfont, {
36
- type: isCard ? "pisell2-credit" : "pisell2-custom",
37
+ }, isCard ? /* @__PURE__ */ React.createElement(Iconfont, {
38
+ type: "pisell2-credit-card-02",
37
39
  style: {
38
40
  fontSize: "46px",
39
41
  color: "#fff"
40
42
  }
41
- }));
43
+ }) : /* @__PURE__ */ React.createElement("svg", {
44
+ viewBox: "0 0 32 32",
45
+ width: "48",
46
+ height: "48",
47
+ fill: "none",
48
+ stroke: "#fff",
49
+ strokeWidth: "1.8",
50
+ strokeLinecap: "round",
51
+ strokeLinejoin: "round",
52
+ focusable: "false"
53
+ }, isCash ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("rect", {
54
+ x: "3",
55
+ y: "6",
56
+ width: "26",
57
+ height: "17",
58
+ rx: "3"
59
+ }), /* @__PURE__ */ React.createElement("path", { d: "M7 26h18M3 11a5 5 0 0 0 5-5m16 0a5 5 0 0 0 5 5M3 18a5 5 0 0 1 5 5m16 0a5 5 0 0 1 5-5" }), /* @__PURE__ */ React.createElement("ellipse", {
60
+ cx: "16",
61
+ cy: "14.5",
62
+ rx: "3.5",
63
+ ry: "4.5"
64
+ })) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("rect", {
65
+ x: "7",
66
+ y: "4",
67
+ width: "14",
68
+ height: "9",
69
+ rx: "2"
70
+ }), /* @__PURE__ */ React.createElement("path", { d: "M11 8.5h6M14 13v3M8 16h16l4 7v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-4l4-7ZM4 23h24M13 25.5h6M10 19.5h2m3 0h2m3 0h2" }))));
42
71
  }
43
72
  function CheckoutScreen({ model, orderBar, send }) {
44
- var _model$paymentFeedbac;
73
+ var _model$paymentFeedbac2, _model$paymentFeedbac4, _model$paymentFeedbac5;
45
74
  const sendRef = useRef(send);
46
75
  sendRef.current = send;
47
76
  const goBack = useCallback(() => {
@@ -53,6 +82,47 @@ function CheckoutScreen({ model, orderBar, send }) {
53
82
  const canReturnToCart = Boolean(orderBar && orderBar.cartLineCount > 0) && model.canLeavePayment;
54
83
  const [restartOrderOpen, setRestartOrderOpen] = useState(false);
55
84
  const [dismissedFeedbackKey, setDismissedFeedbackKey] = useState();
85
+ const automaticPaymentHandled = useRef(false);
86
+ const confirmNoPayment = useCallback(() => {
87
+ var _model$paymentFeedbac;
88
+ automaticPaymentHandled.current = true;
89
+ setDismissedFeedbackKey((_model$paymentFeedbac = model.paymentFeedback) === null || _model$paymentFeedbac === void 0 ? void 0 : _model$paymentFeedbac.key);
90
+ sendRef.current({
91
+ kind: "command",
92
+ command: "checkout.completeNoPayment"
93
+ });
94
+ }, [(_model$paymentFeedbac2 = model.paymentFeedback) === null || _model$paymentFeedbac2 === void 0 ? void 0 : _model$paymentFeedbac2.key]);
95
+ const selectPayment = useCallback((method) => {
96
+ var _model$paymentFeedbac3;
97
+ automaticPaymentHandled.current = true;
98
+ setDismissedFeedbackKey((_model$paymentFeedbac3 = model.paymentFeedback) === null || _model$paymentFeedbac3 === void 0 ? void 0 : _model$paymentFeedbac3.key);
99
+ sendRef.current({
100
+ kind: "command",
101
+ command: method.eftpos ? "checkout.payEftpos" : "checkout.requestStaffPaymentApproval",
102
+ input: { paymentMethodId: method.id }
103
+ });
104
+ }, [(_model$paymentFeedbac4 = model.paymentFeedback) === null || _model$paymentFeedbac4 === void 0 ? void 0 : _model$paymentFeedbac4.key]);
105
+ useEffect(() => {
106
+ if (model.paymentFeedback) automaticPaymentHandled.current = true;
107
+ if (automaticPaymentHandled.current || model.busy || model.resetting || model.paymentResult || model.paymentResultPending || restartOrderOpen || !model.totalText) return;
108
+ let startPayment;
109
+ if (model.noPaymentRequired) {
110
+ if (model.canCompleteNoPayment) startPayment = confirmNoPayment;
111
+ } else if (model.canSelectPayment && !model.paymentMethodsLoading && !model.paymentMethodsErrorReference && model.paymentMethods.length === 1) startPayment = () => selectPayment(model.paymentMethods[0]);
112
+ if (!startPayment) return;
113
+ let cancelled = false;
114
+ Promise.resolve().then(() => {
115
+ if (!cancelled && !automaticPaymentHandled.current) startPayment();
116
+ });
117
+ return () => {
118
+ cancelled = true;
119
+ };
120
+ }, [
121
+ model,
122
+ restartOrderOpen,
123
+ confirmNoPayment,
124
+ selectPayment
125
+ ]);
56
126
  const [returnCountdown, setReturnCountdown] = useState(10);
57
127
  const resetOrder = useCallback((source) => sendRef.current({
58
128
  kind: "session",
@@ -148,11 +218,7 @@ function CheckoutScreen({ model, orderBar, send }) {
148
218
  role: "status"
149
219
  }, /* @__PURE__ */ React.createElement("span", { className: "hdl-operation-overlay__spinner" }), /* @__PURE__ */ React.createElement("strong", null, locales.getText("pisell2.hdl-kiosk.payment-processing"))));
150
220
  const paymentDisabled = !model.canSelectPayment || !model.totalText;
151
- const visibleFeedback = ((_model$paymentFeedbac = model.paymentFeedback) === null || _model$paymentFeedbac === void 0 ? void 0 : _model$paymentFeedbac.key) === dismissedFeedbackKey ? void 0 : model.paymentFeedback;
152
- const dismissCurrentFeedback = () => {
153
- var _model$paymentFeedbac2;
154
- return setDismissedFeedbackKey((_model$paymentFeedbac2 = model.paymentFeedback) === null || _model$paymentFeedbac2 === void 0 ? void 0 : _model$paymentFeedbac2.key);
155
- };
221
+ const visibleFeedback = ((_model$paymentFeedbac5 = model.paymentFeedback) === null || _model$paymentFeedbac5 === void 0 ? void 0 : _model$paymentFeedbac5.key) === dismissedFeedbackKey ? void 0 : model.paymentFeedback;
156
222
  return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("section", {
157
223
  className: "hdl-checkout-screen",
158
224
  "aria-labelledby": "hdl-payment-method-title"
@@ -167,13 +233,7 @@ function CheckoutScreen({ model, orderBar, send }) {
167
233
  className: "hdl-payment-method hdl-no-payment-confirm",
168
234
  "aria-busy": model.busy,
169
235
  disabled: !model.canCompleteNoPayment,
170
- onClick: () => {
171
- dismissCurrentFeedback();
172
- send({
173
- kind: "command",
174
- command: "checkout.completeNoPayment"
175
- });
176
- }
236
+ onClick: confirmNoPayment
177
237
  }, /* @__PURE__ */ React.createElement("span", { className: "hdl-no-payment-confirm__icon" }, /* @__PURE__ */ React.createElement(ConfirmOrderIcon, null)), /* @__PURE__ */ React.createElement("strong", null, locales.getText(model.busy ? "pisell2.hdl-kiosk.no-payment-confirming" : "pisell2.hdl-kiosk.no-payment-confirm")), /* @__PURE__ */ React.createElement(NextIcon, null)) : /* @__PURE__ */ React.createElement(React.Fragment, null, model.paymentMethodsLoading ? /* @__PURE__ */ React.createElement("p", {
178
238
  className: "hdl-payment-methods__notice",
179
239
  role: "status"
@@ -182,32 +242,21 @@ function CheckoutScreen({ model, orderBar, send }) {
182
242
  role: model.paymentMethodsErrorReference ? "alert" : "status"
183
243
  }, locales.getText("pisell2.hdl-kiosk.payment-methods-unavailable")) : null, model.paymentMethods.map((method) => {
184
244
  const eftpos = method.eftpos;
245
+ const displayName = method.name.replace(/-Linkly/g, "");
185
246
  return /* @__PURE__ */ React.createElement("button", {
186
247
  key: method.id,
187
248
  type: "button",
188
249
  className: `hdl-payment-method hdl-payment-method--${eftpos ? "card" : "cash"}`,
189
- "aria-label": method.name,
250
+ "aria-label": displayName,
190
251
  disabled: paymentDisabled,
191
- onClick: () => {
192
- dismissCurrentFeedback();
193
- if (eftpos) {
194
- send({
195
- kind: "command",
196
- command: "checkout.payEftpos",
197
- input: { paymentMethodId: method.id }
198
- });
199
- return;
200
- }
201
- send({
202
- kind: "command",
203
- command: "checkout.requestStaffPaymentApproval",
204
- input: { paymentMethodId: method.id }
205
- });
206
- }
252
+ onClick: () => selectPayment(method)
207
253
  }, /* @__PURE__ */ React.createElement(PaymentMethodIcon, {
208
254
  code: method.code,
209
- type: method.type
210
- }), /* @__PURE__ */ React.createElement("span", null, /* @__PURE__ */ React.createElement("strong", null, method.name)), /* @__PURE__ */ React.createElement(NextIcon, null));
255
+ name: method.name,
256
+ type: method.type,
257
+ eftpos: method.eftpos,
258
+ cash: method.cash
259
+ }), /* @__PURE__ */ React.createElement("span", null, /* @__PURE__ */ React.createElement("strong", null, displayName)), /* @__PURE__ */ React.createElement(NextIcon, null));
211
260
  }))), /* @__PURE__ */ React.createElement("div", { className: "hdl-payment-restart-section" }, /* @__PURE__ */ React.createElement(RestartOrderButton, {
212
261
  disabled: !model.canRestartOrder,
213
262
  title: model.restartOrderBlockedReason,
@@ -71,10 +71,13 @@ function createCheckoutScreenModel(snapshot, sales, payment, completed = false,
71
71
  busy: snapshot.status === "running",
72
72
  noPaymentRequired,
73
73
  canCompleteNoPayment: noPaymentRequired && interactionAvailable,
74
- paymentMethods: payment.methods,
74
+ paymentMethods: payment.methods.map((method) => {
75
+ var _method$metadata, _method$metadata2;
76
+ return _objectSpread2(_objectSpread2({}, method), {}, { cash: method.type === "custom" && (((_method$metadata = method.metadata) === null || _method$metadata === void 0 ? void 0 : _method$metadata.order_open_cash_drawer) === 1 || ((_method$metadata2 = method.metadata) === null || _method$metadata2 === void 0 ? void 0 : _method$metadata2.order_open_cash_drawer) === "1") });
77
+ }),
75
78
  paymentMethodsLoading: payment.loading,
76
79
  paymentMethodsErrorReference: payment.errorReference,
77
- canSelectPayment: interactionAvailable,
80
+ canSelectPayment: interactionAvailable && sales.summary.status === "ready",
78
81
  canLeavePayment: interactionAvailable,
79
82
  canRestartOrder: interactionAvailable,
80
83
  restartOrderBlockedReason: paymentSafeToChange ? void 0 : locales.getText("pisell2.hdl-kiosk.restart-order-payment-blocked"),
@@ -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
@@ -14,6 +14,7 @@ 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";
17
18
  import { buildBigSaleProductListPreferencesKey, readBigSaleProductListPreferences, readStoredBigSaleProductListPreferences, removeBigSaleProductListPreferences, resolveBigSaleAutoProductListPreferences, writeBigSaleProductListPreferences } from "../../utils/productListPreferences.js";
18
19
  import { resolveBigSaleProductDisplayConfig, useBigSaleProductListConfig } from "../../hooks/useBigSaleProductListConfig.js";
19
20
  import locales_default from "../../locales/index.js";
@@ -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 { getPosWeekStartsOn, resolvePosCountryCode } from "../../../../utils/posDateLocale.js";
9
10
  import dayjs from "dayjs";
@@ -6,6 +6,7 @@ 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";
9
10
  import { isPersistedBigSaleOrderId } from "./utils/orderIdentity.js";
10
11
  import { seedDineInReservationToCart } from "../../plus/pisellReservation/utils/seedDineInReservationToCart.js";
11
12
  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 { _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";
6
7
  import { isPersistedBigSaleOrderId } from "../utils/orderIdentity.js";
7
8
  import { resolveOrderIdForHostActions } from "../../../plus/pisellReservation/components/bookingDetailModal/bookingDetailHostActions.js";
8
9
  import { usePicoCodingOpenData } from "../../../plus/pisellReservation/hooks/usePicoCodingOpenData.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";
@@ -12,6 +12,7 @@ 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";
15
16
  import { usePickSaleDetailContext } from "../../hooks/usePickSaleDetailContext.js";
16
17
  import { resolveBigSaleAutoProductListPreferences } from "../../utils/productListPreferences.js";
17
18
  import { resolveBigSaleProductDisplayConfig } from "../../hooks/useBigSaleProductListConfig.js";
@@ -2,6 +2,7 @@ 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";
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
@@ -87,6 +87,7 @@ 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";
90
91
  import BigSaleRightActionPanel from "./components/BigSaleRightActionPanel/index.js";
91
92
  import ResponsiveWrapper from "./components/list/ResponsiveWrapper.js";
92
93
  import { resolveBigSaleSelectionFlowConfig } from "./components/bigSale/selectionFlowConfig.js";
@@ -141,6 +142,7 @@ import PisellVenueControlPage from "./plus/pisellReservation/PisellVenueControlP
141
142
  import PisellVenueWallPage from "./plus/pisellReservation/PisellVenueWallPage.js";
142
143
  import PisellReservationTablePage from "./plus/pisellReservation/PisellReservationTablePage.js";
143
144
  import SelectFloorMapResourceDialog from "./plus/pisellReservation/components/SelectFloorMapResourceDialog.js";
145
+ import "./plus/pisellReservation/index.js";
144
146
  import { PisellTopology, PisellTopologyCore } from "./plus/pisellTopology/PisellTopology.js";
145
147
  import cupProject_default from "./components/ecocup/cupProject/index.js";
146
148
  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 };
@@ -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 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,6 +13,7 @@ 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";
16
17
  import locales_default$1 from "./components/LineItem/locales.js";
17
18
  import { SaleOrderActionBoundary } from "./actions/index.js";
18
19
  import { SaleDetailTemplateRenderer } from "./tmpl/index.js";
@@ -1,6 +1,7 @@
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";
4
5
  import { useMemo } from "react";
5
6
  import { useMemoizedFn } from "ahooks";
6
7
  //#region src/plus/saleDetail/components/Client/hooks/useClientSelectorProps.ts
@@ -4,6 +4,7 @@ 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";
7
8
  import { invokeLocalReceiptPrint, resolveLocalReceiptPrintModule, resolveSaleDetailOrderIdFromSales } from "./utils.js";
8
9
  import { getRemotePrintActions, getWristbandList } from "../../serve.js";
9
10
  import { EBizPrintType } from "./types.js";
@@ -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 { deriveSaleOrderSubmitState } from "../../actions/state.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";
@@ -5,6 +5,7 @@ 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";
8
9
  import Base_default from "./Base.js";
9
10
  import { resolveSaleDetailOsProps } from "./osProps.js";
10
11
  import React, { forwardRef, useImperativeHandle } from "react";
@@ -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 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";
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,54 @@
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 "./utils/productSkuOptions.js";
12
+ import "./context/SalesSdkUIHostsContext.js";
13
+ import "./utils/runAddProductFlow.js";
14
+ import "./components/showAddToCartToast.js";
15
+ import "./utils/resolveAddProductDebounceKey.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 {};
@@ -389,4 +389,4 @@ function createAddProductWithFlowDebounced(deps) {
389
389
  };
390
390
  }
391
391
  //#endregion
392
- export { createAddProductWithFlowDebounced };
392
+ 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 };
@@ -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 };
@@ -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;
@@ -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 };
@@ -62,11 +62,7 @@
62
62
  left: 0;
63
63
  min-width: 0;
64
64
  padding: 15px 22px 17px;
65
- background: linear-gradient(
66
- 180deg,
67
- rgba(255, 255, 255, 0.35),
68
- rgba(255, 255, 255, 0.88)
69
- );
65
+ background: linear-gradient(#e5c0c0dd, #ffffffe0);
70
66
  }
71
67
 
72
68
  .hdl-customization-product__copy p {