@ikas/storefront 0.0.31 → 0.0.32
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 +101 -145
- package/build/index.js +101 -145
- package/build/utils/providers/page-data.d.ts +0 -1
- package/package.json +1 -1
package/build/index.es.js
CHANGED
|
@@ -11387,7 +11387,7 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11387
11387
|
};
|
|
11388
11388
|
IkasPageDataProvider.prototype.getPageSpecificData = function () {
|
|
11389
11389
|
return __awaiter(this, void 0, void 0, function () {
|
|
11390
|
-
var slug, metaDataList, metaData, handleBrandPage, handleCategoryPage, _a;
|
|
11390
|
+
var slug, metaDataList, metaData, handleBrandPage, handleCategoryPage, handleProductPage, _a;
|
|
11391
11391
|
var _this = this;
|
|
11392
11392
|
return __generator(this, function (_b) {
|
|
11393
11393
|
switch (_b.label) {
|
|
@@ -11404,7 +11404,7 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11404
11404
|
case 1:
|
|
11405
11405
|
metaDataList = _b.sent();
|
|
11406
11406
|
if (!metaDataList || !metaDataList.length) {
|
|
11407
|
-
return [2 /*return
|
|
11407
|
+
return [2 /*return*/];
|
|
11408
11408
|
}
|
|
11409
11409
|
metaData = metaDataList[0];
|
|
11410
11410
|
handleBrandPage = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -11445,6 +11445,25 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11445
11445
|
}
|
|
11446
11446
|
});
|
|
11447
11447
|
}); };
|
|
11448
|
+
handleProductPage = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
11449
|
+
var productsResponse, product;
|
|
11450
|
+
return __generator(this, function (_a) {
|
|
11451
|
+
switch (_a.label) {
|
|
11452
|
+
case 0: return [4 /*yield*/, IkasProductAPI.listProducts({
|
|
11453
|
+
idList: [metaData.targetId],
|
|
11454
|
+
})];
|
|
11455
|
+
case 1:
|
|
11456
|
+
productsResponse = _a.sent();
|
|
11457
|
+
if (!productsResponse.products.length)
|
|
11458
|
+
return [2 /*return*/];
|
|
11459
|
+
product = productsResponse.products[0];
|
|
11460
|
+
this.pageSpecificData = new IkasProductDetail(product, product.variants[0].variantValues, true);
|
|
11461
|
+
this.pageType = IkasThemePageType.PRODUCT;
|
|
11462
|
+
this.setPageMetaData(metaData);
|
|
11463
|
+
return [2 /*return*/];
|
|
11464
|
+
}
|
|
11465
|
+
});
|
|
11466
|
+
}); };
|
|
11448
11467
|
_a = metaData.targetType;
|
|
11449
11468
|
switch (_a) {
|
|
11450
11469
|
case IkasHTMLMetaDataTargetType.BRAND: return [3 /*break*/, 2];
|
|
@@ -11456,7 +11475,7 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11456
11475
|
case 3: return [2 /*return*/, _b.sent()];
|
|
11457
11476
|
case 4: return [4 /*yield*/, handleCategoryPage()];
|
|
11458
11477
|
case 5: return [2 /*return*/, _b.sent()];
|
|
11459
|
-
case 6: return [4 /*yield*/,
|
|
11478
|
+
case 6: return [4 /*yield*/, handleProductPage()];
|
|
11460
11479
|
case 7: return [2 /*return*/, _b.sent()];
|
|
11461
11480
|
case 8: return [3 /*break*/, 9];
|
|
11462
11481
|
case 9: return [2 /*return*/];
|
|
@@ -11464,82 +11483,6 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11464
11483
|
});
|
|
11465
11484
|
});
|
|
11466
11485
|
};
|
|
11467
|
-
IkasPageDataProvider.prototype.getPageSpecificProduct = function () {
|
|
11468
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
11469
|
-
var slug, getProductMetaData, metaDataResponse, productsResponse, product, isMainProductSlug, selectedVariantValues, variantSlugPart, variantSlugs, _i, _a, variant, isSelectedVariant, _loop_1, _b, variantSlugs_1, variantSlug, state_1;
|
|
11470
|
-
var _this = this;
|
|
11471
|
-
return __generator(this, function (_c) {
|
|
11472
|
-
switch (_c.label) {
|
|
11473
|
-
case 0:
|
|
11474
|
-
slug = this.pageParams.slug;
|
|
11475
|
-
getProductMetaData = function (slug) { return __awaiter(_this, void 0, void 0, function () {
|
|
11476
|
-
var metaDataList, splitParts, newSlug;
|
|
11477
|
-
return __generator(this, function (_a) {
|
|
11478
|
-
switch (_a.label) {
|
|
11479
|
-
case 0: return [4 /*yield*/, IkasHTMLMetaDataAPI.listHTMLMetaData(slug)];
|
|
11480
|
-
case 1:
|
|
11481
|
-
metaDataList = _a.sent();
|
|
11482
|
-
if (!(!metaDataList || !metaDataList.length)) return [3 /*break*/, 3];
|
|
11483
|
-
splitParts = slug.split("-");
|
|
11484
|
-
newSlug = splitParts.slice(0, splitParts.length - 1).join("-");
|
|
11485
|
-
return [4 /*yield*/, getProductMetaData(newSlug)];
|
|
11486
|
-
case 2: return [2 /*return*/, _a.sent()];
|
|
11487
|
-
case 3: return [2 /*return*/, {
|
|
11488
|
-
metaData: metaDataList[0],
|
|
11489
|
-
slug: slug,
|
|
11490
|
-
}];
|
|
11491
|
-
}
|
|
11492
|
-
});
|
|
11493
|
-
}); };
|
|
11494
|
-
return [4 /*yield*/, getProductMetaData(slug)];
|
|
11495
|
-
case 1:
|
|
11496
|
-
metaDataResponse = _c.sent();
|
|
11497
|
-
if (!metaDataResponse)
|
|
11498
|
-
return [2 /*return*/];
|
|
11499
|
-
return [4 /*yield*/, IkasProductAPI.listProducts({
|
|
11500
|
-
idList: [metaDataResponse.metaData.targetId],
|
|
11501
|
-
})];
|
|
11502
|
-
case 2:
|
|
11503
|
-
productsResponse = _c.sent();
|
|
11504
|
-
if (!productsResponse.products.length)
|
|
11505
|
-
return [2 /*return*/];
|
|
11506
|
-
product = productsResponse.products[0];
|
|
11507
|
-
isMainProductSlug = slug.length === metaDataResponse.slug.length;
|
|
11508
|
-
selectedVariantValues = [];
|
|
11509
|
-
if (!isMainProductSlug) {
|
|
11510
|
-
variantSlugPart = slug.slice(metaDataResponse.slug.length + 1);
|
|
11511
|
-
variantSlugs = variantSlugPart.split("-");
|
|
11512
|
-
for (_i = 0, _a = product.variants; _i < _a.length; _i++) {
|
|
11513
|
-
variant = _a[_i];
|
|
11514
|
-
isSelectedVariant = true;
|
|
11515
|
-
_loop_1 = function (variantSlug) {
|
|
11516
|
-
if (!variant.variantValues.some(function (vv) { return vv.slug === variantSlug; })) {
|
|
11517
|
-
isSelectedVariant = false;
|
|
11518
|
-
return "break";
|
|
11519
|
-
}
|
|
11520
|
-
};
|
|
11521
|
-
for (_b = 0, variantSlugs_1 = variantSlugs; _b < variantSlugs_1.length; _b++) {
|
|
11522
|
-
variantSlug = variantSlugs_1[_b];
|
|
11523
|
-
state_1 = _loop_1(variantSlug);
|
|
11524
|
-
if (state_1 === "break")
|
|
11525
|
-
break;
|
|
11526
|
-
}
|
|
11527
|
-
if (isSelectedVariant) {
|
|
11528
|
-
selectedVariantValues = variant.variantValues;
|
|
11529
|
-
break;
|
|
11530
|
-
}
|
|
11531
|
-
}
|
|
11532
|
-
}
|
|
11533
|
-
this.pageSpecificData = new IkasProductDetail(product, selectedVariantValues.length
|
|
11534
|
-
? selectedVariantValues
|
|
11535
|
-
: product.variants[0].variantValues, true);
|
|
11536
|
-
this.pageType = IkasThemePageType.PRODUCT;
|
|
11537
|
-
this.setPageMetaData(metaDataResponse.metaData);
|
|
11538
|
-
return [2 /*return*/];
|
|
11539
|
-
}
|
|
11540
|
-
});
|
|
11541
|
-
});
|
|
11542
|
-
};
|
|
11543
11486
|
IkasPageDataProvider.prototype.getPageComponentPropValues = function (pageComponent) {
|
|
11544
11487
|
return __awaiter(this, void 0, void 0, function () {
|
|
11545
11488
|
var component, result, setPageComponentPropValue;
|
|
@@ -11704,17 +11647,44 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11704
11647
|
var usePageData = propValue.usePageData;
|
|
11705
11648
|
var _propValue = propValue;
|
|
11706
11649
|
var productDetail = new IkasProductDetail(_propValue.product, _propValue.selectedVariantValues);
|
|
11707
|
-
|
|
11708
|
-
|
|
11709
|
-
|
|
11710
|
-
|
|
11711
|
-
|
|
11650
|
+
var product = productDetail.product;
|
|
11651
|
+
var selectedVariantValues = [];
|
|
11652
|
+
if (usePageData && isBrowser) {
|
|
11653
|
+
var urlParams_1 = new URLSearchParams(window.location.search);
|
|
11654
|
+
var vid_1 = urlParams_1.get("vid");
|
|
11655
|
+
var hasVid = false;
|
|
11656
|
+
if (vid_1 && typeof vid_1 === "string") {
|
|
11657
|
+
var variant = product.variants.find(function (v) { return v.id === vid_1; });
|
|
11712
11658
|
if (variant) {
|
|
11713
|
-
|
|
11659
|
+
selectedVariantValues = variant.variantValues;
|
|
11660
|
+
hasVid = true;
|
|
11714
11661
|
}
|
|
11715
11662
|
}
|
|
11663
|
+
if (!hasVid) {
|
|
11664
|
+
product.variantTypes.forEach(function (pvt) {
|
|
11665
|
+
var slug = pvt.variantType.slug;
|
|
11666
|
+
var variantValueParam = urlParams_1.get(slug);
|
|
11667
|
+
if (variantValueParam) {
|
|
11668
|
+
var variantValueSlug_1 = variantValueParam;
|
|
11669
|
+
if (Array.isArray(variantValueParam)) {
|
|
11670
|
+
variantValueSlug_1 = variantValueParam[0];
|
|
11671
|
+
}
|
|
11672
|
+
var variantValue = pvt.variantType.values.find(function (vv) { return vv.slug === variantValueSlug_1; });
|
|
11673
|
+
if (variantValue)
|
|
11674
|
+
selectedVariantValues.push(variantValue);
|
|
11675
|
+
else
|
|
11676
|
+
selectedVariantValues.push(pvt.variantType.values[0]);
|
|
11677
|
+
}
|
|
11678
|
+
else {
|
|
11679
|
+
selectedVariantValues.push(pvt.variantType.values[0]);
|
|
11680
|
+
}
|
|
11681
|
+
});
|
|
11682
|
+
}
|
|
11683
|
+
}
|
|
11684
|
+
else {
|
|
11685
|
+
selectedVariantValues = productDetail.selectedVariantValues;
|
|
11716
11686
|
}
|
|
11717
|
-
pageComponentPropValue.propValues[prop.name] = new IkasProductDetail(productDetail.product,
|
|
11687
|
+
pageComponentPropValue.propValues[prop.name] = new IkasProductDetail(productDetail.product, selectedVariantValues, usePageData, router);
|
|
11718
11688
|
};
|
|
11719
11689
|
IkasPageDataProvider.initLinkPropValue = function (prop, propValue, pageComponentPropValue) {
|
|
11720
11690
|
if (Array.isArray(propValue)) {
|
|
@@ -13635,13 +13605,17 @@ var IkasProductDetail = /** @class */ (function () {
|
|
|
13635
13605
|
});
|
|
13636
13606
|
Object.defineProperty(IkasProductDetail.prototype, "href", {
|
|
13637
13607
|
get: function () {
|
|
13608
|
+
var _this = this;
|
|
13638
13609
|
var metaData = this.product.metaData;
|
|
13639
13610
|
if (!(metaData === null || metaData === void 0 ? void 0 : metaData.slug))
|
|
13640
13611
|
return "";
|
|
13641
|
-
if (this.product.hasVariant) {
|
|
13642
|
-
|
|
13643
|
-
|
|
13644
|
-
.
|
|
13612
|
+
if (this.product.hasVariant && typeof window !== "undefined") {
|
|
13613
|
+
var queryParams_1 = {};
|
|
13614
|
+
this.selectedVariantValues.forEach(function (vv) {
|
|
13615
|
+
var vt = _this.product.variantTypes.find(function (vt) { return vt.variantType.id === vv.variantTypeId; });
|
|
13616
|
+
queryParams_1[vt.variantType.slug] = vv.slug;
|
|
13617
|
+
});
|
|
13618
|
+
return "/" + metaData.slug + "?" + queryString.stringify(queryParams_1);
|
|
13645
13619
|
}
|
|
13646
13620
|
return "/" + metaData.slug;
|
|
13647
13621
|
},
|
|
@@ -13650,18 +13624,12 @@ var IkasProductDetail = /** @class */ (function () {
|
|
|
13650
13624
|
});
|
|
13651
13625
|
IkasProductDetail.prototype.selectVariantValue = function (variantValue) {
|
|
13652
13626
|
var _a;
|
|
13653
|
-
|
|
13654
|
-
var selectedVariantValues = this.selectedVariantValues.map(function (vv) {
|
|
13627
|
+
this.selectedVariantValues = this.selectedVariantValues.map(function (vv) {
|
|
13655
13628
|
if (vv.variantTypeId === variantValue.variantTypeId)
|
|
13656
13629
|
return variantValue;
|
|
13657
13630
|
return vv;
|
|
13658
13631
|
});
|
|
13659
|
-
this.
|
|
13660
|
-
var newUrl = "/" + metaData.slug + "-" + this.selectedVariantValues
|
|
13661
|
-
.map(function (vv) { return vv.slug; })
|
|
13662
|
-
.join("-");
|
|
13663
|
-
var isShallow = process.env.NODE_ENV !== "production";
|
|
13664
|
-
(_a = this.router) === null || _a === void 0 ? void 0 : _a.replace(newUrl, undefined, { shallow: isShallow });
|
|
13632
|
+
(_a = this.router) === null || _a === void 0 ? void 0 : _a.replace(this.href, undefined, { shallow: true });
|
|
13665
13633
|
};
|
|
13666
13634
|
return IkasProductDetail;
|
|
13667
13635
|
}());
|
|
@@ -22701,14 +22669,38 @@ function createProductSchema(pageSpecificDataStr) {
|
|
|
22701
22669
|
var productDetail = new IkasProductDetail(productDetailParsed.product, productDetailParsed.selectedVariantValues);
|
|
22702
22670
|
var isBrowser = typeof window !== "undefined";
|
|
22703
22671
|
if (isBrowser) {
|
|
22704
|
-
var
|
|
22705
|
-
var vid_1 =
|
|
22706
|
-
|
|
22672
|
+
var urlParams_1 = new URLSearchParams(window.location.search);
|
|
22673
|
+
var vid_1 = urlParams_1.get("vid");
|
|
22674
|
+
var hasVid = false;
|
|
22675
|
+
if (vid_1 && typeof vid_1 === "string") {
|
|
22707
22676
|
var variant = productDetail.product.variants.find(function (v) { return v.id === vid_1; });
|
|
22708
22677
|
if (variant) {
|
|
22709
22678
|
productDetail.selectedVariantValues = variant.variantValues;
|
|
22679
|
+
hasVid = true;
|
|
22710
22680
|
}
|
|
22711
22681
|
}
|
|
22682
|
+
if (!hasVid) {
|
|
22683
|
+
var selectedVariantValues_1 = [];
|
|
22684
|
+
productDetail.product.variantTypes.forEach(function (pvt) {
|
|
22685
|
+
var slug = pvt.variantType.slug;
|
|
22686
|
+
var variantValueParam = urlParams_1.get(slug);
|
|
22687
|
+
if (variantValueParam) {
|
|
22688
|
+
var variantValueSlug_1 = variantValueParam;
|
|
22689
|
+
if (Array.isArray(variantValueParam)) {
|
|
22690
|
+
variantValueSlug_1 = variantValueParam[0];
|
|
22691
|
+
}
|
|
22692
|
+
var variantValue = pvt.variantType.values.find(function (vv) { return vv.slug === variantValueSlug_1; });
|
|
22693
|
+
if (variantValue)
|
|
22694
|
+
selectedVariantValues_1.push(variantValue);
|
|
22695
|
+
else
|
|
22696
|
+
selectedVariantValues_1.push(pvt.variantType.values[0]);
|
|
22697
|
+
}
|
|
22698
|
+
else {
|
|
22699
|
+
selectedVariantValues_1.push(pvt.variantType.values[0]);
|
|
22700
|
+
}
|
|
22701
|
+
});
|
|
22702
|
+
productDetail.selectedVariantValues = selectedVariantValues_1;
|
|
22703
|
+
}
|
|
22712
22704
|
}
|
|
22713
22705
|
return {
|
|
22714
22706
|
"@context": "https://schema.org/",
|
|
@@ -23429,60 +23421,24 @@ var Page$1 = function (_a) {
|
|
|
23429
23421
|
};
|
|
23430
23422
|
var index$1 = observer(Page$1);
|
|
23431
23423
|
var getStaticPaths = function (context) { return __awaiter(void 0, void 0, void 0, function () {
|
|
23432
|
-
var metaData, targetTypes,
|
|
23433
|
-
return __generator(this, function (
|
|
23434
|
-
switch (
|
|
23424
|
+
var metaData, targetTypes, filteredMetaData;
|
|
23425
|
+
return __generator(this, function (_a) {
|
|
23426
|
+
switch (_a.label) {
|
|
23435
23427
|
case 0: return [4 /*yield*/, IkasHTMLMetaDataAPI.listHTMLMetaData()];
|
|
23436
23428
|
case 1:
|
|
23437
|
-
metaData =
|
|
23429
|
+
metaData = _a.sent();
|
|
23438
23430
|
targetTypes = [
|
|
23439
23431
|
IkasHTMLMetaDataTargetType.BRAND,
|
|
23440
23432
|
IkasHTMLMetaDataTargetType.CATEGORY,
|
|
23433
|
+
IkasHTMLMetaDataTargetType.PRODUCT,
|
|
23441
23434
|
];
|
|
23442
|
-
|
|
23443
|
-
productMetaData = metaData.filter(function (m) { return m.targetType && m.targetType === IkasHTMLMetaDataTargetType.PRODUCT; });
|
|
23444
|
-
return [4 /*yield*/, IkasProductAPI.listProducts({
|
|
23445
|
-
idList: productMetaData.map(function (p) { return p.targetId; }),
|
|
23446
|
-
})];
|
|
23447
|
-
case 2:
|
|
23448
|
-
productsResponse = _b.sent();
|
|
23449
|
-
productParams = [];
|
|
23450
|
-
_loop_1 = function (product) {
|
|
23451
|
-
var meta = productMetaData.find(function (pm) { return pm.targetId === product.id; });
|
|
23452
|
-
if (meta) {
|
|
23453
|
-
for (var _i = 0, _a = product.variants; _i < _a.length; _i++) {
|
|
23454
|
-
var variant = _a[_i];
|
|
23455
|
-
if (product.hasVariant) {
|
|
23456
|
-
var variantSlug = variant.variantValues
|
|
23457
|
-
.map(function (vv) { return vv.slug; })
|
|
23458
|
-
.join("-");
|
|
23459
|
-
productParams.push({
|
|
23460
|
-
slug: meta.slug + "-" + variantSlug,
|
|
23461
|
-
});
|
|
23462
|
-
}
|
|
23463
|
-
else {
|
|
23464
|
-
productParams.push({
|
|
23465
|
-
slug: meta.slug,
|
|
23466
|
-
});
|
|
23467
|
-
}
|
|
23468
|
-
}
|
|
23469
|
-
}
|
|
23470
|
-
};
|
|
23471
|
-
for (_i = 0, _a = productsResponse.products; _i < _a.length; _i++) {
|
|
23472
|
-
product = _a[_i];
|
|
23473
|
-
_loop_1(product);
|
|
23474
|
-
}
|
|
23435
|
+
filteredMetaData = metaData.filter(function (m) { return m.targetType && targetTypes.includes(m.targetType); });
|
|
23475
23436
|
return [2 /*return*/, {
|
|
23476
|
-
paths:
|
|
23477
|
-
.map(function (m) { return ({
|
|
23437
|
+
paths: filteredMetaData.map(function (m) { return ({
|
|
23478
23438
|
params: {
|
|
23479
23439
|
slug: m.slug,
|
|
23480
|
-
originalSlug: m.slug,
|
|
23481
23440
|
},
|
|
23482
|
-
}); })
|
|
23483
|
-
.concat(productParams.map(function (pp) { return ({
|
|
23484
|
-
params: pp,
|
|
23485
|
-
}); })),
|
|
23441
|
+
}); }),
|
|
23486
23442
|
fallback: "blocking",
|
|
23487
23443
|
}];
|
|
23488
23444
|
}
|
package/build/index.js
CHANGED
|
@@ -11400,7 +11400,7 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11400
11400
|
};
|
|
11401
11401
|
IkasPageDataProvider.prototype.getPageSpecificData = function () {
|
|
11402
11402
|
return __awaiter(this, void 0, void 0, function () {
|
|
11403
|
-
var slug, metaDataList, metaData, handleBrandPage, handleCategoryPage, _a;
|
|
11403
|
+
var slug, metaDataList, metaData, handleBrandPage, handleCategoryPage, handleProductPage, _a;
|
|
11404
11404
|
var _this = this;
|
|
11405
11405
|
return __generator(this, function (_b) {
|
|
11406
11406
|
switch (_b.label) {
|
|
@@ -11417,7 +11417,7 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11417
11417
|
case 1:
|
|
11418
11418
|
metaDataList = _b.sent();
|
|
11419
11419
|
if (!metaDataList || !metaDataList.length) {
|
|
11420
|
-
return [2 /*return
|
|
11420
|
+
return [2 /*return*/];
|
|
11421
11421
|
}
|
|
11422
11422
|
metaData = metaDataList[0];
|
|
11423
11423
|
handleBrandPage = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -11458,6 +11458,25 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11458
11458
|
}
|
|
11459
11459
|
});
|
|
11460
11460
|
}); };
|
|
11461
|
+
handleProductPage = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
11462
|
+
var productsResponse, product;
|
|
11463
|
+
return __generator(this, function (_a) {
|
|
11464
|
+
switch (_a.label) {
|
|
11465
|
+
case 0: return [4 /*yield*/, IkasProductAPI.listProducts({
|
|
11466
|
+
idList: [metaData.targetId],
|
|
11467
|
+
})];
|
|
11468
|
+
case 1:
|
|
11469
|
+
productsResponse = _a.sent();
|
|
11470
|
+
if (!productsResponse.products.length)
|
|
11471
|
+
return [2 /*return*/];
|
|
11472
|
+
product = productsResponse.products[0];
|
|
11473
|
+
this.pageSpecificData = new IkasProductDetail(product, product.variants[0].variantValues, true);
|
|
11474
|
+
this.pageType = exports.IkasThemePageType.PRODUCT;
|
|
11475
|
+
this.setPageMetaData(metaData);
|
|
11476
|
+
return [2 /*return*/];
|
|
11477
|
+
}
|
|
11478
|
+
});
|
|
11479
|
+
}); };
|
|
11461
11480
|
_a = metaData.targetType;
|
|
11462
11481
|
switch (_a) {
|
|
11463
11482
|
case exports.IkasHTMLMetaDataTargetType.BRAND: return [3 /*break*/, 2];
|
|
@@ -11469,7 +11488,7 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11469
11488
|
case 3: return [2 /*return*/, _b.sent()];
|
|
11470
11489
|
case 4: return [4 /*yield*/, handleCategoryPage()];
|
|
11471
11490
|
case 5: return [2 /*return*/, _b.sent()];
|
|
11472
|
-
case 6: return [4 /*yield*/,
|
|
11491
|
+
case 6: return [4 /*yield*/, handleProductPage()];
|
|
11473
11492
|
case 7: return [2 /*return*/, _b.sent()];
|
|
11474
11493
|
case 8: return [3 /*break*/, 9];
|
|
11475
11494
|
case 9: return [2 /*return*/];
|
|
@@ -11477,82 +11496,6 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11477
11496
|
});
|
|
11478
11497
|
});
|
|
11479
11498
|
};
|
|
11480
|
-
IkasPageDataProvider.prototype.getPageSpecificProduct = function () {
|
|
11481
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
11482
|
-
var slug, getProductMetaData, metaDataResponse, productsResponse, product, isMainProductSlug, selectedVariantValues, variantSlugPart, variantSlugs, _i, _a, variant, isSelectedVariant, _loop_1, _b, variantSlugs_1, variantSlug, state_1;
|
|
11483
|
-
var _this = this;
|
|
11484
|
-
return __generator(this, function (_c) {
|
|
11485
|
-
switch (_c.label) {
|
|
11486
|
-
case 0:
|
|
11487
|
-
slug = this.pageParams.slug;
|
|
11488
|
-
getProductMetaData = function (slug) { return __awaiter(_this, void 0, void 0, function () {
|
|
11489
|
-
var metaDataList, splitParts, newSlug;
|
|
11490
|
-
return __generator(this, function (_a) {
|
|
11491
|
-
switch (_a.label) {
|
|
11492
|
-
case 0: return [4 /*yield*/, IkasHTMLMetaDataAPI.listHTMLMetaData(slug)];
|
|
11493
|
-
case 1:
|
|
11494
|
-
metaDataList = _a.sent();
|
|
11495
|
-
if (!(!metaDataList || !metaDataList.length)) return [3 /*break*/, 3];
|
|
11496
|
-
splitParts = slug.split("-");
|
|
11497
|
-
newSlug = splitParts.slice(0, splitParts.length - 1).join("-");
|
|
11498
|
-
return [4 /*yield*/, getProductMetaData(newSlug)];
|
|
11499
|
-
case 2: return [2 /*return*/, _a.sent()];
|
|
11500
|
-
case 3: return [2 /*return*/, {
|
|
11501
|
-
metaData: metaDataList[0],
|
|
11502
|
-
slug: slug,
|
|
11503
|
-
}];
|
|
11504
|
-
}
|
|
11505
|
-
});
|
|
11506
|
-
}); };
|
|
11507
|
-
return [4 /*yield*/, getProductMetaData(slug)];
|
|
11508
|
-
case 1:
|
|
11509
|
-
metaDataResponse = _c.sent();
|
|
11510
|
-
if (!metaDataResponse)
|
|
11511
|
-
return [2 /*return*/];
|
|
11512
|
-
return [4 /*yield*/, IkasProductAPI.listProducts({
|
|
11513
|
-
idList: [metaDataResponse.metaData.targetId],
|
|
11514
|
-
})];
|
|
11515
|
-
case 2:
|
|
11516
|
-
productsResponse = _c.sent();
|
|
11517
|
-
if (!productsResponse.products.length)
|
|
11518
|
-
return [2 /*return*/];
|
|
11519
|
-
product = productsResponse.products[0];
|
|
11520
|
-
isMainProductSlug = slug.length === metaDataResponse.slug.length;
|
|
11521
|
-
selectedVariantValues = [];
|
|
11522
|
-
if (!isMainProductSlug) {
|
|
11523
|
-
variantSlugPart = slug.slice(metaDataResponse.slug.length + 1);
|
|
11524
|
-
variantSlugs = variantSlugPart.split("-");
|
|
11525
|
-
for (_i = 0, _a = product.variants; _i < _a.length; _i++) {
|
|
11526
|
-
variant = _a[_i];
|
|
11527
|
-
isSelectedVariant = true;
|
|
11528
|
-
_loop_1 = function (variantSlug) {
|
|
11529
|
-
if (!variant.variantValues.some(function (vv) { return vv.slug === variantSlug; })) {
|
|
11530
|
-
isSelectedVariant = false;
|
|
11531
|
-
return "break";
|
|
11532
|
-
}
|
|
11533
|
-
};
|
|
11534
|
-
for (_b = 0, variantSlugs_1 = variantSlugs; _b < variantSlugs_1.length; _b++) {
|
|
11535
|
-
variantSlug = variantSlugs_1[_b];
|
|
11536
|
-
state_1 = _loop_1(variantSlug);
|
|
11537
|
-
if (state_1 === "break")
|
|
11538
|
-
break;
|
|
11539
|
-
}
|
|
11540
|
-
if (isSelectedVariant) {
|
|
11541
|
-
selectedVariantValues = variant.variantValues;
|
|
11542
|
-
break;
|
|
11543
|
-
}
|
|
11544
|
-
}
|
|
11545
|
-
}
|
|
11546
|
-
this.pageSpecificData = new IkasProductDetail(product, selectedVariantValues.length
|
|
11547
|
-
? selectedVariantValues
|
|
11548
|
-
: product.variants[0].variantValues, true);
|
|
11549
|
-
this.pageType = exports.IkasThemePageType.PRODUCT;
|
|
11550
|
-
this.setPageMetaData(metaDataResponse.metaData);
|
|
11551
|
-
return [2 /*return*/];
|
|
11552
|
-
}
|
|
11553
|
-
});
|
|
11554
|
-
});
|
|
11555
|
-
};
|
|
11556
11499
|
IkasPageDataProvider.prototype.getPageComponentPropValues = function (pageComponent) {
|
|
11557
11500
|
return __awaiter(this, void 0, void 0, function () {
|
|
11558
11501
|
var component, result, setPageComponentPropValue;
|
|
@@ -11717,17 +11660,44 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11717
11660
|
var usePageData = propValue.usePageData;
|
|
11718
11661
|
var _propValue = propValue;
|
|
11719
11662
|
var productDetail = new IkasProductDetail(_propValue.product, _propValue.selectedVariantValues);
|
|
11720
|
-
|
|
11721
|
-
|
|
11722
|
-
|
|
11723
|
-
|
|
11724
|
-
|
|
11663
|
+
var product = productDetail.product;
|
|
11664
|
+
var selectedVariantValues = [];
|
|
11665
|
+
if (usePageData && isBrowser) {
|
|
11666
|
+
var urlParams_1 = new URLSearchParams(window.location.search);
|
|
11667
|
+
var vid_1 = urlParams_1.get("vid");
|
|
11668
|
+
var hasVid = false;
|
|
11669
|
+
if (vid_1 && typeof vid_1 === "string") {
|
|
11670
|
+
var variant = product.variants.find(function (v) { return v.id === vid_1; });
|
|
11725
11671
|
if (variant) {
|
|
11726
|
-
|
|
11672
|
+
selectedVariantValues = variant.variantValues;
|
|
11673
|
+
hasVid = true;
|
|
11727
11674
|
}
|
|
11728
11675
|
}
|
|
11676
|
+
if (!hasVid) {
|
|
11677
|
+
product.variantTypes.forEach(function (pvt) {
|
|
11678
|
+
var slug = pvt.variantType.slug;
|
|
11679
|
+
var variantValueParam = urlParams_1.get(slug);
|
|
11680
|
+
if (variantValueParam) {
|
|
11681
|
+
var variantValueSlug_1 = variantValueParam;
|
|
11682
|
+
if (Array.isArray(variantValueParam)) {
|
|
11683
|
+
variantValueSlug_1 = variantValueParam[0];
|
|
11684
|
+
}
|
|
11685
|
+
var variantValue = pvt.variantType.values.find(function (vv) { return vv.slug === variantValueSlug_1; });
|
|
11686
|
+
if (variantValue)
|
|
11687
|
+
selectedVariantValues.push(variantValue);
|
|
11688
|
+
else
|
|
11689
|
+
selectedVariantValues.push(pvt.variantType.values[0]);
|
|
11690
|
+
}
|
|
11691
|
+
else {
|
|
11692
|
+
selectedVariantValues.push(pvt.variantType.values[0]);
|
|
11693
|
+
}
|
|
11694
|
+
});
|
|
11695
|
+
}
|
|
11696
|
+
}
|
|
11697
|
+
else {
|
|
11698
|
+
selectedVariantValues = productDetail.selectedVariantValues;
|
|
11729
11699
|
}
|
|
11730
|
-
pageComponentPropValue.propValues[prop.name] = new IkasProductDetail(productDetail.product,
|
|
11700
|
+
pageComponentPropValue.propValues[prop.name] = new IkasProductDetail(productDetail.product, selectedVariantValues, usePageData, router);
|
|
11731
11701
|
};
|
|
11732
11702
|
IkasPageDataProvider.initLinkPropValue = function (prop, propValue, pageComponentPropValue) {
|
|
11733
11703
|
if (Array.isArray(propValue)) {
|
|
@@ -13621,13 +13591,17 @@ var IkasProductDetail = /** @class */ (function () {
|
|
|
13621
13591
|
});
|
|
13622
13592
|
Object.defineProperty(IkasProductDetail.prototype, "href", {
|
|
13623
13593
|
get: function () {
|
|
13594
|
+
var _this = this;
|
|
13624
13595
|
var metaData = this.product.metaData;
|
|
13625
13596
|
if (!(metaData === null || metaData === void 0 ? void 0 : metaData.slug))
|
|
13626
13597
|
return "";
|
|
13627
|
-
if (this.product.hasVariant) {
|
|
13628
|
-
|
|
13629
|
-
|
|
13630
|
-
.
|
|
13598
|
+
if (this.product.hasVariant && typeof window !== "undefined") {
|
|
13599
|
+
var queryParams_1 = {};
|
|
13600
|
+
this.selectedVariantValues.forEach(function (vv) {
|
|
13601
|
+
var vt = _this.product.variantTypes.find(function (vt) { return vt.variantType.id === vv.variantTypeId; });
|
|
13602
|
+
queryParams_1[vt.variantType.slug] = vv.slug;
|
|
13603
|
+
});
|
|
13604
|
+
return "/" + metaData.slug + "?" + queryString__default['default'].stringify(queryParams_1);
|
|
13631
13605
|
}
|
|
13632
13606
|
return "/" + metaData.slug;
|
|
13633
13607
|
},
|
|
@@ -13636,18 +13610,12 @@ var IkasProductDetail = /** @class */ (function () {
|
|
|
13636
13610
|
});
|
|
13637
13611
|
IkasProductDetail.prototype.selectVariantValue = function (variantValue) {
|
|
13638
13612
|
var _a;
|
|
13639
|
-
|
|
13640
|
-
var selectedVariantValues = this.selectedVariantValues.map(function (vv) {
|
|
13613
|
+
this.selectedVariantValues = this.selectedVariantValues.map(function (vv) {
|
|
13641
13614
|
if (vv.variantTypeId === variantValue.variantTypeId)
|
|
13642
13615
|
return variantValue;
|
|
13643
13616
|
return vv;
|
|
13644
13617
|
});
|
|
13645
|
-
this.
|
|
13646
|
-
var newUrl = "/" + metaData.slug + "-" + this.selectedVariantValues
|
|
13647
|
-
.map(function (vv) { return vv.slug; })
|
|
13648
|
-
.join("-");
|
|
13649
|
-
var isShallow = process.env.NODE_ENV !== "production";
|
|
13650
|
-
(_a = this.router) === null || _a === void 0 ? void 0 : _a.replace(newUrl, undefined, { shallow: isShallow });
|
|
13618
|
+
(_a = this.router) === null || _a === void 0 ? void 0 : _a.replace(this.href, undefined, { shallow: true });
|
|
13651
13619
|
};
|
|
13652
13620
|
return IkasProductDetail;
|
|
13653
13621
|
}());
|
|
@@ -22685,14 +22653,38 @@ function createProductSchema(pageSpecificDataStr) {
|
|
|
22685
22653
|
var productDetail = new IkasProductDetail(productDetailParsed.product, productDetailParsed.selectedVariantValues);
|
|
22686
22654
|
var isBrowser = typeof window !== "undefined";
|
|
22687
22655
|
if (isBrowser) {
|
|
22688
|
-
var
|
|
22689
|
-
var vid_1 =
|
|
22690
|
-
|
|
22656
|
+
var urlParams_1 = new URLSearchParams(window.location.search);
|
|
22657
|
+
var vid_1 = urlParams_1.get("vid");
|
|
22658
|
+
var hasVid = false;
|
|
22659
|
+
if (vid_1 && typeof vid_1 === "string") {
|
|
22691
22660
|
var variant = productDetail.product.variants.find(function (v) { return v.id === vid_1; });
|
|
22692
22661
|
if (variant) {
|
|
22693
22662
|
productDetail.selectedVariantValues = variant.variantValues;
|
|
22663
|
+
hasVid = true;
|
|
22694
22664
|
}
|
|
22695
22665
|
}
|
|
22666
|
+
if (!hasVid) {
|
|
22667
|
+
var selectedVariantValues_1 = [];
|
|
22668
|
+
productDetail.product.variantTypes.forEach(function (pvt) {
|
|
22669
|
+
var slug = pvt.variantType.slug;
|
|
22670
|
+
var variantValueParam = urlParams_1.get(slug);
|
|
22671
|
+
if (variantValueParam) {
|
|
22672
|
+
var variantValueSlug_1 = variantValueParam;
|
|
22673
|
+
if (Array.isArray(variantValueParam)) {
|
|
22674
|
+
variantValueSlug_1 = variantValueParam[0];
|
|
22675
|
+
}
|
|
22676
|
+
var variantValue = pvt.variantType.values.find(function (vv) { return vv.slug === variantValueSlug_1; });
|
|
22677
|
+
if (variantValue)
|
|
22678
|
+
selectedVariantValues_1.push(variantValue);
|
|
22679
|
+
else
|
|
22680
|
+
selectedVariantValues_1.push(pvt.variantType.values[0]);
|
|
22681
|
+
}
|
|
22682
|
+
else {
|
|
22683
|
+
selectedVariantValues_1.push(pvt.variantType.values[0]);
|
|
22684
|
+
}
|
|
22685
|
+
});
|
|
22686
|
+
productDetail.selectedVariantValues = selectedVariantValues_1;
|
|
22687
|
+
}
|
|
22696
22688
|
}
|
|
22697
22689
|
return {
|
|
22698
22690
|
"@context": "https://schema.org/",
|
|
@@ -23413,60 +23405,24 @@ var Page$1 = function (_a) {
|
|
|
23413
23405
|
};
|
|
23414
23406
|
var index$1 = mobxReactLite.observer(Page$1);
|
|
23415
23407
|
var getStaticPaths = function (context) { return __awaiter(void 0, void 0, void 0, function () {
|
|
23416
|
-
var metaData, targetTypes,
|
|
23417
|
-
return __generator(this, function (
|
|
23418
|
-
switch (
|
|
23408
|
+
var metaData, targetTypes, filteredMetaData;
|
|
23409
|
+
return __generator(this, function (_a) {
|
|
23410
|
+
switch (_a.label) {
|
|
23419
23411
|
case 0: return [4 /*yield*/, IkasHTMLMetaDataAPI.listHTMLMetaData()];
|
|
23420
23412
|
case 1:
|
|
23421
|
-
metaData =
|
|
23413
|
+
metaData = _a.sent();
|
|
23422
23414
|
targetTypes = [
|
|
23423
23415
|
exports.IkasHTMLMetaDataTargetType.BRAND,
|
|
23424
23416
|
exports.IkasHTMLMetaDataTargetType.CATEGORY,
|
|
23417
|
+
exports.IkasHTMLMetaDataTargetType.PRODUCT,
|
|
23425
23418
|
];
|
|
23426
|
-
|
|
23427
|
-
productMetaData = metaData.filter(function (m) { return m.targetType && m.targetType === exports.IkasHTMLMetaDataTargetType.PRODUCT; });
|
|
23428
|
-
return [4 /*yield*/, IkasProductAPI.listProducts({
|
|
23429
|
-
idList: productMetaData.map(function (p) { return p.targetId; }),
|
|
23430
|
-
})];
|
|
23431
|
-
case 2:
|
|
23432
|
-
productsResponse = _b.sent();
|
|
23433
|
-
productParams = [];
|
|
23434
|
-
_loop_1 = function (product) {
|
|
23435
|
-
var meta = productMetaData.find(function (pm) { return pm.targetId === product.id; });
|
|
23436
|
-
if (meta) {
|
|
23437
|
-
for (var _i = 0, _a = product.variants; _i < _a.length; _i++) {
|
|
23438
|
-
var variant = _a[_i];
|
|
23439
|
-
if (product.hasVariant) {
|
|
23440
|
-
var variantSlug = variant.variantValues
|
|
23441
|
-
.map(function (vv) { return vv.slug; })
|
|
23442
|
-
.join("-");
|
|
23443
|
-
productParams.push({
|
|
23444
|
-
slug: meta.slug + "-" + variantSlug,
|
|
23445
|
-
});
|
|
23446
|
-
}
|
|
23447
|
-
else {
|
|
23448
|
-
productParams.push({
|
|
23449
|
-
slug: meta.slug,
|
|
23450
|
-
});
|
|
23451
|
-
}
|
|
23452
|
-
}
|
|
23453
|
-
}
|
|
23454
|
-
};
|
|
23455
|
-
for (_i = 0, _a = productsResponse.products; _i < _a.length; _i++) {
|
|
23456
|
-
product = _a[_i];
|
|
23457
|
-
_loop_1(product);
|
|
23458
|
-
}
|
|
23419
|
+
filteredMetaData = metaData.filter(function (m) { return m.targetType && targetTypes.includes(m.targetType); });
|
|
23459
23420
|
return [2 /*return*/, {
|
|
23460
|
-
paths:
|
|
23461
|
-
.map(function (m) { return ({
|
|
23421
|
+
paths: filteredMetaData.map(function (m) { return ({
|
|
23462
23422
|
params: {
|
|
23463
23423
|
slug: m.slug,
|
|
23464
|
-
originalSlug: m.slug,
|
|
23465
23424
|
},
|
|
23466
|
-
}); })
|
|
23467
|
-
.concat(productParams.map(function (pp) { return ({
|
|
23468
|
-
params: pp,
|
|
23469
|
-
}); })),
|
|
23425
|
+
}); }),
|
|
23470
23426
|
fallback: "blocking",
|
|
23471
23427
|
}];
|
|
23472
23428
|
}
|
|
@@ -17,7 +17,6 @@ export declare class IkasPageDataProvider {
|
|
|
17
17
|
get isStaticPage(): boolean | null | undefined;
|
|
18
18
|
getPageData(): Promise<void>;
|
|
19
19
|
getPageSpecificData(): Promise<void>;
|
|
20
|
-
getPageSpecificProduct(): Promise<void>;
|
|
21
20
|
getPageComponentPropValues(pageComponent: IkasThemePageComponent): Promise<IkasPageComponentPropValue>;
|
|
22
21
|
getPageComponentPropValue(pageComponent: IkasThemePageComponent, prop: IkasThemeComponentProp): Promise<any>;
|
|
23
22
|
private setPageMetaData;
|