@ancon/wildcat-utils 1.32.0 → 1.33.0

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.
@@ -11,4 +11,5 @@ import checkoutHasWallet from './checkoutHasWallet';
11
11
  import getWalletMetaFromCheckout from './getWalletMetaFromCheckout';
12
12
  import isPreOrderServiceTime from './isPreOrderServiceTime';
13
13
  import isPreOrderCheckout from './isPreOrderCheckout';
14
- export { TranslationKey, getCheckoutGroupedModifications, getCheckoutProductName, getCheckoutOrderStatusTexts, getCheckoutItemsMappedByTicketItemStatus, isCheckoutOrderSummary, buildCheckoutRequestItem, getCheckoutGrandTotalAmount, getCheckoutRequestItemFromCheckoutItem, isCheckoutItemsAreEqual, checkoutHasWallet, getWalletMetaFromCheckout, isPreOrderCheckout, isPreOrderServiceTime, };
14
+ import isUpdatingCheckoutAllowed from './isUpdatingCheckoutAllowed';
15
+ export { TranslationKey, getCheckoutGroupedModifications, getCheckoutProductName, getCheckoutOrderStatusTexts, getCheckoutItemsMappedByTicketItemStatus, isCheckoutOrderSummary, buildCheckoutRequestItem, getCheckoutGrandTotalAmount, getCheckoutRequestItemFromCheckoutItem, isCheckoutItemsAreEqual, checkoutHasWallet, getWalletMetaFromCheckout, isPreOrderCheckout, isPreOrderServiceTime, isUpdatingCheckoutAllowed, };
package/checkout/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./getCheckoutItemModifications.js"),u=require("./getCheckoutProductName.js"),e=require("./getCheckoutOrderStatusTexts.js"),c=require("./getCheckoutItemsMappedByTicketItemStatus.js"),r=require("./isCheckoutOrderSummary.js"),o=require("./buildCheckoutRequestItem.js"),i=require("./getCheckoutGrandTotalAmount.js"),s=require("./getCheckoutRequestItemFromCheckoutItem.js"),k=require("./isCheckoutItemsAreEqual.js"),h=require("./checkoutHasWallet.js"),a=require("./getWalletMetaFromCheckout.js"),m=require("./isPreOrderServiceTime.js"),n=require("./isPreOrderCheckout.js");require("@ancon/wildcat-types");require("../currency/getFormattedCurrency.js");require("../currency/getFormattedCurrencyPostfix.js");require("../_baseIsEqual-a66350f1.js");require("../isObjectLike-0cc89d64.js");exports.getCheckoutGroupedModifications=t;exports.getCheckoutProductName=u;exports.TranslationKey=e.TranslationKey;exports.getCheckoutOrderStatusTexts=e.default;exports.getCheckoutItemsMappedByTicketItemStatus=c;exports.isCheckoutOrderSummary=r;exports.buildCheckoutRequestItem=o;exports.getCheckoutGrandTotalAmount=i;exports.getCheckoutRequestItemFromCheckoutItem=s;exports.isCheckoutItemsAreEqual=k;exports.checkoutHasWallet=h;exports.getWalletMetaFromCheckout=a;exports.isPreOrderServiceTime=m;exports.isPreOrderCheckout=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./getCheckoutItemModifications.js"),u=require("./getCheckoutProductName.js"),e=require("./getCheckoutOrderStatusTexts.js"),c=require("./getCheckoutItemsMappedByTicketItemStatus.js"),o=require("./isCheckoutOrderSummary.js"),r=require("./buildCheckoutRequestItem.js"),i=require("./getCheckoutGrandTotalAmount.js"),s=require("./getCheckoutRequestItemFromCheckoutItem.js"),k=require("./isCheckoutItemsAreEqual.js"),h=require("./checkoutHasWallet.js"),a=require("./getWalletMetaFromCheckout.js"),m=require("./isPreOrderServiceTime.js"),n=require("./isPreOrderCheckout.js"),d=require("./isUpdatingCheckoutAllowed.js");require("@ancon/wildcat-types");require("../currency/getFormattedCurrency.js");require("../currency/getFormattedCurrencyPostfix.js");require("../_baseIsEqual-a66350f1.js");require("../isObjectLike-0cc89d64.js");exports.getCheckoutGroupedModifications=t;exports.getCheckoutProductName=u;exports.TranslationKey=e.TranslationKey;exports.getCheckoutOrderStatusTexts=e.default;exports.getCheckoutItemsMappedByTicketItemStatus=c;exports.isCheckoutOrderSummary=o;exports.buildCheckoutRequestItem=r;exports.getCheckoutGrandTotalAmount=i;exports.getCheckoutRequestItemFromCheckoutItem=s;exports.isCheckoutItemsAreEqual=k;exports.checkoutHasWallet=h;exports.getWalletMetaFromCheckout=a;exports.isPreOrderServiceTime=m;exports.isPreOrderCheckout=n;exports.isUpdatingCheckoutAllowed=d;
@@ -4,13 +4,14 @@ import { TranslationKey as p, default as c } from "./getCheckoutOrderStatusTexts
4
4
  import { default as k } from "./getCheckoutItemsMappedByTicketItemStatus.mjs";
5
5
  import { default as h } from "./isCheckoutOrderSummary.mjs";
6
6
  import { default as g } from "./buildCheckoutRequestItem.mjs";
7
- import { default as n } from "./getCheckoutGrandTotalAmount.mjs";
7
+ import { default as I } from "./getCheckoutGrandTotalAmount.mjs";
8
8
  import { default as O } from "./getCheckoutRequestItemFromCheckoutItem.mjs";
9
9
  import { default as q } from "./isCheckoutItemsAreEqual.mjs";
10
- import { default as M } from "./checkoutHasWallet.mjs";
11
- import { default as A } from "./getWalletMetaFromCheckout.mjs";
10
+ import { default as A } from "./checkoutHasWallet.mjs";
11
+ import { default as P } from "./getWalletMetaFromCheckout.mjs";
12
12
  import { default as G } from "./isPreOrderServiceTime.mjs";
13
13
  import { default as W } from "./isPreOrderCheckout.mjs";
14
+ import { default as v } from "./isUpdatingCheckoutAllowed.mjs";
14
15
  import "@ancon/wildcat-types";
15
16
  import "../currency/getFormattedCurrency.mjs";
16
17
  import "../currency/getFormattedCurrencyPostfix.mjs";
@@ -19,16 +20,17 @@ import "../isObjectLike-7895e9dd.mjs";
19
20
  export {
20
21
  p as TranslationKey,
21
22
  g as buildCheckoutRequestItem,
22
- M as checkoutHasWallet,
23
- n as getCheckoutGrandTotalAmount,
23
+ A as checkoutHasWallet,
24
+ I as getCheckoutGrandTotalAmount,
24
25
  f as getCheckoutGroupedModifications,
25
26
  k as getCheckoutItemsMappedByTicketItemStatus,
26
27
  c as getCheckoutOrderStatusTexts,
27
28
  d as getCheckoutProductName,
28
29
  O as getCheckoutRequestItemFromCheckoutItem,
29
- A as getWalletMetaFromCheckout,
30
+ P as getWalletMetaFromCheckout,
30
31
  q as isCheckoutItemsAreEqual,
31
32
  h as isCheckoutOrderSummary,
32
33
  W as isPreOrderCheckout,
33
- G as isPreOrderServiceTime
34
+ G as isPreOrderServiceTime,
35
+ v as isUpdatingCheckoutAllowed
34
36
  };
