@pisell/private-materials 6.12.125 → 6.12.126

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 (65) 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/bigSale/components/BookingFloatingPanel/useBookingPanelController.js +1 -0
  10. package/es/components/bigSale/components/TimeBar/index.js +1 -0
  11. package/es/components/bigSale/dialog.js +1 -0
  12. package/es/components/bigSale/hooks/useBigSaleContext.js +1 -0
  13. package/es/components/bigSale/hooks/useSelectFloorMapResourceForBigSale.js +1 -0
  14. package/es/components/bigSale/index.js +1 -0
  15. package/es/components/bigSale/templates/Kiosk/index.js +1 -0
  16. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.js +2 -2
  17. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.js +5 -3
  18. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/SelectDate/index.js +2 -1
  19. package/es/components/eventBooking/components/bookingAvailabilityCalendar/index.d.ts +5 -0
  20. package/es/components/eventBooking/components/bookingAvailabilityCalendar/index.js +2 -1
  21. package/es/components/sharedSecondaryBigSale/SharedSecondaryBigSaleReceiver.js +1 -0
  22. package/es/index.js +2 -0
  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/productSelect/ProductCard/SkuCard/locales.js +10 -5
  28. package/es/plus/productSelect/ProductCard/index.js +25 -5
  29. package/es/plus/productSelect/ProductCard/utils.js +11 -1
  30. package/es/plus/saleDetail/Base.js +1 -0
  31. package/es/plus/saleDetail/components/Client/hooks/useClientSelectorProps.js +1 -0
  32. package/es/plus/saleDetail/components/DetailActions/index.js +1 -0
  33. package/es/plus/saleDetail/components/SummaryFinancialSections/index.js +1 -0
  34. package/es/plus/saleDetail/index.js +1 -0
  35. package/es/plus/saleDetail/tmpl/B/components/Dish/index.js +1 -0
  36. package/es/plus/saleDetail/tmpl/B/index.js +1 -0
  37. package/es/plus/salesSdk/index.js +48 -0
  38. package/es/plus/salesSdk/utils/addProductWithFlowDebounced.js +1 -1
  39. package/es/plus/salesSdk/utils/bookingDate.js +1 -1
  40. package/es/plus/salesSdk/utils/enrichCartLineHolderDisplay.js +1 -1
  41. package/es/pro/Login2.0/AuthModal.d.ts +1 -1
  42. package/es/pro/Login2.0/index.d.ts +2 -1
  43. package/es/pro/Login2.0/shared/types.d.ts +1 -1
  44. package/es/pro/skuDetailModal/flow/index.less +27 -0
  45. package/es/pro/skuDetailModal/flow/modules/date.js +1 -0
  46. package/es/pro/skuDetailModal/flow/modules/resource.js +1 -2
  47. package/es/pro/skuDetailModal/flow/modules/resource.less +37 -0
  48. package/es/pro/skuDetailModal/index.js +45 -3
  49. package/es/pro/skuDetailModal/index.less +12 -7
  50. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.js +2 -2
  51. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.js +5 -3
  52. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/SelectDate/index.js +2 -1
  53. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/index.d.ts +5 -0
  54. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/index.js +2 -1
  55. package/lib/plus/productSelect/ProductCard/SkuCard/locales.js +10 -5
  56. package/lib/plus/productSelect/ProductCard/index.js +24 -4
  57. package/lib/plus/productSelect/ProductCard/utils.js +11 -0
  58. package/lib/pro/skuDetailModal/flow/index.less +27 -0
  59. package/lib/pro/skuDetailModal/flow/modules/date.js +1 -0
  60. package/lib/pro/skuDetailModal/flow/modules/resource.js +1 -2
  61. package/lib/pro/skuDetailModal/flow/modules/resource.less +37 -0
  62. package/lib/pro/skuDetailModal/index.js +45 -3
  63. package/lib/pro/skuDetailModal/index.less +12 -7
  64. package/package.json +3 -3
  65. 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 BigSale from "./index.js";
10
11
  import dayjs from "dayjs";
@@ -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 { seedDineInReservationToCart } from "../../../plus/pisellReservation/utils/seedDineInReservationToCart.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 dayjs from "dayjs";
13
14
  import React, { useEffect, useMemo, useRef } from "react";
@@ -5,6 +5,7 @@ import { useSalesSdkHostBridges } from "../../../../plus/salesSdk/context/SalesS
5
5
  import { resolvePaymentResultToastV2ViewModel } from "../../../checkout/components/PaymentResultToastV2/resolve.js";
