@orderingstack/front-components-product-configurator 1.4.2-beta.7 → 1.5.2-beta.28

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.
package/dist/index.es.js CHANGED
@@ -6275,6 +6275,160 @@ const cleanSelected = (selected) => {
6275
6275
  const decodeSelected = (selected) => {
6276
6276
  return decodeValue("selected", selected);
6277
6277
  };
6278
+ var EPaymentStatus;
6279
+ (function(EPaymentStatus2) {
6280
+ EPaymentStatus2["UNINITIALIZED"] = "UNINITIALIZED";
6281
+ EPaymentStatus2["PROCESSING"] = "PROCESSING";
6282
+ EPaymentStatus2["PAID"] = "PAID";
6283
+ EPaymentStatus2["FAILED"] = "FAILED";
6284
+ EPaymentStatus2["PRINTING_RECEIPT"] = "PRINTING_RECEIPT";
6285
+ EPaymentStatus2["PRINTING_RECEIPT_SUCCESS"] = "PRINTING_RECEIPT_SUCCESS";
6286
+ EPaymentStatus2["SENDING_RECEIPT"] = "SENDING_RECEIPT";
6287
+ EPaymentStatus2["SENDING_RECEIPT_SUCCESS"] = "SENDING_RECEIPT_SUCCESS";
6288
+ EPaymentStatus2["ERROR"] = "ERROR";
6289
+ })(EPaymentStatus || (EPaymentStatus = {}));
6290
+ var ECouponViewType;
6291
+ (function(ECouponViewType2) {
6292
+ ECouponViewType2["CAROUSEL"] = "carousel";
6293
+ ECouponViewType2["NORMAL"] = "normal";
6294
+ ECouponViewType2["IMAGE"] = "image";
6295
+ })(ECouponViewType || (ECouponViewType = {}));
6296
+ var EProductKind;
6297
+ (function(EProductKind2) {
6298
+ EProductKind2["GROUP"] = "3e/group";
6299
+ EProductKind2["PRODUCT"] = "3e/product";
6300
+ EProductKind2["CATEGORY"] = "3e/group/category";
6301
+ EProductKind2["OPTIONS"] = "3e/group/options";
6302
+ EProductKind2["CONFIG"] = "3e/group/config";
6303
+ EProductKind2["STATIC"] = "3e/static";
6304
+ EProductKind2["REF"] = "3e/ref";
6305
+ EProductKind2["QUERY"] = "3e/query";
6306
+ EProductKind2["CMS"] = "3e/cms";
6307
+ })(EProductKind || (EProductKind = {}));
6308
+ var EProductKindBucket;
6309
+ (function(EProductKindBucket2) {
6310
+ EProductKindBucket2["GROUP"] = "group";
6311
+ EProductKindBucket2["PRODUCT"] = "product";
6312
+ })(EProductKindBucket || (EProductKindBucket = {}));
6313
+ var EOrderUserRole;
6314
+ (function(EOrderUserRole2) {
6315
+ EOrderUserRole2["CREATOR"] = "CREATOR";
6316
+ EOrderUserRole2["CUSTOMER"] = "CUSTOMER";
6317
+ EOrderUserRole2["COUPONS"] = "COUPON";
6318
+ EOrderUserRole2["KIOSK"] = "KIOSK";
6319
+ EOrderUserRole2["WAITER"] = "WAITER";
6320
+ EOrderUserRole2["MANAGER"] = "MANAGER";
6321
+ EOrderUserRole2["VIEWER"] = "VIEWER";
6322
+ EOrderUserRole2["DRIVER"] = "DRIVER";
6323
+ EOrderUserRole2["STAFF"] = "STAFF";
6324
+ })(EOrderUserRole || (EOrderUserRole = {}));
6325
+ var EOrderType;
6326
+ (function(EOrderType2) {
6327
+ EOrderType2["TAKE_AWAY"] = "TAKE_AWAY";
6328
+ EOrderType2["DELIVERY"] = "DELIVERY";
6329
+ EOrderType2["DINE_IN"] = "DINE_IN";
6330
+ EOrderType2["DINE_IN_OPEN"] = "DINE_IN_OPEN";
6331
+ EOrderType2["GLOVO_DELIVERY"] = "GLOVO_DELIVERY";
6332
+ EOrderType2["GLOVO_TAKE_AWAY"] = "GLOVO_TAKE_AWAY";
6333
+ EOrderType2["JUSTEAT_DELIVERY"] = "JUSTEAT_DELIVERY";
6334
+ EOrderType2["JUSTEAT_TAKE_AWAY"] = "JUSTEAT_TAKE_AWAY";
6335
+ EOrderType2["UBER_DELIVERY"] = "UBER_DELIVERY";
6336
+ EOrderType2["UBER_TAKE_AWAY"] = "UBER_TAKE_AWAY";
6337
+ EOrderType2["UBER_DINE_IN"] = "UBER_DINE_IN";
6338
+ EOrderType2["WOLT_DELIVERY"] = "WOLT_DELIVERY";
6339
+ EOrderType2["WOLT_TAKE_AWAY"] = "WOLT_TAKE_AWAY";
6340
+ EOrderType2["WOLT_DINE_IN"] = "WOLT_DINE_IN";
6341
+ EOrderType2["BOLT_DELIVERY"] = "BOLT_DELIVERY";
6342
+ EOrderType2["BOLT_TAKE_AWAY"] = "BOLT_TAKE_AWAY";
6343
+ EOrderType2["BOLT_DINE_IN"] = "BOLT_DINE_IN";
6344
+ EOrderType2["TAZZ_DELIVERY"] = "TAZZ_DELIVERY";
6345
+ EOrderType2["TAZZ_TAKE_AWAY"] = "TAZZ_TAKE_AWAY";
6346
+ EOrderType2["UPMENU_DELIVERY"] = "UPMENU_DELIVERY";
6347
+ EOrderType2["UPMENU_TAKE_AWAY"] = "UPMENU_TAKE_AWAY";
6348
+ EOrderType2["UPMENU_DINE_IN"] = "UPMENU_DINE_IN";
6349
+ })(EOrderType || (EOrderType = {}));
6350
+ var EOrderSource;
6351
+ (function(EOrderSource2) {
6352
+ EOrderSource2["KIOSK"] = "KIOSK";
6353
+ EOrderSource2["WEB"] = "WEB";
6354
+ EOrderSource2["JUST_EAT_TAKE_AWAY"] = "JUSTEATTAKEAWAY";
6355
+ EOrderSource2["GLOVO"] = "GLOVO";
6356
+ EOrderSource2["PYSZNE"] = "PYSZNE";
6357
+ EOrderSource2["WOLT"] = "WOLT";
6358
+ EOrderSource2["UBER"] = "UBER";
6359
+ EOrderSource2["BOLT"] = "BOLT";
6360
+ EOrderSource2["TAZZ"] = "TAZZ";
6361
+ EOrderSource2["POS"] = "POS";
6362
+ EOrderSource2["UPMENU"] = "UPMENU";
6363
+ })(EOrderSource || (EOrderSource = {}));
6364
+ var EChannelName;
6365
+ (function(EChannelName2) {
6366
+ EChannelName2["DINE_IN"] = "DINE_IN";
6367
+ EChannelName2["TAKE_AWAY"] = "TAKE_AWAY";
6368
+ EChannelName2["DELIVERY"] = "DELIVERY";
6369
+ EChannelName2["GLOVO"] = "GLOVO";
6370
+ EChannelName2["JUSTEAT"] = "JUSTEAT";
6371
+ EChannelName2["UBER"] = "UBER";
6372
+ EChannelName2["BOLT"] = "BOLT";
6373
+ EChannelName2["WOLT"] = "WOLT";
6374
+ EChannelName2["TAZZ"] = "TAZZ";
6375
+ EChannelName2["UPMENU"] = "UPMENU";
6376
+ })(EChannelName || (EChannelName = {}));
6377
+ var EOrderStatus;
6378
+ (function(EOrderStatus2) {
6379
+ EOrderStatus2["NEW"] = "NEW";
6380
+ EOrderStatus2["COMPLETED"] = "COMPLETED";
6381
+ EOrderStatus2["VERIFIED"] = "VERIFIED";
6382
+ EOrderStatus2["DELIVER"] = "DELIVER";
6383
+ EOrderStatus2["DELIVERED"] = "DELIVERED";
6384
+ EOrderStatus2["CLOSED"] = "CLOSED";
6385
+ EOrderStatus2["ABANDONED"] = "ABANDONED";
6386
+ EOrderStatus2["CANCELLED"] = "CANCELLED";
6387
+ EOrderStatus2["PICKED"] = "PICKED";
6388
+ })(EOrderStatus || (EOrderStatus = {}));
6389
+ var EOrderPaymentType;
6390
+ (function(EOrderPaymentType2) {
6391
+ EOrderPaymentType2["CASH"] = "CASH";
6392
+ EOrderPaymentType2["CARD"] = "CARD";
6393
+ EOrderPaymentType2["COD"] = "COD";
6394
+ EOrderPaymentType2["TERMINAL"] = "TERMINAL";
6395
+ EOrderPaymentType2["EPAYMENT"] = "EPAYMENT";
6396
+ EOrderPaymentType2["COUPON"] = "COUPON";
6397
+ EOrderPaymentType2["WALLET"] = "WALLET";
6398
+ EOrderPaymentType2["PREAUTHORIZED"] = "PREAUTHORIZED";
6399
+ EOrderPaymentType2["RETURN"] = "RETURN";
6400
+ EOrderPaymentType2["EXTERNAL"] = "EXTERNAL";
6401
+ })(EOrderPaymentType || (EOrderPaymentType = {}));
6402
+ var ERbiOrderExtra;
6403
+ (function(ERbiOrderExtra2) {
6404
+ ERbiOrderExtra2["POINTS_TOTAL"] = "x-rbi-loyalty-points";
6405
+ ERbiOrderExtra2["POINTS_EARNED"] = "x-rbi-points-earned";
6406
+ ERbiOrderExtra2["REWARDS"] = "x-rbi-rewards";
6407
+ ERbiOrderExtra2["OFFERS"] = "x-rbi-offers";
6408
+ ERbiOrderExtra2["CUSTOMER_NAME"] = "x-customer-name";
6409
+ })(ERbiOrderExtra || (ERbiOrderExtra = {}));
6410
+ var EOrderLineStatus;
6411
+ (function(EOrderLineStatus2) {
6412
+ EOrderLineStatus2["NEW"] = "NEW";
6413
+ EOrderLineStatus2["TECHNICAL"] = "TECHNICAL";
6414
+ EOrderLineStatus2["CONFIRMED"] = "CONFIRMED";
6415
+ EOrderLineStatus2["PROCESSING"] = "PROCESSING";
6416
+ EOrderLineStatus2["PROCESSED"] = "PROCESSED";
6417
+ EOrderLineStatus2["VOID"] = "VOID";
6418
+ EOrderLineStatus2["WASTE"] = "WASTE";
6419
+ })(EOrderLineStatus || (EOrderLineStatus = {}));
6420
+ var EOrderProductKind;
6421
+ (function(EOrderProductKind2) {
6422
+ EOrderProductKind2["GROUP"] = "group";
6423
+ EOrderProductKind2["PRODUCT"] = "product";
6424
+ })(EOrderProductKind || (EOrderProductKind = {}));
6425
+ var ENotificationType;
6426
+ (function(ENotificationType2) {
6427
+ ENotificationType2["ORDER_EVENT_ERROR"] = "OrderEventError";
6428
+ ENotificationType2["ORDER_APPLIED_EVENTS"] = "OrderAppliedEvents";
6429
+ ENotificationType2["ORDER_EVENT_FISCAL"] = "OrderEventFiscal";
6430
+ ENotificationType2["ORDER_UPSELL"] = "OrderUpsell";
6431
+ })(ENotificationType || (ENotificationType = {}));
6278
6432
  const isApiBooleanTrue = (value) => {
6279
6433
  if (value === "true" || value === true) {
6280
6434
  return true;
@@ -6302,6 +6456,25 @@ const isVisible = (item) => {
6302
6456
  const isHidden = ((_a = item == null ? void 0 : item.attrs) == null ? void 0 : _a.hidden) === true || ((_b = item == null ? void 0 : item["_"]) == null ? void 0 : _b.hidden) === "true";
6303
6457
  return !isHidden;
6304
6458
  };
6459
+ function findGroupInProductItemsBySelCtx(selCtx, parent) {
6460
+ var _a;
6461
+ if (!parent.items) {
6462
+ return null;
6463
+ }
6464
+ for (let i2 = 0; i2 < ((_a = parent.items) == null ? void 0 : _a.length); i2++) {
6465
+ const prod = parent.items[i2];
6466
+ if (prod.selCtx === selCtx && prod.kind === EProductKind.OPTIONS) {
6467
+ return prod;
6468
+ }
6469
+ if (prod.items && prod.items.length > 0) {
6470
+ const found = findGroupInProductItemsBySelCtx(selCtx, prod);
6471
+ if (found) {
6472
+ return found;
6473
+ }
6474
+ }
6475
+ }
6476
+ return null;
6477
+ }
6305
6478
  function createStore(createState) {
6306
6479
  let state;
6307
6480
  const listeners = /* @__PURE__ */ new Set();
@@ -6697,171 +6870,17 @@ function useProductConfigurator(product) {
6697
6870
  decreaseProductQuantity
6698
6871
  };
6699
6872
  }
6700
- var EPaymentStatus;
6701
- (function(EPaymentStatus2) {
6702
- EPaymentStatus2["UNINITIALIZED"] = "UNINITIALIZED";
6703
- EPaymentStatus2["PROCESSING"] = "PROCESSING";
6704
- EPaymentStatus2["PAID"] = "PAID";
6705
- EPaymentStatus2["FAILED"] = "FAILED";
6706
- EPaymentStatus2["PRINTING_RECEIPT"] = "PRINTING_RECEIPT";
6707
- EPaymentStatus2["PRINTING_RECEIPT_SUCCESS"] = "PRINTING_RECEIPT_SUCCESS";
6708
- EPaymentStatus2["SENDING_RECEIPT"] = "SENDING_RECEIPT";
6709
- EPaymentStatus2["SENDING_RECEIPT_SUCCESS"] = "SENDING_RECEIPT_SUCCESS";
6710
- EPaymentStatus2["ERROR"] = "ERROR";
6711
- })(EPaymentStatus || (EPaymentStatus = {}));
6712
- var ECouponViewType;
6713
- (function(ECouponViewType2) {
6714
- ECouponViewType2["CAROUSEL"] = "carousel";
6715
- ECouponViewType2["NORMAL"] = "normal";
6716
- ECouponViewType2["IMAGE"] = "image";
6717
- })(ECouponViewType || (ECouponViewType = {}));
6718
- var EProductKind;
6719
- (function(EProductKind2) {
6720
- EProductKind2["GROUP"] = "3e/group";
6721
- EProductKind2["PRODUCT"] = "3e/product";
6722
- EProductKind2["CATEGORY"] = "3e/group/category";
6723
- EProductKind2["OPTIONS"] = "3e/group/options";
6724
- EProductKind2["CONFIG"] = "3e/group/config";
6725
- EProductKind2["STATIC"] = "3e/static";
6726
- EProductKind2["REF"] = "3e/ref";
6727
- EProductKind2["QUERY"] = "3e/query";
6728
- EProductKind2["CMS"] = "3e/cms";
6729
- })(EProductKind || (EProductKind = {}));
6730
- var EProductKindBucket;
6731
- (function(EProductKindBucket2) {
6732
- EProductKindBucket2["GROUP"] = "group";
6733
- EProductKindBucket2["PRODUCT"] = "product";
6734
- })(EProductKindBucket || (EProductKindBucket = {}));
6735
- var EOrderUserRole;
6736
- (function(EOrderUserRole2) {
6737
- EOrderUserRole2["CREATOR"] = "CREATOR";
6738
- EOrderUserRole2["CUSTOMER"] = "CUSTOMER";
6739
- EOrderUserRole2["COUPONS"] = "COUPON";
6740
- EOrderUserRole2["KIOSK"] = "KIOSK";
6741
- EOrderUserRole2["WAITER"] = "WAITER";
6742
- EOrderUserRole2["MANAGER"] = "MANAGER";
6743
- EOrderUserRole2["VIEWER"] = "VIEWER";
6744
- EOrderUserRole2["DRIVER"] = "DRIVER";
6745
- EOrderUserRole2["STAFF"] = "STAFF";
6746
- })(EOrderUserRole || (EOrderUserRole = {}));
6747
- var EOrderType;
6748
- (function(EOrderType2) {
6749
- EOrderType2["TAKE_AWAY"] = "TAKE_AWAY";
6750
- EOrderType2["DELIVERY"] = "DELIVERY";
6751
- EOrderType2["DINE_IN"] = "DINE_IN";
6752
- EOrderType2["DINE_IN_OPEN"] = "DINE_IN_OPEN";
6753
- EOrderType2["GLOVO_DELIVERY"] = "GLOVO_DELIVERY";
6754
- EOrderType2["GLOVO_TAKE_AWAY"] = "GLOVO_TAKE_AWAY";
6755
- EOrderType2["JUSTEAT_DELIVERY"] = "JUSTEAT_DELIVERY";
6756
- EOrderType2["JUSTEAT_TAKE_AWAY"] = "JUSTEAT_TAKE_AWAY";
6757
- EOrderType2["UBER_DELIVERY"] = "UBER_DELIVERY";
6758
- EOrderType2["UBER_TAKE_AWAY"] = "UBER_TAKE_AWAY";
6759
- EOrderType2["UBER_DINE_IN"] = "UBER_DINE_IN";
6760
- EOrderType2["WOLT_DELIVERY"] = "WOLT_DELIVERY";
6761
- EOrderType2["WOLT_TAKE_AWAY"] = "WOLT_TAKE_AWAY";
6762
- EOrderType2["WOLT_DINE_IN"] = "WOLT_DINE_IN";
6763
- EOrderType2["BOLT_DELIVERY"] = "BOLT_DELIVERY";
6764
- EOrderType2["BOLT_TAKE_AWAY"] = "BOLT_TAKE_AWAY";
6765
- EOrderType2["BOLT_DINE_IN"] = "BOLT_DINE_IN";
6766
- EOrderType2["TAZZ_DELIVERY"] = "TAZZ_DELIVERY";
6767
- EOrderType2["TAZZ_TAKE_AWAY"] = "TAZZ_TAKE_AWAY";
6768
- EOrderType2["UPMENU_DELIVERY"] = "UPMENU_DELIVERY";
6769
- EOrderType2["UPMENU_TAKE_AWAY"] = "UPMENU_TAKE_AWAY";
6770
- EOrderType2["UPMENU_DINE_IN"] = "UPMENU_DINE_IN";
6771
- })(EOrderType || (EOrderType = {}));
6772
- var EOrderSource;
6773
- (function(EOrderSource2) {
6774
- EOrderSource2["KIOSK"] = "KIOSK";
6775
- EOrderSource2["WEB"] = "WEB";
6776
- EOrderSource2["JUST_EAT_TAKE_AWAY"] = "JUSTEATTAKEAWAY";
6777
- EOrderSource2["GLOVO"] = "GLOVO";
6778
- EOrderSource2["PYSZNE"] = "PYSZNE";
6779
- EOrderSource2["WOLT"] = "WOLT";
6780
- EOrderSource2["UBER"] = "UBER";
6781
- EOrderSource2["BOLT"] = "BOLT";
6782
- EOrderSource2["TAZZ"] = "TAZZ";
6783
- EOrderSource2["POS"] = "POS";
6784
- EOrderSource2["UPMENU"] = "UPMENU";
6785
- })(EOrderSource || (EOrderSource = {}));
6786
- var EChannelName;
6787
- (function(EChannelName2) {
6788
- EChannelName2["DINE_IN"] = "DINE_IN";
6789
- EChannelName2["TAKE_AWAY"] = "TAKE_AWAY";
6790
- EChannelName2["DELIVERY"] = "DELIVERY";
6791
- EChannelName2["GLOVO"] = "GLOVO";
6792
- EChannelName2["JUSTEAT"] = "JUSTEAT";
6793
- EChannelName2["UBER"] = "UBER";
6794
- EChannelName2["BOLT"] = "BOLT";
6795
- EChannelName2["WOLT"] = "WOLT";
6796
- EChannelName2["TAZZ"] = "TAZZ";
6797
- EChannelName2["UPMENU"] = "UPMENU";
6798
- })(EChannelName || (EChannelName = {}));
6799
- var EOrderStatus;
6800
- (function(EOrderStatus2) {
6801
- EOrderStatus2["NEW"] = "NEW";
6802
- EOrderStatus2["COMPLETED"] = "COMPLETED";
6803
- EOrderStatus2["VERIFIED"] = "VERIFIED";
6804
- EOrderStatus2["DELIVER"] = "DELIVER";
6805
- EOrderStatus2["DELIVERED"] = "DELIVERED";
6806
- EOrderStatus2["CLOSED"] = "CLOSED";
6807
- EOrderStatus2["ABANDONED"] = "ABANDONED";
6808
- EOrderStatus2["CANCELLED"] = "CANCELLED";
6809
- EOrderStatus2["PICKED"] = "PICKED";
6810
- })(EOrderStatus || (EOrderStatus = {}));
6811
- var EOrderPaymentType;
6812
- (function(EOrderPaymentType2) {
6813
- EOrderPaymentType2["CASH"] = "CASH";
6814
- EOrderPaymentType2["CARD"] = "CARD";
6815
- EOrderPaymentType2["COD"] = "COD";
6816
- EOrderPaymentType2["TERMINAL"] = "TERMINAL";
6817
- EOrderPaymentType2["EPAYMENT"] = "EPAYMENT";
6818
- EOrderPaymentType2["COUPON"] = "COUPON";
6819
- EOrderPaymentType2["WALLET"] = "WALLET";
6820
- EOrderPaymentType2["PREAUTHORIZED"] = "PREAUTHORIZED";
6821
- EOrderPaymentType2["RETURN"] = "RETURN";
6822
- EOrderPaymentType2["EXTERNAL"] = "EXTERNAL";
6823
- })(EOrderPaymentType || (EOrderPaymentType = {}));
6824
- var ERbiOrderExtra;
6825
- (function(ERbiOrderExtra2) {
6826
- ERbiOrderExtra2["POINTS_TOTAL"] = "x-rbi-loyalty-points";
6827
- ERbiOrderExtra2["POINTS_EARNED"] = "x-rbi-points-earned";
6828
- ERbiOrderExtra2["REWARDS"] = "x-rbi-rewards";
6829
- ERbiOrderExtra2["OFFERS"] = "x-rbi-offers";
6830
- ERbiOrderExtra2["CUSTOMER_NAME"] = "x-customer-name";
6831
- })(ERbiOrderExtra || (ERbiOrderExtra = {}));
6832
- var EOrderLineStatus;
6833
- (function(EOrderLineStatus2) {
6834
- EOrderLineStatus2["NEW"] = "NEW";
6835
- EOrderLineStatus2["TECHNICAL"] = "TECHNICAL";
6836
- EOrderLineStatus2["CONFIRMED"] = "CONFIRMED";
6837
- EOrderLineStatus2["PROCESSING"] = "PROCESSING";
6838
- EOrderLineStatus2["PROCESSED"] = "PROCESSED";
6839
- EOrderLineStatus2["VOID"] = "VOID";
6840
- EOrderLineStatus2["WASTE"] = "WASTE";
6841
- })(EOrderLineStatus || (EOrderLineStatus = {}));
6842
- var EOrderProductKind;
6843
- (function(EOrderProductKind2) {
6844
- EOrderProductKind2["GROUP"] = "group";
6845
- EOrderProductKind2["PRODUCT"] = "product";
6846
- })(EOrderProductKind || (EOrderProductKind = {}));
6847
- var ENotificationType;
6848
- (function(ENotificationType2) {
6849
- ENotificationType2["ORDER_EVENT_ERROR"] = "OrderEventError";
6850
- ENotificationType2["ORDER_APPLIED_EVENTS"] = "OrderAppliedEvents";
6851
- ENotificationType2["ORDER_EVENT_FISCAL"] = "OrderEventFiscal";
6852
- ENotificationType2["ORDER_UPSELL"] = "OrderUpsell";
6853
- })(ENotificationType || (ENotificationType = {}));
6854
6873
  const validateProductFilter = (product, stateFilter) => {
6855
6874
  var _a;
6856
6875
  const { filter: productFilters = {}, fltCtx = "" } = product;
6857
- const stateFiltersWithFltCtx = stateFilter[fltCtx];
6876
+ const stateFiltersWithFltCtx = (stateFilter == null ? void 0 : stateFilter[fltCtx]) || {};
6858
6877
  if (!productFilters || !Object.keys(productFilters).length || !stateFiltersWithFltCtx) {
6859
6878
  return true;
6860
6879
  }
6861
6880
  const commonFilters = (_a = Object.keys(stateFiltersWithFltCtx)) == null ? void 0 : _a.filter(
6862
6881
  (filterName) => {
6863
6882
  var _a2;
6864
- const matchingFilters = (_a2 = Object.keys(productFilters == null ? void 0 : productFilters[filterName])) == null ? void 0 : _a2.filter((x2) => {
6883
+ const matchingFilters = (_a2 = Object.keys((productFilters == null ? void 0 : productFilters[filterName]) || {})) == null ? void 0 : _a2.filter((x2) => {
6865
6884
  var _a3;
6866
6885
  if (((_a3 = productFilters == null ? void 0 : productFilters[filterName]) == null ? void 0 : _a3[x2]) === (stateFiltersWithFltCtx == null ? void 0 : stateFiltersWithFltCtx[filterName])) {
6867
6886
  return true;
@@ -6895,12 +6914,14 @@ const getProductToChangeInForm = (product, isFilterValidated) => {
6895
6914
  return { productsToSelect, productsToUnselect };
6896
6915
  };
6897
6916
  const unselectProductsInForm = (productsToUnselect, setValueInForm) => {
6917
+ console.log("LOG1 productsToUnselect", productsToUnselect);
6898
6918
  productsToUnselect.map(({ selCtx, id }) => {
6899
6919
  setValueInForm(`selected.${selCtx}.${id}`, false);
6900
6920
  });
6901
6921
  };
6902
- const selectProductsInForm = (productToUnselect, setValueInForm, initialSelectedState) => {
6903
- productToUnselect.map(({ selCtx, id }) => {
6922
+ const selectProductsInForm = (productToSelect, setValueInForm, initialSelectedState) => {
6923
+ console.log("LOG1 productToSelect", productToSelect);
6924
+ productToSelect.map(({ selCtx, id }) => {
6904
6925
  var _a;
6905
6926
  const productInInitialState = (_a = initialSelectedState[selCtx]) == null ? void 0 : _a[id];
6906
6927
  if (productInInitialState) {
@@ -6913,12 +6934,11 @@ const selectProductsInForm = (productToUnselect, setValueInForm, initialSelected
6913
6934
  };
6914
6935
  function useMenuOptions(product, nestedLvl, parentKind, parentSelCtx) {
6915
6936
  const { selCtx, attrs = {} } = product;
6916
- const stateFilter = useStore((state) => state.filter);
6917
6937
  const initialSelected = useStore((state) => state.initialSelected);
6918
6938
  const currency = useStore((state) => state.currency);
6919
6939
  const { setValue, getValues } = useFormContext();
6920
- const { selected = {} } = getValues();
6921
- const isFilterValidated = validateProductFilter(product, stateFilter);
6940
+ const { selected = {}, filter = {} } = getValues();
6941
+ const isFilterValidated = validateProductFilter(product, filter);
6922
6942
  const isOnSubmitted = useStore((state) => state.isOnSubmitted);
6923
6943
  const setValidationMap = useStore((state) => state.setValidationMap);
6924
6944
  const [selCnt, qtyCnt] = getSelCtxCntFromSelectedState(
@@ -6941,9 +6961,8 @@ function useMenuOptions(product, nestedLvl, parentKind, parentSelCtx) {
6941
6961
  product,
6942
6962
  isFilterValidated
6943
6963
  );
6944
- unselectProductsInForm(productsToUnselect, setValue);
6945
6964
  selectProductsInForm(productsToSelect, setValue, initialSelected);
6946
- }, [stateFilter]);
6965
+ }, [isFilterValidated]);
6947
6966
  return {
6948
6967
  isFilterValidated,
6949
6968
  selected,
@@ -8804,15 +8823,63 @@ function Counter(props) {
8804
8823
  })]
8805
8824
  });
8806
8825
  }
8807
- function useEmitFilter(product) {
8808
- const { watch, setValue } = useFormContext();
8809
- const setFilter = useStore((state) => state.setFilter);
8826
+ function useEmitFilter(product, isRadio, nestedLvl) {
8827
+ const { watch, setValue, getValues, unregister } = useFormContext();
8810
8828
  const { id, selCtx, emit = {}, fltCtx } = product;
8811
8829
  const value = watch(`selected.${selCtx}.${id}`);
8812
8830
  useEffect(() => {
8831
+ var _a, _b, _c;
8832
+ if (!nestedLvl || nestedLvl > 1) {
8833
+ return;
8834
+ }
8835
+ const groupsPath = `filterWithCnt.${fltCtx}`;
8836
+ const groupCntPath = `filterWithCnt.${fltCtx}.${selCtx}`;
8837
+ const fltCtxPath = `filter.${fltCtx}`;
8838
+ if (isRadio && value && fltCtx) {
8839
+ if (isEmpty(emit)) {
8840
+ const groupValues = getValues(groupCntPath);
8841
+ (_a = Object.keys(groupValues || {})) == null ? void 0 : _a.forEach((x2) => {
8842
+ unregister(`${groupCntPath}.${x2}`);
8843
+ const groupsKeys = Object.keys(getValues(groupsPath) || {});
8844
+ if (isEmpty(groupsKeys)) {
8845
+ unregister(`${fltCtxPath}.${x2}`);
8846
+ } else {
8847
+ groupsKeys.forEach((groupSelCtx) => {
8848
+ if (groupSelCtx !== selCtx && !getValues(`${groupsPath}.${groupSelCtx}.${x2}`)) {
8849
+ unregister(`${fltCtxPath}.${x2}`);
8850
+ }
8851
+ });
8852
+ }
8853
+ });
8854
+ return;
8855
+ } else {
8856
+ const productGroupCntKeys = getValues(groupCntPath);
8857
+ const groupsCntKeys = getValues(groupsPath);
8858
+ (_b = Object.keys(emit)) == null ? void 0 : _b.forEach((x2) => {
8859
+ var _a2;
8860
+ (_a2 = Object.keys(productGroupCntKeys || {})) == null ? void 0 : _a2.forEach((productGroupCntKey) => {
8861
+ if (!emit[productGroupCntKey]) {
8862
+ unregister(`${fltCtxPath}.${productGroupCntKey}`);
8863
+ unregister(`${groupCntPath}.${productGroupCntKey}`);
8864
+ }
8865
+ });
8866
+ Object.keys(groupsCntKeys || {}).forEach((groupSelCtx) => {
8867
+ if (groupSelCtx !== selCtx && x2 in getValues(groupsPath == null ? void 0 : groupsPath[groupSelCtx])) {
8868
+ unregister(`${groupsPath}.${groupSelCtx}.${x2}`);
8869
+ }
8870
+ });
8871
+ setValue(`${fltCtxPath}.${x2}`, emit[x2]);
8872
+ setValue(`${groupCntPath}.${x2}`, { cnt: 1, value: emit[x2] });
8873
+ });
8874
+ return;
8875
+ }
8876
+ }
8813
8877
  if (value && fltCtx && !isEmpty(emit)) {
8814
- setFilter(fltCtx, emit);
8815
- setValue(`filter.${fltCtx}`, emit);
8878
+ (_c = Object.keys(emit)) == null ? void 0 : _c.forEach((x2) => {
8879
+ setValue(`filter.${fltCtx}.${x2}`, emit[x2]);
8880
+ const groupKeyCnt = getValues(`${groupCntPath}.${x2}.cnt`) || 0;
8881
+ setValue(`${groupCntPath}.${x2}`, { cnt: groupKeyCnt + 1, value: emit[x2] });
8882
+ });
8816
8883
  }
8817
8884
  }, [value]);
8818
8885
  return {};
@@ -8844,72 +8911,114 @@ const removeProductFromState = (selCtx, getValues, setValue) => {
8844
8911
  }, {})
8845
8912
  );
8846
8913
  };
8847
- const selectUnselectProduct = (setValue, getValues, items, isChecked, state) => {
8914
+ const selectUnselectProduct = (setValue, getValues, product, isChecked, unregister, nestedLvl) => {
8915
+ var _a, _b;
8916
+ const { items, state, emit, fltCtx, selCtx } = product;
8848
8917
  const { selected = {} } = state || {};
8918
+ console.log("selected/unselected product", product, isChecked);
8849
8919
  if (isChecked) {
8850
8920
  addProductToState(selected, setValue);
8851
8921
  const checkSubProducts = (items2) => {
8852
- var _a;
8922
+ var _a2;
8853
8923
  if (!Array.isArray(items2) || isEmpty(state == null ? void 0 : state.selected))
8854
8924
  return;
8855
- (_a = items2 == null ? void 0 : items2.filter((x2) => {
8856
- var _a2, _b;
8857
- return !!((_b = (_a2 = state.selected) == null ? void 0 : _a2[`${x2.selCtx}`]) == null ? void 0 : _b[`${x2.id}`]);
8858
- })) == null ? void 0 : _a.map((product) => {
8859
- if (product.state && "selected" in product.state) {
8925
+ (_a2 = items2 == null ? void 0 : items2.filter((x2) => {
8926
+ var _a3, _b2;
8927
+ return !!((_b2 = (_a3 = state.selected) == null ? void 0 : _a3[`${x2.selCtx}`]) == null ? void 0 : _b2[`${x2.id}`]);
8928
+ })) == null ? void 0 : _a2.map((product2) => {
8929
+ if (product2.state && "selected" in product2.state) {
8860
8930
  const {
8861
8931
  state: { selected: selected2 }
8862
- } = product;
8932
+ } = product2;
8863
8933
  addProductToState(selected2, setValue);
8864
8934
  }
8865
- if (Array.isArray(product.items)) {
8866
- checkSubProducts(product.items);
8935
+ if (Array.isArray(product2.items)) {
8936
+ checkSubProducts(product2.items);
8867
8937
  }
8868
8938
  });
8869
8939
  };
8870
8940
  checkSubProducts(items);
8871
8941
  } else {
8872
- Object.keys(selected).forEach((selCtx) => {
8873
- removeProductFromState(selCtx, getValues, setValue);
8942
+ Object.keys(selected).forEach((selCtx2) => {
8943
+ removeProductFromState(selCtx2, getValues, setValue);
8874
8944
  });
8875
8945
  const checkSubProducts = (items2) => {
8876
8946
  if (!Array.isArray(items2))
8877
8947
  return;
8878
- items2.map((product) => {
8879
- const { selCtx } = product;
8880
- const changedSelCtx = getValues(`selected.${selCtx}`);
8948
+ items2.map((product2) => {
8949
+ const { selCtx: selCtx2 } = product2;
8950
+ const changedSelCtx = getValues(`selected.${selCtx2}`);
8881
8951
  if (changedSelCtx) {
8882
- removeProductFromState(selCtx, getValues, setValue);
8952
+ removeProductFromState(selCtx2, getValues, setValue);
8883
8953
  }
8884
- checkSubProducts(product.items);
8954
+ checkSubProducts(product2.items);
8885
8955
  });
8886
8956
  };
8887
8957
  checkSubProducts(items);
8958
+ if (nestedLvl && nestedLvl < 2 && !isEmpty(emit)) {
8959
+ (_a = Object.keys(emit)) == null ? void 0 : _a.forEach((x2) => {
8960
+ const formPath = `filterWithCnt.${fltCtx}.${x2}.${emit[x2]}`;
8961
+ const cnt = getValues(formPath) || 0;
8962
+ if (cnt < 2) {
8963
+ unregister(formPath);
8964
+ } else {
8965
+ setValue(formPath, cnt - 1);
8966
+ }
8967
+ });
8968
+ const groupsPath = `filterWithCnt.${fltCtx}`;
8969
+ const groupCntPath = `filterWithCnt.${fltCtx}.${selCtx}`;
8970
+ const fltCtxPath = `filter.${fltCtx}`;
8971
+ (_b = Object.keys(emit)) == null ? void 0 : _b.forEach((emitKey) => {
8972
+ var _a2, _b2, _c;
8973
+ const groupValue = getValues(`${groupCntPath}.${emitKey}`) || 0;
8974
+ if (groupValue) {
8975
+ if (groupValue > 1) {
8976
+ setValue(`${groupCntPath}.${emitKey}`, groupValue - 1);
8977
+ } else {
8978
+ unregister(`${groupCntPath}.${emitKey}`);
8979
+ const groupKeysObj = getValues(groupsPath) || {};
8980
+ const otherGroupsCntKeys = (_a2 = Object.keys(groupKeysObj)) == null ? void 0 : _a2.filter((x2) => x2 !== selCtx);
8981
+ if (!otherGroupsCntKeys) {
8982
+ unregister(`${fltCtxPath}.${emitKey}`);
8983
+ } else {
8984
+ const sameKeyOtherGroup = otherGroupsCntKeys == null ? void 0 : otherGroupsCntKeys.find((groupSelCtx) => {
8985
+ var _a3;
8986
+ return !!((_a3 = groupKeysObj == null ? void 0 : groupKeysObj[`${groupSelCtx}`]) == null ? void 0 : _a3[`${emitKey}`]);
8987
+ });
8988
+ if (!sameKeyOtherGroup) {
8989
+ unregister(`${fltCtxPath}.${emitKey}`);
8990
+ } else {
8991
+ const newValue = (_c = (_b2 = groupKeysObj == null ? void 0 : groupKeysObj[`${sameKeyOtherGroup}`]) == null ? void 0 : _b2[`${emitKey}`]) == null ? void 0 : _c.value;
8992
+ setValue(`${fltCtxPath}.${emitKey}`, newValue);
8993
+ }
8994
+ }
8995
+ }
8996
+ }
8997
+ });
8998
+ }
8888
8999
  }
8889
9000
  };
8890
- function useMenuProduct(product, parentAttrs) {
9001
+ function useMenuProduct(product, parentAttrs, nestedLvl) {
8891
9002
  var _a;
8892
- const { id, selCtx } = product;
9003
+ const { id, selCtx, emit = {}, fltCtx } = product;
8893
9004
  const {
8894
9005
  allowMultiple: parentAllowMultiple,
8895
9006
  selMin: parentSelMin,
8896
9007
  selMax: parentSelMax
8897
9008
  } = parentAttrs;
8898
- useEmitFilter(product);
8899
9009
  const { isInputEnabled: isInputEnabled2, isInputCounterIncrementEnabled: isInputCounterIncrementEnabled2 } = useValidate();
8900
9010
  const refreshForm = useStore((state) => state.refreshForm);
8901
9011
  const currency = useStore((state) => state.currency);
8902
- const { watch, getValues, setValue, register } = useFormContext();
9012
+ const { watch, getValues, setValue, register, unregister } = useFormContext();
8903
9013
  const value = watch(`selected.${selCtx}.${id}`);
8904
9014
  const { selected = {} } = getValues();
8905
9015
  const valueNumber = Number(value || 0);
8906
- const stateFilter = useStore((state) => state.filter);
8907
9016
  const isRadio = parentSelMin === "1" && parentSelMax === "1";
8908
9017
  const isCheckbox = !isRadio;
8909
9018
  const isCounter = isApiBooleanTrue(parentAllowMultiple);
8910
- const isFilterValidated = validateProductFilter(product, stateFilter);
8911
9019
  const isDecrementEnabled = valueNumber > (isRadio ? 1 : 0);
8912
- const isIncrementEnabled = isInputCounterIncrementEnabled2(product, selected) && (isInputEnabled2(product) || valueNumber);
9020
+ const isIncrementEnabled = useEmitFilter(product, isRadio, nestedLvl);
9021
+ isInputCounterIncrementEnabled2(product, selected) && (isInputEnabled2(product) || valueNumber);
8913
9022
  const isChecked = Number(((_a = selected == null ? void 0 : selected[selCtx]) == null ? void 0 : _a[id]) || 0) > 0;
8914
9023
  const isCheckboxEnabled = isInputEnabled2(product) || valueNumber;
8915
9024
  const registerId = `${isRadio ? "radio" : "selected"}.${selCtx}.${id}`;
@@ -8922,10 +9031,20 @@ function useMenuProduct(product, parentAttrs) {
8922
9031
  setValue(`selected.${selCtx}.${id}`, `${valueNumber + 1}`);
8923
9032
  };
8924
9033
  const handleCounterDecrementQty = () => {
9034
+ var _a2, _b;
8925
9035
  const decrementedValue = valueNumber - 1;
8926
9036
  setValue(`selected.${selCtx}.${id}`, `${decrementedValue}`);
8927
9037
  if (isCheckbox && decrementedValue === 0) {
8928
9038
  setValue(`selected.${selCtx}.${id}`, false);
9039
+ (_a2 = Object.keys(emit)) == null ? void 0 : _a2.forEach((x2) => {
9040
+ const formPath = `filterWithCnt.${fltCtx}.${x2}.${emit[x2]}`;
9041
+ const cnt = getValues(formPath) || 0;
9042
+ if (cnt < 2) {
9043
+ unregister(formPath);
9044
+ } else {
9045
+ setValue(formPath, cnt - 1);
9046
+ }
9047
+ });
8929
9048
  const checkSubProducts = (items) => {
8930
9049
  if (!Array.isArray(items))
8931
9050
  return;
@@ -8939,13 +9058,45 @@ function useMenuProduct(product, parentAttrs) {
8939
9058
  });
8940
9059
  };
8941
9060
  checkSubProducts(product.items);
9061
+ if (nestedLvl && nestedLvl < 2 && !isEmpty(emit)) {
9062
+ const groupsPath = `filterWithCnt.${fltCtx}`;
9063
+ const groupCntPath = `filterWithCnt.${fltCtx}.${selCtx}`;
9064
+ const fltCtxPath = `filter.${fltCtx}`;
9065
+ (_b = Object.keys(emit)) == null ? void 0 : _b.forEach((emitKey) => {
9066
+ var _a3, _b2, _c;
9067
+ const groupValue = getValues(`${groupCntPath}.${emitKey}`) || 0;
9068
+ if (groupValue) {
9069
+ if (groupValue > 1) {
9070
+ setValue(`${groupCntPath}.${emitKey}`, groupValue - 1);
9071
+ } else {
9072
+ unregister(`${groupCntPath}.${emitKey}`);
9073
+ const groupKeysObj = getValues(groupsPath) || {};
9074
+ const otherGroupsCntKeys = (_a3 = Object.keys(groupKeysObj)) == null ? void 0 : _a3.filter((x2) => x2 !== selCtx);
9075
+ if (!otherGroupsCntKeys) {
9076
+ unregister(`${fltCtxPath}.${emitKey}`);
9077
+ } else {
9078
+ const sameKeyOtherGroup = otherGroupsCntKeys == null ? void 0 : otherGroupsCntKeys.find((groupSelCtx) => {
9079
+ var _a4;
9080
+ return !!((_a4 = groupKeysObj == null ? void 0 : groupKeysObj[`${groupSelCtx}`]) == null ? void 0 : _a4[`${emitKey}`]);
9081
+ });
9082
+ if (!sameKeyOtherGroup) {
9083
+ unregister(`${fltCtxPath}.${emitKey}`);
9084
+ } else {
9085
+ const newValue = (_c = (_b2 = groupKeysObj == null ? void 0 : groupKeysObj[`${sameKeyOtherGroup}`]) == null ? void 0 : _b2[`${emitKey}`]) == null ? void 0 : _c.value;
9086
+ setValue(`${fltCtxPath}.${emitKey}`, newValue);
9087
+ }
9088
+ }
9089
+ }
9090
+ }
9091
+ });
9092
+ }
8942
9093
  }
8943
9094
  };
8944
9095
  const handleOnInputChange = (e2) => {
8945
9096
  const {
8946
9097
  target: { checked, name: selCtx2, defaultValue: productId }
8947
9098
  } = e2;
8948
- selectUnselectProduct(setValue, getValues, product.items, checked, product.state);
9099
+ selectUnselectProduct(setValue, getValues, product, checked, unregister, nestedLvl);
8949
9100
  if (isRadio) {
8950
9101
  console.log("handleOnInputChange radio", selCtx2, productId);
8951
9102
  const selectedContextName = "selected." + selCtx2.replace("radio.", "").split(".")[0];
@@ -8968,8 +9119,7 @@ function useMenuProduct(product, parentAttrs) {
8968
9119
  handleOnInputChange,
8969
9120
  inputId: `${selCtx}.${id}`,
8970
9121
  radioInputValue: id,
8971
- currency,
8972
- isFilterValidated
9122
+ currency
8973
9123
  };
8974
9124
  }
8975
9125
  const MenuProduct = (props) => {
@@ -8994,9 +9144,8 @@ const MenuProduct = (props) => {
8994
9144
  counterValue,
8995
9145
  handleCounterIncrementQty,
8996
9146
  handleCounterDecrementQty,
8997
- currency,
8998
- isFilterValidated
8999
- } = useMenuProduct(product, parentAttrs);
9147
+ currency
9148
+ } = useMenuProduct(product, parentAttrs, nestedLvl);
9000
9149
  const {
9001
9150
  MenuProductUI
9002
9151
  } = useComponents();
@@ -9017,8 +9166,7 @@ const MenuProduct = (props) => {
9017
9166
  handleCounterIncrementQty,
9018
9167
  handleCounterDecrementQty,
9019
9168
  currency,
9020
- parentProduct,
9021
- isFilterValidated
9169
+ parentProduct
9022
9170
  };
9023
9171
  const MenuItemsDispatcherWrapper = /* @__PURE__ */ jsx(MenuItemsDispatcher, {
9024
9172
  productItems: product.items,
@@ -9234,11 +9382,13 @@ const DisplayState = () => {
9234
9382
  } = useFormContext();
9235
9383
  const selected = watch("selected");
9236
9384
  const filter = watch("filter");
9385
+ const filterWithCnt = watch("filterWithCnt");
9237
9386
  const validationMap = useStore((state) => state.validationMap);
9238
9387
  console.log({
9239
9388
  selected,
9240
9389
  validationMap,
9241
- filter
9390
+ filter,
9391
+ filterWithCnt
9242
9392
  });
9243
9393
  return /* @__PURE__ */ jsxs("div", {
9244
9394
  className: "flex flex-col items-center py-4",
@@ -10894,7 +11044,6 @@ function ProductConfigurator(props) {
10894
11044
  encodedProduct,
10895
11045
  initSelected,
10896
11046
  initFilter,
10897
- filter,
10898
11047
  productQuantity,
10899
11048
  setIsOnSubmittedOnTrue,
10900
11049
  getInvalidSelCtxArray,
@@ -10918,8 +11067,7 @@ function ProductConfigurator(props) {
10918
11067
  });
10919
11068
  const methods = useForm({
10920
11069
  defaultValues: {
10921
- selected: initSelected,
10922
- filter: initFilter
11070
+ selected: initSelected
10923
11071
  }
10924
11072
  });
10925
11073
  const {
@@ -10927,6 +11075,7 @@ function ProductConfigurator(props) {
10927
11075
  } = methods;
10928
11076
  const countedProductPrice = Number((parseFloat(price || "0") + countPrice(getValues("selected"), encodedProduct)).toFixed(2));
10929
11077
  const onSubmit = () => {
11078
+ var _a;
10930
11079
  console.log("onSubmit");
10931
11080
  setIsOnSubmittedOnTrue();
10932
11081
  const invalidContextNames = getInvalidSelCtxArray();
@@ -10938,6 +11087,16 @@ function ProductConfigurator(props) {
10938
11087
  } else {
10939
11088
  console.log("selected", getValues("selected"));
10940
11089
  const decodedCleanedSelected = decodeSelected(cleanSelected(getValues("selected")));
11090
+ const filter = getValues("filter");
11091
+ (_a = Object.keys(decodedCleanedSelected || {})) == null ? void 0 : _a.forEach((x2) => {
11092
+ const group = findGroupInProductItemsBySelCtx(x2, product);
11093
+ if (group) {
11094
+ const isFilterValidated = validateProductFilter(group, filter);
11095
+ if (!isFilterValidated) {
11096
+ delete decodedCleanedSelected[x2];
11097
+ }
11098
+ }
11099
+ });
10941
11100
  console.log("decodedCleanedSelected: ", decodedCleanedSelected);
10942
11101
  handleAddToCart({
10943
11102
  price: countedProductPrice,
@@ -10979,5 +11138,5 @@ function ProductConfigurator(props) {
10979
11138
  })
10980
11139
  });
10981
11140
  }
10982
- export { ContextType, MainView, ProductConfigurator, ProductKinds, ProductTypes, SelMinSelMaxStatus, getProductToChangeInForm, index_esm as hookForm, selectProductsInForm, unselectProductsInForm, useProductData, validateProductFilter };
11141
+ export { ContextType, MainView, ProductConfigurator, ProductKinds, ProductTypes, SelMinSelMaxStatus, getProductToChangeInForm, index_esm as hookForm, selectProductsInForm, unselectProductsInForm, useMenuOptions, useProductData, validateProductFilter };
10983
11142
  //# sourceMappingURL=index.es.js.map