@pisell/private-materials 6.12.356 → 6.12.357

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 (62) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/meta.js +1 -1
  5. package/build/lowcode/render/default/view.js +12 -12
  6. package/build/lowcode/view.js +12 -12
  7. package/es/components/appointmentBooking/components/Cart/Item/index.js +64 -12
  8. package/es/components/appointmentBooking/components/ConfirmInformation/index.js +7 -2
  9. package/es/components/appointmentBooking/components/Content/index.js +6 -4
  10. package/es/components/appointmentBooking/components/Voucher/index.js +11 -1
  11. package/es/components/appointmentBooking/hooks.js +33 -18
  12. package/es/components/appointmentBooking/utils.js +16 -5
  13. package/es/components/bigSale/components/BookingFloatingPanel/useBookingPanelController.js +1 -0
  14. package/es/components/bigSale/components/ProductList/index.js +1 -0
  15. package/es/components/bigSale/components/TimeBar/index.js +1 -0
  16. package/es/components/bigSale/dialog.js +1 -0
  17. package/es/components/bigSale/hooks/useBigSaleContext.js +1 -0
  18. package/es/components/bigSale/hooks/useSelectFloorMapResourceForBigSale.js +1 -0
  19. package/es/components/bigSale/index.js +1 -0
  20. package/es/components/bigSale/templates/Kiosk/index.js +1 -0
  21. package/es/components/sharedSecondaryBigSale/SharedSecondaryBigSaleReceiver.js +1 -0
  22. package/es/components/venueBooking/components/Cart/index.js +112 -18
  23. package/es/components/venueBooking/context.js +14 -3
  24. package/es/components/venueBooking/locales.js +10 -5
  25. package/es/index.js +2 -0
  26. package/es/plus/multiCurrencySettlement/index.js +1 -1
  27. package/es/plus/pisellReservation/data/bookingToReservationTables.js +1 -1
  28. package/es/plus/pisellReservation/floorMap/floorPlanApi.js +1 -1
  29. package/es/plus/pisellReservation/floorMap/reservationMock.js +1 -1
  30. package/es/plus/pisellReservation/index.js +17 -0
  31. package/es/plus/saasDevice/devicePasscodes/model.js +4 -4
  32. package/es/plus/saleDetail/Base.js +1 -0
  33. package/es/plus/saleDetail/components/Client/hooks/useClientSelectorProps.js +1 -0
  34. package/es/plus/saleDetail/components/DetailActions/PrintAction.js +1 -0
  35. package/es/plus/saleDetail/components/DetailActions/index.js +1 -0
  36. package/es/plus/saleDetail/components/SummaryFinancialSections/index.js +1 -0
  37. package/es/plus/saleDetail/index.js +1 -0
  38. package/es/plus/saleDetail/tmpl/B/components/Dish/index.js +1 -0
  39. package/es/plus/saleDetail/tmpl/B/index.js +1 -0
  40. package/es/plus/salesSdk/index.js +54 -0
  41. package/es/plus/salesSdk/utils/addProductWithFlowDebounced.js +1 -1
  42. package/es/plus/salesSdk/utils/bookingDate.js +1 -1
  43. package/es/plus/salesSdk/utils/enrichCartLineHolderDisplay.js +1 -1
  44. package/es/plus/walletPassGallery/components/timelineSection/index.js +4 -4
  45. package/es/pro/Login2.0/AuthModal.d.ts +1 -1
  46. package/es/pro/Login2.0/index.d.ts +2 -2
  47. package/es/pro/Login2.0/shared/types.d.ts +1 -1
  48. package/es/utils/buildCartHolderParams.js +166 -0
  49. package/es/utils/holderConfig.js +6 -0
  50. package/lib/components/appointmentBooking/components/Cart/Item/index.js +63 -11
  51. package/lib/components/appointmentBooking/components/ConfirmInformation/index.js +7 -2
  52. package/lib/components/appointmentBooking/components/Content/index.js +6 -4
  53. package/lib/components/appointmentBooking/components/Voucher/index.js +11 -1
  54. package/lib/components/appointmentBooking/hooks.js +33 -18
  55. package/lib/components/appointmentBooking/utils.js +16 -5
  56. package/lib/components/venueBooking/components/Cart/index.js +111 -17
  57. package/lib/components/venueBooking/context.js +14 -3
  58. package/lib/components/venueBooking/locales.js +10 -5
  59. package/lib/utils/buildCartHolderParams.js +172 -0
  60. package/lib/utils/holderConfig.js +7 -0
  61. package/package.json +2 -2
  62. package/es/private-materials/lowcode/authmodal/meta.d.ts +0 -1
