@ikas/storefront 0.0.30 → 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 -144
- package/build/index.js +101 -144
- 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,17 +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
|
-
(_a = this.router) === null || _a === void 0 ? void 0 : _a.replace(newUrl, undefined, { shallow: true });
|
|
13632
|
+
(_a = this.router) === null || _a === void 0 ? void 0 : _a.replace(this.href, undefined, { shallow: true });
|
|
13664
13633
|
};
|
|
13665
13634
|
return IkasProductDetail;
|
|
13666
13635
|
}());
|
|
@@ -22700,14 +22669,38 @@ function createProductSchema(pageSpecificDataStr) {
|
|
|
22700
22669
|
var productDetail = new IkasProductDetail(productDetailParsed.product, productDetailParsed.selectedVariantValues);
|
|
22701
22670
|
var isBrowser = typeof window !== "undefined";
|
|
22702
22671
|
if (isBrowser) {
|
|
22703
|
-
var
|
|
22704
|
-
var vid_1 =
|
|
22705
|
-
|
|
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") {
|
|
22706
22676
|
var variant = productDetail.product.variants.find(function (v) { return v.id === vid_1; });
|
|
22707
22677
|
if (variant) {
|
|
22708
22678
|
productDetail.selectedVariantValues = variant.variantValues;
|
|
22679
|
+
hasVid = true;
|
|
22709
22680
|
}
|
|
22710
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
|
+
}
|
|
22711
22704
|
}
|
|
22712
22705
|
return {
|
|
22713
22706
|
"@context": "https://schema.org/",
|
|
@@ -23428,60 +23421,24 @@ var Page$1 = function (_a) {
|
|
|
23428
23421
|
};
|
|
23429
23422
|
var index$1 = observer(Page$1);
|
|
23430
23423
|
var getStaticPaths = function (context) { return __awaiter(void 0, void 0, void 0, function () {
|
|
23431
|
-
var metaData, targetTypes,
|
|
23432
|
-
return __generator(this, function (
|
|
23433
|
-
switch (
|
|
23424
|
+
var metaData, targetTypes, filteredMetaData;
|
|
23425
|
+
return __generator(this, function (_a) {
|
|
23426
|
+
switch (_a.label) {
|
|
23434
23427
|
case 0: return [4 /*yield*/, IkasHTMLMetaDataAPI.listHTMLMetaData()];
|
|
23435
23428
|
case 1:
|
|
23436
|
-
metaData =
|
|
23429
|
+
metaData = _a.sent();
|
|
23437
23430
|
targetTypes = [
|
|
23438
23431
|
IkasHTMLMetaDataTargetType.BRAND,
|
|
23439
23432
|
IkasHTMLMetaDataTargetType.CATEGORY,
|
|
23433
|
+
IkasHTMLMetaDataTargetType.PRODUCT,
|
|
23440
23434
|
];
|
|
23441
|
-
|
|
23442
|
-
productMetaData = metaData.filter(function (m) { return m.targetType && m.targetType === IkasHTMLMetaDataTargetType.PRODUCT; });
|
|
23443
|
-
return [4 /*yield*/, IkasProductAPI.listProducts({
|
|
23444
|
-
idList: productMetaData.map(function (p) { return p.targetId; }),
|
|
23445
|
-
})];
|
|
23446
|
-
case 2:
|
|
23447
|
-
productsResponse = _b.sent();
|
|
23448
|
-
productParams = [];
|
|
23449
|
-
_loop_1 = function (product) {
|
|
23450
|
-
var meta = productMetaData.find(function (pm) { return pm.targetId === product.id; });
|
|
23451
|
-
if (meta) {
|
|
23452
|
-
for (var _i = 0, _a = product.variants; _i < _a.length; _i++) {
|
|
23453
|
-
var variant = _a[_i];
|
|
23454
|
-
if (product.hasVariant) {
|
|
23455
|
-
var variantSlug = variant.variantValues
|
|
23456
|
-
.map(function (vv) { return vv.slug; })
|
|
23457
|
-
.join("-");
|
|
23458
|
-
productParams.push({
|
|
23459
|
-
slug: meta.slug + "-" + variantSlug,
|
|
23460
|
-
});
|
|
23461
|
-
}
|
|
23462
|
-
else {
|
|
23463
|
-
productParams.push({
|
|
23464
|
-
slug: meta.slug,
|
|
23465
|
-
});
|
|
23466
|
-
}
|
|
23467
|
-
}
|
|
23468
|
-
}
|
|
23469
|
-
};
|
|
23470
|
-
for (_i = 0, _a = productsResponse.products; _i < _a.length; _i++) {
|
|
23471
|
-
product = _a[_i];
|
|
23472
|
-
_loop_1(product);
|
|
23473
|
-
}
|
|
23435
|
+
filteredMetaData = metaData.filter(function (m) { return m.targetType && targetTypes.includes(m.targetType); });
|
|
23474
23436
|
return [2 /*return*/, {
|
|
23475
|
-
paths:
|
|
23476
|
-
.map(function (m) { return ({
|
|
23437
|
+
paths: filteredMetaData.map(function (m) { return ({
|
|
23477
23438
|
params: {
|
|
23478
23439
|
slug: m.slug,
|
|
23479
|
-
originalSlug: m.slug,
|
|
23480
23440
|
},
|
|
23481
|
-
}); })
|
|
23482
|
-
.concat(productParams.map(function (pp) { return ({
|
|
23483
|
-
params: pp,
|
|
23484
|
-
}); })),
|
|
23441
|
+
}); }),
|
|
23485
23442
|
fallback: "blocking",
|
|
23486
23443
|
}];
|
|
23487
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,17 +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
|
-
(_a = this.router) === null || _a === void 0 ? void 0 : _a.replace(newUrl, undefined, { shallow: true });
|
|
13618
|
+
(_a = this.router) === null || _a === void 0 ? void 0 : _a.replace(this.href, undefined, { shallow: true });
|
|
13650
13619
|
};
|
|
13651
13620
|
return IkasProductDetail;
|
|
13652
13621
|
}());
|
|
@@ -22684,14 +22653,38 @@ function createProductSchema(pageSpecificDataStr) {
|
|
|
22684
22653
|
var productDetail = new IkasProductDetail(productDetailParsed.product, productDetailParsed.selectedVariantValues);
|
|
22685
22654
|
var isBrowser = typeof window !== "undefined";
|
|
22686
22655
|
if (isBrowser) {
|
|
22687
|
-
var
|
|
22688
|
-
var vid_1 =
|
|
22689
|
-
|
|
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") {
|
|
22690
22660
|
var variant = productDetail.product.variants.find(function (v) { return v.id === vid_1; });
|
|
22691
22661
|
if (variant) {
|
|
22692
22662
|
productDetail.selectedVariantValues = variant.variantValues;
|
|
22663
|
+
hasVid = true;
|
|
22693
22664
|
}
|
|
22694
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
|
+
}
|
|
22695
22688
|
}
|
|
22696
22689
|
return {
|
|
22697
22690
|
"@context": "https://schema.org/",
|
|
@@ -23412,60 +23405,24 @@ var Page$1 = function (_a) {
|
|
|
23412
23405
|
};
|
|
23413
23406
|
var index$1 = mobxReactLite.observer(Page$1);
|
|
23414
23407
|
var getStaticPaths = function (context) { return __awaiter(void 0, void 0, void 0, function () {
|
|
23415
|
-
var metaData, targetTypes,
|
|
23416
|
-
return __generator(this, function (
|
|
23417
|
-
switch (
|
|
23408
|
+
var metaData, targetTypes, filteredMetaData;
|
|
23409
|
+
return __generator(this, function (_a) {
|
|
23410
|
+
switch (_a.label) {
|
|
23418
23411
|
case 0: return [4 /*yield*/, IkasHTMLMetaDataAPI.listHTMLMetaData()];
|
|
23419
23412
|
case 1:
|
|
23420
|
-
metaData =
|
|
23413
|
+
metaData = _a.sent();
|
|
23421
23414
|
targetTypes = [
|
|
23422
23415
|
exports.IkasHTMLMetaDataTargetType.BRAND,
|
|
23423
23416
|
exports.IkasHTMLMetaDataTargetType.CATEGORY,
|
|
23417
|
+
exports.IkasHTMLMetaDataTargetType.PRODUCT,
|
|
23424
23418
|
];
|
|
23425
|
-
|
|
23426
|
-
productMetaData = metaData.filter(function (m) { return m.targetType && m.targetType === exports.IkasHTMLMetaDataTargetType.PRODUCT; });
|
|
23427
|
-
return [4 /*yield*/, IkasProductAPI.listProducts({
|
|
23428
|
-
idList: productMetaData.map(function (p) { return p.targetId; }),
|
|
23429
|
-
})];
|
|
23430
|
-
case 2:
|
|
23431
|
-
productsResponse = _b.sent();
|
|
23432
|
-
productParams = [];
|
|
23433
|
-
_loop_1 = function (product) {
|
|
23434
|
-
var meta = productMetaData.find(function (pm) { return pm.targetId === product.id; });
|
|
23435
|
-
if (meta) {
|
|
23436
|
-
for (var _i = 0, _a = product.variants; _i < _a.length; _i++) {
|
|
23437
|
-
var variant = _a[_i];
|
|
23438
|
-
if (product.hasVariant) {
|
|
23439
|
-
var variantSlug = variant.variantValues
|
|
23440
|
-
.map(function (vv) { return vv.slug; })
|
|
23441
|
-
.join("-");
|
|
23442
|
-
productParams.push({
|
|
23443
|
-
slug: meta.slug + "-" + variantSlug,
|
|
23444
|
-
});
|
|
23445
|
-
}
|
|
23446
|
-
else {
|
|
23447
|
-
productParams.push({
|
|
23448
|
-
slug: meta.slug,
|
|
23449
|
-
});
|
|
23450
|
-
}
|
|
23451
|
-
}
|
|
23452
|
-
}
|
|
23453
|
-
};
|
|
23454
|
-
for (_i = 0, _a = productsResponse.products; _i < _a.length; _i++) {
|
|
23455
|
-
product = _a[_i];
|
|
23456
|
-
_loop_1(product);
|
|
23457
|
-
}
|
|
23419
|
+
filteredMetaData = metaData.filter(function (m) { return m.targetType && targetTypes.includes(m.targetType); });
|
|
23458
23420
|
return [2 /*return*/, {
|
|
23459
|
-
paths:
|
|
23460
|
-
.map(function (m) { return ({
|
|
23421
|
+
paths: filteredMetaData.map(function (m) { return ({
|
|
23461
23422
|
params: {
|
|
23462
23423
|
slug: m.slug,
|
|
23463
|
-
originalSlug: m.slug,
|
|
23464
23424
|
},
|
|
23465
|
-
}); })
|
|
23466
|
-
.concat(productParams.map(function (pp) { return ({
|
|
23467
|
-
params: pp,
|
|
23468
|
-
}); })),
|
|
23425
|
+
}); }),
|
|
23469
23426
|
fallback: "blocking",
|
|
23470
23427
|
}];
|
|
23471
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;
|