@pisell/private-materials 6.11.654 → 6.11.655

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 (42) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/meta.js +1 -1
  5. package/build/lowcode/render/default/view.js +18 -18
  6. package/build/lowcode/view.js +18 -18
  7. package/es/components/bigSale/components/BookingFloatingPanel/useBookingPanelController.js +1 -0
  8. package/es/components/bigSale/components/TimeBar/index.js +1 -0
  9. package/es/components/bigSale/dialog.js +1 -0
  10. package/es/components/bigSale/hooks/useBigSaleContext.js +1 -0
  11. package/es/components/bigSale/hooks/useSelectFloorMapResourceForBigSale.js +1 -0
  12. package/es/components/bigSale/index.js +1 -0
  13. package/es/components/bigSale/templates/Kiosk/index.js +1 -0
  14. package/es/components/booking/utils.js +1 -1
  15. package/es/components/sharedSecondaryBigSale/SharedSecondaryBigSaleReceiver.js +1 -0
  16. package/es/index.js +2 -0
  17. package/es/plus/pisellReservation/data/bookingToReservationTables.js +1 -1
  18. package/es/plus/pisellReservation/floorMap/floorPlanApi.js +1 -1
  19. package/es/plus/pisellReservation/floorMap/reservationMock.js +1 -1
  20. package/es/plus/pisellReservation/index.js +17 -0
  21. package/es/plus/saleDetail/Base.js +1 -0
  22. package/es/plus/saleDetail/components/Client/hooks/useClientSelectorProps.js +1 -0
  23. package/es/plus/saleDetail/components/DetailActions/index.js +1 -0
  24. package/es/plus/saleDetail/components/SummaryFinancialSections/index.js +1 -0
  25. package/es/plus/saleDetail/index.js +1 -0
  26. package/es/plus/saleDetail/tmpl/B/components/Dish/index.js +1 -0
  27. package/es/plus/saleDetail/tmpl/B/index.js +1 -0
  28. package/es/plus/salesSdk/index.js +51 -0
  29. package/es/plus/salesSdk/utils/addProductWithFlowDebounced.js +1 -1
  30. package/es/plus/salesSdk/utils/bookingDate.js +1 -1
  31. package/es/plus/salesSdk/utils/customerAuthGate.js +1 -1
  32. package/es/plus/salesSdk/utils/enrichCartLineHolderDisplay.js +1 -1
  33. package/es/pro/Login2.0/AuthModal.d.ts +1 -1
  34. package/es/pro/Login2.0/index.d.ts +2 -1
  35. package/es/pro/Login2.0/shared/types.d.ts +1 -1
  36. package/es/pro/skuDetailModal/flow/modules/time/index.js +3 -3
  37. package/es/pro/skuDetailModal/flow/modules/time/posCustomTime.js +22 -5
  38. package/lib/components/booking/utils.js +1 -0
  39. package/lib/pro/skuDetailModal/flow/modules/time/index.js +1 -1
  40. package/lib/pro/skuDetailModal/flow/modules/time/posCustomTime.js +22 -4
  41. package/package.json +4 -4
  42. package/es/private-materials/lowcode/authmodal/meta.d.ts +0 -1
@@ -1,5 +1,6 @@
1
1
  import useEngineContext from "../../../../hooks/useEngineContext.js";
2
2
  import { subscribeBookingDateChange } from "../../../../plus/salesSdk/utils/bookingDate.js";
3
+ import "../../../../plus/salesSdk/index.js";
3
4
  import dayjs from "dayjs";
4
5
  import { useCallback, useEffect, useState } from "react";
5
6
  //#region src/components/bigSale/components/BookingFloatingPanel/useBookingPanelController.ts
@@ -4,6 +4,7 @@ import withResponsive from "../../../../responsive/withResponsive.js";
4
4
  import useInitLocalesOnce from "../../../../hooks/useInitLocalesOnce.js";
