@ikas/bp-storefront 1.4.0-beta.21 → 1.4.0-beta.211

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 (123) hide show
  1. package/dist/analytics/analytics-functions/addToCart.js +1 -1
  2. package/dist/analytics/analytics-functions/addToWishlist.js +1 -1
  3. package/dist/analytics/analytics-functions/completeRegistration.js +1 -1
  4. package/dist/analytics/analytics-functions/contactForm.js +1 -1
  5. package/dist/analytics/analytics-functions/createEmailSubscription.js +1 -1
  6. package/dist/analytics/analytics-functions/customerLogin.js +1 -1
  7. package/dist/analytics/analytics-functions/customerLogout.js +1 -1
  8. package/dist/analytics/analytics-functions/customerVisit.js +1 -1
  9. package/dist/analytics/analytics-functions/pageView.js +1 -1
  10. package/dist/analytics/analytics-functions/productView.js +1 -1
  11. package/dist/analytics/analytics-functions/removeFromCart.js +1 -1
  12. package/dist/analytics/analytics-functions/search.js +1 -1
  13. package/dist/analytics/analytics-functions/viewBrand.js +1 -1
  14. package/dist/analytics/analytics-functions/viewCart.js +1 -1
  15. package/dist/analytics/analytics-functions/viewCategory.js +1 -1
  16. package/dist/analytics/analytics-functions/viewListing.js +1 -1
  17. package/dist/analytics/analytics-functions/viewSearchResults.js +1 -1
  18. package/dist/analytics/analytics-functions/viewStorefrontPopup.js +1 -1
  19. package/dist/analytics/events.d.ts +8 -0
  20. package/dist/analytics/events.js +1 -1
  21. package/dist/analytics/ikas/analytics.js +1 -1
  22. package/dist/analytics/openai/addToCart.d.ts +2 -0
  23. package/dist/analytics/openai/addToCart.js +1 -0
  24. package/dist/analytics/openai/completeRegistration.d.ts +1 -0
  25. package/dist/analytics/openai/completeRegistration.js +1 -0
  26. package/dist/analytics/openai/contactForm.d.ts +1 -0
  27. package/dist/analytics/openai/contactForm.js +1 -0
  28. package/dist/analytics/openai/initAdvancedMatching.d.ts +12 -0
  29. package/dist/analytics/openai/initAdvancedMatching.js +1 -0
  30. package/dist/analytics/openai/pageView.d.ts +1 -0
  31. package/dist/analytics/openai/pageView.js +1 -0
  32. package/dist/analytics/openai/productView.d.ts +2 -0
  33. package/dist/analytics/openai/productView.js +1 -0
  34. package/dist/analytics/openai/utils.d.ts +26 -0
  35. package/dist/analytics/openai/utils.js +1 -0
  36. package/dist/analytics/utils.d.ts +1 -0
  37. package/dist/analytics/utils.js +1 -1
  38. package/dist/functions/api/cart/index.d.ts +2 -0
  39. package/dist/functions/api/cart/index.js +1 -1
  40. package/dist/functions/api/customer/index.d.ts +5 -0
  41. package/dist/functions/api/customer/index.js +1 -1
  42. package/dist/functions/api/loyalty/index.d.ts +2 -1
  43. package/dist/functions/api/loyalty/index.js +1 -1
  44. package/dist/functions/api/product/index.js +1 -1
  45. package/dist/functions/models/attribute-detail/index.d.ts +3 -0
  46. package/dist/functions/models/attribute-list/index.d.ts +3 -0
  47. package/dist/functions/models/image/index.d.ts +71 -21
  48. package/dist/functions/models/image/index.js +1 -1
  49. package/dist/functions/models/index.d.ts +1 -0
  50. package/dist/functions/models/order/index.d.ts +21 -0
  51. package/dist/functions/models/order/index.js +1 -1
  52. package/dist/functions/models/product/attribute-value/index.d.ts +5 -0
  53. package/dist/functions/models/product/variant/index.d.ts +96 -6
  54. package/dist/functions/models/product/variant/index.js +1 -1
  55. package/dist/functions/models/product-list/index.js +1 -1
  56. package/dist/functions/models/validator/address/index.d.ts +70 -2
  57. package/dist/functions/models/validator/deactivate-customer/index.d.ts +54 -0
  58. package/dist/functions/models/validator/deactivate-customer/index.js +1 -0
  59. package/dist/functions/stores/base/index.d.ts +67 -0
  60. package/dist/functions/stores/base/index.js +1 -1
  61. package/dist/functions/stores/cart/index.d.ts +46 -2
  62. package/dist/functions/stores/cart/index.js +1 -1
  63. package/dist/functions/stores/customer/index.d.ts +278 -27
  64. package/dist/functions/stores/customer/index.js +1 -1
  65. package/dist/index.d.ts +5 -1
  66. package/dist/index.js +1 -1
  67. package/dist/packages/storefront-api/src/__api/mutations/removeGiftCardFromCart.js +1 -0
  68. package/dist/packages/storefront-api/src/__api/mutations/unlinkExternalAccount.js +1 -0
  69. package/dist/packages/storefront-api/src/__api/queries/getExternalAccountLink.js +1 -0
  70. package/dist/packages/storefront-api/src/__api/queries/getLoyaltyProgram.js +1 -0
  71. package/dist/packages/storefront-api/src/__api/queries/getMilesSmilesDetails.js +1 -0
  72. package/dist/packages/storefront-api-client/src/utils/api.js +1 -1
  73. package/dist/packages/storefront-config/src/index.js +1 -1
  74. package/dist/packages/storefront-config/src/theme-globals.js +1 -0
  75. package/dist/router/index.d.ts +28 -0
  76. package/dist/router/index.js +1 -1
  77. package/dist/storefront-api/src/__api/mutations/removeGiftCardFromCart.d.ts +7 -0
  78. package/dist/storefront-api/src/__api/mutations/unlinkExternalAccount.d.ts +6 -0
  79. package/dist/storefront-api/src/__api/queries/getExternalAccountLink.d.ts +6 -0
  80. package/dist/storefront-api/src/__api/queries/getLoyaltyProgram.d.ts +3 -0
  81. package/dist/storefront-api/src/__api/queries/getMilesSmilesDetails.d.ts +3 -0
  82. package/dist/storefront-api/src/__api/types/index.d.ts +68 -6
  83. package/dist/storefront-api-client/src/utils/api.d.ts +7 -0
  84. package/dist/storefront-config/src/index.d.ts +6 -0
  85. package/dist/storefront-config/src/theme-globals.d.ts +349 -0
  86. package/dist/storefront-models/src/index.d.ts +3 -0
  87. package/dist/storefront-models/src/models/blueprint/prop-value/attribute-list.d.ts +2 -0
  88. package/dist/storefront-models/src/models/blueprint/prop-value/attribute.d.ts +2 -0
  89. package/dist/storefront-models/src/models/blueprint/prop-value/color.d.ts +2 -0
  90. package/dist/storefront-models/src/models/blueprint/prop-value/index.d.ts +1 -0
  91. package/dist/storefront-models/src/models/blueprint/prop-value/variable-binding.d.ts +16 -0
  92. package/dist/storefront-models/src/models/image/index.d.ts +7 -0
  93. package/dist/storefront-models/src/models/loyalty-program/customer-info/index.d.ts +2 -0
  94. package/dist/storefront-models/src/models/loyalty-program/earning-method/index.d.ts +1 -0
  95. package/dist/storefront-models/src/models/loyalty-program/index.d.ts +1 -0
  96. package/dist/storefront-models/src/models/loyalty-program/point-history/index.d.ts +1 -0
  97. package/dist/storefront-models/src/models/order/gift-card-line/index.d.ts +15 -0
  98. package/dist/storefront-models/src/models/order/index.d.ts +2 -0
  99. package/dist/storefront-models/src/models/order/line-item/index.d.ts +1 -1
  100. package/dist/storefront-models/src/models/order/package/index.d.ts +1 -1
  101. package/dist/storefront-models/src/models/payment-gateway/index.d.ts +3 -1
  102. package/dist/storefront-models/src/models/product/attribute/index.d.ts +6 -1
  103. package/dist/storefront-models/src/models/product/campaign/data/index.d.ts +2 -0
  104. package/dist/storefront-models/src/models/product/campaign/filter/index.d.ts +1 -1
  105. package/dist/storefront-models/src/models/product/campaign/product-tiered-discount/index.d.ts +13 -0
  106. package/dist/storefront-models/src/models/product/image/index.d.ts +5 -0
  107. package/dist/storefront-models/src/models/product/variant/index.d.ts +17 -0
  108. package/dist/storefront-models/src/models/storefront/index.d.ts +1 -0
  109. package/dist/storefront-models/src/models/validator/deactivate-customer/index.d.ts +4 -0
  110. package/dist/stores/customer/index.d.ts +2 -1
  111. package/dist/stores/customer/index.js +1 -1
  112. package/dist/theme/settings/index.d.ts +51 -0
  113. package/dist/theme/settings/index.js +1 -0
  114. package/dist/utils/component-renderer.d.ts +1 -0
  115. package/dist/utils/component-renderer.js +1 -1
  116. package/dist/utils/currency.d.ts +36 -3
  117. package/dist/utils/helper.d.ts +1 -0
  118. package/dist/utils/helper.js +1 -1
  119. package/dist/utils/pay-with-ikas.d.ts +553 -0
  120. package/dist/utils/pay-with-ikas.js +1 -0
  121. package/dist/utils/svg.d.ts +15 -0
  122. package/dist/utils/svg.js +1 -0
  123. package/package.json +1 -1