@@ -0,0 +1,5 @@
1
+ import { CheckoutStatus } from '@ancon/wildcat-types';
2
+ declare function isUpdatingCheckoutAllowed<T extends {
3
+ status: CheckoutStatus;
4
+ }>(checkout: T): boolean;
5
+ export default isUpdatingCheckoutAllowed;
@@ -0,0 +1 @@
1
+ "use strict";const e=require("@ancon/wildcat-types");function a(t){const s=t==null?void 0:t.status;return s===e.CheckoutStatus.Created||s===e.CheckoutStatus.Ready||s===e.CheckoutStatus.Processing}module.exports=a;
@@ -0,0 +1,8 @@
1
+ import { CheckoutStatus as a } from "@ancon/wildcat-types";
2
+ function e(t) {
3
+ const s = t == null ? void 0 : t.status;
4
+ return s === a.Created || s === a.Ready || s === a.Processing;
5
+ }
6
+ export {
7
+ e as default
8
+ };
package/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./shared/isWithinFlag.js"),r=require("./shared/generateId.js"),o=require("./shared/wait.js"),i=require("./outlet/getListOutletOpeningHoursTable.js"),u=require("./outlet/getOutletTagInformation.js"),s=require("./outlet/getOutletAvailabilityInfo.js"),n=require("./outlet/getOutletOfflineOrderFormats.js"),c=require("./outlet/getOutletAvailableOrderFormats.js"),a=require("./outlet/getOutletFormattedDistance.js"),l=require("./outlet/isOutletAcceptingPreOrders.js"),d=require("./outlet/getOutletDeliveryFee.js"),g=require("./outlet/getOutletTodayOpeningTimes.js"),q=require("./outlet/getOutletOrderFormats.js"),O=require("./outlet/serviceDateTimesFromOpeningHours.js"),_=require("./outlet/getPickerIntervalsForDay.js"),m=require("./outlet/getServiceIntervalRange.js"),k=require("./outlet/getServiceIntervalsForOrderFormat.js"),h=require("./outlet/getOutletFormattedAddress.js"),p=require("./outlet/getPartitionedOutletsList.js"),P=require("./outlet/getOutletPickerTimesForWeek.js"),S=require("./outlet/getOutletOrderPrepTime.js"),C=require("./outlet/getStructuredOutletAddress.js"),T=require("./outlet/getOutletNextOpeningTimeText.js"),F=require("./outlet/getOutletCurrentClosingTimeText.js"),f=require("./outlet/getOutletNextReadyToOrderTime.js"),y=require("./versioning/isVersionALessThanB.js"),v=require("./versioning/cleanVersionString.js"),I=require("./api/getUrlAndParams.js"),A=require("./api/getEndpointWithVersion.js"),R=require("./api/generateBackoffWithEqualJitter.js"),D=require("./api/isAcceptedResponse.js"),b=require("./api/isNoContentResponse.js"),E=require("./string/slugify.js"),N=require("./string/truncate.js"),V=require("./color/lighten.js"),M=require("./color/brighten.js"),H=require("./color/darken.js"),L=require("./color/isDarkBackground.js"),x=require("./user/getFullName.js"),W=require("./user/getFullAddressString.js"),B=require("./user/getCustomerAddressFromGeocoderResult.js"),G=require("./user/getFormattedPhoneNumber.js"),U=require("./user/getStructuredCustomerAddress.js"),w=require("./logger/Logger.js"),z=require("./logger/types.js"),J=require("./logger/sanitizeAsStringDict.js"),K=require("./logger/pascalCaseFormatter.js"),Q=require("./printing/getPrinterType.js"),j=require("./printing/isValidPrinter.js"),X=require("./printing/isValidNetworkPrinter.js"),Y=require("./printing/isValidStarCloudPrinter.js"),Z=require("./printing/isTerminalPrinter.js"),$=require("./printing/isCloudPrintModeEnabled.js"),ee=require("./number/randomIntFromInterval.js"),te=require("./tables/decodeTableQRPayload.js"),re=require("./checkout/getCheckoutItemModifications.js"),oe=require("./checkout/getCheckoutProductName.js"),e=require("./checkout/getCheckoutOrderStatusTexts.js"),ie=require("./checkout/getCheckoutItemsMappedByTicketItemStatus.js"),ue=require("./checkout/isCheckoutOrderSummary.js"),se=require("./checkout/buildCheckoutRequestItem.js"),ne=require("./checkout/getCheckoutGrandTotalAmount.js"),ce=require("./checkout/getCheckoutRequestItemFromCheckoutItem.js"),ae=require("./checkout/isCheckoutItemsAreEqual.js"),le=require("./checkout/checkoutHasWallet.js"),de=require("./checkout/getWalletMetaFromCheckout.js"),ge=require("./checkout/isPreOrderServiceTime.js"),qe=require("./checkout/isPreOrderCheckout.js"),Oe=require("./currency/getFormattedCurrency.js"),_e=require("./inventory/isDetailedProductOutOfStock.js"),me=require("./inventory/isDetailedProductVariantOutOfStocks.js"),ke=require("./inventory/isMenuTreeProductOutOfStock.js"),he=require("./inventory/isDetailedProductUpSellsOutOfStock.js"),pe=require("./inventory/isUpSellProductOutStock.js"),Pe=require("./inventory/isDetailedProductOutletStockOutOfStock.js"),Se=require("./inventory/getDetailedProductVariantStock.js"),Ce=require("./signalr/createUseSignalRHook.js"),Te=require("./signalr/SignalR.js"),Fe=require("./error/createCodedError.js"),fe=require("./error/isCodedError.js"),ye=require("./error/isNetworkError.js"),ve=require("./error/isLockedError.js"),Ie=require("./error/isNotFoundError.js"),Ae=require("./error/serializeError.js"),Re=require("./hangfire/isHangfireResponse.js"),De=require("./hangfire/createHangfirePoller.js"),be=require("./hangfire/createMakeHangfireRequest.js"),Ee=require("./product/extractProductsFromMenuTree.js"),Ne=require("./product/calculateIngredientsCost.js"),Ve=require("./product/calculateAddonGroupCost.js"),Me=require("./product/getAddonGroupInfoBySettings.js");require("moment");require("@ancon/wildcat-types");require("./outlet/constants.js");require("./outlet/getOutletCurrentActiveOperatingHour.js");require("./outlet/getMomentFromDateAndTimeString.js");require("./outlet/searchNextOpeningMoment.js");require("./_baseIsEqual-a66350f1.js");require("./isObjectLike-0cc89d64.js");require("./toString-c005c116.js");require("./shared/constants.js");require("./time/toMinutes.js");require("./time/getNextTenthMinute.js");require("./outlet/types.js");require("./outlet/getSettingsForOrderFormat.js");require("./outlet/getServiceIntervalStart.js");require("./outlet/getNextTenthMinute.js");require("./outlet/generatePickerTimesForDay.js");require("./outlet/getServiceIntervalEnd.js");require("./outlet/hoursAndMinutesToMinutes.js");require("compare-versions");require("tinycolor2");require("google-libphonenumber");require("@ancon/wildcat-printing");require("./currency/getFormattedCurrencyPostfix.js");require("react");require("react-redux");require("@microsoft/signalr");require("axios");exports.isWithinFlag=t;exports.generateId=r;exports.wait=o;exports.getListOutletOpeningHoursTable=i;exports.getOutletTagInformation=u.default;exports.getOutletAvailabilityInfo=s.default;exports.getOutletOfflineOrderFormats=n;exports.getOutletAvailableOrderFormats=c;exports.getOutletFormattedDistance=a;exports.isOutletAcceptingPreOrders=l;exports.getOutletDeliveryFee=d;exports.getOutletTodayOpeningTimes=g;exports.getOutletOrderFormats=q;exports.serviceDateTimesFromOpeningHours=O;exports.getPickerIntervalsForDay=_;exports.getServiceIntervalRange=m;exports.getServiceIntervalsForOrderFormat=k;exports.getOutletFormattedAddress=h;exports.getPartitionedOutletsList=p;exports.getOutletPickerTimesForWeek=P;exports.getOutletOrderPreparationTime=S;exports.getStructuredOutletAddress=C;exports.getOutletNextOpeningTimeText=T;exports.getOutletCurrentClosingTimeText=F;exports.getOutletNextReadyToOrderTime=f;exports.isVersionALessThanB=y;exports.cleanVersionString=v;exports.getUrlAndParams=I;exports.getEndpointWithVersion=A;exports.generateBackoffWithEqualJitter=R;exports.isAcceptedResponse=D;exports.isNoContentResponse=b;exports.slugify=E;exports.truncate=N;exports.lighten=V;exports.brighten=M;exports.darken=H;exports.isDarkBackground=L;exports.getFullName=x;exports.getFullAddressString=W;exports.getCustomerAddressFromGeocoderResult=B;exports.getFormattedPhoneNumber=G;exports.getStructuredCustomerAddress=U;exports.Logger=w;exports.LogLevel=z.LogLevel;exports.sanitizeAsStringDict=J;exports.pascalCaseFormatter=K;exports.getPrinterType=Q;exports.isValidPrinter=j;exports.isValidNetworkPrinter=X;exports.isValidStarCloudPrinter=Y;exports.isTerminalPrinter=Z;exports.isCloudPrintModeEnabled=$;exports.randomIntFromInterval=ee;exports.decodeTableQRPayload=te;exports.getCheckoutGroupedModifications=re;exports.getCheckoutProductName=oe;exports.TranslationKey=e.TranslationKey;exports.getCheckoutOrderStatusTexts=e.default;exports.getCheckoutItemsMappedByTicketItemStatus=ie;exports.isCheckoutOrderSummary=ue;exports.buildCheckoutRequestItem=se;exports.getCheckoutGrandTotalAmount=ne;exports.getCheckoutRequestItemFromCheckoutItem=ce;exports.isCheckoutItemsAreEqual=ae;exports.checkoutHasWallet=le;exports.getWalletMetaFromCheckout=de;exports.isPreOrderServiceTime=ge;exports.isPreOrderCheckout=qe;exports.getFormattedCurrency=Oe;exports.isDetailedProductOutOfStock=_e;exports.isDetailedProductVariantOutOfStocks=me;exports.isMenuTreeProductOutOfStock=ke;exports.isDetailedProductUpSellsOutOfStock=he;exports.isUpSellProductOutOfStock=pe;exports.isDetailedProductOutletStockOutOfStock=Pe;exports.getDetailedProductVariantStock=Se;exports.createUseSignalRHook=Ce;exports.SignalR=Te;exports.createCodedError=Fe;exports.isCodedError=fe;exports.isNetworkError=ye;exports.isLockedError=ve;exports.isNotFoundError=Ie;exports.serializeError=Ae;exports.isHangfireResponse=Re;exports.createHangfirePoller=De.default;exports.createMakeHangfireRequest=be;exports.extractProductsFromMenuTree=Ee;exports.calculateIngredientsCost=Ne;exports.calculateAddonGroupsCost=Ve;exports.getAddonGroupInfoBySettings=Me.default;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./shared/isWithinFlag.js"),r=require("./shared/generateId.js"),o=require("./shared/wait.js"),i=require("./outlet/getListOutletOpeningHoursTable.js"),u=require("./outlet/getOutletTagInformation.js"),s=require("./outlet/getOutletAvailabilityInfo.js"),n=require("./outlet/getOutletOfflineOrderFormats.js"),c=require("./outlet/getOutletAvailableOrderFormats.js"),a=require("./outlet/getOutletFormattedDistance.js"),l=require("./outlet/isOutletAcceptingPreOrders.js"),d=require("./outlet/getOutletDeliveryFee.js"),g=require("./outlet/getOutletTodayOpeningTimes.js"),q=require("./outlet/getOutletOrderFormats.js"),O=require("./outlet/serviceDateTimesFromOpeningHours.js"),_=require("./outlet/getPickerIntervalsForDay.js"),m=require("./outlet/getServiceIntervalRange.js"),k=require("./outlet/getServiceIntervalsForOrderFormat.js"),h=require("./outlet/getOutletFormattedAddress.js"),p=require("./outlet/getPartitionedOutletsList.js"),P=require("./outlet/getOutletPickerTimesForWeek.js"),C=require("./outlet/getOutletOrderPrepTime.js"),S=require("./outlet/getStructuredOutletAddress.js"),T=require("./outlet/getOutletNextOpeningTimeText.js"),F=require("./outlet/getOutletCurrentClosingTimeText.js"),f=require("./outlet/getOutletNextReadyToOrderTime.js"),y=require("./versioning/isVersionALessThanB.js"),v=require("./versioning/cleanVersionString.js"),A=require("./api/getUrlAndParams.js"),I=require("./api/getEndpointWithVersion.js"),R=require("./api/generateBackoffWithEqualJitter.js"),D=require("./api/isAcceptedResponse.js"),b=require("./api/isNoContentResponse.js"),E=require("./string/slugify.js"),N=require("./string/truncate.js"),V=require("./color/lighten.js"),M=require("./color/brighten.js"),H=require("./color/darken.js"),L=require("./color/isDarkBackground.js"),x=require("./user/getFullName.js"),W=require("./user/getFullAddressString.js"),B=require("./user/getCustomerAddressFromGeocoderResult.js"),U=require("./user/getFormattedPhoneNumber.js"),G=require("./user/getStructuredCustomerAddress.js"),w=require("./logger/Logger.js"),z=require("./logger/types.js"),J=require("./logger/sanitizeAsStringDict.js"),K=require("./logger/pascalCaseFormatter.js"),Q=require("./printing/getPrinterType.js"),j=require("./printing/isValidPrinter.js"),X=require("./printing/isValidNetworkPrinter.js"),Y=require("./printing/isValidStarCloudPrinter.js"),Z=require("./printing/isTerminalPrinter.js"),$=require("./printing/isCloudPrintModeEnabled.js"),ee=require("./number/randomIntFromInterval.js"),te=require("./tables/decodeTableQRPayload.js"),re=require("./checkout/getCheckoutItemModifications.js"),oe=require("./checkout/getCheckoutProductName.js"),e=require("./checkout/getCheckoutOrderStatusTexts.js"),ie=require("./checkout/getCheckoutItemsMappedByTicketItemStatus.js"),ue=require("./checkout/isCheckoutOrderSummary.js"),se=require("./checkout/buildCheckoutRequestItem.js"),ne=require("./checkout/getCheckoutGrandTotalAmount.js"),ce=require("./checkout/getCheckoutRequestItemFromCheckoutItem.js"),ae=require("./checkout/isCheckoutItemsAreEqual.js"),le=require("./checkout/checkoutHasWallet.js"),de=require("./checkout/getWalletMetaFromCheckout.js"),ge=require("./checkout/isPreOrderServiceTime.js"),qe=require("./checkout/isPreOrderCheckout.js"),Oe=require("./checkout/isUpdatingCheckoutAllowed.js"),_e=require("./currency/getFormattedCurrency.js"),me=require("./inventory/isDetailedProductOutOfStock.js"),ke=require("./inventory/isDetailedProductVariantOutOfStocks.js"),he=require("./inventory/isMenuTreeProductOutOfStock.js"),pe=require("./inventory/isDetailedProductUpSellsOutOfStock.js"),Pe=require("./inventory/isUpSellProductOutStock.js"),Ce=require("./inventory/isDetailedProductOutletStockOutOfStock.js"),Se=require("./inventory/getDetailedProductVariantStock.js"),Te=require("./signalr/createUseSignalRHook.js"),Fe=require("./signalr/SignalR.js"),fe=require("./error/createCodedError.js"),ye=require("./error/isCodedError.js"),ve=require("./error/isNetworkError.js"),Ae=require("./error/isLockedError.js"),Ie=require("./error/isNotFoundError.js"),Re=require("./error/serializeError.js"),De=require("./hangfire/isHangfireResponse.js"),be=require("./hangfire/createHangfirePoller.js"),Ee=require("./hangfire/createMakeHangfireRequest.js"),Ne=require("./product/extractProductsFromMenuTree.js"),Ve=require("./product/calculateIngredientsCost.js"),Me=require("./product/calculateAddonGroupCost.js"),He=require("./product/getAddonGroupInfoBySettings.js");require("moment");require("@ancon/wildcat-types");require("./outlet/constants.js");require("./outlet/getOutletCurrentActiveOperatingHour.js");require("./outlet/getMomentFromDateAndTimeString.js");require("./outlet/searchNextOpeningMoment.js");require("./_baseIsEqual-a66350f1.js");require("./isObjectLike-0cc89d64.js");require("./toString-c005c116.js");require("./shared/constants.js");require("./time/toMinutes.js");require("./time/getNextTenthMinute.js");require("./outlet/types.js");require("./outlet/getSettingsForOrderFormat.js");require("./outlet/getServiceIntervalStart.js");require("./outlet/getNextTenthMinute.js");require("./outlet/generatePickerTimesForDay.js");require("./outlet/getServiceIntervalEnd.js");require("./outlet/hoursAndMinutesToMinutes.js");require("compare-versions");require("tinycolor2");require("google-libphonenumber");require("@ancon/wildcat-printing");require("./currency/getFormattedCurrencyPostfix.js");require("react");require("react-redux");require("@microsoft/signalr");require("axios");exports.isWithinFlag=t;exports.generateId=r;exports.wait=o;exports.getListOutletOpeningHoursTable=i;exports.getOutletTagInformation=u.default;exports.getOutletAvailabilityInfo=s.default;exports.getOutletOfflineOrderFormats=n;exports.getOutletAvailableOrderFormats=c;exports.getOutletFormattedDistance=a;exports.isOutletAcceptingPreOrders=l;exports.getOutletDeliveryFee=d;exports.getOutletTodayOpeningTimes=g;exports.getOutletOrderFormats=q;exports.serviceDateTimesFromOpeningHours=O;exports.getPickerIntervalsForDay=_;exports.getServiceIntervalRange=m;exports.getServiceIntervalsForOrderFormat=k;exports.getOutletFormattedAddress=h;exports.getPartitionedOutletsList=p;exports.getOutletPickerTimesForWeek=P;exports.getOutletOrderPreparationTime=C;exports.getStructuredOutletAddress=S;exports.getOutletNextOpeningTimeText=T;exports.getOutletCurrentClosingTimeText=F;exports.getOutletNextReadyToOrderTime=f;exports.isVersionALessThanB=y;exports.cleanVersionString=v;exports.getUrlAndParams=A;exports.getEndpointWithVersion=I;exports.generateBackoffWithEqualJitter=R;exports.isAcceptedResponse=D;exports.isNoContentResponse=b;exports.slugify=E;exports.truncate=N;exports.lighten=V;exports.brighten=M;exports.darken=H;exports.isDarkBackground=L;exports.getFullName=x;exports.getFullAddressString=W;exports.getCustomerAddressFromGeocoderResult=B;exports.getFormattedPhoneNumber=U;exports.getStructuredCustomerAddress=G;exports.Logger=w;exports.LogLevel=z.LogLevel;exports.sanitizeAsStringDict=J;exports.pascalCaseFormatter=K;exports.getPrinterType=Q;exports.isValidPrinter=j;exports.isValidNetworkPrinter=X;exports.isValidStarCloudPrinter=Y;exports.isTerminalPrinter=Z;exports.isCloudPrintModeEnabled=$;exports.randomIntFromInterval=ee;exports.decodeTableQRPayload=te;exports.getCheckoutGroupedModifications=re;exports.getCheckoutProductName=oe;exports.TranslationKey=e.TranslationKey;exports.getCheckoutOrderStatusTexts=e.default;exports.getCheckoutItemsMappedByTicketItemStatus=ie;exports.isCheckoutOrderSummary=ue;exports.buildCheckoutRequestItem=se;exports.getCheckoutGrandTotalAmount=ne;exports.getCheckoutRequestItemFromCheckoutItem=ce;exports.isCheckoutItemsAreEqual=ae;exports.checkoutHasWallet=le;exports.getWalletMetaFromCheckout=de;exports.isPreOrderServiceTime=ge;exports.isPreOrderCheckout=qe;exports.isUpdatingCheckoutAllowed=Oe;exports.getFormattedCurrency=_e;exports.isDetailedProductOutOfStock=me;exports.isDetailedProductVariantOutOfStocks=ke;exports.isMenuTreeProductOutOfStock=he;exports.isDetailedProductUpSellsOutOfStock=pe;exports.isUpSellProductOutOfStock=Pe;exports.isDetailedProductOutletStockOutOfStock=Ce;exports.getDetailedProductVariantStock=Se;exports.createUseSignalRHook=Te;exports.SignalR=Fe;exports.createCodedError=fe;exports.isCodedError=ye;exports.isNetworkError=ve;exports.isLockedError=Ae;exports.isNotFoundError=Ie;exports.serializeError=Re;exports.isHangfireResponse=De;exports.createHangfirePoller=be.default;exports.createMakeHangfireRequest=Ee;exports.extractProductsFromMenuTree=Ne;exports.calculateIngredientsCost=Ve;exports.calculateAddonGroupsCost=Me;exports.getAddonGroupInfoBySettings=He.default;
package/index.mjs CHANGED
@@ -20,7 +20,7 @@ import { default as ie } from "./outlet/getPartitionedOutletsList.mjs";
20
20
  import { default as ne } from "./outlet/getOutletPickerTimesForWeek.mjs";
