@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.
- package/dist/analytics/analytics-functions/addToCart.js +1 -1
- package/dist/analytics/analytics-functions/addToWishlist.js +1 -1
- package/dist/analytics/analytics-functions/completeRegistration.js +1 -1
- package/dist/analytics/analytics-functions/contactForm.js +1 -1
- package/dist/analytics/analytics-functions/createEmailSubscription.js +1 -1
- package/dist/analytics/analytics-functions/customerLogin.js +1 -1
- package/dist/analytics/analytics-functions/customerLogout.js +1 -1
- package/dist/analytics/analytics-functions/customerVisit.js +1 -1
- package/dist/analytics/analytics-functions/pageView.js +1 -1
- package/dist/analytics/analytics-functions/productView.js +1 -1
- package/dist/analytics/analytics-functions/removeFromCart.js +1 -1
- package/dist/analytics/analytics-functions/search.js +1 -1
- package/dist/analytics/analytics-functions/viewBrand.js +1 -1
- package/dist/analytics/analytics-functions/viewCart.js +1 -1
- package/dist/analytics/analytics-functions/viewCategory.js +1 -1
- package/dist/analytics/analytics-functions/viewListing.js +1 -1
- package/dist/analytics/analytics-functions/viewSearchResults.js +1 -1
- package/dist/analytics/analytics-functions/viewStorefrontPopup.js +1 -1
- package/dist/analytics/events.d.ts +8 -0
- package/dist/analytics/events.js +1 -1
- package/dist/analytics/ikas/analytics.js +1 -1
- package/dist/analytics/openai/addToCart.d.ts +2 -0
- package/dist/analytics/openai/addToCart.js +1 -0
- package/dist/analytics/openai/completeRegistration.d.ts +1 -0
- package/dist/analytics/openai/completeRegistration.js +1 -0
- package/dist/analytics/openai/contactForm.d.ts +1 -0
- package/dist/analytics/openai/contactForm.js +1 -0
- package/dist/analytics/openai/initAdvancedMatching.d.ts +12 -0
- package/dist/analytics/openai/initAdvancedMatching.js +1 -0
- package/dist/analytics/openai/pageView.d.ts +1 -0
- package/dist/analytics/openai/pageView.js +1 -0
- package/dist/analytics/openai/productView.d.ts +2 -0
- package/dist/analytics/openai/productView.js +1 -0
- package/dist/analytics/openai/utils.d.ts +26 -0
- package/dist/analytics/openai/utils.js +1 -0
- package/dist/analytics/utils.d.ts +1 -0
- package/dist/analytics/utils.js +1 -1
- package/dist/functions/api/cart/index.d.ts +2 -0
- package/dist/functions/api/cart/index.js +1 -1
- package/dist/functions/api/customer/index.d.ts +5 -0
- package/dist/functions/api/customer/index.js +1 -1
- package/dist/functions/api/loyalty/index.d.ts +2 -1
- package/dist/functions/api/loyalty/index.js +1 -1
- package/dist/functions/api/product/index.js +1 -1
- package/dist/functions/models/attribute-detail/index.d.ts +3 -0
- package/dist/functions/models/attribute-list/index.d.ts +3 -0
- package/dist/functions/models/image/index.d.ts +71 -21
- package/dist/functions/models/image/index.js +1 -1
- package/dist/functions/models/index.d.ts +1 -0
- package/dist/functions/models/order/index.d.ts +21 -0
- package/dist/functions/models/order/index.js +1 -1
- package/dist/functions/models/product/attribute-value/index.d.ts +5 -0
- package/dist/functions/models/product/variant/index.d.ts +96 -6
- package/dist/functions/models/product/variant/index.js +1 -1
- package/dist/functions/models/product-list/index.js +1 -1
- package/dist/functions/models/validator/address/index.d.ts +70 -2
- package/dist/functions/models/validator/deactivate-customer/index.d.ts +54 -0
- package/dist/functions/models/validator/deactivate-customer/index.js +1 -0
- package/dist/functions/stores/base/index.d.ts +67 -0
- package/dist/functions/stores/base/index.js +1 -1
- package/dist/functions/stores/cart/index.d.ts +46 -2
- package/dist/functions/stores/cart/index.js +1 -1
- package/dist/functions/stores/customer/index.d.ts +278 -27
- package/dist/functions/stores/customer/index.js +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +1 -1
- package/dist/packages/storefront-api/src/__api/mutations/removeGiftCardFromCart.js +1 -0
- package/dist/packages/storefront-api/src/__api/mutations/unlinkExternalAccount.js +1 -0
- package/dist/packages/storefront-api/src/__api/queries/getExternalAccountLink.js +1 -0
- package/dist/packages/storefront-api/src/__api/queries/getLoyaltyProgram.js +1 -0
- package/dist/packages/storefront-api/src/__api/queries/getMilesSmilesDetails.js +1 -0
- package/dist/packages/storefront-api-client/src/utils/api.js +1 -1
- package/dist/packages/storefront-config/src/index.js +1 -1
- package/dist/packages/storefront-config/src/theme-globals.js +1 -0
- package/dist/router/index.d.ts +28 -0
- package/dist/router/index.js +1 -1
- package/dist/storefront-api/src/__api/mutations/removeGiftCardFromCart.d.ts +7 -0
- package/dist/storefront-api/src/__api/mutations/unlinkExternalAccount.d.ts +6 -0
- package/dist/storefront-api/src/__api/queries/getExternalAccountLink.d.ts +6 -0
- package/dist/storefront-api/src/__api/queries/getLoyaltyProgram.d.ts +3 -0
- package/dist/storefront-api/src/__api/queries/getMilesSmilesDetails.d.ts +3 -0
- package/dist/storefront-api/src/__api/types/index.d.ts +68 -6
- package/dist/storefront-api-client/src/utils/api.d.ts +7 -0
- package/dist/storefront-config/src/index.d.ts +6 -0
- package/dist/storefront-config/src/theme-globals.d.ts +349 -0
- package/dist/storefront-models/src/index.d.ts +3 -0
- package/dist/storefront-models/src/models/blueprint/prop-value/attribute-list.d.ts +2 -0
- package/dist/storefront-models/src/models/blueprint/prop-value/attribute.d.ts +2 -0
- package/dist/storefront-models/src/models/blueprint/prop-value/color.d.ts +2 -0
- package/dist/storefront-models/src/models/blueprint/prop-value/index.d.ts +1 -0
- package/dist/storefront-models/src/models/blueprint/prop-value/variable-binding.d.ts +16 -0
- package/dist/storefront-models/src/models/image/index.d.ts +7 -0
- package/dist/storefront-models/src/models/loyalty-program/customer-info/index.d.ts +2 -0
- package/dist/storefront-models/src/models/loyalty-program/earning-method/index.d.ts +1 -0
- package/dist/storefront-models/src/models/loyalty-program/index.d.ts +1 -0
- package/dist/storefront-models/src/models/loyalty-program/point-history/index.d.ts +1 -0
- package/dist/storefront-models/src/models/order/gift-card-line/index.d.ts +15 -0
- package/dist/storefront-models/src/models/order/index.d.ts +2 -0
- package/dist/storefront-models/src/models/order/line-item/index.d.ts +1 -1
- package/dist/storefront-models/src/models/order/package/index.d.ts +1 -1
- package/dist/storefront-models/src/models/payment-gateway/index.d.ts +3 -1
- package/dist/storefront-models/src/models/product/attribute/index.d.ts +6 -1
- package/dist/storefront-models/src/models/product/campaign/data/index.d.ts +2 -0
- package/dist/storefront-models/src/models/product/campaign/filter/index.d.ts +1 -1
- package/dist/storefront-models/src/models/product/campaign/product-tiered-discount/index.d.ts +13 -0
- package/dist/storefront-models/src/models/product/image/index.d.ts +5 -0
- package/dist/storefront-models/src/models/product/variant/index.d.ts +17 -0
- package/dist/storefront-models/src/models/storefront/index.d.ts +1 -0
- package/dist/storefront-models/src/models/validator/deactivate-customer/index.d.ts +4 -0
- package/dist/stores/customer/index.d.ts +2 -1
- package/dist/stores/customer/index.js +1 -1
- package/dist/theme/settings/index.d.ts +51 -0
- package/dist/theme/settings/index.js +1 -0
- package/dist/utils/component-renderer.d.ts +1 -0
- package/dist/utils/component-renderer.js +1 -1
- package/dist/utils/currency.d.ts +36 -3
- package/dist/utils/helper.d.ts +1 -0
- package/dist/utils/helper.js +1 -1
- package/dist/utils/pay-with-ikas.d.ts +553 -0
- package/dist/utils/pay-with-ikas.js +1 -0
- package/dist/utils/svg.d.ts +15 -0
- package/dist/utils/svg.js +1 -0
- 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
|
|
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
|
-
*
|
|
16
|
-
*
|
|
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
|
|
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
|
|
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
|
-
*
|
|
34
|
-
*
|
|
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
|
|
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
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
-
*
|
|
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
|
|
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};
|