6
6
  import PaymentResultToastV2_default from "../../../checkout/components/PaymentResultToastV2/index.js";
7
7
  import { useSalesSdk } from "../../../../plus/salesSdk/hooks/useSalesSdk.js";
8
+ import "../../../../plus/salesSdk/index.js";
8
9
  import { usePickSaleDetailContext } from "../../hooks/usePickSaleDetailContext.js";
9
10
  import { resolveBigSaleAutoProductListPreferences } from "../../utils/productListPreferences.js";
10
11
  import { resolveBigSaleProductDisplayConfig } from "../../hooks/useBigSaleProductListConfig.js";
@@ -8,7 +8,7 @@ import { Iconfont } from "@pisell/materials";
8
8
  import "./index.less";
9
9
  //#region src/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.tsx
10
10
  const WeekItem = (props) => {
11
- const { weekList, currentDate, setCurrentDate, isActive, productId, dateLimitData, getLimitData, cutTime, showStatusBar = true, ignoreAvailabilityDisabled = false, minSelectableDate, enableRangeSelection = false, selectedRangeStartDate, selectedRangeEndDate, showMonthHeader = false, disableCallToBook = false, onPrevWeek, onNextWeek, showNavigation = true } = props;
11
+ const { weekList, currentDate, setCurrentDate, isActive, productId, dateLimitData, getLimitData, cutTime, showStatusBar = true, ignoreAvailabilityDisabled = false, minSelectableDate, minViewDate, enableRangeSelection = false, selectedRangeStartDate, selectedRangeEndDate, showMonthHeader = false, disableCallToBook = false, onPrevWeek, onNextWeek, showNavigation = true } = props;
12
12
  const [monthIndex, setMonthIndex] = useState([]);
13
13
  useEffect(() => {
14
14
  if (isActive && productId) {}
@@ -20,7 +20,7 @@ const WeekItem = (props) => {
20
20
  useEffect(() => {
21
21
  setMonthIndex(getMonthIndex(weekList));
22
22
  }, [weekList]);
23
- const prevWeekDisabled = minSelectableDate && (weekList === null || weekList === void 0 ? void 0 : weekList[0]) && dayjs(weekList[0]).subtract(1, "day").isBefore(dayjs(minSelectableDate), "day");
23
+ const prevWeekDisabled = (minViewDate || minSelectableDate) && (weekList === null || weekList === void 0 ? void 0 : weekList[0]) && dayjs(weekList[0]).subtract(1, "day").isBefore(dayjs(minViewDate || minSelectableDate), "day");
24
24
  return /* @__PURE__ */ React.createElement("div", { className: "week-item-wrap" }, /* @__PURE__ */ React.createElement("div", { className: "week-item-content" }, showNavigation ? /* @__PURE__ */ React.createElement(Iconfont, {
25
25
  type: "pisell2-arrow-left",
26
26
  className: "week-item__icon",
@@ -9,7 +9,7 @@ import classNames from "classnames";
9
9
  import "./index.less";
10
10
  //#region src/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.tsx
11
11
  const CalenDateWeek = (props) => {
12
- const { currentDate, dateChange, productId, timeList, dateLimitData, getLimitData, cutTime, showStatusBar = true, showDisabledStatus = true, ignoreAvailabilityDisabled = false, minSelectableDate, enableRangeSelection = false, selectedRangeStartDate, selectedRangeEndDate, showMonthHeader = false, enableSwipeNavigation = false, disableCallToBook = false } = props;
12
+ const { currentDate, dateChange, productId, timeList, dateLimitData, getLimitData, cutTime, showStatusBar = true, showDisabledStatus = true, ignoreAvailabilityDisabled = false, minSelectableDate, minViewDate, enableRangeSelection = false, selectedRangeStartDate, selectedRangeEndDate, showMonthHeader = false, enableSwipeNavigation = false, disableCallToBook = false } = props;
13
13
  const [weekList, setWeekList] = useState([]);
14
14
  const [weekAnchorDate, setWeekAnchorDate] = useState(currentDate);
15
15
  const [pendingWeekList, setPendingWeekList] = useState(null);
@@ -84,7 +84,8 @@ const CalenDateWeek = (props) => {
84
84
  if (weekListRef === null || weekListRef === void 0 ? void 0 : weekListRef.current) weekListRef.current.scrollLeft = 0;
85
85
  }, [currentDate, weekList]);
86
86
  const resolveWeekNavigation = (direction) => {
87
- const minDate = minSelectableDate ? dayjs(minSelectableDate).startOf("day") : null;
87
+ const minimumViewDate = minViewDate || minSelectableDate;
88
+ const minDate = minimumViewDate ? dayjs(minimumViewDate).startOf("day") : null;
88
89
  const nextDate = dayjs(weekAnchorDate).add(direction * 7, "day");
89
90
  const nextAnchorDate = direction < 0 && minDate && nextDate.isBefore(minDate, "day") ? minDate.format("YYYY-MM-DD") : nextDate.format("YYYY-MM-DD");
90
91
  const nextWeekList = initCurrentWeekData(nextAnchorDate);
@@ -181,6 +182,7 @@ const CalenDateWeek = (props) => {
181
182
  showStatusBar,
182
183
  ignoreAvailabilityDisabled,
183
184
  minSelectableDate,
185
+ minViewDate,
184
186
  enableRangeSelection,
185
187
  selectedRangeStartDate,
186
188
  selectedRangeEndDate,
@@ -190,7 +192,7 @@ const CalenDateWeek = (props) => {
190
192
  onNextWeek: () => handleWeekNavigate(1),
191
193
  showNavigation: !enableSwipeNavigation
192
194
  });
193
- const prevWeekDisabled = Boolean(minSelectableDate && (weekList === null || weekList === void 0 ? void 0 : weekList[0]) && dayjs(weekList[0]).subtract(1, "day").isBefore(dayjs(minSelectableDate), "day"));
195
+ const prevWeekDisabled = Boolean((minViewDate || minSelectableDate) && (weekList === null || weekList === void 0 ? void 0 : weekList[0]) && dayjs(weekList[0]).subtract(1, "day").isBefore(dayjs(minViewDate || minSelectableDate), "day"));
194
196
  return /* @__PURE__ */ React.createElement("div", { className: "calendar-week-wrap" }, /* @__PURE__ */ React.createElement("div", { className: "calendar-week-navigation" }, enableSwipeNavigation ? /* @__PURE__ */ React.createElement(Iconfont, {
195
197
  type: "pisell2-arrow-left",
196
198
  className: "calendar-week-navigation__icon",
@@ -11,7 +11,7 @@ import { Iconfont } from "@pisell/materials";
11
11
  import classNames from "classnames";
12
12
  import "./index.less";
13
13
  //#region src/components/eventBooking/components/bookingAvailabilityCalendar/components/SelectDate/index.tsx
14
- const SelectDate = ({ currentDate, detail, currentDateChange, setSurplusDisabledChange, cutTime, setCutTime, showCalendarPopup, showStatusLegend = true, showDateStatusBar = true, title = "Select a date", showHeader = true, showDisabledStatus = true, ignoreAvailabilityDisabled = false, minSelectableDate, enableRangeSelection = false, selectedRangeStartDate, selectedRangeEndDate, showMonthHeader = false, enableWeekSwipe = false, availabilityDates }, ref) => {
14
+ const SelectDate = ({ currentDate, detail, currentDateChange, setSurplusDisabledChange, cutTime, setCutTime, showCalendarPopup, showStatusLegend = true, showDateStatusBar = true, title = "Select a date", showHeader = true, showDisabledStatus = true, ignoreAvailabilityDisabled = false, minSelectableDate, minViewDate, enableRangeSelection = false, selectedRangeStartDate, selectedRangeEndDate, showMonthHeader = false, enableWeekSwipe = false, availabilityDates }, ref) => {
15
15
  const [dateLimitData, setDateLimitData] = useState(mock.availability_calendar.limitData);
16
16
  /**
17
17
  * UBS 日期结果只负责状态展示,不伪造旧事件预约的 times/库存结构。
@@ -67,6 +67,7 @@ const SelectDate = ({ currentDate, detail, currentDateChange, setSurplusDisabled
67
67
  showDisabledStatus,
68
68
  ignoreAvailabilityDisabled,
69
69
  minSelectableDate,
70
+ minViewDate,
70
71
  enableRangeSelection,
71
72
  selectedRangeStartDate,
72
73
  selectedRangeEndDate,
@@ -32,6 +32,11 @@ interface BookingAvailabilityCalendarProps {
32
32
  showDisabledStatus?: boolean;
33
33
  ignoreAvailabilityDisabled?: boolean;
34
34
  minSelectableDate?: string;
35
+ /**
36
+ * 周历允许查看的最早日期;未传时继续沿用 minSelectableDate。
37
+ * 该值只控制翻页边界,不会让不可选日期变成可选。
38
+ */
39
+ minViewDate?: string;
35
40
  enableRangeSelection?: boolean;
36
41
  selectedRangeStartDate?: string;
37
42
  selectedRangeEndDate?: string;
@@ -9,7 +9,7 @@ import "./index.less";
9
9
  const BookingAvailabilityCalendar = (props) => {
10
10
  var _mock$availability_ca, _mock$availability_ca2, _mock$availability_ca3;
11
11
  locales.init(locales_default, locales.locale || "en");
12
- const { showCalendarPopup, onDateChange, detail = (_mock$availability_ca = mock.availability_calendar) === null || _mock$availability_ca === void 0 ? void 0 : _mock$availability_ca.detail, currentDate = (_mock$availability_ca2 = mock.availability_calendar) === null || _mock$availability_ca2 === void 0 ? void 0 : _mock$availability_ca2.currentDate, cutTime = (_mock$availability_ca3 = mock.availability_calendar) === null || _mock$availability_ca3 === void 0 ? void 0 : _mock$availability_ca3.cutTime, onCurrentDateChange, onCutTimeChange, onSurplusDisabledChange, showStatusLegend = true, showDateStatusBar = true, theme = "light", className, title, showHeader, showDisabledStatus, ignoreAvailabilityDisabled, minSelectableDate, enableRangeSelection, selectedRangeStartDate, selectedRangeEndDate, showMonthHeader, enableWeekSwipe, availabilityDates } = props;
12
+ const { showCalendarPopup, onDateChange, detail = (_mock$availability_ca = mock.availability_calendar) === null || _mock$availability_ca === void 0 ? void 0 : _mock$availability_ca.detail, currentDate = (_mock$availability_ca2 = mock.availability_calendar) === null || _mock$availability_ca2 === void 0 ? void 0 : _mock$availability_ca2.currentDate, cutTime = (_mock$availability_ca3 = mock.availability_calendar) === null || _mock$availability_ca3 === void 0 ? void 0 : _mock$availability_ca3.cutTime, onCurrentDateChange, onCutTimeChange, onSurplusDisabledChange, showStatusLegend = true, showDateStatusBar = true, theme = "light", className, title, showHeader, showDisabledStatus, ignoreAvailabilityDisabled, minSelectableDate, minViewDate, enableRangeSelection, selectedRangeStartDate, selectedRangeEndDate, showMonthHeader, enableWeekSwipe, availabilityDates } = props;
13
13
  console.log(detail, currentDate, cutTime, "detail, currentDate, cutTime");
14
14
  return /* @__PURE__ */ React.createElement("div", { className: classNames("event-booking-availability-calendar", `event-booking-availability-calendar--${theme}`, className) }, /* @__PURE__ */ React.createElement(SelectDate_default, {
15
15
  showCalendarPopup,
@@ -29,6 +29,7 @@ const BookingAvailabilityCalendar = (props) => {
29
29
  showDisabledStatus,
30
30
  ignoreAvailabilityDisabled,
31
31
  minSelectableDate,
32
+ minViewDate,
32
33
  enableRangeSelection,
33
34
  selectedRangeStartDate,
34
35
  selectedRangeEndDate,
@@ -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
@@ -82,6 +82,7 @@ import { useSalesSdkProducts } from "./plus/salesSdk/hooks/useSalesSdkProducts.j
82
82
  import SalesSdkDemo from "./plus/salesSdk/demo/index.js";
83
83
  import { useSalesSdkDish } from "./plus/salesSdk/hooks/useSalesSdkDish.js";
84
84
  import { useSyncOsModule } from "./plus/salesSdk/hooks/useSyncOsModule.js";
85
+ import "./plus/salesSdk/index.js";
85
86
  import BigSaleRightActionPanel from "./components/BigSaleRightActionPanel/index.js";
86
87
  import BigSale from "./components/bigSale/index.js";
87
88
  import Deposit from "./components/appointmentBooking/deposit/index.js";
@@ -135,6 +136,7 @@ import PisellVenueControlPage from "./plus/pisellReservation/PisellVenueControlP
135
136
  import PisellVenueWallPage from "./plus/pisellReservation/PisellVenueWallPage.js";
136
137
  import PisellReservationTablePage from "./plus/pisellReservation/PisellReservationTablePage.js";
137
138
  import SelectFloorMapResourceDialog from "./plus/pisellReservation/components/SelectFloorMapResourceDialog.js";
139
+ import "./plus/pisellReservation/index.js";
138
140
  import { PisellTopology, PisellTopologyCore } from "./plus/pisellTopology/PisellTopology.js";
139
141
  import cupProject_default from "./components/ecocup/cupProject/index.js";
140
142
  import CupList from "./components/ecocup/cupList/index.js";
@@ -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 {};
@@ -11,7 +11,8 @@ var locales_default = {
11
11
  "pisell2.sku-card.time.remaining": "Time Remaining",
12
12
  "pisell2.sku-card.capacity": "Capacity",
13
13
  "pisell2.sku-card.free": "Free",
14
- "pisell2.sku-card.max": "Max"
14
+ "pisell2.sku-card.max": "Max",
15
+ "pisell2.sku-card.sold-out": "Sold Out"
15
16
  },
16
17
  "zh-CN": {
17
18
  "pisell2.sku-card.search": "搜索",
@@ -24,7 +25,8 @@ var locales_default = {
24
25
  "pisell2.sku-card.time.remaining": "剩余",
25
26
  "pisell2.sku-card.capacity": "容量",
26
27
  "pisell2.sku-card.free": "免费",
27
- "pisell2.sku-card.max": "最大"
28
+ "pisell2.sku-card.max": "最大",
29
+ "pisell2.sku-card.sold-out": "已售罄"
28
30
  },
29
31
  "zh-HK": {
30
32
  "pisell2.sku-card.search": "搜索",
@@ -37,7 +39,8 @@ var locales_default = {
37
39
  "pisell2.sku-card.time.remaining": "剩余",
38
40
  "pisell2.sku-card.capacity": "容量",
39
41
  "pisell2.sku-card.free": "免費",
40
- "pisell2.sku-card.max": "最大"
42
+ "pisell2.sku-card.max": "最大",
43
+ "pisell2.sku-card.sold-out": "已售罄"
41
44
  },
42
45
  ja: {
43
46
  "pisell2.sku-card.search": "検索",
@@ -50,7 +53,8 @@ var locales_default = {
50
53
  "pisell2.sku-card.time.remaining": "残り時間",
51
54
  "pisell2.sku-card.capacity": "容量",
52
55
  "pisell2.sku-card.free": "無料",
53
- "pisell2.sku-card.max": "最大"
56
+ "pisell2.sku-card.max": "最大",
57
+ "pisell2.sku-card.sold-out": "売り切れ"
54
58
  },
55
59
  pt: {
56
60
  "pisell2.sku-card.search": "Pesquisar",
@@ -63,7 +67,8 @@ var locales_default = {
63
67
  "pisell2.sku-card.time.remaining": "Tempo Restante",
64
68
  "pisell2.sku-card.capacity": "Capacidade",
65
69
  "pisell2.sku-card.free": "Grátis",
66
- "pisell2.sku-card.max": "Máx"
70
+ "pisell2.sku-card.max": "Máx",
71
+ "pisell2.sku-card.sold-out": "Esgotado"
67
72
  }
68
73
  };
69
74
  //#endregion
@@ -1,10 +1,13 @@
1
1
  import { _objectSpread2 } from "../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js";
2
+ import useEngineContext from "../../../hooks/useEngineContext.js";
2
3
  import { IntersectionTrigger } from "../components/IntersectionObserver.js";
3
4
  import index from "../components/pisellPriceText/index.js";
4
5
  import "./ProductCardSkeleton.js";
5
6
  import { getStandardWeightUnitPrice } from "./weighingPrice.js";
7
+ import locales_default from "./SkuCard/locales.js";
8
+ import useInitLocalesOnce from "../../../hooks/useInitLocalesOnce.js";
6
9
  import SkuCard from "./SkuCard/index.js";
7
- import { formatProductPrice, getSkuCardConfig } from "./utils.js";
10
+ import { formatProductPrice, getSkuCardConfig, shouldShowInventorySoldOut } from "./utils.js";
8
11
  import useTranslationOriginal from "../../../hooks/useTranslationOriginal.js";
9
12
  import { PREFIX } from "../index.js";
10
13
  import React, { memo, useMemo } from "react";
@@ -39,10 +42,15 @@ const defaultConfig = {
39
42
  }
40
43
  };
41
44
  const ProductCard = memo(({ item, index: index$1, context, onSelect, onSelectCover, onSelectInfo, isSelected, className, decorateConfig = {}, scenario = "default", selectionTrigger = "pointerUp", customSkuCardAllConfig }) => {
45
+ var _engineContext$appHel, _engineContext$appHel2;
46
+ const engineContext = useEngineContext();
47
+ useInitLocalesOnce(locales_default);
42
48
  const finalConfig = _objectSpread2(_objectSpread2({}, defaultConfig), decorateConfig);
43
49
  const { imgHeight, imgWidth, isOriginPrice, isPrice, isProductCover, isStock, isSubtitle, isTitle, radius, showZeroPrice, gap, rightStyle } = finalConfig;
44
50
  const { __typename } = item;
45
51
  const translationOriginal = useTranslationOriginal();
52
+ const isSoldOut = shouldShowInventorySoldOut(item, engineContext === null || engineContext === void 0 || (_engineContext$appHel = engineContext.appHelper) === null || _engineContext$appHel === void 0 || (_engineContext$appHel = _engineContext$appHel.utils) === null || _engineContext$appHel === void 0 || (_engineContext$appHel2 = _engineContext$appHel.getData) === null || _engineContext$appHel2 === void 0 ? void 0 : _engineContext$appHel2.call(_engineContext$appHel, "channel"));
53
+ const soldOutText = locales.getText("pisell2.sku-card.sold-out") || "Sold Out";
46
54
  if (__typename === "category") return /* @__PURE__ */ React.createElement("div", {
47
55
  className: classNames(`${PREFIX}__product-category`, className),
48
56
  "data-index": index$1,
@@ -133,11 +141,21 @@ const ProductCard = memo(({ item, index: index$1, context, onSelect, onSelectCov
133
141
  */
134
142
  const skuCardRender = useMemo(() => {
135
143
  const skuCardAllConfig = customSkuCardAllConfig || getSkuCardConfig(finalConfig);
144
+ const skuStatusOverlayConfig = isSoldOut ? _objectSpread2(_objectSpread2({}, skuCardAllConfig.skuStatusOverlayConfig), {}, {
145
+ isOpen: 1,
146
+ text: soldOutText,
147
+ fontSize: 28,
148
+ fontWeight: 700,
149
+ color: "#000000",
150
+ background: "rgba(255, 255, 255, 0.72)",
151
+ slot: null
152
+ }) : skuCardAllConfig.skuStatusOverlayConfig;
136
153
  return /* @__PURE__ */ React.createElement(SkuCard, _objectSpread2(_objectSpread2({ key: item.id }, skuCardAllConfig), {}, {
154
+ skuStatusOverlayConfig,
137
155
  dataSource: skuCardDataSource,
138
- onCardClick: () => onSelect === null || onSelect === void 0 ? void 0 : onSelect(item),
139
- onSelectCover: () => onSelectCover === null || onSelectCover === void 0 ? void 0 : onSelectCover(item),
140
- onSelectInfo: () => onSelectInfo === null || onSelectInfo === void 0 ? void 0 : onSelectInfo(item),
156
+ onCardClick: isSoldOut ? void 0 : () => onSelect === null || onSelect === void 0 ? void 0 : onSelect(item),
157
+ onSelectCover: isSoldOut ? void 0 : () => onSelectCover === null || onSelectCover === void 0 ? void 0 : onSelectCover(item),
158
+ onSelectInfo: isSoldOut ? void 0 : () => onSelectInfo === null || onSelectInfo === void 0 ? void 0 : onSelectInfo(item),
141
159
  selectionTrigger,
142
160
  isSelected,
143
161
  "data-index": index$1,
@@ -162,7 +180,9 @@ const ProductCard = memo(({ item, index: index$1, context, onSelect, onSelectCov
162
180
  rightStyle,
163
181
  className,
164
182
  customSkuCardAllConfig,
165
- selectionTrigger
183
+ selectionTrigger,
184
+ isSoldOut,
185
+ soldOutText
166
186
  ]);
167
187
  /**
168
188
  * @description: 根据 scenario 决定渲染内容
@@ -14,6 +14,16 @@ const formatProductPrice = (item) => {
14
14
  };
15
15
  };
16
16
  /**
17
+ * 追踪库存且禁止超售时,库存小于等于 0 视为售罄。
18
+ */
19
+ const isInventorySoldOut = (item) => Number(item === null || item === void 0 ? void 0 : item.is_track) === 1 && Number(item === null || item === void 0 ? void 0 : item.over_sold) === 0 && Number(item === null || item === void 0 ? void 0 : item.stock_quantity) <= 0;
20
+ /**
21
+ * POS 保持原有商品选择行为;其它渠道才展示库存售罄状态。
22
+ */
23
+ const shouldShowInventorySoldOut = (item, channel) => {
24
+ return (String(channel || "pos").trim().toLowerCase() || "pos") !== "pos" && isInventorySoldOut(item);
25
+ };
26
+ /**
17
27
  * @description: 获取sku卡配置
18
28
  * @param {ProductCardConfig} finalConfig
19
29
  * @return {*}
@@ -52,4 +62,4 @@ const getSkuCardConfig = (finalConfig) => {
52
62
  };
53
63
  };
54
64
  //#endregion
55
- export { formatProductPrice, getSkuCardConfig };
65
+ export { formatProductPrice, getSkuCardConfig, shouldShowInventorySoldOut };
@@ -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
@@ -9,6 +9,7 @@ import { useSalesSdk } from "../../../salesSdk/hooks/useSalesSdk.js";
9
9
  import { useSalesSdkCart } from "../../../salesSdk/hooks/useSalesSdkCart.js";
10
10
  import { useSalesSdkGlobalScanActivity } from "../../../salesSdk/context/SalesSdkGlobalScanActivityContext.js";
11
11
  import { useSalesSdkSummary } from "../../../salesSdk/hooks/useSalesSdkSummary.js";
12
+ import "../../../salesSdk/index.js";
12
13
  import { getNumericAmount, getSalesHostModule, resolveSaleDetailOrderIdFromSales, resolveSaleDetailOrderIdFromSalesResult, shouldCloseDialogAfterCheckout, updateLocalOrder } from "./utils.js";
13
14
  import { getRemotePrintActions, getWristbandList } from "../../serve.js";
14
15
  import { deriveSaleOrderSubmitState } from "../../actions/state.js";
@@ -3,6 +3,7 @@ import { resolvePaymentMethodName, usePaymentMethodNameMap } from "../../../pise
3
3
  import { useSalesSdk } from "../../../salesSdk/hooks/useSalesSdk.js";
4
4
  import { useSalesSdkCart } from "../../../salesSdk/hooks/useSalesSdkCart.js";
5
5
  import { useSalesSdkSummary } from "../../../salesSdk/hooks/useSalesSdkSummary.js";
6
+ import "../../../salesSdk/index.js";
6
7
  import React, { memo, useMemo } from "react";
7
8
  import { formatAmount, locales } from "@pisell/utils";
8
9
  import Decimal from "decimal.js";
@@ -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,48 @@
1
+ import "./hosts/createInstanceHostBridge.js";
2
+ import "./holderConfirm/createHolderConfirmBridge.js";
3
+ import "./giftSelect/createGiftSelectBridge.js";
4
+ import "./context/SalesSdkHostBridgesContext.js";
5
+ import "./utils/appendPromotionTags.js";
6
+ import "./context/SalesSdkUIHostsContext.js";
7
+ import "./utils/runAddProductFlow.js";
8
+ import "./components/showAddToCartToast.js";
9
+ import "./utils/resolveAddProductDebounceKey.js";
10
+ import "./utils/productSkuOptions.js";
11
+ import "./utils/identity.js";
12
+ import "./utils/resolveInCartQuantityForAddToast.js";
13
+ import "./utils/addProductWithFlowDebounced.js";
14
+ import "./utils/bookingDate.js";
15
+ import "./utils/removeOrderProducts.js";
16
+ import "./selectors.js";
17
+ import "./utils/enrich.js";
18
+ import "./giftSelect/createOpenGiftSelectHost.js";
19
+ import "./utils/formatHolderOptions.js";
20
+ import "./utils/enrichCartLineHolderDisplay.js";
21
+ import "./context/SalesSdkHolderContext.js";
22
+ import "./utils/holderSubmitValidation.js";
23
+ import "./utils/ensureHoldersBeforeSubmit.js";
24
+ import "./hooks/useSalesSdk.js";
25
+ import "./bookingEditService/BookingEditServiceDrawer.js";
26
+ import "./hosts/BookingEditHostRenderer.js";
27
+ import "./hooks/useSalesSdkCart.js";
28
+ import "./hooks/useSalesSdkCustomer.js";
29
+ import "./normalProductDetail/NormalProductDetailHostRenderer.js";
30
+ import "./hosts/createOpenBookingEditHost.js";
31
+ import "./hosts/createOpenMultiDaySelectHost.js";
32
+ import "./hosts/createOpenHolderSelectHost.js";
33
+ import "./demo/hosts/legacyOpenProductDetail.js";
34
+ import "./hosts/createCompositeOpenProductDetailHost.js";
35
+ import "./normalProductDetail/createOpenNormalProductDetailHost.js";
36
+ import "./normalProductDetail/createOpenBookingSelectionFlowHost.js";
37
+ import "./giftSelect/GiftSelectModal.js";
38
+ import "./giftSelect/GiftSelectHostRenderer.js";
39
+ import "./context/SalesSdkProvider.js";
40
+ import "./context/SalesSdkDishContext.js";
41
+ import "./context/SalesSdkBookingContext.js";
42
+ import "./hooks/useSalesSdkSummary.js";
43
+ import "./hooks/useSalesSdkProducts.js";
44
+ import "./demo/index.js";
45
+ import "./hooks/useSalesSdkDish.js";
46
+ import "./hooks/useCurrentSalesSdkDish.js";
47
+ import "./hooks/useSyncOsModule.js";
48
+ export {};
@@ -348,4 +348,4 @@ function createAddProductWithFlowDebounced(deps) {
348
348
  };
349
349
  }
350
350
  //#endregion
351
- export { createAddProductWithFlowDebounced };
351
+ 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 };
@@ -9,4 +9,4 @@ interface AuthModalProps {}
9
9
  */
10
10
  declare const AuthModal: React.FC<AuthModalProps>;
11
11
  //#endregion
12
- export { AuthModal, AuthModalProps };
12
+ export { AuthModal };
@@ -1,3 +1,4 @@
1
+ import { AuthMethodType, EmailAuthConfig, EmailRegistrationVerification, LoginFormData, OAuthConfig, PhoneAuthConfig, RegisterFormData, UIConfig, VerificationMethod } from "./shared/types.js";
1
2
  import { Login2, Login2Config, Login2Events, Login2Props } from "./Login2.js";
2
3
  import { Register2, Register2Config, Register2Events, Register2Props } from "./Register2.js";
3
- 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 };
229
+ export { AuthMethodType, EmailAuthConfig, EmailRegistrationVerification, LegalTermsConfig, LoginFormData, LoginMethodItem, OAuthConfig, PhoneAuthConfig, RegisterFormData, RegistrationMethodItem, UIConfig, VerificationMethod };
@@ -70,7 +70,34 @@
70
70
  }
71
71
  }
72
72
 
73
+ .sku-detail-selection-flow-scroll-shell {
74
+ position: relative;
75
+ display: flex;
76
+ min-height: 0;
77
+ flex: 1;
78
+ flex-direction: column;
79
+
80
+ // 阴影挂在不滚动的外壳上,因此不会混入时间卡片并跟随内容移动。
81
+ // 仅在下方仍有内容时展示,并使用较浅的渐变作为轻量提示。
82
+ &--can-scroll-down::after {
83
+ position: absolute;
84
+ right: 12px;
85
+ bottom: 0;
86
+ left: 0;
87
+ z-index: 2;
88
+ height: 16px;
89
+ background: linear-gradient(
90
+ to bottom,
91
+ rgba(255, 255, 255, 0),
92
+ rgba(16, 24, 40, 0.08)
93
+ );
94
+ content: '';
95
+ pointer-events: none;
96
+ }
97
+ }
98
+
73
99
  .sku-detail-right-content--selection-flow {
74
100
  display: flex;
101
+ flex: 1;
75
102
  flex-direction: column;
76
103
  }
@@ -276,6 +276,7 @@ const DateFlowModuleComponent = ({ context, module, registerHandle }) => {
276
276
  showHeader: false,
277
277
  showMonthHeader: true,
278
278
  enableWeekSwipe: true,
279
+ minViewDate: dayjs().startOf("day").format("YYYY-MM-DD"),
279
280
  minSelectableDate: minimumSelectableDate.format("YYYY-MM-DD")
280
281
  });
281
282
  }
@@ -11,7 +11,6 @@ import PisellResourceCard from "../../../../components/eventBooking/components/r
11
11
  import { getResourceList } from "../../../../components/booking/info2/serve.js";
12
12
  import React, { useEffect, useMemo, useRef } from "react";
13
13
  import { Alert, Space } from "antd";
14
- import { isMobile } from "@pisell/utils";
15
14
  import { PisellCustomCheckboxGroup } from "@pisell/materials";
16
15
  import "./resource.less";
17
16
  //#region src/pro/skuDetailModal/flow/modules/resource.tsx
@@ -334,7 +333,7 @@ const ResourceFlowModuleComponent = ({ context, module, registerHandle }) => {
334
333
  fontWeight: 600
335
334
  } }, group.title || group.code || "Resource"), /* @__PURE__ */ React.createElement(PisellCustomCheckboxGroup, {
336
335
  dataSource: group.options,
337
- columns: isMobile() ? 2 : 3,
336
+ columns: 4,
338
337
  horizontalGap: 16,
339
338
  verticalGap: 16,
340
339
  className: "selection-flow-resource-grid",