@infrab4a/connect-angular 5.2.1-beta.7 → 5.2.2-beta.0
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/esm2020/services/catalog/strategies/category-search.strategy.mjs +12 -4
- package/esm2020/services/catalog/strategies/term-search.strategy.mjs +1 -22
- package/fesm2015/infrab4a-connect-angular.mjs +11 -24
- package/fesm2015/infrab4a-connect-angular.mjs.map +1 -1
- package/fesm2020/infrab4a-connect-angular.mjs +11 -24
- package/fesm2020/infrab4a-connect-angular.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Shops, Where
|
|
2
|
+
import { isEmpty, Shops, Where } from '@infrab4a/connect';
|
|
3
3
|
import { CatalogHelpersService, CatalogRepositoryService } from '../services';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "../services";
|
|
@@ -25,6 +25,8 @@ export class CategorySearchStrategy {
|
|
|
25
25
|
fields,
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
|
+
// eslint-disable-next-line no-console
|
|
29
|
+
console.log('return searchDefault');
|
|
28
30
|
return this.searchDefault({
|
|
29
31
|
category,
|
|
30
32
|
filters,
|
|
@@ -52,7 +54,7 @@ export class CategorySearchStrategy {
|
|
|
52
54
|
});
|
|
53
55
|
}
|
|
54
56
|
async searchDefault(params) {
|
|
55
|
-
const { category, filters, limits,
|
|
57
|
+
const { category, filters, limits, sort, optionsCache, fields } = params;
|
|
56
58
|
const productCatalog = this.repositoryService.getProductCatalog();
|
|
57
59
|
const filterHelper = this.helpersService.getFilterHelper();
|
|
58
60
|
const sortHelper = this.helpersService.getSortHelper();
|
|
@@ -70,7 +72,9 @@ export class CategorySearchStrategy {
|
|
|
70
72
|
distinct: ['brand'],
|
|
71
73
|
},
|
|
72
74
|
};
|
|
73
|
-
|
|
75
|
+
// eslint-disable-next-line no-console
|
|
76
|
+
console.log('repoParams', JSON.stringify(repoParams));
|
|
77
|
+
return productCatalog.productRepository.findCatalog(repoParams, null, optionsCache);
|
|
74
78
|
}
|
|
75
79
|
async getProductIds(category, filters, optionsCache) {
|
|
76
80
|
const productCatalog = this.repositoryService.getProductCatalog();
|
|
@@ -86,6 +90,8 @@ export class CategorySearchStrategy {
|
|
|
86
90
|
.then((products) => products.data.map((product) => product.id));
|
|
87
91
|
}
|
|
88
92
|
async findAndSortByMostRelevant(params) {
|
|
93
|
+
// eslint-disable-next-line no-console
|
|
94
|
+
console.log('shoudl not enter findAndSortByMostRelevant');
|
|
89
95
|
const { mostRelevants, productIds, filters, shop, mainGender, optionsCache, fields, limits } = params;
|
|
90
96
|
const productCatalog = this.repositoryService.getProductCatalog();
|
|
91
97
|
const filterHelper = this.helpersService.getFilterHelper();
|
|
@@ -107,6 +113,8 @@ export class CategorySearchStrategy {
|
|
|
107
113
|
return this.sortProductsByRelevance(totalResult, mostRelevants, limits);
|
|
108
114
|
}
|
|
109
115
|
sortProductsByRelevance(totalResult, mostRelevants, limits) {
|
|
116
|
+
// eslint-disable-next-line no-console
|
|
117
|
+
console.log('shoudl not enter sortProductsByRelevance');
|
|
110
118
|
const mostRelevantWithoutStock = totalResult.data.filter((product) => mostRelevants.includes(product.id) && product.stock.quantity <= 0);
|
|
111
119
|
const firstProducts = totalResult.data
|
|
112
120
|
.filter((product) => mostRelevants.includes(product.id) && product.stock.quantity > 0)
|
|
@@ -130,4 +138,4 @@ CategorySearchStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0
|
|
|
130
138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategorySearchStrategy, decorators: [{
|
|
131
139
|
type: Injectable
|
|
132
140
|
}], ctorParameters: function () { return [{ type: i1.CatalogRepositoryService }, { type: i1.CatalogHelpersService }]; } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktc2VhcmNoLnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL3N0cmF0ZWdpZXMvY2F0ZWdvcnktc2VhcmNoLnN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUF5RCxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBR2hILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTs7O0FBUzdFLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFDbUIsaUJBQTJDLEVBQzNDLGNBQXFDO1FBRHJDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0MsbUJBQWMsR0FBZCxjQUFjLENBQXVCO0lBQ3JELENBQUM7SUFFSixLQUFLLENBQUMsTUFBTSxDQUNWLE1BQTJCLEVBQzNCLElBQVcsRUFDWCxZQUFpRDtRQUVqRCxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQTtRQUU5RCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFBO1NBQ25FO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBRXhFLElBQUksSUFBSSxLQUFLLGVBQWUsRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztnQkFDakMsUUFBUTtnQkFDUixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sSUFBSTtnQkFDSixVQUFVO2dCQUNWLFlB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QyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7YUFDMUYsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN0RixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsSUFBSTthQUNsQyxNQUFNLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDN0QsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFDbkMsTUFBTSxxQkFBcUIsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ2hFLE1BQU0sV0FBVyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRTVGLE9BQU87WUFDTCxJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUs7WUFDeEIsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO1lBQzVCLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTztZQUM1QixRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7U0FDL0IsQ0FBQTtJQUNILENBQUM7O21IQTdKVSxzQkFBc0I7dUhBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IFByb2R1Y3QsIFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMsIFJlcG9zaXRvcnlGaW5kUmVzdWx0LCBTaG9wcywgV2hlcmUsIGlzRW1wdHkgfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuXHJcbmltcG9ydCB7IENhdGFsb2dTZWFyY2hQYXJhbXMsIENhdGFsb2dTZWFyY2hTdHJhdGVneSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnXHJcbmltcG9ydCB7IENhdGFsb2dIZWxwZXJzU2VydmljZSwgQ2F0YWxvZ1JlcG9zaXRvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnXHJcblxyXG5pbXBvcnQge1xyXG4gIEZpbmRBbmRTb3J0QnlNb3N0UmVsZXZhbnRQYXJhbXMsXHJcbiAgU2VhcmNoRGVmYXVsdFBhcmFtcyxcclxuICBTZWFyY2hXaXRoTW9zdFJlbGV2YW50UGFyYW1zLFxyXG59IGZyb20gJy4vdHlwZXMvc3RyYXRlZ3ktcGFyYW1zLnR5cGUnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYXRlZ29yeVNlYXJjaFN0cmF0ZWd5IGltcGxlbWVudHMgQ2F0YWxvZ1NlYXJjaFN0cmF0ZWd5IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVwb3NpdG9yeVNlcnZpY2U6IENhdGFsb2dSZXBvc2l0b3J5U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGVscGVyc1NlcnZpY2U6IENhdGFsb2dIZWxwZXJzU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIGFzeW5jIHNlYXJjaChcclxuICAgIHBhcmFtczogQ2F0YWxvZ1NlYXJjaFBhcmFtcyxcclxuICAgIHNob3A6IFNob3BzLFxyXG4gICAgb3B0aW9uc0NhY2hlPzogeyBjYWNoZT86IFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMgfSxcclxuICApOiBQcm9taXNlPFJlcG9zaXRvcnlGaW5kUmVzdWx0PFByb2R1Y3Q+PiB7XHJcbiAgICBjb25zdCB7IGNhdGVnb3J5LCBmaWx0ZXJzLCBsaW1pdHMsIHNvcnQsIG1haW5HZW5kZXIgfSA9IHBhcmFtc1xyXG5cclxuICAgIGlmICghY2F0ZWdvcnkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYXRlZ29yeSBpcyByZXF1aXJlZCBmb3IgQ2F0ZWdvcnlTZWFyY2hTdHJhdGVneScpXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmllbGRzID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWVsZHNIZWxwZXIoKS5nZXRTdGFuZGFyZEZpZWxkcygpXHJcblxyXG4gICAgaWYgKHNvcnQgPT09ICdtb3N0LXJlbGV2YW50Jykge1xyXG4gICAgICByZXR1cm4gdGhpcy5zZWFyY2hXaXRoTW9zdFJlbGV2YW50KHtcclxuICAgICAgICBjYXRlZ29yeSxcclxuICAgICAgICBmaWx0ZXJzLFxyXG4gICAgICAgIGxpbWl0cyxcclxuICAgICAgICBzaG9wLFxyXG4gICAgICAgIG1haW5HZW5kZXIsXHJcbiAgICAgICAgb3B0aW9uc0NhY2hlLFxyXG4gICAgICAgIGZpZWxkcyxcclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hEZWZhdWx0KHtcclxuICAgICAgY2F0ZWdvcnksXHJcbiAgICAgIGZpbHRlcnMsXHJcbiAgICAgIGxpbWl0cyxcclxuICAgICAgc2hvcCxcclxuICAgICAgbWFpbkdlbmRlcixcclxuICAgICAgc29ydCxcclxuICAgICAgb3B0aW9uc0NhY2hlLFxyXG4gICAgICBmaWVsZHMsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBzZWFyY2hXaXRoTW9zdFJlbGV2YW50KHBhcmFtczogU2VhcmNoV2l0aE1vc3RSZWxldmFudFBhcmFtcykge1xyXG4gICAgY29uc3QgeyBjYXRlZ29yeSwgZmlsdGVycywgc2hvcCwgb3B0aW9uc0NhY2hlIH0gPSBwYXJhbXNcclxuICAgIGNvbnN0IG1vc3RSZWxldmFudCA9IGNhdGVnb3J5LmlzV2lzaGxpc3QgPyBbXSA6IGNhdGVnb3J5LmdldE1vc3RSZWxldmFudEJ5U2hvcChzaG9wKVxyXG4gICAgY29uc3QgcHJvZHVjdHNJZHMgPSBhd2FpdCB0aGlzLmdldFByb2R1Y3RJZHMoY2F0ZWdvcnksIGZpbHRlcnMsIG9wdGlvbnNDYWNoZSlcclxuXHJcbiAgICByZXR1cm4gdGhpcy5maW5kQW5kU29ydEJ5TW9zdFJlbGV2YW50KHtcclxuICAgICAgbW9zdFJlbGV2YW50czogbW9zdFJlbGV2YW50LFxyXG4gICAgICBwcm9kdWN0SWRzOiBwcm9kdWN0c0lkcyxcclxuICAgICAgZmlsdGVyczogcGFyYW1zLmZpbHRlcnMsXHJcbiAgICAgIGxpbWl0czogcGFyYW1zLmxpbWl0cyxcclxuICAgICAgc2hvcDogcGFyYW1zLnNob3AsXHJcbiAgICAgIG1haW5HZW5kZXI6IHBhcmFtcy5tYWluR2VuZGVyLFxyXG4gICAgICBvcHRpb25zQ2FjaGU6IHBhcmFtcy5vcHRpb25zQ2FjaGUsXHJcbiAgICAgIGZpZWxkczogcGFyYW1zLmZpZWxkcyxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHNlYXJjaERlZmF1bHQocGFyYW1zOiBTZWFyY2hEZWZhdWx0UGFyYW1zKSB7XHJcbiAgICBjb25zdCB7IGNhdGVnb3J5LCBmaWx0ZXJzLCBsaW1pdHMsIHNob3AsIG1haW5HZW5kZXIsIHNvcnQsIG9wdGlvbnNDYWNoZSwgZmllbGRzIH0gPSBwYXJhbXNcclxuICAgIGNvbnN0IHByb2R1Y3RDYXRhbG9nID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZS5nZXRQcm9kdWN0Q2F0YWxvZygpXHJcbiAgICBjb25zdCBmaWx0ZXJIZWxwZXIgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldEZpbHRlckhlbHBlcigpXHJcbiAgICBjb25zdCBzb3J0SGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRTb3J0SGVscGVyKClcclxuXHJcbiAgICBjb25zdCByZXBvUGFyYW1zID0ge1xyXG4gICAgICBmaWVsZHMsXHJcbiAgICAgIGZpbHRlcnM6IHtcclxuICAgICAgICAuLi4oYXdhaXQgcHJvZHVjdENhdGFsb2cuY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLmJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnkpKSxcclxuICAgICAgICAuLi5maWx0ZXJIZWxwZXIuYnVpbGRGaWx0ZXJRdWVyeShmaWx0ZXJzIHx8IHt9KSxcclxuICAgICAgfSxcclxuICAgICAgLi4uKHNvcnQgPyB7IG9yZGVyQnk6IHNvcnRIZWxwZXIuYnVpbGRTb3J0UXVlcnkoc29ydCkgfSA6IHt9KSxcclxuICAgICAgbGltaXRzLFxyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgbWluaW1hbDogWydwcmljZSddLFxyXG4gICAgICAgIG1heGltdW06IFsncHJpY2UnXSxcclxuICAgICAgICBkaXN0aW5jdDogWydicmFuZCddLFxyXG4gICAgICB9LFxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwcm9kdWN0Q2F0YWxvZy5wcm9kdWN0UmVwb3NpdG9yeS5maW5kQ2F0YWxvZyhcclxuICAgICAgcmVwb1BhcmFtcyxcclxuICAgICAgbWFpbkdlbmRlciB8fCAoc2hvcCA9PT0gU2hvcHMuTUVOU01BUktFVCA/ICdtYWxlJyA6ICdmZW1hbGUnKSxcclxuICAgICAgb3B0aW9uc0NhY2hlLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXRQcm9kdWN0SWRzKGNhdGVnb3J5OiBhbnksIGZpbHRlcnM6IGFueSwgb3B0aW9uc0NhY2hlOiBhbnkpOiBQcm9taXNlPHN0cmluZ1tdPiB7XHJcbiAgICBjb25zdCBwcm9kdWN0Q2F0YWxvZyA9IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UuZ2V0UHJvZHVjdENhdGFsb2coKVxyXG4gICAgY29uc3QgZmlsdGVySGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWx0ZXJIZWxwZXIoKVxyXG5cclxuICAgIHJldHVybiBwcm9kdWN0Q2F0YWxvZy5wcm9kdWN0UmVwb3NpdG9yeVxyXG4gICAgICAuZmluZENhdGFsb2coXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmllbGRzOiBbJ2lkJ10sXHJcbiAgICAgICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgICAgIC4uLihhd2FpdCBwcm9kdWN0Q2F0YWxvZy5jYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIuYnVpbGRQcm9kdWN0RmlsdGVyQnlDYXRlZ29yeShjYXRlZ29yeSkpLFxyXG4gICAgICAgICAgICAuLi5maWx0ZXJIZWxwZXIuYnVpbGRGaWx0ZXJRdWVyeShmaWx0ZXJzIHx8IHt9KSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgb3B0aW9uc0NhY2hlLFxyXG4gICAgICApXHJcbiAgICAgIC50aGVuKChwcm9kdWN0cykgPT4gcHJvZHVjdHMuZGF0YS5tYXAoKHByb2R1Y3QpID0+IHByb2R1Y3QuaWQpKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBmaW5kQW5kU29ydEJ5TW9zdFJlbGV2YW50KFxyXG4gICAgcGFyYW1zOiBGaW5kQW5kU29ydEJ5TW9zdFJlbGV2YW50UGFyYW1zLFxyXG4gICk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8UHJvZHVjdD4+IHtcclxuICAgIGNvbnN0IHsgbW9zdFJlbGV2YW50cywgcHJvZHVjdElkcywgZmlsdGVycywgc2hvcCwgbWFpbkdlbmRlciwgb3B0aW9uc0NhY2hlLCBmaWVsZHMsIGxpbWl0cyB9ID0gcGFyYW1zXHJcbiAgICBjb25zdCBwcm9kdWN0Q2F0YWxvZyA9IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UuZ2V0UHJvZHVjdENhdGFsb2coKVxyXG4gICAgY29uc3QgZmlsdGVySGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWx0ZXJIZWxwZXIoKVxyXG4gICAgY29uc3Qgc29ydEhlbHBlciA9IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0U29ydEhlbHBlcigpXHJcblxyXG4gICAgY29uc3QgbW9zdFJlbGV2YW50UHJvZHVjdHNJZHMgPSBbLi4ubmV3IFNldChtb3N0UmVsZXZhbnRzLmNvbmNhdChwcm9kdWN0SWRzKSldXHJcbiAgICBjb25zdCB0b3RhbFJlc3VsdCA9IGF3YWl0IHByb2R1Y3RDYXRhbG9nLnByb2R1Y3RSZXBvc2l0b3J5LmZpbmRDYXRhbG9nKFxyXG4gICAgICB7XHJcbiAgICAgICAgZmllbGRzLFxyXG4gICAgICAgIGZpbHRlcnM6IHtcclxuICAgICAgICAgIGlkOiB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IG1vc3RSZWxldmFudFByb2R1Y3RzSWRzIH0sXHJcbiAgICAgICAgICAuLi5maWx0ZXJIZWxwZXIuYnVpbGRGaWx0ZXJRdWVyeShmaWx0ZXJzIHx8IHt9KSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9yZGVyQnk6IHNvcnRIZWxwZXIuYnVpbGRTb3J0UXVlcnkoJ2Jlc3Qtc2VsbGVycycpLFxyXG4gICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgIG1pbmltYWw6IFsncHJpY2UnXSxcclxuICAgICAgICAgIG1heGltdW06IFsncHJpY2UnXSxcclxuICAgICAgICAgIC4uLihpc0VtcHR5KGZpbHRlcnM/LmJyYW5kcykgPyB7IGRpc3RpbmN0OiBbJ2JyYW5kJ10gfSA6IHt9KSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBtYWluR2VuZGVyIHx8IChzaG9wID09PSBTaG9wcy5NRU5TTUFSS0VUID8gJ21hbGUnIDogJ2ZlbWFsZScpLFxyXG4gICAgICBvcHRpb25zQ2FjaGUsXHJcbiAgICApXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuc29ydFByb2R1Y3RzQnlSZWxldmFuY2UodG90YWxSZXN1bHQsIG1vc3RSZWxldmFudHMsIGxpbWl0cylcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc29ydFByb2R1Y3RzQnlSZWxldmFuY2UodG90YWxSZXN1bHQ6IGFueSwgbW9zdFJlbGV2YW50czogc3RyaW5nW10sIGxpbWl0czogYW55KSB7XHJcbiAgICBjb25zdCBtb3N0UmVsZXZhbnRXaXRob3V0U3RvY2sgPSB0b3RhbFJlc3VsdC5kYXRhLmZpbHRlcihcclxuICAgICAgKHByb2R1Y3Q6IGFueSkgPT4gbW9zdFJlbGV2YW50cy5pbmNsdWRlcyhwcm9kdWN0LmlkKSAmJiBwcm9kdWN0LnN0b2NrLnF1YW50aXR5IDw9IDAsXHJcbiAgICApXHJcbiAgICBjb25zdCBmaXJzdFByb2R1Y3RzID0gdG90YWxSZXN1bHQuZGF0YVxyXG4gICAgICAuZmlsdGVyKChwcm9kdWN0OiBhbnkpID0+IG1vc3RSZWxldmFudHMuaW5jbHVkZXMocHJvZHVjdC5pZCkgJiYgcHJvZHVjdC5zdG9jay5xdWFudGl0eSA+IDApXHJcbiAgICAgIC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4gbW9zdFJlbGV2YW50cy5pbmRleE9mKGEuaWQpIC0gbW9zdFJlbGV2YW50cy5pbmRleE9mKGIuaWQpKVxyXG4gICAgY29uc3QgbGFzdFByb2R1Y3RzID0gdG90YWxSZXN1bHQuZGF0YVxyXG4gICAgICAuZmlsdGVyKChwcm9kdWN0OiBhbnkpID0+ICFtb3N0UmVsZXZhbnRzLmluY2x1ZGVzKHByb2R1Y3QuaWQpKVxyXG4gICAgICAuY29uY2F0KG1vc3RSZWxldmFudFdpdGhvdXRTdG9jaylcclxuICAgIGNvbnN0IGNhdGVnb3J5TW9zdFJlbGV2YW50cyA9IGZpcnN0UHJvZHVjdHMuY29uY2F0KGxhc3RQcm9kdWN0cylcclxuICAgIGNvbnN0IHJlc3VsdEZpbmFsID0gY2F0ZWdvcnlNb3N0UmVsZXZhbnRzLnNsaWNlKGxpbWl0cy5vZmZzZXQsIGxpbWl0cy5vZmZzZXQgKyBsaW1pdHMubGltaXQpXHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZGF0YTogcmVzdWx0RmluYWwsXHJcbiAgICAgIGNvdW50OiB0b3RhbFJlc3VsdC5jb3VudCxcclxuICAgICAgbWF4aW11bTogdG90YWxSZXN1bHQubWF4aW11bSxcclxuICAgICAgbWluaW1hbDogdG90YWxSZXN1bHQubWluaW1hbCxcclxuICAgICAgZGlzdGluY3Q6IHRvdGFsUmVzdWx0LmRpc3RpbmN0LFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktc2VhcmNoLnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL3N0cmF0ZWdpZXMvY2F0ZWdvcnktc2VhcmNoLnN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBeUQsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBR2hILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTs7O0FBUzdFLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFDbUIsaUJBQTJDLEVBQzNDLGNBQXFDO1FBRHJDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0MsbUJBQWMsR0FBZCxjQUFjLENBQXVCO0lBQ3JELENBQUM7SUFFSixLQUFLLENBQUMsTUFBTSxDQUNWLE1BQTJCLEVBQzNCLElBQVcsRUFDWCxZQUFpRDtRQUVqRCxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQTtRQUU5RCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFBO1NBQ25FO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBRXhFLElBQUksSUFBSSxLQUFLLGVBQWUsRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztnQkFDakMsUUFBUTtnQkFDUixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sSUFBSTtnQkFDSixVQUFVO2dCQUNWLFlB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QXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IGlzRW1wdHksIFByb2R1Y3QsIFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMsIFJlcG9zaXRvcnlGaW5kUmVzdWx0LCBTaG9wcywgV2hlcmUgfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuXHJcbmltcG9ydCB7IENhdGFsb2dTZWFyY2hQYXJhbXMsIENhdGFsb2dTZWFyY2hTdHJhdGVneSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnXHJcbmltcG9ydCB7IENhdGFsb2dIZWxwZXJzU2VydmljZSwgQ2F0YWxvZ1JlcG9zaXRvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnXHJcblxyXG5pbXBvcnQge1xyXG4gIEZpbmRBbmRTb3J0QnlNb3N0UmVsZXZhbnRQYXJhbXMsXHJcbiAgU2VhcmNoRGVmYXVsdFBhcmFtcyxcclxuICBTZWFyY2hXaXRoTW9zdFJlbGV2YW50UGFyYW1zLFxyXG59IGZyb20gJy4vdHlwZXMvc3RyYXRlZ3ktcGFyYW1zLnR5cGUnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYXRlZ29yeVNlYXJjaFN0cmF0ZWd5IGltcGxlbWVudHMgQ2F0YWxvZ1NlYXJjaFN0cmF0ZWd5IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVwb3NpdG9yeVNlcnZpY2U6IENhdGFsb2dSZXBvc2l0b3J5U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGVscGVyc1NlcnZpY2U6IENhdGFsb2dIZWxwZXJzU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIGFzeW5jIHNlYXJjaChcclxuICAgIHBhcmFtczogQ2F0YWxvZ1NlYXJjaFBhcmFtcyxcclxuICAgIHNob3A6IFNob3BzLFxyXG4gICAgb3B0aW9uc0NhY2hlPzogeyBjYWNoZT86IFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMgfSxcclxuICApOiBQcm9taXNlPFJlcG9zaXRvcnlGaW5kUmVzdWx0PFByb2R1Y3Q+PiB7XHJcbiAgICBjb25zdCB7IGNhdGVnb3J5LCBmaWx0ZXJzLCBsaW1pdHMsIHNvcnQsIG1haW5HZW5kZXIgfSA9IHBhcmFtc1xyXG5cclxuICAgIGlmICghY2F0ZWdvcnkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYXRlZ29yeSBpcyByZXF1aXJlZCBmb3IgQ2F0ZWdvcnlTZWFyY2hTdHJhdGVneScpXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmllbGRzID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWVsZHNIZWxwZXIoKS5nZXRTdGFuZGFyZEZpZWxkcygpXHJcblxyXG4gICAgaWYgKHNvcnQgPT09ICdtb3N0LXJlbGV2YW50Jykge1xyXG4gICAgICByZXR1cm4gdGhpcy5zZWFyY2hXaXRoTW9zdFJlbGV2YW50KHtcclxuICAgICAgICBjYXRlZ29yeSxcclxuICAgICAgICBmaWx0ZXJzLFxyXG4gICAgICAgIGxpbWl0cyxcclxuICAgICAgICBzaG9wLFxyXG4gICAgICAgIG1haW5HZW5kZXIsXHJcbiAgICAgICAgb3B0aW9uc0NhY2hlLFxyXG4gICAgICAgIGZpZWxkcyxcclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxyXG4gICAgY29uc29sZS5sb2coJ3JldHVybiBzZWFyY2hEZWZhdWx0JylcclxuXHJcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hEZWZhdWx0KHtcclxuICAgICAgY2F0ZWdvcnksXHJcbiAgICAgIGZpbHRlcnMsXHJcbiAgICAgIGxpbWl0cyxcclxuICAgICAgc2hvcCxcclxuICAgICAgbWFpbkdlbmRlcixcclxuICAgICAgc29ydCxcclxuICAgICAgb3B0aW9uc0NhY2hlLFxyXG4gICAgICBmaWVsZHMsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBzZWFyY2hXaXRoTW9zdFJlbGV2YW50KHBhcmFtczogU2VhcmNoV2l0aE1vc3RSZWxldmFudFBhcmFtcykge1xyXG4gICAgY29uc3QgeyBjYXRlZ29yeSwgZmlsdGVycywgc2hvcCwgb3B0aW9uc0NhY2hlIH0gPSBwYXJhbXNcclxuICAgIGNvbnN0IG1vc3RSZWxldmFudCA9IGNhdGVnb3J5LmlzV2lzaGxpc3QgPyBbXSA6IGNhdGVnb3J5LmdldE1vc3RSZWxldmFudEJ5U2hvcChzaG9wKVxyXG4gICAgY29uc3QgcHJvZHVjdHNJZHMgPSBhd2FpdCB0aGlzLmdldFByb2R1Y3RJZHMoY2F0ZWdvcnksIGZpbHRlcnMsIG9wdGlvbnNDYWNoZSlcclxuXHJcbiAgICByZXR1cm4gdGhpcy5maW5kQW5kU29ydEJ5TW9zdFJlbGV2YW50KHtcclxuICAgICAgbW9zdFJlbGV2YW50czogbW9zdFJlbGV2YW50LFxyXG4gICAgICBwcm9kdWN0SWRzOiBwcm9kdWN0c0lkcyxcclxuICAgICAgZmlsdGVyczogcGFyYW1zLmZpbHRlcnMsXHJcbiAgICAgIGxpbWl0czogcGFyYW1zLmxpbWl0cyxcclxuICAgICAgc2hvcDogcGFyYW1zLnNob3AsXHJcbiAgICAgIG1haW5HZW5kZXI6IHBhcmFtcy5tYWluR2VuZGVyLFxyXG4gICAgICBvcHRpb25zQ2FjaGU6IHBhcmFtcy5vcHRpb25zQ2FjaGUsXHJcbiAgICAgIGZpZWxkczogcGFyYW1zLmZpZWxkcyxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHNlYXJjaERlZmF1bHQocGFyYW1zOiBTZWFyY2hEZWZhdWx0UGFyYW1zKSB7XHJcbiAgICBjb25zdCB7IGNhdGVnb3J5LCBmaWx0ZXJzLCBsaW1pdHMsIHNvcnQsIG9wdGlvbnNDYWNoZSwgZmllbGRzIH0gPSBwYXJhbXNcclxuICAgIGNvbnN0IHByb2R1Y3RDYXRhbG9nID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZS5nZXRQcm9kdWN0Q2F0YWxvZygpXHJcbiAgICBjb25zdCBmaWx0ZXJIZWxwZXIgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldEZpbHRlckhlbHBlcigpXHJcbiAgICBjb25zdCBzb3J0SGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRTb3J0SGVscGVyKClcclxuXHJcbiAgICBjb25zdCByZXBvUGFyYW1zID0ge1xyXG4gICAgICBmaWVsZHMsXHJcbiAgICAgIGZpbHRlcnM6IHtcclxuICAgICAgICAuLi4oYXdhaXQgcHJvZHVjdENhdGFsb2cuY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLmJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnkpKSxcclxuICAgICAgICAuLi5maWx0ZXJIZWxwZXIuYnVpbGRGaWx0ZXJRdWVyeShmaWx0ZXJzIHx8IHt9KSxcclxuICAgICAgfSxcclxuICAgICAgLi4uKHNvcnQgPyB7IG9yZGVyQnk6IHNvcnRIZWxwZXIuYnVpbGRTb3J0UXVlcnkoc29ydCkgfSA6IHt9KSxcclxuICAgICAgbGltaXRzLFxyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgbWluaW1hbDogWydwcmljZSddLFxyXG4gICAgICAgIG1heGltdW06IFsncHJpY2UnXSxcclxuICAgICAgICBkaXN0aW5jdDogWydicmFuZCddLFxyXG4gICAgICB9LFxyXG4gICAgfVxyXG5cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXHJcbiAgICBjb25zb2xlLmxvZygncmVwb1BhcmFtcycsIEpTT04uc3RyaW5naWZ5KHJlcG9QYXJhbXMpKVxyXG5cclxuICAgIHJldHVybiBwcm9kdWN0Q2F0YWxvZy5wcm9kdWN0UmVwb3NpdG9yeS5maW5kQ2F0YWxvZyhyZXBvUGFyYW1zLCBudWxsLCBvcHRpb25zQ2FjaGUpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGdldFByb2R1Y3RJZHMoY2F0ZWdvcnk6IGFueSwgZmlsdGVyczogYW55LCBvcHRpb25zQ2FjaGU6IGFueSk6IFByb21pc2U8c3RyaW5nW10+IHtcclxuICAgIGNvbnN0IHByb2R1Y3RDYXRhbG9nID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZS5nZXRQcm9kdWN0Q2F0YWxvZygpXHJcbiAgICBjb25zdCBmaWx0ZXJIZWxwZXIgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldEZpbHRlckhlbHBlcigpXHJcblxyXG4gICAgcmV0dXJuIHByb2R1Y3RDYXRhbG9nLnByb2R1Y3RSZXBvc2l0b3J5XHJcbiAgICAgIC5maW5kQ2F0YWxvZyhcclxuICAgICAgICB7XHJcbiAgICAgICAgICBmaWVsZHM6IFsnaWQnXSxcclxuICAgICAgICAgIGZpbHRlcnM6IHtcclxuICAgICAgICAgICAgLi4uKGF3YWl0IHByb2R1Y3RDYXRhbG9nLmNhdGVnb3J5U3RydWN0dXJlQWRhcHRlci5idWlsZFByb2R1Y3RGaWx0ZXJCeUNhdGVnb3J5KGNhdGVnb3J5KSksXHJcbiAgICAgICAgICAgIC4uLmZpbHRlckhlbHBlci5idWlsZEZpbHRlclF1ZXJ5KGZpbHRlcnMgfHwge30pLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICBvcHRpb25zQ2FjaGUsXHJcbiAgICAgIClcclxuICAgICAgLnRoZW4oKHByb2R1Y3RzKSA9PiBwcm9kdWN0cy5kYXRhLm1hcCgocHJvZHVjdCkgPT4gcHJvZHVjdC5pZCkpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGZpbmRBbmRTb3J0QnlNb3N0UmVsZXZhbnQoXHJcbiAgICBwYXJhbXM6IEZpbmRBbmRTb3J0QnlNb3N0UmVsZXZhbnRQYXJhbXMsXHJcbiAgKTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZFJlc3VsdDxQcm9kdWN0Pj4ge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcclxuICAgIGNvbnNvbGUubG9nKCdzaG91ZGwgbm90IGVudGVyIGZpbmRBbmRTb3J0QnlNb3N0UmVsZXZhbnQnKVxyXG4gICAgY29uc3QgeyBtb3N0UmVsZXZhbnRzLCBwcm9kdWN0SWRzLCBmaWx0ZXJzLCBzaG9wLCBtYWluR2VuZGVyLCBvcHRpb25zQ2FjaGUsIGZpZWxkcywgbGltaXRzIH0gPSBwYXJhbXNcclxuICAgIGNvbnN0IHByb2R1Y3RDYXRhbG9nID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZS5nZXRQcm9kdWN0Q2F0YWxvZygpXHJcbiAgICBjb25zdCBmaWx0ZXJIZWxwZXIgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldEZpbHRlckhlbHBlcigpXHJcbiAgICBjb25zdCBzb3J0SGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRTb3J0SGVscGVyKClcclxuXHJcbiAgICBjb25zdCBtb3N0UmVsZXZhbnRQcm9kdWN0c0lkcyA9IFsuLi5uZXcgU2V0KG1vc3RSZWxldmFudHMuY29uY2F0KHByb2R1Y3RJZHMpKV1cclxuICAgIGNvbnN0IHRvdGFsUmVzdWx0ID0gYXdhaXQgcHJvZHVjdENhdGFsb2cucHJvZHVjdFJlcG9zaXRvcnkuZmluZENhdGFsb2coXHJcbiAgICAgIHtcclxuICAgICAgICBmaWVsZHMsXHJcbiAgICAgICAgZmlsdGVyczoge1xyXG4gICAgICAgICAgaWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogbW9zdFJlbGV2YW50UHJvZHVjdHNJZHMgfSxcclxuICAgICAgICAgIC4uLmZpbHRlckhlbHBlci5idWlsZEZpbHRlclF1ZXJ5KGZpbHRlcnMgfHwge30pLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb3JkZXJCeTogc29ydEhlbHBlci5idWlsZFNvcnRRdWVyeSgnYmVzdC1zZWxsZXJzJyksXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgbWluaW1hbDogWydwcmljZSddLFxyXG4gICAgICAgICAgbWF4aW11bTogWydwcmljZSddLFxyXG4gICAgICAgICAgLi4uKGlzRW1wdHkoZmlsdGVycz8uYnJhbmRzKSA/IHsgZGlzdGluY3Q6IFsnYnJhbmQnXSB9IDoge30pLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIG1haW5HZW5kZXIgfHwgKHNob3AgPT09IFNob3BzLk1FTlNNQVJLRVQgPyAnbWFsZScgOiAnZmVtYWxlJyksXHJcbiAgICAgIG9wdGlvbnNDYWNoZSxcclxuICAgIClcclxuXHJcbiAgICByZXR1cm4gdGhpcy5zb3J0UHJvZHVjdHNCeVJlbGV2YW5jZSh0b3RhbFJlc3VsdCwgbW9zdFJlbGV2YW50cywgbGltaXRzKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzb3J0UHJvZHVjdHNCeVJlbGV2YW5jZSh0b3RhbFJlc3VsdDogYW55LCBtb3N0UmVsZXZhbnRzOiBzdHJpbmdbXSwgbGltaXRzOiBhbnkpIHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXHJcbiAgICBjb25zb2xlLmxvZygnc2hvdWRsIG5vdCBlbnRlciBzb3J0UHJvZHVjdHNCeVJlbGV2YW5jZScpXHJcbiAgICBjb25zdCBtb3N0UmVsZXZhbnRXaXRob3V0U3RvY2sgPSB0b3RhbFJlc3VsdC5kYXRhLmZpbHRlcihcclxuICAgICAgKHByb2R1Y3Q6IGFueSkgPT4gbW9zdFJlbGV2YW50cy5pbmNsdWRlcyhwcm9kdWN0LmlkKSAmJiBwcm9kdWN0LnN0b2NrLnF1YW50aXR5IDw9IDAsXHJcbiAgICApXHJcbiAgICBjb25zdCBmaXJzdFByb2R1Y3RzID0gdG90YWxSZXN1bHQuZGF0YVxyXG4gICAgICAuZmlsdGVyKChwcm9kdWN0OiBhbnkpID0+IG1vc3RSZWxldmFudHMuaW5jbHVkZXMocHJvZHVjdC5pZCkgJiYgcHJvZHVjdC5zdG9jay5xdWFudGl0eSA+IDApXHJcbiAgICAgIC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4gbW9zdFJlbGV2YW50cy5pbmRleE9mKGEuaWQpIC0gbW9zdFJlbGV2YW50cy5pbmRleE9mKGIuaWQpKVxyXG4gICAgY29uc3QgbGFzdFByb2R1Y3RzID0gdG90YWxSZXN1bHQuZGF0YVxyXG4gICAgICAuZmlsdGVyKChwcm9kdWN0OiBhbnkpID0+ICFtb3N0UmVsZXZhbnRzLmluY2x1ZGVzKHByb2R1Y3QuaWQpKVxyXG4gICAgICAuY29uY2F0KG1vc3RSZWxldmFudFdpdGhvdXRTdG9jaylcclxuICAgIGNvbnN0IGNhdGVnb3J5TW9zdFJlbGV2YW50cyA9IGZpcnN0UHJvZHVjdHMuY29uY2F0KGxhc3RQcm9kdWN0cylcclxuICAgIGNvbnN0IHJlc3VsdEZpbmFsID0gY2F0ZWdvcnlNb3N0UmVsZXZhbnRzLnNsaWNlKGxpbWl0cy5vZmZzZXQsIGxpbWl0cy5vZmZzZXQgKyBsaW1pdHMubGltaXQpXHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZGF0YTogcmVzdWx0RmluYWwsXHJcbiAgICAgIGNvdW50OiB0b3RhbFJlc3VsdC5jb3VudCxcclxuICAgICAgbWF4aW11bTogdG90YWxSZXN1bHQubWF4aW11bSxcclxuICAgICAgbWluaW1hbDogdG90YWxSZXN1bHQubWluaW1hbCxcclxuICAgICAgZGlzdGluY3Q6IHRvdGFsUmVzdWx0LmRpc3RpbmN0LFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -80,30 +80,13 @@ export class TermSearchStrategy {
|
|
|
80
80
|
sortByTermRelevance(params) {
|
|
81
81
|
const { productIds, totalResult, limits, filters, fieldsHelper } = params;
|
|
82
82
|
// const defaultGender = filters?.gender?.at(0) || 'male'
|
|
83
|
-
// console.log('productIds', productIds)
|
|
84
83
|
const stockData = totalResult.data.filter((product) => product.stock.quantity > 0);
|
|
85
|
-
// console.log('stockData', stockData)
|
|
86
84
|
const stockOut = totalResult.data.filter((product) => product.stock.quantity <= 0);
|
|
87
|
-
// console.log('stockOut', stockOut)
|
|
88
|
-
// const productIdsStockGender = productIds.filter((product) => stockData.some((result: any) => result.id === product))
|
|
89
|
-
// && (result.gender?.includes(defaultGender) || result.gender?.includes('unisex'))
|
|
90
|
-
// const productIdsStockNotGender = productIds.filter((product) =>
|
|
91
|
-
// stockData.some((result: any) => result.id === product),
|
|
92
|
-
// )
|
|
93
|
-
// && !result.gender?.includes(defaultGender) && !result.gender?.includes('unisex')
|
|
94
|
-
// const productIdsStock = productIdsStockGender.concat(productIdsStockNotGender)
|
|
95
85
|
const productIdsStock = productIds.filter((product) => stockData.some((result) => result.id === product));
|
|
96
|
-
// console.log('productIdsStock', productIdsStock)
|
|
97
86
|
const productIdsStockOut = productIds.filter((product) => stockOut.some((result) => result.id === product));
|
|
98
|
-
// console.log('productIdsStockOut', productIdsStockOut)
|
|
99
|
-
// console.log('concat', productIdsStock.concat(productIdsStockOut))
|
|
100
87
|
const limitedProductId = productIdsStock
|
|
101
88
|
.concat(productIdsStockOut)
|
|
102
89
|
.slice(limits.offset, limits.offset + limits.limit);
|
|
103
|
-
// console.log('limitedProductId', limitedProductId)
|
|
104
|
-
// const orderedId = productIds.filter((product) => limitedProductId.includes(product))
|
|
105
|
-
// const orderedId = productIds.filter((product) => limitedProductId.some((p) => p === product))
|
|
106
|
-
// console.log('orderedId', orderedId)
|
|
107
90
|
return this.getDetailedProducts(limitedProductId, totalResult, fieldsHelper);
|
|
108
91
|
}
|
|
109
92
|
async getDetailedProducts(orderedId, totalResult, fieldsHelper) {
|
|
@@ -115,10 +98,6 @@ export class TermSearchStrategy {
|
|
|
115
98
|
},
|
|
116
99
|
fields,
|
|
117
100
|
});
|
|
118
|
-
// console.log(
|
|
119
|
-
// 'detail ordered',
|
|
120
|
-
// orderedId.map((id) => productResult.data.find((product) => product.id === id)).filter(Boolean),
|
|
121
|
-
// )
|
|
122
101
|
return {
|
|
123
102
|
data: orderedId.map((id) => productResult.data.find((product) => product.id === id)).filter(Boolean),
|
|
124
103
|
count: totalResult.count,
|
|
@@ -141,4 +120,4 @@ TermSearchStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", v
|
|
|
141
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: TermSearchStrategy, decorators: [{
|
|
142
121
|
type: Injectable
|
|
143
122
|
}], ctorParameters: function () { return [{ type: i1.CatalogRepositoryService }, { type: i1.CatalogHelpersService }]; } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybS1zZWFyY2guc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvc3RyYXRlZ2llcy90ZXJtLXNlYXJjaC5zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFDTCxPQUFPLEVBS1AsS0FBSyxFQUNMLEtBQUssR0FDTixNQUFNLG1CQUFtQixDQUFBO0FBRzFCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTs7O0FBUzdFLE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFDbUIsaUJBQTJDLEVBQzNDLGNBQXFDO1FBRHJDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0MsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBSmhELG1CQUFjLEdBQTZCLEVBQUUsQ0FBQTtJQUtsRCxDQUFDO0lBRUosS0FBSyxDQUFDLE1BQU0sQ0FDVixNQUEyQixFQUMzQixJQUFXLEVBQ1gsYUFBa0Q7UUFFbEQsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUE7UUFFMUQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQTtTQUMzRDtRQUVELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUVoRSxJQUFJLElBQUksS0FBSyxlQUFlLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7Z0JBQ2pDLFVBQVU7Z0JBQ1YsT0FBTztnQkFDUCxNQUFNO2dCQUNOLElBQUk7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QUNILENBQUM7SUFFTyxLQUFLLENBQUMsc0JBQXNCLENBQUMsSUFBWSxFQUFFLElBQVc7UUFDNUQsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUUvRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtRQUVuRSxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLGVBQWUsQ0FBQyxhQUFhO2FBQ3BFLE1BQU0sQ0FBZ0IsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEtBQUssS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7YUFDN0UsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDN0UsQ0FBQzs7K0dBMUtVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBpc0VtcHR5LFxyXG4gIFByb2R1Y3QsXHJcbiAgUHJvZHVjdFNlYXJjaCxcclxuICBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zLFxyXG4gIFJlcG9zaXRvcnlGaW5kUmVzdWx0LFxyXG4gIFNob3BzLFxyXG4gIFdoZXJlLFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5cclxuaW1wb3J0IHsgQ2F0YWxvZ1NlYXJjaFBhcmFtcywgQ2F0YWxvZ1NlYXJjaFN0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcydcclxuaW1wb3J0IHsgQ2F0YWxvZ0hlbHBlcnNTZXJ2aWNlLCBDYXRhbG9nUmVwb3NpdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcydcclxuXHJcbmltcG9ydCB7XHJcbiAgU29ydEJ5VGVybVJlbGV2YW5jZVBhcmFtcyxcclxuICBUZXJtU2VhcmNoRGVmYXVsdFBhcmFtcyxcclxuICBUZXJtU2VhcmNoTW9zdFJlbGV2YW50UGFyYW1zLFxyXG59IGZyb20gJy4vdHlwZXMvc3RyYXRlZ3ktcGFyYW1zLnR5cGUnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUZXJtU2VhcmNoU3RyYXRlZ3kgaW1wbGVtZW50cyBDYXRhbG9nU2VhcmNoU3RyYXRlZ3kge1xyXG4gIHByaXZhdGUgcHJvZHVjdHNCeVRlcm06IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXBvc2l0b3J5U2VydmljZTogQ2F0YWxvZ1JlcG9zaXRvcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBoZWxwZXJzU2VydmljZTogQ2F0YWxvZ0hlbHBlcnNTZXJ2aWNlLFxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgc2VhcmNoKFxyXG4gICAgcGFyYW1zOiBDYXRhbG9nU2VhcmNoUGFyYW1zLFxyXG4gICAgc2hvcDogU2hvcHMsXHJcbiAgICBfb3B0aW9uc0NhY2hlPzogeyBjYWNoZT86IFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMgfSxcclxuICApOiBQcm9taXNlPFJlcG9zaXRvcnlGaW5kUmVzdWx0PFByb2R1Y3Q+PiB7XHJcbiAgICBjb25zdCB7IHRlcm0sIGZpbHRlcnMsIGxpbWl0cywgc29ydCwgbWFpbkdlbmRlciB9ID0gcGFyYW1zXHJcblxyXG4gICAgaWYgKCF0ZXJtKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGVybSBpcyByZXF1aXJlZCBmb3IgVGVybVNlYXJjaFN0cmF0ZWd5JylcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwcm9kdWN0SWRzID0gYXdhaXQgdGhpcy5maW5kQ2F0YWxvZ0lkc0J5U2VhcmNoKHRlcm0sIHNob3ApXHJcblxyXG4gICAgaWYgKHNvcnQgPT09ICdtb3N0LXJlbGV2YW50Jykge1xyXG4gICAgICByZXR1cm4gdGhpcy5zZWFyY2hXaXRoTW9zdFJlbGV2YW50KHtcclxuICAgICAgICBwcm9kdWN0SWRzLFxyXG4gICAgICAgIGZpbHRlcnMsXHJcbiAgICAgICAgbGltaXRzLFxyXG4gICAgICAgIHNob3AsXHJcbiAgICAgICAgbWFpbkdlbmRlcixcclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hEZWZhdWx0KHtcclxuICAgICAgcHJvZHVjdElkcyxcclxuICAgICAgZmlsdGVycyxcclxuICAgICAgbGltaXRzLFxyXG4gICAgICBzaG9wLFxyXG4gICAgICBtYWluR2VuZGVyLFxyXG4gICAgICBmaWVsZHM6IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0RmllbGRzSGVscGVyKCkuZ2V0U3RhbmRhcmRGaWVsZHMoKSxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHNlYXJjaFdpdGhNb3N0UmVsZXZhbnQocGFyYW1zOiBUZXJtU2VhcmNoTW9zdFJlbGV2YW50UGFyYW1zKTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZFJlc3VsdDxQcm9kdWN0Pj4ge1xyXG4gICAgY29uc3QgeyBwcm9kdWN0SWRzLCBmaWx0ZXJzLCBzaG9wLCBtYWluR2VuZGVyIH0gPSBwYXJhbXNcclxuICAgIGNvbnN0IHByb2R1Y3RDYXRhbG9nID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZS5nZXRQcm9kdWN0Q2F0YWxvZygpXHJcbiAgICBjb25zdCBmaWx0ZXJIZWxwZXIgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldEZpbHRlckhlbHBlcigpXHJcblxyXG4gICAgY29uc3QgdG90YWxSZXN1bHQgPSBhd2FpdCBwcm9kdWN0Q2F0YWxvZy5wcm9kdWN0UmVwb3NpdG9yeS5maW5kQ2F0YWxvZyhcclxuICAgICAge1xyXG4gICAgICAgIGZpZWxkczogWydpZCcsICdzdG9jaycsICdnZW5kZXInXSxcclxuICAgICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgICBpZDogeyBvcGVyYXRvcjogV2hlcmUuSU4sIHZhbHVlOiBwcm9kdWN0SWRzIH0sXHJcbiAgICAgICAgICBwdWJsaXNoZWQ6IHsgb3BlcmF0b3I6IFdoZXJlLkVRVUFMUywgdmFsdWU6IHRydWUgfSxcclxuICAgICAgICAgIC4uLmZpbHRlckhlbHBlci5idWlsZEZpbHRlclF1ZXJ5KGZpbHRlcnMgfHwge30pLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgbWluaW1hbDogWydwcmljZSddLFxyXG4gICAgICAgICAgbWF4aW11bTogWydwcmljZSddLFxyXG4gICAgICAgICAgLi4uKGlzRW1wdHkoZmlsdGVycz8uYnJhbmRzKSA/IHsgZGlzdGluY3Q6IFsnYnJhbmQnXSB9IDoge30pLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIG1haW5HZW5kZXIgfHwgKHNob3AgPT09IFNob3BzLk1FTlNNQVJLRVQgPyAnbWFsZScgOiAnZmVtYWxlJyksXHJcbiAgICApXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuc29ydEJ5VGVybVJlbGV2YW5jZSh7XHJcbiAgICAgIHByb2R1Y3RJZHMsXHJcbiAgICAgIHRvdGFsUmVzdWx0LFxyXG4gICAgICBsaW1pdHM6IHBhcmFtcy5saW1pdHMsXHJcbiAgICAgIGZpbHRlcnMsXHJcbiAgICAgIGZpZWxkc0hlbHBlcjogdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWVsZHNIZWxwZXIoKSxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHNlYXJjaERlZmF1bHQocGFyYW1zOiBUZXJtU2VhcmNoRGVmYXVsdFBhcmFtcyk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8UHJvZHVjdD4+IHtcclxuICAgIGNvbnN0IHsgcHJvZHVjdElkcywgZmlsdGVycywgbGltaXRzLCBzaG9wLCBtYWluR2VuZGVyLCBmaWVsZHMgfSA9IHBhcmFtc1xyXG4gICAgY29uc3QgcHJvZHVjdENhdGFsb2cgPSB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmdldFByb2R1Y3RDYXRhbG9nKClcclxuICAgIGNvbnN0IGZpbHRlckhlbHBlciA9IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0RmlsdGVySGVscGVyKClcclxuXHJcbiAgICByZXR1cm4gcHJvZHVjdENhdGFsb2cucHJvZHVjdFJlcG9zaXRvcnkuZmluZENhdGFsb2coXHJcbiAgICAgIHtcclxuICAgICAgICBmaWVsZHMsXHJcbiAgICAgICAgZmlsdGVyczoge1xyXG4gICAgICAgICAgaWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogcHJvZHVjdElkcyB9LFxyXG4gICAgICAgICAgcHVibGlzaGVkOiB7IG9wZXJhdG9yOiBXaGVyZS5FUVVBTFMsIHZhbHVlOiB0cnVlIH0sXHJcbiAgICAgICAgICAuLi5maWx0ZXJIZWxwZXIuYnVpbGRGaWx0ZXJRdWVyeShmaWx0ZXJzIHx8IHt9KSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxpbWl0cyxcclxuICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICBtaW5pbWFsOiBbJ3ByaWNlJ10sXHJcbiAgICAgICAgICBtYXhpbXVtOiBbJ3ByaWNlJ10sXHJcbiAgICAgICAgICBkaXN0aW5jdDogWydicmFuZCddLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIG1haW5HZW5kZXIgfHwgKHNob3AgPT09IFNob3BzLk1FTlNNQVJLRVQgPyAnbWFsZScgOiAnZmVtYWxlJyksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNvcnRCeVRlcm1SZWxldmFuY2UocGFyYW1zOiBTb3J0QnlUZXJtUmVsZXZhbmNlUGFyYW1zKSB7XHJcbiAgICBjb25zdCB7IHByb2R1Y3RJZHMsIHRvdGFsUmVzdWx0LCBsaW1pdHMsIGZpbHRlcnMsIGZpZWxkc0hlbHBlciB9ID0gcGFyYW1zXHJcbiAgICAvLyBjb25zdCBkZWZhdWx0R2VuZGVyID0gZmlsdGVycz8uZ2VuZGVyPy5hdCgwKSB8fCAnbWFsZSdcclxuXHJcbiAgICAvLyBjb25zb2xlLmxvZygncHJvZHVjdElkcycsIHByb2R1Y3RJZHMpXHJcblxyXG4gICAgY29uc3Qgc3RvY2tEYXRhID0gdG90YWxSZXN1bHQuZGF0YS5maWx0ZXIoKHByb2R1Y3Q6IGFueSkgPT4gcHJvZHVjdC5zdG9jay5xdWFudGl0eSA+IDApXHJcblxyXG4gICAgLy8gY29uc29sZS5sb2coJ3N0b2NrRGF0YScsIHN0b2NrRGF0YSlcclxuICAgIGNvbnN0IHN0b2NrT3V0ID0gdG90YWxSZXN1bHQuZGF0YS5maWx0ZXIoKHByb2R1Y3Q6IGFueSkgPT4gcHJvZHVjdC5zdG9jay5xdWFudGl0eSA8PSAwKVxyXG5cclxuICAgIC8vIGNvbnNvbGUubG9nKCdzdG9ja091dCcsIHN0b2NrT3V0KVxyXG4gICAgLy8gY29uc3QgcHJvZHVjdElkc1N0b2NrR2VuZGVyID0gcHJvZHVjdElkcy5maWx0ZXIoKHByb2R1Y3QpID0+IHN0b2NrRGF0YS5zb21lKChyZXN1bHQ6IGFueSkgPT4gcmVzdWx0LmlkID09PSBwcm9kdWN0KSlcclxuICAgIC8vICYmIChyZXN1bHQuZ2VuZGVyPy5pbmNsdWRlcyhkZWZhdWx0R2VuZGVyKSB8fCByZXN1bHQuZ2VuZGVyPy5pbmNsdWRlcygndW5pc2V4JykpXHJcblxyXG4gICAgLy8gY29uc3QgcHJvZHVjdElkc1N0b2NrTm90R2VuZGVyID0gcHJvZHVjdElkcy5maWx0ZXIoKHByb2R1Y3QpID0+XHJcbiAgICAvLyAgIHN0b2NrRGF0YS5zb21lKChyZXN1bHQ6IGFueSkgPT4gcmVzdWx0LmlkID09PSBwcm9kdWN0KSxcclxuICAgIC8vIClcclxuICAgIC8vICYmICFyZXN1bHQuZ2VuZGVyPy5pbmNsdWRlcyhkZWZhdWx0R2VuZGVyKSAmJiAhcmVzdWx0LmdlbmRlcj8uaW5jbHVkZXMoJ3VuaXNleCcpXHJcblxyXG4gICAgLy8gY29uc3QgcHJvZHVjdElkc1N0b2NrID0gcHJvZHVjdElkc1N0b2NrR2VuZGVyLmNvbmNhdChwcm9kdWN0SWRzU3RvY2tOb3RHZW5kZXIpXHJcbiAgICBjb25zdCBwcm9kdWN0SWRzU3RvY2sgPSBwcm9kdWN0SWRzLmZpbHRlcigocHJvZHVjdCkgPT4gc3RvY2tEYXRhLnNvbWUoKHJlc3VsdDogYW55KSA9PiByZXN1bHQuaWQgPT09IHByb2R1Y3QpKVxyXG5cclxuICAgIC8vIGNvbnNvbGUubG9nKCdwcm9kdWN0SWRzU3RvY2snLCBwcm9kdWN0SWRzU3RvY2spXHJcbiAgICBjb25zdCBwcm9kdWN0SWRzU3RvY2tPdXQgPSBwcm9kdWN0SWRzLmZpbHRlcigocHJvZHVjdCkgPT4gc3RvY2tPdXQuc29tZSgocmVzdWx0OiBhbnkpID0+IHJlc3VsdC5pZCA9PT0gcHJvZHVjdCkpXHJcblxyXG4gICAgLy8gY29uc29sZS5sb2coJ3Byb2R1Y3RJZHNTdG9ja091dCcsIHByb2R1Y3RJZHNTdG9ja091dClcclxuXHJcbiAgICAvLyBjb25zb2xlLmxvZygnY29uY2F0JywgcHJvZHVjdElkc1N0b2NrLmNvbmNhdChwcm9kdWN0SWRzU3RvY2tPdXQpKVxyXG4gICAgY29uc3QgbGltaXRlZFByb2R1Y3RJZCA9IHByb2R1Y3RJZHNTdG9ja1xyXG4gICAgICAuY29uY2F0KHByb2R1Y3RJZHNTdG9ja091dClcclxuICAgICAgLnNsaWNlKGxpbWl0cy5vZmZzZXQsIGxpbWl0cy5vZmZzZXQgKyBsaW1pdHMubGltaXQpXHJcblxyXG4gICAgLy8gY29uc29sZS5sb2coJ2xpbWl0ZWRQcm9kdWN0SWQnLCBsaW1pdGVkUHJvZHVjdElkKVxyXG4gICAgLy8gY29uc3Qgb3JkZXJlZElkID0gcHJvZHVjdElkcy5maWx0ZXIoKHByb2R1Y3QpID0+IGxpbWl0ZWRQcm9kdWN0SWQuaW5jbHVkZXMocHJvZHVjdCkpXHJcbiAgICAvLyBjb25zdCBvcmRlcmVkSWQgPSBwcm9kdWN0SWRzLmZpbHRlcigocHJvZHVjdCkgPT4gbGltaXRlZFByb2R1Y3RJZC5zb21lKChwKSA9PiBwID09PSBwcm9kdWN0KSlcclxuXHJcbiAgICAvLyBjb25zb2xlLmxvZygnb3JkZXJlZElkJywgb3JkZXJlZElkKVxyXG5cclxuICAgIHJldHVybiB0aGlzLmdldERldGFpbGVkUHJvZHVjdHMobGltaXRlZFByb2R1Y3RJZCwgdG90YWxSZXN1bHQsIGZpZWxkc0hlbHBlcilcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgZ2V0RGV0YWlsZWRQcm9kdWN0cyhvcmRlcmVkSWQ6IHN0cmluZ1tdLCB0b3RhbFJlc3VsdDogYW55LCBmaWVsZHNIZWxwZXI6IGFueSkge1xyXG4gICAgY29uc3QgcHJvZHVjdENhdGFsb2cgPSB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmdldFByb2R1Y3RDYXRhbG9nKClcclxuICAgIGNvbnN0IGZpZWxkcyA9IGZpZWxkc0hlbHBlci5nZXRTdGFuZGFyZEZpZWxkcygpXHJcbiAgICBjb25zdCBwcm9kdWN0UmVzdWx0ID0gYXdhaXQgcHJvZHVjdENhdGFsb2cucHJvZHVjdFJlcG9zaXRvcnkuZmluZENhdGFsb2coe1xyXG4gICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgaWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogb3JkZXJlZElkIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGZpZWxkcyxcclxuICAgIH0pXHJcblxyXG4gICAgLy8gY29uc29sZS5sb2coXHJcbiAgICAvLyAgICdkZXRhaWwgb3JkZXJlZCcsXHJcbiAgICAvLyAgIG9yZGVyZWRJZC5tYXAoKGlkKSA9PiBwcm9kdWN0UmVzdWx0LmRhdGEuZmluZCgocHJvZHVjdCkgPT4gcHJvZHVjdC5pZCA9PT0gaWQpKS5maWx0ZXIoQm9vbGVhbiksXHJcbiAgICAvLyApXHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZGF0YTogb3JkZXJlZElkLm1hcCgoaWQpID0+IHByb2R1Y3RSZXN1bHQuZGF0YS5maW5kKChwcm9kdWN0KSA9PiBwcm9kdWN0LmlkID09PSBpZCkpLmZpbHRlcihCb29sZWFuKSxcclxuICAgICAgY291bnQ6IHRvdGFsUmVzdWx0LmNvdW50LFxyXG4gICAgICBtYXhpbXVtOiB0b3RhbFJlc3VsdC5tYXhpbXVtLFxyXG4gICAgICBtaW5pbWFsOiB0b3RhbFJlc3VsdC5taW5pbWFsLFxyXG4gICAgICBkaXN0aW5jdDogdG90YWxSZXN1bHQuZGlzdGluY3QsXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGZpbmRDYXRhbG9nSWRzQnlTZWFyY2godGVybTogc3RyaW5nLCBzaG9wOiBTaG9wcyk6IFByb21pc2U8c3RyaW5nW10+IHtcclxuICAgIGlmICh0aGlzLnByb2R1Y3RzQnlUZXJtW3Rlcm1dKSByZXR1cm4gdGhpcy5wcm9kdWN0c0J5VGVybVt0ZXJtXVxyXG5cclxuICAgIGNvbnN0IHByb2R1Y3RTZXJ2aWNlcyA9IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UuZ2V0UHJvZHVjdFNlcnZpY2VzKClcclxuXHJcbiAgICByZXR1cm4gKHRoaXMucHJvZHVjdHNCeVRlcm1bdGVybV0gPSBhd2FpdCBwcm9kdWN0U2VydmljZXMucHJvZHVjdFNlYXJjaFxyXG4gICAgICAuc2VhcmNoPFByb2R1Y3RTZWFyY2g+KHRlcm0sIDk5OSwgc2hvcCA9PT0gU2hvcHMuR0xBTVNIT1AgPyAnZmVtYWxlJyA6ICdtYWxlJylcclxuICAgICAgLnRoZW4oKHByb2R1Y3RzKSA9PiBbLi4ubmV3IFNldChwcm9kdWN0cy5tYXAoKHByb2R1Y3QpID0+IHByb2R1Y3QuaWQpKV0pKVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybS1zZWFyY2guc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvc3RyYXRlZ2llcy90ZXJtLXNlYXJjaC5zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFDTCxPQUFPLEVBS1AsS0FBSyxFQUNMLEtBQUssR0FDTixNQUFNLG1CQUFtQixDQUFBO0FBRzFCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTs7O0FBUzdFLE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFDbUIsaUJBQTJDLEVBQzNDLGNBQXFDO1FBRHJDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0MsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBSmhELG1CQUFjLEdBQTZCLEVBQUUsQ0FBQTtJQUtsRCxDQUFDO0lBRUosS0FBSyxDQUFDLE1BQU0sQ0FDVixNQUEyQixFQUMzQixJQUFXLEVBQ1gsYUFBa0Q7UUFFbEQsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUE7UUFFMUQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQTtTQUMzRDtRQUVELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUVoRSxJQUFJLElBQUksS0FBSyxlQUFlLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7Z0JBQ2pDLFVBQVU7Z0JBQ1YsT0FBTztnQkFDUCxNQUFNO2dCQUNOLElBQUk7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QUFhO2FBQ3BFLE1BQU0sQ0FBZ0IsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEtBQUssS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7YUFDN0UsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDN0UsQ0FBQzs7K0dBeklVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBpc0VtcHR5LFxyXG4gIFByb2R1Y3QsXHJcbiAgUHJvZHVjdFNlYXJjaCxcclxuICBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zLFxyXG4gIFJlcG9zaXRvcnlGaW5kUmVzdWx0LFxyXG4gIFNob3BzLFxyXG4gIFdoZXJlLFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5cclxuaW1wb3J0IHsgQ2F0YWxvZ1NlYXJjaFBhcmFtcywgQ2F0YWxvZ1NlYXJjaFN0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcydcclxuaW1wb3J0IHsgQ2F0YWxvZ0hlbHBlcnNTZXJ2aWNlLCBDYXRhbG9nUmVwb3NpdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcydcclxuXHJcbmltcG9ydCB7XHJcbiAgU29ydEJ5VGVybVJlbGV2YW5jZVBhcmFtcyxcclxuICBUZXJtU2VhcmNoRGVmYXVsdFBhcmFtcyxcclxuICBUZXJtU2VhcmNoTW9zdFJlbGV2YW50UGFyYW1zLFxyXG59IGZyb20gJy4vdHlwZXMvc3RyYXRlZ3ktcGFyYW1zLnR5cGUnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUZXJtU2VhcmNoU3RyYXRlZ3kgaW1wbGVtZW50cyBDYXRhbG9nU2VhcmNoU3RyYXRlZ3kge1xyXG4gIHByaXZhdGUgcHJvZHVjdHNCeVRlcm06IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXBvc2l0b3J5U2VydmljZTogQ2F0YWxvZ1JlcG9zaXRvcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBoZWxwZXJzU2VydmljZTogQ2F0YWxvZ0hlbHBlcnNTZXJ2aWNlLFxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgc2VhcmNoKFxyXG4gICAgcGFyYW1zOiBDYXRhbG9nU2VhcmNoUGFyYW1zLFxyXG4gICAgc2hvcDogU2hvcHMsXHJcbiAgICBfb3B0aW9uc0NhY2hlPzogeyBjYWNoZT86IFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMgfSxcclxuICApOiBQcm9taXNlPFJlcG9zaXRvcnlGaW5kUmVzdWx0PFByb2R1Y3Q+PiB7XHJcbiAgICBjb25zdCB7IHRlcm0sIGZpbHRlcnMsIGxpbWl0cywgc29ydCwgbWFpbkdlbmRlciB9ID0gcGFyYW1zXHJcblxyXG4gICAgaWYgKCF0ZXJtKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGVybSBpcyByZXF1aXJlZCBmb3IgVGVybVNlYXJjaFN0cmF0ZWd5JylcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwcm9kdWN0SWRzID0gYXdhaXQgdGhpcy5maW5kQ2F0YWxvZ0lkc0J5U2VhcmNoKHRlcm0sIHNob3ApXHJcblxyXG4gICAgaWYgKHNvcnQgPT09ICdtb3N0LXJlbGV2YW50Jykge1xyXG4gICAgICByZXR1cm4gdGhpcy5zZWFyY2hXaXRoTW9zdFJlbGV2YW50KHtcclxuICAgICAgICBwcm9kdWN0SWRzLFxyXG4gICAgICAgIGZpbHRlcnMsXHJcbiAgICAgICAgbGltaXRzLFxyXG4gICAgICAgIHNob3AsXHJcbiAgICAgICAgbWFpbkdlbmRlcixcclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hEZWZhdWx0KHtcclxuICAgICAgcHJvZHVjdElkcyxcclxuICAgICAgZmlsdGVycyxcclxuICAgICAgbGltaXRzLFxyXG4gICAgICBzaG9wLFxyXG4gICAgICBtYWluR2VuZGVyLFxyXG4gICAgICBmaWVsZHM6IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0RmllbGRzSGVscGVyKCkuZ2V0U3RhbmRhcmRGaWVsZHMoKSxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHNlYXJjaFdpdGhNb3N0UmVsZXZhbnQocGFyYW1zOiBUZXJtU2VhcmNoTW9zdFJlbGV2YW50UGFyYW1zKTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZFJlc3VsdDxQcm9kdWN0Pj4ge1xyXG4gICAgY29uc3QgeyBwcm9kdWN0SWRzLCBmaWx0ZXJzLCBzaG9wLCBtYWluR2VuZGVyIH0gPSBwYXJhbXNcclxuICAgIGNvbnN0IHByb2R1Y3RDYXRhbG9nID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZS5nZXRQcm9kdWN0Q2F0YWxvZygpXHJcbiAgICBjb25zdCBmaWx0ZXJIZWxwZXIgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldEZpbHRlckhlbHBlcigpXHJcblxyXG4gICAgY29uc3QgdG90YWxSZXN1bHQgPSBhd2FpdCBwcm9kdWN0Q2F0YWxvZy5wcm9kdWN0UmVwb3NpdG9yeS5maW5kQ2F0YWxvZyhcclxuICAgICAge1xyXG4gICAgICAgIGZpZWxkczogWydpZCcsICdzdG9jaycsICdnZW5kZXInXSxcclxuICAgICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgICBpZDogeyBvcGVyYXRvcjogV2hlcmUuSU4sIHZhbHVlOiBwcm9kdWN0SWRzIH0sXHJcbiAgICAgICAgICBwdWJsaXNoZWQ6IHsgb3BlcmF0b3I6IFdoZXJlLkVRVUFMUywgdmFsdWU6IHRydWUgfSxcclxuICAgICAgICAgIC4uLmZpbHRlckhlbHBlci5idWlsZEZpbHRlclF1ZXJ5KGZpbHRlcnMgfHwge30pLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgbWluaW1hbDogWydwcmljZSddLFxyXG4gICAgICAgICAgbWF4aW11bTogWydwcmljZSddLFxyXG4gICAgICAgICAgLi4uKGlzRW1wdHkoZmlsdGVycz8uYnJhbmRzKSA/IHsgZGlzdGluY3Q6IFsnYnJhbmQnXSB9IDoge30pLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIG1haW5HZW5kZXIgfHwgKHNob3AgPT09IFNob3BzLk1FTlNNQVJLRVQgPyAnbWFsZScgOiAnZmVtYWxlJyksXHJcbiAgICApXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuc29ydEJ5VGVybVJlbGV2YW5jZSh7XHJcbiAgICAgIHByb2R1Y3RJZHMsXHJcbiAgICAgIHRvdGFsUmVzdWx0LFxyXG4gICAgICBsaW1pdHM6IHBhcmFtcy5saW1pdHMsXHJcbiAgICAgIGZpbHRlcnMsXHJcbiAgICAgIGZpZWxkc0hlbHBlcjogdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWVsZHNIZWxwZXIoKSxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHNlYXJjaERlZmF1bHQocGFyYW1zOiBUZXJtU2VhcmNoRGVmYXVsdFBhcmFtcyk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8UHJvZHVjdD4+IHtcclxuICAgIGNvbnN0IHsgcHJvZHVjdElkcywgZmlsdGVycywgbGltaXRzLCBzaG9wLCBtYWluR2VuZGVyLCBmaWVsZHMgfSA9IHBhcmFtc1xyXG4gICAgY29uc3QgcHJvZHVjdENhdGFsb2cgPSB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmdldFByb2R1Y3RDYXRhbG9nKClcclxuICAgIGNvbnN0IGZpbHRlckhlbHBlciA9IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0RmlsdGVySGVscGVyKClcclxuXHJcbiAgICByZXR1cm4gcHJvZHVjdENhdGFsb2cucHJvZHVjdFJlcG9zaXRvcnkuZmluZENhdGFsb2coXHJcbiAgICAgIHtcclxuICAgICAgICBmaWVsZHMsXHJcbiAgICAgICAgZmlsdGVyczoge1xyXG4gICAgICAgICAgaWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogcHJvZHVjdElkcyB9LFxyXG4gICAgICAgICAgcHVibGlzaGVkOiB7IG9wZXJhdG9yOiBXaGVyZS5FUVVBTFMsIHZhbHVlOiB0cnVlIH0sXHJcbiAgICAgICAgICAuLi5maWx0ZXJIZWxwZXIuYnVpbGRGaWx0ZXJRdWVyeShmaWx0ZXJzIHx8IHt9KSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxpbWl0cyxcclxuICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICBtaW5pbWFsOiBbJ3ByaWNlJ10sXHJcbiAgICAgICAgICBtYXhpbXVtOiBbJ3ByaWNlJ10sXHJcbiAgICAgICAgICBkaXN0aW5jdDogWydicmFuZCddLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIG1haW5HZW5kZXIgfHwgKHNob3AgPT09IFNob3BzLk1FTlNNQVJLRVQgPyAnbWFsZScgOiAnZmVtYWxlJyksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNvcnRCeVRlcm1SZWxldmFuY2UocGFyYW1zOiBTb3J0QnlUZXJtUmVsZXZhbmNlUGFyYW1zKSB7XHJcbiAgICBjb25zdCB7IHByb2R1Y3RJZHMsIHRvdGFsUmVzdWx0LCBsaW1pdHMsIGZpbHRlcnMsIGZpZWxkc0hlbHBlciB9ID0gcGFyYW1zXHJcbiAgICAvLyBjb25zdCBkZWZhdWx0R2VuZGVyID0gZmlsdGVycz8uZ2VuZGVyPy5hdCgwKSB8fCAnbWFsZSdcclxuICAgIGNvbnN0IHN0b2NrRGF0YSA9IHRvdGFsUmVzdWx0LmRhdGEuZmlsdGVyKChwcm9kdWN0OiBhbnkpID0+IHByb2R1Y3Quc3RvY2sucXVhbnRpdHkgPiAwKVxyXG4gICAgY29uc3Qgc3RvY2tPdXQgPSB0b3RhbFJlc3VsdC5kYXRhLmZpbHRlcigocHJvZHVjdDogYW55KSA9PiBwcm9kdWN0LnN0b2NrLnF1YW50aXR5IDw9IDApXHJcbiAgICBjb25zdCBwcm9kdWN0SWRzU3RvY2sgPSBwcm9kdWN0SWRzLmZpbHRlcigocHJvZHVjdCkgPT4gc3RvY2tEYXRhLnNvbWUoKHJlc3VsdDogYW55KSA9PiByZXN1bHQuaWQgPT09IHByb2R1Y3QpKVxyXG4gICAgY29uc3QgcHJvZHVjdElkc1N0b2NrT3V0ID0gcHJvZHVjdElkcy5maWx0ZXIoKHByb2R1Y3QpID0+IHN0b2NrT3V0LnNvbWUoKHJlc3VsdDogYW55KSA9PiByZXN1bHQuaWQgPT09IHByb2R1Y3QpKVxyXG4gICAgY29uc3QgbGltaXRlZFByb2R1Y3RJZCA9IHByb2R1Y3RJZHNTdG9ja1xyXG4gICAgICAuY29uY2F0KHByb2R1Y3RJZHNTdG9ja091dClcclxuICAgICAgLnNsaWNlKGxpbWl0cy5vZmZzZXQsIGxpbWl0cy5vZmZzZXQgKyBsaW1pdHMubGltaXQpXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RGV0YWlsZWRQcm9kdWN0cyhsaW1pdGVkUHJvZHVjdElkLCB0b3RhbFJlc3VsdCwgZmllbGRzSGVscGVyKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXREZXRhaWxlZFByb2R1Y3RzKG9yZGVyZWRJZDogc3RyaW5nW10sIHRvdGFsUmVzdWx0OiBhbnksIGZpZWxkc0hlbHBlcjogYW55KSB7XHJcbiAgICBjb25zdCBwcm9kdWN0Q2F0YWxvZyA9IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UuZ2V0UHJvZHVjdENhdGFsb2coKVxyXG4gICAgY29uc3QgZmllbGRzID0gZmllbGRzSGVscGVyLmdldFN0YW5kYXJkRmllbGRzKClcclxuICAgIGNvbnN0IHByb2R1Y3RSZXN1bHQgPSBhd2FpdCBwcm9kdWN0Q2F0YWxvZy5wcm9kdWN0UmVwb3NpdG9yeS5maW5kQ2F0YWxvZyh7XHJcbiAgICAgIGZpbHRlcnM6IHtcclxuICAgICAgICBpZDogeyBvcGVyYXRvcjogV2hlcmUuSU4sIHZhbHVlOiBvcmRlcmVkSWQgfSxcclxuICAgICAgfSxcclxuICAgICAgZmllbGRzLFxyXG4gICAgfSlcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkYXRhOiBvcmRlcmVkSWQubWFwKChpZCkgPT4gcHJvZHVjdFJlc3VsdC5kYXRhLmZpbmQoKHByb2R1Y3QpID0+IHByb2R1Y3QuaWQgPT09IGlkKSkuZmlsdGVyKEJvb2xlYW4pLFxyXG4gICAgICBjb3VudDogdG90YWxSZXN1bHQuY291bnQsXHJcbiAgICAgIG1heGltdW06IHRvdGFsUmVzdWx0Lm1heGltdW0sXHJcbiAgICAgIG1pbmltYWw6IHRvdGFsUmVzdWx0Lm1pbmltYWwsXHJcbiAgICAgIGRpc3RpbmN0OiB0b3RhbFJlc3VsdC5kaXN0aW5jdCxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgZmluZENhdGFsb2dJZHNCeVNlYXJjaCh0ZXJtOiBzdHJpbmcsIHNob3A6IFNob3BzKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xyXG4gICAgaWYgKHRoaXMucHJvZHVjdHNCeVRlcm1bdGVybV0pIHJldHVybiB0aGlzLnByb2R1Y3RzQnlUZXJtW3Rlcm1dXHJcblxyXG4gICAgY29uc3QgcHJvZHVjdFNlcnZpY2VzID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZS5nZXRQcm9kdWN0U2VydmljZXMoKVxyXG5cclxuICAgIHJldHVybiAodGhpcy5wcm9kdWN0c0J5VGVybVt0ZXJtXSA9IGF3YWl0IHByb2R1Y3RTZXJ2aWNlcy5wcm9kdWN0U2VhcmNoXHJcbiAgICAgIC5zZWFyY2g8UHJvZHVjdFNlYXJjaD4odGVybSwgOTk5LCBzaG9wID09PSBTaG9wcy5HTEFNU0hPUCA/ICdmZW1hbGUnIDogJ21hbGUnKVxyXG4gICAgICAudGhlbigocHJvZHVjdHMpID0+IFsuLi5uZXcgU2V0KHByb2R1Y3RzLm1hcCgocHJvZHVjdCkgPT4gcHJvZHVjdC5pZCkpXSkpXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -7,7 +7,7 @@ import { provideAppCheck, initializeAppCheck } from '@angular/fire/app-check';
|
|
|
7
7
|
import * as i3$1 from '@angular/fire/storage';
|
|
8
8
|
import { Storage, provideStorage, getStorage } from '@angular/fire/storage';
|
|
9
9
|
import * as i3 from '@infrab4a/connect';
|
|
10
|
-
import { ProductsIndex, AxiosAdapter, Authentication, AuthenticationFirebaseAuthService, Register, RegisterFirebaseAuthService, SignOut, RecoveryPassword, ConnectFirestoreService, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, GroupFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, SubscriptionMaterializationFirestoreRepository, SubscriptionSummaryFirestoreRepository, ProductVariantFirestoreRepository, OrderBlockedFirestoreRepository, LogFirestoreRepository, SequenceFirestoreRepository, CategoryHasuraGraphQLRepository, ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, ProductReviewHasuraGraphQLRepository, VariantHasuraGraphQLRepository, ProductStockNotificationHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, FilterHasuraGraphQLRepository, CategoryCollectionChildrenHasuraGraphQLRepository, CategoryProductHasuraGraphQLRepository, WishlistHasuraGraphQLRepository, ProductErrorsHasuraGraphQLRepository, ProductsVertexSearch, VertexAxiosAdapter, isNil, NotFoundError, Checkout, pick, LineItem, Where,
|
|
10
|
+
import { ProductsIndex, AxiosAdapter, Authentication, AuthenticationFirebaseAuthService, Register, RegisterFirebaseAuthService, SignOut, RecoveryPassword, ConnectFirestoreService, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, GroupFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, SubscriptionMaterializationFirestoreRepository, SubscriptionSummaryFirestoreRepository, ProductVariantFirestoreRepository, OrderBlockedFirestoreRepository, LogFirestoreRepository, SequenceFirestoreRepository, CategoryHasuraGraphQLRepository, ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, ProductReviewHasuraGraphQLRepository, VariantHasuraGraphQLRepository, ProductStockNotificationHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, FilterHasuraGraphQLRepository, CategoryCollectionChildrenHasuraGraphQLRepository, CategoryProductHasuraGraphQLRepository, WishlistHasuraGraphQLRepository, ProductErrorsHasuraGraphQLRepository, ProductsVertexSearch, VertexAxiosAdapter, isNil, NotFoundError, Checkout, pick, LineItem, Where, isEmpty, Shops, set, InvalidArgumentError, RoundProductPricesHelper, Category, WishlistLogType, PersonTypes, Wishlist, CheckoutTypes, CouponTypes, Exclusivities, OrderStatus, CheckoutSubscription, Product, RequiredArgumentError, add, Order, UpdateUserImage, FirebaseFileUploaderService } from '@infrab4a/connect';
|
|
11
11
|
import * as i1 from '@angular/fire/auth';
|
|
12
12
|
import { Auth, provideAuth, initializeAuth, indexedDBLocalPersistence, browserLocalPersistence, browserSessionPersistence, getAuth, getIdToken, authState } from '@angular/fire/auth';
|
|
13
13
|
import { isPlatformBrowser, isPlatformServer } from '@angular/common';
|
|
@@ -1523,6 +1523,8 @@ class CategorySearchStrategy {
|
|
|
1523
1523
|
fields,
|
|
1524
1524
|
});
|
|
1525
1525
|
}
|
|
1526
|
+
// eslint-disable-next-line no-console
|
|
1527
|
+
console.log('return searchDefault');
|
|
1526
1528
|
return this.searchDefault({
|
|
1527
1529
|
category,
|
|
1528
1530
|
filters,
|
|
@@ -1554,7 +1556,7 @@ class CategorySearchStrategy {
|
|
|
1554
1556
|
}
|
|
1555
1557
|
searchDefault(params) {
|
|
1556
1558
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1557
|
-
const { category, filters, limits,
|
|
1559
|
+
const { category, filters, limits, sort, optionsCache, fields } = params;
|
|
1558
1560
|
const productCatalog = this.repositoryService.getProductCatalog();
|
|
1559
1561
|
const filterHelper = this.helpersService.getFilterHelper();
|
|
1560
1562
|
const sortHelper = this.helpersService.getSortHelper();
|
|
@@ -1563,7 +1565,9 @@ class CategorySearchStrategy {
|
|
|
1563
1565
|
maximum: ['price'],
|
|
1564
1566
|
distinct: ['brand'],
|
|
1565
1567
|
} });
|
|
1566
|
-
|
|
1568
|
+
// eslint-disable-next-line no-console
|
|
1569
|
+
console.log('repoParams', JSON.stringify(repoParams));
|
|
1570
|
+
return productCatalog.productRepository.findCatalog(repoParams, null, optionsCache);
|
|
1567
1571
|
});
|
|
1568
1572
|
}
|
|
1569
1573
|
getProductIds(category, filters, optionsCache) {
|
|
@@ -1580,6 +1584,8 @@ class CategorySearchStrategy {
|
|
|
1580
1584
|
}
|
|
1581
1585
|
findAndSortByMostRelevant(params) {
|
|
1582
1586
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1587
|
+
// eslint-disable-next-line no-console
|
|
1588
|
+
console.log('shoudl not enter findAndSortByMostRelevant');
|
|
1583
1589
|
const { mostRelevants, productIds, filters, shop, mainGender, optionsCache, fields, limits } = params;
|
|
1584
1590
|
const productCatalog = this.repositoryService.getProductCatalog();
|
|
1585
1591
|
const filterHelper = this.helpersService.getFilterHelper();
|
|
@@ -1595,6 +1601,8 @@ class CategorySearchStrategy {
|
|
|
1595
1601
|
});
|
|
1596
1602
|
}
|
|
1597
1603
|
sortProductsByRelevance(totalResult, mostRelevants, limits) {
|
|
1604
|
+
// eslint-disable-next-line no-console
|
|
1605
|
+
console.log('shoudl not enter sortProductsByRelevance');
|
|
1598
1606
|
const mostRelevantWithoutStock = totalResult.data.filter((product) => mostRelevants.includes(product.id) && product.stock.quantity <= 0);
|
|
1599
1607
|
const firstProducts = totalResult.data
|
|
1600
1608
|
.filter((product) => mostRelevants.includes(product.id) && product.stock.quantity > 0)
|
|
@@ -1720,30 +1728,13 @@ class TermSearchStrategy {
|
|
|
1720
1728
|
sortByTermRelevance(params) {
|
|
1721
1729
|
const { productIds, totalResult, limits, filters, fieldsHelper } = params;
|
|
1722
1730
|
// const defaultGender = filters?.gender?.at(0) || 'male'
|
|
1723
|
-
// console.log('productIds', productIds)
|
|
1724
1731
|
const stockData = totalResult.data.filter((product) => product.stock.quantity > 0);
|
|
1725
|
-
// console.log('stockData', stockData)
|
|
1726
1732
|
const stockOut = totalResult.data.filter((product) => product.stock.quantity <= 0);
|
|
1727
|
-
// console.log('stockOut', stockOut)
|
|
1728
|
-
// const productIdsStockGender = productIds.filter((product) => stockData.some((result: any) => result.id === product))
|
|
1729
|
-
// && (result.gender?.includes(defaultGender) || result.gender?.includes('unisex'))
|
|
1730
|
-
// const productIdsStockNotGender = productIds.filter((product) =>
|
|
1731
|
-
// stockData.some((result: any) => result.id === product),
|
|
1732
|
-
// )
|
|
1733
|
-
// && !result.gender?.includes(defaultGender) && !result.gender?.includes('unisex')
|
|
1734
|
-
// const productIdsStock = productIdsStockGender.concat(productIdsStockNotGender)
|
|
1735
1733
|
const productIdsStock = productIds.filter((product) => stockData.some((result) => result.id === product));
|
|
1736
|
-
// console.log('productIdsStock', productIdsStock)
|
|
1737
1734
|
const productIdsStockOut = productIds.filter((product) => stockOut.some((result) => result.id === product));
|
|
1738
|
-
// console.log('productIdsStockOut', productIdsStockOut)
|
|
1739
|
-
// console.log('concat', productIdsStock.concat(productIdsStockOut))
|
|
1740
1735
|
const limitedProductId = productIdsStock
|
|
1741
1736
|
.concat(productIdsStockOut)
|
|
1742
1737
|
.slice(limits.offset, limits.offset + limits.limit);
|
|
1743
|
-
// console.log('limitedProductId', limitedProductId)
|
|
1744
|
-
// const orderedId = productIds.filter((product) => limitedProductId.includes(product))
|
|
1745
|
-
// const orderedId = productIds.filter((product) => limitedProductId.some((p) => p === product))
|
|
1746
|
-
// console.log('orderedId', orderedId)
|
|
1747
1738
|
return this.getDetailedProducts(limitedProductId, totalResult, fieldsHelper);
|
|
1748
1739
|
}
|
|
1749
1740
|
getDetailedProducts(orderedId, totalResult, fieldsHelper) {
|
|
@@ -1756,10 +1747,6 @@ class TermSearchStrategy {
|
|
|
1756
1747
|
},
|
|
1757
1748
|
fields,
|
|
1758
1749
|
});
|
|
1759
|
-
// console.log(
|
|
1760
|
-
// 'detail ordered',
|
|
1761
|
-
// orderedId.map((id) => productResult.data.find((product) => product.id === id)).filter(Boolean),
|
|
1762
|
-
// )
|
|
1763
1750
|
return {
|
|
1764
1751
|
data: orderedId.map((id) => productResult.data.find((product) => product.id === id)).filter(Boolean),
|
|
1765
1752
|
count: totalResult.count,
|