@ikas/storefront 4.10.0-beta.12 → 4.10.0-beta.13

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.
@@ -1 +1 @@
1
- import{__extends as e,__assign as o}from'./../../ext/tslib/tslib.es6.js';import*as t from"react";import r from"./error/index.js";import{makeObservable as i,computed as n}from"mobx";import a from"../checkout/index.js";import{Observer as d}from"mobx-react-lite";import"../../models/data/blog/category/index.js";import"../../models/data/blog/content/index.js";import"../../models/data/blog/meta-data/index.js";import"../../models/data/blog/tag/index.js";import"../../models/data/blog/index.js";import"../../models/data/brand/index.js";import{IkasThemeJsonPageType as s,IkasOrderLineItemStatus as m,IkasCheckoutRequirement as l,IkasCouponCodeRequirement as p,IkasThemeJsonComponentPropType as u}from"@ikas/storefront-models";import"../../models/data/campaign-offer/index.js";import"../../models/data/cart/campaign-offer/index.js";import"../../models/data/cart/index.js";import"../../models/data/category/path-item/index.js";import"../../models/data/category/index.js";import{IkasCheckout as c}from"../../models/data/checkout/index.js";import{IkasCheckoutSettings as f}from"../../models/data/checkout-settings/index.js";import"../../models/data/city/index.js";import"../../models/data/country/index.js";import"../../models/data/customer/address/region/index.js";import"../../models/data/customer/address/index.js";import"../../models/data/customer/address/ikas-localized-customer-address.js";import"../../models/data/customer/attribute/index.js";import"../../models/data/customer/review/summary/index.js";import"../../models/data/customer/review/index.js";import"../../models/data/customer/index.js";import"../../models/data/district/index.js";import"../../models/data/favorite-product/index.js";import"../../models/data/filter-category/index.js";import"../../models/data/html-meta-data/index.js";import"../../models/data/image/index.js";import"../../models/data/order/address/region/index.js";import"../../models/data/order/address/index.js";import"../../models/data/order/line-item/option/value/index.js";import"../../models/data/order/line-item/variant/value/index.js";import"../../models/data/order/line-item/variant/index.js";import{IkasOrderLineItem as v}from"../../models/data/order/line-item/index.js";import"../../models/data/order/package/index.js";import"../../models/data/order/transaction/index.js";import"../../models/data/order/index.js";import"../../models/data/payment-gateway/index.js";import"../../models/data/product/attribute-value/index.js";import"../../models/data/product/filter/index.js";import"../../models/data/product/option-set/option/index.js";import"../../models/data/product/option-set/index.js";import"../../models/data/product/stock-location/index.js";import"../../models/data/product/variant/price/index.js";import"../../models/data/product/variant/index.js";import"../../models/data/variant-type/index.js";import"../../models/data/product/index.js";import"../../models/data/raffle/index.js";import"../../models/data/shipping-zone/state/city/district/region/index.js";import"../../models/data/state/index.js";import"../../models/data/theme-json/index.js";import"../../models/data/theme-json/component/index.js";import"../../models/data/theme-json/custom-data/index.js";import"../../models/data/variant-type/variant-value/index.js";import"@ikas/localized-address";import"../../models/ui/blog-list/index.js";import"../../models/ui/blog-category-list/index.js";import"../../models/ui/brand-list/index.js";import"../../models/ui/category-list/index.js";import"../../models/ui/product-list/index.js";import"../../models/ui/product-attribute-detail/index.js";import"../../models/ui/product-attribute-list/index.js";import"../../models/ui/customer-review-list/index.js";import"../../models/ui/customer-review-summary-list/index.js";import"../../models/ui/validator/index.js";import"../../models/ui/validator/rules/index.js";import"../../models/ui/validator/form/login.js";import"../../models/ui/validator/form/address.js";import"../../models/ui/validator/form/ikas-address.js";import"../../models/ui/validator/form/register.js";import"../../models/ui/validator/form/contact-form.js";import"../../models/ui/validator/form/forgot-password.js";import"../../models/ui/validator/form/recover-password.js";import"../../models/ui/validator/form/account-info.js";import"../../models/ui/validator/form/raffle-form.js";import"../../models/ui/validator/form/customer-review.js";import"../../models/ui/raffle-list/index.js";import{IkasStorefrontConfig as j}from"@ikas/storefront-config";import{IkasPageDataInit as g}from"../../page-data-init/index.js";import{IkasBaseStore as x}from"../../store/base.js";import"../../store/customer/index.js";import"../../store/cart/index.js";var y=function(y){function h(e){var o=y.call(this,e)||this;return o.state={hasError:!1},o.onMouseEnter=function(){var e=o.props,t=e.vm,r=e.pageComponent;t.onMouseOver(r.id)},o.onMouseLeave=function(){var e=o.props,t=e.vm,r=e.pageComponent;t.onMouseLeave(r.id)},o.onClick=function(){var e=o.props,t=e.vm,r=e.pageComponent;t.onClick(r.id)},o.ref=t.createRef(),i(o,{pageComponentPropValue:n,propValues:n,isSelected:n,isHovered:n,hasNullValue:n,rendered:n,Component:n}),o}return e(h,y),h.prototype.componentDidMount=function(){var e=this.props,o=e.vm,t=e.pageComponent;o.setComponentRef(this.ref.current,t)},h.prototype.componentDidUpdate=function(){var e=this.props,o=e.vm,t=e.pageComponent;o.setComponentRef(this.ref.current,t)},h.getDerivedStateFromError=function(e){return console.error(e),{hasError:!0}},Object.defineProperty(h.prototype,"pageComponentPropValue",{get:function(){var e=this.props,o=e.vm,t=e.pageComponent;return o.initializedPropValues.find((function(e){return e.pageComponent.id===t.id}))},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"propValues",{get:function(){var e,t,r=this.props.vm,i=null===(e=this.pageComponentPropValue)||void 0===e?void 0:e.propValues;(null===(t=r.page)||void 0===t?void 0:t.type)===s.CHECKOUT&&(i={checkout:new c({currencyCode:"TRY",currencySymbol:"₺",orderLineItems:[new v({id:"",createdAt:0,updatedAt:0,currencyCode:"TRY",currencySymbol:"₺",discount:null,discountPrice:null,finalPrice:100,options:null,originalOrderLineItemId:null,price:100,quantity:1,status:m.UNFULFILLED,statusUpdatedAt:null,stockLocationId:null,taxValue:null,unitPrice:null,finalUnitPrice:null,variant:{barcodeList:null,brand:null,categories:null,fileId:null,id:null,mainImageId:null,name:"",prices:null,productId:null,sku:null,slug:null,tagIds:null,taxValue:null,type:null,weight:null,hsCode:null,variantValues:[],baseUnit:null,unit:null,tags:null},orderedAt:0})]}),checkoutSettings:new f({createdAt:0,updatedAt:0,id:"",giftPackagePriceList:null,identityNumberRequirement:l.OPTIONAL,isAccountRequired:!1,isGiftPackageEnabled:!1,isQuickRegistrationEnabled:!1,isShowPostalCode:!0,isTermsAndConditionsDefaultChecked:null,options:null,phoneRequirement:l.OPTIONAL,postalCodeRequirement:l.OPTIONAL,showCheckoutNote:!0,showTermsAndConditionsCheckbox:!0,storefrontId:"",couponCodeRequirement:p.DEFAULT}),customizationProps:o({},i),returnPolicy:"",privacyPolicy:"",termsOfService:"",imprint:"",shippingPolicy:""});return i},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"isSelected",{get:function(){var e=this.props,o=e.vm,t=e.pageComponent;return o.selectedPageComponentId===t.id},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"isHovered",{get:function(){var e=this.props,o=e.vm,t=e.pageComponent;return o.hoveredPageComponentId===t.id},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"hasNullValue",{get:function(){var e,o=this;return!!(null===(e=this.pageComponentPropValue)||void 0===e?void 0:e.component.props.some((function(e){var t;if(e.isRequired){var r=(o.propValues||{})[e.name],i=null===(t=o.pageComponentPropValue)||void 0===t?void 0:t.component.props.find((function(o){return o.id===e.requiredPropId}));if(i){var n=(o.propValues||{})[i.name];if(i.type===u.BOOLEAN&&!n||i.type===u.CUSTOM&&n!==e.requiredEnumOptionValue)return!1}return null===r||null==r}})))},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"rendered",{get:function(){var e,i,n=this.Component,a=this.props.vm;return this.hasNullValue||this.state.hasError?t.createElement(r,{name:null===(e=this.pageComponentPropValue)||void 0===e?void 0:e.component.displayName}):t.createElement(n,o({},this.propValues,{store:x.getInstance(),settings:null===(i=a.theme)||void 0===i?void 0:i.settings,pageSpecificData:g.pageSpecificData}))},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"Component",{get:function(){var e,o=this.props,t=o.vm,r=o.pageComponent,i=j.getCurrentPageComponents();if(!i)return null;var n=i[r.componentId];return(null===(e=t.page)||void 0===e?void 0:e.type)===s.CHECKOUT&&(n=a),n},enumerable:!1,configurable:!0}),h.prototype.render=function(){var e=this;return t.createElement(d,null,(function(){var o;return e.state.hasError?t.createElement("div",{ref:e.ref,style:{position:"relative"},onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onClick:e.onClick},t.createElement(r,{name:null===(o=e.pageComponentPropValue)||void 0===o?void 0:o.component.displayName}),";"):j.getCurrentPageComponents()?t.createElement("div",{ref:e.ref,style:{position:"relative"},onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave},e.rendered):(console.error("Components for the page not found."),null)}))},h}(t.Component);export{y as ThemeEditorComponent};
1
+ import{__extends as e,__assign as o}from'./../../ext/tslib/tslib.es6.js';import*as t from"react";import r from"./error/index.js";import{makeObservable as i,computed as n}from"mobx";import a from"../checkout/index.js";import{Observer as d}from"mobx-react-lite";import"../../models/data/blog/category/index.js";import"../../models/data/blog/content/index.js";import"../../models/data/blog/meta-data/index.js";import"../../models/data/blog/tag/index.js";import"../../models/data/blog/index.js";import"../../models/data/brand/index.js";import{IkasThemeJsonPageType as s,IkasOrderLineItemStatus as m,IkasCheckoutRequirement as l,IkasCouponCodeRequirement as p,IkasThemeJsonComponentPropType as u}from"@ikas/storefront-models";import"../../models/data/campaign-offer/index.js";import"../../models/data/cart/campaign-offer/index.js";import"../../models/data/cart/index.js";import"../../models/data/category/path-item/index.js";import"../../models/data/category/index.js";import{IkasCheckout as c}from"../../models/data/checkout/index.js";import{IkasCheckoutSettings as f}from"../../models/data/checkout-settings/index.js";import"../../models/data/city/index.js";import"../../models/data/country/index.js";import"../../models/data/customer/address/region/index.js";import"../../models/data/customer/address/index.js";import"../../models/data/customer/address/ikas-localized-customer-address.js";import"../../models/data/customer/attribute/index.js";import"../../models/data/customer/review/summary/index.js";import"../../models/data/customer/review/index.js";import"../../models/data/customer/index.js";import"../../models/data/district/index.js";import"../../models/data/favorite-product/index.js";import"../../models/data/filter-category/index.js";import"../../models/data/html-meta-data/index.js";import"../../models/data/image/index.js";import"../../models/data/order/address/region/index.js";import"../../models/data/order/address/index.js";import"../../models/data/order/line-item/option/value/index.js";import"../../models/data/order/line-item/variant/value/index.js";import"../../models/data/order/line-item/variant/index.js";import{IkasOrderLineItem as v}from"../../models/data/order/line-item/index.js";import"../../models/data/order/package/index.js";import"../../models/data/order/transaction/index.js";import"../../models/data/order/index.js";import"../../models/data/payment-gateway/index.js";import"../../models/data/product/attribute-value/index.js";import"../../models/data/product/filter/index.js";import"../../models/data/product/option-set/option/index.js";import"../../models/data/product/option-set/index.js";import"../../models/data/product/stock-location/index.js";import"../../models/data/product/variant/price/index.js";import"../../models/data/product/variant/index.js";import"../../models/data/variant-type/index.js";import"../../models/data/product/index.js";import"../../models/data/raffle/index.js";import"../../models/data/shipping-zone/state/city/district/region/index.js";import"../../models/data/state/index.js";import"../../models/data/theme-json/index.js";import"../../models/data/theme-json/component/index.js";import"../../models/data/theme-json/custom-data/index.js";import"../../models/data/variant-type/variant-value/index.js";import"@ikas/localized-address";import"../../models/ui/blog-list/index.js";import"../../models/ui/blog-category-list/index.js";import"../../models/ui/brand-list/index.js";import"../../models/ui/category-list/index.js";import"../../models/ui/product-list/index.js";import"../../models/ui/product-attribute-detail/index.js";import"../../models/ui/product-attribute-list/index.js";import"../../models/ui/customer-review-list/index.js";import"../../models/ui/customer-review-summary-list/index.js";import"../../models/ui/validator/index.js";import"../../models/ui/validator/rules/index.js";import"../../models/ui/validator/form/login.js";import"../../models/ui/validator/form/address.js";import"../../models/ui/validator/form/ikas-address.js";import"../../models/ui/validator/form/register.js";import"../../models/ui/validator/form/contact-form.js";import"../../models/ui/validator/form/forgot-password.js";import"../../models/ui/validator/form/recover-password.js";import"../../models/ui/validator/form/account-info.js";import"../../models/ui/validator/form/raffle-form.js";import"../../models/ui/validator/form/customer-review.js";import"../../models/ui/raffle-list/index.js";import{IkasStorefrontConfig as j}from"@ikas/storefront-config";import{IkasPageDataInit as g}from"../../page-data-init/index.js";import{IkasBaseStore as x}from"../../store/base.js";import"../../store/customer/index.js";import"../../store/cart/index.js";var y=function(y){function h(e){var o=y.call(this,e)||this;return o.state={hasError:!1},o.onMouseEnter=function(){var e=o.props,t=e.vm,r=e.pageComponent;t.onMouseOver(r.id)},o.onMouseLeave=function(){var e=o.props,t=e.vm,r=e.pageComponent;t.onMouseLeave(r.id)},o.onClick=function(){var e=o.props,t=e.vm,r=e.pageComponent;t.onClick(r.id)},o.ref=t.createRef(),i(o,{pageComponentPropValue:n,propValues:n,isSelected:n,isHovered:n,hasNullValue:n,rendered:n,Component:n}),o}return e(h,y),h.prototype.componentDidMount=function(){var e=this.props,o=e.vm,t=e.pageComponent;o.setComponentRef(this.ref.current,t)},h.prototype.componentDidUpdate=function(){var e=this.props,o=e.vm,t=e.pageComponent;o.setComponentRef(this.ref.current,t)},h.getDerivedStateFromError=function(e){return console.error(e),{hasError:!0}},Object.defineProperty(h.prototype,"pageComponentPropValue",{get:function(){var e=this.props,o=e.vm,t=e.pageComponent;return o.initializedPropValues.find((function(e){return e.pageComponent.id===t.id}))},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"propValues",{get:function(){var e,t,r=this.props.vm,i=null===(e=this.pageComponentPropValue)||void 0===e?void 0:e.propValues;(null===(t=r.page)||void 0===t?void 0:t.type)===s.CHECKOUT&&(i={checkout:new c({currencyCode:"TRY",currencySymbol:"₺",orderLineItems:[new v({id:"",createdAt:0,updatedAt:0,currencyCode:"TRY",currencySymbol:"₺",discount:null,discountPrice:null,finalPrice:100,options:null,originalOrderLineItemId:null,price:100,quantity:1,status:m.UNFULFILLED,statusUpdatedAt:null,stockLocationId:null,taxValue:null,unitPrice:null,finalUnitPrice:null,variant:{barcodeList:null,brand:null,categories:null,fileId:null,id:null,mainImageId:null,name:"",prices:null,productId:null,sku:null,slug:null,tagIds:null,taxValue:null,type:null,weight:null,hsCode:null,variantValues:[],baseUnit:null,unit:null,tags:null,bundleProducts:null},orderedAt:0})]}),checkoutSettings:new f({createdAt:0,updatedAt:0,id:"",giftPackagePriceList:null,identityNumberRequirement:l.OPTIONAL,isAccountRequired:!1,isGiftPackageEnabled:!1,isQuickRegistrationEnabled:!1,isShowPostalCode:!0,isTermsAndConditionsDefaultChecked:null,options:null,phoneRequirement:l.OPTIONAL,postalCodeRequirement:l.OPTIONAL,showCheckoutNote:!0,showTermsAndConditionsCheckbox:!0,storefrontId:"",couponCodeRequirement:p.DEFAULT}),customizationProps:o({},i),returnPolicy:"",privacyPolicy:"",termsOfService:"",imprint:"",shippingPolicy:""});return i},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"isSelected",{get:function(){var e=this.props,o=e.vm,t=e.pageComponent;return o.selectedPageComponentId===t.id},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"isHovered",{get:function(){var e=this.props,o=e.vm,t=e.pageComponent;return o.hoveredPageComponentId===t.id},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"hasNullValue",{get:function(){var e,o=this;return!!(null===(e=this.pageComponentPropValue)||void 0===e?void 0:e.component.props.some((function(e){var t;if(e.isRequired){var r=(o.propValues||{})[e.name],i=null===(t=o.pageComponentPropValue)||void 0===t?void 0:t.component.props.find((function(o){return o.id===e.requiredPropId}));if(i){var n=(o.propValues||{})[i.name];if(i.type===u.BOOLEAN&&!n||i.type===u.CUSTOM&&n!==e.requiredEnumOptionValue)return!1}return null===r||null==r}})))},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"rendered",{get:function(){var e,i,n=this.Component,a=this.props.vm;return this.hasNullValue||this.state.hasError?t.createElement(r,{name:null===(e=this.pageComponentPropValue)||void 0===e?void 0:e.component.displayName}):t.createElement(n,o({},this.propValues,{store:x.getInstance(),settings:null===(i=a.theme)||void 0===i?void 0:i.settings,pageSpecificData:g.pageSpecificData}))},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"Component",{get:function(){var e,o=this.props,t=o.vm,r=o.pageComponent,i=j.getCurrentPageComponents();if(!i)return null;var n=i[r.componentId];return(null===(e=t.page)||void 0===e?void 0:e.type)===s.CHECKOUT&&(n=a),n},enumerable:!1,configurable:!0}),h.prototype.render=function(){var e=this;return t.createElement(d,null,(function(){var o;return e.state.hasError?t.createElement("div",{ref:e.ref,style:{position:"relative"},onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onClick:e.onClick},t.createElement(r,{name:null===(o=e.pageComponentPropValue)||void 0===o?void 0:o.component.displayName}),";"):j.getCurrentPageComponents()?t.createElement("div",{ref:e.ref,style:{position:"relative"},onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave},e.rendered):(console.error("Components for the page not found."),null)}))},h}(t.Component);export{y as ThemeEditorComponent};
@@ -0,0 +1,33 @@
1
+ import { IkasOrderLineBundleVariant as IOrderLineBundleVariant } from "@ikas/storefront-models";
2
+ import { IkasImage } from "../../../../../image";
3
+ import { IkasOrderLineVariantVariantValue } from "../../value";
4
+ import { IkasOrderLineVariantBrand } from "../../brand";
5
+ import { IkasOrderLineVariantCategory } from "../../category";
6
+ import { IkasOrderLineVariantPrice } from "../../price";
7
+ import { IkasOrderLineVariantTag } from "../../tag";
8
+ import { IkasOrderLineVariantUnit } from "../../unit";
9
+ import { IkasOrderLineBaseUnit } from "../../../base-unit";
10
+ export declare class IkasOrderLineBundleVariant implements IOrderLineBundleVariant {
11
+ barcodeList: string[] | null;
12
+ baseUnit: IkasOrderLineBaseUnit | null;
13
+ brand: IkasOrderLineVariantBrand | null;
14
+ categories: IkasOrderLineVariantCategory[] | null;
15
+ fileId: string | null;
16
+ id: string | null;
17
+ mainImageId: string | null;
18
+ name: string;
19
+ prices: IkasOrderLineVariantPrice[] | null;
20
+ productId: string | null;
21
+ sku: string | null;
22
+ slug: string | null;
23
+ tagIds: string[] | null;
24
+ tags: IkasOrderLineVariantTag[] | null;
25
+ taxValue: number | null;
26
+ type: number | null;
27
+ unit: IkasOrderLineVariantUnit | null;
28
+ weight: number | null;
29
+ hsCode: string | null;
30
+ variantValues: IkasOrderLineVariantVariantValue[] | null;
31
+ mainImage?: IkasImage | null;
32
+ constructor(data: IOrderLineBundleVariant);
33
+ }
@@ -0,0 +1 @@
1
+ import{IkasImage as i}from"../../../../../image/index.js";import{IkasOrderLineVariantVariantValue as n}from"../../value/index.js";import{IkasOrderLineVariantBrand as t}from"../../brand/index.js";import{IkasOrderLineVariantCategory as e}from"../../category/index.js";import{IkasOrderLineVariantPrice as l}from"../../price/index.js";import{IkasOrderLineVariantTag as s}from"../../tag/index.js";import{makeAutoObservable as u}from"mobx";import{IkasOrderLineVariantUnit as a}from"../../unit/index.js";import{IkasOrderLineBaseUnit as r}from"../../../base-unit/index.js";var o=function(o){var d,m,h,p;this.barcodeList=o.barcodeList||null,this.baseUnit=o.baseUnit?new r(o.baseUnit):null,this.brand=o.brand?new t(o.brand):null,this.categories=(null===(d=o.categories)||void 0===d?void 0:d.map((function(i){return new e(i)})))||null,this.fileId=o.fileId||null,this.id=o.id||null,this.mainImageId=o.mainImageId||null,this.name=o.name,this.prices=(null===(m=o.prices)||void 0===m?void 0:m.map((function(i){return new l(i)})))||null,this.productId=o.productId||null,this.sku=o.sku||null,this.slug=o.slug||null,this.tagIds=o.tagIds||null,this.tags=(null===(h=o.tags)||void 0===h?void 0:h.map((function(i){return new s(i)})))||null,this.taxValue=o.taxValue||null,this.type=o.type||null,this.unit=o.unit?new a(o.unit):null,this.weight=o.weight||null,this.hsCode=o.hsCode||null,this.variantValues=(null===(p=o.variantValues)||void 0===p?void 0:p.map((function(i){return new n(i)})))||null,this.mainImage=o.mainImageId?new i({id:o.mainImageId,isVideo:!1}):null,u(this)};export{o as IkasOrderLineBundleVariant};
@@ -0,0 +1,14 @@
1
+ import { IkasOrderLineVariantBundleProduct as IOrderLineVariantBundleProduct } from "@ikas/storefront-models";
2
+ import { IkasOrderLineBundleVariant } from "./bundle-variant";
3
+ export declare class IkasOrderLineVariantBundleProduct implements IOrderLineVariantBundleProduct {
4
+ deleted: boolean | null;
5
+ discountPrice: number | null;
6
+ discountRatio: number | null;
7
+ finalPrice: number | null;
8
+ order: number;
9
+ price: number;
10
+ quantity: number;
11
+ taxValue: number | null;
12
+ variant: IkasOrderLineBundleVariant;
13
+ constructor(data: IOrderLineVariantBundleProduct);
14
+ }
@@ -0,0 +1 @@
1
+ import{IkasOrderLineBundleVariant as i}from"./bundle-variant/index.js";var t=function(t){this.deleted=t.deleted||null,this.discountPrice=t.discountPrice||null,this.discountRatio=t.discountRatio||null,this.finalPrice=t.finalPrice||null,this.order=t.order,this.price=t.price,this.quantity=t.quantity,this.taxValue=t.taxValue||null,this.variant=new i(t.variant)};export{t as IkasOrderLineVariantBundleProduct};
@@ -7,10 +7,12 @@ import { IkasOrderLineVariantPrice } from "./price";
7
7
  import { IkasOrderLineVariantTag } from "./tag";
8
8
  import { IkasOrderLineVariantUnit } from "./unit";
9
9
  import { IkasOrderLineBaseUnit } from "../base-unit";
10
+ import { IkasOrderLineVariantBundleProduct } from "./bundle-product";
10
11
  export declare class IkasOrderLineVariant implements IOrderLineVariant {
11
12
  barcodeList: string[] | null;
12
13
  baseUnit: IkasOrderLineBaseUnit | null;
13
14
  brand: IkasOrderLineVariantBrand | null;
15
+ bundleProducts: IkasOrderLineVariantBundleProduct[] | null;
14
16
  categories: IkasOrderLineVariantCategory[] | null;
15
17
  fileId: string | null;
16
18
  id: string | null;
@@ -1 +1 @@
1
- import{IkasOrderLineItemVariantFunctions as i}from"@ikas/storefront-model-functions";import{IkasImage as n}from"../../../image/index.js";import{IkasOrderLineVariantVariantValue as t}from"./value/index.js";import{IkasOrderLineVariantBrand as l}from"./brand/index.js";import{IkasOrderLineVariantCategory as e}from"./category/index.js";import{IkasOrderLineVariantPrice as s}from"./price/index.js";import{IkasOrderLineVariantTag as u}from"./tag/index.js";import{makeAutoObservable as r}from"mobx";import{IkasOrderLineVariantUnit as a}from"./unit/index.js";import{IkasOrderLineBaseUnit as o}from"../base-unit/index.js";var d=function(){function d(i){var d,h,m,p;this.barcodeList=null,this.brand=null,this.categories=null,this.fileId=null,this.id=null,this.mainImageId=null,this.prices=null,this.productId=null,this.sku=null,this.slug=null,this.tagIds=null,this.taxValue=null,this.type=null,this.weight=null,this.hsCode=null,this.variantValues=null,this.mainImage=null,this.barcodeList=i.barcodeList||null,this.baseUnit=i.baseUnit?new o(i.baseUnit):null,this.brand=i.brand?new l(i.brand):null,this.categories=(null===(d=i.categories)||void 0===d?void 0:d.map((function(i){return new e(i)})))||null,this.fileId=i.fileId||null,this.id=i.id||null,this.mainImageId=i.mainImageId||null,this.name=i.name,this.prices=(null===(h=i.prices)||void 0===h?void 0:h.map((function(i){return new s(i)})))||null,this.productId=i.productId||null,this.sku=i.sku||null,this.slug=i.slug||null,this.tagIds=i.tagIds||null,this.tags=(null===(m=i.tags)||void 0===m?void 0:m.map((function(i){return new u(i)})))||null,this.taxValue=i.taxValue||null,this.type=i.type||null,this.unit=i.unit?new a(i.unit):null,this.weight=i.weight||null,this.hsCode=i.hsCode||null,this.variantValues=(null===(p=i.variantValues)||void 0===p?void 0:p.map((function(i){return new t(i)})))||null,this.mainImage=i.mainImageId?new n({id:i.mainImageId,isVideo:!1}):null,r(this)}return Object.defineProperty(d.prototype,"href",{get:function(){return i.getIkasOrderLineVariantHref(this)},enumerable:!1,configurable:!0}),d}();export{d as IkasOrderLineVariant};
1
+ import{IkasOrderLineItemVariantFunctions as i}from"@ikas/storefront-model-functions";import{IkasImage as n}from"../../../image/index.js";import{IkasOrderLineVariantVariantValue as t}from"./value/index.js";import{IkasOrderLineVariantBrand as l}from"./brand/index.js";import{IkasOrderLineVariantCategory as e}from"./category/index.js";import{IkasOrderLineVariantPrice as u}from"./price/index.js";import{IkasOrderLineVariantTag as s}from"./tag/index.js";import{makeAutoObservable as r}from"mobx";import{IkasOrderLineVariantUnit as a}from"./unit/index.js";import{IkasOrderLineBaseUnit as o}from"../base-unit/index.js";import{IkasOrderLineVariantBundleProduct as d}from"./bundle-product/index.js";var h=function(){function h(i){var h,m,p,c,f;this.barcodeList=null,this.brand=null,this.categories=null,this.fileId=null,this.id=null,this.mainImageId=null,this.prices=null,this.productId=null,this.sku=null,this.slug=null,this.tagIds=null,this.taxValue=null,this.type=null,this.weight=null,this.hsCode=null,this.variantValues=null,this.mainImage=null,this.barcodeList=i.barcodeList||null,this.baseUnit=i.baseUnit?new o(i.baseUnit):null,this.brand=i.brand?new l(i.brand):null,this.bundleProducts=(null===(h=i.bundleProducts)||void 0===h?void 0:h.map((function(i){return new d(i)})))||null,this.categories=(null===(m=i.categories)||void 0===m?void 0:m.map((function(i){return new e(i)})))||null,this.fileId=i.fileId||null,this.id=i.id||null,this.mainImageId=i.mainImageId||null,this.name=i.name,this.prices=(null===(p=i.prices)||void 0===p?void 0:p.map((function(i){return new u(i)})))||null,this.productId=i.productId||null,this.sku=i.sku||null,this.slug=i.slug||null,this.tagIds=i.tagIds||null,this.tags=(null===(c=i.tags)||void 0===c?void 0:c.map((function(i){return new s(i)})))||null,this.taxValue=i.taxValue||null,this.type=i.type||null,this.unit=i.unit?new a(i.unit):null,this.weight=i.weight||null,this.hsCode=i.hsCode||null,this.variantValues=(null===(f=i.variantValues)||void 0===f?void 0:f.map((function(i){return new t(i)})))||null,this.mainImage=i.mainImageId?new n({id:i.mainImageId,isVideo:!1}):null,r(this)}return Object.defineProperty(h.prototype,"href",{get:function(){return i.getIkasOrderLineVariantHref(this)},enumerable:!1,configurable:!0}),h}();export{h as IkasOrderLineVariant};
@@ -39,6 +39,7 @@ export declare class IkasProduct implements IProduct {
39
39
  selectedVariantValues: IkasVariantValue[];
40
40
  isFiltered: boolean;
41
41
  isStatic: boolean;
42
+ private bundleProductCache;
42
43
  constructor(data?: Partial<IkasProduct>);
43
44
  get hasVariant(): boolean;
44
45
  get hasStock(): boolean;
@@ -63,6 +64,7 @@ export declare class IkasProduct implements IProduct {
63
64
  page?: number;
64
65
  }) => Promise<IkasCustomerReviewList>;
65
66
  getProductOptionSet: () => Promise<boolean>;
67
+ getBundleProductsOfVariant: (variant: IkasProductVariant) => Promise<void>;
66
68
  private setOptionPrices;
67
69
  }
68
70
  export { IkasProductType };
@@ -1 +1 @@
1
- import{__spreadArray as t,__assign as e,__awaiter as i,__generator as n}from'./../../../ext/tslib/tslib.es6.js';import r from"lodash/sortBy";import{IkasCategory as a}from"../category/index.js";import{IkasProductVariant as o}from"./variant/index.js";import{IkasProductAttributeValue as s}from"./attribute-value/index.js";import{IkasProductVariantType as u}from"./variant-type/index.js";import{IkasBrand as c}from"../brand/index.js";import{IkasHTMLMetaData as l}from"../html-meta-data/index.js";import{IkasProductTag as d}from"./tag/index.js";import{IkasProductType as p}from"@ikas/storefront-models";export{IkasProductType}from"@ikas/storefront-models";import{IkasProductOptionSet as f}from"./option-set/index.js";import{makeObservable as m,observable as h,computed as v}from"mobx";import{IkasProductFunctions as g}from"@ikas/storefront-model-functions";import{IkasProductCampaign as b}from"./campaign/index.js";import{IkasStorefrontConfig as y}from"@ikas/storefront-config";import{Analytics as V}from"../../../analytics/analytics.js";import"../../../analytics/head/index.js";import{IkasBaseStore as O}from"../../../store/base.js";import P from"lodash/groupBy";import{IkasProductBaseUnit as S}from"./base-unit/index.js";import{formatCurrency as j}from"../../../utils/currency.js";import"lodash/get";import w from"../../../store/product/index.js";import{IkasCustomerReviewList as T}from"../../ui/customer-review-list/index.js";import{IkasProductStar as I}from"./star/index.js";var x=function(){function x(g){void 0===g&&(g={});var P,x,C,k=this;this.metaData=null,this.brand=null,this.tags=null,this.productOptionSetId=null,this.productOptionSet=null,this.campaigns=null,this.selectedVariantValues=[],this.isFiltered=!1,this.isStatic=!1,this.selectVariantValue=function(i,n){var r,a=k.metaData,o=k.selectedVariantValues.map((function(t){return t.variantTypeId===i.variantTypeId?i:t})),s=k.variants.find((function(t){return t.isActive&&o.every((function(e){return t.variantValues.some((function(t){return t.id===e.id}))}))}));if(s)k.selectedVariantValues=o;else{var u=k.variantTypes.findIndex((function(t){return t.variantType.id===i.variantTypeId}));if(u>0){var c=k.variantTypes.slice(0,u),l=k.selectedVariantValues.filter((function(t){return c.some((function(e){return e.variantType.id===t.variantTypeId}))})),d=t(t([],l,!0),[i],!1);s=k.variants.find((function(t){return t.isActive&&d.every((function(e){return t.variantValues.some((function(t){return t.id===e.id}))}))}))}else{var p=o.slice(0,o.length-1);(s=k.variants.find((function(t){return t.isActive&&p.every((function(e){return t.variantValues.some((function(t){return t.id===e.id}))}))})))||(s=k.variants.find((function(t){return t.isActive&&t.variantValues.some((function(t){return t.id===i.id}))})))}if(!s)return;k.selectedVariantValues=s.variantValues}var f={};new URLSearchParams(window.location.search).forEach((function(t,i){var n;f=e(e({},f),((n={})[i]=t,n))})),k.variantTypes.map((function(t){delete f[t.variantType.slug]}));var m=t(t([],k.variantTypes.map((function(t){var e=t.variantType,i=e.values.find((function(t){return k.selectedVariantValues.some((function(e){return e.id===t.id}))}));if(i)return"".concat(e.slug,"=").concat(i.slug)})),!0),Object.entries(f).map((function(t){var e=t[0],i=t[1];return"".concat(e,"=").concat(i)})),!0).filter((function(t){return!!t})).join("&");if(!n){var h="/".concat(a.slug);if(m&&(h="/".concat(a.slug,"?").concat(m)),h===window.location.pathname)return;null===(r=O.getInstance().router)||void 0===r||r.replace(h,void 0,{shallow:!1,scroll:!1})}V.productView(k)},this.getVariantUnitPriceText=function(t){var e,i,n=t.price;if(n.unitPrice&&k.baseUnit){var r=k.baseUnit.baseAmount,a=(null===(i=null===(e=k.baseUnit)||void 0===e?void 0:e.unit)||void 0===i?void 0:i.name)||"";return"".concat(j(n.unitPrice,n.currency||"",n.currencySymbol||"")," / ").concat(r&&1!==r?r:"").concat(a)}},this.getCampaigns=function(){return i(k,void 0,void 0,(function(){var t,e,i,r,a,o=this;return n(this,(function(n){switch(n.label){case 0:return t=O.getInstance(),e=t.customerStore.customer,i=e?e.customerGroupIds:null,r=this.variants.map((function(t){return t.id})),[4,w.getProductCampaigns({input:{customerGroupIds:i,salesChannelId:y.getSalesChannelId()||"",variantIds:r}})];case 1:return a=n.sent(),this.campaigns=a.data,this.campaigns?(this.campaigns.map((function(t){o.variants.map((function(e){var i;t.variantIds.some((function(t){return t===e.id}))&&(null===(i=e.campaigns)||void 0===i||i.push(t))}))})),[2,this.campaigns]):[2]}}))}))},this.getAvailableStockLocations=function(){return i(k,void 0,void 0,(function(){var t,e;return n(this,(function(i){switch(i.label){case 0:return t=this.variants.map((function(t){return t.id})),e=y.getPickupStockLocationIds(),[4,w.getVariantStockLocations({stockLocationIdList:e,variantIds:t})];case 1:return[2,i.sent().data||[]]}}))}))},this.getCustomerReviews=function(t){return i(k,void 0,void 0,(function(){var e;return n(this,(function(i){switch(i.label){case 0:return[4,(e=new T({productId:this.id,limit:null==t?void 0:t.limit,page:null==t?void 0:t.page})).getInitial()];case 1:return i.sent(),[2,e]}}))}))},this.getProductOptionSet=function(){return i(k,void 0,void 0,(function(){var t,e;return n(this,(function(i){switch(i.label){case 0:return this.productOptionSet?[2,!0]:this.productOptionSetId?[4,w.listProductOptionSet({id:{eq:this.productOptionSetId}})]:[2,!1];case 1:return(t=i.sent()).isSuccess&&(null===(e=t.data)||void 0===e?void 0:e.length)?(this.productOptionSet=t.data[0],this.setOptionPrices(),[2,!0]):[2,!1]}}))}))},this.setOptionPrices=function(){var t,e=k.variants[0];if(e){var i=e.price.currency;null===(t=k.productOptionSet)||void 0===t||t.options.forEach((function(t){var e;t.selectSettings&&t.selectSettings.values.forEach((function(t){var e;t.otherPrices&&(t.price=(null===(e=t.otherPrices.find((function(t){return t.currencyCode===i})))||void 0===e?void 0:e.price)||t.price)})),t.otherPrices&&(t.price=(null===(e=t.otherPrices.find((function(t){return t.currencyCode===i})))||void 0===e?void 0:e.price)||t.price)}))}},this.id=g.id||Date.now()+"",this.name=g.name||"",this.type=g.type||p.PHYSICAL,this.description=g.description||"",this.shortDescription=g.shortDescription||"",this.metaData=g.metaData?new l(g.metaData):null,this.brand=g.brand?new c(g.brand):null,this.categories=g.categories?g.categories.map((function(t){return new a(t)})):[],this.deleted=g.deleted||null,this.tags=g.tags?g.tags.map((function(t){return new d(t)})):[],this.variants=g.variants?g.variants.map((function(t){return new o(t)})):[],this.attributes=g.attributes?g.attributes.map((function(t){return new s(t)})):[],this.variantTypes=g.variantTypes?g.variantTypes.map((function(t){return new u(t)})):[],this.productOptionSetId=g.productOptionSetId||null,this.averageRating=null!==(P=g.averageRating)&&void 0!==P?P:null,this.reviewCount=null!==(x=g.reviewCount)&&void 0!==x?x:null,this.stars=g.stars?g.stars.map((function(t){return new I(t)})):null,this.baseUnit=g.baseUnit?new S(g.baseUnit):null,this.productOptionSet=g.productOptionSet?new f(g.productOptionSet):null,this.campaigns=(null===(C=g.campaigns)||void 0===C?void 0:C.map((function(t){return new b(t)})))||null,this.selectedVariantValues=g.selectedVariantValues||[],this.variantTypes=r(this.variantTypes,"order"),this.groupVariantsByVariantTypeId=g.groupVariantsByVariantTypeId||null,this.setOptionPrices(),m(this,{selectedVariantValues:h,isFiltered:h,isStatic:h,hasVariant:v,hasStock:v,hasValidProductOptionValues:v,href:v,productHref:v,mainVariantType:v,mainVariantValue:v,selectedVariant:v,displayedVariantTypes:v,isCustomerReviewEnabled:v,isCustomerReviewLoginRequired:v,isAddToCartEnabled:v,groupedAttributeValues:v,selectedVariantUnitPriceText:v})}return Object.defineProperty(x.prototype,"hasVariant",{get:function(){return g.hasVariant(this)},enumerable:!1,configurable:!0}),Object.defineProperty(x.prototype,"hasStock",{get:function(){return this.isStatic?this.selectedVariant.hasStock:g.hasStock(this)},enumerable:!1,configurable:!0}),Object.defineProperty(x.prototype,"hasValidProductOptionValues",{get:function(){return!this.productOptionSet||this.productOptionSet.hasValidValues},enumerable:!1,configurable:!0}),Object.defineProperty(x.prototype,"href",{get:function(){return g.getSelectedVariantHref(this,this.selectedVariantValues)},enumerable:!1,configurable:!0}),Object.defineProperty(x.prototype,"productHref",{get:function(){return this.groupVariantsByVariantTypeId||this.isFiltered?this.href:g.getProductHref(this)},enumerable:!1,configurable:!0}),Object.defineProperty(x.prototype,"mainVariantType",{get:function(){return g.getMainVariantType(this)},enumerable:!1,configurable:!0}),Object.defineProperty(x.prototype,"mainVariantValue",{get:function(){return g.getMainVariantValue(this.selectedVariantValues)},enumerable:!1,configurable:!0}),Object.defineProperty(x.prototype,"selectedVariant",{get:function(){if(!this.hasVariant)return this.variants[0];var t=this.selectedVariantValues.map((function(t){return t.id}));return this.variants.find((function(e){return e.variantValues.every((function(e){return t.includes(e.id)}))}))},enumerable:!1,configurable:!0}),Object.defineProperty(x.prototype,"displayedVariantTypes",{get:function(){return g.getDisplayedVariantTypes(this,this.selectedVariantValues)},enumerable:!1,configurable:!0}),Object.defineProperty(x.prototype,"isCustomerReviewEnabled",{get:function(){return y.isCustomerReviewEnabled()},enumerable:!1,configurable:!0}),Object.defineProperty(x.prototype,"isCustomerReviewLoginRequired",{get:function(){return y.isCustomerReviewLoginRequired()},enumerable:!1,configurable:!0}),Object.defineProperty(x.prototype,"isAddToCartEnabled",{get:function(){return this.hasValidProductOptionValues&&(this.selectedVariant.hasStock||this.selectedVariant.sellIfOutOfStock)},enumerable:!1,configurable:!0}),Object.defineProperty(x.prototype,"groupedAttributeValues",{get:function(){var t,e=P(this.attributes,"productAttributeId");return(null===(t=this.attributes)||void 0===t?void 0:t.map((function(t){var i=t.productAttributeId;if(i){var n=e[i];return(null==n?void 0:n.length)&&n[0].productAttribute?{attribute:n[0].productAttribute,values:n}:void 0}})).filter((function(t){return!!t})))||[]},enumerable:!1,configurable:!0}),Object.defineProperty(x.prototype,"selectedVariantUnitPriceText",{get:function(){return this.getVariantUnitPriceText(this.selectedVariant)},enumerable:!1,configurable:!0}),x}();export{x as IkasProduct};
1
+ import{__spreadArray as t,__assign as e,__awaiter as i,__generator as n}from'./../../../ext/tslib/tslib.es6.js';import r from"lodash/sortBy";import a from"lodash/cloneDeep";import{IkasCategory as o}from"../category/index.js";import{IkasProductVariant as s}from"./variant/index.js";import{IkasProductAttributeValue as u}from"./attribute-value/index.js";import{IkasProductVariantType as c}from"./variant-type/index.js";import{IkasBrand as d}from"../brand/index.js";import{IkasHTMLMetaData as l}from"../html-meta-data/index.js";import{IkasProductTag as p}from"./tag/index.js";import{IkasProductType as f}from"@ikas/storefront-models";export{IkasProductType}from"@ikas/storefront-models";import{IkasProductOptionSet as h}from"./option-set/index.js";import{makeObservable as m,observable as v,computed as g}from"mobx";import{IkasProductFunctions as b}from"@ikas/storefront-model-functions";import{IkasProductCampaign as y}from"./campaign/index.js";import{IkasStorefrontConfig as V}from"@ikas/storefront-config";import{Analytics as P}from"../../../analytics/analytics.js";import"../../../analytics/head/index.js";import{IkasBaseStore as O}from"../../../store/base.js";import S from"lodash/groupBy";import{IkasProductBaseUnit as w}from"./base-unit/index.js";import{formatCurrency as j}from"../../../utils/currency.js";import"lodash/get";import I from"../../../store/product/index.js";import{IkasCustomerReviewList as T}from"../../ui/customer-review-list/index.js";import{IkasProductStar as x}from"./star/index.js";var C=function(){function C(b){void 0===b&&(b={});var S,k,A,R=this;this.metaData=null,this.brand=null,this.tags=null,this.productOptionSetId=null,this.productOptionSet=null,this.campaigns=null,this.selectedVariantValues=[],this.isFiltered=!1,this.isStatic=!1,this.bundleProductCache={},this.selectVariantValue=function(i,n){var r,a=R.metaData,o=R.selectedVariantValues.map((function(t){return t.variantTypeId===i.variantTypeId?i:t})),s=R.variants.find((function(t){return t.isActive&&o.every((function(e){return t.variantValues.some((function(t){return t.id===e.id}))}))}));if(s)R.selectedVariantValues=o;else{var u=R.variantTypes.findIndex((function(t){return t.variantType.id===i.variantTypeId}));if(u>0){var c=R.variantTypes.slice(0,u),d=R.selectedVariantValues.filter((function(t){return c.some((function(e){return e.variantType.id===t.variantTypeId}))})),l=t(t([],d,!0),[i],!1);s=R.variants.find((function(t){return t.isActive&&l.every((function(e){return t.variantValues.some((function(t){return t.id===e.id}))}))}))}else{var p=o.slice(0,o.length-1);(s=R.variants.find((function(t){return t.isActive&&p.every((function(e){return t.variantValues.some((function(t){return t.id===e.id}))}))})))||(s=R.variants.find((function(t){return t.isActive&&t.variantValues.some((function(t){return t.id===i.id}))})))}if(!s)return;R.selectedVariantValues=s.variantValues}var f={};new URLSearchParams(window.location.search).forEach((function(t,i){var n;f=e(e({},f),((n={})[i]=t,n))})),R.variantTypes.map((function(t){delete f[t.variantType.slug]}));var h=t(t([],R.variantTypes.map((function(t){var e=t.variantType,i=e.values.find((function(t){return R.selectedVariantValues.some((function(e){return e.id===t.id}))}));if(i)return"".concat(e.slug,"=").concat(i.slug)})),!0),Object.entries(f).map((function(t){var e=t[0],i=t[1];return"".concat(e,"=").concat(i)})),!0).filter((function(t){return!!t})).join("&");if(!n){var m="/".concat(a.slug);if(h&&(m="/".concat(a.slug,"?").concat(h)),m===window.location.pathname)return;null===(r=O.getInstance().router)||void 0===r||r.replace(m,void 0,{shallow:!1,scroll:!1})}P.productView(R)},this.getVariantUnitPriceText=function(t){var e,i,n=t.price;if(n.unitPrice&&R.baseUnit){var r=R.baseUnit.baseAmount,a=(null===(i=null===(e=R.baseUnit)||void 0===e?void 0:e.unit)||void 0===i?void 0:i.name)||"";return"".concat(j(n.unitPrice,n.currency||"",n.currencySymbol||"")," / ").concat(r&&1!==r?r:"").concat(a)}},this.getCampaigns=function(){return i(R,void 0,void 0,(function(){var t,e,i,r,a,o=this;return n(this,(function(n){switch(n.label){case 0:return t=O.getInstance(),e=t.customerStore.customer,i=e?e.customerGroupIds:null,r=this.variants.map((function(t){return t.id})),[4,I.getProductCampaigns({input:{customerGroupIds:i,salesChannelId:V.getSalesChannelId()||"",variantIds:r}})];case 1:return a=n.sent(),this.campaigns=a.data,this.campaigns?(this.campaigns.map((function(t){o.variants.map((function(e){var i;t.variantIds.some((function(t){return t===e.id}))&&(null===(i=e.campaigns)||void 0===i||i.push(t))}))})),[2,this.campaigns]):[2]}}))}))},this.getAvailableStockLocations=function(){return i(R,void 0,void 0,(function(){var t,e;return n(this,(function(i){switch(i.label){case 0:return t=this.variants.map((function(t){return t.id})),e=V.getPickupStockLocationIds(),[4,I.getVariantStockLocations({stockLocationIdList:e,variantIds:t})];case 1:return[2,i.sent().data||[]]}}))}))},this.getCustomerReviews=function(t){return i(R,void 0,void 0,(function(){var e;return n(this,(function(i){switch(i.label){case 0:return[4,(e=new T({productId:this.id,limit:null==t?void 0:t.limit,page:null==t?void 0:t.page})).getInitial()];case 1:return i.sent(),[2,e]}}))}))},this.getProductOptionSet=function(){return i(R,void 0,void 0,(function(){var t,e;return n(this,(function(i){switch(i.label){case 0:return this.productOptionSet?[2,!0]:this.productOptionSetId?[4,I.listProductOptionSet({id:{eq:this.productOptionSetId}})]:[2,!1];case 1:return(t=i.sent()).isSuccess&&(null===(e=t.data)||void 0===e?void 0:e.length)?(this.productOptionSet=t.data[0],this.setOptionPrices(),[2,!0]):[2,!1]}}))}))},this.getBundleProductsOfVariant=function(t){return i(R,void 0,void 0,(function(){var e,i,r,o,s,u,c=this;return n(this,(function(n){switch(n.label){case 0:return(null==(e=null===(r=t.bundleSettings)||void 0===r?void 0:r.products.map((function(t){return t.productId})).filter((function(t){return-1===Object.keys(c.bundleProductCache).indexOf(t)})))?void 0:e.length)?[4,I.searchProducts({input:{productIdList:e}})]:[3,2];case 1:(i=n.sent()).isSuccess&&(null===(s=null===(o=i.data)||void 0===o?void 0:o.data)||void 0===s||s.forEach((function(t){c.bundleProductCache[t.id]=t}))),n.label=2;case 2:return null===(u=t.bundleSettings)||void 0===u||u.products.forEach((function(t){var e=c.bundleProductCache[t.productId];t.setProduct(new C(a(e)))})),[2]}}))}))},this.setOptionPrices=function(){var t,e=R.variants[0];if(e){var i=e.price.currency;null===(t=R.productOptionSet)||void 0===t||t.options.forEach((function(t){var e;t.selectSettings&&t.selectSettings.values.forEach((function(t){var e;t.otherPrices&&(t.price=(null===(e=t.otherPrices.find((function(t){return t.currencyCode===i})))||void 0===e?void 0:e.price)||t.price)})),t.otherPrices&&(t.price=(null===(e=t.otherPrices.find((function(t){return t.currencyCode===i})))||void 0===e?void 0:e.price)||t.price)}))}},this.id=b.id||Date.now()+"",this.name=b.name||"",this.type=b.type||f.PHYSICAL,this.description=b.description||"",this.shortDescription=b.shortDescription||"",this.metaData=b.metaData?new l(b.metaData):null,this.brand=b.brand?new d(b.brand):null,this.categories=b.categories?b.categories.map((function(t){return new o(t)})):[],this.deleted=b.deleted||null,this.tags=b.tags?b.tags.map((function(t){return new p(t)})):[],this.variants=b.variants?b.variants.map((function(t){return new s(t)})):[],this.attributes=b.attributes?b.attributes.map((function(t){return new u(t)})):[],this.variantTypes=b.variantTypes?b.variantTypes.map((function(t){return new c(t)})):[],this.productOptionSetId=b.productOptionSetId||null,this.averageRating=null!==(S=b.averageRating)&&void 0!==S?S:null,this.reviewCount=null!==(k=b.reviewCount)&&void 0!==k?k:null,this.stars=b.stars?b.stars.map((function(t){return new x(t)})):null,this.baseUnit=b.baseUnit?new w(b.baseUnit):null,this.productOptionSet=b.productOptionSet?new h(b.productOptionSet):null,this.campaigns=(null===(A=b.campaigns)||void 0===A?void 0:A.map((function(t){return new y(t)})))||null,this.selectedVariantValues=b.selectedVariantValues||[],this.variantTypes=r(this.variantTypes,"order"),this.groupVariantsByVariantTypeId=b.groupVariantsByVariantTypeId||null,this.setOptionPrices(),m(this,{selectedVariantValues:v,isFiltered:v,isStatic:v,hasVariant:g,hasStock:g,hasValidProductOptionValues:g,href:g,productHref:g,mainVariantType:g,mainVariantValue:g,selectedVariant:g,displayedVariantTypes:g,isCustomerReviewEnabled:g,isCustomerReviewLoginRequired:g,isAddToCartEnabled:g,groupedAttributeValues:g,selectedVariantUnitPriceText:g})}return Object.defineProperty(C.prototype,"hasVariant",{get:function(){return b.hasVariant(this)},enumerable:!1,configurable:!0}),Object.defineProperty(C.prototype,"hasStock",{get:function(){return this.isStatic?this.selectedVariant.hasStock:b.hasStock(this)},enumerable:!1,configurable:!0}),Object.defineProperty(C.prototype,"hasValidProductOptionValues",{get:function(){return!this.productOptionSet||this.productOptionSet.hasValidValues},enumerable:!1,configurable:!0}),Object.defineProperty(C.prototype,"href",{get:function(){return b.getSelectedVariantHref(this,this.selectedVariantValues)},enumerable:!1,configurable:!0}),Object.defineProperty(C.prototype,"productHref",{get:function(){return this.groupVariantsByVariantTypeId||this.isFiltered?this.href:b.getProductHref(this)},enumerable:!1,configurable:!0}),Object.defineProperty(C.prototype,"mainVariantType",{get:function(){return b.getMainVariantType(this)},enumerable:!1,configurable:!0}),Object.defineProperty(C.prototype,"mainVariantValue",{get:function(){return b.getMainVariantValue(this.selectedVariantValues)},enumerable:!1,configurable:!0}),Object.defineProperty(C.prototype,"selectedVariant",{get:function(){if(!this.hasVariant)return this.variants[0];var t=this.selectedVariantValues.map((function(t){return t.id}));return this.variants.find((function(e){return e.variantValues.every((function(e){return t.includes(e.id)}))}))},enumerable:!1,configurable:!0}),Object.defineProperty(C.prototype,"displayedVariantTypes",{get:function(){return b.getDisplayedVariantTypes(this,this.selectedVariantValues)},enumerable:!1,configurable:!0}),Object.defineProperty(C.prototype,"isCustomerReviewEnabled",{get:function(){return V.isCustomerReviewEnabled()},enumerable:!1,configurable:!0}),Object.defineProperty(C.prototype,"isCustomerReviewLoginRequired",{get:function(){return V.isCustomerReviewLoginRequired()},enumerable:!1,configurable:!0}),Object.defineProperty(C.prototype,"isAddToCartEnabled",{get:function(){return this.hasValidProductOptionValues&&(this.selectedVariant.hasStock||this.selectedVariant.sellIfOutOfStock)},enumerable:!1,configurable:!0}),Object.defineProperty(C.prototype,"groupedAttributeValues",{get:function(){var t,e=S(this.attributes,"productAttributeId");return(null===(t=this.attributes)||void 0===t?void 0:t.map((function(t){var i=t.productAttributeId;if(i){var n=e[i];return(null==n?void 0:n.length)&&n[0].productAttribute?{attribute:n[0].productAttribute,values:n}:void 0}})).filter((function(t){return!!t})))||[]},enumerable:!1,configurable:!0}),Object.defineProperty(C.prototype,"selectedVariantUnitPriceText",{get:function(){return this.getVariantUnitPriceText(this.selectedVariant)},enumerable:!1,configurable:!0}),C}();export{C as IkasProduct};
@@ -0,0 +1,18 @@
1
+ import { IkasBundleProduct as IBundleProduct } from "@ikas/storefront-models";
2
+ import { IkasProduct } from "../../../";
3
+ export declare class IkasBundleProduct implements IBundleProduct {
4
+ addToBundleBasePrice: boolean | null;
5
+ discountRatio: number | null;
6
+ filteredVariantIds: string[];
7
+ maxQuantity: number | null;
8
+ minQuantity: number | null;
9
+ order: number;
10
+ productId: string;
11
+ quantity: number;
12
+ product: IkasProduct | null;
13
+ private _initialQuantity;
14
+ constructor(data?: Partial<IBundleProduct>);
15
+ get isQuantityEditable(): boolean;
16
+ setProduct: (product: IkasProduct) => void;
17
+ setQuantity: (quantity: number) => void;
18
+ }
@@ -0,0 +1 @@
1
+ var t=function(){function t(t){void 0===t&&(t={});var i=this;this.product=null,this._initialQuantity=null,this.setProduct=function(t){t.variants=t.variants.filter((function(t){return!i.filteredVariantIds.includes(t.id)})),i.product=t,i.product.selectedVariantValues=i.product.variants[0].variantValues,i.quantity=i._initialQuantity||0},this.setQuantity=function(t){null!==i.minQuantity&&t<i.minQuantity?i.quantity=i.minQuantity:null!==i.maxQuantity&&t>i.maxQuantity?i.quantity=i.maxQuantity:i.quantity=t},this.addToBundleBasePrice=t.addToBundleBasePrice||null,this.discountRatio=t.discountRatio||null,this.filteredVariantIds=t.filteredVariantIds||[],this.maxQuantity=t.maxQuantity||null,this.minQuantity=t.minQuantity||null,this.order=t.order||0,this.productId=t.productId||"",this.quantity=t.quantity||0,this._initialQuantity=this.quantity}return Object.defineProperty(t.prototype,"isQuantityEditable",{get:function(){return null!==this.maxQuantity||null!==this.minQuantity},enumerable:!1,configurable:!0}),t}();export{t as IkasBundleProduct};
@@ -0,0 +1,8 @@
1
+ import { IkasBundleSettings as IBundleSettings } from "@ikas/storefront-models";
2
+ import { IkasBundleProduct } from "./bundle-product";
3
+ export declare class IkasBundleSettings implements IBundleSettings {
4
+ maxBundleQuantity: number | null;
5
+ minBundleQuantity: number | null;
6
+ products: IkasBundleProduct[];
7
+ constructor(data?: Partial<IBundleSettings>);
8
+ }
@@ -0,0 +1 @@
1
+ import{IkasBundleProduct as n}from"./bundle-product/index.js";var t=function(t){void 0===t&&(t={}),this.maxBundleQuantity=t.maxBundleQuantity||null,this.minBundleQuantity=t.minBundleQuantity||null,this.products=t.products?t.products.map((function(t){return new n(t)})):[]};export{t as IkasBundleSettings};
@@ -3,12 +3,14 @@ import { IkasVariantValue } from "../../variant-type/variant-value";
3
3
  import { IkasProductAttributeMap, IkasProductAttributeValue } from "../attribute-value";
4
4
  import { IkasProductCampaign } from "../campaign";
5
5
  import { IkasProductImage } from "../image";
6
+ import { IkasBundleSettings } from "./bundle-settings";
6
7
  import { IkasProductVariant as IProductVariant } from "@ikas/storefront-models";
7
8
  import { IkasProductVariantUnit } from "./unit";
8
9
  export declare class IkasProductVariant implements IProductVariant {
9
10
  id: string;
10
11
  sku: string | null;
11
12
  barcodeList: string[] | null;
13
+ bundleSettings: IkasBundleSettings | null;
12
14
  variantValues: IkasVariantValue[];
13
15
  attributes: IkasProductAttributeValue[];
14
16
  price: IkasProductPrice;
@@ -20,7 +22,7 @@ export declare class IkasProductVariant implements IProductVariant {
20
22
  campaigns?: IkasProductCampaign[];
21
23
  unit: IkasProductVariantUnit | null;
22
24
  private _backInStockReminderSaved;
23
- constructor(data?: Partial<IProductVariant>);
25
+ constructor(data?: Partial<IkasProductVariant>);
24
26
  get mainImage(): IkasProductImage | undefined;
25
27
  get hasStock(): boolean;
26
28
  get isBackInStockEnabled(): boolean;
@@ -1 +1 @@
1
- import{__awaiter as t,__generator as e}from'./../../../../ext/tslib/tslib.es6.js';import{IkasProductPrice as i}from"./price/index.js";import{IkasVariantValue as r}from"../../variant-type/variant-value/index.js";import{IkasProductAttributeValue as n}from"../attribute-value/index.js";import{IkasProductImage as o}from"../image/index.js";import{IkasProductVariantFunctions as a}from"@ikas/storefront-model-functions";import{IkasStorefrontConfig as s}from"@ikas/storefront-config";import{saveProductBackInStockRemind as u,listProductBackInStockRemind as c}from"@ikas/storefront-api";import d from"lodash/groupBy";import p from"lodash/sortBy";import{IkasProductVariantUnit as m}from"./unit/index.js";var f=function(){function f(t){void 0===t&&(t={}),this._backInStockReminderSaved=!1,this.id=t.id||Date.now()+"",this.productId=t.productId||"",this.sku=t.sku||null,this.barcodeList=t.barcodeList||[],this.variantValues=t.variantValues?t.variantValues.map((function(t){return new r(t)})):[],this.images=t.images?t.images.map((function(t){return new o(t)})):[],this.attributes=t.attributes?t.attributes.map((function(t){return new n(t)})):[],this.price=t.price?new i(t.price):new i,this.stock=t.stock||0,this.isActive=void 0===t.isActive||t.isActive,this.campaigns=t.campaigns||[],this.unit=t.unit?new m(t.unit):null,this.sellIfOutOfStock=t.sellIfOutOfStock||!1,this.images=p(this.images,"order")}return Object.defineProperty(f.prototype,"mainImage",{get:function(){var t=a.getMainImage(this);return t?new o(t):void 0},enumerable:!1,configurable:!0}),Object.defineProperty(f.prototype,"hasStock",{get:function(){return a.hasStock(this)},enumerable:!1,configurable:!0}),Object.defineProperty(f.prototype,"isBackInStockEnabled",{get:function(){return s.isBackInStockEnabled()},enumerable:!1,configurable:!0}),Object.defineProperty(f.prototype,"isBackInStockCustomerLoginRequired",{get:function(){return s.isCustomerLoginRequiredForBackInStock()},enumerable:!1,configurable:!0}),Object.defineProperty(f.prototype,"isBackInStockReminderSaved",{get:function(){return this._backInStockReminderSaved},enumerable:!1,configurable:!0}),Object.defineProperty(f.prototype,"groupedAttributeValues",{get:function(){var t,e=d(this.attributes,"productAttributeId");return(null===(t=this.attributes)||void 0===t?void 0:t.map((function(t){var i=t.productAttributeId;if(i){var r=e[i];return(null==r?void 0:r.length)&&r[0].productAttribute?{attribute:r[0].productAttribute,values:r}:void 0}})).filter((function(t){return!!t})))||[]},enumerable:!1,configurable:!0}),f.prototype.saveBackInStockReminder=function(i){var r;return t(this,void 0,void 0,(function(){var t;return e(this,(function(e){switch(e.label){case 0:return[4,c({email:{eq:i},productId:{eq:this.productId},variantId:{eq:this.id}})];case 1:return(t=e.sent())&&(null===(r=t.data)||void 0===r?void 0:r.length)?(this._backInStockReminderSaved=!0,[2,!1]):[3,2];case 2:return[4,u({input:{email:i,productId:this.productId,variantId:this.id}})];case 3:return e.sent().isSuccess?(this._backInStockReminderSaved=!0,[2,!0]):(this._backInStockReminderSaved=!1,[2,!1]);case 4:return[2]}}))}))},f}();export{f as IkasProductVariant};
1
+ import{__awaiter as t,__generator as e}from'./../../../../ext/tslib/tslib.es6.js';import{IkasProductPrice as i}from"./price/index.js";import{IkasVariantValue as r}from"../../variant-type/variant-value/index.js";import{IkasProductAttributeValue as n}from"../attribute-value/index.js";import{IkasProductImage as o}from"../image/index.js";import{IkasBundleSettings as a}from"./bundle-settings/index.js";import{IkasProductVariantFunctions as s}from"@ikas/storefront-model-functions";import{IkasStorefrontConfig as u}from"@ikas/storefront-config";import{saveProductBackInStockRemind as c,listProductBackInStockRemind as d}from"@ikas/storefront-api";import m from"lodash/groupBy";import p from"lodash/sortBy";import{IkasProductVariantUnit as l}from"./unit/index.js";var f=function(){function f(t){void 0===t&&(t={}),this._backInStockReminderSaved=!1,this.id=t.id||Date.now()+"",this.productId=t.productId||"",this.sku=t.sku||null,this.barcodeList=t.barcodeList||[],this.bundleSettings=t.bundleSettings?new a(t.bundleSettings):null,this.variantValues=t.variantValues?t.variantValues.map((function(t){return new r(t)})):[],this.images=t.images?t.images.map((function(t){return new o(t)})):[],this.attributes=t.attributes?t.attributes.map((function(t){return new n(t)})):[],this.price=t.price?new i(t.price):new i,this.stock=t.stock||0,this.isActive=void 0===t.isActive||t.isActive,this.campaigns=t.campaigns||[],this.unit=t.unit?new l(t.unit):null,this.sellIfOutOfStock=t.sellIfOutOfStock||!1,this.images=p(this.images,"order")}return Object.defineProperty(f.prototype,"mainImage",{get:function(){var t=s.getMainImage(this);return t?new o(t):void 0},enumerable:!1,configurable:!0}),Object.defineProperty(f.prototype,"hasStock",{get:function(){return s.hasStock(this)},enumerable:!1,configurable:!0}),Object.defineProperty(f.prototype,"isBackInStockEnabled",{get:function(){return u.isBackInStockEnabled()},enumerable:!1,configurable:!0}),Object.defineProperty(f.prototype,"isBackInStockCustomerLoginRequired",{get:function(){return u.isCustomerLoginRequiredForBackInStock()},enumerable:!1,configurable:!0}),Object.defineProperty(f.prototype,"isBackInStockReminderSaved",{get:function(){return this._backInStockReminderSaved},enumerable:!1,configurable:!0}),Object.defineProperty(f.prototype,"groupedAttributeValues",{get:function(){var t,e=m(this.attributes,"productAttributeId");return(null===(t=this.attributes)||void 0===t?void 0:t.map((function(t){var i=t.productAttributeId;if(i){var r=e[i];return(null==r?void 0:r.length)&&r[0].productAttribute?{attribute:r[0].productAttribute,values:r}:void 0}})).filter((function(t){return!!t})))||[]},enumerable:!1,configurable:!0}),f.prototype.saveBackInStockReminder=function(i){var r;return t(this,void 0,void 0,(function(){var t;return e(this,(function(e){switch(e.label){case 0:return[4,d({email:{eq:i},productId:{eq:this.productId},variantId:{eq:this.id}})];case 1:return(t=e.sent())&&(null===(r=t.data)||void 0===r?void 0:r.length)?(this._backInStockReminderSaved=!0,[2,!1]):[3,2];case 2:return[4,c({input:{email:i,productId:this.productId,variantId:this.id}})];case 3:return e.sent().isSuccess?(this._backInStockReminderSaved=!0,[2,!0]):(this._backInStockReminderSaved=!1,[2,!1]);case 4:return[2]}}))}))},f}();export{f as IkasProductVariant};
@@ -18,6 +18,7 @@ export declare class IkasCartStore {
18
18
  removeCart: () => void;
19
19
  waitUntilInitialized: () => Promise<unknown>;
20
20
  findExistingItem: (variant: IkasProductVariant, product: IkasProduct) => IkasOrderLineItem | undefined;
21
+ private isSameBundleItem;
21
22
  saveCouponCode: (couponCode?: string | null) => Promise<IkasCartOperationResult>;
22
23
  removeCouponCode: () => Promise<IkasCartOperationResult>;
23
24
  saveCart: (cart: IkasCart) => Promise<IkasCartOperationResult>;
@@ -1 +1 @@
1
- import{__awaiter as t,__generator as e}from'./../../ext/tslib/tslib.es6.js';import{makeAutoObservable as i}from"mobx";import r from"./api.js";import"../../models/data/blog/category/index.js";import"../../models/data/blog/content/index.js";import"../../models/data/blog/meta-data/index.js";import"../../models/data/blog/tag/index.js";import"../../models/data/blog/index.js";import"../../models/data/brand/index.js";import{IkasCustomerEmailSubscriptionStatus as o}from"@ikas/storefront-models";import"../../models/data/campaign-offer/index.js";import"../../models/data/cart/campaign-offer/index.js";import"../../models/data/cart/index.js";import"../../models/data/category/path-item/index.js";import"../../models/data/category/index.js";import"../../models/data/checkout/index.js";import"../../models/data/checkout-settings/index.js";import"../../models/data/city/index.js";import"../../models/data/country/index.js";import"../../models/data/customer/address/region/index.js";import"../../models/data/customer/address/index.js";import"../../models/data/customer/address/ikas-localized-customer-address.js";import"../../models/data/customer/attribute/index.js";import"../../models/data/customer/review/summary/index.js";import"../../models/data/customer/review/index.js";import"../../models/data/customer/index.js";import"../../models/data/district/index.js";import"../../models/data/favorite-product/index.js";import"../../models/data/filter-category/index.js";import"../../models/data/html-meta-data/index.js";import"../../models/data/image/index.js";import"../../models/data/order/address/region/index.js";import"../../models/data/order/address/index.js";import"../../models/data/order/line-item/option/value/index.js";import"../../models/data/order/line-item/variant/value/index.js";import"../../models/data/order/line-item/variant/index.js";import"../../models/data/order/line-item/index.js";import"../../models/data/order/package/index.js";import"../../models/data/order/transaction/index.js";import"../../models/data/order/index.js";import"../../models/data/payment-gateway/index.js";import"../../models/data/product/attribute-value/index.js";import"../../models/data/product/filter/index.js";import"../../models/data/product/option-set/option/index.js";import"../../models/data/product/option-set/index.js";import"../../models/data/product/stock-location/index.js";import"../../models/data/product/variant/price/index.js";import"../../models/data/product/variant/index.js";import"../../models/data/variant-type/index.js";import"../../models/data/product/index.js";import"../../models/data/raffle/index.js";import"../../models/data/shipping-zone/state/city/district/region/index.js";import"../../models/data/state/index.js";import"../../models/data/theme-json/index.js";import"../../models/data/theme-json/component/index.js";import"../../models/data/theme-json/custom-data/index.js";import"../../models/data/variant-type/variant-value/index.js";import"@ikas/localized-address";import{IkasStorefrontConfig as a}from"@ikas/storefront-config";import{Analytics as s}from"../../analytics/analytics.js";import"../../analytics/head/index.js";import{SaveCartInput as n}from"@ikas/storefront-api";import{getCookieValue as d}from"../../utils/helper.js";var c,u="cartId",l=function(){function u(u){var l=this;this.cart=null,this._isLoadingCart=!1,this._isCartLoadFinished=!1,this.addItem=function(i,o,n){return void 0===n&&(n=1),t(l,void 0,void 0,(function(){var t,u,l,m,p,h,f,v,I,g;return e(this,(function(e){switch(e.label){case 0:return e.trys.push([0,5,,6]),o.hasValidProductOptionValues?i.hasStock||i.sellIfOutOfStock?[4,this.beforeCartOperationCheck()]:[2,{success:!1,validationError:c.INSUFFICIENT_STOCK}]:[2,{success:!1,validationError:c.INVALID_PRODUCT_OPTION_VALUES}];case 1:return e.sent(),this.cart&&(t=this.findExistingItem(i,o))?(null===(v=o.productOptionSet)||void 0===v||v.initOptionValues(),[2,this.changeItemQuantity(t,t.quantity+1)]):(u=this.getOptionValues(o),l=(null===(I=this.cart)||void 0===I?void 0:I.id)||localStorage.getItem("cartId"),[4,r.addItemToCart({input:{cartId:l,item:{id:null,quantity:n,variant:{id:i.id,name:o.name}},options:u.length?u:null,priceListId:a.getPriceListId()||null,salesChannelId:a.getSalesChannelId(),storefrontThemeId:a.getStorefrontThemeId(),metadata:{_fbp:d("_fbp"),_fbc:d("_fbc")}}})]);case 2:return(m=e.sent()).isSuccess&&m.data?[4,this.setCart(m.data)]:[3,4];case 3:e.sent(),e.label=4;case 4:return this.cart&&(p="".concat(this.cart.id,"-").concat(this.cart.updatedAt),(h=this.cart.items.find((function(t){return t.variant.id===i.id})))&&s.addToCart(h,n,p,this.cart)),null===(g=o.productOptionSet)||void 0===g||g.initOptionValues(),[2,{success:m.isSuccess,response:m}];case 5:return f=e.sent(),console.log(f),[2,{success:!1}];case 6:return[2]}}))}))},this.changeItemQuantity=function(i,o){return t(l,void 0,void 0,(function(){var t,n,c,u,l;return e(this,(function(e){switch(e.label){case 0:return e.trys.push([0,5,,6]),[4,this.beforeCartOperationCheck()];case 1:return e.sent(),[4,r.addItemToCart({input:{cartId:(null===(l=this.cart)||void 0===l?void 0:l.id)||null,item:{id:i.id,quantity:o,variant:{id:i.variant.id,name:i.variant.name}},options:this.createCartLineOptions(i),priceListId:a.getPriceListId()||null,salesChannelId:a.getSalesChannelId(),storefrontThemeId:a.getStorefrontThemeId(),metadata:{_fbp:d("_fbp"),_fbc:d("_fbc")}}})];case 2:return(t=e.sent()).isSuccess&&t.data?[4,this.setCart(t.data)]:[3,4];case 3:e.sent(),e.label=4;case 4:return this.removeCardIfEmpty(),this.cart&&(n="".concat(this.cart.id,"-").concat(this.cart.updatedAt),(c=i.quantity)>o?s.removeFromCart(i,c-o,this.cart):s.addToCart(i,o-c,n,this.cart)),[2,{success:t.isSuccess,response:t}];case 5:return u=e.sent(),console.log(u),[2,{success:!1}];case 6:return[2]}}))}))},this.removeItem=function(i){return t(l,void 0,void 0,(function(){return e(this,(function(t){switch(t.label){case 0:return[4,this.changeItemQuantity(i,0)];case 1:return[2,t.sent()]}}))}))},this.removeCart=function(){localStorage.removeItem("cartId"),l.cart=void 0},this.waitUntilInitialized=function(){return new Promise((function(t){var e=setInterval((function(){l.isCartLoadFinished&&(clearInterval(e),t(null))}),100)}))},this.findExistingItem=function(t,e){var i,r,o,a,s;if(!e.productOptionSetId)return null===(i=l.cart)||void 0===i?void 0:i.orderLineItems.find((function(e){return e.variant.id===t.id}));for(var n=l.getOptionValues(e),d=(null===(r=l.cart)||void 0===r?void 0:r.orderLineItems.filter((function(e){var i;return e.variant.id===t.id&&(null===(i=e.options)||void 0===i?void 0:i.length)===n.length})))||[],c=0,u=d;c<u.length;c++){var m=u[c];if(m.options){for(var p=!0,h=function(t){var i=t.values.map((function(t){return t.value})),r=null===(s=null===(a=null===(o=e.productOptionSet)||void 0===o?void 0:o.options)||void 0===a?void 0:a.find((function(e){return e.id===t.productOptionId})))||void 0===s?void 0:s.values;if(!(p=p&&i.length===(null==r?void 0:r.length)&&i.every((function(t){return null==r?void 0:r.includes(t)}))))return"break"},f=0,v=m.options;f<v.length;f++){if("break"===h(v[f]))break}if(p)return m}}},this.saveCouponCode=function(i){return t(l,void 0,void 0,(function(){var t;return e(this,(function(e){switch(e.label){case 0:return this.cart?[4,r.saveCartCouponCode({cartId:this.cart.id,couponCode:i})]:[2,{success:!1,validationError:c.EMPTY_CART}];case 1:return(t=e.sent()).isSuccess&&t.data&&(this.cart=t.data),[2,{success:t.isSuccess,response:t}]}}))}))},this.removeCouponCode=function(){return t(l,void 0,void 0,(function(){return e(this,(function(t){return[2,this.saveCouponCode(null)]}))}))},this.saveCart=function(i){return t(l,void 0,void 0,(function(){var t,a;return e(this,(function(e){switch(e.label){case 0:return(t=new n(i)).customer&&this.baseStore.customerStore.customer&&(t.customer.notificationsAccepted=this.baseStore.customerStore.customer.subscriptionStatus===o.SUBSCRIBED),[4,r.saveCart({input:t})];case 1:return[2,{success:(a=e.sent()).isSuccess,response:a}]}}))}))},this.removeCardIfEmpty=function(){var t;0===(null===(t=l.cart)||void 0===t?void 0:t.itemCount)&&l.removeCart()},this.getCart=function(){return t(l,void 0,void 0,(function(){var t,i,o,a,s,n;return e(this,(function(e){switch(e.label){case 0:if(!("undefined"!=typeof localStorage))return[2];e.label=1;case 1:return e.trys.push([1,6,7,8]),this._isLoadingCart=!0,t=null===(s=this.baseStore.customerStore.customer)||void 0===s?void 0:s.id,(i=(null===(n=this.cart)||void 0===n?void 0:n.id)||localStorage.getItem("cartId"))||t?[4,r.getCartById({id:i})]:[2];case 2:return(o=e.sent()).isSuccess&&o.data?[4,this.setCart(o.data)]:[3,4];case 3:return e.sent(),[3,5];case 4:this.removeCart(),e.label=5;case 5:return[3,8];case 6:return a=e.sent(),console.log(a),[3,8];case 7:return this._isLoadingCart=!1,this._isCartLoadFinished=!0,[7];case 8:return[2]}}))}))},this.setCart=function(i){return t(l,void 0,void 0,(function(){return e(this,(function(t){return localStorage.setItem("cartId",i.id),this.cart=i,[2]}))}))},this.beforeCartOperationCheck=function(){return t(l,void 0,void 0,(function(){var t;return e(this,(function(e){switch(e.label){case 0:return t=localStorage.getItem("cartId"),!this.cart||t?[3,1]:(this.removeCart(),[3,3]);case 1:return this.cart||!t?[3,3]:[4,this.getCart()];case 2:e.sent(),e.label=3;case 3:return[2]}}))}))},this.createCartLineOptions=function(t){if(t&&t.options){for(var e=[],i=0,r=t.options;i<r.length;i++){var o=r[i],a={productOptionId:o.productOptionId,productOptionsSetId:o.productOptionsSetId,values:o.values.map((function(t){return t.value}))};e.push(a)}return e}return null},this.getOptionValues=function(t){var e,i=[];return null===(e=t.productOptionSet)||void 0===e||e.options.forEach((function(t){t.values.length&&i.push({productOptionId:t.id,productOptionsSetId:t.productOptionSetId,values:t.values})})),i},this.baseStore=u,i(this)}return Object.defineProperty(u.prototype,"isLoadingCart",{get:function(){return this._isLoadingCart},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"isCartLoadFinished",{get:function(){return this._isCartLoadFinished},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"checkoutId",{get:function(){var t;return null===(t=this.cart)||void 0===t?void 0:t.id},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"checkoutUrl",{get:function(){if(this.checkoutId)return"/checkout?id=".concat(this.checkoutId,"&step=info")},enumerable:!1,configurable:!0}),u}();!function(t){t.INSUFFICIENT_STOCK="INSUFFICIENT_STOCK",t.INVALID_PRODUCT_OPTION_VALUES="INVALID_PRODUCT_OPTION_VALUES",t.EMPTY_CART="EMPTY_CART"}(c||(c={}));export{u as CART_LS_KEY,c as IkasCartOperationValidationError,l as IkasCartStore};
1
+ import{__awaiter as t,__generator as e}from'./../../ext/tslib/tslib.es6.js';import{makeAutoObservable as i}from"mobx";import r from"./api.js";import"../../models/data/blog/category/index.js";import"../../models/data/blog/content/index.js";import"../../models/data/blog/meta-data/index.js";import"../../models/data/blog/tag/index.js";import"../../models/data/blog/index.js";import"../../models/data/brand/index.js";import{IkasCustomerEmailSubscriptionStatus as o}from"@ikas/storefront-models";import"../../models/data/campaign-offer/index.js";import"../../models/data/cart/campaign-offer/index.js";import"../../models/data/cart/index.js";import"../../models/data/category/path-item/index.js";import"../../models/data/category/index.js";import"../../models/data/checkout/index.js";import"../../models/data/checkout-settings/index.js";import"../../models/data/city/index.js";import"../../models/data/country/index.js";import"../../models/data/customer/address/region/index.js";import"../../models/data/customer/address/index.js";import"../../models/data/customer/address/ikas-localized-customer-address.js";import"../../models/data/customer/attribute/index.js";import"../../models/data/customer/review/summary/index.js";import"../../models/data/customer/review/index.js";import"../../models/data/customer/index.js";import"../../models/data/district/index.js";import"../../models/data/favorite-product/index.js";import"../../models/data/filter-category/index.js";import"../../models/data/html-meta-data/index.js";import"../../models/data/image/index.js";import"../../models/data/order/address/region/index.js";import"../../models/data/order/address/index.js";import"../../models/data/order/line-item/option/value/index.js";import"../../models/data/order/line-item/variant/value/index.js";import"../../models/data/order/line-item/variant/index.js";import"../../models/data/order/line-item/index.js";import"../../models/data/order/package/index.js";import"../../models/data/order/transaction/index.js";import"../../models/data/order/index.js";import"../../models/data/payment-gateway/index.js";import"../../models/data/product/attribute-value/index.js";import"../../models/data/product/filter/index.js";import"../../models/data/product/option-set/option/index.js";import"../../models/data/product/option-set/index.js";import"../../models/data/product/stock-location/index.js";import"../../models/data/product/variant/price/index.js";import"../../models/data/product/variant/index.js";import"../../models/data/variant-type/index.js";import"../../models/data/product/index.js";import"../../models/data/raffle/index.js";import"../../models/data/shipping-zone/state/city/district/region/index.js";import"../../models/data/state/index.js";import"../../models/data/theme-json/index.js";import"../../models/data/theme-json/component/index.js";import"../../models/data/theme-json/custom-data/index.js";import"../../models/data/variant-type/variant-value/index.js";import"@ikas/localized-address";import{IkasStorefrontConfig as n}from"@ikas/storefront-config";import{Analytics as a}from"../../analytics/analytics.js";import"../../analytics/head/index.js";import{SaveCartInput as s}from"@ikas/storefront-api";import{getCookieValue as d}from"../../utils/helper.js";var u,c="cartId",l=function(){function c(c){var l=this;this.cart=null,this._isLoadingCart=!1,this._isCartLoadFinished=!1,this.addItem=function(i,o,s){return void 0===s&&(s=1),t(l,void 0,void 0,(function(){var t,c,l,m,p,v,h,f,I,g,C;return e(this,(function(e){switch(e.label){case 0:return e.trys.push([0,5,,6]),o.hasValidProductOptionValues?i.hasStock||i.sellIfOutOfStock?[4,this.beforeCartOperationCheck()]:[2,{success:!1,validationError:u.INSUFFICIENT_STOCK}]:[2,{success:!1,validationError:u.INVALID_PRODUCT_OPTION_VALUES}];case 1:return e.sent(),this.cart&&(t=this.findExistingItem(i,o))?(null===(f=o.productOptionSet)||void 0===f||f.initOptionValues(),[2,this.changeItemQuantity(t,t.quantity+1)]):(c=this.getOptionValues(o),l=(null===(I=this.cart)||void 0===I?void 0:I.id)||localStorage.getItem("cartId"),[4,r.addItemToCart({input:{cartId:l,item:{id:null,quantity:s,variant:{id:i.id,name:o.name,bundleProducts:null===(g=i.bundleSettings)||void 0===g?void 0:g.products.map((function(t){var e,i;return{variantId:(null===(i=null===(e=t.product)||void 0===e?void 0:e.selectedVariant)||void 0===i?void 0:i.id)||"",quantity:t.quantity}}))}},options:c.length?c:null,priceListId:n.getPriceListId()||null,salesChannelId:n.getSalesChannelId(),storefrontThemeId:n.getStorefrontThemeId(),metadata:{_fbp:d("_fbp"),_fbc:d("_fbc")}}})]);case 2:return(m=e.sent()).isSuccess&&m.data?[4,this.setCart(m.data)]:[3,4];case 3:e.sent(),e.label=4;case 4:return this.cart&&(p="".concat(this.cart.id,"-").concat(this.cart.updatedAt),(v=this.cart.items.find((function(t){return t.variant.id===i.id})))&&a.addToCart(v,s,p,this.cart)),null===(C=o.productOptionSet)||void 0===C||C.initOptionValues(),[2,{success:m.isSuccess,response:m}];case 5:return h=e.sent(),console.log(h),[2,{success:!1}];case 6:return[2]}}))}))},this.changeItemQuantity=function(i,o){return t(l,void 0,void 0,(function(){var t,s,u,c,l,m;return e(this,(function(e){switch(e.label){case 0:return e.trys.push([0,5,,6]),[4,this.beforeCartOperationCheck()];case 1:return e.sent(),[4,r.addItemToCart({input:{cartId:(null===(l=this.cart)||void 0===l?void 0:l.id)||null,item:{id:i.id,quantity:o,variant:{id:i.variant.id,name:i.variant.name,bundleProducts:null===(m=i.variant.bundleProducts)||void 0===m?void 0:m.map((function(t){return{variantId:t.variant.id||"",quantity:t.quantity}}))}},options:this.createCartLineOptions(i),priceListId:n.getPriceListId()||null,salesChannelId:n.getSalesChannelId(),storefrontThemeId:n.getStorefrontThemeId(),metadata:{_fbp:d("_fbp"),_fbc:d("_fbc")}}})];case 2:return(t=e.sent()).isSuccess&&t.data?[4,this.setCart(t.data)]:[3,4];case 3:e.sent(),e.label=4;case 4:return this.removeCardIfEmpty(),this.cart&&(s="".concat(this.cart.id,"-").concat(this.cart.updatedAt),(u=i.quantity)>o?a.removeFromCart(i,u-o,this.cart):a.addToCart(i,o-u,s,this.cart)),[2,{success:t.isSuccess,response:t}];case 5:return c=e.sent(),console.log(c),[2,{success:!1}];case 6:return[2]}}))}))},this.removeItem=function(i){return t(l,void 0,void 0,(function(){return e(this,(function(t){switch(t.label){case 0:return[4,this.changeItemQuantity(i,0)];case 1:return[2,t.sent()]}}))}))},this.removeCart=function(){localStorage.removeItem("cartId"),l.cart=void 0},this.waitUntilInitialized=function(){return new Promise((function(t){var e=setInterval((function(){l.isCartLoadFinished&&(clearInterval(e),t(null))}),100)}))},this.findExistingItem=function(t,e){var i,r,o,n,a;if(!e.productOptionSetId&&!t.bundleSettings)return null===(i=l.cart)||void 0===i?void 0:i.orderLineItems.find((function(e){return e.variant.id===t.id}));var s=(null===(r=l.cart)||void 0===r?void 0:r.orderLineItems.filter((function(e){return e.variant.id===t.id})))||[];if(e.productOptionSetId)for(var d=l.getOptionValues(e),u=s.filter((function(t){var e;return(null===(e=t.options)||void 0===e?void 0:e.length)===d.length}))||[],c=0,m=u;c<m.length;c++){if((C=m[c]).options){for(var p=!0,v=function(t){var i=t.values.map((function(t){return t.value})),r=null===(a=null===(n=null===(o=e.productOptionSet)||void 0===o?void 0:o.options)||void 0===n?void 0:n.find((function(e){return e.id===t.productOptionId})))||void 0===a?void 0:a.values;if(!(p=p&&i.length===(null==r?void 0:r.length)&&i.every((function(t){return null==r?void 0:r.includes(t)}))))return"break"},h=0,f=C.options;h<f.length;h++){if("break"===v(f[h]))break}if(p){if(!t.bundleSettings)return C;if(l.isSameBundleItem(t,C))return C}}}else if(t.bundleSettings)for(var I=0,g=s;I<g.length;I++){var C=g[I];if(l.isSameBundleItem(t,C))return C}},this.isSameBundleItem=function(t,e){var i,r=null===(i=t.bundleSettings)||void 0===i?void 0:i.products,o=e.variant.bundleProducts;return!!r&&((null==r?void 0:r.length)===(null==o?void 0:o.length)&&(null==r?void 0:r.every((function(t){return!!(null==o?void 0:o.find((function(e){var i;return e.variant.id===(null===(i=t.product)||void 0===i?void 0:i.selectedVariant.id)&&e.quantity===t.quantity})))}))))},this.saveCouponCode=function(i){return t(l,void 0,void 0,(function(){var t;return e(this,(function(e){switch(e.label){case 0:return this.cart?[4,r.saveCartCouponCode({cartId:this.cart.id,couponCode:i})]:[2,{success:!1,validationError:u.EMPTY_CART}];case 1:return(t=e.sent()).isSuccess&&t.data&&(this.cart=t.data),[2,{success:t.isSuccess,response:t}]}}))}))},this.removeCouponCode=function(){return t(l,void 0,void 0,(function(){return e(this,(function(t){return[2,this.saveCouponCode(null)]}))}))},this.saveCart=function(i){return t(l,void 0,void 0,(function(){var t,n;return e(this,(function(e){switch(e.label){case 0:return(t=new s(i)).customer&&this.baseStore.customerStore.customer&&(t.customer.notificationsAccepted=this.baseStore.customerStore.customer.subscriptionStatus===o.SUBSCRIBED),[4,r.saveCart({input:t})];case 1:return[2,{success:(n=e.sent()).isSuccess,response:n}]}}))}))},this.removeCardIfEmpty=function(){var t;0===(null===(t=l.cart)||void 0===t?void 0:t.itemCount)&&l.removeCart()},this.getCart=function(){return t(l,void 0,void 0,(function(){var t,i,o,n,a,s;return e(this,(function(e){switch(e.label){case 0:if(!("undefined"!=typeof localStorage))return[2];e.label=1;case 1:return e.trys.push([1,6,7,8]),this._isLoadingCart=!0,t=null===(a=this.baseStore.customerStore.customer)||void 0===a?void 0:a.id,(i=(null===(s=this.cart)||void 0===s?void 0:s.id)||localStorage.getItem("cartId"))||t?[4,r.getCartById({id:i})]:[2];case 2:return(o=e.sent()).isSuccess&&o.data?[4,this.setCart(o.data)]:[3,4];case 3:return e.sent(),[3,5];case 4:this.removeCart(),e.label=5;case 5:return[3,8];case 6:return n=e.sent(),console.log(n),[3,8];case 7:return this._isLoadingCart=!1,this._isCartLoadFinished=!0,[7];case 8:return[2]}}))}))},this.setCart=function(i){return t(l,void 0,void 0,(function(){return e(this,(function(t){return localStorage.setItem("cartId",i.id),this.cart=i,[2]}))}))},this.beforeCartOperationCheck=function(){return t(l,void 0,void 0,(function(){var t;return e(this,(function(e){switch(e.label){case 0:return t=localStorage.getItem("cartId"),!this.cart||t?[3,1]:(this.removeCart(),[3,3]);case 1:return this.cart||!t?[3,3]:[4,this.getCart()];case 2:e.sent(),e.label=3;case 3:return[2]}}))}))},this.createCartLineOptions=function(t){if(t&&t.options){for(var e=[],i=0,r=t.options;i<r.length;i++){var o=r[i],n={productOptionId:o.productOptionId,productOptionsSetId:o.productOptionsSetId,values:o.values.map((function(t){return t.value}))};e.push(n)}return e}return null},this.getOptionValues=function(t){var e,i=[];return null===(e=t.productOptionSet)||void 0===e||e.options.forEach((function(t){t.values.length&&i.push({productOptionId:t.id,productOptionsSetId:t.productOptionSetId,values:t.values})})),i},this.baseStore=c,i(this)}return Object.defineProperty(c.prototype,"isLoadingCart",{get:function(){return this._isLoadingCart},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"isCartLoadFinished",{get:function(){return this._isCartLoadFinished},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"checkoutId",{get:function(){var t;return null===(t=this.cart)||void 0===t?void 0:t.id},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"checkoutUrl",{get:function(){if(this.checkoutId)return"/checkout?id=".concat(this.checkoutId,"&step=info")},enumerable:!1,configurable:!0}),c}();!function(t){t.INSUFFICIENT_STOCK="INSUFFICIENT_STOCK",t.INVALID_PRODUCT_OPTION_VALUES="INVALID_PRODUCT_OPTION_VALUES",t.EMPTY_CART="EMPTY_CART"}(u||(u={}));export{c as CART_LS_KEY,u as IkasCartOperationValidationError,l as IkasCartStore};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikas/storefront",
3
- "version": "4.10.0-beta.12",
3
+ "version": "4.10.0-beta.13",
4
4
  "description": "Storefront functionality for ikas storefront themes.",
5
5
  "author": "ikas",
6
6
  "license": "ISC",
@@ -17,11 +17,11 @@
17
17
  "build": "rm -rf build && rollup -c"
18
18
  },
19
19
  "devDependencies": {
20
- "@ikas/storefront-api": "^4.10.0-beta.12",
21
- "@ikas/storefront-config": "^4.10.0-beta.12",
22
- "@ikas/storefront-model-functions": "^4.10.0-beta.12",
23
- "@ikas/storefront-models": "^4.10.0-beta.12",
24
- "@ikas/storefront-providers": "^4.10.0-beta.12",
20
+ "@ikas/storefront-api": "^4.10.0-beta.13",
21
+ "@ikas/storefront-config": "^4.10.0-beta.13",
22
+ "@ikas/storefront-model-functions": "^4.10.0-beta.13",
23
+ "@ikas/storefront-models": "^4.10.0-beta.13",
24
+ "@ikas/storefront-providers": "^4.10.0-beta.13",
25
25
  "@ikas/localized-address": "^1.0.0-beta.3",
26
26
  "@adyen/adyen-web": "^5.28.2",
27
27
  "@rollup/plugin-commonjs": "^22.0.0",
@@ -55,11 +55,11 @@
55
55
  },
56
56
  "peerDependencies": {
57
57
  "@ikas/localized-address": "^1.0.0-beta.3",
58
- "@ikas/storefront-api": "^4.10.0-beta.12",
59
- "@ikas/storefront-config": "^4.10.0-beta.12",
60
- "@ikas/storefront-model-functions": "^4.10.0-beta.12",
61
- "@ikas/storefront-models": "^4.10.0-beta.12",
62
- "@ikas/storefront-providers": "^4.10.0-beta.12",
58
+ "@ikas/storefront-api": "^4.10.0-beta.13",
59
+ "@ikas/storefront-config": "^4.10.0-beta.13",
60
+ "@ikas/storefront-model-functions": "^4.10.0-beta.13",
61
+ "@ikas/storefront-models": "^4.10.0-beta.13",
62
+ "@ikas/storefront-providers": "^4.10.0-beta.13",
63
63
  "mobx": "^6.1.3",
64
64
  "mobx-react-lite": "^3.1.5",
65
65
  "next": "12.2.0",