@ikas/storefront 6.1.0-beta.314 → 6.1.0-beta.315
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.
|
@@ -25,6 +25,22 @@ export declare class IkasPageDataInit {
|
|
|
25
25
|
propValue: IkasProductListParams;
|
|
26
26
|
}>;
|
|
27
27
|
static initProductListPropValue(propValue: IkasProductListParams): IkasProductList;
|
|
28
|
+
private static _nextPrefetchCleanerInstalled;
|
|
29
|
+
private static NEXT_SDC_MAX_ENTRIES;
|
|
30
|
+
/**
|
|
31
|
+
* Next.js 12.2 <Link> auto-prefetches every visible link: it fetches each
|
|
32
|
+
* target's getStaticProps JSON into `router.sdc` and its route chunk via
|
|
33
|
+
* `pageLoader`. For product list pages this means every visible product
|
|
34
|
+
* card adds ~tens-of-KB of JSON to `router.sdc`, and it is never released.
|
|
35
|
+
*
|
|
36
|
+
* Instead of disabling prefetch (which hurts navigation UX), keep it
|
|
37
|
+
* enabled but cap the cache:
|
|
38
|
+
* - Wrap `router.sdc` in a Proxy with an LRU-style ring buffer: on every
|
|
39
|
+
* `set`, if the cache exceeds NEXT_SDC_MAX_ENTRIES, evict the oldest
|
|
40
|
+
* entry immediately.
|
|
41
|
+
* - On `routeChangeComplete` run a full trim to keep current path + cap.
|
|
42
|
+
*/
|
|
43
|
+
private static installNextPrefetchCleaner;
|
|
28
44
|
private static trimNextRouterCache;
|
|
29
45
|
static initProductPropValue(propValue: IkasProductPropValueData): IkasProduct;
|
|
30
46
|
static _initProductOnBrowser(product: IkasProduct): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__assign as e}from'./../ext/tslib/tslib.es6.js';import{renderComponent as t}from"../components/page/index.js";import{IkasAttributeList as i}from"../models/ui/product-attribute-list/index.js";import{IkasBlogCategory as a}from"../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{IkasBlog as r}from"../models/data/blog/index.js";import{IkasBrand as o}from"../models/data/brand/index.js";import{IkasThemeJsonPageType as n,initIkasCategory as s,IkasThemeJsonComponentPropType as u,IkasProductAttributeType as l}from"@ikas/storefront-models";import"mobx";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{IkasCategory as d}from"../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/customer-form-data-input/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{IkasImage as p}from"../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/order-transaction-with-prices/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/campaign-offer/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{IkasProduct as c}from"../models/data/product/index.js";import{IkasRaffle as m}from"../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/storefront-popup/storefront-popup-display-filter/index.js";import"../models/data/storefront-popup/storefront-popup-display-settings/index.js";import"../models/data/storefront-popup/storefront-popup-page-filter/index.js";import"../models/data/storefront-popup/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{IkasThemeJsonPageComponent as f}from"../models/data/theme-json/page/component/index.js";import"../models/data/variant-type/variant-value/index.js";import"@ikas/localized-address";import{IkasBlogList as g}from"../models/ui/blog-list/index.js";import{IkasBlogCategoryList as P}from"../models/ui/blog-category-list/index.js";import{IkasBrandList as V}from"../models/ui/brand-list/index.js";import{IkasCategoryList as v}from"../models/ui/category-list/index.js";import{IkasNavigationLink as h}from"../models/ui/navigation-link/index.js";import{IkasProductList as j}from"../models/ui/product-list/index.js";import{IkasAttributeDetail as D}from"../models/ui/product-attribute-detail/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{IkasComponentRenderer as L}from"../models/ui/component-renderer/index.js";import{IkasRaffleList as T}from"../models/ui/raffle-list/index.js";import{IkasPageComponentPropValue as C,getPlaceholderBrand as x,getPlaceholderCategory as I,getPlaceholderProduct as S,getPlaceholderBlog as b,getPlaceholderBlogCategory as y,getPlaceholderRaffle as E,ProductDataBindingFields as R,ProductVariantDataBindingFields as w,CategoryDataBindingFields as O,BrandDataBindingFields as A}from"@ikas/storefront-providers";import _ from"lodash/flatten";import{IkasBaseStore as B}from"../store/base.js";import"../store/customer/index.js";import"../store/cart/index.js";import{IkasProductVariantFunctions as k,stringToSlug as N}from"@ikas/storefront-model-functions";import{IkasStorefrontConfig as G}from"@ikas/storefront-config";import U from"react";var M=function(){function M(){}return M.setPageSpecificData=function(t,i,u){var l;if(this.pageType=i,this.isBrowser=u,t)switch(i){case n.PRODUCT:var p=t;M.pageSpecificData=new c(e(e({},p),{selectedVariantValues:p.selectedVariantValues||(null===(l=p.variants.find((function(e){return k.hasStock(e)})))||void 0===l?void 0:l.variantValues)||p.variants[0].variantValues})),u&&this._initProductOnBrowser(M.pageSpecificData);break;case n.CATEGORY:var f=t;s(f,G.getCurrentLocale()),M.pageSpecificData=new d(f);break;case n.BRAND:var g=t;M.pageSpecificData=new o(g);break;case n.BLOG:var P=t;M.pageSpecificData=new r(P);break;case n.BLOG_CATEGORY:var V=t;M.pageSpecificData=new a(V);break;case n.RAFFLE_DETAIL:var v=t;M.pageSpecificData=new m(v)}else this.pageSpecificData=void 0},M.isServer=function(){return"undefined"==typeof window},M.initPagePropValues=function(e,t,i,a,r){return this.flatCustomDataList=_(i.map((function(e){return e.flat}))),e.map((function(e){return M.initPageComponentPropValue(e,t,a,r)}))},M.initPageComponentPropValue=function(t,i,a,r){var o=i.find((function(e){return e.id===t.pageComponent.componentId})),n=null==o?void 0:o.props,s={};return null==n||n.map((function(e){var i=t.propValues[e.name];s[e.name]=M.initPropValue(e,i,a,r)})),new C(e(e({},t),{pageComponent:new f(e(e({},t.pageComponent),{propValues:s,componentId:o.id})),component:o,propValues:s}))},M.initPropValue=function(e,t,i,a){if(null==t)return null;switch(e.type){case u.TEXT:return M.initTextPropValue(t);case u.IMAGE:return M.initImagePropValue(t);case u.IMAGE_LIST:return M.initImageListPropValue(t);case u.BRAND:return M.initBrandPropValue(t);case u.BRAND_LIST:return M.initBrandListPropValue(t);case u.CATEGORY:return M.initCategoryPropValue(t);case u.CATEGORY_LIST:return M.initCategoryListPropValue(t);case u.PRODUCT_LIST:return M.initProductListPropValue(t);case u.PRODUCT_DETAIL:return M.initProductPropValue(t);case u.PRODUCT_ATTRIBUTE:return M.initAttributePropValue(t);case u.PRODUCT_ATTRIBUTE_LIST:return M.initAttributeListPropValue(t);case u.LINK:case u.LIST_OF_LINK:return M.initLinkPropValue(t);case u.COMPONENT:return M.initComponentPropValue(t,i,a);case u.COMPONENT_LIST:return M.initComponentListPropValue(t,i,a);case u.CUSTOM:return M.initCustomDataPropValue(t,i,a);case u.BLOG:return M.initBlogPropValue(t);case u.BLOG_LIST:return M.initBlogListPropValue(t);case u.BLOG_CATEGORY:return M.initBlogCategoryPropValue(t);case u.BLOG_LIST:return M.initBlogCategoryListPropValue(t);case u.RAFFLE:return M.initRafflePropValue(t);case u.RAFFLE_LIST:return M.initRaffleListPropValue(t);case u.SLIDER:return M.initSliderPropValue(t);case u.VIDEO:return M.initVideoPropValue(t);default:return t}},M.initTextPropValue=function(e){var t=this;function i(e){for(var t,i=/{{(.*?)}}|([^{}]+)/g,a=[];null!==(t=i.exec(e));)t[1]?a.push({value:t[1],isVariable:!0}):t[2]&&a.push({value:t[2],isVariable:!1});return a}return i(e).filter((function(e){return e.isVariable})).length?U.createElement("div",null,function(){for(var a,r,o,s,u=i(e),d=u.filter((function(e){return e.isVariable})),p={},c=B.getInstance().currentPageType,m=function(e){var i=e.value;if(c===n.PRODUCT){var u=t.pageSpecificData;if(i.includes(R.ATTRIBUTE_VALUE)){var d=i.split(R.ATTRIBUTE_VALUE)[1].split("_")[1],m=u.groupedAttributeValues.find((function(e){return e.attribute.id===d})),f=u.selectedVariant.groupedAttributeValues.find((function(e){return e.attribute.id===d}))||m;f?f.attribute.type===l.CHOICE?p[i]=(null===(a=f.values[0].productAttributeOption)||void 0===a?void 0:a.name)||"":f.attribute.type===l.MULTIPLE_CHOICE?p[i]=f.values.map((function(e){var t;return null===(t=e.productAttributeOption)||void 0===t?void 0:t.name})).join(", ")||"":p[i]=f.values[0].value||"":p[i]=""}else i.includes(R.NAME)?p[i]=u.name:i.includes(R.DESCRIPTION)?p[i]=u.description:i.includes(R.SHORT_DESCRIPTION)?p[i]=u.shortDescription:i.includes(R.CATEGORY_NAME)?p[i]=(null===(r=u.categories[0])||void 0===r?void 0:r.name)||"":i.includes(R.TAG)?p[i]=(null===(o=u.tags)||void 0===o?void 0:o.map((function(e){return e.name})).join(", "))||"":i.includes(w.BARCODE)?p[i]=(null===(s=u.selectedVariant.barcodeList)||void 0===s?void 0:s.length)?u.selectedVariant.barcodeList[0]:"":i.includes(w.SKU)?p[i]=u.selectedVariant.sku:i.includes(w.SELL_PRICE)?p[i]=u.selectedVariant.formattedSellPrice:i.includes(w.DISCOUNT_PRICE)?p[i]=u.selectedVariant.formattedDiscountPrice:i.includes(w.STOCK)?p[i]=u.selectedVariant.stock:p[i]=""}else if(c===n.CATEGORY){var g=t.pageSpecificData;i===O.NAME?p[i]=g.name:i===O.DESCRIPTION?p[i]=g.description:p[i]=""}else if(c===n.BRAND){var P=t.pageSpecificData;i===A.NAME?p[i]=P.name:p[i]=""}else p[i]=""},f=0,g=d;f<g.length;f++){m(g[f])}for(var P="",V=0,v=u;V<v.length;V++){var h=v[V];h.isVariable?P+=p[h.value]:P+=h.value}return P}()):e},M.initBrandPropValue=function(e){return e.brandPropValue.usePageData&&this.pageSpecificData?this.pageSpecificData:e.brand?new o(e.brand):x()},M.initBrandListPropValue=function(e){return new V(e)},M.initCategoryPropValue=function(t){var i,a;return t.categoryPropValue.usePageData&&this.pageSpecificData?((null===(i=t.categoryPropValue.excludedFieldsCategory)||void 0===i?void 0:i.length)&&(this.pageSpecificData.description=null),this.pageSpecificData):t.category?new d(e(e({},t.category),{description:(null===(a=t.categoryPropValue.excludedFieldsCategory)||void 0===a?void 0:a.length)?null:t.category.description})):I()},M.initCategoryListPropValue=function(e){return new v(e)},M.initProductListPropValue=function(t){var i,a,r,o=null===(i=null==t?void 0:t.productListPropValue)||void 0===i?void 0:i.id;if(o){var n=M._productListRegistry.get(o);if(n){if(n.propValue===t)return n.list;(null===(r=null===(a=n.list)||void 0===a?void 0:a.data)||void 0===r?void 0:r.length)&&n.list.data.forEach((function(e){var t;return null===(t=e.dispose)||void 0===t?void 0:t.call(e)}));try{var s=n.propValue;s&&(s.data=null,s.relatedProductData=null,s.recommendedProductData=null,s.viewedTogetherProductData=null,s.purchasedTogetherProductData=null)}catch(e){}}}var u=new j(e(e({},t),{pageSpecificData:this.pageSpecificData}),B.getInstance().router);return o&&M._productListRegistry.set(o,{list:u,propValue:t}),M.trimNextRouterCache(),u},M.trimNextRouterCache=function(){if("undefined"!=typeof window)try{var e=B.getInstance().router;if(!e)return;var t=e.asPath;if(e.sdc&&"object"==typeof e.sdc)for(var i=Object.keys(e.sdc),a=0,r=i;a<r.length;a++){var o=r[a];t&&o.includes(encodeURIComponent(""))||t&&o.endsWith(t+".json")||delete e.sdc[o]}if(e.components&&"object"==typeof e.components)for(var n=e.route,s=Object.keys(e.components),u=0,l=s;u<l.length;u++){if((o=l[u])!==n&&"/_app"!==o){var d=e.components[o];d&&d.props&&d.props.pageProps&&(d.props.pageProps=null)}}}catch(e){}},M.initProductPropValue=function(t){var i=new c(S());if(t.productDetailPropValue.usePageData&&this.pageSpecificData)i=this.pageSpecificData;else if(t.productDetail){var a=t.productDetail;i=new c(e(e({},a),{selectedVariantValues:a.selectedVariantValues}))}return i},M._initProductOnBrowser=function(e){var t=new URLSearchParams(window.location.search),i=t.get("vid");if(i){var a=e.variants.find((function(e){return e.id===i}));a&&(e.selectedVariantValues=a.variantValues)}else{var r=e.variantTypes.map((function(e){return e.variantType.slug})),o=[];r.forEach((function(i,a){var r=e.variantTypes[a],n=N(t.get(decodeURIComponent(i))||"");if(n){var s=r.variantType.values.find((function(e){return e.slug===n}));s&&o.push(s)}})),o.length===e.selectedVariantValues.length&&(e.selectedVariantValues=o)}e.setOptionRealPrices()},M.initAttributePropValue=function(t){var i=null;if(t.attributePropValue.usePageData&&this.pageSpecificData)i=this.pageSpecificData;else if(t.productDetail){var a=t.productDetail;i=new c(e(e({},a),{selectedVariantValues:a.selectedVariantValues}))}return new D(i,t.attributePropValue)},M.initAttributeListPropValue=function(t){var a=null;if(t.attributeListPropValue.usePageData&&this.pageSpecificData)a=this.pageSpecificData;else if(t.productDetail){var r=t.productDetail;a=new c(e(e({},r),{selectedVariantValues:r.selectedVariantValues}))}return new i(a,t.attributeListPropValue)},M.initLinkPropValue=function(e){return Array.isArray(e)?e.map((function(e){return new h(e.href,e.label,e.subLinks,e.isExternal||void 0)})):e?new h(e.href,e.label,e.subLinks,e.isExternal||void 0):void 0},M.initImagePropValue=function(e){return new p(e)},M.initImageListPropValue=function(e){return e.map((function(e){return new p(e)}))},M.initCustomDataPropValue=function(e,t,i){if(e&&e.value&&e.customDataId){var a=this.flatCustomDataList.find((function(t){return t.id===e.customDataId}));if(a)return this._initCustomDataPropValue(e,a,t,i)}},M._initCustomDataPropValue=function(e,t,i,a){var r=this;if(!e)return null;var o=e.value;if(null==o)return null;switch(t.type){case u.TEXT:return this.initTextPropValue(o);case u.BRAND:return this.initBrandPropValue(o);case u.BRAND_LIST:return this.initBrandListPropValue(o);case u.CATEGORY_LIST:return this.initCategoryListPropValue(o);case u.CATEGORY:return this.initCategoryPropValue(o);case u.IMAGE_LIST:return this.initImageListPropValue(o);case u.IMAGE:return this.initImagePropValue(o);case u.LINK:return this.initLinkPropValue(o);case u.PRODUCT_DETAIL:return this.initProductPropValue(o);case u.PRODUCT_LIST:return this.initProductListPropValue(o);case u.PRODUCT_ATTRIBUTE:return this.initAttributePropValue(o);case u.PRODUCT_ATTRIBUTE_LIST:return this.initAttributeListPropValue(o);case u.BLOG:return this.initBlogPropValue(o);case u.BLOG_LIST:return this.initBlogListPropValue(o);case u.BLOG_CATEGORY:return this.initBlogCategoryPropValue(o);case u.BLOG_CATEGORY_LIST:return this.initBlogCategoryListPropValue(o);case u.RAFFLE:return this.initRafflePropValue(o);case u.RAFFLE_LIST:return this.initRaffleListPropValue(o);case u.SLIDER:return this.initSliderPropValue(o);case u.VIDEO:return M.initVideoPropValue(o);case u.OBJECT:for(var n={},s=function(e){var t=o[e.key],r=void 0;e.customDataId&&(r=l.flatCustomDataList.find((function(e){return e.id===t.customDataId}))),n[e.key]=l._initCustomDataPropValue(t,r||e,i,a)},l=this,d=0,p=t.nestedData||[];d<p.length;d++){s(p[d])}return n;case u.DYNAMIC_LIST:case u.STATIC_LIST:try{if(!o||!o.length)return null;var c=[],m=t.nestedData[0];return o.forEach((function(e){var t;m.customDataId&&(t=r.flatCustomDataList.find((function(t){return t.id===e.customDataId}))),c.push(r._initCustomDataPropValue(e,t||m,i,a))})),c}catch(e){return[]}case u.COMPONENT:return this.initComponentPropValue(o,i,a);case u.COMPONENT_LIST:return this.initComponentListPropValue(o,i,a);default:return o}},M.initComponentPropValue=function(e,t,i){return this._initComponentPropValue(e,t,i)},M._initComponentPropValue=function(e,i,a){var r=e.length?e[0]:void 0;if(r){var o=new C(r),n=M.initPageComponentPropValue(o,[o.component],i,a);if(n)return new L((function(){return t(n,i,-10)}))}},M.initComponentListPropValue=function(e,t,i){return this._initComponentListPropValue(e,t,i)},M._initComponentListPropValue=function(e,i,a){return e&&e.length?e.map((function(e){var r=new C(e),o=M.initPageComponentPropValue(r,[r.component],i,a);return new L((function(){return t(o,i,-1)}))})):[]},M.initBlogPropValue=function(e){return e.blogPropValue.usePageData&&this.pageSpecificData?this.pageSpecificData:e.blog?new r(e.blog):b()},M.initBlogListPropValue=function(e){return new g(e)},M.initBlogCategoryPropValue=function(e){return e.blogCategoryPropValue.usePageData&&this.pageSpecificData?this.pageSpecificData:e.blogCategory?new a(e.blogCategory):y()},M.initBlogCategoryListPropValue=function(e){return new P(e)},M.initRafflePropValue=function(e){return e.rafflePropValue.usePageData&&this.pageSpecificData?this.pageSpecificData:e.raffle?new m(e.raffle):new m(E())},M.initRaffleListPropValue=function(e){return new T(e)},M.initSliderPropValue=function(e){return e},M.initVideoPropValue=function(t){return e(e({},t),{thumbnailImage:t.thumbnailImage?new p(t.thumbnailImage):null})},M.pageSpecificData={},M.flatCustomDataList=[],M.isBrowser=!1,M._productListRegistry=new Map,M}();export{M as IkasPageDataInit};
|
|
1
|
+
import{__assign as e}from'./../ext/tslib/tslib.es6.js';import{renderComponent as t}from"../components/page/index.js";import{IkasAttributeList as i}from"../models/ui/product-attribute-list/index.js";import{IkasBlogCategory as r}from"../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{IkasBlog as a}from"../models/data/blog/index.js";import{IkasBrand as o}from"../models/data/brand/index.js";import{IkasThemeJsonPageType as n,initIkasCategory as s,IkasThemeJsonComponentPropType as u,IkasProductAttributeType as l}from"@ikas/storefront-models";import"mobx";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{IkasCategory as d}from"../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/customer-form-data-input/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{IkasImage as p}from"../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/order-transaction-with-prices/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/campaign-offer/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{IkasProduct as c}from"../models/data/product/index.js";import{IkasRaffle as m}from"../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/storefront-popup/storefront-popup-display-filter/index.js";import"../models/data/storefront-popup/storefront-popup-display-settings/index.js";import"../models/data/storefront-popup/storefront-popup-page-filter/index.js";import"../models/data/storefront-popup/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{IkasThemeJsonPageComponent as f}from"../models/data/theme-json/page/component/index.js";import"../models/data/variant-type/variant-value/index.js";import"@ikas/localized-address";import{IkasBlogList as g}from"../models/ui/blog-list/index.js";import{IkasBlogCategoryList as P}from"../models/ui/blog-category-list/index.js";import{IkasBrandList as v}from"../models/ui/brand-list/index.js";import{IkasCategoryList as V}from"../models/ui/category-list/index.js";import{IkasNavigationLink as h}from"../models/ui/navigation-link/index.js";import{IkasProductList as j}from"../models/ui/product-list/index.js";import{IkasAttributeDetail as D}from"../models/ui/product-attribute-detail/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{IkasComponentRenderer as C}from"../models/ui/component-renderer/index.js";import{IkasRaffleList as T}from"../models/ui/raffle-list/index.js";import{IkasPageComponentPropValue as L,getPlaceholderBrand as x,getPlaceholderCategory as I,getPlaceholderProduct as S,getPlaceholderBlog as y,getPlaceholderBlogCategory as _,getPlaceholderRaffle as b,ProductDataBindingFields as E,ProductVariantDataBindingFields as R,CategoryDataBindingFields as w,BrandDataBindingFields as O}from"@ikas/storefront-providers";import A from"lodash/flatten";import{IkasBaseStore as B}from"../store/base.js";import"../store/customer/index.js";import"../store/cart/index.js";import{IkasProductVariantFunctions as N,stringToSlug as k}from"@ikas/storefront-model-functions";import{IkasStorefrontConfig as G}from"@ikas/storefront-config";import U from"react";var M=function(){function M(){}return M.setPageSpecificData=function(t,i,u){var l;if(this.pageType=i,this.isBrowser=u,t)switch(i){case n.PRODUCT:var p=t;M.pageSpecificData=new c(e(e({},p),{selectedVariantValues:p.selectedVariantValues||(null===(l=p.variants.find((function(e){return N.hasStock(e)})))||void 0===l?void 0:l.variantValues)||p.variants[0].variantValues})),u&&this._initProductOnBrowser(M.pageSpecificData);break;case n.CATEGORY:var f=t;s(f,G.getCurrentLocale()),M.pageSpecificData=new d(f);break;case n.BRAND:var g=t;M.pageSpecificData=new o(g);break;case n.BLOG:var P=t;M.pageSpecificData=new a(P);break;case n.BLOG_CATEGORY:var v=t;M.pageSpecificData=new r(v);break;case n.RAFFLE_DETAIL:var V=t;M.pageSpecificData=new m(V)}else this.pageSpecificData=void 0},M.isServer=function(){return"undefined"==typeof window},M.initPagePropValues=function(e,t,i,r,a){return this.flatCustomDataList=A(i.map((function(e){return e.flat}))),e.map((function(e){return M.initPageComponentPropValue(e,t,r,a)}))},M.initPageComponentPropValue=function(t,i,r,a){var o=i.find((function(e){return e.id===t.pageComponent.componentId})),n=null==o?void 0:o.props,s={};return null==n||n.map((function(e){var i=t.propValues[e.name];s[e.name]=M.initPropValue(e,i,r,a)})),new L(e(e({},t),{pageComponent:new f(e(e({},t.pageComponent),{propValues:s,componentId:o.id})),component:o,propValues:s}))},M.initPropValue=function(e,t,i,r){if(null==t)return null;switch(e.type){case u.TEXT:return M.initTextPropValue(t);case u.IMAGE:return M.initImagePropValue(t);case u.IMAGE_LIST:return M.initImageListPropValue(t);case u.BRAND:return M.initBrandPropValue(t);case u.BRAND_LIST:return M.initBrandListPropValue(t);case u.CATEGORY:return M.initCategoryPropValue(t);case u.CATEGORY_LIST:return M.initCategoryListPropValue(t);case u.PRODUCT_LIST:return M.initProductListPropValue(t);case u.PRODUCT_DETAIL:return M.initProductPropValue(t);case u.PRODUCT_ATTRIBUTE:return M.initAttributePropValue(t);case u.PRODUCT_ATTRIBUTE_LIST:return M.initAttributeListPropValue(t);case u.LINK:case u.LIST_OF_LINK:return M.initLinkPropValue(t);case u.COMPONENT:return M.initComponentPropValue(t,i,r);case u.COMPONENT_LIST:return M.initComponentListPropValue(t,i,r);case u.CUSTOM:return M.initCustomDataPropValue(t,i,r);case u.BLOG:return M.initBlogPropValue(t);case u.BLOG_LIST:return M.initBlogListPropValue(t);case u.BLOG_CATEGORY:return M.initBlogCategoryPropValue(t);case u.BLOG_LIST:return M.initBlogCategoryListPropValue(t);case u.RAFFLE:return M.initRafflePropValue(t);case u.RAFFLE_LIST:return M.initRaffleListPropValue(t);case u.SLIDER:return M.initSliderPropValue(t);case u.VIDEO:return M.initVideoPropValue(t);default:return t}},M.initTextPropValue=function(e){var t=this;function i(e){for(var t,i=/{{(.*?)}}|([^{}]+)/g,r=[];null!==(t=i.exec(e));)t[1]?r.push({value:t[1],isVariable:!0}):t[2]&&r.push({value:t[2],isVariable:!1});return r}return i(e).filter((function(e){return e.isVariable})).length?U.createElement("div",null,function(){for(var r,a,o,s,u=i(e),d=u.filter((function(e){return e.isVariable})),p={},c=B.getInstance().currentPageType,m=function(e){var i=e.value;if(c===n.PRODUCT){var u=t.pageSpecificData;if(i.includes(E.ATTRIBUTE_VALUE)){var d=i.split(E.ATTRIBUTE_VALUE)[1].split("_")[1],m=u.groupedAttributeValues.find((function(e){return e.attribute.id===d})),f=u.selectedVariant.groupedAttributeValues.find((function(e){return e.attribute.id===d}))||m;f?f.attribute.type===l.CHOICE?p[i]=(null===(r=f.values[0].productAttributeOption)||void 0===r?void 0:r.name)||"":f.attribute.type===l.MULTIPLE_CHOICE?p[i]=f.values.map((function(e){var t;return null===(t=e.productAttributeOption)||void 0===t?void 0:t.name})).join(", ")||"":p[i]=f.values[0].value||"":p[i]=""}else i.includes(E.NAME)?p[i]=u.name:i.includes(E.DESCRIPTION)?p[i]=u.description:i.includes(E.SHORT_DESCRIPTION)?p[i]=u.shortDescription:i.includes(E.CATEGORY_NAME)?p[i]=(null===(a=u.categories[0])||void 0===a?void 0:a.name)||"":i.includes(E.TAG)?p[i]=(null===(o=u.tags)||void 0===o?void 0:o.map((function(e){return e.name})).join(", "))||"":i.includes(R.BARCODE)?p[i]=(null===(s=u.selectedVariant.barcodeList)||void 0===s?void 0:s.length)?u.selectedVariant.barcodeList[0]:"":i.includes(R.SKU)?p[i]=u.selectedVariant.sku:i.includes(R.SELL_PRICE)?p[i]=u.selectedVariant.formattedSellPrice:i.includes(R.DISCOUNT_PRICE)?p[i]=u.selectedVariant.formattedDiscountPrice:i.includes(R.STOCK)?p[i]=u.selectedVariant.stock:p[i]=""}else if(c===n.CATEGORY){var g=t.pageSpecificData;i===w.NAME?p[i]=g.name:i===w.DESCRIPTION?p[i]=g.description:p[i]=""}else if(c===n.BRAND){var P=t.pageSpecificData;i===O.NAME?p[i]=P.name:p[i]=""}else p[i]=""},f=0,g=d;f<g.length;f++){m(g[f])}for(var P="",v=0,V=u;v<V.length;v++){var h=V[v];h.isVariable?P+=p[h.value]:P+=h.value}return P}()):e},M.initBrandPropValue=function(e){return e.brandPropValue.usePageData&&this.pageSpecificData?this.pageSpecificData:e.brand?new o(e.brand):x()},M.initBrandListPropValue=function(e){return new v(e)},M.initCategoryPropValue=function(t){var i,r;return t.categoryPropValue.usePageData&&this.pageSpecificData?((null===(i=t.categoryPropValue.excludedFieldsCategory)||void 0===i?void 0:i.length)&&(this.pageSpecificData.description=null),this.pageSpecificData):t.category?new d(e(e({},t.category),{description:(null===(r=t.categoryPropValue.excludedFieldsCategory)||void 0===r?void 0:r.length)?null:t.category.description})):I()},M.initCategoryListPropValue=function(e){return new V(e)},M.initProductListPropValue=function(t){var i,r,a,o=null===(i=null==t?void 0:t.productListPropValue)||void 0===i?void 0:i.id;if(o){var n=M._productListRegistry.get(o);if(n){if(n.propValue===t)return n.list;(null===(a=null===(r=n.list)||void 0===r?void 0:r.data)||void 0===a?void 0:a.length)&&n.list.data.forEach((function(e){var t;return null===(t=e.dispose)||void 0===t?void 0:t.call(e)}));try{var s=n.propValue;s&&(s.data=null,s.relatedProductData=null,s.recommendedProductData=null,s.viewedTogetherProductData=null,s.purchasedTogetherProductData=null)}catch(e){}}}var u=new j(e(e({},t),{pageSpecificData:this.pageSpecificData}),B.getInstance().router);return o&&M._productListRegistry.set(o,{list:u,propValue:t}),M.trimNextRouterCache(),M.installNextPrefetchCleaner(),u},M.installNextPrefetchCleaner=function(){if("undefined"!=typeof window&&!M._nextPrefetchCleanerInstalled)try{var e=B.getInstance().router;if(!e)return;if(e.sdc&&"object"==typeof e.sdc&&!e.sdc.__ikasCapped){var t=M.NEXT_SDC_MAX_ENTRIES,i=e.sdc,r=Object.keys(i),a=new Proxy(i,{set:function(e,i,a){if("string"==typeof i){if(i in e){var o=r.indexOf(i);-1!==o&&r.splice(o,1)}for(e[i]=a,r.push(i);r.length>t;){var n=r.shift();n&&n in e&&delete e[n]}return!0}return e[i]=a,!0},deleteProperty:function(e,t){if("string"==typeof t){var i=r.indexOf(t);-1!==i&&r.splice(i,1)}return delete e[t],!0}});try{Object.defineProperty(i,"__ikasCapped",{value:!0,enumerable:!1}),e.sdc=a}catch(e){}}e.events&&"function"==typeof e.events.on&&e.events.on("routeChangeComplete",(function(){M.trimNextRouterCache()})),M._nextPrefetchCleanerInstalled=!0}catch(e){}},M.trimNextRouterCache=function(){if("undefined"!=typeof window)try{var e=B.getInstance().router;if(!e)return;var t=e.asPath;if(e.sdc&&"object"==typeof e.sdc){var i=Object.keys(e.sdc),r=M.NEXT_SDC_MAX_ENTRIES,a=t&&i.find((function(e){return e.endsWith(t+".json")})),o=i.slice(-r),n=new Set(o);a&&n.add(a);for(var s=0,u=i;s<u.length;s++){var l=u[s];n.has(l)||delete e.sdc[l]}}if(e.components&&"object"==typeof e.components)for(var d=e.route,p=Object.keys(e.components),c=0,m=p;c<m.length;c++){if((l=m[c])!==d&&"/_app"!==l){var f=e.components[l];f&&f.props&&f.props.pageProps&&(f.props.pageProps=null)}}}catch(e){}},M.initProductPropValue=function(t){var i=new c(S());if(t.productDetailPropValue.usePageData&&this.pageSpecificData)i=this.pageSpecificData;else if(t.productDetail){var r=t.productDetail;i=new c(e(e({},r),{selectedVariantValues:r.selectedVariantValues}))}return i},M._initProductOnBrowser=function(e){var t=new URLSearchParams(window.location.search),i=t.get("vid");if(i){var r=e.variants.find((function(e){return e.id===i}));r&&(e.selectedVariantValues=r.variantValues)}else{var a=e.variantTypes.map((function(e){return e.variantType.slug})),o=[];a.forEach((function(i,r){var a=e.variantTypes[r],n=k(t.get(decodeURIComponent(i))||"");if(n){var s=a.variantType.values.find((function(e){return e.slug===n}));s&&o.push(s)}})),o.length===e.selectedVariantValues.length&&(e.selectedVariantValues=o)}e.setOptionRealPrices()},M.initAttributePropValue=function(t){var i=null;if(t.attributePropValue.usePageData&&this.pageSpecificData)i=this.pageSpecificData;else if(t.productDetail){var r=t.productDetail;i=new c(e(e({},r),{selectedVariantValues:r.selectedVariantValues}))}return new D(i,t.attributePropValue)},M.initAttributeListPropValue=function(t){var r=null;if(t.attributeListPropValue.usePageData&&this.pageSpecificData)r=this.pageSpecificData;else if(t.productDetail){var a=t.productDetail;r=new c(e(e({},a),{selectedVariantValues:a.selectedVariantValues}))}return new i(r,t.attributeListPropValue)},M.initLinkPropValue=function(e){return Array.isArray(e)?e.map((function(e){return new h(e.href,e.label,e.subLinks,e.isExternal||void 0)})):e?new h(e.href,e.label,e.subLinks,e.isExternal||void 0):void 0},M.initImagePropValue=function(e){return new p(e)},M.initImageListPropValue=function(e){return e.map((function(e){return new p(e)}))},M.initCustomDataPropValue=function(e,t,i){if(e&&e.value&&e.customDataId){var r=this.flatCustomDataList.find((function(t){return t.id===e.customDataId}));if(r)return this._initCustomDataPropValue(e,r,t,i)}},M._initCustomDataPropValue=function(e,t,i,r){var a=this;if(!e)return null;var o=e.value;if(null==o)return null;switch(t.type){case u.TEXT:return this.initTextPropValue(o);case u.BRAND:return this.initBrandPropValue(o);case u.BRAND_LIST:return this.initBrandListPropValue(o);case u.CATEGORY_LIST:return this.initCategoryListPropValue(o);case u.CATEGORY:return this.initCategoryPropValue(o);case u.IMAGE_LIST:return this.initImageListPropValue(o);case u.IMAGE:return this.initImagePropValue(o);case u.LINK:return this.initLinkPropValue(o);case u.PRODUCT_DETAIL:return this.initProductPropValue(o);case u.PRODUCT_LIST:return this.initProductListPropValue(o);case u.PRODUCT_ATTRIBUTE:return this.initAttributePropValue(o);case u.PRODUCT_ATTRIBUTE_LIST:return this.initAttributeListPropValue(o);case u.BLOG:return this.initBlogPropValue(o);case u.BLOG_LIST:return this.initBlogListPropValue(o);case u.BLOG_CATEGORY:return this.initBlogCategoryPropValue(o);case u.BLOG_CATEGORY_LIST:return this.initBlogCategoryListPropValue(o);case u.RAFFLE:return this.initRafflePropValue(o);case u.RAFFLE_LIST:return this.initRaffleListPropValue(o);case u.SLIDER:return this.initSliderPropValue(o);case u.VIDEO:return M.initVideoPropValue(o);case u.OBJECT:for(var n={},s=function(e){var t=o[e.key],a=void 0;e.customDataId&&(a=l.flatCustomDataList.find((function(e){return e.id===t.customDataId}))),n[e.key]=l._initCustomDataPropValue(t,a||e,i,r)},l=this,d=0,p=t.nestedData||[];d<p.length;d++){s(p[d])}return n;case u.DYNAMIC_LIST:case u.STATIC_LIST:try{if(!o||!o.length)return null;var c=[],m=t.nestedData[0];return o.forEach((function(e){var t;m.customDataId&&(t=a.flatCustomDataList.find((function(t){return t.id===e.customDataId}))),c.push(a._initCustomDataPropValue(e,t||m,i,r))})),c}catch(e){return[]}case u.COMPONENT:return this.initComponentPropValue(o,i,r);case u.COMPONENT_LIST:return this.initComponentListPropValue(o,i,r);default:return o}},M.initComponentPropValue=function(e,t,i){return this._initComponentPropValue(e,t,i)},M._initComponentPropValue=function(e,i,r){var a=e.length?e[0]:void 0;if(a){var o=new L(a),n=M.initPageComponentPropValue(o,[o.component],i,r);if(n)return new C((function(){return t(n,i,-10)}))}},M.initComponentListPropValue=function(e,t,i){return this._initComponentListPropValue(e,t,i)},M._initComponentListPropValue=function(e,i,r){return e&&e.length?e.map((function(e){var a=new L(e),o=M.initPageComponentPropValue(a,[a.component],i,r);return new C((function(){return t(o,i,-1)}))})):[]},M.initBlogPropValue=function(e){return e.blogPropValue.usePageData&&this.pageSpecificData?this.pageSpecificData:e.blog?new a(e.blog):y()},M.initBlogListPropValue=function(e){return new g(e)},M.initBlogCategoryPropValue=function(e){return e.blogCategoryPropValue.usePageData&&this.pageSpecificData?this.pageSpecificData:e.blogCategory?new r(e.blogCategory):_()},M.initBlogCategoryListPropValue=function(e){return new P(e)},M.initRafflePropValue=function(e){return e.rafflePropValue.usePageData&&this.pageSpecificData?this.pageSpecificData:e.raffle?new m(e.raffle):new m(b())},M.initRaffleListPropValue=function(e){return new T(e)},M.initSliderPropValue=function(e){return e},M.initVideoPropValue=function(t){return e(e({},t),{thumbnailImage:t.thumbnailImage?new p(t.thumbnailImage):null})},M.pageSpecificData={},M.flatCustomDataList=[],M.isBrowser=!1,M._productListRegistry=new Map,M._nextPrefetchCleanerInstalled=!1,M.NEXT_SDC_MAX_ENTRIES=20,M}();export{M as IkasPageDataInit};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ikas/storefront",
|
|
3
|
-
"version": "6.1.0-beta.
|
|
3
|
+
"version": "6.1.0-beta.315",
|
|
4
4
|
"description": "Storefront functionality for ikas storefront themes.",
|
|
5
5
|
"author": "ikas",
|
|
6
6
|
"license": "ISC",
|
|
@@ -23,11 +23,11 @@
|
|
|
23
23
|
"swiper": "11.0.6"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@ikas/storefront-api": "^6.1.0-beta.
|
|
27
|
-
"@ikas/storefront-config": "^6.1.0-beta.
|
|
28
|
-
"@ikas/storefront-model-functions": "^6.1.0-beta.
|
|
29
|
-
"@ikas/storefront-models": "^6.1.0-beta.
|
|
30
|
-
"@ikas/storefront-providers": "^6.1.0-beta.
|
|
26
|
+
"@ikas/storefront-api": "^6.1.0-beta.315",
|
|
27
|
+
"@ikas/storefront-config": "^6.1.0-beta.315",
|
|
28
|
+
"@ikas/storefront-model-functions": "^6.1.0-beta.315",
|
|
29
|
+
"@ikas/storefront-models": "^6.1.0-beta.315",
|
|
30
|
+
"@ikas/storefront-providers": "^6.1.0-beta.315",
|
|
31
31
|
"@ikas/localized-address": "1.0.0-beta.6",
|
|
32
32
|
"@adyen/adyen-web": "^5.57.0",
|
|
33
33
|
"@rollup/plugin-commonjs": "^22.0.0",
|
|
@@ -62,11 +62,11 @@
|
|
|
62
62
|
},
|
|
63
63
|
"peerDependencies": {
|
|
64
64
|
"@ikas/localized-address": "1.0.0-beta.6",
|
|
65
|
-
"@ikas/storefront-api": "^6.1.0-beta.
|
|
66
|
-
"@ikas/storefront-config": "^6.1.0-beta.
|
|
67
|
-
"@ikas/storefront-model-functions": "^6.1.0-beta.
|
|
68
|
-
"@ikas/storefront-models": "^6.1.0-beta.
|
|
69
|
-
"@ikas/storefront-providers": "^6.1.0-beta.
|
|
65
|
+
"@ikas/storefront-api": "^6.1.0-beta.315",
|
|
66
|
+
"@ikas/storefront-config": "^6.1.0-beta.315",
|
|
67
|
+
"@ikas/storefront-model-functions": "^6.1.0-beta.315",
|
|
68
|
+
"@ikas/storefront-models": "^6.1.0-beta.315",
|
|
69
|
+
"@ikas/storefront-providers": "^6.1.0-beta.315",
|
|
70
70
|
"mobx": "^6.1.3",
|
|
71
71
|
"mobx-react-lite": "^3.1.5",
|
|
72
72
|
"next": "12.2.0",
|