@@ -2,12 +2,15 @@ import useEngineContext from "../../../../hooks/useEngineContext.js";
2
2
  import { _objectSpread2 } from "../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js";
3
3
  import { _asyncToGenerator } from "../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js";
4
4
  import shoppingCart from "../../../shoppingCart/index.js";
5
+ import { isHolderConfigEnabled } from "../../../../utils/holderConfig.js";
6
+ import { getCustomer, openForm } from "../../../appointmentBooking/utils.js";
5
7
  import SubTotal from "../../../subTotal/index.js";
8
+ import { buildCartHolderParams, getSkuRelationFormId, getVenueCartHolderConfig, handleCartHolderFormSuccess } from "../../../../utils/buildCartHolderParams.js";
6
9
  import { getVenueBookingProductIdentity } from "../../utils/orderProductIdentity.js";
7
10
  import { useVenueBookingContext } from "../../context.js";
8
11
  import VoucherCard from "../Voucher/index.js";
9
12
  import VenueDeposit from "../Deposit/index.js";
10
- import React, { useEffect, useMemo } from "react";
13
+ import React, { useEffect, useMemo, useState } from "react";
11
14
  import { message } from "antd";
12
15
  import { locales } from "@pisell/utils";
13
16
  import { Button as Button$1 } from "@pisell/materials";
@@ -19,24 +22,65 @@ import "./index.less";
19
22
  * 支持两种模式:embedded(桌面端内嵌)和 drawer(移动端抽屉弹出)
20
23
  */