21
21
  import { default as ce } from "./outlet/getOutletOrderPrepTime.mjs";
22
22
  import { default as ke } from "./outlet/getStructuredOutletAddress.mjs";
23
- import { default as Ce } from "./outlet/getOutletNextOpeningTimeText.mjs";
23
+ import { default as Pe } from "./outlet/getOutletNextOpeningTimeText.mjs";
24
24
  import { default as Te } from "./outlet/getOutletCurrentClosingTimeText.mjs";
25
25
  import { default as he } from "./outlet/getOutletNextReadyToOrderTime.mjs";
26
26
  import { default as Ie } from "./versioning/isVersionALessThanB.mjs";
@@ -47,7 +47,7 @@ import { default as it } from "./logger/sanitizeAsStringDict.mjs";
47
47
  import { default as nt } from "./logger/pascalCaseFormatter.mjs";
48
48
  import { default as ct } from "./printing/getPrinterType.mjs";
49
49
  import { default as kt } from "./printing/isValidPrinter.mjs";
50
- import { default as Ct } from "./printing/isValidNetworkPrinter.mjs";
50
+ import { default as Pt } from "./printing/isValidNetworkPrinter.mjs";
51
51
  import { default as Tt } from "./printing/isValidStarCloudPrinter.mjs";
52
52
  import { default as ht } from "./printing/isTerminalPrinter.mjs";