5
5
  import { subscribeBookingDateChange } from "../../../../plus/salesSdk/utils/bookingDate.js";
6
6
  import { useSalesSdkBookingContext } from "../../../../plus/salesSdk/context/SalesSdkBookingContext.js";
7
+ import "../../../../plus/salesSdk/index.js";
7
8
  import locales_default from "../../locales/index.js";
8
9
  import dayjs from "dayjs";
9
10
  import React, { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
@@ -5,6 +5,7 @@ import { buildInitBookingContextParams, collectBookingIdsFromTempOrder } from ".
5
5
  import { useSalesSdk } from "../../plus/salesSdk/hooks/useSalesSdk.js";
6
6
  import { useSalesSdkCart } from "../../plus/salesSdk/hooks/useSalesSdkCart.js";
7
7
  import { SalesSdkPrepareOrderSwitchContext, SalesSdkRootRefreshContext } from "../../plus/salesSdk/context/SalesSdkProvider.js";
8
+ import "../../plus/salesSdk/index.js";
8
9
  import { seedDineInReservationToCart } from "../../plus/pisellReservation/utils/seedDineInReservationToCart.js";
9
10
  import { isPersistedBigSaleOrderId } from "./utils/orderIdentity.js";
10
11
  import BigSale from "./index.js";
@@ -4,6 +4,7 @@ import { useSalesSdkCustomer } from "../../../plus/salesSdk/hooks/useSalesSdkCus
4
4
  import { useSalesSdkBookingContext } from "../../../plus/salesSdk/context/SalesSdkBookingContext.js";
5
5
  import { useSalesSdkSummary } from "../../../plus/salesSdk/hooks/useSalesSdkSummary.js";
6
6
  import { useSalesSdkProducts } from "../../../plus/salesSdk/hooks/useSalesSdkProducts.js";
7
+ import "../../../plus/salesSdk/index.js";
7
8
  import { useMemo } from "react";
8
9
  //#region src/components/bigSale/hooks/useBigSaleContext.ts
9
10
  /**
@@ -3,6 +3,7 @@ import useEngineContext from "../../../hooks/useEngineContext.js";
3
3
  import { buildInitBookingContextParams, collectBookingIdsFromTempOrder } from "../../../plus/salesSdk/utils/buildDefaultLoadProductsParams.js";
4
4
  import { useSalesSdkUIHosts } from "../../../plus/salesSdk/context/SalesSdkUIHostsContext.js";
5
5
  import { SalesSdkRootRefreshContext } from "../../../plus/salesSdk/context/SalesSdkProvider.js";
6
+ import "../../../plus/salesSdk/index.js";
6
7
  import { resolveOrderIdForHostActions } from "../../../plus/pisellReservation/components/bookingDetailModal/bookingDetailHostActions.js";
7
8
  import { usePicoCodingOpenData } from "../../../plus/pisellReservation/hooks/usePicoCodingOpenData.js";
8
9
  import { buildReplacementBookingResourcesFromReservationRow } from "../../../plus/pisellReservation/utils/reservationTicketBookingHostParams.js";
@@ -8,6 +8,7 @@ import { useSalesSdk } from "../../plus/salesSdk/hooks/useSalesSdk.js";
8
8
  import { useSalesSdkCustomer } from "../../plus/salesSdk/hooks/useSalesSdkCustomer.js";
9
9
  import { SalesSdkProvider } from "../../plus/salesSdk/context/SalesSdkProvider.js";
10
10
  import { SalesSdkBookingContextProvider } from "../../plus/salesSdk/context/SalesSdkBookingContext.js";
11
+ import "../../plus/salesSdk/index.js";
11
12
  import { ResponsiveBigSaleBase } from "./Base.js";
12
13
  import { isBigSaleProductSelectionFlowScene, resolveBigSaleSelectionFlowConfig } from "./selectionFlowConfig.js";
13
14
  import dayjs from "dayjs";
@@ -6,6 +6,7 @@ import useSalesUserLogin, { isRequireLoginChannel } from "../../../../hooks/useS
6
6
  import { resolvePaymentResultToastV2ViewModel } from "../../../checkout/components/PaymentResultToastV2/resolve.js";
7
7
  import PaymentResultToastV2_default from "../../../checkout/components/PaymentResultToastV2/index.js";
8
8
  import { useSalesSdk } from "../../../../plus/salesSdk/hooks/useSalesSdk.js";
9
+ import "../../../../plus/salesSdk/index.js";
9
10
  import { usePickSaleDetailContext } from "../../hooks/usePickSaleDetailContext.js";
10
11
  import { resolveBigSaleAutoProductListPreferences } from "../../utils/productListPreferences.js";
11
12
  import { resolveBigSaleProductDisplayConfig } from "../../hooks/useBigSaleProductListConfig.js";
@@ -619,4 +619,4 @@ function showDiscountScanFailMessage(val, scene = "goodpass", locales) {
619
619
  return scene === "goodpass" ? locales.getText("pisell2.text.goodpass.code-invalid-cart") : locales.getText("pisell2.voucher.code-invalid-cart");
620
620
  }
621
621
  //#endregion
622
- export { deleteCacheParams, findNextDuration, flexibleObj, formatProductListByCategory, formatResource, getCacheParams, getDays, getDiscountTime, getDiscountTimeByDayMinutes, getDuration, getEndDate, getErrorList, getIsEdit, getIsEject, getIsOnlySession, getLastServer, getMainPrice, getNowTime, getProductTotalPrice, getServeStartTime, getServerItemExtend, getServiceTime, getServiceTimes, isNowTime, isSessionProduct, isWalkIn, request, showDiscountScanFailMessage, sliceDayIntoFiveMinutes };
622
+ export { deleteCacheParams, findNextDuration, flexibleObj, formatProductListByCategory, formatResource, getCacheParams, getDays, getDiscountTime, getDiscountTimeByDayMinutes, getDuration, getEndDate, getErrorList, getIsEdit, getIsEject, getIsOnlySession, getLastServer, getMainPrice, getNowTime, getProductTotalPrice, getServeStartTime, getServerItemExtend, getServiceTime, getServiceTimes, getShopOpeningHours, isNowTime, isSessionProduct, isWalkIn, request, showDiscountScanFailMessage, sliceDayIntoFiveMinutes };
@@ -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
@@ -85,6 +85,7 @@ import { useSalesSdkProducts } from "./plus/salesSdk/hooks/useSalesSdkProducts.j
85
85
  import SalesSdkDemo from "./plus/salesSdk/demo/index.js";
86
86
  import { useSalesSdkDish } from "./plus/salesSdk/hooks/useSalesSdkDish.js";
87
87
  import { useSyncOsModule } from "./plus/salesSdk/hooks/useSyncOsModule.js";
88
+ import "./plus/salesSdk/index.js";
88
89
  import BigSaleRightActionPanel from "./components/BigSaleRightActionPanel/index.js";
89
90
  import { resolveBigSaleSelectionFlowConfig } from "./components/bigSale/selectionFlowConfig.js";
90
91
  import BigSale from "./components/bigSale/index.js";
@@ -137,6 +138,7 @@ import PisellVenueControlPage from "./plus/pisellReservation/PisellVenueControlP
137
138
  import PisellVenueWallPage from "./plus/pisellReservation/PisellVenueWallPage.js";
138
139
  import PisellReservationTablePage from "./plus/pisellReservation/PisellReservationTablePage.js";
139
140
  import SelectFloorMapResourceDialog from "./plus/pisellReservation/components/SelectFloorMapResourceDialog.js";
141
+ import "./plus/pisellReservation/index.js";
140
142
  import { PisellTopology, PisellTopologyCore } from "./plus/pisellTopology/PisellTopology.js";
141
143
  import cupProject_default from "./components/ecocup/cupProject/index.js";
142
144
  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,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,51 @@
1
+ import "./hosts/createInstanceHostBridge.js";
2
+ import "./holderConfirm/createHolderConfirmBridge.js";
3
+ import "./giftSelect/createGiftSelectBridge.js";
4
+ import "./context/SalesSdkHostBridgesContext.js";
5
+ import "./utils/formatHolderOptions.js";
6
+ import "./utils/enrichCartLineHolderDisplay.js";
7
+ import "./context/SalesSdkHolderContext.js";
8
+ import "./utils/appendPromotionTags.js";
9
+ import "./context/SalesSdkUIHostsContext.js";
10
+ import "./utils/runAddProductFlow.js";
11
+ import "./components/showAddToCartToast.js";
12
+ import "./utils/resolveAddProductDebounceKey.js";
13
+ import "./utils/productSkuOptions.js";
14
+ import "./utils/identity.js";
15
+ import "./utils/resolveInCartQuantityForAddToast.js";
16
+ import "./utils/addProductWithFlowDebounced.js";
17
+ import "./utils/customerAuthGate.js";
18
+ import "./utils/bookingDate.js";
19
+ import "./utils/holderSubmitValidation.js";
20
+ import "./utils/removeOrderProducts.js";
21
+ import "./selectors.js";
22
+ import "./utils/enrich.js";
23
+ import "./giftSelect/createOpenGiftSelectHost.js";
24
+ import "./utils/ensureHoldersBeforeSubmit.js";
25
+ import "./hooks/useSalesSdk.js";
26
+ import "./bookingEditService/BookingEditServiceDrawer.js";
27
+ import "./hosts/BookingEditHostRenderer.js";
28
+ import "./hosts/CustomerAuthHostRenderer.js";
29
+ import "./hooks/useSalesSdkCart.js";
30
+ import "./hooks/useSalesSdkCustomer.js";
31
+ import "./normalProductDetail/NormalProductDetailHostRenderer.js";
32
+ import "./hosts/createOpenBookingEditHost.js";
33
+ import "./hosts/createOpenMultiDaySelectHost.js";
34
+ import "./hosts/createOpenHolderSelectHost.js";
35
+ import "./hosts/createOpenCustomerAuthHost.js";
36
+ import "./demo/hosts/legacyOpenProductDetail.js";
37
+ import "./hosts/createCompositeOpenProductDetailHost.js";
38
+ import "./normalProductDetail/createOpenNormalProductDetailHost.js";
39
+ import "./normalProductDetail/createOpenBookingSelectionFlowHost.js";
40
+ import "./giftSelect/GiftSelectModal.js";
41
+ import "./giftSelect/GiftSelectHostRenderer.js";
42
+ import "./context/SalesSdkProvider.js";
43
+ import "./context/SalesSdkDishContext.js";
44
+ import "./context/SalesSdkBookingContext.js";
45
+ import "./hooks/useSalesSdkSummary.js";
46
+ import "./hooks/useSalesSdkProducts.js";
47
+ import "./demo/index.js";
48
+ import "./hooks/useSalesSdkDish.js";
49
+ import "./hooks/useCurrentSalesSdkDish.js";
50
+ import "./hooks/useSyncOsModule.js";
51
+ export {};
@@ -340,4 +340,4 @@ function createAddProductWithFlowDebounced(deps) {
340
340
  };
341
341
  }
342
342
  //#endregion
343
- export { createAddProductWithFlowDebounced };
343
+ 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 };
@@ -62,4 +62,4 @@ function normalizeCustomerAuthCustomer(value) {
62
62
  return null;
63
63
  }
64
64
  //#endregion
65
- export { isValidOrderCustomerId, normalizeCustomerAuthCustomer, resolveCustomerAuthCurrentCustomerId, shouldPromptCustomerAuthForProduct };
65
+ export { isHolderRequiredProduct, isKioskRuntime, isValidOrderCustomerId, normalizeCustomerAuthCustomer, resolveCustomerAuthCurrentCustomerId, shouldPromptCustomerAuthForProduct };
@@ -71,4 +71,4 @@ function buildHolderListRequestKey(params) {
71
71
  });
72
72
  }
73
73
  //#endregion
74
- export { buildHolderListRequestKey, buildHolderListRequestParams, enrichCartBookingHolderDisplay, resolveHolderDisplayConfig };
74
+ export { buildHolderListRequestKey, buildHolderListRequestParams, enrichCartBookingHolderDisplay, pickHolderIdFromBooking, resolveHolderDisplayConfig };
@@ -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,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 };
@@ -2,7 +2,7 @@ import { _objectSpread2 } from "../../../../../_virtual/_@oxc-project_runtime@0.
2
2
  import { _asyncToGenerator } from "../../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js";
3
3
  import { getDurationProps, getTimeObj } from "../../../../../components/booking/info2/service/addService/utils.js";
4
4
  import { isNormalProductByDurationSchedule } from "../../../../../components/booking/info/service2/utils.js";
5
- import { getDiscountTime, getServiceTimes, isSessionProduct } from "../../../../../components/booking/utils.js";
5
+ import { getDiscountTime, getServiceTimes, getShopOpeningHours, isSessionProduct } from "../../../../../components/booking/utils.js";
6
6
  import Duration from "../../../../../components/booking/materiels/duration/index.js";
7
7
  import SkuDetailLoadingPanel from "../../../LoadingPanel.js";
8
8
  import { selectionFlowText } from "../../i18n.js";
@@ -10,7 +10,7 @@ import { buildDraftCacheItem, getModuleOptions, getUnsupportedBookingFlowReason,
10
10
  import TimeResourceSelector from "../../../../../components/eventBooking/components/timeResourceSelector/index.js";
11
11
  import { resolveAvailabilityStatus } from "../../../../../components/eventBooking/components/bookingAvailabilityCalendar/utils.js";
12
12
  import { validateAvailabilityTimeAutoResolution } from "../autoResolution.js";
13
- import { getAvailabilityCandidateDurationMinutes, getPosFlexibleDurationPresetCandidates, getSessionPresetCandidates, isFlexibleDurationValue, isSameAvailabilityCandidateRange, resolvePosCustomTimeBaseMinutes, resolvePosCustomTimeCandidate, resolvePosCustomTimeDefaultDurationMinutes, resolvePosCustomTimeDefaultStartTime, resolvePosFlexibleDurationInitialCandidate, shouldShowPosCustomTimeCandidateCards } from "./posCustomTime.js";
13
+ import { getAvailabilityCandidateDurationMinutes, getPosFlexibleDurationPresetCandidates, getSessionPresetCandidates, isFlexibleDurationValue, isSameAvailabilityCandidateRange, resolvePosCustomTimeBaseMinutes, resolvePosCustomTimeCandidate, resolvePosCustomTimeDefaultDurationMinutes, resolvePosCustomTimeDefaultStartTime, resolvePosFlexibleBusinessDurationMinutes, resolvePosFlexibleDurationInitialCandidate, shouldShowPosCustomTimeCandidateCards } from "./posCustomTime.js";
14
14
  import dayjs from "dayjs";
15
15
  import React, { useEffect, useMemo } from "react";
16
16
  import { Alert, Space } from "antd";
@@ -197,7 +197,7 @@ const refreshAvailabilityTimes = function() {
197
197
  const fallbackSlice = (_moduleOptions$slice = moduleOptions.slice) !== null && _moduleOptions$slice !== void 0 ? _moduleOptions$slice : typeof configuredSlice === "object" ? configuredSlice === null || configuredSlice === void 0 ? void 0 : configuredSlice.value : configuredSlice;
198
198
  const baseDurationMinutes = resolvePosCustomTimeBaseMinutes(group === null || group === void 0 ? void 0 : group.slotStepMinutes, fallbackSlice);
199
199
  const nextStartTime = resolvePosCustomTimeDefaultStartTime(context.draft.booking.startTime, baseDurationMinutes);
200
- const nextDuration = resolvePosCustomTimeDefaultDurationMinutes((_normalizeDurationMin3 = normalizeDurationMinutesValue(context.draft.booking.duration)) !== null && _normalizeDurationMin3 !== void 0 ? _normalizeDurationMin3 : context.draft.booking.duration, baseDurationMinutes);
200
+ const nextDuration = resolvePosCustomTimeDefaultDurationMinutes((_normalizeDurationMin3 = normalizeDurationMinutesValue(context.draft.booking.duration)) !== null && _normalizeDurationMin3 !== void 0 ? _normalizeDurationMin3 : context.draft.booking.duration, baseDurationMinutes, context.services.selectionFlowMode === "edit" ? void 0 : resolvePosFlexibleBusinessDurationMinutes(nextStartTime, getShopOpeningHours()));
201
201
  const changedFields = [];
202
202
  if (nextStartTime !== context.draft.booking.startTime) changedFields.push("booking.startTime");
203
203
  if (nextDuration !== context.draft.booking.duration) changedFields.push("booking.duration");
@@ -28,10 +28,27 @@ const resolvePosCustomTimeDefaultStartTime = (currentValue, sliceMinutes, now) =
28
28
  const minutes = alignedMinute % 60;
29
29
  return `${String(hours).padStart(2, "0")}:${String(minutes).padStart(2, "0")}`;
30
30
  };
31
- const resolvePosCustomTimeDefaultDurationMinutes = (currentValue, baseDurationMinutes) => {
32
- if (typeof currentValue === "string") {
33
- const flexibleMatch = currentValue.trim().toLowerCase().match(/^flexible_(\d+(?:\.\d+)?)$/);
34
- if (flexibleMatch) return Math.max(1, Math.floor(Number(flexibleMatch[1])));
31
+ const resolvePosFlexibleBusinessDurationMinutes = (startTime, closingTime) => {
32
+ const toMinuteOfDay = (value) => {
33
+ if (typeof value !== "string") return null;
34
+ const matched = value.trim().match(/^([01]\d|2[0-3]):([0-5]\d)(?::[0-5]\d)?$/);
35
+ if (!matched) return null;
36
+ return Number(matched[1]) * 60 + Number(matched[2]);
37
+ };
38
+ const startMinute = toMinuteOfDay(startTime);
39
+ const closingMinute = toMinuteOfDay(closingTime);
40
+ if (startMinute === null || closingMinute === null) return null;
41
+ const duration = closingMinute > startMinute ? closingMinute - startMinute : closingMinute < startMinute ? closingMinute + 1440 - startMinute : 0;
42
+ return duration > 0 ? duration : null;
43
+ };
44
+ const resolvePosCustomTimeDefaultDurationMinutes = (currentValue, baseDurationMinutes, flexibleDefaultMinutes) => {
45
+ if (isFlexibleDurationValue(currentValue)) {
46
+ const flexibleMinutes = Number(flexibleDefaultMinutes);
47
+ if (Number.isFinite(flexibleMinutes) && flexibleMinutes > 0) return Math.max(1, Math.floor(flexibleMinutes));
48
+ if (typeof currentValue === "string") {
49
+ const flexibleMatch = currentValue.trim().toLowerCase().match(/^flexible_(\d+(?:\.\d+)?)$/);
50
+ if (flexibleMatch) return Math.max(1, Math.floor(Number(flexibleMatch[1])));
51
+ }
35
52
  }
36
53
  const currentMinutes = Number(currentValue);
37
54
  if (Number.isFinite(currentMinutes) && currentMinutes > 0) return Math.max(1, Math.floor(currentMinutes));
@@ -66,4 +83,4 @@ const resolvePosFlexibleDurationInitialCandidate = (params) => {
66
83
  return params.restoredCandidate || params.fallbackCandidate;
67
84
  };
68
85
  //#endregion
69
- export { getAvailabilityCandidateDurationMinutes, getPosFlexibleDurationPresetCandidates, getSessionPresetCandidates, isFlexibleDurationValue, isSameAvailabilityCandidateRange, resolvePosCustomTimeBaseMinutes, resolvePosCustomTimeCandidate, resolvePosCustomTimeDefaultDurationMinutes, resolvePosCustomTimeDefaultStartTime, resolvePosFlexibleDurationInitialCandidate, shouldShowPosCustomTimeCandidateCards };
86
+ export { getAvailabilityCandidateDurationMinutes, getPosFlexibleDurationPresetCandidates, getSessionPresetCandidates, isFlexibleDurationValue, isSameAvailabilityCandidateRange, resolvePosCustomTimeBaseMinutes, resolvePosCustomTimeCandidate, resolvePosCustomTimeDefaultDurationMinutes, resolvePosCustomTimeDefaultStartTime, resolvePosFlexibleBusinessDurationMinutes, resolvePosFlexibleDurationInitialCandidate, shouldShowPosCustomTimeCandidateCards };
@@ -645,6 +645,7 @@ exports.getServeStartTime = getServeStartTime;
645
645
  exports.getServerItemExtend = getServerItemExtend;
646
646
  exports.getServiceTime = getServiceTime;
647
647
  exports.getServiceTimes = getServiceTimes;
648
+ exports.getShopOpeningHours = getShopOpeningHours;
648
649
  exports.isNowTime = isNowTime;
649
650
  exports.isSessionProduct = isSessionProduct;
650
651
  exports.isWalkIn = isWalkIn;
@@ -201,7 +201,7 @@ const refreshAvailabilityTimes = function() {
201
201
  const fallbackSlice = (_moduleOptions$slice = moduleOptions.slice) !== null && _moduleOptions$slice !== void 0 ? _moduleOptions$slice : typeof configuredSlice === "object" ? configuredSlice === null || configuredSlice === void 0 ? void 0 : configuredSlice.value : configuredSlice;
202
202
  const baseDurationMinutes = require_posCustomTime.resolvePosCustomTimeBaseMinutes(group === null || group === void 0 ? void 0 : group.slotStepMinutes, fallbackSlice);
203
203
  const nextStartTime = require_posCustomTime.resolvePosCustomTimeDefaultStartTime(context.draft.booking.startTime, baseDurationMinutes);
204
- const nextDuration = require_posCustomTime.resolvePosCustomTimeDefaultDurationMinutes((_normalizeDurationMin3 = normalizeDurationMinutesValue(context.draft.booking.duration)) !== null && _normalizeDurationMin3 !== void 0 ? _normalizeDurationMin3 : context.draft.booking.duration, baseDurationMinutes);
204
+ const nextDuration = require_posCustomTime.resolvePosCustomTimeDefaultDurationMinutes((_normalizeDurationMin3 = normalizeDurationMinutesValue(context.draft.booking.duration)) !== null && _normalizeDurationMin3 !== void 0 ? _normalizeDurationMin3 : context.draft.booking.duration, baseDurationMinutes, context.services.selectionFlowMode === "edit" ? void 0 : require_posCustomTime.resolvePosFlexibleBusinessDurationMinutes(nextStartTime, require_utils$2.getShopOpeningHours()));
205
205
  const changedFields = [];
206
206
  if (nextStartTime !== context.draft.booking.startTime) changedFields.push("booking.startTime");
207
207
  if (nextDuration !== context.draft.booking.duration) changedFields.push("booking.duration");
@@ -30,10 +30,27 @@ const resolvePosCustomTimeDefaultStartTime = (currentValue, sliceMinutes, now) =
30
30
  const minutes = alignedMinute % 60;
31
31
  return `${String(hours).padStart(2, "0")}:${String(minutes).padStart(2, "0")}`;
32
32
  };
33
- const resolvePosCustomTimeDefaultDurationMinutes = (currentValue, baseDurationMinutes) => {
34
- if (typeof currentValue === "string") {
35
- const flexibleMatch = currentValue.trim().toLowerCase().match(/^flexible_(\d+(?:\.\d+)?)$/);
36
- if (flexibleMatch) return Math.max(1, Math.floor(Number(flexibleMatch[1])));
33
+ const resolvePosFlexibleBusinessDurationMinutes = (startTime, closingTime) => {
34
+ const toMinuteOfDay = (value) => {
35
+ if (typeof value !== "string") return null;
36
+ const matched = value.trim().match(/^([01]\d|2[0-3]):([0-5]\d)(?::[0-5]\d)?$/);
37
+ if (!matched) return null;
38
+ return Number(matched[1]) * 60 + Number(matched[2]);
39
+ };
40
+ const startMinute = toMinuteOfDay(startTime);
41
+ const closingMinute = toMinuteOfDay(closingTime);
42
+ if (startMinute === null || closingMinute === null) return null;
43
+ const duration = closingMinute > startMinute ? closingMinute - startMinute : closingMinute < startMinute ? closingMinute + 1440 - startMinute : 0;
44
+ return duration > 0 ? duration : null;
45
+ };
46
+ const resolvePosCustomTimeDefaultDurationMinutes = (currentValue, baseDurationMinutes, flexibleDefaultMinutes) => {
47
+ if (isFlexibleDurationValue(currentValue)) {
48
+ const flexibleMinutes = Number(flexibleDefaultMinutes);
49
+ if (Number.isFinite(flexibleMinutes) && flexibleMinutes > 0) return Math.max(1, Math.floor(flexibleMinutes));
50
+ if (typeof currentValue === "string") {
51
+ const flexibleMatch = currentValue.trim().toLowerCase().match(/^flexible_(\d+(?:\.\d+)?)$/);
52
+ if (flexibleMatch) return Math.max(1, Math.floor(Number(flexibleMatch[1])));
53
+ }
37
54
  }
38
55
  const currentMinutes = Number(currentValue);
39
56
  if (Number.isFinite(currentMinutes) && currentMinutes > 0) return Math.max(1, Math.floor(currentMinutes));
@@ -77,5 +94,6 @@ exports.resolvePosCustomTimeBaseMinutes = resolvePosCustomTimeBaseMinutes;
77
94
  exports.resolvePosCustomTimeCandidate = resolvePosCustomTimeCandidate;
78
95
  exports.resolvePosCustomTimeDefaultDurationMinutes = resolvePosCustomTimeDefaultDurationMinutes;
79
96
  exports.resolvePosCustomTimeDefaultStartTime = resolvePosCustomTimeDefaultStartTime;
97
+ exports.resolvePosFlexibleBusinessDurationMinutes = resolvePosFlexibleBusinessDurationMinutes;
80
98
  exports.resolvePosFlexibleDurationInitialCandidate = resolvePosFlexibleDurationInitialCandidate;
81
99
  exports.shouldShowPosCustomTimeCandidateCards = shouldShowPosCustomTimeCandidateCards;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pisell/private-materials",
3
- "version": "6.11.654",
3
+ "version": "6.11.655",
4
4
  "main": "./lib/index.js",
5
5
  "module": "./es/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -70,10 +70,10 @@
70
70
  "styled-components": "^6.0.0-rc.3",
71
71
  "use-sync-external-store": "^1.6.0",
72
72
  "@pisell/pi-payment-sdk": "0.0.3",
73
- "@pisell/materials": "6.11.256",
74
- "@pisell/icon": "0.0.11",
73
+ "@pisell/utils": "3.0.4",
75
74
  "@pisell/date-picker": "3.0.10",
76
- "@pisell/utils": "3.0.4"
75
+ "@pisell/materials": "6.11.256",
76
+ "@pisell/icon": "0.0.11"
77
77
  },
78
78
  "peerDependencies": {
79
79
  "react": "^18.0.0",
@@ -1 +0,0 @@
1
- export { };