@infrab4a/connect-angular 4.0.0-beta.36 → 4.0.0-beta.37
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/angular-connect.module.d.ts +21 -21
- package/angular-elastic-search.module.d.ts +9 -9
- package/angular-firebase-auth.module.d.ts +12 -12
- package/angular-firestore.module.d.ts +18 -18
- package/angular-hasura-graphql.module.d.ts +16 -16
- package/consts/backend-url.const.d.ts +1 -1
- package/consts/category-structure.d.ts +1 -1
- package/consts/default-shop.const.d.ts +1 -1
- package/consts/es-config.const.d.ts +1 -1
- package/consts/firebase-const.d.ts +3 -3
- package/consts/hasura-options.const.d.ts +1 -1
- package/consts/index.d.ts +6 -6
- package/esm2020/angular-connect.module.mjs +63 -63
- package/esm2020/angular-elastic-search.module.mjs +34 -34
- package/esm2020/angular-firebase-auth.module.mjs +130 -130
- package/esm2020/angular-firestore.module.mjs +447 -447
- package/esm2020/angular-hasura-graphql.module.mjs +219 -219
- package/esm2020/consts/backend-url.const.mjs +1 -1
- package/esm2020/consts/category-structure.mjs +2 -2
- package/esm2020/consts/default-shop.const.mjs +2 -2
- package/esm2020/consts/es-config.const.mjs +2 -2
- package/esm2020/consts/firebase-const.mjs +4 -4
- package/esm2020/consts/hasura-options.const.mjs +2 -2
- package/esm2020/consts/index.mjs +7 -7
- package/esm2020/index.mjs +6 -6
- package/esm2020/infrab4a-connect-angular.mjs +4 -4
- package/esm2020/services/auth.service.mjs +37 -37
- package/esm2020/services/cart.service.mjs +281 -281
- package/esm2020/services/catalog/adapters/category-structure.adapter.mjs +2 -2
- package/esm2020/services/catalog/adapters/index.mjs +4 -4
- package/esm2020/services/catalog/adapters/new-category-structure.adapter.mjs +42 -42
- package/esm2020/services/catalog/adapters/old-category-structure.adapter.mjs +23 -23
- package/esm2020/services/catalog/catalog.service.mjs +96 -96
- package/esm2020/services/catalog/category.service.mjs +56 -56
- package/esm2020/services/catalog/enums/index.mjs +2 -2
- package/esm2020/services/catalog/enums/product-sorts.enum.mjs +11 -11
- package/esm2020/services/catalog/index.mjs +6 -6
- package/esm2020/services/catalog/models/category-with-tree.model.mjs +10 -10
- package/esm2020/services/catalog/models/index.mjs +2 -2
- package/esm2020/services/catalog/types/index.mjs +2 -2
- package/esm2020/services/catalog/types/product-sort.type.mjs +2 -2
- package/esm2020/services/checkout-subscription.service.mjs +53 -53
- package/esm2020/services/checkout.service.mjs +71 -73
- package/esm2020/services/coupon.service.mjs +214 -210
- package/esm2020/services/home-shop.service.mjs +114 -114
- package/esm2020/services/index.mjs +10 -10
- package/esm2020/services/order.service.mjs +30 -30
- package/esm2020/services/shipping.service.mjs +96 -96
- package/esm2020/services/types/index.mjs +3 -3
- package/esm2020/services/types/required-checkout-data.type.mjs +2 -2
- package/esm2020/services/types/required-checkout-subscription-data.type.mjs +2 -2
- package/esm2020/services/types/shipping-methods.type.mjs +2 -2
- package/esm2020/types/firebase-app-config.type.mjs +2 -2
- package/esm2020/types/index.mjs +2 -2
- package/fesm2015/infrab4a-connect-angular.mjs +1926 -1932
- package/fesm2015/infrab4a-connect-angular.mjs.map +1 -1
- package/fesm2020/infrab4a-connect-angular.mjs +1868 -1879
- package/fesm2020/infrab4a-connect-angular.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/package.json +2 -2
- package/services/auth.service.d.ts +18 -18
- package/services/cart.service.d.ts +42 -42
- package/services/catalog/adapters/category-structure.adapter.d.ts +4 -4
- package/services/catalog/adapters/index.d.ts +3 -3
- package/services/catalog/adapters/new-category-structure.adapter.d.ts +14 -14
- package/services/catalog/adapters/old-category-structure.adapter.d.ts +10 -10
- package/services/catalog/catalog.service.d.ts +54 -54
- package/services/catalog/category.service.d.ts +15 -15
- package/services/catalog/enums/index.d.ts +1 -1
- package/services/catalog/enums/product-sorts.enum.d.ts +9 -9
- package/services/catalog/index.d.ts +5 -5
- package/services/catalog/models/category-with-tree.model.d.ts +4 -4
- package/services/catalog/models/index.d.ts +1 -1
- package/services/catalog/types/index.d.ts +1 -1
- package/services/catalog/types/product-sort.type.d.ts +2 -2
- package/services/checkout-subscription.service.d.ts +18 -18
- package/services/checkout.service.d.ts +23 -23
- package/services/coupon.service.d.ts +28 -24
- package/services/home-shop.service.d.ts +25 -25
- package/services/index.d.ts +9 -9
- package/services/order.service.d.ts +13 -13
- package/services/shipping.service.d.ts +19 -19
- package/services/types/index.d.ts +2 -2
- package/services/types/required-checkout-data.type.d.ts +2 -2
- package/services/types/required-checkout-subscription-data.type.d.ts +2 -2
- package/services/types/shipping-methods.type.d.ts +12 -12
- package/types/firebase-app-config.type.d.ts +1 -1
- package/types/index.d.ts +1 -1
- package/esm2020/services/errors/group-invalid-coupon.error.mjs +0 -8
- package/esm2020/services/errors/index.mjs +0 -3
- package/esm2020/services/errors/invalid-coupon.error.mjs +0 -7
- package/services/errors/group-invalid-coupon.error.d.ts +0 -6
- package/services/errors/index.d.ts +0 -2
- package/services/errors/invalid-coupon.error.d.ts +0 -4
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktc3RydWN0dXJlLmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvYWRhcHRlcnMvY2F0ZWdvcnktc3RydWN0dXJlLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhdGVnb3J5LCBQcm9kdWN0LCBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QvJ1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIge1xyXG4gIGJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnk6IENhdGVnb3J5KTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFByb2R1Y3Q+PlxyXG59XHJcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './category-structure.adapter';
|
|
2
|
-
export * from './new-category-structure.adapter';
|
|
3
|
-
export * from './old-category-structure.adapter';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from './category-structure.adapter';
|
|
2
|
+
export * from './new-category-structure.adapter';
|
|
3
|
+
export * from './old-category-structure.adapter';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvYWRhcHRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxjQUFjLGtDQUFrQyxDQUFBO0FBQ2hELGNBQWMsa0NBQWtDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhdGVnb3J5LXN0cnVjdHVyZS5hZGFwdGVyJ1xyXG5leHBvcnQgKiBmcm9tICcuL25ldy1jYXRlZ29yeS1zdHJ1Y3R1cmUuYWRhcHRlcidcclxuZXhwb3J0ICogZnJvbSAnLi9vbGQtY2F0ZWdvcnktc3RydWN0dXJlLmFkYXB0ZXInXHJcbiJdfQ==
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { isNil, Where, } from '@infrab4a/connect';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class NewCategoryStructureAdapter {
|
|
5
|
-
constructor(categoryRepository, categoryCollectionChildrenRepository) {
|
|
6
|
-
this.categoryRepository = categoryRepository;
|
|
7
|
-
this.categoryCollectionChildrenRepository = categoryCollectionChildrenRepository;
|
|
8
|
-
}
|
|
9
|
-
async buildProductFilterByCategory(category) {
|
|
10
|
-
const categoriesIds = (await this.isCollection(category))
|
|
11
|
-
? await this.getAllCategoriesIdFromCollection(category)
|
|
12
|
-
: [...(await this.getAllCategoriesIdFromCategory(category)), category.id.toString()];
|
|
13
|
-
return { category: { id: { operator: Where.IN, value: categoriesIds } } };
|
|
14
|
-
}
|
|
15
|
-
async getAllCategoriesIdFromCategory(category) {
|
|
16
|
-
return this.categoryRepository
|
|
17
|
-
.getChildren(+category.id)
|
|
18
|
-
.then((categories) => categories.map((category) => category.id.toString()));
|
|
19
|
-
}
|
|
20
|
-
async getAllCategoriesIdFromCollection(category) {
|
|
21
|
-
return this.categoryCollectionChildrenRepository
|
|
22
|
-
.find({ filters: { collectionId: +category.id } })
|
|
23
|
-
.then(({ data }) => data.map((categoryCollection) => categoryCollection.categoryId.toString()));
|
|
24
|
-
}
|
|
25
|
-
async isCollection(category) {
|
|
26
|
-
return !isNil(category.isCollection)
|
|
27
|
-
? category.isCollection
|
|
28
|
-
: this.categoryRepository.get({ id: category.id }).then((category) => category.isCollection);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
NewCategoryStructureAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NewCategoryStructureAdapter, deps: [{ token: 'CategoryRepository' }, { token: 'CategoryCollectionChildrenRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
|
-
NewCategoryStructureAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NewCategoryStructureAdapter });
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NewCategoryStructureAdapter, decorators: [{
|
|
34
|
-
type: Injectable
|
|
35
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
36
|
-
type: Inject,
|
|
37
|
-
args: ['CategoryRepository']
|
|
38
|
-
}] }, { type: undefined, decorators: [{
|
|
39
|
-
type: Inject,
|
|
40
|
-
args: ['CategoryCollectionChildrenRepository']
|
|
41
|
-
}] }]; } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { isNil, Where, } from '@infrab4a/connect';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class NewCategoryStructureAdapter {
|
|
5
|
+
constructor(categoryRepository, categoryCollectionChildrenRepository) {
|
|
6
|
+
this.categoryRepository = categoryRepository;
|
|
7
|
+
this.categoryCollectionChildrenRepository = categoryCollectionChildrenRepository;
|
|
8
|
+
}
|
|
9
|
+
async buildProductFilterByCategory(category) {
|
|
10
|
+
const categoriesIds = (await this.isCollection(category))
|
|
11
|
+
? await this.getAllCategoriesIdFromCollection(category)
|
|
12
|
+
: [...(await this.getAllCategoriesIdFromCategory(category)), category.id.toString()];
|
|
13
|
+
return { category: { id: { operator: Where.IN, value: categoriesIds } } };
|
|
14
|
+
}
|
|
15
|
+
async getAllCategoriesIdFromCategory(category) {
|
|
16
|
+
return this.categoryRepository
|
|
17
|
+
.getChildren(+category.id)
|
|
18
|
+
.then((categories) => categories.map((category) => category.id.toString()));
|
|
19
|
+
}
|
|
20
|
+
async getAllCategoriesIdFromCollection(category) {
|
|
21
|
+
return this.categoryCollectionChildrenRepository
|
|
22
|
+
.find({ filters: { collectionId: +category.id } })
|
|
23
|
+
.then(({ data }) => data.map((categoryCollection) => categoryCollection.categoryId.toString()));
|
|
24
|
+
}
|
|
25
|
+
async isCollection(category) {
|
|
26
|
+
return !isNil(category.isCollection)
|
|
27
|
+
? category.isCollection
|
|
28
|
+
: this.categoryRepository.get({ id: category.id }).then((category) => category.isCollection);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
NewCategoryStructureAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NewCategoryStructureAdapter, deps: [{ token: 'CategoryRepository' }, { token: 'CategoryCollectionChildrenRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
|
+
NewCategoryStructureAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NewCategoryStructureAdapter });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NewCategoryStructureAdapter, decorators: [{
|
|
34
|
+
type: Injectable
|
|
35
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
36
|
+
type: Inject,
|
|
37
|
+
args: ['CategoryRepository']
|
|
38
|
+
}] }, { type: undefined, decorators: [{
|
|
39
|
+
type: Inject,
|
|
40
|
+
args: ['CategoryCollectionChildrenRepository']
|
|
41
|
+
}] }]; } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWNhdGVnb3J5LXN0cnVjdHVyZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2FkYXB0ZXJzL25ldy1jYXRlZ29yeS1zdHJ1Y3R1cmUuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBSUwsS0FBSyxFQUdMLEtBQUssR0FDTixNQUFNLG1CQUFtQixDQUFBOztBQUkxQixNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQ2lELGtCQUFzQyxFQUVwRSxvQ0FBMEU7UUFGNUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUVwRSx5Q0FBb0MsR0FBcEMsb0NBQW9DLENBQXNDO0lBQzFGLENBQUM7SUFFSixLQUFLLENBQUMsNEJBQTRCLENBQUMsUUFBa0I7UUFDbkQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkQsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGdDQUFnQyxDQUFDLFFBQVEsQ0FBQztZQUN2RCxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsOEJBQThCLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFFdEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUE7SUFDM0UsQ0FBQztJQUVPLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxRQUFrQjtRQUM3RCxPQUFPLElBQUksQ0FBQyxrQkFBa0I7YUFDM0IsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQzthQUN6QixJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQy9FLENBQUM7SUFFTyxLQUFLLENBQUMsZ0NBQWdDLENBQUMsUUFBa0I7UUFDL0QsT0FBTyxJQUFJLENBQUMsb0NBQW9DO2FBQzdDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQ2pELElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNuRyxDQUFDO0lBRU8sS0FBSyxDQUFDLFlBQVksQ0FBQyxRQUFrQjtRQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDbEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ2hHLENBQUM7O3dIQS9CVSwyQkFBMkIsa0JBRTVCLG9CQUFvQixhQUNwQixzQ0FBc0M7NEhBSHJDLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVOzswQkFHTixNQUFNOzJCQUFDLG9CQUFvQjs7MEJBQzNCLE1BQU07MkJBQUMsc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBDYXRlZ29yeSxcclxuICBDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlblJlcG9zaXRvcnksXHJcbiAgQ2F0ZWdvcnlSZXBvc2l0b3J5LFxyXG4gIGlzTmlsLFxyXG4gIFByb2R1Y3QsXHJcbiAgUmVwb3NpdG9yeUZpbmRGaWVsdGVycyxcclxuICBXaGVyZSxcclxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuaW1wb3J0IHsgQ2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyIH0gZnJvbSAnLi9jYXRlZ29yeS1zdHJ1Y3R1cmUuYWRhcHRlcidcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE5ld0NhdGVnb3J5U3RydWN0dXJlQWRhcHRlciBpbXBsZW1lbnRzIENhdGVnb3J5U3RydWN0dXJlQWRhcHRlciB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KCdDYXRlZ29yeVJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3J5UmVwb3NpdG9yeTogQ2F0ZWdvcnlSZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5SZXBvc2l0b3J5JylcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5SZXBvc2l0b3J5OiBDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlblJlcG9zaXRvcnksXHJcbiAgKSB7fVxyXG5cclxuICBhc3luYyBidWlsZFByb2R1Y3RGaWx0ZXJCeUNhdGVnb3J5KGNhdGVnb3J5OiBDYXRlZ29yeSk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRGaWVsdGVyczxQcm9kdWN0Pj4ge1xyXG4gICAgY29uc3QgY2F0ZWdvcmllc0lkcyA9IChhd2FpdCB0aGlzLmlzQ29sbGVjdGlvbihjYXRlZ29yeSkpXHJcbiAgICAgID8gYXdhaXQgdGhpcy5nZXRBbGxDYXRlZ29yaWVzSWRGcm9tQ29sbGVjdGlvbihjYXRlZ29yeSlcclxuICAgICAgOiBbLi4uKGF3YWl0IHRoaXMuZ2V0QWxsQ2F0ZWdvcmllc0lkRnJvbUNhdGVnb3J5KGNhdGVnb3J5KSksIGNhdGVnb3J5LmlkLnRvU3RyaW5nKCldXHJcblxyXG4gICAgcmV0dXJuIHsgY2F0ZWdvcnk6IHsgaWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogY2F0ZWdvcmllc0lkcyB9IH0gfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXRBbGxDYXRlZ29yaWVzSWRGcm9tQ2F0ZWdvcnkoY2F0ZWdvcnk6IENhdGVnb3J5KTogUHJvbWlzZTxzdHJpbmdbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnlSZXBvc2l0b3J5XHJcbiAgICAgIC5nZXRDaGlsZHJlbigrY2F0ZWdvcnkuaWQpXHJcbiAgICAgIC50aGVuKChjYXRlZ29yaWVzKSA9PiBjYXRlZ29yaWVzLm1hcCgoY2F0ZWdvcnkpID0+IGNhdGVnb3J5LmlkLnRvU3RyaW5nKCkpKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXRBbGxDYXRlZ29yaWVzSWRGcm9tQ29sbGVjdGlvbihjYXRlZ29yeTogQ2F0ZWdvcnkpOiBQcm9taXNlPHN0cmluZ1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlblJlcG9zaXRvcnlcclxuICAgICAgLmZpbmQoeyBmaWx0ZXJzOiB7IGNvbGxlY3Rpb25JZDogK2NhdGVnb3J5LmlkIH0gfSlcclxuICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PiBkYXRhLm1hcCgoY2F0ZWdvcnlDb2xsZWN0aW9uKSA9PiBjYXRlZ29yeUNvbGxlY3Rpb24uY2F0ZWdvcnlJZC50b1N0cmluZygpKSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaXNDb2xsZWN0aW9uKGNhdGVnb3J5OiBDYXRlZ29yeSk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuICFpc05pbChjYXRlZ29yeS5pc0NvbGxlY3Rpb24pXHJcbiAgICAgID8gY2F0ZWdvcnkuaXNDb2xsZWN0aW9uXHJcbiAgICAgIDogdGhpcy5jYXRlZ29yeVJlcG9zaXRvcnkuZ2V0KHsgaWQ6IGNhdGVnb3J5LmlkIH0pLnRoZW4oKGNhdGVnb3J5KSA9PiBjYXRlZ29yeS5pc0NvbGxlY3Rpb24pXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { Where } from '@infrab4a/connect';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class OldCategoryStructureAdapter {
|
|
5
|
-
constructor(categoryRepository) {
|
|
6
|
-
this.categoryRepository = categoryRepository;
|
|
7
|
-
}
|
|
8
|
-
async buildProductFilterByCategory(category) {
|
|
9
|
-
const productsIds = category.products?.length
|
|
10
|
-
? category.products
|
|
11
|
-
: await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products);
|
|
12
|
-
return { id: { operator: Where.IN, value: productsIds } };
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
OldCategoryStructureAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OldCategoryStructureAdapter, deps: [{ token: 'CategoryRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16
|
-
OldCategoryStructureAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OldCategoryStructureAdapter });
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OldCategoryStructureAdapter, decorators: [{
|
|
18
|
-
type: Injectable
|
|
19
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
20
|
-
type: Inject,
|
|
21
|
-
args: ['CategoryRepository']
|
|
22
|
-
}] }]; } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Where } from '@infrab4a/connect';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class OldCategoryStructureAdapter {
|
|
5
|
+
constructor(categoryRepository) {
|
|
6
|
+
this.categoryRepository = categoryRepository;
|
|
7
|
+
}
|
|
8
|
+
async buildProductFilterByCategory(category) {
|
|
9
|
+
const productsIds = category.products?.length
|
|
10
|
+
? category.products
|
|
11
|
+
: await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products);
|
|
12
|
+
return { id: { operator: Where.IN, value: productsIds } };
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
OldCategoryStructureAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OldCategoryStructureAdapter, deps: [{ token: 'CategoryRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16
|
+
OldCategoryStructureAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OldCategoryStructureAdapter });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OldCategoryStructureAdapter, decorators: [{
|
|
18
|
+
type: Injectable
|
|
19
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
20
|
+
type: Inject,
|
|
21
|
+
args: ['CategoryRepository']
|
|
22
|
+
}] }]; } });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2xkLWNhdGVnb3J5LXN0cnVjdHVyZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2FkYXB0ZXJzL29sZC1jYXRlZ29yeS1zdHJ1Y3R1cmUuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQWlFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBOztBQUl4RyxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQTJELGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQUcsQ0FBQztJQUVyRyxLQUFLLENBQUMsNEJBQTRCLENBQUMsUUFBa0I7UUFDbkQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNO1lBQzNDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUNuQixDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRTFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQTtJQUMzRCxDQUFDOzt3SEFUVSwyQkFBMkIsa0JBQ2xCLG9CQUFvQjs0SEFEN0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVU7OzBCQUVJLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQ2F0ZWdvcnksIENhdGVnb3J5UmVwb3NpdG9yeSwgUHJvZHVjdCwgUmVwb3NpdG9yeUZpbmRGaWVsdGVycywgV2hlcmUgfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuaW1wb3J0IHsgQ2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyIH0gZnJvbSAnLi9jYXRlZ29yeS1zdHJ1Y3R1cmUuYWRhcHRlcidcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE9sZENhdGVnb3J5U3RydWN0dXJlQWRhcHRlciBpbXBsZW1lbnRzIENhdGVnb3J5U3RydWN0dXJlQWRhcHRlciB7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdCgnQ2F0ZWdvcnlSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeVJlcG9zaXRvcnk6IENhdGVnb3J5UmVwb3NpdG9yeSkge31cclxuXHJcbiAgYXN5bmMgYnVpbGRQcm9kdWN0RmlsdGVyQnlDYXRlZ29yeShjYXRlZ29yeTogQ2F0ZWdvcnkpOiBQcm9taXNlPFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8UHJvZHVjdD4+IHtcclxuICAgIGNvbnN0IHByb2R1Y3RzSWRzID0gY2F0ZWdvcnkucHJvZHVjdHM/Lmxlbmd0aFxyXG4gICAgICA/IGNhdGVnb3J5LnByb2R1Y3RzXHJcbiAgICAgIDogYXdhaXQgdGhpcy5jYXRlZ29yeVJlcG9zaXRvcnkuZ2V0KHsgaWQ6IGNhdGVnb3J5LmlkIH0pLnRoZW4oKGNhdGVnb3J5Rm91bmQpID0+IGNhdGVnb3J5Rm91bmQucHJvZHVjdHMpXHJcblxyXG4gICAgcmV0dXJuIHsgaWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogcHJvZHVjdHNJZHMgfSB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { RoundProductPricesHelper, set, Shops, Where, } from '@infrab4a/connect';
|
|
3
|
-
import { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@infrab4a/connect";
|
|
6
|
-
export class CatalogService {
|
|
7
|
-
constructor(productRepository, categoryStructureAdapter, shop) {
|
|
8
|
-
this.productRepository = productRepository;
|
|
9
|
-
this.categoryStructureAdapter = categoryStructureAdapter;
|
|
10
|
-
this.shop = shop;
|
|
11
|
-
this.buildFilterQuery = ({ clubDiscount, brands, prices, gender, tags, rate, }) => {
|
|
12
|
-
const filters = {};
|
|
13
|
-
if (clubDiscount?.length)
|
|
14
|
-
set(filters, 'price.subscriberDiscountPercentage', { operator: Where.IN, value: clubDiscount });
|
|
15
|
-
if (brands?.length)
|
|
16
|
-
filters.brand = { operator: Where.IN, value: brands };
|
|
17
|
-
if (gender?.length)
|
|
18
|
-
filters.tags = {
|
|
19
|
-
operator: Where.IN,
|
|
20
|
-
value: gender
|
|
21
|
-
.map((genderOptions) => genderOptions === 'female' ? 'feminino' : genderOptions === 'male' ? 'masculino' : null)
|
|
22
|
-
.filter(Boolean),
|
|
23
|
-
};
|
|
24
|
-
if (prices?.min || prices?.max)
|
|
25
|
-
set(filters, prices.subscriberPrice ? 'price.subscriberPrice' : 'price.price', [
|
|
26
|
-
...(prices.min ? [{ operator: Where.GTE, value: prices.min }] : []),
|
|
27
|
-
...(prices.max ? [{ operator: Where.LTE, value: prices.max }] : []),
|
|
28
|
-
]);
|
|
29
|
-
if (rate)
|
|
30
|
-
filters.rate = { operator: Where.GTE, value: rate };
|
|
31
|
-
if (tags?.length)
|
|
32
|
-
filters.tags = { operator: Where.LIKE, value: tags };
|
|
33
|
-
return filters;
|
|
34
|
-
};
|
|
35
|
-
this.buildSortQuery = (sort) => {
|
|
36
|
-
if (!sort || sort === 'most-relevant')
|
|
37
|
-
return {};
|
|
38
|
-
if (sort === 'best-sellers')
|
|
39
|
-
return { shoppingCount: 'desc' };
|
|
40
|
-
if (sort === 'biggest-price')
|
|
41
|
-
return { price: 'desc' };
|
|
42
|
-
if (sort === 'lowest-price')
|
|
43
|
-
return { price: 'asc' };
|
|
44
|
-
if (sort === 'best-rating')
|
|
45
|
-
return { rate: 'desc' };
|
|
46
|
-
if (sort === 'news')
|
|
47
|
-
return { createdAt: 'desc' };
|
|
48
|
-
};
|
|
49
|
-
this.buildLimitQuery = (options) => {
|
|
50
|
-
const limit = options?.perPage || 20;
|
|
51
|
-
return {
|
|
52
|
-
limit,
|
|
53
|
-
offset: ((options?.page || 1) - 1) * limit,
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
async fetchProducts(category, options) {
|
|
58
|
-
const limits = this.buildLimitQuery(options);
|
|
59
|
-
return await this.productRepository
|
|
60
|
-
.findCatalog({
|
|
61
|
-
filters: {
|
|
62
|
-
...(await this.categoryStructureAdapter.buildProductFilterByCategory(category)),
|
|
63
|
-
...this.buildFilterQuery(options?.filters || {}),
|
|
64
|
-
},
|
|
65
|
-
...(options?.sort ? { orderBy: this.buildSortQuery(options?.sort) } : {}),
|
|
66
|
-
limits,
|
|
67
|
-
options: { minimal: ['price'], maximum: ['price'] },
|
|
68
|
-
}, options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female')
|
|
69
|
-
.then(({ data, count: total, maximum, minimal }) => ({
|
|
70
|
-
products: { data: data.map((product) => RoundProductPricesHelper.roundProductPrices(product)), total },
|
|
71
|
-
pages: Math.ceil(total / limits.limit),
|
|
72
|
-
prices: {
|
|
73
|
-
price: { min: +minimal?.price?.price?.toFixed(2), max: +maximum?.price?.price?.toFixed(2) },
|
|
74
|
-
subscriberPrice: {
|
|
75
|
-
min: +minimal?.price?.subscriberPrice?.toFixed(2),
|
|
76
|
-
max: +maximum?.price?.subscriberPrice?.toFixed(2),
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
}));
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
CatalogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, deps: [{ token: 'ProductRepository' }, { token: CATEGORY_STRUCTURE }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
83
|
-
CatalogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService });
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, decorators: [{
|
|
85
|
-
type: Injectable
|
|
86
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
87
|
-
type: Inject,
|
|
88
|
-
args: ['ProductRepository']
|
|
89
|
-
}] }, { type: undefined, decorators: [{
|
|
90
|
-
type: Inject,
|
|
91
|
-
args: [CATEGORY_STRUCTURE]
|
|
92
|
-
}] }, { type: i1.Shops, decorators: [{
|
|
93
|
-
type: Inject,
|
|
94
|
-
args: [DEFAULT_SHOP]
|
|
95
|
-
}] }]; } });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2NhdGFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBT0wsd0JBQXdCLEVBQ3hCLEdBQUcsRUFDSCxLQUFLLEVBQ0wsS0FBSyxHQUNOLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTs7O0FBZ0MvRCxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUNnRCxpQkFBb0MsRUFDckMsd0JBQWtELEVBQ3hELElBQVc7UUFGSixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3JDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDeEQsU0FBSSxHQUFKLElBQUksQ0FBTztRQWdDNUMscUJBQWdCLEdBQUcsQ0FBQyxFQUMxQixZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sSUFBSSxFQUNKLElBQUksR0FDaUIsRUFBbUMsRUFBRTtZQUMxRCxNQUFNLE9BQU8sR0FBRyxFQUFxQyxDQUFBO1lBRXJELElBQUksWUFBWSxFQUFFLE1BQU07Z0JBQ3RCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQTtZQUNqRyxJQUFJLE1BQU0sRUFBRSxNQUFNO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUE7WUFDekUsSUFBSSxNQUFNLEVBQUUsTUFBTTtnQkFDaEIsT0FBTyxDQUFDLElBQUksR0FBRztvQkFDYixRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUU7b0JBQ2xCLEtBQUssRUFBRSxNQUFNO3lCQUNWLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQ3JCLGFBQWEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsYUFBYSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3hGO3lCQUNBLE1BQU0sQ0FBQyxPQUFPLENBQUM7aUJBQ25CLENBQUE7WUFDSCxJQUFJLE1BQU0sRUFBRSxHQUFHLElBQUksTUFBTSxFQUFFLEdBQUc7Z0JBQzVCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRTtvQkFDN0UsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDbkUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDcEUsQ0FBQyxDQUFBO1lBQ0osSUFBSSxJQUFJO2dCQUFFLE9BQU8sQ0FBQyxJQUFJLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUE7WUFDN0QsSUFBSSxJQUFJLEVBQUUsTUFBTTtnQkFBRSxPQUFPLENBQUMsSUFBSSxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFBO1lBRXRFLE9BQU8sT0FBTyxDQUFBO1FBQ2hCLENBQUMsQ0FBQTtRQUVPLG1CQUFjLEdBQUcsQ0FBQyxJQUFpQixFQUE4QixFQUFFO1lBQ3pFLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxLQUFLLGVBQWU7Z0JBQUUsT0FBTyxFQUFFLENBQUE7WUFFaEQsSUFBSSxJQUFJLEtBQUssY0FBYztnQkFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxDQUFBO1lBQzdELElBQUksSUFBSSxLQUFLLGVBQWU7Z0JBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQTtZQUN0RCxJQUFJLElBQUksS0FBSyxjQUFjO2dCQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUE7WUFDcEQsSUFBSSxJQUFJLEtBQUssYUFBYTtnQkFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFBO1lBQ25ELElBQUksSUFBSSxLQUFLLE1BQU07Z0JBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQTtRQUNuRCxDQUFDLENBQUE7UUFFTyxvQkFBZSxHQUFHLENBQUMsT0FBNEMsRUFBdUMsRUFBRTtZQUM5RyxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQTtZQUVwQyxPQUFPO2dCQUNMLEtBQUs7Z0JBQ0wsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUs7YUFDM0MsQ0FBQTtRQUNILENBQUMsQ0FBQTtJQWpGRSxDQUFDO0lBRUosS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFrQixFQUFFLE9BQThCO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFNUMsT0FBTyxNQUFNLElBQUksQ0FBQyxpQkFBaUI7YUFDaEMsV0FBVyxDQUNWO1lBQ0UsT0FBTyxFQUFFO2dCQUNQLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDL0UsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUM7YUFDakQ7WUFDRCxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pFLE1BQU07WUFDTixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRTtTQUNwRCxFQUNELE9BQU8sRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FDMUU7YUFDQSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRCxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsd0JBQXdCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUU7WUFDdEcsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDdEMsTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzNGLGVBQWUsRUFBRTtvQkFDZixHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUNqRCxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUNsRDthQUNGO1NBQ0YsQ0FBQyxDQUFDLENBQUE7SUFDUCxDQUFDOzsyR0FsQ1UsY0FBYyxrQkFFZixtQkFBbUIsYUFDbkIsa0JBQWtCLGFBQ2xCLFlBQVk7K0dBSlgsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVOzswQkFHTixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIENhdGVnb3J5LFxuICBQcm9kdWN0LFxuICBQcm9kdWN0R2VuZGVyLFxuICBQcm9kdWN0UmVwb3NpdG9yeSxcbiAgUmVwb3NpdG9yeUZpbmRGaWVsdGVycyxcbiAgUmVwb3NpdG9yeU9yZGVyQnksXG4gIFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlcixcbiAgc2V0LFxuICBTaG9wcyxcbiAgV2hlcmUsXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xuaW1wb3J0IHsgQ0FURUdPUllfU1RSVUNUVVJFLCBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi8uLi9jb25zdHMnXG5pbXBvcnQgeyBDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIgfSBmcm9tICcuL2FkYXB0ZXJzJ1xuaW1wb3J0IHsgUHJvZHVjdFNvcnQgfSBmcm9tICcuL3R5cGVzL3Byb2R1Y3Qtc29ydC50eXBlJ1xuXG50eXBlIEZldGNoUHJvZHVjdHNGaWx0ZXJzID0ge1xuICBjbHViRGlzY291bnQ/OiBudW1iZXJbXVxuICBicmFuZHM/OiBzdHJpbmdbXVxuICBwcmljZXM/OiB7IG1pbj86IG51bWJlcjsgbWF4PzogbnVtYmVyOyBzdWJzY3JpYmVyUHJpY2U/OiBib29sZWFuIH1cbiAgZ2VuZGVyPzogUHJvZHVjdEdlbmRlcltdXG4gIHJhdGU/OiBudW1iZXJcbiAgdGFncz86IFtdXG4gIGN1c3RvbU9wdGlvbnM/OiBzdHJpbmdbXVxufVxuXG50eXBlIEZldGNoUHJvZHVjdHNPcHRpb25zID0ge1xuICBwYWdlPzogbnVtYmVyXG4gIHBlclBhZ2U/OiBudW1iZXJcbiAgZmlsdGVycz86IEZldGNoUHJvZHVjdHNGaWx0ZXJzXG4gIHNvcnQ/OiBQcm9kdWN0U29ydFxuICBtYWluR2VuZGVyPzogUHJvZHVjdEdlbmRlclxufVxuXG50eXBlIEZldGNoUHJvZHVjdHNSZXNwb25zZSA9IHtcbiAgcHJvZHVjdHM6IHsgZGF0YTogUHJvZHVjdFtdOyB0b3RhbDogbnVtYmVyIH1cbiAgcGFnZXM6IG51bWJlclxuICBwcmljZXM6IHtcbiAgICBwcmljZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfVxuICAgIHN1YnNjcmliZXJQcmljZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfVxuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYXRhbG9nU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ1Byb2R1Y3RSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdFJlcG9zaXRvcnksXG4gICAgQEluamVjdChDQVRFR09SWV9TVFJVQ1RVUkUpIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyOiBDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIsXG4gICAgQEluamVjdChERUZBVUxUX1NIT1ApIHByaXZhdGUgcmVhZG9ubHkgc2hvcDogU2hvcHMsXG4gICkge31cblxuICBhc3luYyBmZXRjaFByb2R1Y3RzKGNhdGVnb3J5OiBDYXRlZ29yeSwgb3B0aW9ucz86IEZldGNoUHJvZHVjdHNPcHRpb25zKTogUHJvbWlzZTxGZXRjaFByb2R1Y3RzUmVzcG9uc2U+IHtcbiAgICBjb25zdCBsaW1pdHMgPSB0aGlzLmJ1aWxkTGltaXRRdWVyeShvcHRpb25zKVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZHVjdFJlcG9zaXRvcnlcbiAgICAgIC5maW5kQ2F0YWxvZyhcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgICAgIC4uLihhd2FpdCB0aGlzLmNhdGVnb3J5U3RydWN0dXJlQWRhcHRlci5idWlsZFByb2R1Y3RGaWx0ZXJCeUNhdGVnb3J5KGNhdGVnb3J5KSksXG4gICAgICAgICAgICAuLi50aGlzLmJ1aWxkRmlsdGVyUXVlcnkob3B0aW9ucz8uZmlsdGVycyB8fCB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi4ob3B0aW9ucz8uc29ydCA/IHsgb3JkZXJCeTogdGhpcy5idWlsZFNvcnRRdWVyeShvcHRpb25zPy5zb3J0KSB9IDoge30pLFxuICAgICAgICAgIGxpbWl0cyxcbiAgICAgICAgICBvcHRpb25zOiB7IG1pbmltYWw6IFsncHJpY2UnXSwgbWF4aW11bTogWydwcmljZSddIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM/Lm1haW5HZW5kZXIgfHwgdGhpcy5zaG9wID09PSBTaG9wcy5NRU5TTUFSS0VUID8gJ21hbGUnIDogJ2ZlbWFsZScsXG4gICAgICApXG4gICAgICAudGhlbigoeyBkYXRhLCBjb3VudDogdG90YWwsIG1heGltdW0sIG1pbmltYWwgfSkgPT4gKHtcbiAgICAgICAgcHJvZHVjdHM6IHsgZGF0YTogZGF0YS5tYXAoKHByb2R1Y3QpID0+IFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlci5yb3VuZFByb2R1Y3RQcmljZXMocHJvZHVjdCkpLCB0b3RhbCB9LFxuICAgICAgICBwYWdlczogTWF0aC5jZWlsKHRvdGFsIC8gbGltaXRzLmxpbWl0KSxcbiAgICAgICAgcHJpY2VzOiB7XG4gICAgICAgICAgcHJpY2U6IHsgbWluOiArbWluaW1hbD8ucHJpY2U/LnByaWNlPy50b0ZpeGVkKDIpLCBtYXg6ICttYXhpbXVtPy5wcmljZT8ucHJpY2U/LnRvRml4ZWQoMikgfSxcbiAgICAgICAgICBzdWJzY3JpYmVyUHJpY2U6IHtcbiAgICAgICAgICAgIG1pbjogK21pbmltYWw/LnByaWNlPy5zdWJzY3JpYmVyUHJpY2U/LnRvRml4ZWQoMiksXG4gICAgICAgICAgICBtYXg6ICttYXhpbXVtPy5wcmljZT8uc3Vic2NyaWJlclByaWNlPy50b0ZpeGVkKDIpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSlcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRGaWx0ZXJRdWVyeSA9ICh7XG4gICAgY2x1YkRpc2NvdW50LFxuICAgIGJyYW5kcyxcbiAgICBwcmljZXMsXG4gICAgZ2VuZGVyLFxuICAgIHRhZ3MsXG4gICAgcmF0ZSxcbiAgfTogRmV0Y2hQcm9kdWN0c0ZpbHRlcnMpOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFByb2R1Y3Q+ID0+IHtcbiAgICBjb25zdCBmaWx0ZXJzID0ge30gYXMgUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxQcm9kdWN0PlxuXG4gICAgaWYgKGNsdWJEaXNjb3VudD8ubGVuZ3RoKVxuICAgICAgc2V0KGZpbHRlcnMsICdwcmljZS5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlJywgeyBvcGVyYXRvcjogV2hlcmUuSU4sIHZhbHVlOiBjbHViRGlzY291bnQgfSlcbiAgICBpZiAoYnJhbmRzPy5sZW5ndGgpIGZpbHRlcnMuYnJhbmQgPSB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IGJyYW5kcyB9XG4gICAgaWYgKGdlbmRlcj8ubGVuZ3RoKVxuICAgICAgZmlsdGVycy50YWdzID0ge1xuICAgICAgICBvcGVyYXRvcjogV2hlcmUuSU4sXG4gICAgICAgIHZhbHVlOiBnZW5kZXJcbiAgICAgICAgICAubWFwKChnZW5kZXJPcHRpb25zKSA9PlxuICAgICAgICAgICAgZ2VuZGVyT3B0aW9ucyA9PT0gJ2ZlbWFsZScgPyAnZmVtaW5pbm8nIDogZ2VuZGVyT3B0aW9ucyA9PT0gJ21hbGUnID8gJ21hc2N1bGlubycgOiBudWxsLFxuICAgICAgICAgIClcbiAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgfVxuICAgIGlmIChwcmljZXM/Lm1pbiB8fCBwcmljZXM/Lm1heClcbiAgICAgIHNldChmaWx0ZXJzLCBwcmljZXMuc3Vic2NyaWJlclByaWNlID8gJ3ByaWNlLnN1YnNjcmliZXJQcmljZScgOiAncHJpY2UucHJpY2UnLCBbXG4gICAgICAgIC4uLihwcmljZXMubWluID8gW3sgb3BlcmF0b3I6IFdoZXJlLkdURSwgdmFsdWU6IHByaWNlcy5taW4gfV0gOiBbXSksXG4gICAgICAgIC4uLihwcmljZXMubWF4ID8gW3sgb3BlcmF0b3I6IFdoZXJlLkxURSwgdmFsdWU6IHByaWNlcy5tYXggfV0gOiBbXSksXG4gICAgICBdKVxuICAgIGlmIChyYXRlKSBmaWx0ZXJzLnJhdGUgPSB7IG9wZXJhdG9yOiBXaGVyZS5HVEUsIHZhbHVlOiByYXRlIH1cbiAgICBpZiAodGFncz8ubGVuZ3RoKSBmaWx0ZXJzLnRhZ3MgPSB7IG9wZXJhdG9yOiBXaGVyZS5MSUtFLCB2YWx1ZTogdGFncyB9XG5cbiAgICByZXR1cm4gZmlsdGVyc1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFNvcnRRdWVyeSA9IChzb3J0OiBQcm9kdWN0U29ydCk6IFJlcG9zaXRvcnlPcmRlckJ5PFByb2R1Y3Q+ID0+IHtcbiAgICBpZiAoIXNvcnQgfHwgc29ydCA9PT0gJ21vc3QtcmVsZXZhbnQnKSByZXR1cm4ge31cblxuICAgIGlmIChzb3J0ID09PSAnYmVzdC1zZWxsZXJzJykgcmV0dXJuIHsgc2hvcHBpbmdDb3VudDogJ2Rlc2MnIH1cbiAgICBpZiAoc29ydCA9PT0gJ2JpZ2dlc3QtcHJpY2UnKSByZXR1cm4geyBwcmljZTogJ2Rlc2MnIH1cbiAgICBpZiAoc29ydCA9PT0gJ2xvd2VzdC1wcmljZScpIHJldHVybiB7IHByaWNlOiAnYXNjJyB9XG4gICAgaWYgKHNvcnQgPT09ICdiZXN0LXJhdGluZycpIHJldHVybiB7IHJhdGU6ICdkZXNjJyB9XG4gICAgaWYgKHNvcnQgPT09ICduZXdzJykgcmV0dXJuIHsgY3JlYXRlZEF0OiAnZGVzYycgfVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZExpbWl0UXVlcnkgPSAob3B0aW9uczogeyBwYWdlPzogbnVtYmVyOyBwZXJQYWdlPzogbnVtYmVyIH0pOiB7IGxpbWl0PzogbnVtYmVyOyBvZmZzZXQ/OiBudW1iZXIgfSA9PiB7XG4gICAgY29uc3QgbGltaXQgPSBvcHRpb25zPy5wZXJQYWdlIHx8IDIwXG5cbiAgICByZXR1cm4ge1xuICAgICAgbGltaXQsXG4gICAgICBvZmZzZXQ6ICgob3B0aW9ucz8ucGFnZSB8fCAxKSAtIDEpICogbGltaXQsXG4gICAgfVxuICB9XG59XG4iXX0=
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { RoundProductPricesHelper, set, Shops, Where, } from '@infrab4a/connect';
|
|
3
|
+
import { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@infrab4a/connect";
|
|
6
|
+
export class CatalogService {
|
|
7
|
+
constructor(productRepository, categoryStructureAdapter, shop) {
|
|
8
|
+
this.productRepository = productRepository;
|
|
9
|
+
this.categoryStructureAdapter = categoryStructureAdapter;
|
|
10
|
+
this.shop = shop;
|
|
11
|
+
this.buildFilterQuery = ({ clubDiscount, brands, prices, gender, tags, rate, }) => {
|
|
12
|
+
const filters = {};
|
|
13
|
+
if (clubDiscount?.length)
|
|
14
|
+
set(filters, 'price.subscriberDiscountPercentage', { operator: Where.IN, value: clubDiscount });
|
|
15
|
+
if (brands?.length)
|
|
16
|
+
filters.brand = { operator: Where.IN, value: brands };
|
|
17
|
+
if (gender?.length)
|
|
18
|
+
filters.tags = {
|
|
19
|
+
operator: Where.IN,
|
|
20
|
+
value: gender
|
|
21
|
+
.map((genderOptions) => genderOptions === 'female' ? 'feminino' : genderOptions === 'male' ? 'masculino' : null)
|
|
22
|
+
.filter(Boolean),
|
|
23
|
+
};
|
|
24
|
+
if (prices?.min || prices?.max)
|
|
25
|
+
set(filters, prices.subscriberPrice ? 'price.subscriberPrice' : 'price.price', [
|
|
26
|
+
...(prices.min ? [{ operator: Where.GTE, value: prices.min }] : []),
|
|
27
|
+
...(prices.max ? [{ operator: Where.LTE, value: prices.max }] : []),
|
|
28
|
+
]);
|
|
29
|
+
if (rate)
|
|
30
|
+
filters.rate = { operator: Where.GTE, value: rate };
|
|
31
|
+
if (tags?.length)
|
|
32
|
+
filters.tags = { operator: Where.LIKE, value: tags };
|
|
33
|
+
return filters;
|
|
34
|
+
};
|
|
35
|
+
this.buildSortQuery = (sort) => {
|
|
36
|
+
if (!sort || sort === 'most-relevant')
|
|
37
|
+
return {};
|
|
38
|
+
if (sort === 'best-sellers')
|
|
39
|
+
return { shoppingCount: 'desc' };
|
|
40
|
+
if (sort === 'biggest-price')
|
|
41
|
+
return { price: 'desc' };
|
|
42
|
+
if (sort === 'lowest-price')
|
|
43
|
+
return { price: 'asc' };
|
|
44
|
+
if (sort === 'best-rating')
|
|
45
|
+
return { rate: 'desc' };
|
|
46
|
+
if (sort === 'news')
|
|
47
|
+
return { createdAt: 'desc' };
|
|
48
|
+
};
|
|
49
|
+
this.buildLimitQuery = (options) => {
|
|
50
|
+
const limit = options?.perPage || 20;
|
|
51
|
+
return {
|
|
52
|
+
limit,
|
|
53
|
+
offset: ((options?.page || 1) - 1) * limit,
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
async fetchProducts(category, options) {
|
|
58
|
+
const limits = this.buildLimitQuery(options);
|
|
59
|
+
return await this.productRepository
|
|
60
|
+
.findCatalog({
|
|
61
|
+
filters: {
|
|
62
|
+
...(await this.categoryStructureAdapter.buildProductFilterByCategory(category)),
|
|
63
|
+
...this.buildFilterQuery(options?.filters || {}),
|
|
64
|
+
},
|
|
65
|
+
...(options?.sort ? { orderBy: this.buildSortQuery(options?.sort) } : {}),
|
|
66
|
+
limits,
|
|
67
|
+
options: { minimal: ['price'], maximum: ['price'] },
|
|
68
|
+
}, options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female')
|
|
69
|
+
.then(({ data, count: total, maximum, minimal }) => ({
|
|
70
|
+
products: { data: data.map((product) => RoundProductPricesHelper.roundProductPrices(product)), total },
|
|
71
|
+
pages: Math.ceil(total / limits.limit),
|
|
72
|
+
prices: {
|
|
73
|
+
price: { min: +minimal?.price?.price?.toFixed(2), max: +maximum?.price?.price?.toFixed(2) },
|
|
74
|
+
subscriberPrice: {
|
|
75
|
+
min: +minimal?.price?.subscriberPrice?.toFixed(2),
|
|
76
|
+
max: +maximum?.price?.subscriberPrice?.toFixed(2),
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
CatalogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, deps: [{ token: 'ProductRepository' }, { token: CATEGORY_STRUCTURE }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
83
|
+
CatalogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService });
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, decorators: [{
|
|
85
|
+
type: Injectable
|
|
86
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
87
|
+
type: Inject,
|
|
88
|
+
args: ['ProductRepository']
|
|
89
|
+
}] }, { type: undefined, decorators: [{
|
|
90
|
+
type: Inject,
|
|
91
|
+
args: [CATEGORY_STRUCTURE]
|
|
92
|
+
}] }, { type: i1.Shops, decorators: [{
|
|
93
|
+
type: Inject,
|
|
94
|
+
args: [DEFAULT_SHOP]
|
|
95
|
+
}] }]; } });
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2NhdGFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBT0wsd0JBQXdCLEVBQ3hCLEdBQUcsRUFDSCxLQUFLLEVBQ0wsS0FBSyxHQUNOLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTs7O0FBZ0MvRCxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUNnRCxpQkFBb0MsRUFDckMsd0JBQWtELEVBQ3hELElBQVc7UUFGSixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3JDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDeEQsU0FBSSxHQUFKLElBQUksQ0FBTztRQWdDNUMscUJBQWdCLEdBQUcsQ0FBQyxFQUMxQixZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sSUFBSSxFQUNKLElBQUksR0FDaUIsRUFBbUMsRUFBRTtZQUMxRCxNQUFNLE9BQU8sR0FBRyxFQUFxQyxDQUFBO1lBRXJELElBQUksWUFBWSxFQUFFLE1BQU07Z0JBQ3RCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQTtZQUNqRyxJQUFJLE1BQU0sRUFBRSxNQUFNO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUE7WUFDekUsSUFBSSxNQUFN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Q0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzNGLGVBQWUsRUFBRTtvQkFDZixHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUNqRCxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUNsRDthQUNGO1NBQ0YsQ0FBQyxDQUFDLENBQUE7SUFDUCxDQUFDOzsyR0FsQ1UsY0FBYyxrQkFFZixtQkFBbUIsYUFDbkIsa0JBQWtCLGFBQ2xCLFlBQVk7K0dBSlgsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVOzswQkFHTixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBDYXRlZ29yeSxcclxuICBQcm9kdWN0LFxyXG4gIFByb2R1Y3RHZW5kZXIsXHJcbiAgUHJvZHVjdFJlcG9zaXRvcnksXHJcbiAgUmVwb3NpdG9yeUZpbmRGaWVsdGVycyxcclxuICBSZXBvc2l0b3J5T3JkZXJCeSxcclxuICBSb3VuZFByb2R1Y3RQcmljZXNIZWxwZXIsXHJcbiAgc2V0LFxyXG4gIFNob3BzLFxyXG4gIFdoZXJlLFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5pbXBvcnQgeyBDQVRFR09SWV9TVFJVQ1RVUkUsIERFRkFVTFRfU0hPUCB9IGZyb20gJy4uLy4uL2NvbnN0cydcclxuaW1wb3J0IHsgQ2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyIH0gZnJvbSAnLi9hZGFwdGVycydcclxuaW1wb3J0IHsgUHJvZHVjdFNvcnQgfSBmcm9tICcuL3R5cGVzL3Byb2R1Y3Qtc29ydC50eXBlJ1xyXG5cclxudHlwZSBGZXRjaFByb2R1Y3RzRmlsdGVycyA9IHtcclxuICBjbHViRGlzY291bnQ/OiBudW1iZXJbXVxyXG4gIGJyYW5kcz86IHN0cmluZ1tdXHJcbiAgcHJpY2VzPzogeyBtaW4/OiBudW1iZXI7IG1heD86IG51bWJlcjsgc3Vic2NyaWJlclByaWNlPzogYm9vbGVhbiB9XHJcbiAgZ2VuZGVyPzogUHJvZHVjdEdlbmRlcltdXHJcbiAgcmF0ZT86IG51bWJlclxyXG4gIHRhZ3M/OiBbXVxyXG4gIGN1c3RvbU9wdGlvbnM/OiBzdHJpbmdbXVxyXG59XHJcblxyXG50eXBlIEZldGNoUHJvZHVjdHNPcHRpb25zID0ge1xyXG4gIHBhZ2U/OiBudW1iZXJcclxuICBwZXJQYWdlPzogbnVtYmVyXHJcbiAgZmlsdGVycz86IEZldGNoUHJvZHVjdHNGaWx0ZXJzXHJcbiAgc29ydD86IFByb2R1Y3RTb3J0XHJcbiAgbWFpbkdlbmRlcj86IFByb2R1Y3RHZW5kZXJcclxufVxyXG5cclxudHlwZSBGZXRjaFByb2R1Y3RzUmVzcG9uc2UgPSB7XHJcbiAgcHJvZHVjdHM6IHsgZGF0YTogUHJvZHVjdFtdOyB0b3RhbDogbnVtYmVyIH1cclxuICBwYWdlczogbnVtYmVyXHJcbiAgcHJpY2VzOiB7XHJcbiAgICBwcmljZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfVxyXG4gICAgc3Vic2NyaWJlclByaWNlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9XHJcbiAgfVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYXRhbG9nU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KCdQcm9kdWN0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdChDQVRFR09SWV9TVFJVQ1RVUkUpIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyOiBDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIsXHJcbiAgICBASW5qZWN0KERFRkFVTFRfU0hPUCkgcHJpdmF0ZSByZWFkb25seSBzaG9wOiBTaG9wcyxcclxuICApIHt9XHJcblxyXG4gIGFzeW5jIGZldGNoUHJvZHVjdHMoY2F0ZWdvcnk6IENhdGVnb3J5LCBvcHRpb25zPzogRmV0Y2hQcm9kdWN0c09wdGlvbnMpOiBQcm9taXNlPEZldGNoUHJvZHVjdHNSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgbGltaXRzID0gdGhpcy5idWlsZExpbWl0UXVlcnkob3B0aW9ucylcclxuXHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9kdWN0UmVwb3NpdG9yeVxyXG4gICAgICAuZmluZENhdGFsb2coXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmlsdGVyczoge1xyXG4gICAgICAgICAgICAuLi4oYXdhaXQgdGhpcy5jYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIuYnVpbGRQcm9kdWN0RmlsdGVyQnlDYXRlZ29yeShjYXRlZ29yeSkpLFxyXG4gICAgICAgICAgICAuLi50aGlzLmJ1aWxkRmlsdGVyUXVlcnkob3B0aW9ucz8uZmlsdGVycyB8fCB7fSksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uKG9wdGlvbnM/LnNvcnQgPyB7IG9yZGVyQnk6IHRoaXMuYnVpbGRTb3J0UXVlcnkob3B0aW9ucz8uc29ydCkgfSA6IHt9KSxcclxuICAgICAgICAgIGxpbWl0cyxcclxuICAgICAgICAgIG9wdGlvbnM6IHsgbWluaW1hbDogWydwcmljZSddLCBtYXhpbXVtOiBbJ3ByaWNlJ10gfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9wdGlvbnM/Lm1haW5HZW5kZXIgfHwgdGhpcy5zaG9wID09PSBTaG9wcy5NRU5TTUFSS0VUID8gJ21hbGUnIDogJ2ZlbWFsZScsXHJcbiAgICAgIClcclxuICAgICAgLnRoZW4oKHsgZGF0YSwgY291bnQ6IHRvdGFsLCBtYXhpbXVtLCBtaW5pbWFsIH0pID0+ICh7XHJcbiAgICAgICAgcHJvZHVjdHM6IHsgZGF0YTogZGF0YS5tYXAoKHByb2R1Y3QpID0+IFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlci5yb3VuZFByb2R1Y3RQcmljZXMocHJvZHVjdCkpLCB0b3RhbCB9LFxyXG4gICAgICAgIHBhZ2VzOiBNYXRoLmNlaWwodG90YWwgLyBsaW1pdHMubGltaXQpLFxyXG4gICAgICAgIHByaWNlczoge1xyXG4gICAgICAgICAgcHJpY2U6IHsgbWluOiArbWluaW1hbD8ucHJpY2U/LnByaWNlPy50b0ZpeGVkKDIpLCBtYXg6ICttYXhpbXVtPy5wcmljZT8ucHJpY2U/LnRvRml4ZWQoMikgfSxcclxuICAgICAgICAgIHN1YnNjcmliZXJQcmljZToge1xyXG4gICAgICAgICAgICBtaW46ICttaW5pbWFsPy5wcmljZT8uc3Vic2NyaWJlclByaWNlPy50b0ZpeGVkKDIpLFxyXG4gICAgICAgICAgICBtYXg6ICttYXhpbXVtPy5wcmljZT8uc3Vic2NyaWJlclByaWNlPy50b0ZpeGVkKDIpLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICB9KSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRGaWx0ZXJRdWVyeSA9ICh7XHJcbiAgICBjbHViRGlzY291bnQsXHJcbiAgICBicmFuZHMsXHJcbiAgICBwcmljZXMsXHJcbiAgICBnZW5kZXIsXHJcbiAgICB0YWdzLFxyXG4gICAgcmF0ZSxcclxuICB9OiBGZXRjaFByb2R1Y3RzRmlsdGVycyk6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8UHJvZHVjdD4gPT4ge1xyXG4gICAgY29uc3QgZmlsdGVycyA9IHt9IGFzIFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8UHJvZHVjdD5cclxuXHJcbiAgICBpZiAoY2x1YkRpc2NvdW50Py5sZW5ndGgpXHJcbiAgICAgIHNldChmaWx0ZXJzLCAncHJpY2Uuc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZScsIHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogY2x1YkRpc2NvdW50IH0pXHJcbiAgICBpZiAoYnJhbmRzPy5sZW5ndGgpIGZpbHRlcnMuYnJhbmQgPSB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IGJyYW5kcyB9XHJcbiAgICBpZiAoZ2VuZGVyPy5sZW5ndGgpXHJcbiAgICAgIGZpbHRlcnMudGFncyA9IHtcclxuICAgICAgICBvcGVyYXRvcjogV2hlcmUuSU4sXHJcbiAgICAgICAgdmFsdWU6IGdlbmRlclxyXG4gICAgICAgICAgLm1hcCgoZ2VuZGVyT3B0aW9ucykgPT5cclxuICAgICAgICAgICAgZ2VuZGVyT3B0aW9ucyA9PT0gJ2ZlbWFsZScgPyAnZmVtaW5pbm8nIDogZ2VuZGVyT3B0aW9ucyA9PT0gJ21hbGUnID8gJ21hc2N1bGlubycgOiBudWxsLFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLmZpbHRlcihCb29sZWFuKSxcclxuICAgICAgfVxyXG4gICAgaWYgKHByaWNlcz8ubWluIHx8IHByaWNlcz8ubWF4KVxyXG4gICAgICBzZXQoZmlsdGVycywgcHJpY2VzLnN1YnNjcmliZXJQcmljZSA/ICdwcmljZS5zdWJzY3JpYmVyUHJpY2UnIDogJ3ByaWNlLnByaWNlJywgW1xyXG4gICAgICAgIC4uLihwcmljZXMubWluID8gW3sgb3BlcmF0b3I6IFdoZXJlLkdURSwgdmFsdWU6IHByaWNlcy5taW4gfV0gOiBbXSksXHJcbiAgICAgICAgLi4uKHByaWNlcy5tYXggPyBbeyBvcGVyYXRvcjogV2hlcmUuTFRFLCB2YWx1ZTogcHJpY2VzLm1heCB9XSA6IFtdKSxcclxuICAgICAgXSlcclxuICAgIGlmIChyYXRlKSBmaWx0ZXJzLnJhdGUgPSB7IG9wZXJhdG9yOiBXaGVyZS5HVEUsIHZhbHVlOiByYXRlIH1cclxuICAgIGlmICh0YWdzPy5sZW5ndGgpIGZpbHRlcnMudGFncyA9IHsgb3BlcmF0b3I6IFdoZXJlLkxJS0UsIHZhbHVlOiB0YWdzIH1cclxuXHJcbiAgICByZXR1cm4gZmlsdGVyc1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZFNvcnRRdWVyeSA9IChzb3J0OiBQcm9kdWN0U29ydCk6IFJlcG9zaXRvcnlPcmRlckJ5PFByb2R1Y3Q+ID0+IHtcclxuICAgIGlmICghc29ydCB8fCBzb3J0ID09PSAnbW9zdC1yZWxldmFudCcpIHJldHVybiB7fVxyXG5cclxuICAgIGlmIChzb3J0ID09PSAnYmVzdC1zZWxsZXJzJykgcmV0dXJuIHsgc2hvcHBpbmdDb3VudDogJ2Rlc2MnIH1cclxuICAgIGlmIChzb3J0ID09PSAnYmlnZ2VzdC1wcmljZScpIHJldHVybiB7IHByaWNlOiAnZGVzYycgfVxyXG4gICAgaWYgKHNvcnQgPT09ICdsb3dlc3QtcHJpY2UnKSByZXR1cm4geyBwcmljZTogJ2FzYycgfVxyXG4gICAgaWYgKHNvcnQgPT09ICdiZXN0LXJhdGluZycpIHJldHVybiB7IHJhdGU6ICdkZXNjJyB9XHJcbiAgICBpZiAoc29ydCA9PT0gJ25ld3MnKSByZXR1cm4geyBjcmVhdGVkQXQ6ICdkZXNjJyB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkTGltaXRRdWVyeSA9IChvcHRpb25zOiB7IHBhZ2U/OiBudW1iZXI7IHBlclBhZ2U/OiBudW1iZXIgfSk6IHsgbGltaXQ/OiBudW1iZXI7IG9mZnNldD86IG51bWJlciB9ID0+IHtcclxuICAgIGNvbnN0IGxpbWl0ID0gb3B0aW9ucz8ucGVyUGFnZSB8fCAyMFxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxpbWl0LFxyXG4gICAgICBvZmZzZXQ6ICgob3B0aW9ucz8ucGFnZSB8fCAxKSAtIDEpICogbGltaXQsXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { Shops, } from '@infrab4a/connect';
|
|
3
|
-
import { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@infrab4a/connect";
|
|
6
|
-
export class CategoryService {
|
|
7
|
-
constructor(productRepository, categoryRepository, categoryFilterRepository, categoryStructureAdapter, shop) {
|
|
8
|
-
this.productRepository = productRepository;
|
|
9
|
-
this.categoryRepository = categoryRepository;
|
|
10
|
-
this.categoryFilterRepository = categoryFilterRepository;
|
|
11
|
-
this.categoryStructureAdapter = categoryStructureAdapter;
|
|
12
|
-
this.shop = shop;
|
|
13
|
-
}
|
|
14
|
-
async fetchBrands(category, mainGender) {
|
|
15
|
-
const brands = await this.productRepository
|
|
16
|
-
.findCatalog({
|
|
17
|
-
filters: await this.categoryStructureAdapter.buildProductFilterByCategory(category),
|
|
18
|
-
fields: ['brand'],
|
|
19
|
-
}, mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female')
|
|
20
|
-
.then(({ data }) => Object.keys(data.map((product) => product.brand).reduce((brands, brand) => ({ ...brands, [brand]: true }), {})));
|
|
21
|
-
return this.categoryRepository
|
|
22
|
-
.find({ filters: { brandCategory: true }, orderBy: { name: 'asc' } })
|
|
23
|
-
.then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)));
|
|
24
|
-
}
|
|
25
|
-
async fetchFilterOptions(category, filters) {
|
|
26
|
-
const categoryFilters = category.filters && category.filters.length
|
|
27
|
-
? category.filters
|
|
28
|
-
: await this.categoryFilterRepository
|
|
29
|
-
.find({ filters: { categoryId: +category.id } })
|
|
30
|
-
.then(({ data }) => data.map((categoryFilter) => categoryFilter.filter));
|
|
31
|
-
return filters?.length
|
|
32
|
-
? categoryFilters.filter((categoryFilter) => !filters || !filters.length || categoryFilter.options.some((option) => filters.includes(option.id)))
|
|
33
|
-
: categoryFilters;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
CategoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, deps: [{ token: 'ProductRepository' }, { token: 'CategoryRepository' }, { token: 'CategoryFilterRepository' }, { token: CATEGORY_STRUCTURE }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
37
|
-
CategoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService });
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, decorators: [{
|
|
39
|
-
type: Injectable
|
|
40
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
41
|
-
type: Inject,
|
|
42
|
-
args: ['ProductRepository']
|
|
43
|
-
}] }, { type: undefined, decorators: [{
|
|
44
|
-
type: Inject,
|
|
45
|
-
args: ['CategoryRepository']
|
|
46
|
-
}] }, { type: undefined, decorators: [{
|
|
47
|
-
type: Inject,
|
|
48
|
-
args: ['CategoryFilterRepository']
|
|
49
|
-
}] }, { type: undefined, decorators: [{
|
|
50
|
-
type: Inject,
|
|
51
|
-
args: [CATEGORY_STRUCTURE]
|
|
52
|
-
}] }, { type: i1.Shops, decorators: [{
|
|
53
|
-
type: Inject,
|
|
54
|
-
args: [DEFAULT_SHOP]
|
|
55
|
-
}] }]; } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Shops, } from '@infrab4a/connect';
|
|
3
|
+
import { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@infrab4a/connect";
|
|
6
|
+
export class CategoryService {
|
|
7
|
+
constructor(productRepository, categoryRepository, categoryFilterRepository, categoryStructureAdapter, shop) {
|
|
8
|
+
this.productRepository = productRepository;
|
|
9
|
+
this.categoryRepository = categoryRepository;
|
|
10
|
+
this.categoryFilterRepository = categoryFilterRepository;
|
|
11
|
+
this.categoryStructureAdapter = categoryStructureAdapter;
|
|
12
|
+
this.shop = shop;
|
|
13
|
+
}
|
|
14
|
+
async fetchBrands(category, mainGender) {
|
|
15
|
+
const brands = await this.productRepository
|
|
16
|
+
.findCatalog({
|
|
17
|
+
filters: await this.categoryStructureAdapter.buildProductFilterByCategory(category),
|
|
18
|
+
fields: ['brand'],
|
|
19
|
+
}, mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female')
|
|
20
|
+
.then(({ data }) => Object.keys(data.map((product) => product.brand).reduce((brands, brand) => ({ ...brands, [brand]: true }), {})));
|
|
21
|
+
return this.categoryRepository
|
|
22
|
+
.find({ filters: { brandCategory: true }, orderBy: { name: 'asc' } })
|
|
23
|
+
.then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)));
|
|
24
|
+
}
|
|
25
|
+
async fetchFilterOptions(category, filters) {
|
|
26
|
+
const categoryFilters = category.filters && category.filters.length
|
|
27
|
+
? category.filters
|
|
28
|
+
: await this.categoryFilterRepository
|
|
29
|
+
.find({ filters: { categoryId: +category.id } })
|
|
30
|
+
.then(({ data }) => data.map((categoryFilter) => categoryFilter.filter));
|
|
31
|
+
return filters?.length
|
|
32
|
+
? categoryFilters.filter((categoryFilter) => !filters || !filters.length || categoryFilter.options.some((option) => filters.includes(option.id)))
|
|
33
|
+
: categoryFilters;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
CategoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, deps: [{ token: 'ProductRepository' }, { token: 'CategoryRepository' }, { token: 'CategoryFilterRepository' }, { token: CATEGORY_STRUCTURE }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
37
|
+
CategoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, decorators: [{
|
|
39
|
+
type: Injectable
|
|
40
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
41
|
+
type: Inject,
|
|
42
|
+
args: ['ProductRepository']
|
|
43
|
+
}] }, { type: undefined, decorators: [{
|
|
44
|
+
type: Inject,
|
|
45
|
+
args: ['CategoryRepository']
|
|
46
|
+
}] }, { type: undefined, decorators: [{
|
|
47
|
+
type: Inject,
|
|
48
|
+
args: ['CategoryFilterRepository']
|
|
49
|
+
}] }, { type: undefined, decorators: [{
|
|
50
|
+
type: Inject,
|
|
51
|
+
args: [CATEGORY_STRUCTURE]
|
|
52
|
+
}] }, { type: i1.Shops, decorators: [{
|
|
53
|
+
type: Inject,
|
|
54
|
+
args: [DEFAULT_SHOP]
|
|
55
|
+
}] }]; } });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFPTCxLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBOzs7QUFJL0QsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDZ0QsaUJBQW9DLEVBQ25DLGtCQUFzQyxFQUNoQyx3QkFBa0QsRUFDMUQsd0JBQWtELEVBQ3hELElBQVc7UUFKSixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ25DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDaEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUMxRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ3hELFNBQUksR0FBSixJQUFJLENBQU87SUFDakQsQ0FBQztJQUVKLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBa0IsRUFBRSxVQUEwQjtRQUM5RCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUI7YUFDeEMsV0FBVyxDQUNWO1lBQ0UsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQztZQUNuRixNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7U0FDbEIsRUFDRCxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FDakU7YUFDQSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUNoSCxDQUFBO1FBRUgsT0FBTyxJQUFJLENBQUMsa0JBQWtCO2FBQzNCLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQzthQUNwRSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzlGLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBa0IsRUFBRSxPQUFrQjtRQUM3RCxNQUFNLGVBQWUsR0FDbkIsUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU07WUFDekMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPO1lBQ2xCLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyx3QkFBd0I7aUJBQ2hDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO2lCQUMvQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUVoRixPQUFPLE9BQU8sRUFBRSxNQUFNO1lBQ3BCLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUNwQixDQUFDLGNBQWMsRUFBRSxFQUFFLENBQ2pCLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDdEc7WUFDSCxDQUFDLENBQUMsZUFBZSxDQUFBO0lBQ3JCLENBQUM7OzRHQXpDVSxlQUFlLGtCQUVoQixtQkFBbUIsYUFDbkIsb0JBQW9CLGFBQ3BCLDBCQUEwQixhQUMxQixrQkFBa0IsYUFDbEIsWUFBWTtnSEFOWCxlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsbUJBQW1COzswQkFDMUIsTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLDBCQUEwQjs7MEJBQ2pDLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBDYXRlZ29yeSxcclxuICBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXHJcbiAgQ2F0ZWdvcnlSZXBvc2l0b3J5LFxyXG4gIEZpbHRlcixcclxuICBQcm9kdWN0R2VuZGVyLFxyXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gIFNob3BzLFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5pbXBvcnQgeyBDQVRFR09SWV9TVFJVQ1RVUkUsIERFRkFVTFRfU0hPUCB9IGZyb20gJy4uLy4uL2NvbnN0cydcclxuaW1wb3J0IHsgQ2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyIH0gZnJvbSAnLi9hZGFwdGVycydcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENhdGVnb3J5U2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KCdQcm9kdWN0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeVJlcG9zaXRvcnk6IENhdGVnb3J5UmVwb3NpdG9yeSxcclxuICAgIEBJbmplY3QoJ0NhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5OiBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KENBVEVHT1JZX1NUUlVDVFVSRSkgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXI6IENhdGVnb3J5U3RydWN0dXJlQWRhcHRlcixcclxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IHNob3A6IFNob3BzLFxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgZmV0Y2hCcmFuZHMoY2F0ZWdvcnk6IENhdGVnb3J5LCBtYWluR2VuZGVyPzogUHJvZHVjdEdlbmRlcik6IFByb21pc2U8Q2F0ZWdvcnlbXT4ge1xyXG4gICAgY29uc3QgYnJhbmRzID0gYXdhaXQgdGhpcy5wcm9kdWN0UmVwb3NpdG9yeVxyXG4gICAgICAuZmluZENhdGFsb2coXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmlsdGVyczogYXdhaXQgdGhpcy5jYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIuYnVpbGRQcm9kdWN0RmlsdGVyQnlDYXRlZ29yeShjYXRlZ29yeSksXHJcbiAgICAgICAgICBmaWVsZHM6IFsnYnJhbmQnXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIG1haW5HZW5kZXIgfHwgdGhpcy5zaG9wID09PSBTaG9wcy5NRU5TTUFSS0VUID8gJ21hbGUnIDogJ2ZlbWFsZScsXHJcbiAgICAgIClcclxuICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PlxyXG4gICAgICAgIE9iamVjdC5rZXlzKGRhdGEubWFwKChwcm9kdWN0KSA9PiBwcm9kdWN0LmJyYW5kKS5yZWR1Y2UoKGJyYW5kcywgYnJhbmQpID0+ICh7IC4uLmJyYW5kcywgW2JyYW5kXTogdHJ1ZSB9KSwge30pKSxcclxuICAgICAgKVxyXG5cclxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5UmVwb3NpdG9yeVxyXG4gICAgICAuZmluZCh7IGZpbHRlcnM6IHsgYnJhbmRDYXRlZ29yeTogdHJ1ZSB9LCBvcmRlckJ5OiB7IG5hbWU6ICdhc2MnIH0gfSlcclxuICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PiBkYXRhLmZpbHRlcigoY2F0ZWdvcnkpID0+IGJyYW5kcy5pbmNsdWRlcyhjYXRlZ29yeS5jb25kaXRpb25zLmJyYW5kKSkpXHJcbiAgfVxyXG5cclxuICBhc3luYyBmZXRjaEZpbHRlck9wdGlvbnMoY2F0ZWdvcnk6IENhdGVnb3J5LCBmaWx0ZXJzPzogc3RyaW5nW10pOiBQcm9taXNlPEZpbHRlcltdPiB7XHJcbiAgICBjb25zdCBjYXRlZ29yeUZpbHRlcnMgPVxyXG4gICAgICBjYXRlZ29yeS5maWx0ZXJzICYmIGNhdGVnb3J5LmZpbHRlcnMubGVuZ3RoXHJcbiAgICAgICAgPyBjYXRlZ29yeS5maWx0ZXJzXHJcbiAgICAgICAgOiBhd2FpdCB0aGlzLmNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeVxyXG4gICAgICAgICAgICAuZmluZCh7IGZpbHRlcnM6IHsgY2F0ZWdvcnlJZDogK2NhdGVnb3J5LmlkIH0gfSlcclxuICAgICAgICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PiBkYXRhLm1hcCgoY2F0ZWdvcnlGaWx0ZXIpID0+IGNhdGVnb3J5RmlsdGVyLmZpbHRlcikpXHJcblxyXG4gICAgcmV0dXJuIGZpbHRlcnM/Lmxlbmd0aFxyXG4gICAgICA/IGNhdGVnb3J5RmlsdGVycy5maWx0ZXIoXHJcbiAgICAgICAgICAoY2F0ZWdvcnlGaWx0ZXIpID0+XHJcbiAgICAgICAgICAgICFmaWx0ZXJzIHx8ICFmaWx0ZXJzLmxlbmd0aCB8fCBjYXRlZ29yeUZpbHRlci5vcHRpb25zLnNvbWUoKG9wdGlvbikgPT4gZmlsdGVycy5pbmNsdWRlcyhvcHRpb24uaWQpKSxcclxuICAgICAgICApXHJcbiAgICAgIDogY2F0ZWdvcnlGaWx0ZXJzXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './product-sorts.enum';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from './product-sorts.enum';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvZW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1zb3J0cy5lbnVtJ1xyXG4iXX0=
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export var ProductSorts;
|
|
2
|
-
(function (ProductSorts) {
|
|
3
|
-
ProductSorts["MOST_RELEVANT"] = "most-relevant";
|
|
4
|
-
ProductSorts["BEST_SELLER"] = "best-sellers";
|
|
5
|
-
ProductSorts["BIGGEST_PRICE"] = "biggest-price";
|
|
6
|
-
ProductSorts["LOWEST_PRICE"] = "lowest-price";
|
|
7
|
-
ProductSorts["BIGGEST_DISCOUNT"] = "biggest-discount";
|
|
8
|
-
ProductSorts["BEST_RATING"] = "best-rating";
|
|
9
|
-
ProductSorts["NEWS"] = "news";
|
|
10
|
-
})(ProductSorts || (ProductSorts = {}));
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export var ProductSorts;
|
|
2
|
+
(function (ProductSorts) {
|
|
3
|
+
ProductSorts["MOST_RELEVANT"] = "most-relevant";
|
|
4
|
+
ProductSorts["BEST_SELLER"] = "best-sellers";
|
|
5
|
+
ProductSorts["BIGGEST_PRICE"] = "biggest-price";
|
|
6
|
+
ProductSorts["LOWEST_PRICE"] = "lowest-price";
|
|
7
|
+
ProductSorts["BIGGEST_DISCOUNT"] = "biggest-discount";
|
|
8
|
+
ProductSorts["BEST_RATING"] = "best-rating";
|
|
9
|
+
ProductSorts["NEWS"] = "news";
|
|
10
|
+
})(ProductSorts || (ProductSorts = {}));
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zb3J0cy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2VudW1zL3Byb2R1Y3Qtc29ydHMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxZQVFYO0FBUkQsV0FBWSxZQUFZO0lBQ3RCLCtDQUErQixDQUFBO0lBQy9CLDRDQUE0QixDQUFBO0lBQzVCLCtDQUErQixDQUFBO0lBQy9CLDZDQUE2QixDQUFBO0lBQzdCLHFEQUFxQyxDQUFBO0lBQ3JDLDJDQUEyQixDQUFBO0lBQzNCLDZCQUFhLENBQUE7QUFDZixDQUFDLEVBUlcsWUFBWSxLQUFaLFlBQVksUUFRdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBQcm9kdWN0U29ydHMge1xyXG4gIE1PU1RfUkVMRVZBTlQgPSAnbW9zdC1yZWxldmFudCcsXHJcbiAgQkVTVF9TRUxMRVIgPSAnYmVzdC1zZWxsZXJzJyxcclxuICBCSUdHRVNUX1BSSUNFID0gJ2JpZ2dlc3QtcHJpY2UnLFxyXG4gIExPV0VTVF9QUklDRSA9ICdsb3dlc3QtcHJpY2UnLFxyXG4gIEJJR0dFU1RfRElTQ09VTlQgPSAnYmlnZ2VzdC1kaXNjb3VudCcsXHJcbiAgQkVTVF9SQVRJTkcgPSAnYmVzdC1yYXRpbmcnLFxyXG4gIE5FV1MgPSAnbmV3cycsXHJcbn1cclxuIl19
|