@ikas/storefront 4.10.0-beta.11 → 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.
- package/build/components/page-editor/ThemeComponentEditor.js +1 -1
- package/build/models/data/order/line-item/variant/bundle-product/bundle-variant/index.d.ts +33 -0
- package/build/models/data/order/line-item/variant/bundle-product/bundle-variant/index.js +1 -0
- package/build/models/data/order/line-item/variant/bundle-product/index.d.ts +14 -0
- package/build/models/data/order/line-item/variant/bundle-product/index.js +1 -0
- package/build/models/data/order/line-item/variant/index.d.ts +2 -0
- package/build/models/data/order/line-item/variant/index.js +1 -1
- package/build/models/data/product/index.d.ts +2 -0
- package/build/models/data/product/index.js +1 -1
- package/build/models/data/product/variant/bundle-settings/bundle-product/index.d.ts +18 -0
- package/build/models/data/product/variant/bundle-settings/bundle-product/index.js +1 -0
- package/build/models/data/product/variant/bundle-settings/index.d.ts +8 -0
- package/build/models/data/product/variant/bundle-settings/index.js +1 -0
- package/build/models/data/product/variant/index.d.ts +3 -1
- package/build/models/data/product/variant/index.js +1 -1
- package/build/store/cart/index.d.ts +1 -0
- package/build/store/cart/index.js +1 -1
- package/package.json +11 -11
|
@@ -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
|
|
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<
|
|
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{
|
|
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.
|
|
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.
|
|
21
|
-
"@ikas/storefront-config": "^4.10.0-beta.
|
|
22
|
-
"@ikas/storefront-model-functions": "^4.10.0-beta.
|
|
23
|
-
"@ikas/storefront-models": "^4.10.0-beta.
|
|
24
|
-
"@ikas/storefront-providers": "^4.10.0-beta.
|
|
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.
|
|
59
|
-
"@ikas/storefront-config": "^4.10.0-beta.
|
|
60
|
-
"@ikas/storefront-model-functions": "^4.10.0-beta.
|
|
61
|
-
"@ikas/storefront-models": "^4.10.0-beta.
|
|
62
|
-
"@ikas/storefront-providers": "^4.10.0-beta.
|
|
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",
|