53
53
  import { default as It } from "./printing/isCloudPrintModeEnabled.mjs";
@@ -66,29 +66,30 @@ import { default as Zt } from "./checkout/checkoutHasWallet.mjs";
66
66
  import { default as $t } from "./checkout/getWalletMetaFromCheckout.mjs";
67
67
  import { default as tr } from "./checkout/isPreOrderServiceTime.mjs";
68
68
  import { default as or } from "./checkout/isPreOrderCheckout.mjs";
69
- import { default as fr } from "./currency/getFormattedCurrency.mjs";
70
- import { default as ur } from "./inventory/isDetailedProductOutOfStock.mjs";
71
- import { default as dr } from "./inventory/isDetailedProductVariantOutOfStocks.mjs";
72
- import { default as pr } from "./inventory/isMenuTreeProductOutOfStock.mjs";
73
- import { default as xr } from "./inventory/isDetailedProductUpSellsOutOfStock.mjs";
74
- import { default as gr } from "./inventory/isUpSellProductOutStock.mjs";
75
- import { default as Or } from "./inventory/isDetailedProductOutletStockOutOfStock.mjs";
76
- import { default as Pr } from "./inventory/getDetailedProductVariantStock.mjs";
77
- import { default as Sr } from "./signalr/createUseSignalRHook.mjs";
78
- import { default as Fr } from "./signalr/SignalR.mjs";
79
- import { default as Ar } from "./error/createCodedError.mjs";
80
- import { default as yr } from "./error/isCodedError.mjs";
81
- import { default as Rr } from "./error/isNetworkError.mjs";
82
- import { default as Er } from "./error/isLockedError.mjs";
83
- import { default as br } from "./error/isNotFoundError.mjs";
84
- import { default as Hr } from "./error/serializeError.mjs";
85
- import { default as Mr } from "./hangfire/isHangfireResponse.mjs";
86
- import { default as qr } from "./hangfire/createHangfirePoller.mjs";
87
- import { default as Gr } from "./hangfire/createMakeHangfireRequest.mjs";
88
- import { default as wr } from "./product/extractProductsFromMenuTree.mjs";
89
- import { default as Jr } from "./product/calculateIngredientsCost.mjs";
90
- import { default as Qr } from "./product/calculateAddonGroupCost.mjs";
91
- import { default as Xr } from "./product/getAddonGroupInfoBySettings.mjs";
69
+ import { default as fr } from "./checkout/isUpdatingCheckoutAllowed.mjs";
70
+ import { default as ur } from "./currency/getFormattedCurrency.mjs";
71
+ import { default as dr } from "./inventory/isDetailedProductOutOfStock.mjs";
72
+ import { default as pr } from "./inventory/isDetailedProductVariantOutOfStocks.mjs";
73
+ import { default as xr } from "./inventory/isMenuTreeProductOutOfStock.mjs";
74
+ import { default as gr } from "./inventory/isDetailedProductUpSellsOutOfStock.mjs";
75
+ import { default as Or } from "./inventory/isUpSellProductOutStock.mjs";
76
+ import { default as Cr } from "./inventory/isDetailedProductOutletStockOutOfStock.mjs";
77
+ import { default as Sr } from "./inventory/getDetailedProductVariantStock.mjs";
78
+ import { default as Fr } from "./signalr/createUseSignalRHook.mjs";
79
+ import { default as Ar } from "./signalr/SignalR.mjs";
80
+ import { default as yr } from "./error/createCodedError.mjs";
81
+ import { default as Rr } from "./error/isCodedError.mjs";
82
+ import { default as Er } from "./error/isNetworkError.mjs";
83
+ import { default as br } from "./error/isLockedError.mjs";
84
+ import { default as Hr } from "./error/isNotFoundError.mjs";
85
+ import { default as Mr } from "./error/serializeError.mjs";
86
+ import { default as qr } from "./hangfire/isHangfireResponse.mjs";
87
+ import { default as Gr } from "./hangfire/createHangfirePoller.mjs";
88
+ import { default as wr } from "./hangfire/createMakeHangfireRequest.mjs";
89
+ import { default as Jr } from "./product/extractProductsFromMenuTree.mjs";
90
+ import { default as Qr } from "./product/calculateIngredientsCost.mjs";
91
+ import { default as Xr } from "./product/calculateAddonGroupCost.mjs";
92
+ import { default as Zr } from "./product/getAddonGroupInfoBySettings.mjs";
92
93
  import "moment";
