@ikas/storefront 0.0.165-alpha.2 → 0.0.165-alpha.4
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/index.es.js +79 -127
- package/build/index.js +80 -127
- package/build/utils/providers/page-data.d.ts +0 -1
- package/package.json +7 -7
package/build/index.es.js
CHANGED
|
@@ -3,6 +3,7 @@ import fs from 'fs';
|
|
|
3
3
|
import path$1 from 'path';
|
|
4
4
|
import getConfig from 'next/config';
|
|
5
5
|
import React, { createElement, Fragment as Fragment$1, useEffect, useState, useRef, useCallback, useMemo } from 'react';
|
|
6
|
+
import Script from 'next/script';
|
|
6
7
|
import { observer } from 'mobx-react-lite';
|
|
7
8
|
import Head from 'next/head';
|
|
8
9
|
import { useRouter } from 'next/router';
|
|
@@ -24236,19 +24237,23 @@ var AnalyticsHead = function (_a) {
|
|
|
24236
24237
|
__html: "dataLayer = [{'gtm.blocklist': ['html']}];",
|
|
24237
24238
|
} })),
|
|
24238
24239
|
gtmId && (createElement("script", { dangerouslySetInnerHTML: {
|
|
24239
|
-
__html: "(function(w,
|
|
24240
|
+
__html: "(function(w,l){" +
|
|
24241
|
+
"w[l] = w[l] || [];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});" +
|
|
24242
|
+
"})(window,'dataLayer');",
|
|
24240
24243
|
} })),
|
|
24241
24244
|
fbpId && (createElement("script", { dangerouslySetInnerHTML: {
|
|
24242
|
-
__html: "!function(f,b,e,v,n,t,s)\n {if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n n.callMethod.apply(n,arguments):n.queue.push(arguments)};\n if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n n.queue=[];
|
|
24245
|
+
__html: "!function(f,b,e,v,n,t,s)\n {if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n n.callMethod.apply(n,arguments):n.queue.push(arguments)};\n if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n n.queue=[];}(window);\n fbq('init', '" + fbpId + "');\n fbq('track', 'PageView');",
|
|
24243
24246
|
} }))));
|
|
24244
24247
|
};
|
|
24245
24248
|
var AnalyticsBody = function () {
|
|
24246
24249
|
var gtmId = IkasStorefrontConfig.gtmId;
|
|
24247
24250
|
var fbpId = IkasStorefrontConfig.fbpId;
|
|
24248
24251
|
return (createElement(Fragment$1, null,
|
|
24252
|
+
gtmId && (createElement(Script, { src: "https://www.googletagmanager.com/gtm.js?id=" + gtmId })),
|
|
24249
24253
|
gtmId && (createElement("noscript", { dangerouslySetInnerHTML: {
|
|
24250
24254
|
__html: "<iframe src=\"https://www.googletagmanager.com/ns.html?id=" + gtmId + "\" height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"></iframe>",
|
|
24251
24255
|
} })),
|
|
24256
|
+
fbpId && (createElement(Script, { src: "https://connect.facebook.net/en_US/fbevents.js" })),
|
|
24252
24257
|
fbpId && (createElement("noscript", { dangerouslySetInnerHTML: {
|
|
24253
24258
|
__html: "<img height=\"1\" width=\"1\" style=\"display:none\" \n src=\"https://www.facebook.com/tr?id=" + fbpId + "&ev=PageView&noscript=1\"/>",
|
|
24254
24259
|
} }))));
|
|
@@ -27633,11 +27638,6 @@ var IkasProductDetail = /** @class */ (function () {
|
|
|
27633
27638
|
var metaData = this.product.metaData;
|
|
27634
27639
|
if (!(metaData === null || metaData === void 0 ? void 0 : metaData.slug))
|
|
27635
27640
|
return "";
|
|
27636
|
-
if (this.product.hasVariant) {
|
|
27637
|
-
return "/" + metaData.slug + "-" + this.selectedVariantValues
|
|
27638
|
-
.map(function (vv) { return vv.slug; })
|
|
27639
|
-
.join("-");
|
|
27640
|
-
}
|
|
27641
27641
|
return "/" + metaData.slug;
|
|
27642
27642
|
},
|
|
27643
27643
|
enumerable: false,
|
|
@@ -27685,6 +27685,7 @@ var IkasProductDetail = /** @class */ (function () {
|
|
|
27685
27685
|
configurable: true
|
|
27686
27686
|
});
|
|
27687
27687
|
IkasProductDetail.prototype.selectVariantValue = function (variantValue) {
|
|
27688
|
+
var _this = this;
|
|
27688
27689
|
var _a;
|
|
27689
27690
|
var metaData = this.product.metaData;
|
|
27690
27691
|
var selectedVariantValues = this.selectedVariantValues.map(function (vv) {
|
|
@@ -27693,9 +27694,18 @@ var IkasProductDetail = /** @class */ (function () {
|
|
|
27693
27694
|
return vv;
|
|
27694
27695
|
});
|
|
27695
27696
|
this.selectedVariantValues = selectedVariantValues;
|
|
27696
|
-
var
|
|
27697
|
-
.map(function (
|
|
27698
|
-
.
|
|
27697
|
+
var variantParams = this.product.variantTypes
|
|
27698
|
+
.map(function (pvt) {
|
|
27699
|
+
var vt = pvt.variantType;
|
|
27700
|
+
var selectedVariant = vt.values.find(function (vv) {
|
|
27701
|
+
return _this.selectedVariantValues.some(function (svv) { return svv.id === vv.id; });
|
|
27702
|
+
});
|
|
27703
|
+
if (selectedVariant)
|
|
27704
|
+
return vt.slug + "=" + selectedVariant.slug;
|
|
27705
|
+
})
|
|
27706
|
+
.filter(function (param) { return !!param; })
|
|
27707
|
+
.join("&");
|
|
27708
|
+
var newUrl = "/" + metaData.slug + "?" + variantParams;
|
|
27699
27709
|
if (newUrl === window.location.pathname)
|
|
27700
27710
|
return;
|
|
27701
27711
|
var isShallow = process.env.NODE_ENV !== "production";
|
|
@@ -33275,16 +33285,6 @@ function createProductSchema(productDetail) {
|
|
|
33275
33285
|
var _a, _b;
|
|
33276
33286
|
try {
|
|
33277
33287
|
var isBrowser = typeof window !== "undefined";
|
|
33278
|
-
if (isBrowser) {
|
|
33279
|
-
var urlParams = new URLSearchParams(window.location.search);
|
|
33280
|
-
var vid_1 = urlParams.get("vid");
|
|
33281
|
-
if (vid_1) {
|
|
33282
|
-
var variant = productDetail.product.variants.find(function (v) { return v.id === vid_1; });
|
|
33283
|
-
if (variant) {
|
|
33284
|
-
productDetail.selectedVariantValues = variant.variantValues;
|
|
33285
|
-
}
|
|
33286
|
-
}
|
|
33287
|
-
}
|
|
33288
33288
|
var productUrl = isBrowser
|
|
33289
33289
|
? "https://" + window.location.hostname + productDetail.href
|
|
33290
33290
|
: "";
|
|
@@ -33550,7 +33550,7 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
33550
33550
|
IkasPageDataProvider.prototype.getPageSpecificData = function () {
|
|
33551
33551
|
var _a, _b;
|
|
33552
33552
|
return __awaiter(this, void 0, void 0, function () {
|
|
33553
|
-
var slug, metaDataList, metaData, handleBrandPage, handleCategoryPage, handleBlogPage, handleBlogCategoryPage, _c;
|
|
33553
|
+
var slug, metaDataList, metaData, handleProductPage, handleBrandPage, handleCategoryPage, handleBlogPage, handleBlogCategoryPage, _c;
|
|
33554
33554
|
var _this = this;
|
|
33555
33555
|
return __generator(this, function (_d) {
|
|
33556
33556
|
switch (_d.label) {
|
|
@@ -33579,12 +33579,47 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
33579
33579
|
case 2: return [4 /*yield*/, IkasHTMLMetaDataAPI.listHTMLMetaData(slug)];
|
|
33580
33580
|
case 3:
|
|
33581
33581
|
metaDataList = _d.sent();
|
|
33582
|
-
if (!metaDataList || !metaDataList.length)
|
|
33583
|
-
return [2 /*return
|
|
33584
|
-
}
|
|
33582
|
+
if (!metaDataList || !metaDataList.length)
|
|
33583
|
+
return [2 /*return*/];
|
|
33585
33584
|
_d.label = 4;
|
|
33586
33585
|
case 4:
|
|
33587
33586
|
metaData = metaDataList[0];
|
|
33587
|
+
if (!metaData.targetId)
|
|
33588
|
+
return [2 /*return*/];
|
|
33589
|
+
handleProductPage = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
33590
|
+
var productsResponse, product, displayedVariantType, inStockVariant;
|
|
33591
|
+
return __generator(this, function (_a) {
|
|
33592
|
+
switch (_a.label) {
|
|
33593
|
+
case 0: return [4 /*yield*/, IkasProductSearchAPI.searchProducts({
|
|
33594
|
+
productIdList: [metaData.targetId],
|
|
33595
|
+
priceListId: IkasStorefrontConfig.priceListId,
|
|
33596
|
+
salesChannelId: IkasStorefrontConfig.salesChannelId,
|
|
33597
|
+
})];
|
|
33598
|
+
case 1:
|
|
33599
|
+
productsResponse = _a.sent();
|
|
33600
|
+
if (!(productsResponse === null || productsResponse === void 0 ? void 0 : productsResponse.data.length)) {
|
|
33601
|
+
return [2 /*return*/];
|
|
33602
|
+
}
|
|
33603
|
+
product = productsResponse.data[0];
|
|
33604
|
+
this.pageSpecificData = new IkasProductDetail(product, product.variants[0].variantValues);
|
|
33605
|
+
// Select the first displayed in stock variant
|
|
33606
|
+
if (this.pageSpecificData.displayedVariantTypes.length) {
|
|
33607
|
+
displayedVariantType = this
|
|
33608
|
+
.pageSpecificData.displayedVariantTypes[0];
|
|
33609
|
+
if (displayedVariantType.displayedVariantValues.length) {
|
|
33610
|
+
inStockVariant = displayedVariantType.displayedVariantValues.find(function (dvv) { return dvv.hasStock; });
|
|
33611
|
+
if (inStockVariant) {
|
|
33612
|
+
this.pageSpecificData.selectedVariantValues =
|
|
33613
|
+
inStockVariant.variant.variantValues;
|
|
33614
|
+
}
|
|
33615
|
+
}
|
|
33616
|
+
}
|
|
33617
|
+
this.pageType = IkasThemePageType.PRODUCT;
|
|
33618
|
+
this.setPageMetaData(metaData);
|
|
33619
|
+
return [2 /*return*/];
|
|
33620
|
+
}
|
|
33621
|
+
});
|
|
33622
|
+
}); };
|
|
33588
33623
|
handleBrandPage = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
33589
33624
|
var brandsResponse, brand;
|
|
33590
33625
|
return __generator(this, function (_a) {
|
|
@@ -33676,7 +33711,7 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
33676
33711
|
case 6: return [2 /*return*/, _d.sent()];
|
|
33677
33712
|
case 7: return [4 /*yield*/, handleCategoryPage()];
|
|
33678
33713
|
case 8: return [2 /*return*/, _d.sent()];
|
|
33679
|
-
case 9: return [4 /*yield*/,
|
|
33714
|
+
case 9: return [4 /*yield*/, handleProductPage()];
|
|
33680
33715
|
case 10: return [2 /*return*/, _d.sent()];
|
|
33681
33716
|
case 11: return [4 /*yield*/, handleBlogPage()];
|
|
33682
33717
|
case 12: return [2 /*return*/, _d.sent()];
|
|
@@ -33688,91 +33723,6 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
33688
33723
|
});
|
|
33689
33724
|
});
|
|
33690
33725
|
};
|
|
33691
|
-
IkasPageDataProvider.prototype.getPageSpecificProduct = function () {
|
|
33692
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
33693
|
-
var slug, getProductMetaData, metaDataResponse, productsResponse, product, isMainProductSlug, selectedVariantValues, variantSlugPart, _i, _a, variant, values, slugPart, displayedVariantType, inStockVariant;
|
|
33694
|
-
var _this = this;
|
|
33695
|
-
return __generator(this, function (_b) {
|
|
33696
|
-
switch (_b.label) {
|
|
33697
|
-
case 0:
|
|
33698
|
-
slug = this.pageParams.slug;
|
|
33699
|
-
if (!slug) {
|
|
33700
|
-
console.log("Slug not found for getPageSpecificProduct");
|
|
33701
|
-
}
|
|
33702
|
-
getProductMetaData = function (slug) { return __awaiter(_this, void 0, void 0, function () {
|
|
33703
|
-
var metaDataList, splitParts, newSlug;
|
|
33704
|
-
return __generator(this, function (_a) {
|
|
33705
|
-
switch (_a.label) {
|
|
33706
|
-
case 0:
|
|
33707
|
-
if (!slug)
|
|
33708
|
-
return [2 /*return*/];
|
|
33709
|
-
return [4 /*yield*/, IkasHTMLMetaDataAPI.listHTMLMetaData(slug)];
|
|
33710
|
-
case 1:
|
|
33711
|
-
metaDataList = _a.sent();
|
|
33712
|
-
if (!(!metaDataList || !metaDataList.length)) return [3 /*break*/, 3];
|
|
33713
|
-
splitParts = slug.split("-");
|
|
33714
|
-
newSlug = splitParts.slice(0, splitParts.length - 1).join("-");
|
|
33715
|
-
return [4 /*yield*/, getProductMetaData(newSlug)];
|
|
33716
|
-
case 2: return [2 /*return*/, _a.sent()];
|
|
33717
|
-
case 3: return [2 /*return*/, {
|
|
33718
|
-
metaData: metaDataList[0],
|
|
33719
|
-
slug: slug,
|
|
33720
|
-
}];
|
|
33721
|
-
}
|
|
33722
|
-
});
|
|
33723
|
-
}); };
|
|
33724
|
-
return [4 /*yield*/, getProductMetaData(slug)];
|
|
33725
|
-
case 1:
|
|
33726
|
-
metaDataResponse = _b.sent();
|
|
33727
|
-
if (!metaDataResponse)
|
|
33728
|
-
return [2 /*return*/];
|
|
33729
|
-
return [4 /*yield*/, IkasProductSearchAPI.searchProducts({
|
|
33730
|
-
productIdList: [metaDataResponse.metaData.targetId],
|
|
33731
|
-
priceListId: IkasStorefrontConfig.priceListId,
|
|
33732
|
-
salesChannelId: IkasStorefrontConfig.salesChannelId,
|
|
33733
|
-
})];
|
|
33734
|
-
case 2:
|
|
33735
|
-
productsResponse = _b.sent();
|
|
33736
|
-
if (!(productsResponse === null || productsResponse === void 0 ? void 0 : productsResponse.data.length))
|
|
33737
|
-
return [2 /*return*/];
|
|
33738
|
-
product = productsResponse.data[0];
|
|
33739
|
-
isMainProductSlug = slug.length === metaDataResponse.slug.length;
|
|
33740
|
-
selectedVariantValues = [];
|
|
33741
|
-
if (!isMainProductSlug) {
|
|
33742
|
-
variantSlugPart = slug.slice(metaDataResponse.slug.length + 1);
|
|
33743
|
-
for (_i = 0, _a = product.variants; _i < _a.length; _i++) {
|
|
33744
|
-
variant = _a[_i];
|
|
33745
|
-
values = variant.variantValues;
|
|
33746
|
-
slugPart = values.map(function (vv) { return vv.slug; }).join("-");
|
|
33747
|
-
if (slugPart === variantSlugPart) {
|
|
33748
|
-
selectedVariantValues = values;
|
|
33749
|
-
break;
|
|
33750
|
-
}
|
|
33751
|
-
}
|
|
33752
|
-
}
|
|
33753
|
-
this.pageSpecificData = new IkasProductDetail(product, selectedVariantValues.length
|
|
33754
|
-
? selectedVariantValues
|
|
33755
|
-
: product.variants[0].variantValues);
|
|
33756
|
-
// Select the first displayed in stock variant
|
|
33757
|
-
if (!selectedVariantValues.length &&
|
|
33758
|
-
this.pageSpecificData.displayedVariantTypes.length) {
|
|
33759
|
-
displayedVariantType = this.pageSpecificData
|
|
33760
|
-
.displayedVariantTypes[0];
|
|
33761
|
-
if (displayedVariantType.displayedVariantValues.length) {
|
|
33762
|
-
inStockVariant = displayedVariantType.displayedVariantValues.find(function (dvv) { return dvv.hasStock; });
|
|
33763
|
-
if (inStockVariant) {
|
|
33764
|
-
this.pageSpecificData.selectedVariantValues =
|
|
33765
|
-
inStockVariant.variant.variantValues;
|
|
33766
|
-
}
|
|
33767
|
-
}
|
|
33768
|
-
}
|
|
33769
|
-
this.pageType = IkasThemePageType.PRODUCT;
|
|
33770
|
-
this.setPageMetaData(metaDataResponse.metaData);
|
|
33771
|
-
return [2 /*return*/];
|
|
33772
|
-
}
|
|
33773
|
-
});
|
|
33774
|
-
});
|
|
33775
|
-
};
|
|
33776
33726
|
IkasPageDataProvider.prototype.getPageComponentPropValues = function (pageComponent) {
|
|
33777
33727
|
return __awaiter(this, void 0, void 0, function () {
|
|
33778
33728
|
var component, result, setPageComponentPropValue;
|
|
@@ -34040,14 +33990,31 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
34040
33990
|
var _propValue = propValue;
|
|
34041
33991
|
var productDetail = new IkasProductDetail(_propValue.product, _propValue.selectedVariantValues);
|
|
34042
33992
|
if (isBrowser) {
|
|
34043
|
-
var
|
|
34044
|
-
var vid_1 =
|
|
33993
|
+
var urlParams_1 = new URLSearchParams(window.location.search);
|
|
33994
|
+
var vid_1 = urlParams_1.get("vid");
|
|
34045
33995
|
if (vid_1) {
|
|
34046
33996
|
var variant = productDetail.product.variants.find(function (v) { return v.id === vid_1; });
|
|
34047
33997
|
if (variant) {
|
|
34048
33998
|
productDetail.selectedVariantValues = variant.variantValues;
|
|
34049
33999
|
}
|
|
34050
34000
|
}
|
|
34001
|
+
else {
|
|
34002
|
+
var productVariantTypeSlugs = productDetail.product.variantTypes.map(function (vt) { return vt.variantType.slug; });
|
|
34003
|
+
var selectedVariantValues_1 = [];
|
|
34004
|
+
productVariantTypeSlugs.forEach(function (slug, vtIndex) {
|
|
34005
|
+
var productVariantType = productDetail.product.variantTypes[vtIndex];
|
|
34006
|
+
var variantValueSlug = urlParams_1.get(slug);
|
|
34007
|
+
if (variantValueSlug) {
|
|
34008
|
+
var variantValue = productVariantType.variantType.values.find(function (v) { return v.slug === variantValueSlug; });
|
|
34009
|
+
if (variantValue)
|
|
34010
|
+
selectedVariantValues_1.push(variantValue);
|
|
34011
|
+
}
|
|
34012
|
+
});
|
|
34013
|
+
if (selectedVariantValues_1.length ===
|
|
34014
|
+
productDetail.selectedVariantValues.length) {
|
|
34015
|
+
productDetail.selectedVariantValues = selectedVariantValues_1;
|
|
34016
|
+
}
|
|
34017
|
+
}
|
|
34051
34018
|
}
|
|
34052
34019
|
return new IkasProductDetail(productDetail.product, productDetail.selectedVariantValues, router);
|
|
34053
34020
|
};
|
|
@@ -62315,21 +62282,6 @@ var Page$1 = function (_a) {
|
|
|
62315
62282
|
var index$1 = observer(Page$1);
|
|
62316
62283
|
var getStaticPaths = function (context) { return __awaiter(void 0, void 0, void 0, function () {
|
|
62317
62284
|
return __generator(this, function (_a) {
|
|
62318
|
-
// const targetTypes = [
|
|
62319
|
-
// IkasHTMLMetaDataTargetType.BRAND,
|
|
62320
|
-
// IkasHTMLMetaDataTargetType.CATEGORY,
|
|
62321
|
-
// ];
|
|
62322
|
-
// const metaData = await IkasHTMLMetaDataAPI.listHTMLMetaData(
|
|
62323
|
-
// undefined,
|
|
62324
|
-
// undefined,
|
|
62325
|
-
// targetTypes
|
|
62326
|
-
// );
|
|
62327
|
-
// metaData.map((m) => ({
|
|
62328
|
-
// params: {
|
|
62329
|
-
// slug: m.slug,
|
|
62330
|
-
// originalSlug: m.slug,
|
|
62331
|
-
// },
|
|
62332
|
-
// }))
|
|
62333
62285
|
return [2 /*return*/, {
|
|
62334
62286
|
paths: [],
|
|
62335
62287
|
fallback: "blocking",
|
package/build/index.js
CHANGED
|
@@ -7,6 +7,7 @@ var fs = require('fs');
|
|
|
7
7
|
var path$1 = require('path');
|
|
8
8
|
var getConfig = require('next/config');
|
|
9
9
|
var React = require('react');
|
|
10
|
+
var Script = require('next/script');
|
|
10
11
|
var mobxReactLite = require('mobx-react-lite');
|
|
11
12
|
var Head = require('next/head');
|
|
12
13
|
var router = require('next/router');
|
|
@@ -22,6 +23,7 @@ var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
|
|
|
22
23
|
var path__default = /*#__PURE__*/_interopDefaultLegacy(path$1);
|
|
23
24
|
var getConfig__default = /*#__PURE__*/_interopDefaultLegacy(getConfig);
|
|
24
25
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
26
|
+
var Script__default = /*#__PURE__*/_interopDefaultLegacy(Script);
|
|
25
27
|
var Head__default = /*#__PURE__*/_interopDefaultLegacy(Head);
|
|
26
28
|
var crypto__default = /*#__PURE__*/_interopDefaultLegacy(crypto$1);
|
|
27
29
|
var NextImage__default = /*#__PURE__*/_interopDefaultLegacy(NextImage);
|
|
@@ -24244,19 +24246,23 @@ var AnalyticsHead = function (_a) {
|
|
|
24244
24246
|
__html: "dataLayer = [{'gtm.blocklist': ['html']}];",
|
|
24245
24247
|
} })),
|
|
24246
24248
|
gtmId && (React.createElement("script", { dangerouslySetInnerHTML: {
|
|
24247
|
-
__html: "(function(w,
|
|
24249
|
+
__html: "(function(w,l){" +
|
|
24250
|
+
"w[l] = w[l] || [];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});" +
|
|
24251
|
+
"})(window,'dataLayer');",
|
|
24248
24252
|
} })),
|
|
24249
24253
|
fbpId && (React.createElement("script", { dangerouslySetInnerHTML: {
|
|
24250
|
-
__html: "!function(f,b,e,v,n,t,s)\n {if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n n.callMethod.apply(n,arguments):n.queue.push(arguments)};\n if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n n.queue=[];
|
|
24254
|
+
__html: "!function(f,b,e,v,n,t,s)\n {if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n n.callMethod.apply(n,arguments):n.queue.push(arguments)};\n if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n n.queue=[];}(window);\n fbq('init', '" + fbpId + "');\n fbq('track', 'PageView');",
|
|
24251
24255
|
} }))));
|
|
24252
24256
|
};
|
|
24253
24257
|
var AnalyticsBody = function () {
|
|
24254
24258
|
var gtmId = IkasStorefrontConfig.gtmId;
|
|
24255
24259
|
var fbpId = IkasStorefrontConfig.fbpId;
|
|
24256
24260
|
return (React.createElement(React.Fragment, null,
|
|
24261
|
+
gtmId && (React.createElement(Script__default['default'], { src: "https://www.googletagmanager.com/gtm.js?id=" + gtmId })),
|
|
24257
24262
|
gtmId && (React.createElement("noscript", { dangerouslySetInnerHTML: {
|
|
24258
24263
|
__html: "<iframe src=\"https://www.googletagmanager.com/ns.html?id=" + gtmId + "\" height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"></iframe>",
|
|
24259
24264
|
} })),
|
|
24265
|
+
fbpId && (React.createElement(Script__default['default'], { src: "https://connect.facebook.net/en_US/fbevents.js" })),
|
|
24260
24266
|
fbpId && (React.createElement("noscript", { dangerouslySetInnerHTML: {
|
|
24261
24267
|
__html: "<img height=\"1\" width=\"1\" style=\"display:none\" \n src=\"https://www.facebook.com/tr?id=" + fbpId + "&ev=PageView&noscript=1\"/>",
|
|
24262
24268
|
} }))));
|
|
@@ -27616,11 +27622,6 @@ var IkasProductDetail = /** @class */ (function () {
|
|
|
27616
27622
|
var metaData = this.product.metaData;
|
|
27617
27623
|
if (!(metaData === null || metaData === void 0 ? void 0 : metaData.slug))
|
|
27618
27624
|
return "";
|
|
27619
|
-
if (this.product.hasVariant) {
|
|
27620
|
-
return "/" + metaData.slug + "-" + this.selectedVariantValues
|
|
27621
|
-
.map(function (vv) { return vv.slug; })
|
|
27622
|
-
.join("-");
|
|
27623
|
-
}
|
|
27624
27625
|
return "/" + metaData.slug;
|
|
27625
27626
|
},
|
|
27626
27627
|
enumerable: false,
|
|
@@ -27668,6 +27669,7 @@ var IkasProductDetail = /** @class */ (function () {
|
|
|
27668
27669
|
configurable: true
|
|
27669
27670
|
});
|
|
27670
27671
|
IkasProductDetail.prototype.selectVariantValue = function (variantValue) {
|
|
27672
|
+
var _this = this;
|
|
27671
27673
|
var _a;
|
|
27672
27674
|
var metaData = this.product.metaData;
|
|
27673
27675
|
var selectedVariantValues = this.selectedVariantValues.map(function (vv) {
|
|
@@ -27676,9 +27678,18 @@ var IkasProductDetail = /** @class */ (function () {
|
|
|
27676
27678
|
return vv;
|
|
27677
27679
|
});
|
|
27678
27680
|
this.selectedVariantValues = selectedVariantValues;
|
|
27679
|
-
var
|
|
27680
|
-
.map(function (
|
|
27681
|
-
.
|
|
27681
|
+
var variantParams = this.product.variantTypes
|
|
27682
|
+
.map(function (pvt) {
|
|
27683
|
+
var vt = pvt.variantType;
|
|
27684
|
+
var selectedVariant = vt.values.find(function (vv) {
|
|
27685
|
+
return _this.selectedVariantValues.some(function (svv) { return svv.id === vv.id; });
|
|
27686
|
+
});
|
|
27687
|
+
if (selectedVariant)
|
|
27688
|
+
return vt.slug + "=" + selectedVariant.slug;
|
|
27689
|
+
})
|
|
27690
|
+
.filter(function (param) { return !!param; })
|
|
27691
|
+
.join("&");
|
|
27692
|
+
var newUrl = "/" + metaData.slug + "?" + variantParams;
|
|
27682
27693
|
if (newUrl === window.location.pathname)
|
|
27683
27694
|
return;
|
|
27684
27695
|
var isShallow = process.env.NODE_ENV !== "production";
|
|
@@ -33255,16 +33266,6 @@ function createProductSchema(productDetail) {
|
|
|
33255
33266
|
var _a, _b;
|
|
33256
33267
|
try {
|
|
33257
33268
|
var isBrowser = typeof window !== "undefined";
|
|
33258
|
-
if (isBrowser) {
|
|
33259
|
-
var urlParams = new URLSearchParams(window.location.search);
|
|
33260
|
-
var vid_1 = urlParams.get("vid");
|
|
33261
|
-
if (vid_1) {
|
|
33262
|
-
var variant = productDetail.product.variants.find(function (v) { return v.id === vid_1; });
|
|
33263
|
-
if (variant) {
|
|
33264
|
-
productDetail.selectedVariantValues = variant.variantValues;
|
|
33265
|
-
}
|
|
33266
|
-
}
|
|
33267
|
-
}
|
|
33268
33269
|
var productUrl = isBrowser
|
|
33269
33270
|
? "https://" + window.location.hostname + productDetail.href
|
|
33270
33271
|
: "";
|
|
@@ -33530,7 +33531,7 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
33530
33531
|
IkasPageDataProvider.prototype.getPageSpecificData = function () {
|
|
33531
33532
|
var _a, _b;
|
|
33532
33533
|
return __awaiter(this, void 0, void 0, function () {
|
|
33533
|
-
var slug, metaDataList, metaData, handleBrandPage, handleCategoryPage, handleBlogPage, handleBlogCategoryPage, _c;
|
|
33534
|
+
var slug, metaDataList, metaData, handleProductPage, handleBrandPage, handleCategoryPage, handleBlogPage, handleBlogCategoryPage, _c;
|
|
33534
33535
|
var _this = this;
|
|
33535
33536
|
return __generator(this, function (_d) {
|
|
33536
33537
|
switch (_d.label) {
|
|
@@ -33559,12 +33560,47 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
33559
33560
|
case 2: return [4 /*yield*/, IkasHTMLMetaDataAPI.listHTMLMetaData(slug)];
|
|
33560
33561
|
case 3:
|
|
33561
33562
|
metaDataList = _d.sent();
|
|
33562
|
-
if (!metaDataList || !metaDataList.length)
|
|
33563
|
-
return [2 /*return
|
|
33564
|
-
}
|
|
33563
|
+
if (!metaDataList || !metaDataList.length)
|
|
33564
|
+
return [2 /*return*/];
|
|
33565
33565
|
_d.label = 4;
|
|
33566
33566
|
case 4:
|
|
33567
33567
|
metaData = metaDataList[0];
|
|
33568
|
+
if (!metaData.targetId)
|
|
33569
|
+
return [2 /*return*/];
|
|
33570
|
+
handleProductPage = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
33571
|
+
var productsResponse, product, displayedVariantType, inStockVariant;
|
|
33572
|
+
return __generator(this, function (_a) {
|
|
33573
|
+
switch (_a.label) {
|
|
33574
|
+
case 0: return [4 /*yield*/, IkasProductSearchAPI.searchProducts({
|
|
33575
|
+
productIdList: [metaData.targetId],
|
|
33576
|
+
priceListId: IkasStorefrontConfig.priceListId,
|
|
33577
|
+
salesChannelId: IkasStorefrontConfig.salesChannelId,
|
|
33578
|
+
})];
|
|
33579
|
+
case 1:
|
|
33580
|
+
productsResponse = _a.sent();
|
|
33581
|
+
if (!(productsResponse === null || productsResponse === void 0 ? void 0 : productsResponse.data.length)) {
|
|
33582
|
+
return [2 /*return*/];
|
|
33583
|
+
}
|
|
33584
|
+
product = productsResponse.data[0];
|
|
33585
|
+
this.pageSpecificData = new IkasProductDetail(product, product.variants[0].variantValues);
|
|
33586
|
+
// Select the first displayed in stock variant
|
|
33587
|
+
if (this.pageSpecificData.displayedVariantTypes.length) {
|
|
33588
|
+
displayedVariantType = this
|
|
33589
|
+
.pageSpecificData.displayedVariantTypes[0];
|
|
33590
|
+
if (displayedVariantType.displayedVariantValues.length) {
|
|
33591
|
+
inStockVariant = displayedVariantType.displayedVariantValues.find(function (dvv) { return dvv.hasStock; });
|
|
33592
|
+
if (inStockVariant) {
|
|
33593
|
+
this.pageSpecificData.selectedVariantValues =
|
|
33594
|
+
inStockVariant.variant.variantValues;
|
|
33595
|
+
}
|
|
33596
|
+
}
|
|
33597
|
+
}
|
|
33598
|
+
this.pageType = exports.IkasThemePageType.PRODUCT;
|
|
33599
|
+
this.setPageMetaData(metaData);
|
|
33600
|
+
return [2 /*return*/];
|
|
33601
|
+
}
|
|
33602
|
+
});
|
|
33603
|
+
}); };
|
|
33568
33604
|
handleBrandPage = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
33569
33605
|
var brandsResponse, brand;
|
|
33570
33606
|
return __generator(this, function (_a) {
|
|
@@ -33656,7 +33692,7 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
33656
33692
|
case 6: return [2 /*return*/, _d.sent()];
|
|
33657
33693
|
case 7: return [4 /*yield*/, handleCategoryPage()];
|
|
33658
33694
|
case 8: return [2 /*return*/, _d.sent()];
|
|
33659
|
-
case 9: return [4 /*yield*/,
|
|
33695
|
+
case 9: return [4 /*yield*/, handleProductPage()];
|
|
33660
33696
|
case 10: return [2 /*return*/, _d.sent()];
|
|
33661
33697
|
case 11: return [4 /*yield*/, handleBlogPage()];
|
|
33662
33698
|
case 12: return [2 /*return*/, _d.sent()];
|
|
@@ -33668,91 +33704,6 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
33668
33704
|
});
|
|
33669
33705
|
});
|
|
33670
33706
|
};
|
|
33671
|
-
IkasPageDataProvider.prototype.getPageSpecificProduct = function () {
|
|
33672
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
33673
|
-
var slug, getProductMetaData, metaDataResponse, productsResponse, product, isMainProductSlug, selectedVariantValues, variantSlugPart, _i, _a, variant, values, slugPart, displayedVariantType, inStockVariant;
|
|
33674
|
-
var _this = this;
|
|
33675
|
-
return __generator(this, function (_b) {
|
|
33676
|
-
switch (_b.label) {
|
|
33677
|
-
case 0:
|
|
33678
|
-
slug = this.pageParams.slug;
|
|
33679
|
-
if (!slug) {
|
|
33680
|
-
console.log("Slug not found for getPageSpecificProduct");
|
|
33681
|
-
}
|
|
33682
|
-
getProductMetaData = function (slug) { return __awaiter(_this, void 0, void 0, function () {
|
|
33683
|
-
var metaDataList, splitParts, newSlug;
|
|
33684
|
-
return __generator(this, function (_a) {
|
|
33685
|
-
switch (_a.label) {
|
|
33686
|
-
case 0:
|
|
33687
|
-
if (!slug)
|
|
33688
|
-
return [2 /*return*/];
|
|
33689
|
-
return [4 /*yield*/, IkasHTMLMetaDataAPI.listHTMLMetaData(slug)];
|
|
33690
|
-
case 1:
|
|
33691
|
-
metaDataList = _a.sent();
|
|
33692
|
-
if (!(!metaDataList || !metaDataList.length)) return [3 /*break*/, 3];
|
|
33693
|
-
splitParts = slug.split("-");
|
|
33694
|
-
newSlug = splitParts.slice(0, splitParts.length - 1).join("-");
|
|
33695
|
-
return [4 /*yield*/, getProductMetaData(newSlug)];
|
|
33696
|
-
case 2: return [2 /*return*/, _a.sent()];
|
|
33697
|
-
case 3: return [2 /*return*/, {
|
|
33698
|
-
metaData: metaDataList[0],
|
|
33699
|
-
slug: slug,
|
|
33700
|
-
}];
|
|
33701
|
-
}
|
|
33702
|
-
});
|
|
33703
|
-
}); };
|
|
33704
|
-
return [4 /*yield*/, getProductMetaData(slug)];
|
|
33705
|
-
case 1:
|
|
33706
|
-
metaDataResponse = _b.sent();
|
|
33707
|
-
if (!metaDataResponse)
|
|
33708
|
-
return [2 /*return*/];
|
|
33709
|
-
return [4 /*yield*/, IkasProductSearchAPI.searchProducts({
|
|
33710
|
-
productIdList: [metaDataResponse.metaData.targetId],
|
|
33711
|
-
priceListId: IkasStorefrontConfig.priceListId,
|
|
33712
|
-
salesChannelId: IkasStorefrontConfig.salesChannelId,
|
|
33713
|
-
})];
|
|
33714
|
-
case 2:
|
|
33715
|
-
productsResponse = _b.sent();
|
|
33716
|
-
if (!(productsResponse === null || productsResponse === void 0 ? void 0 : productsResponse.data.length))
|
|
33717
|
-
return [2 /*return*/];
|
|
33718
|
-
product = productsResponse.data[0];
|
|
33719
|
-
isMainProductSlug = slug.length === metaDataResponse.slug.length;
|
|
33720
|
-
selectedVariantValues = [];
|
|
33721
|
-
if (!isMainProductSlug) {
|
|
33722
|
-
variantSlugPart = slug.slice(metaDataResponse.slug.length + 1);
|
|
33723
|
-
for (_i = 0, _a = product.variants; _i < _a.length; _i++) {
|
|
33724
|
-
variant = _a[_i];
|
|
33725
|
-
values = variant.variantValues;
|
|
33726
|
-
slugPart = values.map(function (vv) { return vv.slug; }).join("-");
|
|
33727
|
-
if (slugPart === variantSlugPart) {
|
|
33728
|
-
selectedVariantValues = values;
|
|
33729
|
-
break;
|
|
33730
|
-
}
|
|
33731
|
-
}
|
|
33732
|
-
}
|
|
33733
|
-
this.pageSpecificData = new IkasProductDetail(product, selectedVariantValues.length
|
|
33734
|
-
? selectedVariantValues
|
|
33735
|
-
: product.variants[0].variantValues);
|
|
33736
|
-
// Select the first displayed in stock variant
|
|
33737
|
-
if (!selectedVariantValues.length &&
|
|
33738
|
-
this.pageSpecificData.displayedVariantTypes.length) {
|
|
33739
|
-
displayedVariantType = this.pageSpecificData
|
|
33740
|
-
.displayedVariantTypes[0];
|
|
33741
|
-
if (displayedVariantType.displayedVariantValues.length) {
|
|
33742
|
-
inStockVariant = displayedVariantType.displayedVariantValues.find(function (dvv) { return dvv.hasStock; });
|
|
33743
|
-
if (inStockVariant) {
|
|
33744
|
-
this.pageSpecificData.selectedVariantValues =
|
|
33745
|
-
inStockVariant.variant.variantValues;
|
|
33746
|
-
}
|
|
33747
|
-
}
|
|
33748
|
-
}
|
|
33749
|
-
this.pageType = exports.IkasThemePageType.PRODUCT;
|
|
33750
|
-
this.setPageMetaData(metaDataResponse.metaData);
|
|
33751
|
-
return [2 /*return*/];
|
|
33752
|
-
}
|
|
33753
|
-
});
|
|
33754
|
-
});
|
|
33755
|
-
};
|
|
33756
33707
|
IkasPageDataProvider.prototype.getPageComponentPropValues = function (pageComponent) {
|
|
33757
33708
|
return __awaiter(this, void 0, void 0, function () {
|
|
33758
33709
|
var component, result, setPageComponentPropValue;
|
|
@@ -34020,14 +33971,31 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
34020
33971
|
var _propValue = propValue;
|
|
34021
33972
|
var productDetail = new IkasProductDetail(_propValue.product, _propValue.selectedVariantValues);
|
|
34022
33973
|
if (isBrowser) {
|
|
34023
|
-
var
|
|
34024
|
-
var vid_1 =
|
|
33974
|
+
var urlParams_1 = new URLSearchParams(window.location.search);
|
|
33975
|
+
var vid_1 = urlParams_1.get("vid");
|
|
34025
33976
|
if (vid_1) {
|
|
34026
33977
|
var variant = productDetail.product.variants.find(function (v) { return v.id === vid_1; });
|
|
34027
33978
|
if (variant) {
|
|
34028
33979
|
productDetail.selectedVariantValues = variant.variantValues;
|
|
34029
33980
|
}
|
|
34030
33981
|
}
|
|
33982
|
+
else {
|
|
33983
|
+
var productVariantTypeSlugs = productDetail.product.variantTypes.map(function (vt) { return vt.variantType.slug; });
|
|
33984
|
+
var selectedVariantValues_1 = [];
|
|
33985
|
+
productVariantTypeSlugs.forEach(function (slug, vtIndex) {
|
|
33986
|
+
var productVariantType = productDetail.product.variantTypes[vtIndex];
|
|
33987
|
+
var variantValueSlug = urlParams_1.get(slug);
|
|
33988
|
+
if (variantValueSlug) {
|
|
33989
|
+
var variantValue = productVariantType.variantType.values.find(function (v) { return v.slug === variantValueSlug; });
|
|
33990
|
+
if (variantValue)
|
|
33991
|
+
selectedVariantValues_1.push(variantValue);
|
|
33992
|
+
}
|
|
33993
|
+
});
|
|
33994
|
+
if (selectedVariantValues_1.length ===
|
|
33995
|
+
productDetail.selectedVariantValues.length) {
|
|
33996
|
+
productDetail.selectedVariantValues = selectedVariantValues_1;
|
|
33997
|
+
}
|
|
33998
|
+
}
|
|
34031
33999
|
}
|
|
34032
34000
|
return new IkasProductDetail(productDetail.product, productDetail.selectedVariantValues, router);
|
|
34033
34001
|
};
|
|
@@ -62294,21 +62262,6 @@ var Page$1 = function (_a) {
|
|
|
62294
62262
|
var index$1 = mobxReactLite.observer(Page$1);
|
|
62295
62263
|
var getStaticPaths = function (context) { return __awaiter(void 0, void 0, void 0, function () {
|
|
62296
62264
|
return __generator(this, function (_a) {
|
|
62297
|
-
// const targetTypes = [
|
|
62298
|
-
// IkasHTMLMetaDataTargetType.BRAND,
|
|
62299
|
-
// IkasHTMLMetaDataTargetType.CATEGORY,
|
|
62300
|
-
// ];
|
|
62301
|
-
// const metaData = await IkasHTMLMetaDataAPI.listHTMLMetaData(
|
|
62302
|
-
// undefined,
|
|
62303
|
-
// undefined,
|
|
62304
|
-
// targetTypes
|
|
62305
|
-
// );
|
|
62306
|
-
// metaData.map((m) => ({
|
|
62307
|
-
// params: {
|
|
62308
|
-
// slug: m.slug,
|
|
62309
|
-
// originalSlug: m.slug,
|
|
62310
|
-
// },
|
|
62311
|
-
// }))
|
|
62312
62265
|
return [2 /*return*/, {
|
|
62313
62266
|
paths: [],
|
|
62314
62267
|
fallback: "blocking",
|
|
@@ -46,7 +46,6 @@ export declare class IkasPageDataProvider {
|
|
|
46
46
|
getMerchantSettings(): Promise<void>;
|
|
47
47
|
getPageData(): Promise<void>;
|
|
48
48
|
getPageSpecificData(): Promise<void>;
|
|
49
|
-
getPageSpecificProduct(): Promise<void>;
|
|
50
49
|
getPageComponentPropValues(pageComponent: IkasThemePageComponent): Promise<IkasPageComponentPropValue>;
|
|
51
50
|
getPageComponentPropValue(pageComponent: IkasThemePageComponent, prop: IkasThemeComponentProp): Promise<any>;
|
|
52
51
|
private setPageMetaData;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ikas/storefront",
|
|
3
|
-
"version": "0.0.165-alpha.
|
|
3
|
+
"version": "0.0.165-alpha.4",
|
|
4
4
|
"main": "./build/index.js",
|
|
5
5
|
"module": "./build/index.es.js",
|
|
6
6
|
"author": "Umut Ozan Yıldırım",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
"peerDependencies": {
|
|
19
19
|
"mobx": "^6.1.3",
|
|
20
20
|
"mobx-react-lite": "^3.1.5",
|
|
21
|
-
"next": "
|
|
22
|
-
"react": "17.0.
|
|
23
|
-
"react-dom": "17.0.
|
|
21
|
+
"next": "11.1.2",
|
|
22
|
+
"react": "17.0.2",
|
|
23
|
+
"react-dom": "17.0.2"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@apollo/client": "^3.2.0",
|
|
@@ -71,12 +71,12 @@
|
|
|
71
71
|
"jest": "^26.4.2",
|
|
72
72
|
"mobx": "^6.1.3",
|
|
73
73
|
"mobx-react-lite": "^3.1.5",
|
|
74
|
-
"next": "
|
|
74
|
+
"next": "11.1.2",
|
|
75
75
|
"node-sass": "^5.0.0",
|
|
76
76
|
"postcss": "^8.2.4",
|
|
77
77
|
"prettier": "^2.2.1",
|
|
78
|
-
"react": "17.0.
|
|
79
|
-
"react-dom": "17.0.
|
|
78
|
+
"react": "17.0.2",
|
|
79
|
+
"react-dom": "17.0.2",
|
|
80
80
|
"rollup": "^2.38.4",
|
|
81
81
|
"rollup-plugin-copy-assets": "^2.0.3",
|
|
82
82
|
"rollup-plugin-node-polyfills": "^0.2.1",
|