@@ -1 +1 @@
1
- import{__assign as e,__awaiter as t,__generator as r}from'./../../../ext/tslib/tslib.es6.mjs.js';import{IkasStorefrontConfig as n}from"../../../packages/storefront-config/src/index.js";import i from'./../../../ext/lodash/cloneDeep.js';import{I18n as a}from"../../../i18n/index.js";import{Router as o,withRoutePrefix as s}from"../../../router/index.js";import{customerStore as u}from"../../../stores/customer/index.js";import{isClient as d,isBackNavigation as l,getQueryParams as c,debounce as f,stringToSlug as v,stringifyQueryParams as p}from"../../../utils/helper.js";import{setSavedLastViewedProductsResponse as g,getLastViewedProducts as I,waitForCustomerStoreInit as E}from"../../stores/customer/index.js";import{getIkasFilterCategorySlug as C,getIkasFilterCategoryHref as S}from"../filter-category/index.js";import{getFilterValueList as A,clearFilter as y,selectFilterValue as T,onNumberRangeFilterOptionClick as R,getFilterKeyList as D,applyQueryParamForFilter as h,initIkasProductFilter as _,isCustomValueFilter as m}from"../product/filter/index.js";import{getProductVariantPrice as b,hasProductVariantStock as N}from"../product/variant/index.js";var L;function O(t){var r=e({data:[],limit:10,page:1,count:0,isInitialized:!1,isLoading:!1,type:"ALL",sort:"DEFAULT",searchKeyword:"",pageType:"CATEGORY",category:null,brand:null,productListPropValue:{id:"",productIds:[],initialLimit:10,productListType:"ALL"}},t);return function(e){var t;if((null===(t=e.pageSpecificData)||void 0===t?void 0:t.orderType)&&["ALL"].includes(e.type))switch(e.pageSpecificData.orderType){case"HIGHEST_DISCOUNT_RATIO":e.sort="DECRASING_DISCOUNT";break;case"LOWEST_DISCOUNT_RATIO":e.sort="INCREASING_DISCOUNT";break;case"HIGHEST_PRICE":e.sort="DECREASING_PRICE";break;case"LOWEST_PRICE":e.sort="INCREASING_PRICE";break;case"NEWEST":e.sort="LAST_ADDED";break;case"OLDEST":e.sort="FIRST_ADDED";break;case"MANUALLY":e.sort="FEATURED"}}(r),z(r),J(r),r}function P(e){var t;if(d()&&(!l()||!o.isFromBFCache)){!function(e){var t=c(),r=null==t?void 0:t.get("page");if(r){var n=parseInt(r);isNaN(n)||(e.page=n,e.infiniteScrollPage=n)}}(e);if(["CATEGORY","BRAND","SEARCH"].includes(e.pageType)&&location.search&&U(e)&&((null===(t=e.productListPropValue)||void 0===t?void 0:t.usePageFilter)||"SEARCH"===e.type))le(e,c(),e.page>1);else e.page>1?le(e,void 0,!0):k(e)?le(e):Re(e)}}function G(e,t){t!==e.searchKeyword&&(e.searchKeyword=t,_e(e),me(e))}function U(e){return"ALL"===e.type||"CATEGORY"===e.type}function V(e){var t,r;return(null===(t=e.filters)||void 0===t?void 0:t.some(function(e){return!!A(e).length}))||!!e.searchKeyword||"CATEGORY"!==e.pageType&&(!!e.filterCategoryId||!!(null===(r=e.filterCategories)||void 0===r?void 0:r.some(function(e){return e.isSelected})))}function w(e){return"STATIC"===e.type}function F(e){return"DISCOUNTED"===e.type}function j(e){return"RECOMMENDED"===e.type}function k(e){return"LAST_VIEWED"===e.type}function x(e){return"RELATED_PRODUCTS"===e.type}function H(e){return"VIEWED_TOGETHER"===e.type}function W(e){return"PURCHASED_TOGETHER"===e.type}function K(e){return"SEARCH"===e.type}function B(e){return!(w(e)||F(e)||j(e)||!e.minPage)&&e.minPage>1}function Y(e){return!(w(e)||F(e)||j(e))&&e.page*e.limit<e.count}function Z(e){var t;return(null===(t=e.filterCategories)||void 0===t?void 0:t.filter(function(e){return 0!==e.resultCount}))||[]}function M(e){var t;return!!e.searchKeyword||!!(null===(t=e.filters)||void 0===t?void 0:t.some(function(e){return!!A(e).length}))}function q(e){var t;return"MANUALLY"===(null===(t=e.pageSpecificData)||void 0===t?void 0:t.orderType)&&["ALL","CATEGORY"].includes(e.type)}function z(e){var t=V(e);e.data.forEach(function(e){return e.isFiltered=t||!1})}function J(e){var t=w(e);e.data.forEach(function(e){return e.isFiltered=t||!1})}function X(e){e._enableSuggestions=!0}function Q(e){var t={};return e.categoryId&&(t.categoryId=e.categoryId),e.brandId&&(t.brandId=e.brandId),Object.keys(t).length?s("/search?suggestion=".concat(encodeURIComponent(JSON.stringify(t)))):s("/search")}function $(i,a,o,s){return t(this,void 0,void 0,function(){var t,u,d,l,f,v,p,g,I,E,C,S,y,T,R,D;return r(this,function(r){switch(r.label){case 0:return t=[],u=[],null===(S=i.filters)||void 0===S||S.forEach(function(e){var r=A(e);r.length&&t.push({id:e.id,type:e.type,displayType:e.displayType,valueList:r}),e.isFacetFilter&&u.push({id:e.id,type:e.type,displayType:e.displayType})}),d=c(),(l=null==d?void 0:d.get("suggestion"))&&(f=JSON.parse(decodeURIComponent(l)),(v=f.brandId)&&((p=null===(y=i.filters)||void 0===y?void 0:y.find(function(e){return"brand"===e.id&&"BRAND"===e.type}))&&(g=null===(T=p.values)||void 0===T?void 0:T.find(function(e){return e.id===v}))&&h(p,g.name),t.push({id:"brand",type:"BRAND",displayType:"BOX",valueList:[v]})),f.categoryId&&(i.filterCategoryId=f.categoryId),i.searchKeyword=f.term),I=null===(R=i.filterCategories)||void 0===R?void 0:R.filter(function(e){return e.isSelected}).map(function(e){return e.id}),E=function(e){var t,r;switch(e.sort){case"INCREASING_PRICE":t="ASC",r="PRICE";break;case"DECREASING_PRICE":t="DESC",r="PRICE";break;case"FIRST_ADDED":t="ASC",r="CREATED_AT";break;case"LAST_ADDED":t="DESC",r="CREATED_AT";break;case"INCREASING_DISCOUNT":t="ASC",r="DISCOUNT_RATIO";break;case"DECRASING_DISCOUNT":t="DESC",r="DISCOUNT_RATIO";break;case"FEATURED":if(K(e))return;t="ASC",r="MANUAL_SORT";break;case"DEFAULT":t=void 0,r=void 0;break;case"AVERAGE_RATING":t="DESC",r="AVERAGE_RATING";break;case"REVIEW_COUNT":t="DESC",r="REVIEW_COUNT";break;case"SALE_COUNT":t="DESC",r="SALE_COUNT";break;case"A_Z":t="ASC",r="NAME";break;case"Z_A":t="DESC",r="NAME"}if(t&&r)return{direction:t,type:r}}(i),j(i)&&i.recommendedProductData?[4,import("../../api/product/index.js")]:[3,3];case 1:return[4,(0,r.sent().apiGetSuggestedProducts)({priceListId:n.priceListId,salesChannelId:n.salesChannelId,brandIds:i.recommendedProductData.brandIds,categoryIds:i.recommendedProductData.categoryIds,locale:n.getCurrentLocale()})];case 2:case 5:case 8:case 11:case 14:return[2,r.sent()];case 3:return x(i)&&i.relatedProductData?[4,import("../../api/product/index.js")]:[3,6];case 4:return[4,(0,r.sent().apiGetSuggestedProducts)({priceListId:n.priceListId,salesChannelId:n.salesChannelId,productId:i.relatedProductData.productId,brandIds:i.relatedProductData.brandIds,categoryIds:i.relatedProductData.categoryIds,locale:n.getCurrentLocale()})];case 6:return H(i)&&i.viewedTogetherProductData?[4,import("../../api/product/index.js")]:[3,9];case 7:return[4,(0,r.sent().apiGetSuggestedProducts)({priceListId:n.priceListId,salesChannelId:n.salesChannelId,method:"VIEWED_TOGETHER",productIds:i.viewedTogetherProductData.productIds,locale:n.getCurrentLocale()})];case 9:return W(i)&&i.purchasedTogetherProductData?[4,import("../../api/product/index.js")]:[3,12];case 10:return[4,(0,r.sent().apiGetSuggestedProducts)({priceListId:n.priceListId,salesChannelId:n.salesChannelId,method:"PURCHASED_TOGETHER",productIds:i.purchasedTogetherProductData.productIds,locale:n.getCurrentLocale()})];case 12:return C={input:e(e(e(e({page:a,perPage:o},i._enableSuggestions?{enableSuggestions:i._enableSuggestions}:{}),{productIdList:w(i)?null===(D=i.productListPropValue.productIds)||void 0===D?void 0:D.map(function(e){return e.productId}):s,filterList:t,facetList:u}),i.baseCategoryIdList?{baseCategoryIdList:i.baseCategoryIdList}:{}),{brandId:"BRAND"===i.pageType&&"SEARCH"!==i.type?i.filterBrandId:void 0,categoryIdList:I&&I.length?I:i.filterCategoryId?[i.filterCategoryId]:void 0,priceListId:n.priceListId,salesChannelId:n.salesChannelId,query:i.searchKeyword,order:E?[E]:[],showStockOption:n.stockPreference||"SHOW_ALL"})},[4,import("../../api/product/index.js")];case 13:return[4,(0,r.sent().apiSearchProducts)(C,i.excludedFields||[])]}})})}function ee(e){return t(this,void 0,void 0,function(){var t,i,a,o,s,u;return r(this,function(r){switch(r.label){case 0:return[4,import("../../api/product/index.js")];case 1:return[4,(0,r.sent().apiGetProductFilterData)({categoryId:e.filterCategoryId?e.filterCategoryId:void 0,locale:n.getCurrentLocale()})];case 2:return t=r.sent(),e.filters=null===(a=null==t?void 0:t.data)||void 0===a?void 0:a.filters.map(function(e){return _(e)}),e.filterCategories=null===(o=null==t?void 0:t.data)||void 0===o?void 0:o.categories,ye(e),e.disabledSortTypes=null===(s=t.data)||void 0===s?void 0:s.disabledSortTypes,"CATEGORY"!==e.pageType&&e.filterCategoryId&&(i=null===(u=e.filterCategories)||void 0===u?void 0:u.find(function(t){return t.id===e.filterCategoryId}))&&(i.isSelected=!0),e.filters&&e.filters.sort(function(e,t){return e.order>t.order?1:-1}),[2]}})})}function te(e){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,le(e)];case 1:return t=r.sent(),["CATEGORY","BRAND","SEARCH"].includes(e.pageType)?(t&&ne(e),[2]):[2]}})})}function re(e){var t,r,n,i={};if(null===(t=e.filters)||void 0===t||t.forEach(function(e){var t=D(e);t.length&&(i[v(e.name)]=t)}),e.searchKeyword&&(i.s=e.searchKeyword),e.sort&&(i.o=be[e.sort]),e.baseCategoryIdList&&(i.bc=e.baseCategoryIdList),e.suggestionCategoryId&&(i.suggestionCategoryId=e.suggestionCategoryId),e.infiniteScrollPage?i.page=e.infiniteScrollPage:i.page=e.page,"CATEGORY"!==e.pageType){var a=null===(r=e.filterCategories)||void 0===r?void 0:r.filter(function(e){return e.isSelected});if(!!(null==a?void 0:a.length))i.c=null==a?void 0:a.map(function(e){return C(e)});else if(e.filterCategoryId){var o=null===(n=e.filterCategories)||void 0===n?void 0:n.find(function(t){return t.id===e.filterCategoryId}),s=o?C(o):void 0;s&&(i.c=s)}}return p(i,{arrayFormat:"comma"})}function ne(e){if(d()&&!K(e)&&!n.isEditor){var t=re(e),r=s("".concat(location.pathname).concat(t?"?"+t:""));o.navigate(r,!0)}}function ie(e){var t,r;null===(t=e.filters)||void 0===t||t.forEach(function(e){return y(e)}),e.searchKeyword="","CATEGORY"!==e.pageType&&(e.filterCategoryId=void 0),null===(r=e.filterCategories)||void 0===r||r.forEach(function(e){return e.isSelected=!1}),te(e)}function ae(e,t){y(t),te(e)}function oe(e,t,r){T(t,r),te(e)}function se(e,t,r){R(t,r),te(e)}function ue(e){var t,r=null===(t=e.filters)||void 0===t?void 0:t.filter(function(e){var t;return null===(t=e.values)||void 0===t?void 0:t.some(function(e){return e.isSelected})});return null==r?void 0:r.map(function(e){var t,r;return e.numberRange?{filter:e,values:[e.numberRange.from+"-"+e.numberRange.to],commaSeperatedValues:e.numberRange.from+"-"+e.numberRange.to}:e.numberRangeListOptions?{filter:e,values:e.numberRangeListOptions.filter(function(e){return e.isSelected}).map(function(e){return e.from+"-"+e.to}),commaSeperatedValues:e.numberRangeListOptions.filter(function(e){return e.isSelected}).map(function(e){return e.from+"-"+e.to}).join(",")}:{filter:e,values:(null===(t=e.values)||void 0===t?void 0:t.filter(function(e){return e.isSelected}).map(function(e){return e.name}))||[],commaSeperatedValues:(null===(r=e.values)||void 0===r?void 0:r.filter(function(e){return e.isSelected}).map(function(e){return e.name}).join(","))||""}})}function de(e){return e.variants[0]}function le(e,n,a){return t(this,void 0,void 0,function(){var t,o,s,l,c,f,v,p,S,A,y,T,R,D,_,b;return r(this,function(r){switch(r.label){case 0:e.isLoading=!0,t=Date.now(),e.fetchRequestTime=t,r.label=1;case 1:return r.trys.push([1,14,15,16]),o=a?e.page:1,s=e.limit,!U(e)||e.filters?[3,3]:[4,ee(e)];case 2:r.sent(),r.label=3;case 3:return function(e,t){var r;try{null==t||t.forEach(function(t,r){var n,i=null===(n=e.filters)||void 0===n?void 0:n.find(function(e){return e.key===r});i&&h(i,t)});var n=null==t?void 0:t.get("s");n&&(e.searchKeyword=n);var i=null==t?void 0:t.get("o");if(i){var a=parseInt(i),o=Object.entries(be).find(function(e){return e[1]===a});o&&(e.sort=o[0])}if("CATEGORY"!==e.pageType){var s=null==t?void 0:t.get("c"),u=null==s?void 0:s.split(",");u&&u.length&&(null===(r=e.filterCategories)||void 0===r||r.forEach(function(e){e.isSelected=u.some(function(t){return t===C(e)})}))}if("SEARCH"===e.pageType){var d=null==t?void 0:t.get("bc"),l=null==d?void 0:d.split(",");l&&(e.baseCategoryIdList=l);var c=null==t?void 0:t.get("suggestion");if(c){var f=JSON.parse(decodeURIComponent(c)).categoryId;f&&(e.suggestionCategoryId=f)}var v=null==t?void 0:t.get("suggestionCategoryId");v&&(e.suggestionCategoryId=v,e.filterCategoryId=v)}}catch(e){console.log(e)}}(e,n),[4,fe(e)];case 4:return r.sent(),K(e)&&!M(e)?(e.data=[],e.page=1,e.minPage=1,e.count=0,e.isInitialized=!0,[2,!0]):(l=void 0,c=!1,w(e)?(o=void 0,s=200,[3,10]):[3,5]);case 5:return F(e)||j(e)?(o=1,s=10,[3,10]):[3,6];case 6:return k(e)?d()?[4,E(u)]:[3,9]:[3,10];case 7:return r.sent(),[4,I(u)];case 8:return(f=r.sent())&&f.length?(l=f.map(function(e){return e.productId}),c=u.useLastViewedProductResponse,[3,10]):[2];case 9:return[2];case 10:return c?(p=u._savedLastViewedProductsResponse,[3,13]):[3,11];case 11:return[4,$(e,o||1,s||10,l)];case 12:p=r.sent(),r.label=13;case 13:return(v=p)&&e.fetchRequestTime===t?(S=[],!c&&k(e)&&g(u,v),w(e)||k(e)?(A=w(e)?e.productListPropValue.productIds:u._lastViewedProducts,S=(null==A?void 0:A.map(function(e){var t,r,n=null===(r=null===(t=v.data)||void 0===t?void 0:t.data)||void 0===r?void 0:r.find(function(t){return t.id===e.productId}),i=null==n?void 0:n.variants.find(function(t){return t.id===e.variantId});if((null==i?void 0:i.isActive)&&N(i)||(i=null==n?void 0:n.variants.find(function(e){return e.isActive&&N(e)})),n&&i)return n.selectedVariantValues=i.variantValues,n}).filter(function(e){return!!e}))||[]):S=(null===(R=null===(T=v.data)||void 0===T?void 0:T.data)||void 0===R?void 0:R.map(function(e){var t=de(e);return e.selectedVariantValues=t.variantValues,e}))||[],null===(D=e.filters)||void 0===D||D.forEach(function(e){var t,r;if(void 0===e.isCollapsed){var n=!1;(!1===(null===(t=e.settings)||void 0===t?void 0:t.showCollapsedOnMobile)&&d()&&window.innerWidth<768||!1===(null===(r=e.settings)||void 0===r?void 0:r.showCollapsedOnDesktop))&&(n=!0),e.isCollapsed=!n}}),function(e,t){var r,n,a=i(e);null===(r=a.filters)||void 0===r||r.forEach(function(e){var r,n,i,a=null==t?void 0:t.find(function(t){return t.id===e.id});a?null===(r=e.values)||void 0===r||r.forEach(function(t){var r=a.values.find(function(e){return e.id===t.id});r?t.resultCount=r.count:m(e)?t.resultCount=null:t.resultCount=0}):m(e)?null===(n=e.values)||void 0===n||n.forEach(function(e){return e.resultCount=null}):null===(i=e.values)||void 0===i||i.forEach(function(e){return e.resultCount=0})});var o=null==t?void 0:t.find(function(e){return"category"===e.id});o&&(null===(n=a.filterCategories)||void 0===n||n.forEach(function(e){var t=o.values.find(function(t){return t.id===e.id});e.resultCount=t?t.count:0})),e.filters=a.filters,e.filterCategories=a.filterCategories,ye(e)}(e,null===(_=v.data)||void 0===_?void 0:_.facets),e.data=S,e.count=(null===(b=v.data)||void 0===b?void 0:b.count)||0,e.isInitialized=!0,e.page=o||1,e.minPage=e.page,v.data&&"suggestions"in v.data&&(e.suggestions=v.data.suggestions),z(e),J(e),a||(e.infiniteScrollPage=null),Re(e),[2,!0]):[2];case 14:return y=r.sent(),console.log(y),[3,16];case 15:return t===e.fetchRequestTime&&(e.isLoading=!1),[7];case 16:return[2]}})})}function ce(e){e.isCollapsed=!e.isCollapsed}function fe(e){return t(this,void 0,void 0,function(){var t,n,i,a,o,s,u,d,l,c;return r(this,function(r){switch(r.label){case 0:return r.trys.push([0,13,,14]),e.productListPropValue.category?[4,import("../../api/category/index.js")]:[3,3];case 1:return[4,(0,r.sent().apiListCategory)({id:{eq:e.productListPropValue.category}})];case 2:return t=r.sent(),e.category=(null===(o=null===(a=t.data)||void 0===a?void 0:a.data)||void 0===o?void 0:o[0])||null,[3,7];case 3:return e.productListPropValue.usePageFilter&&"CATEGORY"===e.pageType&&e.pageSpecificData?(e.category=e.pageSpecificData,[3,7]):[3,4];case 4:return e.filterCategoryId?[4,import("../../api/category/index.js")]:[3,7];case 5:return[4,(0,r.sent().apiListCategory)({id:{eq:e.filterCategoryId}})];case 6:t=r.sent(),e.category=(null===(u=null===(s=t.data)||void 0===s?void 0:s.data)||void 0===u?void 0:u[0])||null,r.label=7;case 7:return e.productListPropValue.usePageFilter&&"BRAND"===e.pageType&&e.pageSpecificData?(e.brand=e.pageSpecificData,[3,12]):[3,8];case 8:return e.filterBrandId?e.filterBrandId!==(null===(d=e.pageSpecificData)||void 0===d?void 0:d.id)?[3,9]:(e.brand=e.pageSpecificData,[3,12]):[3,12];case 9:return[4,import("../../api/brand/index.js")];case 10:return[4,(0,r.sent().apiListProductBrand)({id:{eq:e.filterBrandId}})];case 11:n=r.sent(),e.brand=(null===(c=null===(l=n.data)||void 0===l?void 0:l.data)||void 0===c?void 0:c[0])||null,r.label=12;case 12:return[3,14];case 13:return i=r.sent(),console.error(i),[3,14];case 14:return[2]}})})}function ve(e){return t(this,void 0,void 0,function(){var t,n,i,a,o,s,u;return r(this,function(r){switch(r.label){case 0:if(w(e)||F(e)||j(e)||x(e)||H(e)||W(e)||k(e)||e.isLoading||!B(e))return[2];e.isLoading=!0,r.label=1;case 1:return r.trys.push([1,3,4,5]),t=e.minPage-1,[4,$(e,t,e.limit)];case 2:return(n=r.sent())?(i=null===(s=null===(o=n.data)||void 0===o?void 0:o.data)||void 0===s?void 0:s.map(function(e){var t=de(e);return e.selectedVariantValues=t.variantValues,e}),e.data=(null==i?void 0:i.concat(e.data))||e.data,e.count=(null===(u=n.data)||void 0===u?void 0:u.count)||e.count,e.minPage=t,z(e),J(e),ne(e),[3,5]):[2];case 3:return a=r.sent(),console.log(a),[3,5];case 4:return e.isLoading=!1,[7];case 5:return[2]}})})}function pe(e){return t(this,void 0,void 0,function(){var t,n,i,a,o,s;return r(this,function(r){switch(r.label){case 0:if(w(e)||F(e)||j(e)||x(e)||H(e)||W(e)||k(e)||e.isLoading||!Y(e))return[2];e.isLoading=!0,r.label=1;case 1:return r.trys.push([1,3,4,5]),[4,$(e,e.page+1,e.limit)];case 2:return(t=r.sent())?(n=null===(o=null===(a=t.data)||void 0===a?void 0:a.data)||void 0===o?void 0:o.map(function(e){var t=de(e);return e.selectedVariantValues=t.variantValues,e}),e.data=e.data.concat(n||[]),e.count=(null===(s=t.data)||void 0===s?void 0:s.count)||e.count,e.page=e.page+1,z(e),J(e),ne(e),[3,5]):[2];case 3:return i=r.sent(),console.log(i),[3,5];case 4:return e.isLoading=!1,[7];case 5:return[2]}})})}function ge(e,n){return t(this,void 0,void 0,function(){var t,i,a,o,s,u;return r(this,function(r){switch(r.label){case 0:if(e.isLoading||w(e)||F(e)||j(e)||k(e)||x(e)||H(e)||W(e))return[2];e.isLoading=!0,r.label=1;case 1:return r.trys.push([1,3,4,5]),[4,$(e,n,e.limit)];case 2:return(t=r.sent())?(i=null===(s=null===(o=t.data)||void 0===o?void 0:o.data)||void 0===s?void 0:s.map(function(e){var t=de(e);return e.selectedVariantValues=t.variantValues,e}),e.data=i||[],e.count=(null===(u=t.data)||void 0===u?void 0:u.count)||0,e.page=n,e.minPage=n,z(e),J(e),ne(e),[3,5]):[2];case 3:return a=r.sent(),console.log(a),[3,5];case 4:return e.isLoading=!1,[7];case 5:return[2]}})})}function Ie(e,n){return t(this,void 0,void 0,function(){return r(this,function(t){switch(t.label){case 0:return e.sort=n,[4,le(e)];case 1:return t.sent()&&ne(e),[2]}})})}function Ee(e){return Ce(e,e.sort)}function Ce(e,t){switch(t){case"INCREASING_PRICE":return a.translate("sort_type.increasing_price");case"DECREASING_PRICE":return a.translate("sort_type.decreasing_price");case"LAST_ADDED":return a.translate("sort_type.last_added");case"FIRST_ADDED":return a.translate("sort_type.first_added");case"INCREASING_DISCOUNT":return a.translate("sort_type.increasing_discount");case"DECRASING_DISCOUNT":return a.translate("sort_type.decreasing_discount");case"FEATURED":return a.translate("sort_type.featured");case"DEFAULT":return a.translate("sort_type.default");case"AVERAGE_RATING":return a.translate("sort_type.average_rating");case"REVIEW_COUNT":return a.translate("sort_type.review_count");case"SALE_COUNT":return a.translate("sort_type.sale_count");case"A_Z":return a.translate("sort_type.a_z");case"Z_A":return a.translate("sort_type.z_a")}}function Se(e){var t,r,n,i,a,o,s,u,d=[];return(null===(t=e.disabledSortTypes)||void 0===t?void 0:t.includes("NAME"))||(d.push({label:Ce(0,"A_Z"),value:"A_Z",isSelected:"A_Z"===e.sort}),d.push({label:Ce(0,"Z_A"),value:"Z_A",isSelected:"Z_A"===e.sort})),(null===(r=e.disabledSortTypes)||void 0===r?void 0:r.includes("PRICE"))||(d.push({label:Ce(0,"INCREASING_PRICE"),value:"INCREASING_PRICE",isSelected:"INCREASING_PRICE"===e.sort}),d.push({label:Ce(0,"DECREASING_PRICE"),value:"DECREASING_PRICE",isSelected:"DECREASING_PRICE"===e.sort})),(null===(n=e.disabledSortTypes)||void 0===n?void 0:n.includes("CREATED_AT"))||(d.push({label:Ce(0,"LAST_ADDED"),value:"LAST_ADDED",isSelected:"LAST_ADDED"===e.sort}),d.push({label:Ce(0,"FIRST_ADDED"),value:"FIRST_ADDED",isSelected:"FIRST_ADDED"===e.sort})),(null===(i=e.disabledSortTypes)||void 0===i?void 0:i.includes("DISCOUNT_RATIO"))||(d.push({label:Ce(0,"INCREASING_DISCOUNT"),value:"INCREASING_DISCOUNT",isSelected:"INCREASING_DISCOUNT"===e.sort}),d.push({label:Ce(0,"DECRASING_DISCOUNT"),value:"DECRASING_DISCOUNT",isSelected:"DECRASING_DISCOUNT"===e.sort})),(null===(a=e.disabledSortTypes)||void 0===a?void 0:a.includes("MANUAL_SORT"))||d.push({label:Ce(0,"FEATURED"),value:"FEATURED",isSelected:"FEATURED"===e.sort}),(null===(o=e.disabledSortTypes)||void 0===o?void 0:o.includes("AVERAGE_RATING"))||d.push({label:Ce(0,"AVERAGE_RATING"),value:"AVERAGE_RATING",isSelected:"AVERAGE_RATING"===e.sort}),(null===(s=e.disabledSortTypes)||void 0===s?void 0:s.includes("REVIEW_COUNT"))||d.push({label:Ce(0,"REVIEW_COUNT"),value:"REVIEW_COUNT",isSelected:"REVIEW_COUNT"===e.sort}),(null===(u=e.disabledSortTypes)||void 0===u?void 0:u.includes("SALE_COUNT"))||d.push({label:Ce(0,"SALE_COUNT"),value:"SALE_COUNT",isSelected:"SALE_COUNT"===e.sort}),d}function Ae(e,i,a){return t(this,void 0,void 0,function(){var t,s,u;return r(this,function(r){switch(r.label){case 0:return a?(null===(u=e.filterCategories)||void 0===u||u.forEach(function(e){e.id===i.id&&(e.isSelected=!e.isSelected)}),[4,te(e)]):[3,2];case 1:return r.sent(),[3,3];case 2:n.isEditor||(t=re(e),s=S(i)+(t?"?"+t:""),o.navigate(s)),r.label=3;case 3:return[2]}})})}function ye(e){var t;null===(t=e.filterCategories)||void 0===t||t.forEach(function(e){e.image=e.imageId?{id:e.imageId,isVideo:!1}:null})}function Te(e,t){if(e.infiniteScrollPage!==t){e.infiniteScrollPage=t;var r=re(e);o.navigate("".concat(location.pathname).concat(r?"?"+r:""),!0)}}function Re(e){return t(this,void 0,void 0,function(){return r(this,function(t){switch(t.label){case 0:return e.searchKeyword&&e.data.length?[4,import("../../../analytics/analytics-functions/viewSearchResults.js")]:[3,2];case 1:return(0,t.sent().anl_viewSearchResults)(e.searchKeyword,e.data),[3,4];case 2:return e.data.length&&"ALL"===e.type?[4,import("../../../analytics/analytics-functions/viewListing.js")]:[3,4];case 3:(0,t.sent().anl_viewListing)(e.data),t.label=4;case 4:return[2]}})})}function De(e){var t=e.data[0];if(!t)return n.getDefaultCurrencyCode()||"";var r=de(t),i=b(r);return(null==i?void 0:i.currency)||n.getDefaultCurrencyCode()||""}function he(e){var t=e.data[0];if(!t)return n.getDefaultCurrencySymbol()||"";var r=de(t),i=b(r);return(null==i?void 0:i.currencySymbol)||n.getDefaultCurrencySymbol()||""}var _e=f(function(e){te(e)},500),me=f(function(e){return t(void 0,void 0,void 0,function(){return r(this,function(t){switch(t.label){case 0:return[4,import("../../../analytics/analytics-functions/search.js")];case 1:return(0,t.sent().anl_search)(e.searchKeyword),[2]}})})},1e3),be=((L={}).INCREASING_PRICE=1,L.DECREASING_PRICE=2,L.LAST_ADDED=3,L.FIRST_ADDED=4,L.INCREASING_DISCOUNT=5,L.DECRASING_DISCOUNT=6,L.FEATURED=7,L.DEFAULT=8,L.AVERAGE_RATING=9,L.REVIEW_COUNT=10,L.SALE_COUNT=11,L.A_Z=12,L.Z_A=13,L);export{ae as clearProductListFilter,ie as clearProductListFilters,X as enableProductListSuggestions,De as getProductListCurrencyCode,he as getProductListCurrencySymbol,Z as getProductListFilterCategories,le as getProductListInitialData,pe as getProductListNextPage,ge as getProductListPage,ve as getProductListPrevPage,Se as getProductListSortOptions,Ee as getProductListSortTypeTranslation,Q as getProductListSuggestionHref,ue as getSelectedFilterValues,oe as handleFilterValueClick,se as handleNumberRangeOptionClick,M as hasProductListAppliedFilters,q as hasProductListFeaturedSortEnabled,Y as hasProductListNextPage,B as hasProductListPrevPage,O as initProductList,ye as initProductListFilterCategories,P as initProductListOnBrowser,F as isProductListDiscounted,U as isProductListFilterable,V as isProductListFiltered,k as isProductListLastViewed,W as isProductListPurchasedTogether,j as isProductListRecommended,x as isProductListRelatedProducts,K as isProductListSearch,w as isProductListStatic,H as isProductListViewedTogether,Ae as onFilterCategoryClick,ce as productListToggleFilterCollapsed,G as searchProductList,z as setProductListIsFilteredForProducts,J as setProductListIsStaticForProducts,Te as setProductListVisiblePage,Ie as setSortType,Ce as translateProductListSortType};
1
+ import{__assign as e,__awaiter as t,__generator as r}from'./../../../ext/tslib/tslib.es6.mjs.js';import{IkasStorefrontConfig as n}from"../../../packages/storefront-config/src/index.js";import i from'./../../../ext/lodash/cloneDeep.js';import{I18n as a}from"../../../i18n/index.js";import{Router as o,withRoutePrefix as s}from"../../../router/index.js";import{customerStore as u}from"../../../stores/customer/index.js";import{isClient as d,isBackNavigation as l,getQueryParams as c,debounce as f,stringToSlug as v,stringifyQueryParams as p}from"../../../utils/helper.js";import{setSavedLastViewedProductsResponse as g,getLastViewedProducts as E,waitForCustomerStoreInit as I}from"../../stores/customer/index.js";import{getIkasFilterCategorySlug as C,getIkasFilterCategoryHref as S}from"../filter-category/index.js";import{getFilterValueList as A,clearFilter as y,selectFilterValue as T,onNumberRangeFilterOptionClick as R,getFilterKeyList as D,applyQueryParamForFilter as h,initIkasProductFilter as _,isCustomValueFilter as m}from"../product/filter/index.js";import{getProductVariantPrice as b,hasProductVariantStock as N}from"../product/variant/index.js";var L;function O(t){var r=e({data:[],limit:10,page:1,count:0,isInitialized:!1,isLoading:!1,type:"ALL",sort:"DEFAULT",searchKeyword:"",pageType:"CATEGORY",category:null,brand:null,productListPropValue:{id:"",productIds:[],initialLimit:10,productListType:"ALL"}},t);return function(e){var t;if((null===(t=e.pageSpecificData)||void 0===t?void 0:t.orderType)&&["ALL"].includes(e.type))switch(e.pageSpecificData.orderType){case"BEST_SELLER":e.sort="SALE_COUNT";break;case"HIGHEST_DISCOUNT_RATIO":e.sort="DECRASING_DISCOUNT";break;case"LOWEST_DISCOUNT_RATIO":e.sort="INCREASING_DISCOUNT";break;case"HIGHEST_PRICE":e.sort="DECREASING_PRICE";break;case"LOWEST_PRICE":e.sort="INCREASING_PRICE";break;case"NEWEST":e.sort="LAST_ADDED";break;case"OLDEST":e.sort="FIRST_ADDED";break;case"MANUALLY":e.sort="FEATURED"}}(r),z(r),J(r),r}function P(e){var t;if(d()&&(!l()||!o.isFromBFCache)){!function(e){var t=c(),r=null==t?void 0:t.get("page");if(r){var n=parseInt(r);isNaN(n)||(e.page=n,e.infiniteScrollPage=n)}}(e);if(["CATEGORY","BRAND","SEARCH"].includes(e.pageType)&&location.search&&U(e)&&((null===(t=e.productListPropValue)||void 0===t?void 0:t.usePageFilter)||"SEARCH"===e.type))le(e,c(),e.page>1);else e.page>1?le(e,void 0,!0):k(e)?le(e):Re(e)}}function G(e,t){t!==e.searchKeyword&&(e.searchKeyword=t,_e(e),me(e))}function U(e){return"ALL"===e.type||"CATEGORY"===e.type}function V(e){var t,r;return(null===(t=e.filters)||void 0===t?void 0:t.some(function(e){return!!A(e).length}))||!!e.searchKeyword||"CATEGORY"!==e.pageType&&(!!e.filterCategoryId||!!(null===(r=e.filterCategories)||void 0===r?void 0:r.some(function(e){return e.isSelected})))}function w(e){return"STATIC"===e.type}function F(e){return"DISCOUNTED"===e.type}function j(e){return"RECOMMENDED"===e.type}function k(e){return"LAST_VIEWED"===e.type}function x(e){return"RELATED_PRODUCTS"===e.type}function H(e){return"VIEWED_TOGETHER"===e.type}function W(e){return"PURCHASED_TOGETHER"===e.type}function B(e){return"SEARCH"===e.type}function K(e){return!(w(e)||F(e)||j(e)||!e.minPage)&&e.minPage>1}function Y(e){return!(w(e)||F(e)||j(e))&&e.page*e.limit<e.count}function Z(e){var t;return(null===(t=e.filterCategories)||void 0===t?void 0:t.filter(function(e){return 0!==e.resultCount}))||[]}function M(e){var t;return!!e.searchKeyword||!!(null===(t=e.filters)||void 0===t?void 0:t.some(function(e){return!!A(e).length}))}function q(e){var t;return"MANUALLY"===(null===(t=e.pageSpecificData)||void 0===t?void 0:t.orderType)&&["ALL","CATEGORY"].includes(e.type)}function z(e){var t=V(e);e.data.forEach(function(e){return e.isFiltered=t||!1})}function J(e){var t=w(e);e.data.forEach(function(e){return e.isFiltered=t||!1})}function X(e){e._enableSuggestions=!0}function Q(e){var t={};return e.categoryId&&(t.categoryId=e.categoryId),e.brandId&&(t.brandId=e.brandId),Object.keys(t).length?s("/search?suggestion=".concat(encodeURIComponent(JSON.stringify(t)))):s("/search")}function $(i,a,o,s){return t(this,void 0,void 0,function(){var t,u,d,l,f,v,p,g,E,I,C,S,y,T,R,D;return r(this,function(r){switch(r.label){case 0:return t=[],u=[],null===(S=i.filters)||void 0===S||S.forEach(function(e){var r=A(e);r.length&&t.push({id:e.id,type:e.type,displayType:e.displayType,valueList:r}),e.isFacetFilter&&u.push({id:e.id,type:e.type,displayType:e.displayType})}),d=c(),(l=null==d?void 0:d.get("suggestion"))&&(f=JSON.parse(decodeURIComponent(l)),(v=f.brandId)&&((p=null===(y=i.filters)||void 0===y?void 0:y.find(function(e){return"brand"===e.id&&"BRAND"===e.type}))&&(g=null===(T=p.values)||void 0===T?void 0:T.find(function(e){return e.id===v}))&&h(p,g.name),t.push({id:"brand",type:"BRAND",displayType:"BOX",valueList:[v]})),f.categoryId&&(i.filterCategoryId=f.categoryId),i.searchKeyword=f.term),E=null===(R=i.filterCategories)||void 0===R?void 0:R.filter(function(e){return e.isSelected}).map(function(e){return e.id}),I=function(e){var t,r;switch(e.sort){case"INCREASING_PRICE":t="ASC",r="PRICE";break;case"DECREASING_PRICE":t="DESC",r="PRICE";break;case"FIRST_ADDED":t="ASC",r="CREATED_AT";break;case"LAST_ADDED":t="DESC",r="CREATED_AT";break;case"INCREASING_DISCOUNT":t="ASC",r="DISCOUNT_RATIO";break;case"DECRASING_DISCOUNT":t="DESC",r="DISCOUNT_RATIO";break;case"FEATURED":if(B(e))return;t="ASC",r="MANUAL_SORT";break;case"DEFAULT":t=void 0,r=void 0;break;case"AVERAGE_RATING":t="DESC",r="AVERAGE_RATING";break;case"REVIEW_COUNT":t="DESC",r="REVIEW_COUNT";break;case"SALE_COUNT":t="DESC",r="SALE_COUNT";break;case"A_Z":t="ASC",r="NAME";break;case"Z_A":t="DESC",r="NAME"}if(t&&r)return{direction:t,type:r}}(i),j(i)&&i.recommendedProductData?[4,import("../../api/product/index.js")]:[3,3];case 1:return[4,(0,r.sent().apiGetSuggestedProducts)({priceListId:n.priceListId,salesChannelId:n.salesChannelId,brandIds:i.recommendedProductData.brandIds,categoryIds:i.recommendedProductData.categoryIds,locale:n.getCurrentLocale()})];case 2:case 5:case 8:case 11:case 14:return[2,r.sent()];case 3:return x(i)&&i.relatedProductData?[4,import("../../api/product/index.js")]:[3,6];case 4:return[4,(0,r.sent().apiGetSuggestedProducts)({priceListId:n.priceListId,salesChannelId:n.salesChannelId,productId:i.relatedProductData.productId,brandIds:i.relatedProductData.brandIds,categoryIds:i.relatedProductData.categoryIds,locale:n.getCurrentLocale()})];case 6:return H(i)&&i.viewedTogetherProductData?[4,import("../../api/product/index.js")]:[3,9];case 7:return[4,(0,r.sent().apiGetSuggestedProducts)({priceListId:n.priceListId,salesChannelId:n.salesChannelId,method:"VIEWED_TOGETHER",productIds:i.viewedTogetherProductData.productIds,locale:n.getCurrentLocale()})];case 9:return W(i)&&i.purchasedTogetherProductData?[4,import("../../api/product/index.js")]:[3,12];case 10:return[4,(0,r.sent().apiGetSuggestedProducts)({priceListId:n.priceListId,salesChannelId:n.salesChannelId,method:"PURCHASED_TOGETHER",productIds:i.purchasedTogetherProductData.productIds,locale:n.getCurrentLocale()})];case 12:return C={input:e(e(e(e({page:a,perPage:o},i._enableSuggestions?{enableSuggestions:i._enableSuggestions}:{}),{productIdList:w(i)?null===(D=i.productListPropValue.productIds)||void 0===D?void 0:D.map(function(e){return e.productId}):s,filterList:t,facetList:u}),i.baseCategoryIdList?{baseCategoryIdList:i.baseCategoryIdList}:{}),{brandId:"BRAND"===i.pageType&&"SEARCH"!==i.type?i.filterBrandId:void 0,categoryIdList:E&&E.length?E:i.filterCategoryId?[i.filterCategoryId]:void 0,priceListId:n.priceListId,salesChannelId:n.salesChannelId,query:i.searchKeyword,order:I?[I]:[],showStockOption:n.stockPreference||"SHOW_ALL"})},[4,import("../../api/product/index.js")];case 13:return[4,(0,r.sent().apiSearchProducts)(C,i.excludedFields||[])]}})})}function ee(e){return t(this,void 0,void 0,function(){var t,i,a,o,s,u;return r(this,function(r){switch(r.label){case 0:return[4,import("../../api/product/index.js")];case 1:return[4,(0,r.sent().apiGetProductFilterData)({categoryId:e.filterCategoryId?e.filterCategoryId:void 0,locale:n.getCurrentLocale()})];case 2:return t=r.sent(),e.filters=null===(a=null==t?void 0:t.data)||void 0===a?void 0:a.filters.map(function(e){return _(e)}),e.filterCategories=null===(o=null==t?void 0:t.data)||void 0===o?void 0:o.categories,ye(e),e.disabledSortTypes=null===(s=t.data)||void 0===s?void 0:s.disabledSortTypes,"CATEGORY"!==e.pageType&&e.filterCategoryId&&(i=null===(u=e.filterCategories)||void 0===u?void 0:u.find(function(t){return t.id===e.filterCategoryId}))&&(i.isSelected=!0),e.filters&&e.filters.sort(function(e,t){return e.order>t.order?1:-1}),[2]}})})}function te(e){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,le(e)];case 1:return t=r.sent(),["CATEGORY","BRAND","SEARCH"].includes(e.pageType)?(t&&ne(e),[2]):[2]}})})}function re(e){var t,r,n,i={};if(null===(t=e.filters)||void 0===t||t.forEach(function(e){var t=D(e);t.length&&(i[v(e.name)]=t)}),e.searchKeyword&&(i.s=e.searchKeyword),e.sort&&(i.o=be[e.sort]),e.baseCategoryIdList&&(i.bc=e.baseCategoryIdList),e.suggestionCategoryId&&(i.suggestionCategoryId=e.suggestionCategoryId),e.infiniteScrollPage?i.page=e.infiniteScrollPage:i.page=e.page,"CATEGORY"!==e.pageType){var a=null===(r=e.filterCategories)||void 0===r?void 0:r.filter(function(e){return e.isSelected});if(!!(null==a?void 0:a.length))i.c=null==a?void 0:a.map(function(e){return C(e)});else if(e.filterCategoryId){var o=null===(n=e.filterCategories)||void 0===n?void 0:n.find(function(t){return t.id===e.filterCategoryId}),s=o?C(o):void 0;s&&(i.c=s)}}return p(i,{arrayFormat:"comma"})}function ne(e){if(d()&&!B(e)&&!n.isEditor){var t=re(e),r=s("".concat(location.pathname).concat(t?"?"+t:""));o.navigate(r,!0)}}function ie(e){var t,r;null===(t=e.filters)||void 0===t||t.forEach(function(e){return y(e)}),e.searchKeyword="","CATEGORY"!==e.pageType&&(e.filterCategoryId=void 0),null===(r=e.filterCategories)||void 0===r||r.forEach(function(e){return e.isSelected=!1}),te(e)}function ae(e,t){y(t),te(e)}function oe(e,t,r){T(t,r),te(e)}function se(e,t,r){R(t,r),te(e)}function ue(e){var t,r=null===(t=e.filters)||void 0===t?void 0:t.filter(function(e){var t;return null===(t=e.values)||void 0===t?void 0:t.some(function(e){return e.isSelected})});return null==r?void 0:r.map(function(e){var t,r;return e.numberRange?{filter:e,values:[e.numberRange.from+"-"+e.numberRange.to],commaSeperatedValues:e.numberRange.from+"-"+e.numberRange.to}:e.numberRangeListOptions?{filter:e,values:e.numberRangeListOptions.filter(function(e){return e.isSelected}).map(function(e){return e.from+"-"+e.to}),commaSeperatedValues:e.numberRangeListOptions.filter(function(e){return e.isSelected}).map(function(e){return e.from+"-"+e.to}).join(",")}:{filter:e,values:(null===(t=e.values)||void 0===t?void 0:t.filter(function(e){return e.isSelected}).map(function(e){return e.name}))||[],commaSeperatedValues:(null===(r=e.values)||void 0===r?void 0:r.filter(function(e){return e.isSelected}).map(function(e){return e.name}).join(","))||""}})}function de(e){return e.variants[0]}function le(e,n,a){return t(this,void 0,void 0,function(){var t,o,s,l,c,f,v,p,S,A,y,T,R,D,_,b,L;return r(this,function(r){switch(r.label){case 0:e.isLoading=!0,t=Date.now(),e.fetchRequestTime=t,r.label=1;case 1:return r.trys.push([1,14,15,16]),o=a?e.page:1,s=e.limit,!U(e)||e.filters?[3,3]:[4,ee(e)];case 2:r.sent(),r.label=3;case 3:return function(e,t){var r;try{null==t||t.forEach(function(t,r){var n,i=null===(n=e.filters)||void 0===n?void 0:n.find(function(e){return e.key===r});i&&h(i,t)});var n=null==t?void 0:t.get("s");n&&(e.searchKeyword=n);var i=null==t?void 0:t.get("o");if(i){var a=parseInt(i),o=Object.entries(be).find(function(e){return e[1]===a});o&&(e.sort=o[0])}if("CATEGORY"!==e.pageType){var s=null==t?void 0:t.get("c"),u=null==s?void 0:s.split(",");u&&u.length&&(null===(r=e.filterCategories)||void 0===r||r.forEach(function(e){e.isSelected=u.some(function(t){return t===C(e)})}))}if("SEARCH"===e.pageType){var d=null==t?void 0:t.get("bc"),l=null==d?void 0:d.split(",");l&&(e.baseCategoryIdList=l);var c=null==t?void 0:t.get("suggestion");if(c){var f=JSON.parse(decodeURIComponent(c)).categoryId;f&&(e.suggestionCategoryId=f)}var v=null==t?void 0:t.get("suggestionCategoryId");v&&(e.suggestionCategoryId=v,e.filterCategoryId=v)}}catch(e){console.log(e)}}(e,n),[4,fe(e)];case 4:return r.sent(),B(e)&&!M(e)?(e.data=[],e.page=1,e.minPage=1,e.count=0,e.isInitialized=!0,[2,!0]):(l=void 0,c=!1,w(e)?(o=void 0,s=200,[3,10]):[3,5]);case 5:return F(e)||j(e)?(o=1,s=10,[3,10]):[3,6];case 6:return k(e)?d()?[4,I(u)]:[3,9]:[3,10];case 7:return r.sent(),[4,E(u)];case 8:return(f=r.sent())&&f.length?(l=f.map(function(e){return e.productId}),c=u.useLastViewedProductResponse,[3,10]):[2];case 9:return[2];case 10:return c?(p=u._savedLastViewedProductsResponse,[3,13]):[3,11];case 11:return[4,$(e,o||1,s||10,l)];case 12:p=r.sent(),r.label=13;case 13:return(v=p)&&e.fetchRequestTime===t?(S=[],!c&&k(e)&&g(u,v),w(e)||k(e)?(A=w(e),y=A?e.productListPropValue.productIds:u._lastViewedProducts,S=(null==y?void 0:y.map(function(e){var t,r,n=null===(r=null===(t=v.data)||void 0===t?void 0:t.data)||void 0===r?void 0:r.find(function(t){return t.id===e.productId}),i=null==n?void 0:n.variants.find(function(t){return t.id===e.variantId});if((null==i?void 0:i.isActive)&&N(i)||(i=null==n?void 0:n.variants.find(function(e){return e.isActive&&N(e)}),A&&!i&&(i=(null==n?void 0:n.variants.find(function(e){return e.isActive}))||(null==n?void 0:n.variants[0]))),n&&i)return n.selectedVariantValues=i.variantValues,n}).filter(function(e){return!!e}))||[]):S=(null===(D=null===(R=v.data)||void 0===R?void 0:R.data)||void 0===D?void 0:D.map(function(e){var t=de(e);return e.selectedVariantValues=t.variantValues,e}))||[],null===(_=e.filters)||void 0===_||_.forEach(function(e){var t,r;if(void 0===e.isCollapsed){var n=!1;(!1===(null===(t=e.settings)||void 0===t?void 0:t.showCollapsedOnMobile)&&d()&&window.innerWidth<768||!1===(null===(r=e.settings)||void 0===r?void 0:r.showCollapsedOnDesktop))&&(n=!0),e.isCollapsed=!n}}),function(e,t){var r,n,a=i(e);null===(r=a.filters)||void 0===r||r.forEach(function(e){var r,n,i,a=null==t?void 0:t.find(function(t){return t.id===e.id});a?null===(r=e.values)||void 0===r||r.forEach(function(t){var r=a.values.find(function(e){return e.id===t.id});r?t.resultCount=r.count:m(e)?t.resultCount=null:t.resultCount=0}):m(e)?null===(n=e.values)||void 0===n||n.forEach(function(e){return e.resultCount=null}):null===(i=e.values)||void 0===i||i.forEach(function(e){return e.resultCount=0})});var o=null==t?void 0:t.find(function(e){return"category"===e.id});o&&(null===(n=a.filterCategories)||void 0===n||n.forEach(function(e){var t=o.values.find(function(t){return t.id===e.id});e.resultCount=t?t.count:0})),e.filters=a.filters,e.filterCategories=a.filterCategories,ye(e)}(e,null===(b=v.data)||void 0===b?void 0:b.facets),e.data=S,e.count=(null===(L=v.data)||void 0===L?void 0:L.count)||0,e.isInitialized=!0,e.page=o||1,e.minPage=e.page,v.data&&"suggestions"in v.data&&(e.suggestions=v.data.suggestions),z(e),J(e),a||(e.infiniteScrollPage=null),Re(e),[2,!0]):[2];case 14:return T=r.sent(),console.log(T),[3,16];case 15:return t===e.fetchRequestTime&&(e.isLoading=!1),[7];case 16:return[2]}})})}function ce(e){e.isCollapsed=!e.isCollapsed}function fe(e){return t(this,void 0,void 0,function(){var t,n,i,a,o,s,u,d,l,c;return r(this,function(r){switch(r.label){case 0:return r.trys.push([0,13,,14]),e.productListPropValue.category?[4,import("../../api/category/index.js")]:[3,3];case 1:return[4,(0,r.sent().apiListCategory)({id:{eq:e.productListPropValue.category}})];case 2:return t=r.sent(),e.category=(null===(o=null===(a=t.data)||void 0===a?void 0:a.data)||void 0===o?void 0:o[0])||null,[3,7];case 3:return e.productListPropValue.usePageFilter&&"CATEGORY"===e.pageType&&e.pageSpecificData?(e.category=e.pageSpecificData,[3,7]):[3,4];case 4:return e.filterCategoryId?[4,import("../../api/category/index.js")]:[3,7];case 5:return[4,(0,r.sent().apiListCategory)({id:{eq:e.filterCategoryId}})];case 6:t=r.sent(),e.category=(null===(u=null===(s=t.data)||void 0===s?void 0:s.data)||void 0===u?void 0:u[0])||null,r.label=7;case 7:return e.productListPropValue.usePageFilter&&"BRAND"===e.pageType&&e.pageSpecificData?(e.brand=e.pageSpecificData,[3,12]):[3,8];case 8:return e.filterBrandId?e.filterBrandId!==(null===(d=e.pageSpecificData)||void 0===d?void 0:d.id)?[3,9]:(e.brand=e.pageSpecificData,[3,12]):[3,12];case 9:return[4,import("../../api/brand/index.js")];case 10:return[4,(0,r.sent().apiListProductBrand)({id:{eq:e.filterBrandId}})];case 11:n=r.sent(),e.brand=(null===(c=null===(l=n.data)||void 0===l?void 0:l.data)||void 0===c?void 0:c[0])||null,r.label=12;case 12:return[3,14];case 13:return i=r.sent(),console.error(i),[3,14];case 14:return[2]}})})}function ve(e){return t(this,void 0,void 0,function(){var t,n,i,a,o,s,u;return r(this,function(r){switch(r.label){case 0:if(w(e)||F(e)||j(e)||x(e)||H(e)||W(e)||k(e)||e.isLoading||!K(e))return[2];e.isLoading=!0,r.label=1;case 1:return r.trys.push([1,3,4,5]),t=e.minPage-1,[4,$(e,t,e.limit)];case 2:return(n=r.sent())?(i=null===(s=null===(o=n.data)||void 0===o?void 0:o.data)||void 0===s?void 0:s.map(function(e){var t=de(e);return e.selectedVariantValues=t.variantValues,e}),e.data=(null==i?void 0:i.concat(e.data))||e.data,e.count=(null===(u=n.data)||void 0===u?void 0:u.count)||e.count,e.minPage=t,z(e),J(e),ne(e),[3,5]):[2];case 3:return a=r.sent(),console.log(a),[3,5];case 4:return e.isLoading=!1,[7];case 5:return[2]}})})}function pe(e){return t(this,void 0,void 0,function(){var t,n,i,a,o,s;return r(this,function(r){switch(r.label){case 0:if(w(e)||F(e)||j(e)||x(e)||H(e)||W(e)||k(e)||e.isLoading||!Y(e))return[2];e.isLoading=!0,r.label=1;case 1:return r.trys.push([1,3,4,5]),[4,$(e,e.page+1,e.limit)];case 2:return(t=r.sent())?(n=null===(o=null===(a=t.data)||void 0===a?void 0:a.data)||void 0===o?void 0:o.map(function(e){var t=de(e);return e.selectedVariantValues=t.variantValues,e}),e.data=e.data.concat(n||[]),e.count=(null===(s=t.data)||void 0===s?void 0:s.count)||e.count,e.page=e.page+1,z(e),J(e),ne(e),[3,5]):[2];case 3:return i=r.sent(),console.log(i),[3,5];case 4:return e.isLoading=!1,[7];case 5:return[2]}})})}function ge(e,n){return t(this,void 0,void 0,function(){var t,i,a,o,s,u;return r(this,function(r){switch(r.label){case 0:if(e.isLoading||w(e)||F(e)||j(e)||k(e)||x(e)||H(e)||W(e))return[2];e.isLoading=!0,r.label=1;case 1:return r.trys.push([1,3,4,5]),[4,$(e,n,e.limit)];case 2:return(t=r.sent())?(i=null===(s=null===(o=t.data)||void 0===o?void 0:o.data)||void 0===s?void 0:s.map(function(e){var t=de(e);return e.selectedVariantValues=t.variantValues,e}),e.data=i||[],e.count=(null===(u=t.data)||void 0===u?void 0:u.count)||0,e.page=n,e.minPage=n,z(e),J(e),ne(e),[3,5]):[2];case 3:return a=r.sent(),console.log(a),[3,5];case 4:return e.isLoading=!1,[7];case 5:return[2]}})})}function Ee(e,n){return t(this,void 0,void 0,function(){return r(this,function(t){switch(t.label){case 0:return e.sort=n,[4,le(e)];case 1:return t.sent()&&ne(e),[2]}})})}function Ie(e){return Ce(e,e.sort)}function Ce(e,t){switch(t){case"INCREASING_PRICE":return a.translate("sort_type.increasing_price");case"DECREASING_PRICE":return a.translate("sort_type.decreasing_price");case"LAST_ADDED":return a.translate("sort_type.last_added");case"FIRST_ADDED":return a.translate("sort_type.first_added");case"INCREASING_DISCOUNT":return a.translate("sort_type.increasing_discount");case"DECRASING_DISCOUNT":return a.translate("sort_type.decreasing_discount");case"FEATURED":return a.translate("sort_type.featured");case"DEFAULT":return a.translate("sort_type.default");case"AVERAGE_RATING":return a.translate("sort_type.average_rating");case"REVIEW_COUNT":return a.translate("sort_type.review_count");case"SALE_COUNT":return a.translate("sort_type.sale_count");case"A_Z":return a.translate("sort_type.a_z");case"Z_A":return a.translate("sort_type.z_a")}}function Se(e){var t,r,n,i,a,o,s,u;if(!e)return[];var d=[];return(null===(t=e.disabledSortTypes)||void 0===t?void 0:t.includes("NAME"))||(d.push({label:Ce(0,"A_Z"),value:"A_Z",isSelected:"A_Z"===e.sort}),d.push({label:Ce(0,"Z_A"),value:"Z_A",isSelected:"Z_A"===e.sort})),(null===(r=e.disabledSortTypes)||void 0===r?void 0:r.includes("PRICE"))||(d.push({label:Ce(0,"INCREASING_PRICE"),value:"INCREASING_PRICE",isSelected:"INCREASING_PRICE"===e.sort}),d.push({label:Ce(0,"DECREASING_PRICE"),value:"DECREASING_PRICE",isSelected:"DECREASING_PRICE"===e.sort})),(null===(n=e.disabledSortTypes)||void 0===n?void 0:n.includes("CREATED_AT"))||(d.push({label:Ce(0,"LAST_ADDED"),value:"LAST_ADDED",isSelected:"LAST_ADDED"===e.sort}),d.push({label:Ce(0,"FIRST_ADDED"),value:"FIRST_ADDED",isSelected:"FIRST_ADDED"===e.sort})),(null===(i=e.disabledSortTypes)||void 0===i?void 0:i.includes("DISCOUNT_RATIO"))||(d.push({label:Ce(0,"INCREASING_DISCOUNT"),value:"INCREASING_DISCOUNT",isSelected:"INCREASING_DISCOUNT"===e.sort}),d.push({label:Ce(0,"DECRASING_DISCOUNT"),value:"DECRASING_DISCOUNT",isSelected:"DECRASING_DISCOUNT"===e.sort})),(null===(a=e.disabledSortTypes)||void 0===a?void 0:a.includes("MANUAL_SORT"))||d.push({label:Ce(0,"FEATURED"),value:"FEATURED",isSelected:"FEATURED"===e.sort}),(null===(o=e.disabledSortTypes)||void 0===o?void 0:o.includes("AVERAGE_RATING"))||d.push({label:Ce(0,"AVERAGE_RATING"),value:"AVERAGE_RATING",isSelected:"AVERAGE_RATING"===e.sort}),(null===(s=e.disabledSortTypes)||void 0===s?void 0:s.includes("REVIEW_COUNT"))||d.push({label:Ce(0,"REVIEW_COUNT"),value:"REVIEW_COUNT",isSelected:"REVIEW_COUNT"===e.sort}),(null===(u=e.disabledSortTypes)||void 0===u?void 0:u.includes("SALE_COUNT"))||d.push({label:Ce(0,"SALE_COUNT"),value:"SALE_COUNT",isSelected:"SALE_COUNT"===e.sort}),d}function Ae(e,i,a){return t(this,void 0,void 0,function(){var t,s,u;return r(this,function(r){switch(r.label){case 0:return a?(null===(u=e.filterCategories)||void 0===u||u.forEach(function(e){e.id===i.id&&(e.isSelected=!e.isSelected)}),[4,te(e)]):[3,2];case 1:return r.sent(),[3,3];case 2:n.isEditor||(t=re(e),s=S(i)+(t?"?"+t:""),o.navigate(s)),r.label=3;case 3:return[2]}})})}function ye(e){var t;null===(t=e.filterCategories)||void 0===t||t.forEach(function(e){e.image=e.imageId?{id:e.imageId,isVideo:!1}:null})}function Te(e,t){if(e.infiniteScrollPage!==t){e.infiniteScrollPage=t;var r=re(e);o.navigate("".concat(location.pathname).concat(r?"?"+r:""),!0)}}function Re(e){return t(this,void 0,void 0,function(){return r(this,function(t){switch(t.label){case 0:return e.searchKeyword&&e.data.length?[4,import("../../../analytics/analytics-functions/viewSearchResults.js")]:[3,2];case 1:return(0,t.sent().anl_viewSearchResults)(e.searchKeyword,e.data),[3,4];case 2:return e.data.length&&"ALL"===e.type?[4,import("../../../analytics/analytics-functions/viewListing.js")]:[3,4];case 3:(0,t.sent().anl_viewListing)(e.data),t.label=4;case 4:return[2]}})})}function De(e){var t=e.data[0];if(!t)return n.getDefaultCurrencyCode()||"";var r=de(t),i=b(r);return(null==i?void 0:i.currency)||n.getDefaultCurrencyCode()||""}function he(e){var t=e.data[0];if(!t)return n.getDefaultCurrencySymbol()||"";var r=de(t),i=b(r);return(null==i?void 0:i.currencySymbol)||n.getDefaultCurrencySymbol()||""}var _e=f(function(e){te(e)},500),me=f(function(e){return t(void 0,void 0,void 0,function(){return r(this,function(t){switch(t.label){case 0:return[4,import("../../../analytics/analytics-functions/search.js")];case 1:return(0,t.sent().anl_search)(e.searchKeyword),[2]}})})},1e3),be=((L={}).INCREASING_PRICE=1,L.DECREASING_PRICE=2,L.LAST_ADDED=3,L.FIRST_ADDED=4,L.INCREASING_DISCOUNT=5,L.DECRASING_DISCOUNT=6,L.FEATURED=7,L.DEFAULT=8,L.AVERAGE_RATING=9,L.REVIEW_COUNT=10,L.SALE_COUNT=11,L.A_Z=12,L.Z_A=13,L);export{ae as clearProductListFilter,ie as clearProductListFilters,X as enableProductListSuggestions,De as getProductListCurrencyCode,he as getProductListCurrencySymbol,Z as getProductListFilterCategories,le as getProductListInitialData,pe as getProductListNextPage,ge as getProductListPage,ve as getProductListPrevPage,Se as getProductListSortOptions,Ie as getProductListSortTypeTranslation,Q as getProductListSuggestionHref,ue as getSelectedFilterValues,oe as handleFilterValueClick,se as handleNumberRangeOptionClick,M as hasProductListAppliedFilters,q as hasProductListFeaturedSortEnabled,Y as hasProductListNextPage,K as hasProductListPrevPage,O as initProductList,ye as initProductListFilterCategories,P as initProductListOnBrowser,F as isProductListDiscounted,U as isProductListFilterable,V as isProductListFiltered,k as isProductListLastViewed,W as isProductListPurchasedTogether,j as isProductListRecommended,x as isProductListRelatedProducts,B as isProductListSearch,w as isProductListStatic,H as isProductListViewedTogether,Ae as onFilterCategoryClick,ce as productListToggleFilterCollapsed,G as searchProductList,z as setProductListIsFilteredForProducts,J as setProductListIsStaticForProducts,Te as setProductListVisiblePage,Ee as setSortType,Ce as translateProductListSortType};
@@ -2,6 +2,13 @@ import { AddressForm, IkasCustomerAddress } from "../../../../storefront-models/
2
2
  /**
3
3
  * Initializes an address form with default or existing address values, loads location data, and configures field settings.
4
4
  *
5
+ * Also resolves `addressForm.addressFormat` for the selected country. That is an
6
+ * `AddressFormItem[][]` describing which fields the country uses and how they group into rows
7
+ * (outer array = rows, inner array = fields sharing a row), and it is the only correct source
8
+ * for laying out an address form -- a hardcoded field list will be wrong for most countries.
9
+ * It is empty until this promise resolves, and `setAddressFormCountry` re-resolves it, so
10
+ * render from it rather than copying it into local state.
11
+ *
5
12
  * @ai-category Address, Form, Initialization, Checkout
6
13
  * @ai-related submitAddressForm, setAddressFormCountry, setAddressFormState, setAddressFormCity
7
14
  *
@@ -10,14 +17,75 @@ import { AddressForm, IkasCustomerAddress } from "../../../../storefront-models/
10
17
  * @returns A promise that resolves once the form is fully initialized, including country/state/city lists, field settings, checkout settings, and shipping zones.
11
18
  *
12
19
  * @example
13
- * ```typescript
14
- * import { initAddressForm } from "@ikas/bp-storefront";
20
+ * ```tsx
21
+ * import { useEffect, useState } from "preact/hooks";
22
+ * import {
23
+ * type AddressForm,
24
+ * type AddressFormItem,
25
+ * initAddressForm,
26
+ * setAddressFormFirstName,
27
+ * setAddressFormLastName,
28
+ * setAddressFormIdentityNumber,
29
+ * setAddressFormAddressLine1,
30
+ * setAddressFormAddressLine2,
31
+ * setAddressFormPostalCode,
32
+ * setAddressFormPhone,
33
+ * } from "@ikas/bp-storefront";
15
34
  *
16
35
  * // Initialize an empty address form
17
36
  * await initAddressForm(addressForm);
18
37
  *
19
38
  * // Initialize with an existing customer address for editing
20
39
  * await initAddressForm(addressForm, existingAddress);
40
+ *
41
+ * // addressFormat is empty until init resolves, so gate the render on it.
42
+ * const [isLoading, setIsLoading] = useState(true);
43
+ * useEffect(() => {
44
+ * initAddressForm(addressForm, address).then(() => setIsLoading(false));
45
+ * }, []);
46
+ *
47
+ * // Every addressFormat key has a matching setter, each taking (addressForm, value).
48
+ * // The location keys (country, state, city, district, region) are omitted here: they
49
+ * // render as selects fed by addressForm.countryOptions / stateOptions / cityOptions /
50
+ * // districtOptions / regionOptions, and must fall back to a text input when the field
51
+ * // isFreeText or has no options.
52
+ * const SETTERS: Partial<Record<AddressFormItem, (form: AddressForm, value: string) => void>> = {
53
+ * firstName: setAddressFormFirstName,
54
+ * lastName: setAddressFormLastName,
55
+ * identityNumber: setAddressFormIdentityNumber,
56
+ * addressLine1: setAddressFormAddressLine1,
57
+ * addressLine2: setAddressFormAddressLine2,
58
+ * postalCode: setAddressFormPostalCode,
59
+ * phone: setAddressFormPhone,
60
+ * };
61
+ *
62
+ * // Render the country's own layout: outer array = rows, inner array = fields in that row.
63
+ * (addressForm.addressFormat ?? []).map((row) => {
64
+ * // A field the country does not use is absent from the form object entirely.
65
+ * const keys = row.filter((key) => addressForm[key] != null);
66
+ * if (!keys.length) return null;
67
+ *
68
+ * return (
69
+ * <div className="address-row" key={keys.join("-")}>
70
+ * {keys.map((key) => {
71
+ * // Each entry is an IkasFormItem: value, label, placeholder, hasError, message.
72
+ * const field = addressForm[key];
73
+ * if (!field) return null; // already guaranteed by the filter above; narrows the type
74
+ * return (
75
+ * <label key={key}>
76
+ * {field.label}
77
+ * <input
78
+ * value={field.value ?? ""}
79
+ * placeholder={field.placeholder}
80
+ * onInput={(e) => SETTERS[key]?.(addressForm, e.currentTarget.value)}
81
+ * />
82
+ * {field.hasError && <small>{field.message}</small>}
83
+ * </label>
84
+ * );
85
+ * })}
86
+ * </div>
87
+ * );
88
+ * })
21
89
  * ```
22
90
  */