21
24
  function Cart(props) {
22
- var _engineContext$appHel, _engineContext$appHel2, _engineContext$appHel3, _engineContext$engine, _businessUtils$getApp, _businessUtils$getApp2, _ref, _ref2, _ref3, _summary$total_amount, _summary$deposit3;
25
+ var _engineContext$appHel, _engineContext$appHel2, _engineContext$appHel3, _engineContext$engine, _engineContext$appHel4, _businessUtils$getApp, _businessUtils$getApp2, _ref, _ref2, _ref3, _summary$total_amount, _summary$deposit3;
23
26
  const { open, onCancel, onNext, items, summary, embedded = false, confirmLoading = false, extraContent } = props;
24
- const { currentStep, runModuleAction, refreshViewModel, refreshTimeSlotGrid, venueBookingModule, isAgreeDepositPolicy, setIsAgreeDepositPolicy } = useVenueBookingContext();
27
+ const { currentStep, runModuleAction, refreshViewModel, refreshTimeSlotGrid, venueBookingModule, isAgreeDepositPolicy, setIsAgreeDepositPolicy, isLoading, isLogin } = useVenueBookingContext();
25
28
  const engineContext = useEngineContext();
26
29
  const businessUtils = engineContext === null || engineContext === void 0 || (_engineContext$appHel = engineContext.appHelper) === null || _engineContext$appHel === void 0 || (_engineContext$appHel = _engineContext$appHel.utils) === null || _engineContext$appHel === void 0 ? void 0 : _engineContext$appHel.businessUtils;
27
30
  const symbol = String((engineContext === null || engineContext === void 0 || (_engineContext$appHel2 = engineContext.appHelper) === null || _engineContext$appHel2 === void 0 || (_engineContext$appHel2 = _engineContext$appHel2.utils) === null || _engineContext$appHel2 === void 0 || (_engineContext$appHel3 = _engineContext$appHel2.getSymbolic) === null || _engineContext$appHel3 === void 0 ? void 0 : _engineContext$appHel3.call(_engineContext$appHel2)) || "$");
28
31
  const locale = (engineContext === null || engineContext === void 0 || (_engineContext$engine = engineContext.engine) === null || _engineContext$engine === void 0 || (_engineContext$engine = _engineContext$engine.props) === null || _engineContext$engine === void 0 ? void 0 : _engineContext$engine.locale) || "en";
32
+ const [holderMap, setHolderMap] = useState({});
33
+ const { pisellos, translation } = (engineContext === null || engineContext === void 0 || (_engineContext$appHel4 = engineContext.appHelper) === null || _engineContext$appHel4 === void 0 ? void 0 : _engineContext$appHel4.utils) || {};
29
34
  const hasGoodPassApp = !!(businessUtils === null || businessUtils === void 0 || (_businessUtils$getApp = businessUtils.getAppByModal) === null || _businessUtils$getApp === void 0 ? void 0 : _businessUtils$getApp.call(businessUtils, "goodpass"));
30
35
  const hasDiscountCardApp = !!(businessUtils === null || businessUtils === void 0 || (_businessUtils$getApp2 = businessUtils.getAppByModal) === null || _businessUtils$getApp2 === void 0 ? void 0 : _businessUtils$getApp2.call(businessUtils, "discountcard"));
31
36
  const showVoucher = hasGoodPassApp || hasDiscountCardApp;
37
+ useEffect(() => {
38
+ var _pisellos$effects;
39
+ const onHolderChanged = (res) => {
40
+ if ((res === null || res === void 0 ? void 0 : res.path) === "holderMap") setHolderMap(res === null || res === void 0 ? void 0 : res.value);
41
+ };
42
+ pisellos === null || pisellos === void 0 || (_pisellos$effects = pisellos.effects) === null || _pisellos$effects === void 0 || _pisellos$effects.on("venueBooking_holder:changed", onHolderChanged);
43
+ return () => {
44
+ var _pisellos$effects2;
45
+ pisellos === null || pisellos === void 0 || (_pisellos$effects2 = pisellos.effects) === null || _pisellos$effects2 === void 0 || _pisellos$effects2.off("venueBooking_holder:changed", onHolderChanged);
46
+ };
47
+ }, [pisellos]);
48
+ useEffect(() => {
49
+ if (isLoading || !venueBookingModule) return;
50
+ try {
51
+ var _venueBookingModule$g;
52
+ setHolderMap(((_venueBookingModule$g = venueBookingModule.getHolderFormMap) === null || _venueBookingModule$g === void 0 ? void 0 : _venueBookingModule$g.call(venueBookingModule)) || {});
53
+ } catch (error) {
54
+ console.warn("[venueBooking] Holder data is not ready", error);
55
+ setHolderMap({});
56
+ }
57
+ }, [venueBookingModule, isLoading]);
32
58
  const isVisible = embedded || open;
33
59
  const totalAmount = (_ref = (_ref2 = (_ref3 = (_summary$total_amount = summary === null || summary === void 0 ? void 0 : summary.total_amount) !== null && _summary$total_amount !== void 0 ? _summary$total_amount : summary === null || summary === void 0 ? void 0 : summary.expect_amount) !== null && _ref3 !== void 0 ? _ref3 : summary === null || summary === void 0 ? void 0 : summary.amount) !== null && _ref2 !== void 0 ? _ref2 : summary === null || summary === void 0 ? void 0 : summary.total) !== null && _ref !== void 0 ? _ref : "0.00";
34
60
  const cartProducts = useMemo(() => {
35
- return (items || []).map((item) => _objectSpread2(_objectSpread2({}, item), {}, {
36
- symbol: (item === null || item === void 0 ? void 0 : item.symbol) || symbol,
37
- is_hide_like: true
38
- }));
39
- }, [items, symbol]);
61
+ return (items || []).map((item) => {
62
+ var _item$_origin, _engineContext$appHel5;
63
+ const holderConfig = getVenueCartHolderConfig(item);
64
+ const holderParams = buildCartHolderParams({
65
+ item,
66
+ holderConfig,
67
+ formData: isHolderConfigEnabled(holderConfig) ? holderMap === null || holderMap === void 0 ? void 0 : holderMap[holderConfig === null || holderConfig === void 0 ? void 0 : holderConfig.resource_id] : {},
68
+ translation,
69
+ enabled: !!(item === null || item === void 0 || (_item$_origin = item._origin) === null || _item$_origin === void 0 || (_item$_origin = _item$_origin.product) === null || _item$_origin === void 0 ? void 0 : _item$_origin.bookingUuid),
70
+ utils: engineContext === null || engineContext === void 0 || (_engineContext$appHel5 = engineContext.appHelper) === null || _engineContext$appHel5 === void 0 ? void 0 : _engineContext$appHel5.utils
71
+ });
72
+ return _objectSpread2(_objectSpread2({}, item), {}, {
73
+ symbol: (item === null || item === void 0 ? void 0 : item.symbol) || symbol,
74
+ is_hide_like: true,
75
+ allowClearHolder: true
76
+ }, holderParams);
77
+ });
78
+ }, [
79
+ items,
80
+ symbol,
81
+ holderMap,
82
+ translation
83
+ ]);
40
84
  const confirmOrderText = currentStep === "checkout" ? String(locales.getText("pisell2.venue.action.pay.now") || "立即支付") : String(locales.getText("pisell2.venue.action.next") || "下一步");
