@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
@@ -2,8 +2,9 @@ import { APIResponse, CartV2, ListLoyaltyProgramPointHistoryQueryParams, UseLoya
2
2
  import { RemoveLoyaltyPointsFromCartQueryParams } from "../../../storefront-api/src/__api/mutations/removeLoyaltyPointsFromCart";
3
3
  import { GetLoyaltyCustomerInfoQueryParams } from "../../../storefront-api/src/__api/queries/getLoyaltyCustomerInfo";
4
4
  import { ListSpendingMethodsByCartIdQueryParams } from "../../../storefront-api/src/__api/queries/listSpendingMethodsByCartId";
5
- import { IkasLoyaltyCustomerInfo, IkasLoyaltyProgramEarningMethod, IkasLoyaltyProgramPointHistory, IkasLoyaltyProgramSpendingMethod, IkasLoyaltyProgramTier, IkasStorefrontWidgetSettings } from "../../../storefront-models/src";
5
+ import { IkasLoyaltyCustomerInfo, IkasLoyaltyProgram, IkasLoyaltyProgramEarningMethod, IkasLoyaltyProgramPointHistory, IkasLoyaltyProgramSpendingMethod, IkasLoyaltyProgramTier, IkasStorefrontWidgetSettings } from "../../../storefront-models/src";
6
6
  export declare function apiGetStorefrontWidgetSettings(): Promise<APIResponse<IkasStorefrontWidgetSettings>>;
7
+ export declare function apiGetLoyaltyProgram(): Promise<APIResponse<IkasLoyaltyProgram>>;
7
8
  export declare function apiListEarningMethods(): Promise<APIResponse<IkasLoyaltyProgramEarningMethod[]>>;
8
9
  export declare function apiListLoyaltyProgramTiers(): Promise<APIResponse<IkasLoyaltyProgramTier[]>>;
9
10
  export declare function apiListSpendingMethodsByCartId(params: ListSpendingMethodsByCartIdQueryParams): Promise<APIResponse<IkasLoyaltyProgramSpendingMethod[]>>;
@@ -1 +1 @@
1
- import{__awaiter as t,__generator as r}from'./../../../ext/tslib/tslib.es6.mjs.js';import"../../../packages/storefront-api/src/index.js";import{APIResponse as e}from"../../../packages/storefront-api-client/src/utils/api.js";import'./../../../ext/isomorphic-fetch/fetch-npm-node.js';function s(){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/getStorefrontWidgetSettings.js")];case 1:return[4,(0,r.sent().getStorefrontWidgetSettings)()];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}function n(){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listEarningMethods.js")];case 1:return[4,(0,r.sent().listEarningMethods)()];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}function i(){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listLoyaltyProgramTiers.js")];case 1:return[4,(0,r.sent().listLoyaltyProgramTiers)()];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}function o(s){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listSpendingMethodsByCartId.js")];case 1:return[4,(0,r.sent().listSpendingMethodsByCartId)(s)];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}function a(s){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/getLoyaltyCustomerInfo.js")];case 1:return[4,(0,r.sent().getLoyaltyCustomerInfo)(s)];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}function c(s){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listLoyaltyProgramPointHistory.js")];case 1:return[4,(0,r.sent().listLoyaltyProgramPointHistory)(s)];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}function u(s){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/mutations/useLoyaltyPoints.js")];case 1:return[4,(0,r.sent().useLoyaltyPoints)(s)];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}function p(s){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/mutations/removeLoyaltyPointsFromCart.js")];case 1:return[4,(0,r.sent().removeLoyaltyPointsFromCart)(s)];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}export{a as apiGetLoyaltyCustomerInfo,s as apiGetStorefrontWidgetSettings,n as apiListEarningMethods,c as apiListLoyaltyProgramPointHistory,i as apiListLoyaltyProgramTiers,o as apiListSpendingMethodsByCartId,p as apiRemoveLoyaltyPointsFromCart,u as apiUseLoyaltyPoints};
1
+ import{__awaiter as t,__generator as r}from'./../../../ext/tslib/tslib.es6.mjs.js';import"../../../packages/storefront-api/src/index.js";import{APIResponse as e}from"../../../packages/storefront-api-client/src/utils/api.js";import'./../../../ext/isomorphic-fetch/fetch-npm-node.js';function s(){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/getStorefrontWidgetSettings.js")];case 1:return[4,(0,r.sent().getStorefrontWidgetSettings)()];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}function n(){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/getLoyaltyProgram.js")];case 1:return[4,(0,r.sent().getLoyaltyProgram)()];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}function i(){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listEarningMethods.js")];case 1:return[4,(0,r.sent().listEarningMethods)()];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}function o(){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listLoyaltyProgramTiers.js")];case 1:return[4,(0,r.sent().listLoyaltyProgramTiers)()];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}function a(s){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listSpendingMethodsByCartId.js")];case 1:return[4,(0,r.sent().listSpendingMethodsByCartId)(s)];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}function c(s){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/getLoyaltyCustomerInfo.js")];case 1:return[4,(0,r.sent().getLoyaltyCustomerInfo)(s)];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}function u(s){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listLoyaltyProgramPointHistory.js")];case 1:return[4,(0,r.sent().listLoyaltyProgramPointHistory)(s)];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}function p(s){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/mutations/useLoyaltyPoints.js")];case 1:return[4,(0,r.sent().useLoyaltyPoints)(s)];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}function f(s){return t(this,void 0,void 0,function(){var t;return r(this,function(r){switch(r.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/mutations/removeLoyaltyPointsFromCart.js")];case 1:return[4,(0,r.sent().removeLoyaltyPointsFromCart)(s)];case 2:return t=r.sent(),[2,new e(t.data,t.graphQLErrors)]}})})}export{c as apiGetLoyaltyCustomerInfo,n as apiGetLoyaltyProgram,s as apiGetStorefrontWidgetSettings,i as apiListEarningMethods,u as apiListLoyaltyProgramPointHistory,o as apiListLoyaltyProgramTiers,a as apiListSpendingMethodsByCartId,f as apiRemoveLoyaltyPointsFromCart,p as apiUseLoyaltyPoints};
@@ -1 +1 @@
1
- import{__awaiter as t,__generator as e,__assign as r}from'./../../../ext/tslib/tslib.es6.mjs.js';import{APIResponse as n}from"../../../packages/storefront-api-client/src/utils/api.js";import'./../../../ext/isomorphic-fetch/fetch-npm-node.js';import{IkasStorefrontConfig as i}from"../../../packages/storefront-config/src/index.js";import{initIkasProductAttribute as a}from"../../models/product/attribute/init.js";import{initIkasCampaignOffer as o}from"../../models/product/campaign-offer/init.js";import{initIkasProduct as u}from"../../models/product/init.js";import{initIkasProductOptionSet as d}from"../../models/product/option-set/init.js";function s(r){return t(this,void 0,void 0,function(){return e(this,function(t){switch(t.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listProductBackInStockRemind.js")];case 1:return[4,(0,t.sent().listProductBackInStockRemind)(r)];case 2:return[2,t.sent()]}})})}function c(r){return t(this,void 0,void 0,function(){return e(this,function(t){switch(t.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/mutations/saveProductBackInStockRemind.js")];case 1:return[4,(0,t.sent().saveProductBackInStockRemind)(r)];case 2:return[2,t.sent()]}})})}function l(r){return t(this,void 0,void 0,function(){var t,a;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listCampaignOffer.js")];case 1:return[4,(0,e.sent().listCampaignOffer)(r)];case 2:return t=e.sent(),null===(a=t.data)||void 0===a||a.forEach(function(t){o(t,i.getCurrentLocale())}),[2,new n(t.data||null,t.graphQLErrors)]}})})}function p(a,o){return t(this,void 0,void 0,function(){var t,d,s,c,l,p;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/searchProducts.js")];case 1:return t=e.sent().searchProducts,d=null===(l=i.getCurrentRouting())||void 0===l?void 0:l.dynamicCurrencySettings,[4,t({input:r(r({locale:i.getCurrentLocale(),dynamicCurrencySettings:d?{roundingFormat:d.roundingFormat,targetCurrencyCode:d.targetCurrencyCode}:void 0},a.input),{showStockOption:a.input.showStockOption||i.stockPreference||"SHOW_ALL"})},o)];case 2:return s=e.sent(),null==(c=null===(p=s.data)||void 0===p?void 0:p.results.map(I))||c.forEach(function(t){return u(t,i.getCurrentLocale())}),[2,new n(s.data?r(r({},s.data),{data:c}):null,s.graphQLErrors)]}})})}function v(r){return t(this,void 0,void 0,function(){var t,i,a,o,u,d,s;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/getProductFilterData.js")];case 1:return[4,(0,e.sent().getProductFilterData)(r)];case 2:return t=e.sent(),i=null===(u=t.data)||void 0===u?void 0:u.filters,a=(null===(d=t.data)||void 0===d?void 0:d.categories)||null,o=(null===(s=t.data)||void 0===s?void 0:s.disabledSortTypes)||null,[2,new n(t.data?{filters:i,categories:a,disabledSortTypes:o}:null,t.graphQLErrors)]}})})}function m(a){return t(this,void 0,void 0,function(){var t,o,d,s,c,l;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/getRelatedProducts.js")];case 1:return t=e.sent().getRelatedProducts,o=null===(c=i.getCurrentRouting())||void 0===c?void 0:c.dynamicCurrencySettings,[4,t(r({locale:i.getCurrentLocale(),dynamicCurrencySettings:o?{roundingFormat:o.roundingFormat,targetCurrencyCode:o.targetCurrencyCode}:void 0},a))];case 2:return d=e.sent(),(s=(null===(l=null==d?void 0:d.data)||void 0===l?void 0:l.map(function(t){return I(t)}))||[]).forEach(function(t){return u(t,i.getCurrentLocale())}),[2,new n(d.data?{data:s,count:d.data.length,facets:null,limit:20,page:1,totalCount:d.data.length}:null,d.graphQLErrors)]}})})}function g(a){return t(this,void 0,void 0,function(){var t,o,d,s,c,l;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/getSuggestedProducts.js")];case 1:return t=e.sent().getSuggestedProducts,o=null===(c=i.getCurrentRouting())||void 0===c?void 0:c.dynamicCurrencySettings,[4,t(r({locale:i.getCurrentLocale(),dynamicCurrencySettings:o?{roundingFormat:o.roundingFormat,targetCurrencyCode:o.targetCurrencyCode}:void 0},a))];case 2:return d=e.sent(),(s=(null===(l=null==d?void 0:d.data)||void 0===l?void 0:l.map(function(t){return I(t)}))||[]).forEach(function(t){return u(t,i.getCurrentLocale())}),[2,new n(d.data?{data:s,count:d.data.length,facets:null,limit:20,page:1,totalCount:d.data.length}:null,d.graphQLErrors)]}})})}function f(r){return t(this,void 0,void 0,function(){var t,o;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listProductAttribute.js")];case 1:return[4,(0,e.sent().listProductAttribute)(r)];case 2:return t=e.sent(),null==(o=t.data)||o.forEach(function(t){return a(t,i.getCurrentLocale())}),[2,new n(o,t.graphQLErrors)]}})})}function h(r){return t(this,void 0,void 0,function(){var t;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/getProductCampaigns.js")];case 1:return[4,(0,e.sent().getProductCampaigns)(r)];case 2:return t=e.sent(),[2,new n(t.data,t.graphQLErrors)]}})})}function b(r){return t(this,void 0,void 0,function(){var t;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/getVariantStockLocations.js")];case 1:return[4,(0,e.sent().getVariantStockLocations)(r)];case 2:return t=e.sent(),[2,new n(t.data,t.graphQLErrors)]}})})}function y(r){return t(this,void 0,void 0,function(){return e(this,function(t){switch(t.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/mutations/getOrderLineFile.js")];case 1:return[4,(0,t.sent().getOrderLineFile)(r)];case 2:return[2,t.sent()]}})})}function C(r,a){return t(this,void 0,void 0,function(){var t,o;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listProductOptionSet.js")];case 1:return[4,(0,e.sent().listProductOptionSet)(r)];case 2:return t=e.sent(),null==(o=t.data)||o.forEach(function(t){return d(t,i.getCurrentLocale(),a)}),[2,new n(o,t.graphQLErrors)]}})})}function I(t){var e,n,a,o,u,d="local"===import.meta.env.VITE_ENV;return{id:t.id,type:t.type,groupVariantsByVariantTypeId:t.groupVariantsByVariantTypeId,deleted:t.deleted,selectedVariantValues:[],offers:[],bundleProductCache:{},productOptionSet:null,showVariantsInGroup:!1,attributes:(null===(e=t.attributes)||void 0===e?void 0:e.map(function(t){var e,n,i,a,o,u;return r(r({},t),{value:t.value,productAttributeId:(null===(e=t.productAttribute)||void 0===e?void 0:e.id)||null,productAttributeOptionId:(null===(n=t.productAttributeOption)||void 0===n?void 0:n.id)||null,productAttribute:{id:(null===(i=t.productAttribute)||void 0===i?void 0:i.id)||"",name:(null===(a=t.productAttribute)||void 0===a?void 0:a.name)||"",description:null,type:null===(o=t.productAttribute)||void 0===o?void 0:o.type,tableTemplate:(null===(u=t.productAttribute)||void 0===u?void 0:u.tableTemplate)?t.productAttribute.tableTemplate:null,options:null},productAttributeOption:t.productAttributeOption})}))||[],brand:t.brand?r(r({},t.brand),{id:t.brand.id,name:t.brand.name,createdAt:0,updatedAt:0,description:null,imageId:t.brand.imageId,orderType:"BEST_SELLER",metaData:{id:"",createdAt:0,updatedAt:0,slug:t.brand.slug||""}}):null,campaigns:null===(n=t.campaigns)||void 0===n?void 0:n.map(function(t){return{campaign:t,variantIds:[]}}),campaignOffers:t.campaignOffers,categories:(null===(a=t.categories)||void 0===a?void 0:a.map(function(t){var e;return r(r({},t),{categoryPath:t.path.map(function(t){return t.name}),description:null,imageId:null,parentId:null,metaData:t.slug?{id:"",createdAt:0,updatedAt:0,name:t.name||"",slug:t.slug,translations:null===(e=t.translations)||void 0===e?void 0:e.map(function(t){return{pageTitle:t.name,slug:t.slug,locale:t.locale,description:null}})}:null,categoryPathItems:t.path.map(function(t){return{metaData:{id:"",createdAt:0,updatedAt:0,name:t.name||"",slug:t.slug||""},description:null,name:t.name,translations:t.translations,imageId:null,id:t.id,createdAt:0,updatedAt:0}}),createdAt:0,updatedAt:0,orderType:"BEST_SELLER",conditions:null,conditionValues:null})}))||[],tags:t.tags||[],description:t.description||"",averageRating:t.averageRating,reviewCount:t.reviewCount,stars:t.stars,baseUnit:t.baseUnit,metaData:r(r({},t.metaData),{id:"",createdAt:0,updatedAt:0,slug:(null===(o=t.metaData)||void 0===o?void 0:o.slug)||""}),name:t.name,productOptionSetId:t.productOptionSetId,variantTypes:t.productVariantTypes.map(function(t){return{order:t.order,variantType:{id:t.variantType.id,name:t.variantType.name,selectionType:t.variantType.selectionType,values:t.variantType.values.map(function(e){return{id:e.id,colorCode:e.colorCode,name:e.name,thumbnailImageId:e.thumbnailImageId,variantTypeId:t.variantType.id}}).filter(function(e){return t.variantValueIds.includes(e.id)})},variantValueIds:t.variantValueIds}}),variants:t.variants.map(function(e){var n,a,o,u;return r(r({},e),{id:e.id,productId:t.id,images:(null===(n=e.images)||void 0===n?void 0:n.map(function(t){return{imageId:t.id,isMain:t.isMain||!1,isVideo:t.isVideo,order:t.order,fileName:t.fileName}}))||null,sellIfOutOfStock:e.sellIfOutOfStock||!1,isBackInStockReminderSaved:!1,unit:e.unit,attributes:(null===(a=e.attributes)||void 0===a?void 0:a.map(function(t){var e,n,i,a,o,u;return r(r({},t),{value:t.value,productAttributeId:(null===(e=t.productAttribute)||void 0===e?void 0:e.id)||null,productAttributeOptionId:(null===(n=t.productAttributeOption)||void 0===n?void 0:n.id)||null,productAttribute:{id:(null===(i=t.productAttribute)||void 0===i?void 0:i.id)||"",name:(null===(a=t.productAttribute)||void 0===a?void 0:a.name)||"",description:"",type:null===(o=t.productAttribute)||void 0===o?void 0:o.type,tableTemplate:(null===(u=t.productAttribute)||void 0===u?void 0:u.tableTemplate)?t.productAttribute.tableTemplate:null,options:null},productAttributeOption:t.productAttributeOption})}))||[],sku:e.sku,barcodeList:e.barcodeList||null,prices:e.prices||[],price:{buyPrice:null,campaignPrice:null,currency:"",currencyCode:"",currencySymbol:"",discountPrice:null,priceListId:null,sellPrice:0,unitPrice:null},stock:(null===(o=e.stocks)||void 0===o?void 0:o.filter(function(t){var e;return d||i.isEditor||(null===(e=i.stockLocationIds)||void 0===e?void 0:e.includes(t.stockLocationId))}).reduce(function(t,e){return e.stockCount+t},0))||0,variantValues:(null===(u=e.variantValues)||void 0===u?void 0:u.map(function(e){var r=t.productVariantTypes.find(function(t){return t.variantType.id===e.variantTypeId}),n=null==r?void 0:r.variantType.values.find(function(t){return t.id===e.variantValueId});return{id:e.variantValueId,name:(null==n?void 0:n.name)||"",colorCode:(null==n?void 0:n.colorCode)||"",thumbnailImageId:(null==n?void 0:n.thumbnailImageId)||"",variantTypeId:(null==r?void 0:r.variantType.id)||""}}))||[],isActive:e.isActive||!1,bundleSettings:e.bundleSettings||null})}),dynamicPriceListIds:null,productGroup:t.productGroup,salesChannels:null===(u=t.salesChannels)||void 0===u?void 0:u.filter(function(t){return t.id===i.salesChannelId})}}export{y as apiGetOrderLineFile,h as apiGetProductCampaigns,v as apiGetProductFilterData,m as apiGetRelatedProducts,g as apiGetSuggestedProducts,b as apiGetVariantStockLocations,l as apiListCampaignOffer,f as apiListProductAttribute,s as apiListProductBackInStockRemind,C as apiListProductOptionSet,c as apiSaveProductBackInStockRemind,p as apiSearchProducts};
1
+ import{__awaiter as t,__generator as e,__assign as r}from'./../../../ext/tslib/tslib.es6.mjs.js';import{APIResponse as n}from"../../../packages/storefront-api-client/src/utils/api.js";import'./../../../ext/isomorphic-fetch/fetch-npm-node.js';import{IkasStorefrontConfig as i}from"../../../packages/storefront-config/src/index.js";import{initIkasProductAttribute as a}from"../../models/product/attribute/init.js";import{initIkasCampaignOffer as o}from"../../models/product/campaign-offer/init.js";import{initIkasProduct as u}from"../../models/product/init.js";import{initIkasProductOptionSet as d}from"../../models/product/option-set/init.js";function s(r){return t(this,void 0,void 0,function(){return e(this,function(t){switch(t.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listProductBackInStockRemind.js")];case 1:return[4,(0,t.sent().listProductBackInStockRemind)(r)];case 2:return[2,t.sent()]}})})}function c(r){return t(this,void 0,void 0,function(){return e(this,function(t){switch(t.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/mutations/saveProductBackInStockRemind.js")];case 1:return[4,(0,t.sent().saveProductBackInStockRemind)(r)];case 2:return[2,t.sent()]}})})}function l(r){return t(this,void 0,void 0,function(){var t,a;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listCampaignOffer.js")];case 1:return[4,(0,e.sent().listCampaignOffer)(r)];case 2:return t=e.sent(),null===(a=t.data)||void 0===a||a.forEach(function(t){o(t,i.getCurrentLocale())}),[2,new n(t.data||null,t.graphQLErrors)]}})})}function p(a,o){return t(this,void 0,void 0,function(){var t,d,s,c,l,p;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/searchProducts.js")];case 1:return t=e.sent().searchProducts,d=null===(l=i.getCurrentRouting())||void 0===l?void 0:l.dynamicCurrencySettings,[4,t({input:r(r({locale:i.getCurrentLocale(),dynamicCurrencySettings:d?{roundingFormat:d.roundingFormat,targetCurrencyCode:d.targetCurrencyCode}:void 0},a.input),{showStockOption:a.input.showStockOption||i.stockPreference||"SHOW_ALL"})},o)];case 2:return s=e.sent(),null==(c=null===(p=s.data)||void 0===p?void 0:p.results.map(I))||c.forEach(function(t){return u(t,i.getCurrentLocale())}),[2,new n(s.data?r(r({},s.data),{data:c}):null,s.graphQLErrors)]}})})}function v(r){return t(this,void 0,void 0,function(){var t,i,a,o,u,d,s;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/getProductFilterData.js")];case 1:return[4,(0,e.sent().getProductFilterData)(r)];case 2:return t=e.sent(),i=null===(u=t.data)||void 0===u?void 0:u.filters,a=(null===(d=t.data)||void 0===d?void 0:d.categories)||null,o=(null===(s=t.data)||void 0===s?void 0:s.disabledSortTypes)||null,[2,new n(t.data?{filters:i,categories:a,disabledSortTypes:o}:null,t.graphQLErrors)]}})})}function m(a){return t(this,void 0,void 0,function(){var t,o,d,s,c,l;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/getRelatedProducts.js")];case 1:return t=e.sent().getRelatedProducts,o=null===(c=i.getCurrentRouting())||void 0===c?void 0:c.dynamicCurrencySettings,[4,t(r({locale:i.getCurrentLocale(),dynamicCurrencySettings:o?{roundingFormat:o.roundingFormat,targetCurrencyCode:o.targetCurrencyCode}:void 0},a))];case 2:return d=e.sent(),(s=(null===(l=null==d?void 0:d.data)||void 0===l?void 0:l.map(function(t){return I(t)}))||[]).forEach(function(t){return u(t,i.getCurrentLocale())}),[2,new n(d.data?{data:s,count:d.data.length,facets:null,limit:20,page:1,totalCount:d.data.length}:null,d.graphQLErrors)]}})})}function g(a){return t(this,void 0,void 0,function(){var t,o,d,s,c,l;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/getSuggestedProducts.js")];case 1:return t=e.sent().getSuggestedProducts,o=null===(c=i.getCurrentRouting())||void 0===c?void 0:c.dynamicCurrencySettings,[4,t(r({locale:i.getCurrentLocale(),dynamicCurrencySettings:o?{roundingFormat:o.roundingFormat,targetCurrencyCode:o.targetCurrencyCode}:void 0},a))];case 2:return d=e.sent(),(s=(null===(l=null==d?void 0:d.data)||void 0===l?void 0:l.map(function(t){return I(t)}))||[]).forEach(function(t){return u(t,i.getCurrentLocale())}),[2,new n(d.data?{data:s,count:d.data.length,facets:null,limit:20,page:1,totalCount:d.data.length}:null,d.graphQLErrors)]}})})}function f(r){return t(this,void 0,void 0,function(){var t,o;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listProductAttribute.js")];case 1:return[4,(0,e.sent().listProductAttribute)(r)];case 2:return t=e.sent(),null==(o=t.data)||o.forEach(function(t){return a(t,i.getCurrentLocale())}),[2,new n(o,t.graphQLErrors)]}})})}function h(r){return t(this,void 0,void 0,function(){var t;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/getProductCampaigns.js")];case 1:return[4,(0,e.sent().getProductCampaigns)(r)];case 2:return t=e.sent(),[2,new n(t.data,t.graphQLErrors)]}})})}function b(r){return t(this,void 0,void 0,function(){var t,i;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/getVariantStockLocations.js")];case 1:return[4,(0,e.sent().getVariantStockLocations)(r)];case 2:return t=e.sent(),[2,new n(null===(i=t.data)||void 0===i?void 0:i.stockLocations,t.graphQLErrors)]}})})}function y(r){return t(this,void 0,void 0,function(){return e(this,function(t){switch(t.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/mutations/getOrderLineFile.js")];case 1:return[4,(0,t.sent().getOrderLineFile)(r)];case 2:return[2,t.sent()]}})})}function C(r,a){return t(this,void 0,void 0,function(){var t,o;return e(this,function(e){switch(e.label){case 0:return[4,import("../../../packages/storefront-api/src/__api/queries/listProductOptionSet.js")];case 1:return[4,(0,e.sent().listProductOptionSet)(r)];case 2:return t=e.sent(),null==(o=t.data)||o.forEach(function(t){return d(t,i.getCurrentLocale(),a)}),[2,new n(o,t.graphQLErrors)]}})})}function I(t){var e,n,a,o,u,d="local"===import.meta.env.VITE_ENV;return{id:t.id,type:t.type,groupVariantsByVariantTypeId:t.groupVariantsByVariantTypeId,deleted:t.deleted,selectedVariantValues:[],offers:[],bundleProductCache:{},productOptionSet:null,showVariantsInGroup:!1,attributes:(null===(e=t.attributes)||void 0===e?void 0:e.map(function(t){var e,n,i,a,o,u;return r(r({},t),{value:t.value,productAttributeId:(null===(e=t.productAttribute)||void 0===e?void 0:e.id)||null,productAttributeOptionId:(null===(n=t.productAttributeOption)||void 0===n?void 0:n.id)||null,productAttribute:{id:(null===(i=t.productAttribute)||void 0===i?void 0:i.id)||"",name:(null===(a=t.productAttribute)||void 0===a?void 0:a.name)||"",description:null,type:null===(o=t.productAttribute)||void 0===o?void 0:o.type,tableTemplate:(null===(u=t.productAttribute)||void 0===u?void 0:u.tableTemplate)?t.productAttribute.tableTemplate:null,options:null},productAttributeOption:t.productAttributeOption})}))||[],brand:t.brand?r(r({},t.brand),{id:t.brand.id,name:t.brand.name,createdAt:0,updatedAt:0,description:null,imageId:t.brand.imageId,orderType:"BEST_SELLER",metaData:{id:"",createdAt:0,updatedAt:0,slug:t.brand.slug||""}}):null,campaigns:null===(n=t.campaigns)||void 0===n?void 0:n.map(function(t){return{campaign:t,variantIds:[]}}),campaignOffers:t.campaignOffers,categories:(null===(a=t.categories)||void 0===a?void 0:a.map(function(t){var e;return r(r({},t),{categoryPath:t.path.map(function(t){return t.name}),description:null,imageId:null,parentId:null,metaData:t.slug?{id:"",createdAt:0,updatedAt:0,name:t.name||"",slug:t.slug,translations:null===(e=t.translations)||void 0===e?void 0:e.map(function(t){return{pageTitle:t.name,slug:t.slug,locale:t.locale,description:null}})}:null,categoryPathItems:t.path.map(function(t){return{metaData:{id:"",createdAt:0,updatedAt:0,name:t.name||"",slug:t.slug||""},description:null,name:t.name,translations:t.translations,imageId:null,id:t.id,createdAt:0,updatedAt:0}}),createdAt:0,updatedAt:0,orderType:"BEST_SELLER",conditions:null,conditionValues:null})}))||[],tags:t.tags||[],description:t.description||"",averageRating:t.averageRating,reviewCount:t.reviewCount,stars:t.stars,baseUnit:t.baseUnit,metaData:r(r({},t.metaData),{id:"",createdAt:0,updatedAt:0,slug:(null===(o=t.metaData)||void 0===o?void 0:o.slug)||""}),name:t.name,productOptionSetId:t.productOptionSetId,variantTypes:t.productVariantTypes.map(function(t){return{order:t.order,variantType:{id:t.variantType.id,name:t.variantType.name,selectionType:t.variantType.selectionType,values:t.variantType.values.map(function(e){return{id:e.id,colorCode:e.colorCode,name:e.name,thumbnailImageId:e.thumbnailImageId,variantTypeId:t.variantType.id}}).filter(function(e){return t.variantValueIds.includes(e.id)})},variantValueIds:t.variantValueIds}}),variants:t.variants.map(function(e){var n,a,o,u;return r(r({},e),{id:e.id,productId:t.id,images:(null===(n=e.images)||void 0===n?void 0:n.map(function(t){return{imageId:t.id,isMain:t.isMain||!1,isVideo:t.isVideo,order:t.order,fileName:t.fileName}}))||null,sellIfOutOfStock:e.sellIfOutOfStock||!1,isBackInStockReminderSaved:!1,unit:e.unit,attributes:(null===(a=e.attributes)||void 0===a?void 0:a.map(function(t){var e,n,i,a,o,u;return r(r({},t),{value:t.value,productAttributeId:(null===(e=t.productAttribute)||void 0===e?void 0:e.id)||null,productAttributeOptionId:(null===(n=t.productAttributeOption)||void 0===n?void 0:n.id)||null,productAttribute:{id:(null===(i=t.productAttribute)||void 0===i?void 0:i.id)||"",name:(null===(a=t.productAttribute)||void 0===a?void 0:a.name)||"",description:"",type:null===(o=t.productAttribute)||void 0===o?void 0:o.type,tableTemplate:(null===(u=t.productAttribute)||void 0===u?void 0:u.tableTemplate)?t.productAttribute.tableTemplate:null,options:null},productAttributeOption:t.productAttributeOption})}))||[],sku:e.sku,barcodeList:e.barcodeList||null,prices:e.prices||[],price:{buyPrice:null,campaignPrice:null,currency:"",currencyCode:"",currencySymbol:"",discountPrice:null,priceListId:null,sellPrice:0,unitPrice:null},stock:(null===(o=e.stocks)||void 0===o?void 0:o.filter(function(t){var e;return d||i.isEditor||(null===(e=i.stockLocationIds)||void 0===e?void 0:e.includes(t.stockLocationId))}).reduce(function(t,e){return e.stockCount+t},0))||0,variantValues:(null===(u=e.variantValues)||void 0===u?void 0:u.map(function(e){var r=t.productVariantTypes.find(function(t){return t.variantType.id===e.variantTypeId}),n=null==r?void 0:r.variantType.values.find(function(t){return t.id===e.variantValueId});return{id:e.variantValueId,name:(null==n?void 0:n.name)||"",colorCode:(null==n?void 0:n.colorCode)||"",thumbnailImageId:(null==n?void 0:n.thumbnailImageId)||"",variantTypeId:(null==r?void 0:r.variantType.id)||""}}))||[],isActive:e.isActive||!1,bundleSettings:e.bundleSettings||null})}),dynamicPriceListIds:null,productGroup:t.productGroup,salesChannels:null===(u=t.salesChannels)||void 0===u?void 0:u.filter(function(t){return t.id===i.salesChannelId})}}export{y as apiGetOrderLineFile,h as apiGetProductCampaigns,v as apiGetProductFilterData,m as apiGetRelatedProducts,g as apiGetSuggestedProducts,b as apiGetVariantStockLocations,l as apiListCampaignOffer,f as apiListProductAttribute,s as apiListProductBackInStockRemind,C as apiListProductOptionSet,c as apiSaveProductBackInStockRemind,p as apiSearchProducts};
@@ -1,6 +1,9 @@
1
1
  import { IkasProductAttributeDetail } from "../../../storefront-models/src";
2
2
  /**
3
3
  * Retrieves the attribute values for a product attribute detail, merging variant and product-level attributes.
4
+ * This is how a PRODUCT_ATTRIBUTE code-component prop is consumed: that prop hands you the
5
+ * IkasProductAttributeDetail wrapper ({ product, attributePropValue }), never the attribute value itself, so
6
+ * reading `prop.value` silently yields nothing — call this function instead.
4
7
  *
5
8
  * @ai-category AttributeDetail
6
9
  * @ai-related getSelectedProductVariant, hasProductVariant
@@ -1,6 +1,9 @@
1
1
  import { IkasProductAttributeList, IkasProductAttributeMap } from "../../../storefront-models/src";
2
2
  /**
3
3
  * Retrieves grouped attribute values for a product attribute list, combining variant and product-level attributes.
4
+ * This is how a PRODUCT_ATTRIBUTE_LIST code-component prop is consumed: that prop hands you a single
5
+ * IkasProductAttributeList wrapper ({ product, attributeListPropValue }) — never an array — so mapping over the
6
+ * prop is a runtime error; call this function and iterate the returned { attribute, values } maps instead.
4
7
  *
5
8
  * @ai-category AttributeList
6
9
  * @ai-related getSelectedProductVariant, hasProductVariant
@@ -1,62 +1,102 @@
1
1
  import { IkasImage } from "../../../storefront-models/src";
2
2
  /**
3
- * Returns the default source URL for an image at 1080px resolution.
3
+ * Returns the default source URL for an image OR video at 1080px resolution.
4
+ *
5
+ * Product media items (IkasProductImage) can be videos. ALWAYS check `item.isVideo`
6
+ * and render a `<video src={getDefaultSrc(item)}>` instead of an `<img>` when it is true.
7
+ * Never assume every media item is an image.
4
8
  *
5
9
  * @ai-category Image
6
10
  * @ai-related getThumbnailSrc, getSrc, createMediaSrcset
7
11
  *
8
12
  * @param image - The image object to generate the default source URL for.
9
- * @returns The CDN URL string for the image at 1080px size.
13
+ * @returns The CDN URL string for the image or video at 1080px size.
10
14
  *
11
15
  * @example
12
16
  * ```typescript
13
- * import { getDefaultSrc } from "@ikas/bp-storefront";
14
- *
15
- * const src = getDefaultSrc(image);
16
- * console.log(src); // "https://cdn.example.com/images/.../1080/image.webp"
17
+ * import { getDefaultSrc, createMediaSrcset } from "@ikas/bp-storefront";
18
+ *
19
+ * // Product images can be videos — ALWAYS branch on isVideo when mapping media:
20
+ * {product.images.map((item, i) =>
21
+ * item.isVideo ? (
22
+ * <video key={i} src={getDefaultSrc(item)} muted playsInline preload="metadata">
23
+ * <track kind="captions" />
24
+ * </video>
25
+ * ) : (
26
+ * <img key={i} src={getDefaultSrc(item)} srcSet={createMediaSrcset(item)} alt={`Product ${i + 1}`} />
27
+ * )
28
+ * )}
17
29
  * ```
18
30
  */
19
31
  export declare function getDefaultSrc(image: IkasImage): string;
20
32
  /**
21
- * Returns the thumbnail source URL for an image at 180px resolution.
33
+ * Returns the thumbnail source URL for an IMAGE at 180px resolution.
34
+ *
35
+ * VIDEOS HAVE NO 180px THUMBNAIL and no poster URL. When `image.isVideo === true` the size is
36
+ * IGNORED and this returns the same full-size .mp4 as `getDefaultSrc(image)` — so using it in a
37
+ * thumbnail-sized box (swatch, cart line, order line) downloads the whole video instead of a
38
+ * 180px webp. Nothing looks broken, which makes it a silent performance regression.
39
+ *
40
+ * Branch on `item.isVideo` first and only pass images here. For the video branch in a small,
41
+ * static context render `<video src={getDefaultSrc(item)} preload="metadata" muted playsInline>`
42
+ * with no `autoPlay`: the browser fetches only the first frame and holds it as a stand-in poster.
22
43
  *
23
44
  * @ai-category Image
24
45
  * @ai-related getDefaultSrc, getSrc, createMediaSrcset
25
46
  *
26
- * @param image - The image object to generate the thumbnail source URL for.
27
- * @returns The CDN URL string for the image at 180px size.
47
+ * @param image - The image object to generate the thumbnail source URL for. Videos ignore the size.
48
+ * @returns The CDN URL string: a 180px image, or — for `isVideo` items — the original .mp4.
28
49
  *
29
50
  * @example
30
51
  * ```typescript
31
- * import { getThumbnailSrc } from "@ikas/bp-storefront";
32
- *
33
- * const thumbnailSrc = getThumbnailSrc(image);
34
- * console.log(thumbnailSrc); // "https://cdn.example.com/images/.../180/image.webp"
52
+ * import { getThumbnailSrc, getDefaultSrc } from "@ikas/bp-storefront";
53
+ *
54
+ * // Thumbnail rail — branch on isVideo per item (no autoPlay: first frame acts as the poster):
55
+ * {product.images.map((item, i) =>
56
+ * item.isVideo ? (
57
+ * <video key={i} src={getDefaultSrc(item)} muted playsInline preload="metadata">
58
+ * <track kind="captions" />
59
+ * </video>
60
+ * ) : (
61
+ * <img key={i} src={getThumbnailSrc(item)} sizes="112px" alt={`Thumb ${i + 1}`} />
62
+ * )
63
+ * )}
35
64
  * ```
36
65
  */
37
66
  export declare function getThumbnailSrc(image: IkasImage): string;
38
67
  /**
39
68
  * Generates the full CDN source URL for an image or video at the specified size, handling both legacy path-based and merchant-scoped ID formats.
40
69
  *
70
+ * NOTE: For videos (`image.isVideo === true`) the `size` argument is IGNORED — the original .mp4 is always returned.
71
+ * So `getSrc(item, 240)` and `getDefaultSrc(item)` produce the identical URL for a video. PREFER `getDefaultSrc(item)`
72
+ * for video `src` (no size param) — do NOT pass an arbitrary size like `getSrc(item, 240)`, it is misleading.
73
+ *
41
74
  * @ai-category Image
42
75
  * @ai-related getDefaultSrc, getThumbnailSrc, createMediaSrcset
43
76
  *
44
77
  * @param image - The image object containing the id, fileName, and isVideo flag.
45
- * @param size - The desired image width in pixels for the generated URL.
78
+ * @param size - The desired image width in pixels. Ignored for videos.
46
79
  * @returns The full CDN URL string for the image or video.
47
80
  *
48
81
  * @example
49
82
  * ```typescript
50
- * import { getSrc } from "@ikas/bp-storefront";
83
+ * import { getSrc, getDefaultSrc } from "@ikas/bp-storefront";
51
84
  *
52
85
  * const src = getSrc(image, 640);
53
86
  * console.log(src); // "https://cdn.example.com/images/.../640/image.webp"
87
+ *
88
+ * // For a video, use getDefaultSrc (size is ignored anyway):
89
+ * <video src={getDefaultSrc(item)} muted playsInline preload="metadata" />
54
90
  * ```
55
91
  */
56
92
  export declare function getSrc(image: IkasImage, size: number): string;
57
93
  /**
58
94
  * Generates a complete responsive `srcset` string for an image across all standard sizes (180–3840px).
59
95
  *
96
+ * srcset applies to `<img>` only — video media (`item.isVideo === true`) has no srcset
97
+ * and must be rendered with `<video src={getDefaultSrc(item)}>`. When mapping product
98
+ * images, branch on `item.isVideo` first, then only use createMediaSrcset on the image branch.
99
+ *
60
100
  * @ai-category Image
61
101
  * @ai-related getDefaultSrc, getThumbnailSrc, getSrc
62
102
  *
@@ -67,12 +107,22 @@ export declare function getSrc(image: IkasImage, size: number): string;
67
107
  * ```typescript
68
108
  * import { createMediaSrcset, getDefaultSrc } from "@ikas/bp-storefront";
69
109
  *
70
- * <img
71
- * src={getDefaultSrc(image)}
72
- * srcSet={createMediaSrcset(image)}
73
- * sizes="(max-width: 768px) 100vw, 50vw"
74
- * alt="Product"
75
- * />
110
+ * // Product images can be videos — ALWAYS branch on isVideo when mapping media:
111
+ * {product.images.map((item, i) =>
112
+ * item.isVideo ? (
113
+ * <video key={i} src={getDefaultSrc(item)} muted playsInline preload="metadata">
114
+ * <track kind="captions" />
115
+ * </video>
116
+ * ) : (
117
+ * <img
118
+ * key={i}
119
+ * src={getDefaultSrc(item)}
120
+ * srcSet={createMediaSrcset(item)}
121
+ * sizes="(max-width: 768px) 100vw, 50vw"
122
+ * alt={`Product ${i + 1}`}
123
+ * />
124
+ * )
125
+ * )}
76
126
  * ```
77
127
  */
78
128
  export declare function createMediaSrcset(image?: IkasImage | null): string;
@@ -1 +1 @@
1
- import{IkasStorefrontConfig as c}from"../../../packages/storefront-config/src/index.js";function n(c){return a(c,1080)}function o(c){return a(c,180)}function a(n,o){var a,i=c.cdnUrl,t=c.videoCdnUrl;if(n.id.includes("/"))return n.isVideo?"".concat(t,"videos/").concat(n.id,"/original.mp4"):n.fileName?"".concat(i,"images/").concat(n.id,"/").concat(o,"/").concat(n.fileName,".webp"):"".concat(i,"images/").concat(n.id,"/image_").concat(o,".webp");var e=null===(a=c.merchantSettings)||void 0===a?void 0:a.merchantId;return n.isVideo?"".concat(t,"videos/").concat(e,"/").concat(n.id,"/original.mp4"):n.fileName?"".concat(i,"images/").concat(e,"/").concat(n.id,"/").concat(o,"/").concat(n.fileName,".webp"):"".concat(i,"images/").concat(e,"/").concat(n.id,"/image_").concat(o,".webp")}var i=[180,360,420,540,640,720,800,900,1080,1296,1350,1512,1728,1950,2560,3840];function t(c){return c?i.map(function(n){return"".concat(a(c,n)," ").concat(n,"w")}).join(", "):""}export{t as createMediaSrcset,n as getDefaultSrc,a as getSrc,o as getThumbnailSrc};
1
+ import{IkasStorefrontConfig as c}from"../../../packages/storefront-config/src/index.js";function n(c){return o(c,1080)}function i(c){return o(c,180)}function o(n,i){var o;if(!(null==n?void 0:n.id))return"";var a=c.cdnUrl,t=c.videoCdnUrl;if(n.id.includes("/"))return n.isVideo?"".concat(t,"videos/").concat(n.id,"/original.mp4"):n.fileName?"".concat(a,"images/").concat(n.id,"/").concat(i,"/").concat(n.fileName,".webp"):"".concat(a,"images/").concat(n.id,"/image_").concat(i,".webp");var e=null===(o=c.merchantSettings)||void 0===o?void 0:o.merchantId;return n.isVideo?"".concat(t,"videos/").concat(e,"/").concat(n.id,"/original.mp4"):n.fileName?"".concat(a,"images/").concat(e,"/").concat(n.id,"/").concat(i,"/").concat(n.fileName,".webp"):"".concat(a,"images/").concat(e,"/").concat(n.id,"/image_").concat(i,".webp")}var a=[180,360,420,540,640,720,800,900,1080,1296,1350,1512,1728,1950,2560,3840];function t(c){return(null==c?void 0:c.id)?a.map(function(n){return"".concat(o(c,n)," ").concat(n,"w")}).join(", "):""}export{t as createMediaSrcset,n as getDefaultSrc,o as getSrc,i as getThumbnailSrc};
@@ -75,6 +75,7 @@ export * from "./validator/back-in-stock-notification";
75
75
  export * from "./validator/contact-form";
76
76
  export * from "./validator/coupon-code-form";
77
77
  export * from "./validator/customer-review";
78
+ export * from "./validator/deactivate-customer";
78
79
  export * from "./validator/forgot-password";
79
80
  export * from "./validator/login";
80
81
  export * from "./validator/newsletter-subscription";
@@ -15,6 +15,27 @@ import { IkasDisplayedPackage, IkasOrder } from "../../../storefront-models/src"
15
15
  * ```
16
16
  */
17
17
  export declare function initIkasOrder(data: IkasOrder): IkasOrder;
18
+ /**
19
+ * Returns the total amount covered by the gift cards (and store credits) applied to the order or cart.
20
+ *
21
+ * This is a derived value, the API does not return it: it sums `amount` over `order.giftCardLines`.
22
+ * Subtract it from `order.totalFinalPrice` to get the amount still due.
23
+ *
24
+ * @ai-category Order, Cart
25
+ * @ai-related removeGiftCardLine, saveCouponCode
26
+ *
27
+ * @param order - The IkasOrder or IkasCart holding the gift card lines
28
+ * @returns The summed gift card amount, or 0 when no gift card is applied
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * import { getIkasOrderGiftCardTotalPrice } from "@ikas/bp-storefront";
33
+ *
34
+ * const giftCardTotal = getIkasOrderGiftCardTotalPrice(cart);
35
+ * const remainingPrice = cart.totalFinalPrice - giftCardTotal;
36
+ * ```
37
+ */
38
+ export declare function getIkasOrderGiftCardTotalPrice(order: IkasOrder): number;
18
39
  /**
19
40
  * Returns the number of distinct line items in the order.
20
41
  *
@@ -1 +1 @@
1
- import{__assign as e}from'./../../../ext/tslib/tslib.es6.mjs.js';import{I18n as r}from"../../../i18n/index.js";import{withRoutePrefix as t}from"../../../router/index.js";import{customerStore as n}from"../../../stores/customer/index.js";import{formatCurrency as a}from"../../../utils/currency.js";import{validateEmail as u,formatDate as o}from"../../../utils/helper.js";import{getOrderAdjustmentDisplayName as i}from"./adjustment/index.js";import{getOrderLineItemRefundQuantity as s}from"./line-item/index.js";function c(r){var t,n,a;return e(e({},r),{orderLineItems:(null===(t=r.orderLineItems)||void 0===t?void 0:t.filter(function(e){return!e.deleted}))||[],orderAdjustments:(null===(n=r.orderAdjustments)||void 0===n?void 0:n.map(function(t){return e(e({},t),{currencyCode:r.currencyCode,currencySymbol:r.currencySymbol||""})}))||null,giftPackageLines:(null===(a=r.giftPackageLines)||void 0===a?void 0:a.map(function(t){return e(e({},t),{currencyCode:r.currencyCode,currencySymbol:r.currencySymbol||""})}))||null})}function d(e){var r;return(null===(r=e.orderLineItems)||void 0===r?void 0:r.length)||0}function l(e){var r;return(null===(r=e.orderLineItems)||void 0===r?void 0:r.reduce(function(e,r){return e+r.quantity},0))||0}function _(r){var t,n=m(r),a=null===(t=r.orderPackages)||void 0===t?void 0:t.filter(function(e){return!e.deleted}),u=r.orderLineItems.filter(function(e){return!e.deleted&&"CANCELLED"===e.status}),o=[];return n.length&&o.push({id:r.id+"-u",createdAt:Date.now(),updatedAt:Date.now(),errorMessage:null,note:null,orderLineItems:n,orderLineItemIds:n.map(function(e){return e.id}),statusTranslation:T({orderPackageStatus:"UNFULFILLED"}),orderPackageFulfillStatus:"UNFULFILLED",orderPackageNumber:r.orderNumber?r.orderNumber+"-u":"u",stockLocationId:n[0].stockLocationId||"",trackingInfo:null}),a&&o.push.apply(o,a.map(function(t){return e(e({},t),{statusTranslation:T({orderPackageStatus:t.orderPackageFulfillStatus}),orderLineItems:r.orderLineItems.filter(function(e){return t.orderLineItemIds.includes(e.id)})})})),u.length&&o.push({id:r.id+"-c",createdAt:Date.now(),updatedAt:Date.now(),errorMessage:null,note:null,orderLineItems:u,orderLineItemIds:u.map(function(e){return e.id}),statusTranslation:T({orderPackageStatus:"CANCELLED"}),orderPackageFulfillStatus:"CANCELLED",orderPackageNumber:r.orderNumber?r.orderNumber+"-c":"c",stockLocationId:u[0].stockLocationId||"",trackingInfo:null}),o}function f(e){if(n._refundSettings&&!n._refundSettings.isActiveRefundSection)return[];var r=function(e){var r=e.orderedAt,t=Date.now();return Math.abs(t-r)/864e5}(e);return e.orderLineItems.filter(function(e){var t;return["FULFILLED","UNFULFILLED","DELIVERED"].includes(e.status)&&(!(null===(t=n._refundSettings)||void 0===t?void 0:t.orderRefundDayLimit)||n._refundSettings.orderRefundDayLimit>=r)})}function E(e){return!!f(e).some(function(e){return!!s(e)})}function m(e){return e.orderLineItems.filter(function(e){return"UNFULFILLED"===e.status})}function L(e){return e.orderLineItems.filter(function(e){return"REFUNDED"===e.status||"REFUND_REQUESTED"===e.status||"REFUND_REQUEST_ACCEPTED"===e.status||"REFUND_REJECTED"===e.status})}function p(e){var r;return(null===(r=e.taxLines)||void 0===r?void 0:r.reduce(function(e,r){return e+r.price},0))||0}function I(e){return a(p(e),e.currencyCode,e.currencySymbol||"")}function v(e){var r;return(null===(r=e.shippingLines)||void 0===r?void 0:r.reduce(function(e,r){return e+r.finalPrice},0))||0}function D(e){return a(v(e),e.currencyCode,e.currencySymbol||"")}function g(e){return a(e.totalFinalPrice,e.currencyCode,e.currencySymbol||"")}function R(e){return a(e.totalPrice,e.currencyCode,e.currencySymbol||"")}function k(e){var r;return!!(null===(r=e.customer)||void 0===r?void 0:r.id)&&!e.customer.isGuestCheckout}function N(e){var r;return!!(null===(r=e.customer)||void 0===r?void 0:r.email)&&u(e.customer.email)}function A(e){var r,t;return"".concat((null===(r=e.customer)||void 0===r?void 0:r.firstName)||""," ").concat((null===(t=e.customer)||void 0===t?void 0:t.lastName)||"")}function y(e){var r=new Date;return r.setTime(e.updatedAt),o(r)}function F(e){if(!e.orderedAt)return null;var r=new Date;return r.setTime(e.orderedAt),o(r)}function T(e){if(!e.orderPackageStatus)return"";switch(e.orderPackageStatus){case"CANCELLED":return r.translate("order_package_status.cancelled");case"CANCEL_REJECTED":return r.translate("order_package_status.cancel_rejected");case"CANCEL_REQUESTED":return r.translate("order_package_status.cancel_requested");case"DELIVERED":return r.translate("order_package_status.delivered");case"FULFILLED":return r.translate("order_package_status.fulfilled");case"PARTIALLY_CANCELLED":return r.translate("order_package_status.partially_cancelled");case"PARTIALLY_DELIVERED":return r.translate("order_package_status.partially_delivered");case"PARTIALLY_FULFILLED":return r.translate("order_package_status.partially_fulfilled");case"PARTIALLY_READY_FOR_SHIPMENT":return r.translate("order_package_status.partially_ready_for_shipment");case"PARTIALLY_REFUNDED":return r.translate("order_package_status.partially_refunded");case"READY_FOR_PICK_UP":return r.translate("order_package_status.ready_for_pick_up");case"READY_FOR_SHIPMENT":return r.translate("order_package_status.ready_for_shipment");case"REFUNDED":return r.translate("order_package_status.refunded");case"REFUND_REJECTED":return r.translate("order_package_status.refund_rejected");case"REFUND_REQUESTED":return r.translate("order_package_status.refund_requested");case"REFUND_REQUEST_ACCEPTED":return r.translate("order_package_status.refund_request_accepted");case"RETURN_PARCEL_WAITING":return r.translate("order_package_status.return_parcel_waiting");case"RETURN_IN_TRANSIT":return r.translate("order_package_status.return_in_transit");case"RETURN_DELIVERED":return r.translate("order_package_status.return_delivered");case"RETURN_REJECTED":return r.translate("order_package_status.return_rejected");case"UNABLE_TO_DELIVER":return r.translate("order_package_status.unable_to_deliver");case"UNFULFILLED":return r.translate("order_package_status.unfulfilled");default:return""}}function U(e){var r;return null===(r=e.orderAdjustments)||void 0===r?void 0:r.find(function(e){return!!e.couponId})}function C(e){var r;return null===(r=e.orderAdjustments)||void 0===r?void 0:r.filter(function(e){return!e.couponId})}function S(e){return e.orderLineItems.filter(function(e){return!!e.variant.fileId&&"REFUNDED"!==e.status}).map(function(e){return e.variant.fileId})}function P(r){var t;return null===(t=r.orderAdjustments)||void 0===t?void 0:t.filter(function(e){return"FREE_SHIPPING"!==e.campaignType}).map(function(r){return"INTEREST"===r.name?e(e({},r),{name:i(r)}):r})}function j(e){return t("/account/orders/".concat(e.id))}function b(e){return e.orderLineItems.map(function(e){return e.variant.name}).join(", ")}export{U as getIkasOrderCouponAdjustment,A as getIkasOrderCustomerFullName,P as getIkasOrderDisplayedAdjustments,_ as getIkasOrderDisplayedPackages,d as getIkasOrderDistinctItemCount,y as getIkasOrderFormattedDate,F as getIkasOrderFormattedOrderedAt,D as getIkasOrderFormattedShippingTotal,g as getIkasOrderFormattedTotalFinalPrice,R as getIkasOrderFormattedTotalPrice,I as getIkasOrderFormattedTotalTax,j as getIkasOrderHref,C as getIkasOrderNonCouponAdjustments,T as getIkasOrderPackageStatusTranslation,S as getIkasOrderProductFiles,f as getIkasOrderRefundableItems,L as getIkasOrderRefundedItems,v as getIkasOrderShippingTotal,l as getIkasOrderTotalItemCount,p as getIkasOrderTotalTax,m as getIkasOrderUnfullfilledItems,b as getIkasOrderVariantNames,k as hasIkasOrderCustomer,N as hasValidIkasOrderCustomerEmail,c as initIkasOrder,E as isIkasOrderRefundable};
1
+ import{__assign as e}from'./../../../ext/tslib/tslib.es6.mjs.js';import{I18n as r}from"../../../i18n/index.js";import{withRoutePrefix as t}from"../../../router/index.js";import{customerStore as n}from"../../../stores/customer/index.js";import{formatCurrency as u}from"../../../utils/currency.js";import{validateEmail as a,formatDate as o}from"../../../utils/helper.js";import{getOrderAdjustmentDisplayName as i}from"./adjustment/index.js";import{getOrderLineItemRefundQuantity as s}from"./line-item/index.js";function c(r){var t,n,u;return e(e({},r),{orderLineItems:(null===(t=r.orderLineItems)||void 0===t?void 0:t.filter(function(e){return!e.deleted}))||[],orderAdjustments:(null===(n=r.orderAdjustments)||void 0===n?void 0:n.map(function(t){return e(e({},t),{currencyCode:r.currencyCode,currencySymbol:r.currencySymbol||""})}))||null,giftPackageLines:(null===(u=r.giftPackageLines)||void 0===u?void 0:u.map(function(t){return e(e({},t),{currencyCode:r.currencyCode,currencySymbol:r.currencySymbol||""})}))||null})}function d(e){var r;return(null===(r=e.giftCardLines)||void 0===r?void 0:r.reduce(function(e,r){return e+r.amount},0))||0}function l(e){var r;return(null===(r=e.orderLineItems)||void 0===r?void 0:r.length)||0}function f(e){var r;return(null===(r=e.orderLineItems)||void 0===r?void 0:r.reduce(function(e,r){return e+r.quantity},0))||0}function _(r){var t,n=L(r),u=null===(t=r.orderPackages)||void 0===t?void 0:t.filter(function(e){return!e.deleted}),a=r.orderLineItems.filter(function(e){return!e.deleted&&"CANCELLED"===e.status}),o=[];return n.length&&o.push({id:r.id+"-u",createdAt:Date.now(),updatedAt:Date.now(),errorMessage:null,note:null,orderLineItems:n,orderLineItemIds:n.map(function(e){return e.id}),statusTranslation:T({orderPackageStatus:"UNFULFILLED"}),orderPackageFulfillStatus:"UNFULFILLED",orderPackageNumber:r.orderNumber?r.orderNumber+"-u":"u",stockLocationId:n[0].stockLocationId||"",trackingInfo:null}),u&&o.push.apply(o,u.map(function(t){return e(e({},t),{statusTranslation:T({orderPackageStatus:t.orderPackageFulfillStatus}),orderLineItems:r.orderLineItems.filter(function(e){return t.orderLineItemIds.includes(e.id)})})})),a.length&&o.push({id:r.id+"-c",createdAt:Date.now(),updatedAt:Date.now(),errorMessage:null,note:null,orderLineItems:a,orderLineItemIds:a.map(function(e){return e.id}),statusTranslation:T({orderPackageStatus:"CANCELLED"}),orderPackageFulfillStatus:"CANCELLED",orderPackageNumber:r.orderNumber?r.orderNumber+"-c":"c",stockLocationId:a[0].stockLocationId||"",trackingInfo:null}),o}function E(e){if(n._refundSettings&&!n._refundSettings.isActiveRefundSection)return[];var r=function(e){var r=e.orderedAt,t=Date.now();return Math.abs(t-r)/864e5}(e);return e.orderLineItems.filter(function(e){var t;return["FULFILLED","UNFULFILLED","DELIVERED"].includes(e.status)&&(!(null===(t=n._refundSettings)||void 0===t?void 0:t.orderRefundDayLimit)||n._refundSettings.orderRefundDayLimit>=r)})}function m(e){return!!E(e).some(function(e){return!!s(e)})}function L(e){return e.orderLineItems.filter(function(e){return"UNFULFILLED"===e.status})}function p(e){return e.orderLineItems.filter(function(e){return"REFUNDED"===e.status||"REFUND_REQUESTED"===e.status||"REFUND_REQUEST_ACCEPTED"===e.status||"REFUND_REJECTED"===e.status})}function v(e){var r;return(null===(r=e.taxLines)||void 0===r?void 0:r.reduce(function(e,r){return e+r.price},0))||0}function I(e){return u(v(e),e.currencyCode,e.currencySymbol||"")}function D(e){var r;return(null===(r=e.shippingLines)||void 0===r?void 0:r.reduce(function(e,r){return e+r.finalPrice},0))||0}function g(e){return u(D(e),e.currencyCode,e.currencySymbol||"")}function R(e){return u(e.totalFinalPrice,e.currencyCode,e.currencySymbol||"")}function k(e){return u(e.totalPrice,e.currencyCode,e.currencySymbol||"")}function N(e){var r;return!!(null===(r=e.customer)||void 0===r?void 0:r.id)&&!e.customer.isGuestCheckout}function A(e){var r;return!!(null===(r=e.customer)||void 0===r?void 0:r.email)&&a(e.customer.email)}function y(e){var r,t;return"".concat((null===(r=e.customer)||void 0===r?void 0:r.firstName)||""," ").concat((null===(t=e.customer)||void 0===t?void 0:t.lastName)||"")}function C(e){var r=new Date;return r.setTime(e.updatedAt),o(r)}function F(e){if(!e.orderedAt)return null;var r=new Date;return r.setTime(e.orderedAt),o(r)}function T(e){if(!e.orderPackageStatus)return"";switch(e.orderPackageStatus){case"CANCELLED":return r.translate("order_package_status.cancelled");case"CANCEL_REJECTED":return r.translate("order_package_status.cancel_rejected");case"CANCEL_REQUESTED":return r.translate("order_package_status.cancel_requested");case"DELIVERED":return r.translate("order_package_status.delivered");case"FULFILLED":return r.translate("order_package_status.fulfilled");case"PARTIALLY_CANCELLED":return r.translate("order_package_status.partially_cancelled");case"PARTIALLY_DELIVERED":return r.translate("order_package_status.partially_delivered");case"PARTIALLY_FULFILLED":return r.translate("order_package_status.partially_fulfilled");case"PARTIALLY_READY_FOR_SHIPMENT":return r.translate("order_package_status.partially_ready_for_shipment");case"PARTIALLY_REFUNDED":return r.translate("order_package_status.partially_refunded");case"READY_FOR_PICK_UP":return r.translate("order_package_status.ready_for_pick_up");case"READY_FOR_SHIPMENT":return r.translate("order_package_status.ready_for_shipment");case"REFUNDED":return r.translate("order_package_status.refunded");case"REFUND_REJECTED":return r.translate("order_package_status.refund_rejected");case"REFUND_REQUESTED":return r.translate("order_package_status.refund_requested");case"REFUND_REQUEST_ACCEPTED":return r.translate("order_package_status.refund_request_accepted");case"RETURN_PARCEL_WAITING":return r.translate("order_package_status.return_parcel_waiting");case"RETURN_IN_TRANSIT":return r.translate("order_package_status.return_in_transit");case"RETURN_DELIVERED":return r.translate("order_package_status.return_delivered");case"RETURN_REJECTED":return r.translate("order_package_status.return_rejected");case"UNABLE_TO_DELIVER":return r.translate("order_package_status.unable_to_deliver");case"UNFULFILLED":return r.translate("order_package_status.unfulfilled");default:return""}}function U(e){var r;return null===(r=e.orderAdjustments)||void 0===r?void 0:r.find(function(e){return!!e.couponId})}function S(e){var r;return null===(r=e.orderAdjustments)||void 0===r?void 0:r.filter(function(e){return!e.couponId})}function P(e){return e.orderLineItems.filter(function(e){return!!e.variant.fileId&&"REFUNDED"!==e.status}).map(function(e){return e.variant.fileId})}function j(r){var t;return null===(t=r.orderAdjustments)||void 0===t?void 0:t.filter(function(e){return"FREE_SHIPPING"!==e.campaignType}).map(function(r){return"INTEREST"===r.name?e(e({},r),{name:i(r)}):r})}function b(e){return t("/account/orders/".concat(e.id))}function h(e){return e.orderLineItems.map(function(e){return e.variant.name}).join(", ")}export{U as getIkasOrderCouponAdjustment,y as getIkasOrderCustomerFullName,j as getIkasOrderDisplayedAdjustments,_ as getIkasOrderDisplayedPackages,l as getIkasOrderDistinctItemCount,C as getIkasOrderFormattedDate,F as getIkasOrderFormattedOrderedAt,g as getIkasOrderFormattedShippingTotal,R as getIkasOrderFormattedTotalFinalPrice,k as getIkasOrderFormattedTotalPrice,I as getIkasOrderFormattedTotalTax,d as getIkasOrderGiftCardTotalPrice,b as getIkasOrderHref,S as getIkasOrderNonCouponAdjustments,T as getIkasOrderPackageStatusTranslation,P as getIkasOrderProductFiles,E as getIkasOrderRefundableItems,p as getIkasOrderRefundedItems,D as getIkasOrderShippingTotal,f as getIkasOrderTotalItemCount,v as getIkasOrderTotalTax,L as getIkasOrderUnfullfilledItems,h as getIkasOrderVariantNames,N as hasIkasOrderCustomer,A as hasValidIkasOrderCustomerEmail,c as initIkasOrder,m as isIkasOrderRefundable};
@@ -18,6 +18,11 @@ import { IkasAttributeTableCellValue, IkasProductAttributeValue } from "../../..
18
18
  export declare function getIkasProductAttributeTableValue(value: IkasProductAttributeValue): IkasAttributeTableCellValue[] | undefined;
19
19
  /**
20
20
  * Extracts and returns the product IDs from a PRODUCT-type attribute value's JSON string.
21
+ * NOTE: the export name really is misspelled — "Attrribute" with a double r. It is kept as-is because
22
+ * renaming a published export would break every theme that imports it, so import it VERBATIM; the
23
+ * correctly spelled `getIkasProductAttributeProductIds` does not exist and will not compile. This is
24
+ * not a documentation typo to report or "fix". In the blueprint editor the display alias is
25
+ * `getProductIds`, which hides the misspelling; only direct TypeScript imports see it.
21
26
  *
22
27
  * @ai-category ProductAttribute, Product
23
28
  * @ai-related getIkasProductAttributeTableValue, getIkasProductAttributeProducts
@@ -1,16 +1,19 @@
1
- import { BackInStockNotificationForm, IkasAppliedCampaignAmount, IkasProductAttributeMap, IkasProductPrice, IkasProductVariant } from "../../../../storefront-models/src";
1
+ import { BackInStockNotificationForm, IkasAppliedCampaignAmount, IkasProductAttributeMap, IkasProductPrice, IkasProductVariant, IkasTieredDiscountProduct } from "../../../../storefront-models/src";
2
2
  /**
3
- * Get the main/primary image for a product variant.
3
+ * Get the main/primary media item for a product variant.
4
+ *
5
+ * The returned IkasProductImage may be a video (`isVideo === true`) — branch on it
6
+ * and render `<video>` instead of `<img>`.
4
7
  *
5
8
  * @ai-category ProductDetail, ProductList
6
9
  * @ai-related getSelectedProductVariant
7
10
  *
8
11
  * @param variant - The product variant
9
- * @returns The first IkasProductImage of the variant, or undefined if no images. Access `.image` to get the IkasImage for CDN helpers.
12
+ * @returns The first IkasProductImage of the variant, or undefined if no images. Check `.isVideo` to decide between `<video>` and `<img>`, and access `.image` to get the IkasImage for CDN helpers.
10
13
  *
11
14
  * @example
12
15
  * ```typescript
13
- * import { getProductVariantMainImage, getSelectedProductVariant, getDefaultSrc } from "@ikas/bp-storefront";
16
+ * import { getProductVariantMainImage, getSelectedProductVariant, getDefaultSrc, createMediaSrcset } from "@ikas/bp-storefront";
14
17
  * import { IkasProduct } from "@ikas/bp-storefront";
15
18
  *
16
19
  * function ProductImage({ product }: { product: IkasProduct }) {
@@ -22,7 +25,14 @@ import { BackInStockNotificationForm, IkasAppliedCampaignAmount, IkasProductAttr
22
25
  * return <div className="no-image">No image available</div>;
23
26
  * }
24
27
  *
25
- * return <img src={getDefaultSrc(image)} alt={product.name} />;
28
+ * // Media can be a video — branch on isVideo:
29
+ * return productImage.isVideo ? (
30
+ * <video src={getDefaultSrc(image)} muted playsInline loop>
31
+ * <track kind="captions" />
32
+ * </video>
33
+ * ) : (
34
+ * <img src={getDefaultSrc(image)} srcSet={createMediaSrcset(image)} alt={product.name} />
35
+ * );
26
36
  * }
27
37
  * ```
28
38
  */
@@ -328,11 +338,19 @@ export declare function getProductVariantFormattedBuyPrice(variant: IkasProductV
328
338
  /**
329
339
  * Get the applied campaign discount amount details for a product variant, including type and formatted value.
330
340
  *
341
+ * How the discount value is interpreted depends on `campaign.type`:
342
+ * - `"FIXED_AMOUNT"` → the value is an absolute money amount, returned in `formattedPrice` (e.g. "$10.00"); `discountPercentage` stays null.
343
+ * - `"RATIO"` → the value is a percentage, returned in `discountPercentage` (e.g. "10" for 10% off); `formattedPrice` stays null.
344
+ *
345
+ * Both fixed and tiered campaigns are supported. For a tiered-discount campaign
346
+ * (`campaign.fixedDiscount` is null and the discount lives in `campaign.tieredDiscount.rules`),
347
+ * the first tier's amount (`campaign.tieredDiscount.rules[0].amount`) is used, matching the storefront runtime.
348
+ *
331
349
  * @ai-category Pricing, ProductVariant
332
350
  * @ai-related getProductVariantCampaignPrice, getProductVariantFormattedCampaignPrice, hasProductVariantDiscount
333
351
  *
334
352
  * @param variant - The product variant to check for applied campaigns
335
- * @returns An object with campaign type, formatted price, and discount percentage, or null if no campaign is applied
353
+ * @returns An object `{ type, formattedPrice, discountPercentage }` — `formattedPrice` is set for FIXED_AMOUNT campaigns, `discountPercentage` for RATIO campaigns (fixed and tiered alike); the other field stays null. Returns null if no campaign is applied.
336
354
  *
337
355
  * @example
338
356
  * ```typescript
@@ -700,6 +718,78 @@ export declare function getProductVariantFormattedSellPriceWithCampaignOffers(va
700
718
  * ```
701
719
  */
702
720
  export declare function getProductVariantCampaignOffersDiscountPercentage(variant: IkasProductVariant): number;
721
+ /**
722
+ * Get the tiered-discount breakdown for a product variant, one entry per discount tier.
723
+ *
724
+ * A tiered discount defines multiple quantity tiers (`campaign.tieredDiscount.rules`), each with its own
725
+ * amount and quantity range. This resolves every tier against the variant's price and returns the
726
+ * per-tier sell/final prices (both raw numbers and formatted strings), matching the storefront runtime.
727
+ * The raw rules are `IkasProductTieredDiscountRule` (ranges may be null); this function returns the
728
+ * resolved `IkasTieredDiscountProduct` with normalized `{ min, max }` — use the resolved shape, not the raw rule.
729
+ *
730
+ * `sellPrice`/`finalPrice` (and their `formatted*` variants) are PER UNIT; the `*WithQuantity` fields are the
731
+ * tier total for buying the minimum quantity. A `"FIXED_AMOUNT"` discount is applied only to that total, so
732
+ * per-unit `finalPrice` equals `sellPrice` and the saving shows only in `finalPriceWithQuantity`.
733
+ *
734
+ * The discount `amount` is interpreted by `campaign.type`: `"RATIO"` treats it as a percentage,
735
+ * `"FIXED_AMOUNT"` as an absolute money amount subtracted from the tier total. `amount`/`type` are
736
+ * informational — the discount is already applied in the resolved `*Price` fields, so prefer those over
737
+ * recomputing it yourself.
738
+ *
739
+ * `lineItemQuantityRange.min`/`max` are normalized numbers where `0` means "unbounded". In particular
740
+ * `max === 0` marks an open-ended top tier (e.g. "6+" with no upper limit) — render it as "min+" rather
741
+ * than "min–max", and never treat `max` as a real quantity when it is `0`.
742
+ *
743
+ * Each tier's `salesChannelIds` lists the channels it targets (empty/null = all channels). Filter tiers
744
+ * against `IkasStorefrontConfig.salesChannelId` so only those valid for the current storefront are shown.
745
+ *
746
+ * Returns an empty array when the variant has no tiered-discount campaign, when a
747
+ * `PRODUCT_AND_VARIANT` filter excludes this variant, or when no tier defines a quantity range.
748
+ *
749
+ * @ai-category Pricing, ProductVariant
750
+ * @ai-related getProductVariantAppliedCampaignAmount, getProductVariantCampaignOffersDiscountPercentage, getProductVariantFinalPrice
751
+ *
752
+ * @param variant - The product variant to resolve tiered discounts for
753
+ * @returns An array of tier objects (`amount`, `lineItemQuantityRange`, `type`, sell/final prices with their formatted variants, `salesChannelIds`), or an empty array if no tiered discount applies
754
+ *
755
+ * @example
756
+ * ```typescript
757
+ * import {
758
+ * getProductVariantTieredDiscountProducts,
759
+ * getSelectedProductVariant,
760
+ * IkasStorefrontConfig,
761
+ * } from "@ikas/bp-storefront";
762
+ * import { IkasProduct } from "@ikas/bp-storefront";
763
+ *
764
+ * function TieredDiscountTable({ product }: { product: IkasProduct }) {
765
+ * const variant = getSelectedProductVariant(product);
766
+ * const tiers = getProductVariantTieredDiscountProducts(variant);
767
+ * const salesChannelId = IkasStorefrontConfig.salesChannelId;
768
+ *
769
+ * if (!tiers.length) return null;
770
+ *
771
+ * return (
772
+ * <ul>
773
+ * {tiers.map((tier, i) => {
774
+ * // A tier applies when it targets no channels or includes the current one
775
+ * const scoped =
776
+ * !tier.salesChannelIds?.length ||
777
+ * (!!salesChannelId && tier.salesChannelIds.includes(salesChannelId));
778
+ * if (!scoped) return null;
779
+ *
780
+ * return (
781
+ * <li key={i}>
782
+ * Buy {tier.lineItemQuantityRange.min}+ → {tier.formattedFinalPriceWithQuantity}{" "}
783
+ * <s>{tier.formattedSellPriceWithQuantity}</s>
784
+ * </li>
785
+ * );
786
+ * })}
787
+ * </ul>
788
+ * );
789
+ * }
790
+ * ```
791
+ */
792
+ export declare function getProductVariantTieredDiscountProducts(variant: IkasProductVariant): IkasTieredDiscountProduct[];
703
793
  /**
704
794
  * Check if the back-in-stock notification feature is enabled for the storefront.
705
795
  *
@@ -1 +1 @@
1
- import{__awaiter as r,__generator as n}from'./../../../../ext/tslib/tslib.es6.mjs.js';import{IkasStorefrontConfig as i}from"../../../../packages/storefront-config/src/index.js";import{customerStore as t}from"../../../../stores/customer/index.js";import{formatCurrency as e}from"../../../../utils/currency.js";import{groupBy as u}from"../../../../utils/helper.js";import{initBackInStockNotificationForm as o}from"../../validator/back-in-stock-notification/index.js";import{getBundleProductFinalPriceWithQuantity as c,getBundleProductSellPriceWithQuantity as d,getSelectedProductVariant as l}from"../index.js";import{isProductOfferAccepted as a}from"../campaign-offer/index.js";import{getProductFromStore as s}from"../init.js";import{getIkasProductPriceFinalPrice as v}from"./price/index.js";function f(r){var n;return(null===(n=r.images)||void 0===n?void 0:n.length)?r.images[0]:void 0}function m(r){return r.stock>0||r.sellIfOutOfStock}function p(r){var n,i=u(r.attributes,"productAttributeId");return(null===(n=r.attributes)||void 0===n?void 0:n.map(function(r){var n=r.productAttributeId;if(n){var t=i[n];return(null==t?void 0:t.length)&&t[0].productAttribute?{attribute:t[0].productAttribute,values:t}:void 0}}).filter(function(r){return!!r}))||[]}function y(r){var n,i,e=t.customer,u=null==e?void 0:e.priceListRules,o=s(r.id),c=function(n){var i,t,e,u;if("CATEGORY"===n.type)return c=null===(i=n.valueList)||void 0===i?void 0:i.some(function(r){return null==o?void 0:o.categories.find(function(n){return n.id===r})});if("PRODUCT"===n.type)return c=null===(t=n.valueList)||void 0===t?void 0:t.some(function(n){return r.id===n});if("PRODUCT_BRAND"===n.type){var c=null===(e=n.valueList)||void 0===e?void 0:e.some(function(r){var n;return(null===(n=null==o?void 0:o.brand)||void 0===n?void 0:n.id)===r});return c}if("PRODUCT_TAG"===n.type){c=null===(u=n.valueList)||void 0===u?void 0:u.some(function(r){var n;return null===(n=null==o?void 0:o.tags)||void 0===n?void 0:n.find(function(n){return n.id===r})});return c}};if(u){for(var d=0,l=u;d<l.length;d++){var a=l[d];if(a.shouldMatchAllFilters?null===(n=a.filters)||void 0===n?void 0:n.every(c):null===(i=a.filters)||void 0===i?void 0:i.some(c))return a}return null}return null}function b(r){var n,e;if(i.isB2BStorefront()){var u=t.customer;if(null==u?void 0:u.priceListId){var o=null===(n=r.prices)||void 0===n?void 0:n.find(function(r){return r.priceListId===u.priceListId});if(o)return o}}return null===(e=r.prices)||void 0===e?void 0:e.find(function(r){return i.priceListId?r.priceListId===i.priceListId:null===r.priceListId})}function I(r){return!!r.bundleSettings}function S(r){var n,e;if(i.isB2BStorefront()){var u=t.customer;if(null==u?void 0:u.priceListId){var o=null===(n=r.baseBundlePrices)||void 0===n?void 0:n.find(function(r){return r.priceListId===u.priceListId});if(o)return o}}return(null===(e=r.baseBundlePrices)||void 0===e?void 0:e.find(function(r){return i.priceListId?r.priceListId===i.priceListId:null===r.priceListId}))||b(r)}function g(r){var n=0;if(r.bundleSettings&&r.bundleSettings.products.every(function(r){return!!r.product})){var i=S(r);n=v(i)+r.bundleSettings.products.reduce(function(r,n){return r+(n.addToBundleBasePrice?c(n):0)},0)}else n=v(b(r));var t=y(r);if(!t)return n;switch(t.valueType){case"DISCOUNT_RATE":return n*((100-t.value)/100);case"DISCOUNT_AMOUNT":return n-t.value;case"FIXED_PRICE":return t.value;default:return n}}function k(r){var n=b(r);return e(g(r),n.currency||"",n.currencySymbol||"")}function P(r){return r.bundleSettings&&r.bundleSettings.products.every(function(r){return!!r.product})?S(r).sellPrice+r.bundleSettings.products.reduce(function(r,n){return r+(n.addToBundleBasePrice?d(n):0)},0):b(r).sellPrice}function L(r){var n=b(r);return e(P(r),n.currency||"",n.currencySymbol||"")}function B(r){var n=b(r);return e(b(r).buyPrice||0,n.currency||"",n.currencySymbol||"")}function R(r){var n,i,t,u,o,c,d=s(r.id),l=b(r);if(!(null===(n=l.campaignPrice)||void 0===n?void 0:n.campaignId))return null;var a=(null===(t=null===(i=null==d?void 0:d.campaigns)||void 0===i?void 0:i.find(function(r){var n;return r.campaign.id===(null===(n=l.campaignPrice)||void 0===n?void 0:n.campaignId)}))||void 0===t?void 0:t.campaign)||null;if(!a)return null;var v={type:a.type,formattedPrice:null,discountPercentage:null};return"FIXED_AMOUNT"===a.type&&(v.formattedPrice=e((null===(u=a.fixedDiscount)||void 0===u?void 0:u.amount)||0,l.currency||"",l.currencySymbol||"")),"RATIO"===a.type&&(v.discountPercentage=(null===(c=null===(o=a.fixedDiscount)||void 0===o?void 0:o.amount)||void 0===c?void 0:c.toString())||null),v}function T(r){var n;return(null===(n=b(r).campaignPrice)||void 0===n?void 0:n.campaignPrice)||null}function A(r){var n=b(r);return e(T(r)||0,n.currency||"",n.currencySymbol||"")}function j(r){var n=g(r);return n===P(r)?null:n}function x(r){var n=b(r);return e(j(r)||0,n.currency||"",n.currencySymbol||"")}function _(r){return null!==j(r)}function h(r){var n=b(r);return e(F(r),n.currency||"",n.currencySymbol||"")}function F(r){var n=g(r),i=P(r);return _(r)?i-n:0}function O(r){return(100-100*g(r)/P(r)).toFixed(0)}function D(r){var n,i=g(r),t=s(r.id);return i+((null===(n=null==t?void 0:t.offers)||void 0===n?void 0:n.filter(function(r){return r.isSelected&&!a(r)}).reduce(function(r,n){return r+g(l(n.product))},0))||0)}function U(r){var n=D(r),i=b(r);return e(n,i.currency||"",i.currencySymbol||"")}function C(r){var n,i=P(r),t=s(r.id);return i+((null===(n=null==t?void 0:t.offers)||void 0===n?void 0:n.filter(function(r){return r.isSelected&&!a(r)}).reduce(function(r,n){return r+P(l(n.product))},0))||0)}function E(r){var n=C(r),i=b(r);return e(n,i.currency||"",i.currencySymbol||"")}function N(r){var n=D(r),i=C(r);return n!==i?Number((100-100*n/i).toFixed(0)):0}function q(r){return i.isBackInStockEnabled()}function M(r){return i.isCustomerLoginRequiredForBackInStock()}function w(i,t){return r(this,void 0,void 0,function(){var r,e;return n(this,function(n){switch(n.label){case 0:case 3:return[4,import("../../../api/product/index.js")];case 1:return[4,(0,n.sent().apiListProductBackInStockRemind)({email:{eq:t},productId:{eq:i.productId},variantId:{eq:i.id}})];case 2:return(r=n.sent())&&(null===(e=r.data)||void 0===e?void 0:e.length)?(i.isBackInStockReminderSaved=!0,[2,!1]):[3,3];case 4:return[4,(0,n.sent().apiSaveProductBackInStockRemind)({input:{email:t,productId:i.productId,variantId:i.id}})];case 5:return n.sent().isSuccess?(i.isBackInStockReminderSaved=!0,[2,!0]):(i.isBackInStockReminderSaved=!1,[2,!1]);case 6:return[2]}})})}function G(r){var n,i,t=s(r.id);if(!t)return"0";var u=b(r);if(u.unitPrice&&t.baseUnit){var o=t.baseUnit.baseAmount,c=(null===(i=null===(n=t.baseUnit)||void 0===n?void 0:n.unit)||void 0===i?void 0:i.name)||"";return"".concat(e(u.unitPrice,u.currency||"",u.currencySymbol||"")," / ").concat(o&&1!==o?o:"").concat(c)}}function X(r){return t._backInStockForms[r.id]||(t._backInStockForms[r.id]={},o(t._backInStockForms[r.id],r)),t._backInStockForms[r.id]}function Y(r){delete t._backInStockForms[r.id]}export{Y as clearProductVariantBackInStockForm,p as getGroupedAttributeValuesForVariant,R as getProductVariantAppliedCampaignAmount,y as getProductVariantB2bPriceRule,X as getProductVariantBackInStockForm,S as getProductVariantBundlePrice,N as getProductVariantCampaignOffersDiscountPercentage,T as getProductVariantCampaignPrice,F as getProductVariantDiscountAmount,O as getProductVariantDiscountPercentage,j as getProductVariantDiscountPrice,g as getProductVariantFinalPrice,D as getProductVariantFinalPriceWithCampaignOffers,B as getProductVariantFormattedBuyPrice,A as getProductVariantFormattedCampaignPrice,h as getProductVariantFormattedDiscountAmount,x as getProductVariantFormattedDiscountPrice,k as getProductVariantFormattedFinalPrice,U as getProductVariantFormattedFinalPriceWithCampaignOffers,L as getProductVariantFormattedSellPrice,E as getProductVariantFormattedSellPriceWithCampaignOffers,M as getProductVariantIsBackInStockCustomerLoginRequired,q as getProductVariantIsBackInStockEnabled,f as getProductVariantMainImage,b as getProductVariantPrice,P as getProductVariantSellPrice,C as getProductVariantSellPriceWithCampaignOffers,G as getProductVariantUnitPriceText,I as hasBundleSettings,_ as hasProductVariantDiscount,m as hasProductVariantStock,w as saveProductVariantBackInStockReminder};
1
+ import{__awaiter as n,__generator as r}from'./../../../../ext/tslib/tslib.es6.mjs.js';import{IkasStorefrontConfig as i}from"../../../../packages/storefront-config/src/index.js";import{customerStore as t}from"../../../../stores/customer/index.js";import{formatCurrency as e}from"../../../../utils/currency.js";import{groupBy as u}from"../../../../utils/helper.js";import{initBackInStockNotificationForm as o}from"../../validator/back-in-stock-notification/index.js";import{getBundleProductFinalPriceWithQuantity as c,getBundleProductSellPriceWithQuantity as l,getSelectedProductVariant as d}from"../index.js";import{isProductOfferAccepted as a}from"../campaign-offer/index.js";import{getProductFromStore as v}from"../init.js";import{getIkasProductPriceFinalPrice as s}from"./price/index.js";function f(n){var r;return(null===(r=n.images)||void 0===r?void 0:r.length)?n.images[0]:void 0}function m(n){return n.stock>0||n.sellIfOutOfStock}function p(n){var r,i=u(n.attributes,"productAttributeId");return(null===(r=n.attributes)||void 0===r?void 0:r.map(function(n){var r=n.productAttributeId;if(r){var t=i[r];return(null==t?void 0:t.length)&&t[0].productAttribute?{attribute:t[0].productAttribute,values:t}:void 0}}).filter(function(n){return!!n}))||[]}function y(n){var r,i,e=t.customer,u=null==e?void 0:e.priceListRules,o=v(n.id),c=function(r){var i,t,e,u;if("CATEGORY"===r.type)return c=null===(i=r.valueList)||void 0===i?void 0:i.some(function(n){return null==o?void 0:o.categories.find(function(r){return r.id===n})});if("PRODUCT"===r.type)return c=null===(t=r.valueList)||void 0===t?void 0:t.some(function(r){return n.id===r});if("PRODUCT_BRAND"===r.type){var c=null===(e=r.valueList)||void 0===e?void 0:e.some(function(n){var r;return(null===(r=null==o?void 0:o.brand)||void 0===r?void 0:r.id)===n});return c}if("PRODUCT_TAG"===r.type){c=null===(u=r.valueList)||void 0===u?void 0:u.some(function(n){var r;return null===(r=null==o?void 0:o.tags)||void 0===r?void 0:r.find(function(r){return r.id===n})});return c}};if(u){for(var l=0,d=u;l<d.length;l++){var a=d[l];if(a.shouldMatchAllFilters?null===(r=a.filters)||void 0===r?void 0:r.every(c):null===(i=a.filters)||void 0===i?void 0:i.some(c))return a}return null}return null}function I(n){var r,e;if(i.isB2BStorefront()){var u=t.customer;if(null==u?void 0:u.priceListId){var o=null===(r=n.prices)||void 0===r?void 0:r.find(function(n){return n.priceListId===u.priceListId});if(o)return o}}return null===(e=n.prices)||void 0===e?void 0:e.find(function(n){return i.priceListId?n.priceListId===i.priceListId:null===n.priceListId})}function S(n){return!!n.bundleSettings}function b(n){var r,e;if(i.isB2BStorefront()){var u=t.customer;if(null==u?void 0:u.priceListId){var o=null===(r=n.baseBundlePrices)||void 0===r?void 0:r.find(function(n){return n.priceListId===u.priceListId});if(o)return o}}return(null===(e=n.baseBundlePrices)||void 0===e?void 0:e.find(function(n){return i.priceListId?n.priceListId===i.priceListId:null===n.priceListId}))||I(n)}function g(n){var r=0;if(n.bundleSettings&&n.bundleSettings.products.every(function(n){return!!n.product})){var i=b(n);r=s(i)+n.bundleSettings.products.reduce(function(n,r){return n+(r.addToBundleBasePrice?c(r):0)},0)}else r=s(I(n));var t=y(n);if(!t)return r;switch(t.valueType){case"DISCOUNT_RATE":return r*((100-t.value)/100);case"DISCOUNT_AMOUNT":return r-t.value;case"FIXED_PRICE":return t.value;default:return r}}function P(n){var r=I(n);return e(g(n),r.currency||"",r.currencySymbol||"")}function k(n){return n.bundleSettings&&n.bundleSettings.products.every(function(n){return!!n.product})?b(n).sellPrice+n.bundleSettings.products.reduce(function(n,r){return n+(r.addToBundleBasePrice?l(r):0)},0):I(n).sellPrice}function R(n){var r=I(n);return e(k(n),r.currency||"",r.currencySymbol||"")}function L(n){var r=I(n);return e(I(n).buyPrice||0,r.currency||"",r.currencySymbol||"")}function D(n){var r,i,t,u,o,c,l,d,a,s,f,m,p=v(n.id),y=I(n);if(!(null===(r=y.campaignPrice)||void 0===r?void 0:r.campaignId))return null;var S=(null===(t=null===(i=null==p?void 0:p.campaigns)||void 0===i?void 0:i.find(function(n){var r;return n.campaign.id===(null===(r=y.campaignPrice)||void 0===r?void 0:r.campaignId)}))||void 0===t?void 0:t.campaign)||null;if(!S)return null;var b={type:S.type,formattedPrice:null,discountPercentage:null},g=(null==S?void 0:S.tieredDiscount)&&(null===(u=null==S?void 0:S.tieredDiscount)||void 0===u?void 0:u.rules)&&(null===(c=null===(o=null==S?void 0:S.tieredDiscount)||void 0===o?void 0:o.rules)||void 0===c?void 0:c.length)>0&&(null===(a=null===(d=null===(l=null==S?void 0:S.tieredDiscount)||void 0===l?void 0:l.rules)||void 0===d?void 0:d[0])||void 0===a?void 0:a.amount);return"FIXED_AMOUNT"===S.type&&(b.formattedPrice=e(S.fixedDiscount?(null===(s=S.fixedDiscount)||void 0===s?void 0:s.amount)||0:g||0,y.currency||"",y.currencySymbol||"")),"RATIO"===S.type&&(b.discountPercentage=S.fixedDiscount?(null===(m=null===(f=S.fixedDiscount)||void 0===f?void 0:f.amount)||void 0===m?void 0:m.toString())||null:g?g.toString():null),b}function h(n){var r;return(null===(r=I(n).campaignPrice)||void 0===r?void 0:r.campaignPrice)||null}function A(n){var r=I(n);return e(h(n)||0,r.currency||"",r.currencySymbol||"")}function B(n){var r=g(n);return r===k(n)?null:r}function T(n){var r=I(n);return e(B(n)||0,r.currency||"",r.currencySymbol||"")}function x(n){return null!==B(n)}function _(n){var r=I(n);return e(F(n),r.currency||"",r.currencySymbol||"")}function F(n){var r=g(n),i=k(n);return x(n)?i-r:0}function O(n){return(100-100*g(n)/k(n)).toFixed(0)}function j(n){var r,i=g(n),t=v(n.id);return i+((null===(r=null==t?void 0:t.offers)||void 0===r?void 0:r.filter(function(n){return n.isSelected&&!a(n)}).reduce(function(n,r){return n+g(d(r.product))},0))||0)}function C(n){var r=j(n),i=I(n);return e(r,i.currency||"",i.currencySymbol||"")}function U(n){var r,i=k(n),t=v(n.id);return i+((null===(r=null==t?void 0:t.offers)||void 0===r?void 0:r.filter(function(n){return n.isSelected&&!a(n)}).reduce(function(n,r){return n+k(d(r.product))},0))||0)}function Q(n){var r=U(n),i=I(n);return e(r,i.currency||"",i.currencySymbol||"")}function E(n){var r=j(n),i=U(n);return r!==i?Number((100-100*r/i).toFixed(0)):0}function N(n){var r,i,t,u=v(n.id),o=I(n),c=null===(i=null===(r=null==u?void 0:u.campaigns)||void 0===r?void 0:r.find(function(n){return!!n.campaign.tieredDiscount}))||void 0===i?void 0:i.campaign,l=null==c?void 0:c.tieredDiscount;if(!c||!l)return[];var d=null===(t=l.filters)||void 0===t?void 0:t.find(function(n){return"PRODUCT_AND_VARIANT"===n.type});if(d&&!d.idList.map(function(n){return n.replace("p:","").replace("v:","")}).some(function(r){return n.id===r||n.productId===r}))return[];if(l.rules.every(function(n){return!n.lineItemQuantityRange}))return[];var a=k(n),s=g(n);return l.rules.map(function(n){var r,i,t,u,l="SELL_PRICE"===c.applicablePrice?a:s,d=l*((null===(r=n.lineItemQuantityRange)||void 0===r?void 0:r.min)||1),v="RATIO"===c.type?l-l*(n.amount||1)/100:l,f=v*((null===(i=n.lineItemQuantityRange)||void 0===i?void 0:i.min)||1)-("FIXED_AMOUNT"===c.type&&n.amount||0);return{amount:n.amount,lineItemQuantityRange:{min:(null===(t=n.lineItemQuantityRange)||void 0===t?void 0:t.min)||0,max:(null===(u=n.lineItemQuantityRange)||void 0===u?void 0:u.max)||0},type:c.type,sellPrice:l,finalPrice:v,sellPriceWithQuantity:d,finalPriceWithQuantity:f,formattedSellPrice:e(l,o.currency||"",o.currencySymbol||""),formattedSellPriceWithQuantity:e(d,o.currency||"",o.currencySymbol||""),formattedFinalPrice:e(v,o.currency||"",o.currencySymbol||""),formattedFinalPriceWithQuantity:e(f,o.currency||"",o.currencySymbol||""),salesChannelIds:c.salesChannelIds}})}function q(n){return i.isBackInStockEnabled()}function M(n){return i.isCustomerLoginRequiredForBackInStock()}function W(i,t){return n(this,void 0,void 0,function(){var n,e;return r(this,function(r){switch(r.label){case 0:case 3:return[4,import("../../../api/product/index.js")];case 1:return[4,(0,r.sent().apiListProductBackInStockRemind)({email:{eq:t},productId:{eq:i.productId},variantId:{eq:i.id}})];case 2:return(n=r.sent())&&(null===(e=n.data)||void 0===e?void 0:e.length)?(i.isBackInStockReminderSaved=!0,[2,!1]):[3,3];case 4:return[4,(0,r.sent().apiSaveProductBackInStockRemind)({input:{email:t,productId:i.productId,variantId:i.id}})];case 5:return r.sent().isSuccess?(i.isBackInStockReminderSaved=!0,[2,!0]):(i.isBackInStockReminderSaved=!1,[2,!1]);case 6:return[2]}})})}function X(n){var r,i,t=v(n.id);if(!t)return"0";var u=I(n);if(u.unitPrice&&t.baseUnit){var o=t.baseUnit.baseAmount,c=(null===(i=null===(r=t.baseUnit)||void 0===r?void 0:r.unit)||void 0===i?void 0:i.name)||"";return"".concat(e(u.unitPrice,u.currency||"",u.currencySymbol||"")," / ").concat(o&&1!==o?o:"").concat(c)}}function w(n){return t._backInStockForms[n.id]||(t._backInStockForms[n.id]={},o(t._backInStockForms[n.id],n)),t._backInStockForms[n.id]}function G(n){delete t._backInStockForms[n.id]}export{G as clearProductVariantBackInStockForm,p as getGroupedAttributeValuesForVariant,D as getProductVariantAppliedCampaignAmount,y as getProductVariantB2bPriceRule,w as getProductVariantBackInStockForm,b as getProductVariantBundlePrice,E as getProductVariantCampaignOffersDiscountPercentage,h as getProductVariantCampaignPrice,F as getProductVariantDiscountAmount,O as getProductVariantDiscountPercentage,B as getProductVariantDiscountPrice,g as getProductVariantFinalPrice,j as getProductVariantFinalPriceWithCampaignOffers,L as getProductVariantFormattedBuyPrice,A as getProductVariantFormattedCampaignPrice,_ as getProductVariantFormattedDiscountAmount,T as getProductVariantFormattedDiscountPrice,P as getProductVariantFormattedFinalPrice,C as getProductVariantFormattedFinalPriceWithCampaignOffers,R as getProductVariantFormattedSellPrice,Q as getProductVariantFormattedSellPriceWithCampaignOffers,M as getProductVariantIsBackInStockCustomerLoginRequired,q as getProductVariantIsBackInStockEnabled,f as getProductVariantMainImage,I as getProductVariantPrice,k as getProductVariantSellPrice,U as getProductVariantSellPriceWithCampaignOffers,N as getProductVariantTieredDiscountProducts,X as getProductVariantUnitPriceText,S as hasBundleSettings,x as hasProductVariantDiscount,m as hasProductVariantStock,W as saveProductVariantBackInStockReminder};