93
94
  import "@ancon/wildcat-types";
94
95
  import "./outlet/constants.mjs";
@@ -120,24 +121,24 @@ import "axios";
120
121
  export {
121
122
  mt as LogLevel,
122
123
  lt as Logger,
123
- Fr as SignalR,
124
+ Ar as SignalR,
124
125
  Lt as TranslationKey,
125
126
  Ke as brighten,
126
127
  wt as buildCheckoutRequestItem,
127
- Qr as calculateAddonGroupsCost,
128
- Jr as calculateIngredientsCost,
128
+ Xr as calculateAddonGroupsCost,
129
+ Qr as calculateIngredientsCost,
129
130
  Zt as checkoutHasWallet,
130
131
  ve as cleanVersionString,
131
- Ar as createCodedError,
132
- qr as createHangfirePoller,
133
- Gr as createMakeHangfireRequest,
134
- Sr as createUseSignalRHook,
132
+ yr as createCodedError,
133
+ Gr as createHangfirePoller,
134
+ wr as createMakeHangfireRequest,
135
+ Fr as createUseSignalRHook,
135
136
  je as darken,
136
137
  Dt as decodeTableQRPayload,
137
- wr as extractProductsFromMenuTree,
138
+ Jr as extractProductsFromMenuTree,
138
139
  Ve as generateBackoffWithEqualJitter,
139
140
  N as generateId,
140
- Xr as getAddonGroupInfoBySettings,
141
+ Zr as getAddonGroupInfoBySettings,
141
142
  Jt as getCheckoutGrandTotalAmount,
142
143
  Nt as getCheckoutGroupedModifications,
143
144
  qt as getCheckoutItemsMappedByTicketItemStatus,
@@ -145,9 +146,9 @@ export {
145
146
  Vt as getCheckoutProductName,
146
147
  Qt as getCheckoutRequestItemFromCheckoutItem,
147
148
  rt as getCustomerAddressFromGeocoderResult,
148
- Pr as getDetailedProductVariantStock,
149
+ Sr as getDetailedProductVariantStock,
149
150
  Ne as getEndpointWithVersion,
150
- fr as getFormattedCurrency,
151
+ ur as getFormattedCurrency,
151
152
  at as getFormattedPhoneNumber,
152
153
  et as getFullAddressString,
153
154
  _e as getFullName,
@@ -158,7 +159,7 @@ export {
158
159
  Y as getOutletDeliveryFee,
159
160
  me as getOutletFormattedAddress,
160
161
  K as getOutletFormattedDistance,
161
- Ce as getOutletNextOpeningTimeText,
162
+ Pe as getOutletNextOpeningTimeText,
162
163
  he as getOutletNextReadyToOrderTime,
163
164
  U as getOutletOfflineOrderFormats,
164
165
  ee as getOutletOrderFormats,
@@ -179,24 +180,25 @@ export {
179
180
  Xt as isCheckoutItemsAreEqual,
180
181
  Gt as isCheckoutOrderSummary,
181
182
  It as isCloudPrintModeEnabled,
182
- yr as isCodedError,
183
+ Rr as isCodedError,
183
184
  Ye as isDarkBackground,
184
- ur as isDetailedProductOutOfStock,
185
- Or as isDetailedProductOutletStockOutOfStock,
186
- xr as isDetailedProductUpSellsOutOfStock,
187
- dr as isDetailedProductVariantOutOfStocks,
188
- Mr as isHangfireResponse,
189
- Er as isLockedError,
190
- pr as isMenuTreeProductOutOfStock,
191
- Rr as isNetworkError,
185
+ dr as isDetailedProductOutOfStock,
186
+ Cr as isDetailedProductOutletStockOutOfStock,
187
+ gr as isDetailedProductUpSellsOutOfStock,
188
+ pr as isDetailedProductVariantOutOfStocks,
189
+ qr as isHangfireResponse,
190
+ br as isLockedError,
191
+ xr as isMenuTreeProductOutOfStock,
192
+ Er as isNetworkError,
192
193
  We as isNoContentResponse,
193
- br as isNotFoundError,
194
+ Hr as isNotFoundError,
194
195
  j as isOutletAcceptingPreOrders,
195
196
  or as isPreOrderCheckout,
196
197
  tr as isPreOrderServiceTime,
197
198
  ht as isTerminalPrinter,
198
- gr as isUpSellProductOutOfStock,
199
- Ct as isValidNetworkPrinter,
199
+ Or as isUpSellProductOutOfStock,
200
+ fr as isUpdatingCheckoutAllowed,
201
+ Pt as isValidNetworkPrinter,
200
202
  kt as isValidPrinter,
201
203
  Tt as isValidStarCloudPrinter,
202
204
  Ie as isVersionALessThanB,
@@ -205,7 +207,7 @@ export {
205
207
  nt as pascalCaseFormatter,
206
208
  vt as randomIntFromInterval,
207
209
  it as sanitizeAsStringDict,
208
- Hr as serializeError,
210
+ Mr as serializeError,
209
211
  re as serviceDateTimesFromOpeningHours,
210
212
  Be as slugify,
211
213
  Ue as truncate,
@@ -1 +1 @@
1
- "use strict";const W=require("moment"),r=require("@ancon/wildcat-types"),g=require("../shared/isWithinFlag.js"),I=require("../shared/generateId.js"),O=[{id:r.OrderFormat.EatIn,name:"eatIn"},{id:r.OrderFormat.TakeAway,name:"takeaway"},{id:r.OrderFormat.TableOrder,name:"tableOrder"},{id:r.OrderFormat.Delivery,name:"delivery"}];function F(e){const n=W.utc(e).subtract(1,"day").startOf("day"),t=[];for(let y=0,o=n;y<7;y+=1)o=o.clone().add(1,"day").startOf("day"),t.push(o.clone());return t}function v(e){return[...e].sort((n,t)=>n.isoWeekday()-t.isoWeekday())}function k(e){return e.split(":").map(Number)}function T(e,n,t){const[y,o]=k(e.start),[a,u]=k(e.duration),[s,f]=k(t||"00:00:00");if(e.type===r.IntervalType.Interval){let d=n.clone().add(y,"hour").add(o,"minute");const i=d.clone().add(s,"hour").add(f,"minute").date()-n.date();i!==0&&(d=d.subtract(i,"day"));const p=d.clone().add(a,"hour").add(u,"minute");return{id:e.id,start:d.toISOString(),end:p.toISOString()}}if(e.type===r.IntervalType.Exception){const d=W(e.fromDate),m=W(e.toDate);if(n.isBetween(d,m,void 0,"[]")){const i=n.clone().add(y,"hour").add(o,"minute"),p=i.clone().add(a,"hour").add(u,"minute");return{id:e.id,start:i.toISOString(),end:p.toISOString(),reason:e.reason}}return null}throw new Error("Invalid interval type")}function S(e,n,t,y){const o={[r.DayOfWeek.Monday]:1,[r.DayOfWeek.Tuesday]:2,[r.DayOfWeek.Wednesday]:3,[r.DayOfWeek.Thursday]:4,[r.DayOfWeek.Friday]:5,[r.DayOfWeek.Saturday]:6,[r.DayOfWeek.Sunday]:7,[r.DayOfWeek.Everyday]:null};for(let a=0;a<n.length;a+=1){const u=n[a],s=u.isoWeekday(),f=e.dayOfWeek,m=(o[f]??null)===s||f===r.DayOfWeek.Everyday;if(t[s]||(t[s]={isoWeekday:s,key:"",open:[],adjusted:[],closed:[]}),m){const i=T(e,u,y);i&&(t[s].key+=i.id,e.type===r.IntervalType.Interval&&e.state===r.IntervalState.Open?t[s].open.push(i):e.type===r.IntervalType.Interval&&e.state===r.IntervalState.Closed?t[s].closed.push(i):e.type===r.IntervalType.Exception&&e.state===r.IntervalState.Open?t[s].adjusted.push(i):e.type===r.IntervalType.Exception&&e.state===r.IntervalState.Closed&&t[s].closed.push(i))}}}function h(e){switch(e.type){case r.IntervalType.Exception:return I("interval-exception");case r.IntervalType.Interval:return I("interval-normal");default:return I("interval-unknown")}}function D(e){const n=e.reduce((t,y)=>(O.forEach(o=>{g(o.id,y.orderFormats)&&(t[o.id]||(t[o.id]={orderFormat:o,intervals:[]}),t[o.id].intervals.push(...y.intervals.sort((a,u)=>a.dayOfWeek-u.dayOfWeek)))}),t),{});return Object.values(n)}function M(e){return e.reduce((n,t,y)=>{const o=n.findIndex(a=>a!==t&&!a.orderFormats.some(u=>t.orderFormats.some(s=>s.id===u.id))&&a.openingHours.every(u=>t.openingHours.some(s=>s.key===u.key))&&t.openingHours.every(u=>a.openingHours.some(s=>s.key===u.key)));if(o>=0){const a=n[o];return n.splice(o,1,{...a,orderFormats:[...t.orderFormats,...a.orderFormats]}),n.splice(y,1),n}return n},[...e])}function H(e){return e.map(n=>({...n,intervals:n.intervals.map(t=>({...t,id:h(t)}))}))}function E(e,n){const t=D(H(e.serviceDateTimes)),y=F(n),o=v(y),a=t.reduce((d,m)=>(d[m.orderFormat.id]||(d[m.orderFormat.id]={}),m.intervals.reduce((i,p)=>(S(p,o,i,e.timeZoneOffset),i),d[m.orderFormat.id]),d),{}),u={[r.OrderFormat.EatIn]:O[0],[r.OrderFormat.TakeAway]:O[1],[r.OrderFormat.TableOrder]:O[2],[r.OrderFormat.Delivery]:O[3]},s=Object.entries(a).map(([d,m])=>({orderFormats:[u[Number(d)]],openingHours:Object.entries(m).map(([i,p])=>({isoWeekday:Number(i),key:p.key,open:p.open.sort((l,c)=>l.start.localeCompare(c.start)),adjusted:p.adjusted.sort((l,c)=>l.start.localeCompare(c.start)),closed:p.closed.sort((l,c)=>l.start.localeCompare(c.start))}))}));return M(s).sort((d,m)=>d.orderFormats[0].id-m.orderFormats[0].id)}module.exports=E;
1
+ "use strict";const F=require("moment"),r=require("@ancon/wildcat-types"),g=require("../shared/isWithinFlag.js"),I=require("../shared/generateId.js"),c=[{id:r.OrderFormat.EatIn,name:"eatIn"},{id:r.OrderFormat.TakeAway,name:"takeaway"},{id:r.OrderFormat.TableOrder,name:"tableOrder"},{id:r.OrderFormat.Delivery,name:"delivery"}];function v(e){const o=F.utc(e).subtract(1,"day").startOf("day"),t=[];for(let s=0,d=o;s<7;s+=1)d=d.clone().add(1,"day").startOf("day"),t.push(d.clone());return t}function W(e){return[...e].sort((o,t)=>o.isoWeekday()-t.isoWeekday())}function k(e){return e.split(":").map(Number)}function T(e,o,t){const[s,d]=k(e.start),[p,m]=k(e.duration),[n,y]=k(t||"00:00:00");if(e.type===r.IntervalType.Interval){let i=o.clone().add(s,"hour").add(d,"minute");const a=i.clone().add(n,"hour").add(y,"minute").date()-o.date();a!==0&&(i=i.subtract(a,"day"));const f=i.clone().add(p,"hour").add(m,"minute");return{id:e.id,start:i.toISOString(),end:f.toISOString()}}if(e.type===r.IntervalType.Exception){const i=F(e.fromDate),u=F(e.toDate);if(o.isBetween(i,u,void 0,"[]")){const a=o.clone().add(s,"hour").add(d,"minute"),f=a.clone().add(p,"hour").add(m,"minute");return{id:e.id,start:a.toISOString(),end:f.toISOString(),reason:e.reason}}return null}throw new Error("Invalid interval type")}function S(e,o,t,s){const d={[r.DayOfWeek.Monday]:1,[r.DayOfWeek.Tuesday]:2,[r.DayOfWeek.Wednesday]:3,[r.DayOfWeek.Thursday]:4,[r.DayOfWeek.Friday]:5,[r.DayOfWeek.Saturday]:6,[r.DayOfWeek.Sunday]:7,[r.DayOfWeek.Everyday]:null};for(let p=0;p<o.length;p+=1){const m=o[p],n=m.isoWeekday(),y=e.dayOfWeek,u=(d[y]??null)===n||y===r.DayOfWeek.Everyday;if(t[n]||(t[n]={isoWeekday:n,key:"",open:[],adjusted:[],closed:[]}),u){const a=T(e,m,s);a&&(t[n].key+=a.id,e.type===r.IntervalType.Interval&&e.state===r.IntervalState.Open?t[n].open.push(a):e.type===r.IntervalType.Interval&&e.state===r.IntervalState.Closed?t[n].closed.push(a):e.type===r.IntervalType.Exception&&e.state===r.IntervalState.Open?t[n].adjusted.push(a):e.type===r.IntervalType.Exception&&e.state===r.IntervalState.Closed&&t[n].closed.push(a))}}}function h(e){switch(e.type){case r.IntervalType.Exception:return I("interval-exception");case r.IntervalType.Interval:return I("interval-normal");default:return I("interval-unknown")}}function D(e){const o=e.reduce((t,s)=>(c.forEach(d=>{g(d.id,s.orderFormats)&&(t[d.id]||(t[d.id]={orderFormat:d,intervals:[]}),t[d.id].intervals.push(...s.intervals.sort((p,m)=>p.dayOfWeek-m.dayOfWeek)))}),t),{});return Object.values(o)}function M(e,o){const t=o.reduce((s,d)=>d<=e?s+1:s,0);return e-t}function H(e){const{mergedTables:o}=e.reduce((t,s,d)=>{const p=t.mergedTables.findIndex(m=>m!==s&&!m.orderFormats.some(n=>s.orderFormats.some(y=>y.id===n.id))&&m.openingHours.every(n=>s.openingHours.some(y=>y.key===n.key))&&s.openingHours.every(n=>m.openingHours.some(y=>y.key===n.key)));if(p>=0){if(t.skipOrderFormats.some(u=>s.orderFormats.every(a=>a.id===u.id)))return t;const n=t.mergedTables[p];t.mergedTables.splice(p,1,{...n,orderFormats:[...s.orderFormats,...n.orderFormats]});const y=n.orderFormats.filter(u=>!t.skipOrderFormats.some(a=>a.id===u.id));y.length>0&&t.skipOrderFormats.push(...y);const i=M(d,[...t.removedIndexes]);return t.mergedTables.splice(i,1),t.removedIndexes.push(d),t}return t},{mergedTables:[...e],removedIndexes:[],skipOrderFormats:[]});return o}function x(e){return e.map(o=>({...o,intervals:o.intervals.map(t=>({...t,id:h(t)}))}))}function E(e,o){const t=D(x(e.serviceDateTimes)),s=v(o),d=W(s),p=t.reduce((i,u)=>(i[u.orderFormat.id]||(i[u.orderFormat.id]={}),u.intervals.reduce((a,f)=>(S(f,d,a,e.timeZoneOffset),a),i[u.orderFormat.id]),i),{}),m={[r.OrderFormat.EatIn]:c[0],[r.OrderFormat.TakeAway]:c[1],[r.OrderFormat.TableOrder]:c[2],[r.OrderFormat.Delivery]:c[3]},n=Object.entries(p).map(([i,u])=>({orderFormats:[m[Number(i)]],openingHours:Object.entries(u).map(([a,f])=>({isoWeekday:Number(a),key:f.key,open:f.open.sort((l,O)=>l.start.localeCompare(O.start)),adjusted:f.adjusted.sort((l,O)=>l.start.localeCompare(O.start)),closed:f.closed.sort((l,O)=>l.start.localeCompare(O.start))}))}));return H(n).sort((i,u)=>i.orderFormats[0].id-u.orderFormats[0].id)}module.exports=E;
@@ -1,48 +1,48 @@
1
- import M from "moment";
2
- import { OrderFormat as f, DayOfWeek as y, IntervalType as c, IntervalState as g } from "@ancon/wildcat-types";
1
+ import S from "moment";
2
+ import { OrderFormat as l, DayOfWeek as y, IntervalType as c, IntervalState as g } from "@ancon/wildcat-types";
3
3
  import h from "../shared/isWithinFlag.mjs";
4
- import W from "../shared/generateId.mjs";
5
- const k = [
6
- { id: f.EatIn, name: "eatIn" },
7
- { id: f.TakeAway, name: "takeaway" },
8
- { id: f.TableOrder, name: "tableOrder" },
9
- { id: f.Delivery, name: "delivery" }
4
+ import F from "../shared/generateId.mjs";
5
+ const I = [
6
+ { id: l.EatIn, name: "eatIn" },
7
+ { id: l.TakeAway, name: "takeaway" },
8
+ { id: l.TableOrder, name: "tableOrder" },
9
+ { id: l.Delivery, name: "delivery" }
10
10
  ];
11
- function S(e) {
12
- const n = M.utc(e).subtract(1, "day").startOf("day"), t = [];
13
- for (let u = 0, o = n; u < 7; u += 1)
14
- o = o.clone().add(1, "day").startOf("day"), t.push(o.clone());
11
+ function v(e) {
12
+ const o = S.utc(e).subtract(1, "day").startOf("day"), t = [];
13
+ for (let n = 0, s = o; n < 7; n += 1)
14
+ s = s.clone().add(1, "day").startOf("day"), t.push(s.clone());
15
15
  return t;
16
16
  }
17
- function v(e) {
18
- return [...e].sort((n, t) => n.isoWeekday() - t.isoWeekday());
17
+ function T(e) {
18
+ return [...e].sort((o, t) => o.isoWeekday() - t.isoWeekday());
19
19
  }
20
- function F(e) {
20
+ function W(e) {
21
21
  return e.split(":").map(Number);
22
22
  }
23
- function H(e, n, t) {
24
- const [u, o] = F(e.start), [s, i] = F(
23
+ function M(e, o, t) {
24
+ const [n, s] = W(e.start), [m, u] = W(
25
25
  e.duration
26
- ), [r, l] = F(t || "00:00:00");
26
+ ), [r, p] = W(t || "00:00:00");
27
27
  if (e.type === c.Interval) {
28
- let d = n.clone().add(u, "hour").add(o, "minute");
29
- const a = d.clone().add(r, "hour").add(l, "minute").date() - n.date();
30
- a !== 0 && (d = d.subtract(a, "day"));
31
- const p = d.clone().add(s, "hour").add(i, "minute");
28
+ let a = o.clone().add(n, "hour").add(s, "minute");
29
+ const d = a.clone().add(r, "hour").add(p, "minute").date() - o.date();
30
+ d !== 0 && (a = a.subtract(d, "day"));
31
+ const f = a.clone().add(m, "hour").add(u, "minute");
32
32
  return {
33
33
  id: e.id,
34
- start: d.toISOString(),
35
- end: p.toISOString()
34
+ start: a.toISOString(),
35
+ end: f.toISOString()
36
36
  };
37
37
  }
38
38
  if (e.type === c.Exception) {
39
- const d = M(e.fromDate), m = M(e.toDate);
40
- if (n.isBetween(d, m, void 0, "[]")) {
41
- const a = n.clone().add(u, "hour").add(o, "minute"), p = a.clone().add(s, "hour").add(i, "minute");
39
+ const a = S(e.fromDate), i = S(e.toDate);
40
+ if (o.isBetween(a, i, void 0, "[]")) {
41
+ const d = o.clone().add(n, "hour").add(s, "minute"), f = d.clone().add(m, "hour").add(u, "minute");
42
42
  return {
43
43
  id: e.id,
44
- start: a.toISOString(),
45
- end: p.toISOString(),
44
+ start: d.toISOString(),
45
+ end: f.toISOString(),
46
46
  reason: e.reason
47
47
  };
48
48
  }
@@ -50,8 +50,8 @@ function H(e, n, t) {
50
50
  }
51
51
  throw new Error("Invalid interval type");
52
52
  }
53
- function E(e, n, t, u) {
54
- const o = {
53
+ function H(e, o, t, n) {
54
+ const s = {
55
55
  [y.Monday]: 1,
56
56
  [y.Tuesday]: 2,
57
57
  [y.Wednesday]: 3,
@@ -61,123 +61,138 @@ function E(e, n, t, u) {
61
61
  [y.Sunday]: 7,
62
62
  [y.Everyday]: null
63
63
  };
64
- for (let s = 0; s < n.length; s += 1) {
65
- const i = n[s], r = i.isoWeekday(), l = e.dayOfWeek, m = (o[l] ?? null) === r || l === y.Everyday;
64
+ for (let m = 0; m < o.length; m += 1) {
65
+ const u = o[m], r = u.isoWeekday(), p = e.dayOfWeek, i = (s[p] ?? null) === r || p === y.Everyday;
66
66
  if (t[r] || (t[r] = {
67
67
  isoWeekday: r,
68
68
  key: "",
69
69
  open: [],
70
70
  adjusted: [],
71
71
  closed: []
72
- }), m) {
73
- const a = H(
72
+ }), i) {
73
+ const d = M(
74
74
  e,
75
- i,
76
- u
75
+ u,
76
+ n
77
77
  );
78
- a && (t[r].key += a.id, e.type === c.Interval && e.state === g.Open ? t[r].open.push(a) : e.type === c.Interval && e.state === g.Closed ? t[r].closed.push(a) : e.type === c.Exception && e.state === g.Open ? t[r].adjusted.push(a) : e.type === c.Exception && e.state === g.Closed && t[r].closed.push(a));
78
+ d && (t[r].key += d.id, e.type === c.Interval && e.state === g.Open ? t[r].open.push(d) : e.type === c.Interval && e.state === g.Closed ? t[r].closed.push(d) : e.type === c.Exception && e.state === g.Open ? t[r].adjusted.push(d) : e.type === c.Exception && e.state === g.Closed && t[r].closed.push(d));
79
79
  }
80
80
  }
81
81
  }
82
- function T(e) {
82
+ function x(e) {
83
83
  switch (e.type) {
84
84
  case c.Exception:
85
- return W("interval-exception");
85
+ return F("interval-exception");
86
86
  case c.Interval:
87
- return W("interval-normal");
87
+ return F("interval-normal");
88
88
  default:
89
- return W("interval-unknown");
89
+ return F("interval-unknown");
90
90
  }
91
91
  }
92
- function x(e) {
93
- const n = e.reduce(
94
- (t, u) => (k.forEach((o) => {
95
- h(o.id, u.orderFormats) && (t[o.id] || (t[o.id] = {
96
- orderFormat: o,
92
+ function E(e) {
93
+ const o = e.reduce(
94
+ (t, n) => (I.forEach((s) => {
95
+ h(s.id, n.orderFormats) && (t[s.id] || (t[s.id] = {
96
+ orderFormat: s,
97
97
  intervals: []
98
- }), t[o.id].intervals.push(
99
- ...u.intervals.sort(
100
- (s, i) => s.dayOfWeek - i.dayOfWeek
98
+ }), t[s.id].intervals.push(
99
+ ...n.intervals.sort(
100
+ (m, u) => m.dayOfWeek - u.dayOfWeek
101
101
  )
102
102
  ));
103
103
  }), t),
104
104
  {}
105
105
  );
106
- return Object.values(n);
106
+ return Object.values(o);
107
+ }
108
+ function D(e, o) {
109
+ const t = o.reduce((n, s) => s <= e ? n + 1 : n, 0);
110
+ return e - t;
107
111
  }
108
- function D(e) {
109
- return e.reduce(
110
- (n, t, u) => {
111
- const o = n.findIndex(
112
- (s) => s !== t && !s.orderFormats.some(
113
- (i) => t.orderFormats.some(
114
- (r) => r.id === i.id
112
+ function b(e) {
113
+ const { mergedTables: o } = e.reduce(
114
+ (t, n, s) => {
115
+ const m = t.mergedTables.findIndex(
116
+ (u) => u !== n && !u.orderFormats.some(
117
+ (r) => n.orderFormats.some(
118
+ (p) => p.id === r.id
115
119
  )
116
- ) && s.openingHours.every(
117
- (i) => t.openingHours.some((r) => r.key === i.key)
118
- ) && t.openingHours.every(
119
- (i) => s.openingHours.some((r) => r.key === i.key)
120
+ ) && u.openingHours.every(
121
+ (r) => n.openingHours.some((p) => p.key === r.key)
122
+ ) && n.openingHours.every(
123
+ (r) => u.openingHours.some((p) => p.key === r.key)
120
124
  )
121
125
  );
122
- if (o >= 0) {
123
- const s = n[o];
124
- return n.splice(o, 1, {
125
- ...s,
126
- orderFormats: [...t.orderFormats, ...s.orderFormats]
127
- }), n.splice(u, 1), n;
126
+ if (m >= 0) {
127
+ if (t.skipOrderFormats.some(
128
+ (i) => n.orderFormats.every((d) => d.id === i.id)
129
+ ))
130
+ return t;
131
+ const r = t.mergedTables[m];
132
+ t.mergedTables.splice(m, 1, {
133
+ ...r,
134
+ orderFormats: [...n.orderFormats, ...r.orderFormats]
135
+ });
136
+ const p = r.orderFormats.filter(
137
+ (i) => !t.skipOrderFormats.some((d) => d.id === i.id)
138
+ );
139
+ p.length > 0 && t.skipOrderFormats.push(...p);
140
+ const a = D(s, [...t.removedIndexes]);
141
+ return t.mergedTables.splice(a, 1), t.removedIndexes.push(s), t;
128
142
  }
129
- return n;
143
+ return t;
130
144
  },
131
- [...e]
145
+ { mergedTables: [...e], removedIndexes: [], skipOrderFormats: [] }
132
146
  );
147
+ return o;
133
148
  }
134
149
  function j(e) {
135
- return e.map((n) => ({
136
- ...n,
137
- intervals: n.intervals.map((t) => ({
150
+ return e.map((o) => ({
151
+ ...o,
152
+ intervals: o.intervals.map((t) => ({
138
153
  ...t,
139
- id: T(t)
154
+ id: x(t)
140
155
  }))
141
156
  }));
142
157
  }
143
- function R(e, n) {
144
- const t = x(
158
+ function R(e, o) {
159
+ const t = E(
145
160
  j(e.serviceDateTimes)
146
- ), u = S(n), o = v(u), s = t.reduce(
147
- (d, m) => (d[m.orderFormat.id] || (d[m.orderFormat.id] = {}), m.intervals.reduce((a, p) => (E(
148
- p,
149
- o,
150
- a,
161
+ ), n = v(o), s = T(n), m = t.reduce(
162
+ (a, i) => (a[i.orderFormat.id] || (a[i.orderFormat.id] = {}), i.intervals.reduce((d, f) => (H(
163
+ f,
164
+ s,
165
+ d,
151
166
  e.timeZoneOffset
152
- ), a), d[m.orderFormat.id]), d),
167
+ ), d), a[i.orderFormat.id]), a),
153
168
  {}
154
- ), i = {
155
- [f.EatIn]: k[0],
156
- [f.TakeAway]: k[1],
157
- [f.TableOrder]: k[2],
158
- [f.Delivery]: k[3]
169
+ ), u = {
170
+ [l.EatIn]: I[0],
171
+ [l.TakeAway]: I[1],
172
+ [l.TableOrder]: I[2],
173
+ [l.Delivery]: I[3]
159
174
  }, r = Object.entries(
160
- s
161
- ).map(([d, m]) => ({
162
- orderFormats: [i[Number(d)]],
163
- openingHours: Object.entries(m).map(
164
- ([a, p]) => ({
165
- isoWeekday: Number(a),
166
- key: p.key,
167
- open: p.open.sort(
168
- (I, O) => I.start.localeCompare(O.start)
175
+ m
176
+ ).map(([a, i]) => ({
177
+ orderFormats: [u[Number(a)]],
178
+ openingHours: Object.entries(i).map(
179
+ ([d, f]) => ({
180
+ isoWeekday: Number(d),
181
+ key: f.key,
182
+ open: f.open.sort(
183
+ (O, k) => O.start.localeCompare(k.start)
169
184
  ),
170
- adjusted: p.adjusted.sort(
171
- (I, O) => I.start.localeCompare(O.start)
185
+ adjusted: f.adjusted.sort(
186
+ (O, k) => O.start.localeCompare(k.start)
172
187
  ),
173
- closed: p.closed.sort(
174
- (I, O) => I.start.localeCompare(O.start)
188
+ closed: f.closed.sort(
189
+ (O, k) => O.start.localeCompare(k.start)
175
190
  )
176
191
  })
177
192
  )
178
193
  }));
179
- return D(r).sort(
180
- (d, m) => d.orderFormats[0].id - m.orderFormats[0].id
194
+ return b(r).sort(
195
+ (a, i) => a.orderFormats[0].id - i.orderFormats[0].id
181
196
  );
182
197
  }
183
198
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ancon/wildcat-utils",
3
- "version": "1.32.0",
3
+ "version": "1.33.0",
4
4
  "private": false,
5
5
  "main": "index.js",
6
6
  "module": "index.mjs",
@@ -131,6 +131,11 @@
131
131
  "require": "./checkout/isPreOrderServiceTime.js",
132
132
  "types": "./checkout/isPreOrderServiceTime.d.ts"
133
133
  },
134
+ "./checkout/isUpdatingCheckoutAllowed": {
135
+ "import": "./checkout/isUpdatingCheckoutAllowed.mjs",
136
+ "require": "./checkout/isUpdatingCheckoutAllowed.js",
137
+ "types": "./checkout/isUpdatingCheckoutAllowed.d.ts"
138
+ },
134
139
  "./checkout/types": {
135
140
  "import": "./checkout/types.mjs",
136
141
  "require": "./checkout/types.js",