41
85
  /**
42
86
  * SubTotal 金额明细列表
@@ -44,12 +88,12 @@ function Cart(props) {
44
88
  * surcharges 为服务费列表,label 支持多语言对象,按当前 locale 取值
45
89
  */
46
90
  const subTotalList = useMemo(() => {
47
- var _summary$product_amou, _summary$tax_fee, _ref4, _summary$total_amount2, _summary$deposit, _venueBookingModule$g, _tempSummary$is_price, _summary$deposit$tota, _summary$deposit2;
91
+ var _summary$product_amou, _summary$tax_fee, _ref4, _summary$total_amount2, _summary$deposit, _venueBookingModule$g2, _tempSummary$is_price, _summary$deposit$tota, _summary$deposit2;
48
92
  const subTotal = Number((_summary$product_amou = summary === null || summary === void 0 ? void 0 : summary.product_amount) !== null && _summary$product_amou !== void 0 ? _summary$product_amou : 0);
49
93
  const totalTaxFee = Number((_summary$tax_fee = summary === null || summary === void 0 ? void 0 : summary.tax_fee) !== null && _summary$tax_fee !== void 0 ? _summary$tax_fee : 0);
50
94
  const total = Number((_ref4 = (_summary$total_amount2 = summary === null || summary === void 0 ? void 0 : summary.total_amount) !== null && _summary$total_amount2 !== void 0 ? _summary$total_amount2 : summary === null || summary === void 0 ? void 0 : summary.expect_amount) !== null && _ref4 !== void 0 ? _ref4 : 0);
51
95
  const hasDeposit = !!(summary === null || summary === void 0 || (_summary$deposit = summary.deposit) === null || _summary$deposit === void 0 ? void 0 : _summary$deposit.hasDeposit);
52
- const tempOrder = venueBookingModule === null || venueBookingModule === void 0 || (_venueBookingModule$g = venueBookingModule.getTempOrder) === null || _venueBookingModule$g === void 0 ? void 0 : _venueBookingModule$g.call(venueBookingModule);
96
+ const tempOrder = venueBookingModule === null || venueBookingModule === void 0 || (_venueBookingModule$g2 = venueBookingModule.getTempOrder) === null || _venueBookingModule$g2 === void 0 ? void 0 : _venueBookingModule$g2.call(venueBookingModule);
53
97
  const tempSummary = (tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.summary) || {};
54
98
  const taxTitle = String((tempSummary === null || tempSummary === void 0 ? void 0 : tempSummary.tax_title) || (summary === null || summary === void 0 ? void 0 : summary.tax_title) || "GST/Tax");
55
99
  const rawTaxRate = Number(tempSummary === null || tempSummary === void 0 ? void 0 : tempSummary.tax_rate);
@@ -111,7 +155,57 @@ function Cart(props) {
111
155
  return false;
112
156
  };
113
157
  const handleCartChange = function() {
114
- var _ref5 = _asyncToGenerator(function* (item, type, sourceItem) {
158
+ var _ref6 = _asyncToGenerator(function* (item, type, sourceItem) {
159
+ if (type === "add_holder") {
160
+ var _engineContext$appHel6;
161
+ const holderConfig = getVenueCartHolderConfig(item);
162
+ if (!isHolderConfigEnabled(holderConfig)) return;
163
+ const formId = holderConfig === null || holderConfig === void 0 ? void 0 : holderConfig.resource_id;
164
+ if (!formId) return;
165
+ const skuRelationFormId = getSkuRelationFormId(holderMap, formId);
166
+ return openForm({
167
+ form_id: skuRelationFormId || formId,
168
+ title: locales.getText("pisell2.venue.create.form"),
169
+ utils: engineContext === null || engineContext === void 0 || (_engineContext$appHel6 = engineContext.appHelper) === null || _engineContext$appHel6 === void 0 ? void 0 : _engineContext$appHel6.utils,
170
+ callback: function() {
171
+ var _ref5 = _asyncToGenerator(function* (res) {
172
+ if ((res === null || res === void 0 ? void 0 : res.status) === "success") {
173
+ var _engineContext$appHel7, _engineContext$appHel8, _item$_origin2;
174
+ const { formRecordId, formId: holderFormId } = handleCartHolderFormSuccess({
175
+ res,
176
+ formId,
177
+ skuRelationFormId,
178
+ utils: engineContext === null || engineContext === void 0 || (_engineContext$appHel7 = engineContext.appHelper) === null || _engineContext$appHel7 === void 0 ? void 0 : _engineContext$appHel7.utils,
179
+ module: venueBookingModule
180
+ });
181
+ const customer = getCustomer(engineContext === null || engineContext === void 0 || (_engineContext$appHel8 = engineContext.appHelper) === null || _engineContext$appHel8 === void 0 ? void 0 : _engineContext$appHel8.utils);
182
+ venueBookingModule.setBookingHolder(item === null || item === void 0 || (_item$_origin2 = item._origin) === null || _item$_origin2 === void 0 || (_item$_origin2 = _item$_origin2.product) === null || _item$_origin2 === void 0 ? void 0 : _item$_origin2.bookingUuid, {
183
+ customer_id: customer === null || customer === void 0 ? void 0 : customer.id,
184
+ form_id: holderFormId,
185
+ form_record: [formRecordId]
186
+ });
187
+ yield refreshViewModel();
188
+ }
189
+ });
190
+ return function callback(_x) {
191
+ return _ref5.apply(this, arguments);
192
+ };
193
+ }()
194
+ });
195
+ }
196
+ if (type === "change_holder") {
197
+ var _engineContext$appHel9, _item$_origin3;
198
+ const customer = getCustomer(engineContext === null || engineContext === void 0 || (_engineContext$appHel9 = engineContext.appHelper) === null || _engineContext$appHel9 === void 0 ? void 0 : _engineContext$appHel9.utils);
199
+ const holder = (sourceItem === null || sourceItem === void 0 ? void 0 : sourceItem._origin) || sourceItem;
200
+ const params = !sourceItem ? null : {
201
+ customer_id: customer === null || customer === void 0 ? void 0 : customer.id,
202
+ form_id: holder === null || holder === void 0 ? void 0 : holder.form_id,
203
+ form_record: [holder === null || holder === void 0 ? void 0 : holder.form_record_id]
204
+ };
205
+ venueBookingModule.setBookingHolder(item === null || item === void 0 || (_item$_origin3 = item._origin) === null || _item$_origin3 === void 0 || (_item$_origin3 = _item$_origin3.product) === null || _item$_origin3 === void 0 ? void 0 : _item$_origin3.bookingUuid, params);
206
+ yield refreshViewModel();
207
+ return;
208
+ }
115
209
  if (type !== "delete") return;
116
210
  const targetItem = sourceItem && typeof sourceItem === "object" ? sourceItem : item;
117
211
  if (currentStep !== "select-venue" && isVenueBookingCartItem(targetItem)) {
@@ -137,8 +231,8 @@ function Cart(props) {
137
231
  });
138
232
  }
139
233
  });
140
- return function handleCartChange(_x, _x2, _x3) {
141
- return _ref5.apply(this, arguments);
234
+ return function handleCartChange(_x2, _x3, _x4) {
235
+ return _ref6.apply(this, arguments);
142
236
  };
143
237
  }();
144
238
  useEffect(() => {
@@ -154,9 +248,9 @@ function Cart(props) {
154
248
  isShowNote: false,
155
249
  isShowDelete: true,
156
250
  isShowPackageNote: false,
157
- isShowChangeHolder: false,
158
- isShowHolder: false,
159
- isShowAddHolderButton: false
251
+ isShowChangeHolder: currentStep === "checkout" ? false : !!isLogin,
252
+ isShowHolder: true,
253
+ isShowAddHolderButton: true
160
254
  },
161
255
  platform: "h5",
162
256
  emptyText: locales.getText("pisell2.venue.cart.empty"),
@@ -172,8 +266,8 @@ function Cart(props) {
172
266
  isAgreePolicy: isAgreeDepositPolicy,
173
267
  onChange: setIsAgreeDepositPolicy,
174
268
  getProtocol: (id) => {
175
- var _venueBookingModule$g2;
176
- return venueBookingModule === null || venueBookingModule === void 0 || (_venueBookingModule$g2 = venueBookingModule.getProtocol) === null || _venueBookingModule$g2 === void 0 ? void 0 : _venueBookingModule$g2.call(venueBookingModule, id);
269
+ var _venueBookingModule$g3;
270
+ return venueBookingModule === null || venueBookingModule === void 0 || (_venueBookingModule$g3 = venueBookingModule.getProtocol) === null || _venueBookingModule$g3 === void 0 ? void 0 : _venueBookingModule$g3.call(venueBookingModule, id);
177
271
  }
178
272
  }) : null), extraContent ? /* @__PURE__ */ React.createElement("div", { className: "pisell-venue-booking-cart-extra-content" }, extraContent) : null);
179
273
  if (embedded) return /* @__PURE__ */ React.createElement(React.Fragment, null, cartListContent, /* @__PURE__ */ React.createElement("div", { className: "pisell-venue-booking-cart-embedded-footer" }, cartSummaryContent, /* @__PURE__ */ React.createElement(Button$1, {
@@ -1,6 +1,7 @@
1
1
  import useEngineContext, { usePisellOS } from "../../hooks/useEngineContext.js";
2
2
  import { _objectSpread2 } from "../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js";
3
3
  import { _asyncToGenerator } from "../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js";
4
+ import { getVenueCartHolderConfig, validateRequiredCartHolders } from "../../utils/buildCartHolderParams.js";
4
5
  import { VENUE_PRODUCT_IDS, createVenueBookingViewModel, fetchResourceAvailability, getAllSelectedSlots, getDateRangeSummary, getOtherParams, getTimeSlotGrid, loadVenueProducts, safeRunModuleAction, toggleSlotAction, useVenueBookingLogin, useVenueBookingModule } from "./hooks.js";
5
6
  import { formatDateKey, getWeekDays } from "./utils.js";
6
7
  import dayjs from "dayjs";
@@ -501,13 +502,23 @@ function VenueBookingProvider({ entryContext, children }) {
501
502
  } });
502
503
  return;
503
504
  }
505
+ if (currentStep === "addons") {
506
+ const { hasError } = validateRequiredCartHolders({
507
+ items: viewModel.cartItems,
508
+ getHolderConfig: getVenueCartHolderConfig
509
+ });
510
+ if (hasError) return;
511
+ }
504
512
  goToStep("checkout");
505
513
  }, [
506
514
  isLogin,
507
515
  openLoginModal,
508
516
  handleLoginSuccess,
509
517
  goToStep,
510
- venueBookingModule
518
+ venueBookingModule,
519
+ currentStep,
520
+ viewModel.cartItems,
521
+ getVenueCartHolderConfig
511
522
  ]);
512
523
  /** 主操作按钮行为(含登录门禁,自适应 2/3 步流程) */
513
524
  const handlePrimaryAction = useCallback(() => {
@@ -543,9 +554,9 @@ function VenueBookingProvider({ entryContext, children }) {
543
554
  isAgreeDepositPolicy,
544
555
  viewModel.summary,
545
556
  stepList,
546
- proceedToCheckout,
547
557
  goToStep,
548
- handleSubmitOrder
558
+ handleSubmitOrder,
559
+ proceedToCheckout
549
560
  ]);
550
561
  useEffect(() => {
551
562
  var _pubsub$subscribe;
@@ -126,7 +126,8 @@ var locales_default = {
126
126
  "pisell2.appointment.policy": "You have read and agreed to this policy",
127
127
  "pisell2.appointment.policy.confirm": "Confirm",
128
128
  "pisell2.appointment.booking.empty.data": "No data",
129
- "pisell2.product-select.search": "Search"
129
+ "pisell2.product-select.search": "Search",
130
+ "pisell2.venue.create.form": "Create form"
130
131
  },
131
132
  "zh-CN": {
132
133
  "pisell2.venue.step.select": "选择场地",
@@ -250,7 +251,8 @@ var locales_default = {
250
251
  "pisell2.appointment.policy": "您已仔细阅读并同意此协议",
251
252
  "pisell2.appointment.policy.confirm": "确定",
252
253
  "pisell2.appointment.booking.empty.data": "暂无数据",
253
- "pisell2.product-select.search": "搜索"
254
+ "pisell2.product-select.search": "搜索",
255
+ "pisell2.venue.create.form": "创建表单"
254
256
  },
255
257
  "zh-HK": {
256
258
  "pisell2.venue.step.select": "選擇場地",
@@ -374,7 +376,8 @@ var locales_default = {
374
376
  "pisell2.appointment.policy": "您已仔細閱讀並同意此協議",
375
377
  "pisell2.appointment.policy.confirm": "確定",
376
378
  "pisell2.appointment.booking.empty.data": "暫無數據",
377
- "pisell2.product-select.search": "搜索"
379
+ "pisell2.product-select.search": "搜索",
380
+ "pisell2.venue.create.form": "创建表单"
378
381
  },
379
382
  ja: {
380
383
  "pisell2.venue.step.select": "コートを選択",
@@ -498,7 +501,8 @@ var locales_default = {
498
501
  "pisell2.appointment.policy": "このポリシーを読み、同意しました",
499
502
  "pisell2.appointment.policy.confirm": "確認",
500
503
  "pisell2.appointment.booking.empty.data": "データなし",
501
- "pisell2.product-select.search": "検索"
504
+ "pisell2.product-select.search": "検索",
505
+ "pisell2.venue.create.form": "フォームを作成"
502
506
  },
503
507
  pt: {
504
508
  "pisell2.venue.step.select": "Escolher quadra",
@@ -622,7 +626,8 @@ var locales_default = {
622
626
  "pisell2.appointment.policy": "Você leu e concordou com esta política",
623
627
  "pisell2.appointment.policy.confirm": "Confirmar",
624
628
  "pisell2.appointment.booking.empty.data": "Sem dados",
625
- "pisell2.product-select.search": "Pesquisar"
629
+ "pisell2.product-select.search": "Pesquisar",
630
+ "pisell2.venue.create.form": "Criar formulário"
626
631
  }
627
632
  };
628
633
  //#endregion
package/es/index.js CHANGED
@@ -90,6 +90,7 @@ import { useSalesSdkProducts } from "./plus/salesSdk/hooks/useSalesSdkProducts.j
90
90
  import SalesSdkDemo from "./plus/salesSdk/demo/index.js";
91
91
  import { useSalesSdkDish } from "./plus/salesSdk/hooks/useSalesSdkDish.js";
92
92
  import { useSyncOsModule } from "./plus/salesSdk/hooks/useSyncOsModule.js";
93
+ import "./plus/salesSdk/index.js";
93
94
  import BigSaleRightActionPanel from "./components/BigSaleRightActionPanel/index.js";
94
95
  import ResponsiveWrapper from "./components/list/ResponsiveWrapper.js";
95
96
  import { resolveBigSaleSelectionFlowConfig } from "./components/bigSale/selectionFlowConfig.js";
@@ -144,6 +145,7 @@ import PisellVenueControlPage from "./plus/pisellReservation/PisellVenueControlP
144
145
  import PisellVenueWallPage from "./plus/pisellReservation/PisellVenueWallPage.js";
145
146
  import PisellReservationTablePage from "./plus/pisellReservation/PisellReservationTablePage.js";
146
147
  import SelectFloorMapResourceDialog from "./plus/pisellReservation/components/SelectFloorMapResourceDialog.js";
148
+ import "./plus/pisellReservation/index.js";
147
149
  import { PisellTopology, PisellTopologyCore } from "./plus/pisellTopology/PisellTopology.js";
148
150
  import cupProject_default from "./components/ecocup/cupProject/index.js";
149
151
  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 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: {}
@@ -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 "./utils/customerAuthGate.js";
10
+ import "./context/SalesSdkBusinessAvailabilityContext.js";
11
+ import "./utils/appendPromotionTags.js";
12
+ import "./utils/productSkuOptions.js";
13
+ import "./context/SalesSdkUIHostsContext.js";
14
+ import "./utils/runAddProductFlow.js";
15
+ import "./components/showAddToCartToast.js";
16
+ import "./utils/resolveAddProductDebounceKey.js";
17
+ import "./utils/identity.js";
18
+ import "./utils/resolveInCartQuantityForAddToast.js";
19
+ import "./utils/addProductWithFlowDebounced.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 {};
@@ -407,4 +407,4 @@ function createAddProductWithFlowDebounced(deps) {
407
407
  };
408
408
  }
409
409
  //#endregion
410
- export { createAddProductWithFlowDebounced };
410
+ 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 };
@@ -102,4 +102,4 @@ function buildHolderListRequestKey(params) {
102
102
  });
103
103
  }
104
104
  //#endregion
105
- export { buildHolderListRequestKey, buildHolderListRequestParams, enrichCartBookingHolderDisplay, enrichCartProductHolderDisplay, resolveHolderDisplayConfig };
105
+ export { buildHolderListRequestKey, buildHolderListRequestParams, enrichCartBookingHolderDisplay, enrichCartProductHolderDisplay, 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 timezonePlugin from "dayjs/plugin/timezone";
10
- import utcPlugin from "dayjs/plugin/utc";
9
+ import timezone from "dayjs/plugin/timezone";
10
+ import utc from "dayjs/plugin/utc";
11
11
  import "./index.less";
12
12
  //#region src/plus/walletPassGallery/components/timelineSection/index.tsx
13
- dayjs.extend(timezonePlugin);
14
- dayjs.extend(utcPlugin);
13
+ dayjs.extend(timezone);
14
+ dayjs.extend(utc);
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 };