23
91
  export declare function initAddressForm(addressForm: AddressForm, address?: IkasCustomerAddress): Promise<void>;
@@ -0,0 +1,54 @@
1
+ import { DeactivateCustomerForm } from "../../../../storefront-models/src";
2
+ /**
3
+ * Initializes the deactivate customer form with default password field values, labels, and placeholders.
4
+ *
5
+ * @ai-category Validation, DeactivateCustomer, Form
6
+ * @ai-related setDeactivateCustomerFormPassword, submitDeactivateCustomerForm
7
+ *
8
+ * @param deactivateCustomerForm - The deactivate customer form model to initialize
9
+ * @returns void
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { initDeactivateCustomerForm } from "@ikas/bp-storefront";
14
+ * initDeactivateCustomerForm(deactivateCustomerForm);
15
+ * ```
16
+ */
17
+ export declare function initDeactivateCustomerForm(deactivateCustomerForm: DeactivateCustomerForm): void;
18
+ /**
19
+ * Sets the password value on the deactivate customer form and re-validates if the form has already been submitted.
20
+ *
21
+ * @ai-category Validation, DeactivateCustomer, Form
22
+ * @ai-related initDeactivateCustomerForm, submitDeactivateCustomerForm
23
+ *
24
+ * @param deactivateCustomerForm - The deactivate customer form model to update
25
+ * @param value - The new password string to set
26
+ * @returns void
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * import { setDeactivateCustomerFormPassword } from "@ikas/bp-storefront";
31
+ * setDeactivateCustomerFormPassword(deactivateCustomerForm, "mySecurePassword123");
32
+ * ```
33
+ */
34
+ export declare function setDeactivateCustomerFormPassword(deactivateCustomerForm: DeactivateCustomerForm, value: string): void;
35
+ /**
36
+ * Validates and submits the deactivate customer form, deleting the current customer's account after password verification.
37
+ * The customer session is not cleared automatically, call `logout` after a successful submission.
38
+ *
39
+ * @ai-category Validation, DeactivateCustomer, Form
40
+ * @ai-related initDeactivateCustomerForm, setDeactivateCustomerFormPassword
41
+ *
42
+ * @param deactivateCustomerForm - The deactivate customer form model to submit
43
+ * @returns A promise that resolves to true if the account was deactivated successfully, or false on validation error or API failure
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * import { customerStore, logout, submitDeactivateCustomerForm } from "@ikas/bp-storefront";
48
+ * const success = await submitDeactivateCustomerForm(deactivateCustomerForm);
49
+ * if (success) {
50
+ * await logout(customerStore);
51
+ * }
52
+ * ```
53
+ */
54
+ export declare function submitDeactivateCustomerForm(deactivateCustomerForm: DeactivateCustomerForm): Promise<boolean>;
@@ -0,0 +1 @@
1
+ import{__assign as s,__awaiter as e,__generator as i}from'./../../../../ext/tslib/tslib.es6.mjs.js';import{I18n as r}from"../../../../i18n/index.js";import{customerStore as o}from"../../../../stores/customer/index.js";import"../../../../packages/storefront-config/src/index.js";import'./../../../../ext/lodash/_isFlattenable.js';import'./../../../../ext/lodash/sortBy.js';import"../../../../stores/base/index.js";import"../../../../stores/cart/index.js";import'./../../../../ext/mobx/dist/mobx.esm.js';import"../../../../router/index.js";import{deactivateCustomer as t}from"../../../stores/customer/index.js";import{FORM_ITEM_DEFAULT_VALUE as a,validateValue as n}from"../index.js";function d(e){e.password=s(s({},a),{isRequired:!0,label:r.translate("label.password"),placeholder:r.translate("placeholder.password")}),e.isSubmitted=!1,e.isSubmitting=!1,e.isSuccess=void 0,e.isFailure=void 0,e.responseMessage=void 0}function u(s,e){s.password.value=e,s.isSubmitted&&m(s)}function l(s){return e(this,void 0,void 0,function(){var e,a,n,d;return i(this,function(i){switch(i.label){case 0:return s.isSubmitted=!0,s.isSuccess=void 0,s.isFailure=void 0,s.responseMessage=void 0,m(s)?[2,!1]:(s.isSubmitting=!0,[4,t(o,s.password.value)]);case 1:return e=i.sent(),s.isSubmitting=!1,(null==e?void 0:e.isSuccess)?(s.isSuccess=!0,s.responseMessage=r.translate("notification.success.deactivate_customer"),[2,!0]):(s.isFailure=!0,a=null!==(d=null===(n=null==e?void 0:e.errors)||void 0===n?void 0:n[0])&&void 0!==d?d:"",s.responseMessage=a.includes("customer_deactivation_request_already_exists")?r.translate("notification.failure.deactivate_customer_request_already_exists"):r.translate("notification.failure.deactivate_customer"),[2,!1])}})})}function m(s){var e=n(s.password.value,{required:!0});return e.hasError?(s.password.hasError=!0,s.password.message=e.message):(s.password.hasError=!1,s.password.message=void 0),e.hasError}export{d as initDeactivateCustomerForm,u as setDeactivateCustomerFormPassword,l as submitDeactivateCustomerForm};
@@ -92,12 +92,79 @@ export declare function setLocalization(baseStore: BaseStore, localeOption: Ikas
92
92
  * ```
93
93
  */
94
94
  export declare function setLanguage(baseStore: BaseStore, language: IkasLanguageOption): void;
95
+ /**
96
+ * Fetches a single product by id and returns it as a full `IkasProduct`.
97
+ *
98
+ * Use this when a lightweight reference (e.g. a cart line's `IkasOrderLineVariant`, which carries
99
+ * neither `salesChannels` nor `stock`) needs product-level data: the returned product includes
100
+ * `salesChannels` filtered to the active sales channel (with `minQuantityPerCart` /
101
+ * `maxQuantityPerCart`) and per-variant `stock` (summed over the sales channel's configured
102
+ * stock locations). `selectedVariantValues` is seeded from the first active variant (or the
103
+ * first variant when none is active). For multiple ids, prefer `bs_searchProductsById` — one
104
+ * batched request.
105
+ *
106
+ * @ai-category Product, Search
107
+ * @ai-related bs_searchProductsById
108
+ *
109
+ * @param baseStore - The base store instance
110
+ * @param params - `{ productId }` — id of the product to fetch
111
+ * @returns `{ isSuccess, product }` — `product` is null when not found or on failure
112
+ *
113
+ * @example
114
+ * ```tsx
115
+ * import { baseStore, bs_searchProductById, IkasStorefrontConfig } from "@ikas/bp-storefront";
116
+ *
117
+ * const { isSuccess, product } = await bs_searchProductById(baseStore, { productId });
118
+ * if (isSuccess && product) {
119
+ * const channel = product.salesChannels?.find(sc => sc.id === IkasStorefrontConfig.salesChannelId);
120
+ * console.log(channel?.maxQuantityPerCart);
121
+ * }
122
+ * ```
123
+ */
95
124
  export declare function bs_searchProductById(baseStore: BaseStore, params: {
96
125
  productId: string;
97
126
  }): Promise<{
98
127
  isSuccess: boolean;
99
128
  product: IkasProduct | null;
100
129
  }>;
130
+ /**
131
+ * Batch-fetches products by id in a single request and returns them as full `IkasProduct` objects.
132
+ *
133
+ * The go-to function when cart lines (or any lightweight reference) need product-level data they
134
+ * do not carry: `IkasOrderLineVariant` has neither `salesChannels` nor `stock`, while the products
135
+ * returned here include `salesChannels` filtered to the active sales channel (with
136
+ * `minQuantityPerCart` / `maxQuantityPerCart`) and per-variant `stock` (summed over the sales
137
+ * channel's configured stock locations). Collect the distinct `productId`s of the lines and
138
+ * fetch them in ONE call instead of one request per line. Called with an empty `productIds`,
139
+ * it returns `{ isSuccess: true, products: [] }` without a network request.
140
+ *
141
+ * @ai-category Product, Cart, Search
142
+ * @ai-related bs_searchProductById, changeItemQuantity
143
+ *
144
+ * @param baseStore - The base store instance
145
+ * @param params - `{ productIds }` — product ids to fetch (deduplicate before calling)
146
+ * @returns `{ isSuccess, products }` — `products` is null on failure
147
+ *
148
+ * @example
149
+ * ```tsx
150
+ * import { baseStore, bs_searchProductsById, cartStore, IkasStorefrontConfig } from "@ikas/bp-storefront";
151
+ *
152
+ * // Enforce per-cart quantity limits on cart lines:
153
+ * const productIds = [
154
+ * ...new Set(
155
+ * (cartStore.cart?.orderLineItems ?? [])
156
+ * .map(item => item.variant.productId)
157
+ * .filter((id): id is string => !!id)
158
+ * ),
159
+ * ];
160
+ * const { products } = await bs_searchProductsById(baseStore, { productIds });
161
+ * const maxByProductId = new Map<string, number | null>();
162
+ * for (const p of products ?? []) {
163
+ * const channel = p.salesChannels?.find(sc => sc.id === IkasStorefrontConfig.salesChannelId);
164
+ * maxByProductId.set(p.id, channel?.maxQuantityPerCart ?? null);
165
+ * }
166
+ * ```
167
+ */
101
168
  export declare function bs_searchProductsById(baseStore: BaseStore, params: {
102
169
  productIds: string[];
103
170
  }): Promise<{
@@ -1 +1 @@
1
- import{__awaiter as n,__generator as i}from'./../../../ext/tslib/tslib.es6.mjs.js';import{IkasStorefrontConfig as t}from"../../../packages/storefront-config/src/index.js";import o from'./../../../ext/lodash/flatten.js';import e from'./../../../ext/lodash/sortBy.js';import{baseStore as r}from"../../../stores/base/index.js";function a(a){r.currentPageType=a,function(){n(this,void 0,void 0,function(){var n,a,c,u,s,d,l,v;return i(this,function(i){switch(i.label){case 0:return[4,import("../../api/location/index.js")];case 1:return[4,(0,i.sent().apiGetMyCountry)()];case 2:return n=i.sent(),a=n.data,n.isSuccess&&a?(c=t.routings.filter(function(n){var i;return null===(i=n.countryCodes)||void 0===i?void 0:i.includes(a)}),c.length?(u=o(t.routings.map(function(n){return n.countryCodes||[]})),[4,import("../../api/location/index.js")]):[2]):[2];case 3:return[4,(0,i.sent().apiListCountry)({iso2:{in:u}})];case 4:return(s=i.sent()).isSuccess?(d=s.data||[],l=[],v=[],t.routings.forEach(function(n){var i;if(null===(i=n.countryCodes)||void 0===i?void 0:i.length)n.countryCodes.forEach(function(i){var t=d.find(function(n){return n.iso2===i});if(!v.some(function(n){return n.iso2===(null==t?void 0:t.iso2)})){var o={id:(null==t?void 0:t.iso2)||(null==t?void 0:t.iso3)||Date.now()+"",countryName:(null==t?void 0:t.native)||(null==t?void 0:t.name)||"",iso2:(null==t?void 0:t.iso2)||void 0,iso3:(null==t?void 0:t.iso3)||void 0,routing:n,isRecommended:i===a};v.push(o)}});else{var o={id:n.id,routing:n,isRecommended:!t.routings.some(function(n){var i;return null===(i=n.countryCodes)||void 0===i?void 0:i.includes(a)})};v.push(o)}}),t.routings.forEach(function(n){var i;if(c.some(function(i){return i.id===n.id})){var o={id:n.id,currencyCode:n.currencyCode,currencySymbol:n.currencySymbol,language:"undefined"!=typeof Intl&&void 0!==Intl.DisplayNames&&new Intl.DisplayNames([],{type:"language"}).of(n.locale)||n.locale,locale:n.locale,isSelected:n.id===(null===(i=t.getCurrentRouting())||void 0===i?void 0:i.id)||!1};l.push(o)}}),r.languageOptions=e(l,"language"),r.localeOptions=e(v,"countryName"),[2]):[2]}})})}()}function c(n,i){var t=s(i.routing);window.location.replace(t)}function u(n,i){var o=t.routings.find(function(n){return n.id===i.id});if(o){var e=s(o);window.location.replace(e)}}function s(n){var i,o,e,a;if(n.domain)return"https://".concat(n.domain);var c=window.location,u=c.origin,s=c.pathname,d=c.search,l=c.hash,v=n.path?"/".concat(n.path):"",f=r.currentPageType;if("CATEGORY"===f||"BRAND"===f||"PRODUCT"===f){var p=null===(i=window.__IKAS_DATA__)||void 0===i?void 0:i.pageSpecificData,m=null===(e=null===(o=null==p?void 0:p.metaData)||void 0===o?void 0:o.translations)||void 0===e?void 0:e.find(function(i){return i.locale===n.locale});if(null==m?void 0:m.slug)return"".concat(u).concat(v,"/").concat(m.slug).concat(d).concat(l)}var g=null===(a=t.getCurrentRouting())||void 0===a?void 0:a.path,h=s;if(g){var y="/".concat(g);s===y?h="/":s.startsWith("".concat(y,"/"))&&(h=s.slice(y.length))}return"".concat(u).concat(v).concat(h).concat(d).concat(l)}function d(t,o){return n(this,void 0,void 0,function(){var n,t,e,r,a;return i(this,function(i){switch(i.label){case 0:return[4,import("../../api/product/index.js")];case 1:return[4,(0,i.sent().apiSearchProducts)({input:{productIdList:[o.productId]}})];case 2:return n=i.sent(),(t=(null===(a=null===(r=n.data)||void 0===r?void 0:r.data)||void 0===a?void 0:a[0])||null)&&(e=t.variants.find(function(n){return n.isActive}),t.selectedVariantValues=(e||t.variants[0]).variantValues),[2,{isSuccess:n.isSuccess,product:t}]}})})}function l(t,o){return n(this,void 0,void 0,function(){var n,t,e;return i(this,function(i){switch(i.label){case 0:return[4,import("../../api/product/index.js")];case 1:return[4,(0,i.sent().apiSearchProducts)({input:{productIdList:o.productIds}})];case 2:return n=i.sent(),(t=(null===(e=n.data)||void 0===e?void 0:e.data)||null)&&t.forEach(function(n){var i=n.variants.find(function(n){return n.isActive});n.selectedVariantValues=(i||n.variants[0]).variantValues}),[2,{isSuccess:n.isSuccess,products:t}]}})})}export{d as bs_searchProductById,l as bs_searchProductsById,a as initBaseStore,u as setLanguage,c as setLocalization};
1
+ import{__awaiter as n,__generator as o}from'./../../../ext/tslib/tslib.es6.mjs.js';import{IkasStorefrontConfig as i}from"../../../packages/storefront-config/src/index.js";import t from'./../../../ext/lodash/flatten.js';import e from'./../../../ext/lodash/sortBy.js';import{baseStore as r}from"../../../stores/base/index.js";function c(c){r.currentPageType=c,function(){n(this,void 0,void 0,function(){var n,c,a,u,s,d,l,v;return o(this,function(o){switch(o.label){case 0:return[4,import("../../api/location/index.js")];case 1:return[4,(0,o.sent().apiGetMyCountry)()];case 2:return n=o.sent(),c=n.data,n.isSuccess&&c?(a=i.routings.filter(function(n){var o;return null===(o=n.countryCodes)||void 0===o?void 0:o.includes(c)}),a.length?(u=t(i.routings.map(function(n){return n.countryCodes||[]})),[4,import("../../api/location/index.js")]):[2]):[2];case 3:return[4,(0,o.sent().apiListCountry)({iso2:{in:u}})];case 4:return(s=o.sent()).isSuccess?(d=s.data||[],l=[],v=[],i.routings.forEach(function(n){var o;if(null===(o=n.countryCodes)||void 0===o?void 0:o.length)n.countryCodes.forEach(function(o){var i=d.find(function(n){return n.iso2===o});if(!v.some(function(n){return n.iso2===(null==i?void 0:i.iso2)})){var t={id:(null==i?void 0:i.iso2)||(null==i?void 0:i.iso3)||Date.now()+"",countryName:(null==i?void 0:i.native)||(null==i?void 0:i.name)||"",iso2:(null==i?void 0:i.iso2)||void 0,iso3:(null==i?void 0:i.iso3)||void 0,routing:n,isRecommended:o===c};v.push(t)}});else{var t={id:n.id,routing:n,isRecommended:!i.routings.some(function(n){var o;return null===(o=n.countryCodes)||void 0===o?void 0:o.includes(c)})};v.push(t)}}),i.routings.forEach(function(n){var o;if(a.some(function(o){return o.id===n.id})){var t={id:n.id,currencyCode:n.currencyCode,currencySymbol:n.currencySymbol,language:"undefined"!=typeof Intl&&void 0!==Intl.DisplayNames&&new Intl.DisplayNames([],{type:"language"}).of(n.locale)||n.locale,locale:n.locale,isSelected:n.id===(null===(o=i.getCurrentRouting())||void 0===o?void 0:o.id)||!1};l.push(t)}}),r.languageOptions=e(l,"language"),r.localeOptions=e(v,"countryName"),[2]):[2]}})})}()}function a(n,o){var i=s(o.routing);window.location.replace(i)}function u(n,o){var t=i.routings.find(function(n){return n.id===o.id});if(t){var e=s(t);window.location.replace(e)}}function s(n){var o,t,e,c;if(n.domain)return"https://".concat(n.domain);var a=window.location,u=a.origin,s=a.pathname,d=a.search,l=a.hash,v=n.path?"/".concat(n.path):"",f=r.currentPageType;if("CATEGORY"===f||"BRAND"===f||"PRODUCT"===f){var p=null===(o=window.__IKAS_DATA__)||void 0===o?void 0:o.pageSpecificData,m=null===(e=null===(t=null==p?void 0:p.metaData)||void 0===t?void 0:t.translations)||void 0===e?void 0:e.find(function(o){return o.locale===n.locale});if(null==m?void 0:m.slug)return"".concat(u).concat(v,"/").concat(m.slug).concat(d).concat(l)}var g=null===(c=i.getCurrentRouting())||void 0===c?void 0:c.path,h=s;if(g){var y="/".concat(g);s===y?h="/":s.startsWith("".concat(y,"/"))&&(h=s.slice(y.length))}return"".concat(u).concat(v).concat(h).concat(d).concat(l)}function d(i,t){return n(this,void 0,void 0,function(){var n,i,e,r;return o(this,function(o){switch(o.label){case 0:return[4,import("../../api/product/index.js")];case 1:return[4,(0,o.sent().apiSearchProducts)({input:{productIdList:[t.productId]}})];case 2:return n=o.sent(),(i=(null===(r=null===(e=n.data)||void 0===e?void 0:e.data)||void 0===r?void 0:r[0])||null)&&l(i),[2,{isSuccess:n.isSuccess,product:i}]}})})}function l(n){var o=n.variants.find(function(n){return n.isActive})||n.variants[0];o&&(n.selectedVariantValues=o.variantValues)}function v(i,t){return n(this,void 0,void 0,function(){var n,i,e;return o(this,function(o){switch(o.label){case 0:return t.productIds.length?[4,import("../../api/product/index.js")]:[2,{isSuccess:!0,products:[]}];case 1:return[4,(0,o.sent().apiSearchProducts)({input:{productIdList:t.productIds}})];case 2:return n=o.sent(),(i=(null===(e=n.data)||void 0===e?void 0:e.data)||null)&&i.forEach(l),[2,{isSuccess:n.isSuccess,products:i}]}})})}export{d as bs_searchProductById,v as bs_searchProductsById,c as initBaseStore,u as setLanguage,a as setLocalization};
@@ -26,6 +26,13 @@ export declare function getCheckoutUrlFromCartStore(cartStore: IkasCartStore): s
26
26
  /**
27
27
  * Add a product variant to the shopping cart.
28
28
  *
29
+ * Clamps the quantity to the sales channel's `minQuantityPerCart`/`maxQuantityPerCart` only
30
+ * when it creates a new cart line. When the variant already has a line in the cart, the add
31
+ * is delegated to `changeItemQuantity` (existing quantity + `initialQuantity`) with no
32
+ * client-side clamp — a quantity past `maxQuantityPerCart` is then rejected by the API with
33
+ * the `MAX_QUANTITY_PER_CART_LIMIT_REACHED` code in `result.response.errorCodes`, never as a
34
+ * `validationError`. See `changeItemQuantity` for the handling pattern.
35
+ *
29
36
  * @ai-category ProductDetail, Cart
30
37
  * @ai-related getSelectedProductVariant, findExistingCartItem, hasProductVariantStock
31
38
  *
@@ -85,6 +92,11 @@ export declare function addSelectedtedVariantToCart(product: IkasProduct, initia
85
92
  * Change the quantity of an item in the cart.
86
93
  * Use quantity=0 to remove the item.
87
94
  *
95
+ * Performs no client-side clamping or validation: a quantity above the sales channel's
96
+ * `maxQuantityPerCart` is rejected by the API with the `MAX_QUANTITY_PER_CART_LIMIT_REACHED`
97
+ * code in `result.response.errorCodes` (never as a `validationError`). Prevent violations in
98
+ * the stepper and treat the error code as the fallback.
99
+ *
88
100
  * @ai-category Cart
89
101
  * @ai-related removeItem, findExistingCartItem
90
102
  *
@@ -96,7 +108,7 @@ export declare function addSelectedtedVariantToCart(product: IkasProduct, initia
96
108
  *
97
109
  * @example
98
110
  * ```typescript
99
- * import { cartStore, changeItemQuantity } from "@ikas/bp-storefront";
111
+ * import { APIErrorCode, cartStore, changeItemQuantity } from "@ikas/bp-storefront";
100
112
  *
101
113
  * // Increment quantity
102
114
  * async function handleIncrement(itemId: string) {
@@ -104,7 +116,10 @@ export declare function addSelectedtedVariantToCart(product: IkasProduct, initia
104
116
  * if (item) {
105
117
  * const result = await changeItemQuantity(item, item.quantity + 1);
106
118
  * if (!result.success) {
107
- * showToast("Failed to update quantity");
119
+ * const limitHit = result.response?.errorCodes?.includes(
120
+ * APIErrorCode.MAX_QUANTITY_PER_CART_LIMIT_REACHED
121
+ * );
122
+ * showToast(limitHit ? "Per-cart quantity limit reached" : "Failed to update quantity");
108
123
  * }
109
124
  * }
110
125
  * }
@@ -353,6 +368,35 @@ export declare function saveCouponCode(cart: IkasCart, couponCode?: string | nul
353
368
  * ```
354
369
  */
355
370
  export declare function removeCouponCode(cart: IkasCart): Promise<IkasCartOperationResult>;
371
+ /**
372
+ * Remove a gift card (or store credit) line from the cart.
373
+ *
374
+ * Gift cards are applied through `saveCouponCode` with the gift card code, and the applied
375
+ * cards are listed on `cart.giftCardLines`. Pass the `giftCardId` of the line to remove; when
376
+ * omitted, every gift card line is removed from the cart.
377
+ *
378
+ * @ai-category Cart
379
+ * @ai-related saveCouponCode, getIkasOrderGiftCardTotalPrice
380
+ *
381
+ * @param cart - The cart object
382
+ * @param giftCardId - The gift card to remove, or null/undefined to remove all of them
383
+ * @returns Result with success flag
384
+ *
385
+ * @example
386
+ * ```typescript
387
+ * import { cartStore, removeGiftCardLine } from "@ikas/bp-storefront";
388
+ *
389
+ * async function handleRemoveGiftCard(giftCardId: string) {
390
+ * if (!cartStore.cart) return;
391
+ *
392
+ * const result = await removeGiftCardLine(cartStore.cart, giftCardId);
393
+ * if (result.success) {
394
+ * showToast("Gift card removed");
395
+ * }
396
+ * }
397
+ * ```
398
+ */
399
+ export declare function removeGiftCardLine(cart: IkasCart, giftCardId?: string | null): Promise<IkasCartOperationResult>;
356
400
  /**
357
401
  * Fetch the cart from the API and persist it to the cart store.
358
402
  * Resolves the cart using the localStorage cart ID or the logged-in customer ID.
@@ -1 +1 @@
1
- import{__awaiter as t,__generator as n}from'./../../../ext/tslib/tslib.es6.mjs.js';import{IkasStorefrontConfig as r}from"../../../packages/storefront-config/src/index.js";import{CART_LS_KEY as e,cartStore as i}from"../../../stores/cart/index.js";import{customerStore as a}from"../../../stores/customer/index.js";import{getCookieValue as o}from"../../../utils/helper.js";import{getIkasOrderDistinctItemCount as s}from"../../models/order/index.js";import{getSelectedProductVariant as u,hasProductValidOptionValues as c}from"../../models/product/index.js";import{isProductOfferAccepted as d}from"../../models/product/campaign-offer/index.js";import{initProductOptionSetValues as l}from"../../models/product/option-set/index.js";import{hasProductVariantStock as f}from"../../models/product/variant/index.js";function v(t){var n,e=null===(n=t.cart)||void 0===n?void 0:n.id;if(e){var i=r.getCurrentRouting();return"".concat((null==i?void 0:i.path)?"/".concat(i.path):"","/checkout?id=").concat(e,"&step=info")}return""}function p(a,s){return t(this,arguments,void 0,function(t,a,s,d){var v,p,m,I,g,y,b,C,L,_,j,w,P,T,x,k,U;return void 0===s&&(s=1),n(this,function(n){switch(n.label){case 0:v=null!==(w=null==d?void 0:d.isPayWithIkas)&&void 0!==w&&w,n.label=1;case 1:return n.trys.push([1,10,,11]),v||!a.productOptionSetId||a.productOptionSet?c(a)?f(t)||t.sellIfOutOfStock?(p=void 0,v?[3,3]:[4,E()]):[2,{success:!1,validationError:"INSUFFICIENT_STOCK"}]:[2,{success:!1,validationError:"INVALID_PRODUCT_OPTION_VALUES"}]:[2,{success:!1,validationError:"INVALID_PRODUCT_OPTION_VALUES"}];case 2:if(n.sent(),i.cart&&(p=O(i.cart,t,a))){if(a.productOptionSet&&l(a.productOptionSet),!t.bundleSettings)return[2,h(p,p.quantity+s,a.offers,a)];if(!S())return[2,h(p,p.quantity+s,a.offers,a)]}n.label=3;case 3:return m=F(a),I=s,(null==(g=null===(P=a.salesChannels)||void 0===P?void 0:P.find(function(t){return t.id===r.salesChannelId}))?void 0:g.minQuantityPerCart)&&s<g.minQuantityPerCart&&(I=g.minQuantityPerCart),(null==g?void 0:g.maxQuantityPerCart)&&s>g.maxQuantityPerCart&&(I=g.maxQuantityPerCart),y=v?null:(null===(T=i.cart)||void 0===T?void 0:T.id)||localStorage.getItem(e),[4,import("../../api/cart/index.js")];case 4:return[4,(0,n.sent().apiAddItemToCart)({input:{cartId:y,item:{id:null!==(x=null==p?void 0:p.id)&&void 0!==x?x:null,quantity:null!==(k=null==p?void 0:p.quantity)&&void 0!==k?k:I,variant:{id:t.id,name:a.name,bundleProducts:null===(U=t.bundleSettings)||void 0===U?void 0:U.products.map(function(t){var n;return{id:t.id,productId:(null===(n=t.product)||void 0===n?void 0:n.id)||"",variantId:t.product?u(t.product).id:"",quantity:t.quantity}})}},acceptedOffers:q(a.offers),options:m.length?m:null,priceListId:r.priceListId||null,salesChannelId:r.salesChannelId,storefrontThemeId:r.storefrontThemeId,metadata:{_fbp:o("_fbp"),_fbc:o("_fbc")}}})];case 5:return b=n.sent(),v?[3,7]:b.isSuccess&&b.data?[4,A(b.data)]:[3,7];case 6:n.sent(),n.label=7;case 7:return(C=v?b.data:i.cart)?(L="".concat(C.id,"-").concat(C.updatedAt),(_=C.orderLineItems.find(function(n){return n.variant.id===t.id}))?[4,import("../../../analytics/analytics-functions/addToCart.js")]:[3,9]):[3,9];case 8:(0,n.sent().anl_addToCart)(_,s,L,C,a),n.label=9;case 9:return a.productOptionSet&&l(a.productOptionSet),[2,{success:b.isSuccess,response:b}];case 10:return j=n.sent(),console.log(j),[2,{success:!1}];case 11:return[2]}})})}function m(r){return t(this,arguments,void 0,function(t,r){return void 0===r&&(r=1),n(this,function(n){switch(n.label){case 0:return[4,p(u(t),t,r)];case 1:return[2,n.sent()]}})})}function h(e,a,s,u){return t(this,void 0,void 0,function(){var t,c,d,l,f,v;return n(this,function(n){switch(n.label){case 0:return n.trys.push([0,10,,11]),[4,E()];case 1:return n.sent(),[4,import("../../api/cart/index.js")];case 2:return[4,(0,n.sent().apiAddItemToCart)({input:{cartId:(null===(f=i.cart)||void 0===f?void 0:f.id)||null,item:{id:e.id,quantity:a,variant:{id:e.variant.id,name:e.variant.name,bundleProducts:null===(v=e.variant.bundleProducts)||void 0===v?void 0:v.map(function(t){return{id:t.id,productId:t.variant.productId||"",variantId:t.variant.id||"",quantity:t.quantity}})}},acceptedOffers:s?q(s):void 0,options:k(e),priceListId:r.priceListId||null,salesChannelId:r.salesChannelId,storefrontThemeId:r.storefrontThemeId,metadata:{_fbp:o("_fbp"),_fbc:o("_fbc")}}})];case 3:return(t=n.sent()).isSuccess&&t.data?[4,A(t.data)]:[3,5];case 4:n.sent(),n.label=5;case 5:return i.cart?(c="".concat(i.cart.id,"-").concat(i.cart.updatedAt),(d=e.quantity)>a?[4,import("../../../analytics/analytics-functions/removeFromCart.js")]:[3,7]):[3,9];case 6:return(0,n.sent().anl_removeFromCart)(e,d-a,i.cart),[3,9];case 7:return[4,import("../../../analytics/analytics-functions/addToCart.js")];case 8:(0,n.sent().anl_addToCart)(e,a-d,c,i.cart,u),n.label=9;case 9:return P(i),[2,{success:t.isSuccess,response:t}];case 10:return l=n.sent(),console.log(l),[2,{success:!1}];case 11:return[2]}})})}function I(r,e,i,a,o){return t(this,void 0,void 0,function(){return n(this,function(t){switch(t.label){case 0:return[4,h(e,i,a,o)];case 1:return[2,t.sent()]}})})}function g(t,n){for(var r=0,e=(null==t?void 0:t.orderAdjustments)||[];r<e.length;r++)for(var i=0,a=e[r].appliedOrderLines||[];i<a.length;i++){var o=a[i];if(o.orderLineId===n.id)return o.isAutoCreated||!1}return!1}function y(r){return t(this,void 0,void 0,function(){return n(this,function(t){switch(t.label){case 0:return[4,h(r,0)];case 1:return[2,t.sent()]}})})}function b(t){localStorage.removeItem(e),t.cart=null}function C(r){return t(this,void 0,void 0,function(){return n(this,function(t){switch(t.label){case 0:return[4,new Promise(function(t){var n=setInterval(function(){r.isCartInitialLoadFinished&&(clearInterval(n),t(null))},100)})];case 1:return[2,t.sent()]}})})}function S(){if("undefined"!=typeof window)return new URLSearchParams(window.location.search).get("editLineID")||""}function O(t,n,r){var e;if(!r.productOptionSetId&&!n.bundleSettings)return t.orderLineItems.find(function(t){return t.variant.id===n.id});if(n.bundleSettings){var i=S();if(i)if(h=t.orderLineItems.find(function(t){return t.id===i}))return h}var a=t.orderLineItems.filter(function(t){return t.variant.id===n.id})||[];if(r.productOptionSetId)for(var o=F(r),s=a.filter(function(t){var n;return(null===(n=t.options)||void 0===n?void 0:n.length)===o.length})||[],u=0,c=s;u<c.length;u++){if((h=c[u]).options){for(var d=!0,l=function(t){var n=t.values.map(function(t){return t.value}),r=null===(e=o.find(function(n){return n.productOptionId===t.productOptionId}))||void 0===e?void 0:e.values;if(!(d=d&&n.length===(null==r?void 0:r.length)&&n.every(function(t){return null==r?void 0:r.includes(t)})))return"break"},f=0,v=h.options;f<v.length;f++){if("break"===l(v[f]))break}if(d){if(!n.bundleSettings)return h;if(_(n,h))return h}}}else if(n.bundleSettings)for(var p=0,m=a;p<m.length;p++){var h=m[p];if(_(n,h))return h}}function L(t,n){return O(t,u(n),n)}function _(t,n){var r,e=null===(r=t.bundleSettings)||void 0===r?void 0:r.products,i=n.variant.bundleProducts;return!!e&&((null==e?void 0:e.length)===(null==i?void 0:i.length)&&(null==e?void 0:e.every(function(t){return!!(null==i?void 0:i.find(function(n){return n.id===t.id&&n.quantity===t.quantity&&t.product&&n.variant.id===u(t.product).id}))})))}function j(r,e){return t(this,void 0,void 0,function(){var t;return n(this,function(n){switch(n.label){case 0:return[4,import("../../api/cart/index.js")];case 1:return[4,(0,n.sent().apiSaveCartCouponCode)({cartId:r.id,couponCode:e})];case 2:return(t=n.sent()).isSuccess&&t.data&&(i.cart=t.data),[2,{success:t.isSuccess,response:t}]}})})}function w(r){return t(this,void 0,void 0,function(){return n(this,function(t){switch(t.label){case 0:return[4,j(r,null)];case 1:return[2,t.sent()]}})})}function P(t){t.cart&&0===s(t.cart)&&b(t)}function T(){return t(this,void 0,void 0,function(){var t,r,o,s,u,c;return n(this,function(n){switch(n.label){case 0:if(!("undefined"!=typeof localStorage))return[2];n.label=1;case 1:return n.trys.push([1,7,8,9]),i.isCartLoading=!0,t=null===(u=a.customer)||void 0===u?void 0:u.id,(r=(null===(c=i.cart)||void 0===c?void 0:c.id)||localStorage.getItem(e))||t?[4,import("../../api/cart/index.js")]:[2];case 2:return[4,(0,n.sent().apiGetCartById)({id:r})];case 3:return(o=n.sent()).isSuccess&&o.data?[4,A(o.data)]:[3,5];case 4:return n.sent(),[3,6];case 5:if(o.isCancelled||o.isNetworkError)return[2];b(i),n.label=6;case 6:return[3,9];case 7:return s=n.sent(),console.log(s),[3,9];case 8:return i.isCartLoading=!1,i.isCartInitialLoadFinished=!0,[7];case 9:return[2]}})})}function q(t){var n=t.filter(function(t){return t.isSelected&&!d(t)}).map(function(t){return{campaignOfferId:t.campaignOfferId,campaignOfferProductId:t.campaignOfferProductId,productId:t.product.id,quantity:t.quantity,variantId:u(t.product).id}})||[];return n.length?n:void 0}function x(e,i){return t(this,arguments,void 0,function(t,e,i){var a,o,s,c,d,l,f,v,m,h,I,g,y,b,C;return void 0===i&&(i=1),n(this,function(t){switch(t.label){case 0:return t.trys.push([0,4,,5]),a=r.salesChannelId,o=r.storefrontThemeId,a&&o?(s=u(e))?[4,p(s,e,i,{isPayWithIkas:!0})]:[2,{success:!1,error:"No variant selected"}]:[2,{success:!1,error:"Missing storefront configuration"}];case 1:return(c=t.sent()).success&&(null===(m=null===(v=c.response)||void 0===v?void 0:v.data)||void 0===m?void 0:m.id)?(d=c.response.data.id,[4,import("../../api/cart/index.js")]):[2,{success:!1,error:(null===(g=null===(I=null===(h=c.response)||void 0===h?void 0:h.graphQLErrors)||void 0===I?void 0:I[0])||void 0===g?void 0:g.message)||"Failed to create cart"}];case 2:return[4,(0,t.sent().apiCreatePayWithIkasSessionUrl)({cartId:d})];case 3:return!(l=t.sent()).data||(null===(y=l.graphQLErrors)||void 0===y?void 0:y.length)?[2,{success:!1,error:(null===(C=null===(b=l.graphQLErrors)||void 0===b?void 0:b[0])||void 0===C?void 0:C.message)||"Failed to create Pay with ikas session"}]:[2,{success:!0,payUrl:l.data.payUrl,expiresAt:l.data.expiresAt}];case 4:return f=t.sent(),console.log("error",f),[2,{success:!1,error:f instanceof Error?f.message:"Unknown error occurred"}];case 5:return[2]}})})}function A(r){return t(this,void 0,void 0,function(){return n(this,function(t){return localStorage.setItem(e,r.id),i.cart=r,[2]})})}function E(){return t(this,void 0,void 0,function(){var t;return n(this,function(n){switch(n.label){case 0:return t=localStorage.getItem(e),!i.cart||t?[3,1]:(b(i),[3,3]);case 1:return i.cart||!t?[3,3]:[4,T()];case 2:n.sent(),n.label=3;case 3:return[2]}})})}function k(t){if(t&&t.options){for(var n=[],r=0,e=t.options;r<e.length;r++){var i=e[r],a={productOptionId:i.productOptionId,productOptionsSetId:i.productOptionsSetId,values:i.values.map(function(t){return t.value})};n.push(a)}return n}return null}function F(t){var n,r=[],e=new Set,i=function(t){var n;e.has(t.id)||(e.add(t.id),t.values.length&&r.push({productOptionId:t.id,productOptionsSetId:t.productOptionSetId,values:t.values}),null===(n=t.childOptions)||void 0===n||n.forEach(i))};return null===(n=t.productOptionSet)||void 0===n||n.options.filter(function(t){return!t.requiredOptionId}).forEach(i),r}function U(e){return t(this,void 0,void 0,function(){var t,a,s,u,c,d,l,f,v,p,m;return n(this,function(n){switch(n.label){case 0:return n.trys.push([0,10,,11]),[4,E()];case 1:return n.sent(),t=e.itemId?null===(v=i.cart)||void 0===v?void 0:v.orderLineItems.find(function(t){return t.id===e.itemId}):null,[4,import("../../api/cart/index.js")];case 2:return[4,(0,n.sent().apiAddItemToCart)({input:{cartId:(null===(p=i.cart)||void 0===p?void 0:p.id)||null,item:{id:e.itemId||null,quantity:e.quantity,variant:{id:e.variantId}},priceListId:r.priceListId||null,salesChannelId:r.salesChannelId,storefrontThemeId:r.storefrontThemeId,metadata:{_fbp:o("_fbp"),_fbc:o("_fbc")}}})];case 3:return(a=n.sent()).isSuccess&&a.data?(e.itemId||(s=(null===(m=i.cart)||void 0===m?void 0:m.orderLineItems.map(function(t){return t.id}))||[],u=a.data.orderLineItems.map(function(t){return t.id}),(c=u.find(function(t){return!s.includes(t)}))&&(t=a.data.orderLineItems.find(function(t){return t.id===c}))),[4,A(a.data)]):[3,5];case 4:n.sent(),n.label=5;case 5:return i.cart&&t?(d="".concat(i.cart.id,"-").concat(i.cart.updatedAt),(l=e.quantity)>e.quantity?[4,import("../../../analytics/analytics-functions/removeFromCart.js")]:[3,7]):[3,9];case 6:return(0,n.sent().anl_removeFromCart)(t,l-e.quantity,i.cart),[3,9];case 7:return[4,import("../../../analytics/analytics-functions/addToCart.js")];case 8:(0,n.sent().anl_addToCart)(t,e.quantity-l,d,i.cart),n.label=9;case 9:return P(i),[2,{success:a.isSuccess,response:a}];case 10:return f=n.sent(),console.log(f),[2,{success:!1}];case 11:return[2]}})})}function Q(t){var n;return!!t.cart&&(null===(n=t.cart.orderLineItems)||void 0===n?void 0:n.length)>0}export{p as addItemToCart,m as addSelectedtedVariantToCart,I as changeCartItemQuantity,h as changeItemQuantity,x as createPayWithIkasSession,O as findExistingCartItem,L as findExistingCartItemWithProduct,q as getAcceptedOffers,T as getCart,v as getCheckoutUrlFromCartStore,Q as hasCart,g as isOrderLineItemAutoCreated,b as removeCart,w as removeCouponCode,y as removeItem,j as saveCouponCode,A as setCart,C as waitForCartStoreInit,U as windowAddToCart};
1
+ import{__awaiter as t,__generator as n,__assign as r}from'./../../../ext/tslib/tslib.es6.mjs.js';import{IkasStorefrontConfig as e}from"../../../packages/storefront-config/src/index.js";import{CART_LS_KEY as i,cartStore as a}from"../../../stores/cart/index.js";import{customerStore as o}from"../../../stores/customer/index.js";import{getCookieValue as s,getOpenAiAttributionMetadata as u}from"../../../utils/helper.js";import{getIkasOrderDistinctItemCount as c}from"../../models/order/index.js";import{getSelectedProductVariant as d,hasProductValidOptionValues as l}from"../../models/product/index.js";import{isProductOfferAccepted as f}from"../../models/product/campaign-offer/index.js";import{initProductOptionSetValues as v}from"../../models/product/option-set/index.js";import{hasProductVariantStock as p}from"../../models/product/variant/index.js";import{waitForCustomerStoreInit as m}from"../customer/index.js";function h(t){var n,r=null===(n=t.cart)||void 0===n?void 0:n.id;if(r){var i=e.getCurrentRouting();return"".concat((null==i?void 0:i.path)?"/".concat(i.path):"","/checkout?id=").concat(r,"&step=info")}return""}function I(o,c){return t(this,arguments,void 0,function(t,o,c,f){var m,h,I,g,y,C,S,O,_,w,x,P,T,q,A,E,F;return void 0===c&&(c=1),n(this,function(n){switch(n.label){case 0:m=null!==(P=null==f?void 0:f.isPayWithIkas)&&void 0!==P&&P,n.label=1;case 1:return n.trys.push([1,10,,11]),m||!o.productOptionSetId||o.productOptionSet?l(o)?p(t)||t.sellIfOutOfStock?(h=void 0,m?[3,3]:[4,Q()]):[2,{success:!1,validationError:"INSUFFICIENT_STOCK"}]:[2,{success:!1,validationError:"INVALID_PRODUCT_OPTION_VALUES"}]:[2,{success:!1,validationError:"INVALID_PRODUCT_OPTION_VALUES"}];case 2:if(n.sent(),a.cart&&(h=j(a.cart,t,o))){if(o.productOptionSet&&v(o.productOptionSet),!t.bundleSettings)return[2,b(h,h.quantity+c,o.offers,o)];if(!L())return[2,b(h,h.quantity+c,o.offers,o)]}n.label=3;case 3:return I=D(o),g=c,(null==(y=null===(T=o.salesChannels)||void 0===T?void 0:T.find(function(t){return t.id===e.salesChannelId}))?void 0:y.minQuantityPerCart)&&c<y.minQuantityPerCart&&(g=y.minQuantityPerCart),(null==y?void 0:y.maxQuantityPerCart)&&c>y.maxQuantityPerCart&&(g=y.maxQuantityPerCart),C=m?null:(null===(q=a.cart)||void 0===q?void 0:q.id)||localStorage.getItem(i),[4,import("../../api/cart/index.js")];case 4:return[4,(0,n.sent().apiAddItemToCart)({input:{cartId:C,item:{id:null!==(A=null==h?void 0:h.id)&&void 0!==A?A:null,quantity:null!==(E=null==h?void 0:h.quantity)&&void 0!==E?E:g,variant:{id:t.id,name:o.name,bundleProducts:null===(F=t.bundleSettings)||void 0===F?void 0:F.products.map(function(t){var n;return{id:t.id,productId:(null===(n=t.product)||void 0===n?void 0:n.id)||"",variantId:t.product?d(t.product).id:"",quantity:t.quantity}})}},acceptedOffers:k(o.offers),options:I.length?I:null,priceListId:e.priceListId||null,salesChannelId:e.salesChannelId,storefrontThemeId:e.storefrontThemeId,metadata:r({_fbp:s("_fbp"),_fbc:s("_fbc"),_ga:s("_ga")},u())}})];case 5:return S=n.sent(),m?[3,7]:S.isSuccess&&S.data?[4,U(S.data)]:[3,7];case 6:n.sent(),n.label=7;case 7:return(O=m?S.data:a.cart)?(_="".concat(O.id,"-").concat(O.updatedAt),(w=O.orderLineItems.find(function(n){return n.variant.id===t.id}))?[4,import("../../../analytics/analytics-functions/addToCart.js")]:[3,9]):[3,9];case 8:(0,n.sent().anl_addToCart)(w,c,_,O,o),n.label=9;case 9:return o.productOptionSet&&v(o.productOptionSet),[2,{success:S.isSuccess,response:S}];case 10:return x=n.sent(),console.log(x),[2,{success:!1}];case 11:return[2]}})})}function g(r){return t(this,arguments,void 0,function(t,r){return void 0===r&&(r=1),n(this,function(n){switch(n.label){case 0:return[4,I(d(t),t,r)];case 1:return[2,n.sent()]}})})}function b(i,o,c,d){return t(this,void 0,void 0,function(){var t,l,f,v,p,m;return n(this,function(n){switch(n.label){case 0:return n.trys.push([0,10,,11]),[4,Q()];case 1:return n.sent(),[4,import("../../api/cart/index.js")];case 2:return[4,(0,n.sent().apiAddItemToCart)({input:{cartId:(null===(p=a.cart)||void 0===p?void 0:p.id)||null,item:{id:i.id,quantity:o,variant:{id:i.variant.id,name:i.variant.name,bundleProducts:null===(m=i.variant.bundleProducts)||void 0===m?void 0:m.map(function(t){return{id:t.id,productId:t.variant.productId||"",variantId:t.variant.id||"",quantity:t.quantity}})}},acceptedOffers:c?k(c):void 0,options:N(i),priceListId:e.priceListId||null,salesChannelId:e.salesChannelId,storefrontThemeId:e.storefrontThemeId,metadata:r({_fbp:s("_fbp"),_fbc:s("_fbc"),_ga:s("_ga")},u())}})];case 3:return(t=n.sent()).isSuccess&&t.data?[4,U(t.data)]:[3,5];case 4:n.sent(),n.label=5;case 5:return a.cart?(l="".concat(a.cart.id,"-").concat(a.cart.updatedAt),(f=i.quantity)>o?[4,import("../../../analytics/analytics-functions/removeFromCart.js")]:[3,7]):[3,9];case 6:return(0,n.sent().anl_removeFromCart)(i,f-o,a.cart),[3,9];case 7:return[4,import("../../../analytics/analytics-functions/addToCart.js")];case 8:(0,n.sent().anl_addToCart)(i,o-f,l,a.cart,d),n.label=9;case 9:return A(a),[2,{success:t.isSuccess,response:t}];case 10:return v=n.sent(),console.log(v),[2,{success:!1}];case 11:return[2]}})})}function y(r,e,i,a,o){return t(this,void 0,void 0,function(){return n(this,function(t){switch(t.label){case 0:return[4,b(e,i,a,o)];case 1:return[2,t.sent()]}})})}function C(t,n){for(var r=0,e=(null==t?void 0:t.orderAdjustments)||[];r<e.length;r++)for(var i=0,a=e[r].appliedOrderLines||[];i<a.length;i++){var o=a[i];if(o.orderLineId===n.id)return o.isAutoCreated||!1}return!1}function S(r){return t(this,void 0,void 0,function(){return n(this,function(t){switch(t.label){case 0:return[4,b(r,0)];case 1:return[2,t.sent()]}})})}function O(t){localStorage.removeItem(i),t.cart=null}function _(r){return t(this,void 0,void 0,function(){return n(this,function(t){switch(t.label){case 0:return[4,new Promise(function(t){var n=setInterval(function(){r.isCartInitialLoadFinished&&(clearInterval(n),t(null))},100)})];case 1:return[2,t.sent()]}})})}function L(){if("undefined"!=typeof window)return new URLSearchParams(window.location.search).get("editLineID")||""}function j(t,n,r){var e;if(!r.productOptionSetId&&!n.bundleSettings)return t.orderLineItems.find(function(t){return t.variant.id===n.id});if(n.bundleSettings){var i=L();if(i)if(h=t.orderLineItems.find(function(t){return t.id===i}))return h}var a=t.orderLineItems.filter(function(t){return t.variant.id===n.id})||[];if(r.productOptionSetId)for(var o=D(r),s=a.filter(function(t){var n;return(null===(n=t.options)||void 0===n?void 0:n.length)===o.length})||[],u=0,c=s;u<c.length;u++){if((h=c[u]).options){for(var d=!0,l=function(t){var n=t.values.map(function(t){return t.value}),r=null===(e=o.find(function(n){return n.productOptionId===t.productOptionId}))||void 0===e?void 0:e.values;if(!(d=d&&n.length===(null==r?void 0:r.length)&&n.every(function(t){return null==r?void 0:r.includes(t)})))return"break"},f=0,v=h.options;f<v.length;f++){if("break"===l(v[f]))break}if(d){if(!n.bundleSettings)return h;if(x(n,h))return h}}}else if(n.bundleSettings)for(var p=0,m=a;p<m.length;p++){var h=m[p];if(x(n,h))return h}}function w(t,n){return j(t,d(n),n)}function x(t,n){var r,e=null===(r=t.bundleSettings)||void 0===r?void 0:r.products,i=n.variant.bundleProducts;return!!e&&((null==e?void 0:e.length)===(null==i?void 0:i.length)&&(null==e?void 0:e.every(function(t){return!!(null==i?void 0:i.find(function(n){return n.id===t.id&&n.quantity===t.quantity&&t.product&&n.variant.id===d(t.product).id}))})))}function P(r,e){return t(this,void 0,void 0,function(){var t;return n(this,function(n){switch(n.label){case 0:return[4,import("../../api/cart/index.js")];case 1:return[4,(0,n.sent().apiSaveCartCouponCode)({cartId:r.id,couponCode:e})];case 2:return(t=n.sent()).isSuccess&&t.data&&(a.cart=t.data),[2,{success:t.isSuccess,response:t}]}})})}function T(r){return t(this,void 0,void 0,function(){return n(this,function(t){switch(t.label){case 0:return[4,P(r,null)];case 1:return[2,t.sent()]}})})}function q(r,e){return t(this,void 0,void 0,function(){var t;return n(this,function(n){switch(n.label){case 0:return[4,import("../../api/cart/index.js")];case 1:return[4,(0,n.sent().apiRemoveGiftCardFromCart)({cartId:r.id,giftCardId:e})];case 2:return(t=n.sent()).isSuccess&&t.data&&(a.cart=t.data),[2,{success:t.isSuccess,response:t}]}})})}function A(t){t.cart&&0===c(t.cart)&&O(t)}function E(){return t(this,void 0,void 0,function(){var t,r,e,s,u,c;return n(this,function(n){switch(n.label){case 0:if(!("undefined"!=typeof localStorage))return[2];n.label=1;case 1:return n.trys.push([1,8,9,10]),a.isCartLoading=!0,[4,m(o)];case 2:return n.sent(),t=null===(u=o.customer)||void 0===u?void 0:u.id,(r=(null===(c=a.cart)||void 0===c?void 0:c.id)||localStorage.getItem(i))||t?[4,import("../../api/cart/index.js")]:[2];case 3:return[4,(0,n.sent().apiGetCartById)({id:r})];case 4:return(e=n.sent()).isSuccess&&e.data?[4,U(e.data)]:[3,6];case 5:return n.sent(),[3,7];case 6:if(e.isCancelled||e.isNetworkError)return[2];O(a),n.label=7;case 7:return[3,10];case 8:return s=n.sent(),console.log(s),[3,10];case 9:return a.isCartLoading=!1,a.isCartInitialLoadFinished=!0,[7];case 10:return[2]}})})}function k(t){var n=t.filter(function(t){return t.isSelected&&!f(t)}).map(function(t){return{campaignOfferId:t.campaignOfferId,campaignOfferProductId:t.campaignOfferProductId,productId:t.product.id,quantity:t.quantity,variantId:d(t.product).id}})||[];return n.length?n:void 0}function F(r,i){return t(this,arguments,void 0,function(t,r,i){var a,o,s,u,c,l,f,v,p,m,h,g,b,y,C;return void 0===i&&(i=1),n(this,function(t){switch(t.label){case 0:return t.trys.push([0,4,,5]),a=e.salesChannelId,o=e.storefrontThemeId,a&&o?(s=d(r))?[4,I(s,r,i,{isPayWithIkas:!0})]:[2,{success:!1,error:"No variant selected"}]:[2,{success:!1,error:"Missing storefront configuration"}];case 1:return(u=t.sent()).success&&(null===(p=null===(v=u.response)||void 0===v?void 0:v.data)||void 0===p?void 0:p.id)?(c=u.response.data.id,[4,import("../../api/cart/index.js")]):[2,{success:!1,error:(null===(g=null===(h=null===(m=u.response)||void 0===m?void 0:m.graphQLErrors)||void 0===h?void 0:h[0])||void 0===g?void 0:g.message)||"Failed to create cart"}];case 2:return[4,(0,t.sent().apiCreatePayWithIkasSessionUrl)({cartId:c})];case 3:return!(l=t.sent()).data||(null===(b=l.graphQLErrors)||void 0===b?void 0:b.length)?[2,{success:!1,error:(null===(C=null===(y=l.graphQLErrors)||void 0===y?void 0:y[0])||void 0===C?void 0:C.message)||"Failed to create Pay with ikas session"}]:[2,{success:!0,payUrl:l.data.payUrl,expiresAt:l.data.expiresAt}];case 4:return f=t.sent(),console.log("error",f),[2,{success:!1,error:f instanceof Error?f.message:"Unknown error occurred"}];case 5:return[2]}})})}function U(r){return t(this,void 0,void 0,function(){return n(this,function(t){return localStorage.setItem(i,r.id),a.cart=r,[2]})})}function Q(){return t(this,void 0,void 0,function(){var t;return n(this,function(n){switch(n.label){case 0:return t=localStorage.getItem(i),!a.cart||t?[3,1]:(O(a),[3,3]);case 1:return a.cart||!t?[3,3]:[4,E()];case 2:n.sent(),n.label=3;case 3:return[2]}})})}function N(t){if(t&&t.options){for(var n=[],r=0,e=t.options;r<e.length;r++){var i=e[r],a={productOptionId:i.productOptionId,productOptionsSetId:i.productOptionsSetId,values:i.values.map(function(t){return t.value})};n.push(a)}return n}return null}function D(t){var n,r=[],e=new Set,i=function(t){var n;e.has(t.id)||(e.add(t.id),t.values.length&&r.push({productOptionId:t.id,productOptionsSetId:t.productOptionSetId,values:t.values}),null===(n=t.childOptions)||void 0===n||n.forEach(i))};return null===(n=t.productOptionSet)||void 0===n||n.options.filter(function(t){return!t.requiredOptionId}).forEach(i),r}function R(i){return t(this,void 0,void 0,function(){var t,o,c,d,l,f,v,p,m,h,I;return n(this,function(n){switch(n.label){case 0:return n.trys.push([0,10,,11]),[4,Q()];case 1:return n.sent(),t=i.itemId?null===(m=a.cart)||void 0===m?void 0:m.orderLineItems.find(function(t){return t.id===i.itemId}):null,[4,import("../../api/cart/index.js")];case 2:return[4,(0,n.sent().apiAddItemToCart)({input:{cartId:(null===(h=a.cart)||void 0===h?void 0:h.id)||null,item:{id:i.itemId||null,quantity:i.quantity,variant:{id:i.variantId}},priceListId:e.priceListId||null,salesChannelId:e.salesChannelId,storefrontThemeId:e.storefrontThemeId,metadata:r({_fbp:s("_fbp"),_fbc:s("_fbc"),_ga:s("_ga")},u())}})];case 3:return(o=n.sent()).isSuccess&&o.data?(i.itemId||(c=(null===(I=a.cart)||void 0===I?void 0:I.orderLineItems.map(function(t){return t.id}))||[],d=o.data.orderLineItems.map(function(t){return t.id}),(l=d.find(function(t){return!c.includes(t)}))&&(t=o.data.orderLineItems.find(function(t){return t.id===l}))),[4,U(o.data)]):[3,5];case 4:n.sent(),n.label=5;case 5:return a.cart&&t?(f="".concat(a.cart.id,"-").concat(a.cart.updatedAt),(v=i.quantity)>i.quantity?[4,import("../../../analytics/analytics-functions/removeFromCart.js")]:[3,7]):[3,9];case 6:return(0,n.sent().anl_removeFromCart)(t,v-i.quantity,a.cart),[3,9];case 7:return[4,import("../../../analytics/analytics-functions/addToCart.js")];case 8:(0,n.sent().anl_addToCart)(t,i.quantity-v,f,a.cart),n.label=9;case 9:return A(a),[2,{success:o.isSuccess,response:o}];case 10:return p=n.sent(),console.log(p),[2,{success:!1}];case 11:return[2]}})})}function V(t){var n;return!!t.cart&&(null===(n=t.cart.orderLineItems)||void 0===n?void 0:n.length)>0}export{I as addItemToCart,g as addSelectedtedVariantToCart,y as changeCartItemQuantity,b as changeItemQuantity,F as createPayWithIkasSession,j as findExistingCartItem,w as findExistingCartItemWithProduct,k as getAcceptedOffers,E as getCart,h as getCheckoutUrlFromCartStore,V as hasCart,C as isOrderLineItemAutoCreated,O as removeCart,T as removeCouponCode,q as removeGiftCardLine,S as removeItem,P as saveCouponCode,U as setCart,_ as waitForCartStoreInit,R as windowAddToCart};