@infrab4a/connect-angular 5.4.6-beta.0 → 5.5.0-alpha.1
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 +33 -36
- package/angular-elastic-search.module.d.ts +9 -9
- package/angular-firebase-auth.module.d.ts +10 -11
- package/angular-firestore.module.d.ts +16 -17
- package/angular-hasura-graphql.module.d.ts +14 -14
- package/angular-vertex-search.module.d.ts +9 -9
- 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 +4 -4
- package/consts/hasura-options.const.d.ts +1 -1
- package/consts/index.d.ts +8 -8
- package/consts/persistence.const.d.ts +1 -1
- package/consts/storage-base-url.const.d.ts +1 -1
- package/consts/vertex-config.const.d.ts +1 -1
- package/esm2022/angular-connect.module.mjs +288 -0
- package/esm2022/angular-elastic-search.module.mjs +34 -0
- package/esm2022/angular-firebase-auth.module.mjs +140 -0
- package/esm2022/angular-firestore.module.mjs +538 -0
- package/esm2022/angular-hasura-graphql.module.mjs +333 -0
- package/esm2022/angular-vertex-search.module.mjs +34 -0
- package/{esm2020 → esm2022}/consts/backend-url.const.mjs +2 -2
- package/{esm2020 → esm2022}/consts/category-structure.mjs +2 -2
- package/{esm2020 → esm2022}/consts/default-shop.const.mjs +2 -2
- package/{esm2020 → esm2022}/consts/es-config.const.mjs +2 -2
- package/{esm2020 → esm2022}/consts/firebase-const.mjs +5 -5
- package/{esm2020 → esm2022}/consts/hasura-options.const.mjs +2 -2
- package/{esm2020 → esm2022}/consts/index.mjs +9 -9
- package/{esm2020 → esm2022}/consts/persistence.const.mjs +2 -2
- package/{esm2020 → esm2022}/consts/storage-base-url.const.mjs +2 -2
- package/{esm2020 → esm2022}/consts/vertex-config.const.mjs +2 -2
- package/{esm2020 → esm2022}/helpers/index.mjs +2 -2
- package/{esm2020 → esm2022}/helpers/mobile-operation-system-checker.helper.mjs +7 -7
- package/{esm2020 → esm2022}/index.mjs +7 -7
- package/{esm2020 → esm2022}/infrab4a-connect-angular.mjs +4 -4
- package/esm2022/interfaces/catalog-strategies.interface.mjs +2 -0
- package/{esm2020 → esm2022}/interfaces/category-facades.interface.mjs +2 -2
- package/{esm2020 → esm2022}/interfaces/index.mjs +3 -3
- package/{esm2020 → esm2022}/persistence/cookie-data-persistence.mjs +22 -22
- package/{esm2020 → esm2022}/persistence/data-persistence.mjs +2 -2
- package/{esm2020 → esm2022}/persistence/index.mjs +3 -3
- package/{esm2020 → esm2022}/services/auth.service.mjs +37 -37
- package/{esm2020 → esm2022}/services/cart/cart-services.facade.mjs +21 -21
- package/{esm2020 → esm2022}/services/cart/index.mjs +2 -2
- package/{esm2020 → esm2022}/services/cart.service.mjs +73 -73
- package/{esm2020 → esm2022}/services/catalog/adapters/category-structure.adapter.mjs +2 -2
- package/{esm2020 → esm2022}/services/catalog/adapters/index.mjs +4 -4
- package/{esm2020 → esm2022}/services/catalog/adapters/new-category-structure.adapter.mjs +43 -43
- package/{esm2020 → esm2022}/services/catalog/adapters/old-category-structure.adapter.mjs +23 -23
- package/esm2022/services/catalog/catalog.service.mjs +111 -0
- package/{esm2020 → esm2022}/services/catalog/category.service.mjs +42 -42
- package/esm2022/services/catalog/context/catalog-search.context.mjs +40 -0
- package/{esm2020 → esm2022}/services/catalog/enums/index.mjs +2 -2
- package/{esm2020 → esm2022}/services/catalog/enums/product-sorts.enum.mjs +11 -11
- package/{esm2020 → esm2022}/services/catalog/facades/catalog-service.facade.mjs +32 -32
- package/esm2022/services/catalog/facades/catalog-strategies.facade.mjs +17 -0
- package/esm2022/services/catalog/facades/category-repository.facade.mjs +20 -0
- package/{esm2020 → esm2022}/services/catalog/facades/category-service.facade.mjs +30 -30
- package/{esm2020 → esm2022}/services/catalog/facades/index.mjs +6 -6
- package/esm2022/services/catalog/facades/product-catalog.facade.mjs +21 -0
- package/esm2022/services/catalog/helpers/brand-manager.helper.mjs +57 -0
- package/esm2022/services/catalog/helpers/catalog-filter.helper.mjs +44 -0
- package/esm2022/services/catalog/helpers/catalog-sort.helper.mjs +52 -0
- package/{esm2020 → esm2022}/services/catalog/helpers/index.mjs +5 -5
- package/{esm2020 → esm2022}/services/catalog/helpers/product-fields.helper.mjs +40 -40
- package/{esm2020 → esm2022}/services/catalog/index.mjs +8 -8
- package/{esm2020 → esm2022}/services/catalog/models/category-with-tree.model.mjs +10 -10
- package/{esm2020 → esm2022}/services/catalog/models/index.mjs +2 -2
- package/esm2022/services/catalog/services/catalog-helpers.service.mjs +33 -0
- package/{esm2020 → esm2022}/services/catalog/services/catalog-operations.facade.mjs +26 -26
- package/esm2022/services/catalog/services/catalog-repository.service.mjs +25 -0
- package/{esm2020 → esm2022}/services/catalog/services/index.mjs +5 -5
- package/esm2022/services/catalog/services/product-management.facade.mjs +25 -0
- package/esm2022/services/catalog/strategies/category-search.strategy.mjs +133 -0
- package/{esm2020 → esm2022}/services/catalog/strategies/index.mjs +4 -4
- package/esm2022/services/catalog/strategies/profile-search.strategy.mjs +42 -0
- package/esm2022/services/catalog/strategies/term-search.strategy.mjs +123 -0
- package/esm2022/services/catalog/strategies/types/strategy-params.type.mjs +2 -0
- package/{esm2020 → esm2022}/services/catalog/types/fetch-products-options.type.mjs +2 -2
- package/esm2022/services/catalog/types/fetch-products-params.type.mjs +2 -0
- package/{esm2020 → esm2022}/services/catalog/types/fetch-products-response.type.mjs +2 -2
- package/{esm2020 → esm2022}/services/catalog/types/index.mjs +6 -6
- package/esm2022/services/catalog/types/method-params.type.mjs +2 -0
- package/{esm2020 → esm2022}/services/catalog/types/product-sort.type.mjs +2 -2
- package/esm2022/services/catalog/wishlist.service.mjs +254 -0
- package/esm2022/services/checkout/checkout-dependencies.facade.mjs +20 -0
- package/esm2022/services/checkout/checkout-repositories.facade.mjs +20 -0
- package/{esm2020 → esm2022}/services/checkout/index.mjs +3 -3
- package/{esm2020 → esm2022}/services/checkout-subscription.service.mjs +55 -55
- package/{esm2020 → esm2022}/services/checkout.service.mjs +106 -106
- package/{esm2020 → esm2022}/services/coupon/coupon-repositories.facade.mjs +24 -24
- package/{esm2020 → esm2022}/services/coupon/index.mjs +2 -2
- package/esm2022/services/coupon/types/coupon-params.type.mjs +2 -0
- package/esm2022/services/coupon.service.mjs +248 -0
- package/{esm2020 → esm2022}/services/helpers/index.mjs +2 -2
- package/{esm2020 → esm2022}/services/helpers/util.helper.mjs +18 -18
- package/{esm2020 → esm2022}/services/home-shop/home-shop-repositories.facade.mjs +24 -24
- package/{esm2020 → esm2022}/services/home-shop/index.mjs +2 -2
- package/{esm2020 → esm2022}/services/home-shop.service.mjs +119 -119
- package/{esm2020 → esm2022}/services/index.mjs +11 -11
- package/esm2022/services/order-product-review.service.mjs +110 -0
- package/{esm2020 → esm2022}/services/order.service.mjs +30 -30
- package/{esm2020 → esm2022}/services/shared/configuration.facade.mjs +29 -29
- package/{esm2020 → esm2022}/services/shared/index.mjs +2 -2
- package/{esm2020 → esm2022}/services/types/index.mjs +5 -5
- package/{esm2020 → esm2022}/services/types/pending-product-review.type.mjs +2 -2
- package/{esm2020 → esm2022}/services/types/product-review-create.type.mjs +2 -2
- package/{esm2020 → esm2022}/services/types/required-checkout-data.type.mjs +2 -2
- package/{esm2020 → esm2022}/services/types/required-checkout-subscription-data.type.mjs +2 -2
- package/{esm2020 → esm2022}/types/firebase-app-config.type.mjs +2 -2
- package/{esm2020 → esm2022}/types/index.mjs +2 -2
- package/{fesm2020 → fesm2022}/infrab4a-connect-angular.mjs +3284 -3289
- package/fesm2022/infrab4a-connect-angular.mjs.map +1 -0
- package/helpers/index.d.ts +1 -1
- package/helpers/mobile-operation-system-checker.helper.d.ts +3 -3
- package/index.d.ts +6 -6
- package/interfaces/catalog-strategies.interface.d.ts +31 -31
- package/interfaces/category-facades.interface.d.ts +6 -6
- package/interfaces/index.d.ts +2 -2
- package/package.json +9 -15
- package/persistence/cookie-data-persistence.d.ts +10 -10
- package/persistence/data-persistence.d.ts +6 -6
- package/persistence/index.d.ts +2 -2
- package/services/auth.service.d.ts +18 -18
- package/services/cart/cart-services.facade.d.ts +12 -12
- package/services/cart/index.d.ts +1 -1
- package/services/cart.service.d.ts +26 -26
- 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 +12 -12
- package/services/catalog/adapters/old-category-structure.adapter.d.ts +10 -10
- package/services/catalog/catalog.service.d.ts +24 -24
- package/services/catalog/category.service.d.ts +23 -23
- package/services/catalog/context/catalog-search.context.d.ts +14 -14
- package/services/catalog/enums/index.d.ts +1 -1
- package/services/catalog/enums/product-sorts.enum.d.ts +9 -9
- package/services/catalog/facades/catalog-service.facade.d.ts +15 -15
- package/services/catalog/facades/catalog-strategies.facade.d.ts +10 -10
- package/services/catalog/facades/category-repository.facade.d.ts +9 -9
- package/services/catalog/facades/category-service.facade.d.ts +15 -15
- package/services/catalog/facades/index.d.ts +5 -5
- package/services/catalog/facades/product-catalog.facade.d.ts +10 -10
- package/services/catalog/helpers/brand-manager.helper.d.ts +14 -14
- package/services/catalog/helpers/catalog-filter.helper.d.ts +8 -8
- package/services/catalog/helpers/catalog-sort.helper.d.ts +7 -7
- package/services/catalog/helpers/index.d.ts +4 -4
- package/services/catalog/helpers/product-fields.helper.d.ts +7 -7
- package/services/catalog/index.d.ts +7 -7
- package/services/catalog/models/category-with-tree.model.d.ts +4 -4
- package/services/catalog/models/index.d.ts +1 -1
- package/services/catalog/services/catalog-helpers.service.d.ts +17 -17
- package/services/catalog/services/catalog-operations.facade.d.ts +13 -13
- package/services/catalog/services/catalog-repository.service.d.ts +12 -12
- package/services/catalog/services/index.d.ts +4 -4
- package/services/catalog/services/product-management.facade.d.ts +12 -12
- package/services/catalog/strategies/category-search.strategy.d.ts +19 -19
- package/services/catalog/strategies/index.d.ts +3 -3
- package/services/catalog/strategies/profile-search.strategy.d.ts +14 -14
- package/services/catalog/strategies/term-search.strategy.d.ts +20 -20
- package/services/catalog/strategies/types/strategy-params.type.d.ts +58 -58
- package/services/catalog/types/fetch-products-options.type.d.ts +8 -8
- package/services/catalog/types/fetch-products-params.type.d.ts +25 -25
- package/services/catalog/types/fetch-products-response.type.d.ts +19 -19
- package/services/catalog/types/index.d.ts +5 -5
- package/services/catalog/types/method-params.type.d.ts +17 -17
- package/services/catalog/types/product-sort.type.d.ts +2 -2
- package/services/catalog/wishlist.service.d.ts +59 -59
- package/services/checkout/checkout-dependencies.facade.d.ts +10 -10
- package/services/checkout/checkout-repositories.facade.d.ts +9 -9
- package/services/checkout/index.d.ts +2 -2
- package/services/checkout-subscription.service.d.ts +19 -19
- package/services/checkout.service.d.ts +30 -30
- package/services/coupon/coupon-repositories.facade.d.ts +10 -10
- package/services/coupon/index.d.ts +1 -1
- package/services/coupon/types/coupon-params.type.d.ts +13 -13
- package/services/coupon.service.d.ts +36 -36
- package/services/helpers/index.d.ts +1 -1
- package/services/helpers/util.helper.d.ts +3 -3
- package/services/home-shop/home-shop-repositories.facade.d.ts +10 -10
- package/services/home-shop/index.d.ts +1 -1
- package/services/home-shop.service.d.ts +26 -26
- package/services/index.d.ts +10 -10
- package/services/order-product-review.service.d.ts +16 -16
- package/services/order.service.d.ts +13 -13
- package/services/shared/configuration.facade.d.ts +12 -12
- package/services/shared/index.d.ts +1 -1
- package/services/types/index.d.ts +4 -4
- package/services/types/pending-product-review.type.d.ts +12 -12
- package/services/types/product-review-create.type.d.ts +14 -14
- package/services/types/required-checkout-data.type.d.ts +2 -2
- package/services/types/required-checkout-subscription-data.type.d.ts +2 -2
- package/types/firebase-app-config.type.d.ts +1 -1
- package/types/index.d.ts +1 -1
- package/esm2020/angular-connect.module.mjs +0 -291
- package/esm2020/angular-elastic-search.module.mjs +0 -34
- package/esm2020/angular-firebase-auth.module.mjs +0 -141
- package/esm2020/angular-firestore.module.mjs +0 -541
- package/esm2020/angular-hasura-graphql.module.mjs +0 -333
- package/esm2020/angular-vertex-search.module.mjs +0 -34
- package/esm2020/interfaces/catalog-strategies.interface.mjs +0 -2
- package/esm2020/services/catalog/catalog.service.mjs +0 -111
- package/esm2020/services/catalog/context/catalog-search.context.mjs +0 -40
- package/esm2020/services/catalog/facades/catalog-strategies.facade.mjs +0 -17
- package/esm2020/services/catalog/facades/category-repository.facade.mjs +0 -20
- package/esm2020/services/catalog/facades/product-catalog.facade.mjs +0 -21
- package/esm2020/services/catalog/helpers/brand-manager.helper.mjs +0 -57
- package/esm2020/services/catalog/helpers/catalog-filter.helper.mjs +0 -44
- package/esm2020/services/catalog/helpers/catalog-sort.helper.mjs +0 -52
- package/esm2020/services/catalog/services/catalog-helpers.service.mjs +0 -33
- package/esm2020/services/catalog/services/catalog-repository.service.mjs +0 -25
- package/esm2020/services/catalog/services/product-management.facade.mjs +0 -25
- package/esm2020/services/catalog/strategies/category-search.strategy.mjs +0 -133
- package/esm2020/services/catalog/strategies/profile-search.strategy.mjs +0 -42
- package/esm2020/services/catalog/strategies/term-search.strategy.mjs +0 -123
- package/esm2020/services/catalog/strategies/types/strategy-params.type.mjs +0 -2
- package/esm2020/services/catalog/types/fetch-products-params.type.mjs +0 -2
- package/esm2020/services/catalog/types/method-params.type.mjs +0 -2
- package/esm2020/services/catalog/wishlist.service.mjs +0 -254
- package/esm2020/services/checkout/checkout-dependencies.facade.mjs +0 -20
- package/esm2020/services/checkout/checkout-repositories.facade.mjs +0 -20
- package/esm2020/services/coupon/types/coupon-params.type.mjs +0 -2
- package/esm2020/services/coupon.service.mjs +0 -248
- package/esm2020/services/order-product-review.service.mjs +0 -110
- package/fesm2015/infrab4a-connect-angular.mjs +0 -3491
- package/fesm2015/infrab4a-connect-angular.mjs.map +0 -1
- package/fesm2020/infrab4a-connect-angular.mjs.map +0 -1
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class CategoryRepositoryFacade {
|
|
4
|
-
constructor(categoryRepository, categoryFilterRepository) {
|
|
5
|
-
this.categoryRepository = categoryRepository;
|
|
6
|
-
this.categoryFilterRepository = categoryFilterRepository;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
CategoryRepositoryFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryRepositoryFacade, deps: [{ token: 'CategoryRepository' }, { token: 'CategoryFilterRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
10
|
-
CategoryRepositoryFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryRepositoryFacade });
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryRepositoryFacade, decorators: [{
|
|
12
|
-
type: Injectable
|
|
13
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
14
|
-
type: Inject,
|
|
15
|
-
args: ['CategoryRepository']
|
|
16
|
-
}] }, { type: undefined, decorators: [{
|
|
17
|
-
type: Inject,
|
|
18
|
-
args: ['CategoryFilterRepository']
|
|
19
|
-
}] }]; } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktcmVwb3NpdG9yeS5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvZmFjYWRlcy9jYXRlZ29yeS1yZXBvc2l0b3J5LmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7QUFJbEQsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNnRCxrQkFBc0MsRUFDaEMsd0JBQWtEO1FBRHhELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDaEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtJQUNyRyxDQUFDOztxSEFKTyx3QkFBd0Isa0JBRXpCLG9CQUFvQixhQUNwQiwwQkFBMEI7eUhBSHpCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVOzswQkFHTixNQUFNOzJCQUFDLG9CQUFvQjs7MEJBQzNCLE1BQU07MkJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5LCBDYXRlZ29yeVJlcG9zaXRvcnkgfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENhdGVnb3J5UmVwb3NpdG9yeUZhY2FkZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KCdDYXRlZ29yeVJlcG9zaXRvcnknKSBwdWJsaWMgcmVhZG9ubHkgY2F0ZWdvcnlSZXBvc2l0b3J5OiBDYXRlZ29yeVJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KCdDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnknKSBwdWJsaWMgcmVhZG9ubHkgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5OiBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXHJcbiAgKSB7fVxyXG59XHJcbiJdfQ==
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { CATEGORY_STRUCTURE } from '../../../consts';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ProductCatalogFacade {
|
|
5
|
-
constructor(productRepository, categoryStructureAdapter) {
|
|
6
|
-
this.productRepository = productRepository;
|
|
7
|
-
this.categoryStructureAdapter = categoryStructureAdapter;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
ProductCatalogFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ProductCatalogFacade, deps: [{ token: 'ProductRepository' }, { token: CATEGORY_STRUCTURE }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
11
|
-
ProductCatalogFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ProductCatalogFacade });
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ProductCatalogFacade, decorators: [{
|
|
13
|
-
type: Injectable
|
|
14
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
15
|
-
type: Inject,
|
|
16
|
-
args: ['ProductRepository']
|
|
17
|
-
}] }, { type: undefined, decorators: [{
|
|
18
|
-
type: Inject,
|
|
19
|
-
args: [CATEGORY_STRUCTURE]
|
|
20
|
-
}] }]; } });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jYXRhbG9nLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9mYWNhZGVzL3Byb2R1Y3QtY2F0YWxvZy5mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7O0FBSXBELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFDK0MsaUJBQW9DLEVBQ3JDLHdCQUFrRDtRQURqRCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3JDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7SUFDN0YsQ0FBQzs7aUhBSk8sb0JBQW9CLGtCQUVyQixtQkFBbUIsYUFDbkIsa0JBQWtCO3FIQUhqQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVTs7MEJBR04sTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUMxQixNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IFByb2R1Y3RSZXBvc2l0b3J5IH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcblxyXG5pbXBvcnQgeyBDQVRFR09SWV9TVFJVQ1RVUkUgfSBmcm9tICcuLi8uLi8uLi9jb25zdHMnXHJcbmltcG9ydCB7IENhdGVnb3J5U3RydWN0dXJlQWRhcHRlciB9IGZyb20gJy4uL2FkYXB0ZXJzJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdENhdGFsb2dGYWNhZGUge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdCgnUHJvZHVjdFJlcG9zaXRvcnknKSBwdWJsaWMgcmVhZG9ubHkgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdChDQVRFR09SWV9TVFJVQ1RVUkUpIHB1YmxpYyByZWFkb25seSBjYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXI6IENhdGVnb3J5U3RydWN0dXJlQWRhcHRlcixcclxuICApIHt9XHJcbn1cclxuIl19
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Where, isEmpty } from '@infrab4a/connect';
|
|
3
|
-
import { ProductCatalogFacade } from '../facades';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../facades";
|
|
6
|
-
export class BrandManagerHelper {
|
|
7
|
-
constructor(productCatalog) {
|
|
8
|
-
this.productCatalog = productCatalog;
|
|
9
|
-
this.brandsList = {};
|
|
10
|
-
}
|
|
11
|
-
async setBrandsList(options, brands) {
|
|
12
|
-
const filterBrands = options.filters?.brands;
|
|
13
|
-
const indexKey = this.buildIndexBrands(options);
|
|
14
|
-
if (isEmpty(brands) && options.filters) {
|
|
15
|
-
delete options.filters.brands;
|
|
16
|
-
}
|
|
17
|
-
this.brandsList[indexKey] = this.brandsList[indexKey] || brands || (await this.fetchBrandsOnly(options));
|
|
18
|
-
this.brandsList[indexKey] = this.brandsList[indexKey].filter(Boolean);
|
|
19
|
-
if (options.filters) {
|
|
20
|
-
options.filters = {
|
|
21
|
-
...options.filters,
|
|
22
|
-
brands: filterBrands,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
getBrandsList(indexKey) {
|
|
27
|
-
return this.brandsList[indexKey];
|
|
28
|
-
}
|
|
29
|
-
buildIndexBrands(options) {
|
|
30
|
-
if (options.category)
|
|
31
|
-
return `category-${options.category.id}`;
|
|
32
|
-
if (options.term)
|
|
33
|
-
return `term-${options.term}`;
|
|
34
|
-
if (options.profile)
|
|
35
|
-
return `profile-${options.profile.join(',')}`;
|
|
36
|
-
return '';
|
|
37
|
-
}
|
|
38
|
-
async fetchBrandsOnly(options) {
|
|
39
|
-
return this.productCatalog.productRepository
|
|
40
|
-
.findCatalog({
|
|
41
|
-
fields: ['id'],
|
|
42
|
-
filters: {
|
|
43
|
-
published: { operator: Where.EQUALS, value: true },
|
|
44
|
-
},
|
|
45
|
-
options: {
|
|
46
|
-
distinct: ['brand'],
|
|
47
|
-
},
|
|
48
|
-
}, options.mainGender)
|
|
49
|
-
.then((result) => result.distinct.brand);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
BrandManagerHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BrandManagerHelper, deps: [{ token: i1.ProductCatalogFacade }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
53
|
-
BrandManagerHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BrandManagerHelper });
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BrandManagerHelper, decorators: [{
|
|
55
|
-
type: Injectable
|
|
56
|
-
}], ctorParameters: function () { return [{ type: i1.ProductCatalogFacade }]; } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmQtbWFuYWdlci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvaGVscGVycy9icmFuZC1tYW5hZ2VyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFHbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFBOzs7QUFHakQsTUFBTSxPQUFPLGtCQUFrQjtJQUc3QixZQUE2QixjQUFvQztRQUFwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFGekQsZUFBVSxHQUE2QixFQUFFLENBQUE7SUFFbUIsQ0FBQztJQUVyRSxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQTRCLEVBQUUsTUFBZ0I7UUFDaEUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUE7UUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRS9DLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDdEMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQTtTQUM5QjtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxNQUFNLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUV4RyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRXJFLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNuQixPQUFPLENBQUMsT0FBTyxHQUFHO2dCQUNoQixHQUFHLE9BQU8sQ0FBQyxPQUFPO2dCQUNsQixNQUFNLEVBQUUsWUFBWTthQUNyQixDQUFBO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQWdCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBNEI7UUFDM0MsSUFBSSxPQUFPLENBQUMsUUFBUTtZQUFFLE9BQU8sWUFBWSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFBO1FBRTlELElBQUksT0FBTyxDQUFDLElBQUk7WUFBRSxPQUFPLFFBQVEsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFBO1FBRS9DLElBQUksT0FBTyxDQUFDLE9BQU87WUFBRSxPQUFPLFdBQVcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQTtRQUVsRSxPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFFTyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQTRCO1FBQ3hELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUI7YUFDekMsV0FBVyxDQUNWO1lBQ0UsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2QsT0FBTyxFQUFFO2dCQUNQLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7YUFDbkQ7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDO2FBQ3BCO1NBQ0YsRUFDRCxPQUFPLENBQUMsVUFBVSxDQUNuQjthQUNBLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM1QyxDQUFDOzsrR0F0RFUsa0JBQWtCO21IQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBXaGVyZSwgaXNFbXB0eSB9IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5cclxuaW1wb3J0IHsgQ2F0YWxvZ1NlYXJjaFBhcmFtcyB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnXHJcbmltcG9ydCB7IFByb2R1Y3RDYXRhbG9nRmFjYWRlIH0gZnJvbSAnLi4vZmFjYWRlcydcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEJyYW5kTWFuYWdlckhlbHBlciB7XHJcbiAgcHJpdmF0ZSBicmFuZHNMaXN0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7fVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3RDYXRhbG9nOiBQcm9kdWN0Q2F0YWxvZ0ZhY2FkZSkge31cclxuXHJcbiAgYXN5bmMgc2V0QnJhbmRzTGlzdChvcHRpb25zOiBDYXRhbG9nU2VhcmNoUGFyYW1zLCBicmFuZHM6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBmaWx0ZXJCcmFuZHMgPSBvcHRpb25zLmZpbHRlcnM/LmJyYW5kc1xyXG4gICAgY29uc3QgaW5kZXhLZXkgPSB0aGlzLmJ1aWxkSW5kZXhCcmFuZHMob3B0aW9ucylcclxuXHJcbiAgICBpZiAoaXNFbXB0eShicmFuZHMpICYmIG9wdGlvbnMuZmlsdGVycykge1xyXG4gICAgICBkZWxldGUgb3B0aW9ucy5maWx0ZXJzLmJyYW5kc1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYnJhbmRzTGlzdFtpbmRleEtleV0gPSB0aGlzLmJyYW5kc0xpc3RbaW5kZXhLZXldIHx8IGJyYW5kcyB8fCAoYXdhaXQgdGhpcy5mZXRjaEJyYW5kc09ubHkob3B0aW9ucykpXHJcblxyXG4gICAgdGhpcy5icmFuZHNMaXN0W2luZGV4S2V5XSA9IHRoaXMuYnJhbmRzTGlzdFtpbmRleEtleV0uZmlsdGVyKEJvb2xlYW4pXHJcblxyXG4gICAgaWYgKG9wdGlvbnMuZmlsdGVycykge1xyXG4gICAgICBvcHRpb25zLmZpbHRlcnMgPSB7XHJcbiAgICAgICAgLi4ub3B0aW9ucy5maWx0ZXJzLFxyXG4gICAgICAgIGJyYW5kczogZmlsdGVyQnJhbmRzLFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRCcmFuZHNMaXN0KGluZGV4S2V5OiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5icmFuZHNMaXN0W2luZGV4S2V5XVxyXG4gIH1cclxuXHJcbiAgYnVpbGRJbmRleEJyYW5kcyhvcHRpb25zOiBDYXRhbG9nU2VhcmNoUGFyYW1zKTogc3RyaW5nIHtcclxuICAgIGlmIChvcHRpb25zLmNhdGVnb3J5KSByZXR1cm4gYGNhdGVnb3J5LSR7b3B0aW9ucy5jYXRlZ29yeS5pZH1gXHJcblxyXG4gICAgaWYgKG9wdGlvbnMudGVybSkgcmV0dXJuIGB0ZXJtLSR7b3B0aW9ucy50ZXJtfWBcclxuXHJcbiAgICBpZiAob3B0aW9ucy5wcm9maWxlKSByZXR1cm4gYHByb2ZpbGUtJHtvcHRpb25zLnByb2ZpbGUuam9pbignLCcpfWBcclxuXHJcbiAgICByZXR1cm4gJydcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgZmV0Y2hCcmFuZHNPbmx5KG9wdGlvbnM6IENhdGFsb2dTZWFyY2hQYXJhbXMpOiBQcm9taXNlPHN0cmluZ1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9kdWN0Q2F0YWxvZy5wcm9kdWN0UmVwb3NpdG9yeVxyXG4gICAgICAuZmluZENhdGFsb2coXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmllbGRzOiBbJ2lkJ10sXHJcbiAgICAgICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgICAgIHB1Ymxpc2hlZDogeyBvcGVyYXRvcjogV2hlcmUuRVFVQUxTLCB2YWx1ZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgZGlzdGluY3Q6IFsnYnJhbmQnXSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICBvcHRpb25zLm1haW5HZW5kZXIsXHJcbiAgICAgIClcclxuICAgICAgLnRoZW4oKHJlc3VsdCkgPT4gcmVzdWx0LmRpc3RpbmN0LmJyYW5kKVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { set, Where } from '@infrab4a/connect';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class CatalogFilterHelper {
|
|
5
|
-
buildFilterQuery(filters) {
|
|
6
|
-
const filterQuery = {};
|
|
7
|
-
if (filters.clubDiscount?.length) {
|
|
8
|
-
set(filterQuery, 'price.subscriberDiscountPercentage', {
|
|
9
|
-
operator: Where.IN,
|
|
10
|
-
value: filters.clubDiscount,
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
if (filters.brands?.length) {
|
|
14
|
-
filterQuery.brand = { operator: Where.IN, value: filters.brands };
|
|
15
|
-
}
|
|
16
|
-
if (filters.gender?.length) {
|
|
17
|
-
filterQuery.gender = { operator: Where.IN, value: filters.gender };
|
|
18
|
-
}
|
|
19
|
-
if (filters.prices?.min || filters.prices?.max) {
|
|
20
|
-
const priceField = filters.prices.subscriberPrice ? 'price.subscriberPrice' : 'price.price';
|
|
21
|
-
const priceFilters = [
|
|
22
|
-
...(filters.prices.min ? [{ operator: Where.GTE, value: Math.floor(filters.prices.min) }] : []),
|
|
23
|
-
...(filters.prices.max ? [{ operator: Where.LTE, value: Math.ceil(filters.prices.max) }] : []),
|
|
24
|
-
];
|
|
25
|
-
set(filterQuery, priceField, priceFilters);
|
|
26
|
-
}
|
|
27
|
-
if (filters.rate) {
|
|
28
|
-
filterQuery.rate = { operator: Where.GTE, value: filters.rate };
|
|
29
|
-
}
|
|
30
|
-
if (filters.tags?.length) {
|
|
31
|
-
filterQuery.tagsProfile = { operator: Where.LIKE, value: filters.tags };
|
|
32
|
-
}
|
|
33
|
-
if (filters.customOptions?.length) {
|
|
34
|
-
filterQuery.filters = { operator: Where.LIKE, value: filters.customOptions };
|
|
35
|
-
}
|
|
36
|
-
return filterQuery;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
CatalogFilterHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogFilterHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
-
CatalogFilterHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogFilterHelper });
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogFilterHelper, decorators: [{
|
|
42
|
-
type: Injectable
|
|
43
|
-
}] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1maWx0ZXIuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2hlbHBlcnMvY2F0YWxvZy1maWx0ZXIuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFtQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7O0FBSy9FLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsZ0JBQWdCLENBQUMsT0FBdUI7UUFDdEMsTUFBTSxXQUFXLEdBQUcsRUFBcUMsQ0FBQTtRQUV6RCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFO1lBQ2hDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsb0NBQW9DLEVBQUU7Z0JBQ3JELFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDbEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxZQUFZO2FBQzVCLENBQUMsQ0FBQTtTQUNIO1FBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRTtZQUMxQixXQUFXLENBQUMsS0FBSyxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQTtTQUNsRTtRQUVELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUU7WUFDMUIsV0FBVyxDQUFDLE1BQU0sR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUE7U0FDbkU7UUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQzlDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFBO1lBQzNGLE1BQU0sWUFBWSxHQUFHO2dCQUNuQixHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMvRixHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQy9GLENBQUE7WUFFRCxHQUFHLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQTtTQUMzQztRQUVELElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtZQUNoQixXQUFXLENBQUMsSUFBSSxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtTQUNoRTtRQUVELElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDeEIsV0FBVyxDQUFDLFdBQVcsR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7U0FDeEU7UUFFRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFO1lBQ2pDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFBO1NBQzdFO1FBRUQsT0FBTyxXQUFXLENBQUE7SUFDcEIsQ0FBQzs7Z0hBMUNVLG1CQUFtQjtvSEFBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgUHJvZHVjdCwgUmVwb3NpdG9yeUZpbmRGaWVsdGVycywgc2V0LCBXaGVyZSB9IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5cclxuaW1wb3J0IHsgQ2F0YWxvZ0ZpbHRlcnMgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ0ZpbHRlckhlbHBlciB7XHJcbiAgYnVpbGRGaWx0ZXJRdWVyeShmaWx0ZXJzOiBDYXRhbG9nRmlsdGVycyk6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8UHJvZHVjdD4ge1xyXG4gICAgY29uc3QgZmlsdGVyUXVlcnkgPSB7fSBhcyBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFByb2R1Y3Q+XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuY2x1YkRpc2NvdW50Py5sZW5ndGgpIHtcclxuICAgICAgc2V0KGZpbHRlclF1ZXJ5LCAncHJpY2Uuc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZScsIHtcclxuICAgICAgICBvcGVyYXRvcjogV2hlcmUuSU4sXHJcbiAgICAgICAgdmFsdWU6IGZpbHRlcnMuY2x1YkRpc2NvdW50LFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmJyYW5kcz8ubGVuZ3RoKSB7XHJcbiAgICAgIGZpbHRlclF1ZXJ5LmJyYW5kID0geyBvcGVyYXRvcjogV2hlcmUuSU4sIHZhbHVlOiBmaWx0ZXJzLmJyYW5kcyB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZ2VuZGVyPy5sZW5ndGgpIHtcclxuICAgICAgZmlsdGVyUXVlcnkuZ2VuZGVyID0geyBvcGVyYXRvcjogV2hlcmUuSU4sIHZhbHVlOiBmaWx0ZXJzLmdlbmRlciB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMucHJpY2VzPy5taW4gfHwgZmlsdGVycy5wcmljZXM/Lm1heCkge1xyXG4gICAgICBjb25zdCBwcmljZUZpZWxkID0gZmlsdGVycy5wcmljZXMuc3Vic2NyaWJlclByaWNlID8gJ3ByaWNlLnN1YnNjcmliZXJQcmljZScgOiAncHJpY2UucHJpY2UnXHJcbiAgICAgIGNvbnN0IHByaWNlRmlsdGVycyA9IFtcclxuICAgICAgICAuLi4oZmlsdGVycy5wcmljZXMubWluID8gW3sgb3BlcmF0b3I6IFdoZXJlLkdURSwgdmFsdWU6IE1hdGguZmxvb3IoZmlsdGVycy5wcmljZXMubWluKSB9XSA6IFtdKSxcclxuICAgICAgICAuLi4oZmlsdGVycy5wcmljZXMubWF4ID8gW3sgb3BlcmF0b3I6IFdoZXJlLkxURSwgdmFsdWU6IE1hdGguY2VpbChmaWx0ZXJzLnByaWNlcy5tYXgpIH1dIDogW10pLFxyXG4gICAgICBdXHJcblxyXG4gICAgICBzZXQoZmlsdGVyUXVlcnksIHByaWNlRmllbGQsIHByaWNlRmlsdGVycylcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsdGVycy5yYXRlKSB7XHJcbiAgICAgIGZpbHRlclF1ZXJ5LnJhdGUgPSB7IG9wZXJhdG9yOiBXaGVyZS5HVEUsIHZhbHVlOiBmaWx0ZXJzLnJhdGUgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLnRhZ3M/Lmxlbmd0aCkge1xyXG4gICAgICBmaWx0ZXJRdWVyeS50YWdzUHJvZmlsZSA9IHsgb3BlcmF0b3I6IFdoZXJlLkxJS0UsIHZhbHVlOiBmaWx0ZXJzLnRhZ3MgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmN1c3RvbU9wdGlvbnM/Lmxlbmd0aCkge1xyXG4gICAgICBmaWx0ZXJRdWVyeS5maWx0ZXJzID0geyBvcGVyYXRvcjogV2hlcmUuTElLRSwgdmFsdWU6IGZpbHRlcnMuY3VzdG9tT3B0aW9ucyB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZpbHRlclF1ZXJ5XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class CatalogSortHelper {
|
|
4
|
-
buildSortQuery(sort) {
|
|
5
|
-
if (!sort || sort === 'most-relevant')
|
|
6
|
-
return {};
|
|
7
|
-
switch (sort) {
|
|
8
|
-
case 'best-sellers':
|
|
9
|
-
return {
|
|
10
|
-
shoppingCount: 'desc',
|
|
11
|
-
rate: 'desc',
|
|
12
|
-
stock: 'desc',
|
|
13
|
-
name: 'asc',
|
|
14
|
-
};
|
|
15
|
-
case 'biggest-price':
|
|
16
|
-
return {
|
|
17
|
-
subscriberPrice: 'desc',
|
|
18
|
-
rate: 'desc',
|
|
19
|
-
shoppingCount: 'desc',
|
|
20
|
-
};
|
|
21
|
-
case 'lowest-price':
|
|
22
|
-
return {
|
|
23
|
-
subscriberPrice: 'asc',
|
|
24
|
-
rate: 'desc',
|
|
25
|
-
shoppingCount: 'desc',
|
|
26
|
-
};
|
|
27
|
-
case 'best-rating':
|
|
28
|
-
return {
|
|
29
|
-
rate: 'desc',
|
|
30
|
-
shoppingCount: 'desc',
|
|
31
|
-
stock: 'desc',
|
|
32
|
-
name: 'asc',
|
|
33
|
-
};
|
|
34
|
-
case 'news':
|
|
35
|
-
return { createdAt: 'desc' };
|
|
36
|
-
case 'biggest-discount':
|
|
37
|
-
return {
|
|
38
|
-
subscriberDiscountPercentage: 'desc',
|
|
39
|
-
rate: 'desc',
|
|
40
|
-
shoppingCount: 'desc',
|
|
41
|
-
};
|
|
42
|
-
default:
|
|
43
|
-
return {};
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
CatalogSortHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogSortHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
48
|
-
CatalogSortHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogSortHelper });
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogSortHelper, decorators: [{
|
|
50
|
-
type: Injectable
|
|
51
|
-
}] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1zb3J0LmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9oZWxwZXJzL2NhdGFsb2ctc29ydC5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7QUFJMUMsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixjQUFjLENBQUMsSUFBWTtRQUN6QixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksS0FBSyxlQUFlO1lBQUUsT0FBTyxFQUFFLENBQUE7UUFFaEQsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLGNBQWM7Z0JBQ2pCLE9BQU87b0JBQ0wsYUFBYSxFQUFFLE1BQU07b0JBQ3JCLElBQUksRUFBRSxNQUFNO29CQUNaLEtBQUssRUFBRSxNQUFNO29CQUNiLElBQUksRUFBRSxLQUFLO2lCQUNaLENBQUE7WUFFSCxLQUFLLGVBQWU7Z0JBQ2xCLE9BQU87b0JBQ0wsZUFBZSxFQUFFLE1BQU07b0JBQ3ZCLElBQUksRUFBRSxNQUFNO29CQUNaLGFBQWEsRUFBRSxNQUFNO2lCQUNmLENBQUE7WUFFVixLQUFLLGNBQWM7Z0JBQ2pCLE9BQU87b0JBQ0wsZUFBZSxFQUFFLEtBQUs7b0JBQ3RCLElBQUksRUFBRSxNQUFNO29CQUNaLGFBQWEsRUFBRSxNQUFNO2lCQUNmLENBQUE7WUFFVixLQUFLLGFBQWE7Z0JBQ2hCLE9BQU87b0JBQ0wsSUFBSSxFQUFFLE1BQU07b0JBQ1osYUFBYSxFQUFFLE1BQU07b0JBQ3JCLEtBQUssRUFBRSxNQUFNO29CQUNiLElBQUksRUFBRSxLQUFLO2lCQUNaLENBQUE7WUFFSCxLQUFLLE1BQU07Z0JBQ1QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQTtZQUU5QixLQUFLLGtCQUFrQjtnQkFDckIsT0FBTztvQkFDTCw0QkFBNEIsRUFBRSxNQUFNO29CQUNwQyxJQUFJLEVBQUUsTUFBTTtvQkFDWixhQUFhLEVBQUUsTUFBTTtpQkFDZixDQUFBO1lBRVY7Z0JBQ0UsT0FBTyxFQUFFLENBQUE7U0FDWjtJQUNILENBQUM7OzhHQWhEVSxpQkFBaUI7a0hBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IFByb2R1Y3QsIFJlcG9zaXRvcnlPcmRlckJ5IH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYXRhbG9nU29ydEhlbHBlciB7XHJcbiAgYnVpbGRTb3J0UXVlcnkoc29ydDogc3RyaW5nKTogUmVwb3NpdG9yeU9yZGVyQnk8UHJvZHVjdD4ge1xyXG4gICAgaWYgKCFzb3J0IHx8IHNvcnQgPT09ICdtb3N0LXJlbGV2YW50JykgcmV0dXJuIHt9XHJcblxyXG4gICAgc3dpdGNoIChzb3J0KSB7XHJcbiAgICAgIGNhc2UgJ2Jlc3Qtc2VsbGVycyc6XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHNob3BwaW5nQ291bnQ6ICdkZXNjJyxcclxuICAgICAgICAgIHJhdGU6ICdkZXNjJyxcclxuICAgICAgICAgIHN0b2NrOiAnZGVzYycsXHJcbiAgICAgICAgICBuYW1lOiAnYXNjJyxcclxuICAgICAgICB9XHJcblxyXG4gICAgICBjYXNlICdiaWdnZXN0LXByaWNlJzpcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgc3Vic2NyaWJlclByaWNlOiAnZGVzYycsXHJcbiAgICAgICAgICByYXRlOiAnZGVzYycsXHJcbiAgICAgICAgICBzaG9wcGluZ0NvdW50OiAnZGVzYycsXHJcbiAgICAgICAgfSBhcyBhbnlcclxuXHJcbiAgICAgIGNhc2UgJ2xvd2VzdC1wcmljZSc6XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHN1YnNjcmliZXJQcmljZTogJ2FzYycsXHJcbiAgICAgICAgICByYXRlOiAnZGVzYycsXHJcbiAgICAgICAgICBzaG9wcGluZ0NvdW50OiAnZGVzYycsXHJcbiAgICAgICAgfSBhcyBhbnlcclxuXHJcbiAgICAgIGNhc2UgJ2Jlc3QtcmF0aW5nJzpcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgcmF0ZTogJ2Rlc2MnLFxyXG4gICAgICAgICAgc2hvcHBpbmdDb3VudDogJ2Rlc2MnLFxyXG4gICAgICAgICAgc3RvY2s6ICdkZXNjJyxcclxuICAgICAgICAgIG5hbWU6ICdhc2MnLFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIGNhc2UgJ25ld3MnOlxyXG4gICAgICAgIHJldHVybiB7IGNyZWF0ZWRBdDogJ2Rlc2MnIH1cclxuXHJcbiAgICAgIGNhc2UgJ2JpZ2dlc3QtZGlzY291bnQnOlxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBzdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlOiAnZGVzYycsXHJcbiAgICAgICAgICByYXRlOiAnZGVzYycsXHJcbiAgICAgICAgICBzaG9wcGluZ0NvdW50OiAnZGVzYycsXHJcbiAgICAgICAgfSBhcyBhbnlcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHt9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { CatalogOperationsFacade } from './catalog-operations.facade';
|
|
3
|
-
import { ProductManagementFacade } from './product-management.facade';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./catalog-operations.facade";
|
|
6
|
-
import * as i2 from "./product-management.facade";
|
|
7
|
-
export class CatalogHelpersService {
|
|
8
|
-
constructor(catalogOperations, productManagement) {
|
|
9
|
-
this.catalogOperations = catalogOperations;
|
|
10
|
-
this.productManagement = productManagement;
|
|
11
|
-
}
|
|
12
|
-
getFilterHelper() {
|
|
13
|
-
return this.catalogOperations.getFilterHelper();
|
|
14
|
-
}
|
|
15
|
-
getSortHelper() {
|
|
16
|
-
return this.catalogOperations.getSortHelper();
|
|
17
|
-
}
|
|
18
|
-
getFieldsHelper() {
|
|
19
|
-
return this.catalogOperations.getFieldsHelper();
|
|
20
|
-
}
|
|
21
|
-
getBrandManager() {
|
|
22
|
-
return this.productManagement.getBrandManager();
|
|
23
|
-
}
|
|
24
|
-
getProductServices() {
|
|
25
|
-
return this.productManagement.getProductServices();
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
CatalogHelpersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogHelpersService, deps: [{ token: i1.CatalogOperationsFacade }, { token: i2.ProductManagementFacade }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
29
|
-
CatalogHelpersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogHelpersService });
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogHelpersService, decorators: [{
|
|
31
|
-
type: Injectable
|
|
32
|
-
}], ctorParameters: function () { return [{ type: i1.CatalogOperationsFacade }, { type: i2.ProductManagementFacade }]; } });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1oZWxwZXJzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvc2VydmljZXMvY2F0YWxvZy1oZWxwZXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUsxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTs7OztBQUdyRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQ21CLGlCQUEwQyxFQUMxQyxpQkFBMEM7UUFEMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5QjtRQUMxQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXlCO0lBQzFELENBQUM7SUFFSixlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDakQsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMvQyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQ2pELENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDakQsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO0lBQ3BELENBQUM7O2tIQXhCVSxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcblxyXG5pbXBvcnQgeyBQcm9kdWN0U2VydmljZXNGYWNhZGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJ1xyXG5pbXBvcnQgeyBCcmFuZE1hbmFnZXJIZWxwZXIsIENhdGFsb2dGaWx0ZXJIZWxwZXIsIENhdGFsb2dTb3J0SGVscGVyLCBQcm9kdWN0RmllbGRzSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycydcclxuXHJcbmltcG9ydCB7IENhdGFsb2dPcGVyYXRpb25zRmFjYWRlIH0gZnJvbSAnLi9jYXRhbG9nLW9wZXJhdGlvbnMuZmFjYWRlJ1xyXG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlbWVudEZhY2FkZSB9IGZyb20gJy4vcHJvZHVjdC1tYW5hZ2VtZW50LmZhY2FkZSdcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENhdGFsb2dIZWxwZXJzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhdGFsb2dPcGVyYXRpb25zOiBDYXRhbG9nT3BlcmF0aW9uc0ZhY2FkZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdE1hbmFnZW1lbnQ6IFByb2R1Y3RNYW5hZ2VtZW50RmFjYWRlLFxyXG4gICkge31cclxuXHJcbiAgZ2V0RmlsdGVySGVscGVyKCk6IENhdGFsb2dGaWx0ZXJIZWxwZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0YWxvZ09wZXJhdGlvbnMuZ2V0RmlsdGVySGVscGVyKClcclxuICB9XHJcblxyXG4gIGdldFNvcnRIZWxwZXIoKTogQ2F0YWxvZ1NvcnRIZWxwZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0YWxvZ09wZXJhdGlvbnMuZ2V0U29ydEhlbHBlcigpXHJcbiAgfVxyXG5cclxuICBnZXRGaWVsZHNIZWxwZXIoKTogUHJvZHVjdEZpZWxkc0hlbHBlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXRhbG9nT3BlcmF0aW9ucy5nZXRGaWVsZHNIZWxwZXIoKVxyXG4gIH1cclxuXHJcbiAgZ2V0QnJhbmRNYW5hZ2VyKCk6IEJyYW5kTWFuYWdlckhlbHBlciB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9kdWN0TWFuYWdlbWVudC5nZXRCcmFuZE1hbmFnZXIoKVxyXG4gIH1cclxuXHJcbiAgZ2V0UHJvZHVjdFNlcnZpY2VzKCk6IFByb2R1Y3RTZXJ2aWNlc0ZhY2FkZSB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9kdWN0TWFuYWdlbWVudC5nZXRQcm9kdWN0U2VydmljZXMoKVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { ProductCatalogFacade } from '../facades';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../facades";
|
|
5
|
-
export class CatalogRepositoryService {
|
|
6
|
-
constructor(productCatalog, productServices) {
|
|
7
|
-
this.productCatalog = productCatalog;
|
|
8
|
-
this.productServices = productServices;
|
|
9
|
-
}
|
|
10
|
-
getProductCatalog() {
|
|
11
|
-
return this.productCatalog;
|
|
12
|
-
}
|
|
13
|
-
getProductServices() {
|
|
14
|
-
return this.productServices;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
CatalogRepositoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogRepositoryService, deps: [{ token: i1.ProductCatalogFacade }, { token: 'ProductServicesFacade' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
18
|
-
CatalogRepositoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogRepositoryService });
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogRepositoryService, decorators: [{
|
|
20
|
-
type: Injectable
|
|
21
|
-
}], ctorParameters: function () { return [{ type: i1.ProductCatalogFacade }, { type: undefined, decorators: [{
|
|
22
|
-
type: Inject,
|
|
23
|
-
args: ['ProductServicesFacade']
|
|
24
|
-
}] }]; } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1yZXBvc2l0b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvc2VydmljZXMvY2F0YWxvZy1yZXBvc2l0b3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFBOzs7QUFHakQsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNtQixjQUFvQyxFQUNILGVBQXNDO1FBRHZFLG1CQUFjLEdBQWQsY0FBYyxDQUFzQjtRQUNILG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtJQUN2RixDQUFDO0lBRUosaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFBO0lBQzdCLENBQUM7O3FIQVpVLHdCQUF3QixzREFHekIsdUJBQXVCO3lIQUh0Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVTs7MEJBSU4sTUFBTTsyQkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5cclxuaW1wb3J0IHsgUHJvZHVjdFNlcnZpY2VzRmFjYWRlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcydcclxuaW1wb3J0IHsgUHJvZHVjdENhdGFsb2dGYWNhZGUgfSBmcm9tICcuLi9mYWNhZGVzJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ1JlcG9zaXRvcnlTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdENhdGFsb2c6IFByb2R1Y3RDYXRhbG9nRmFjYWRlLFxyXG4gICAgQEluamVjdCgnUHJvZHVjdFNlcnZpY2VzRmFjYWRlJykgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0U2VydmljZXM6IFByb2R1Y3RTZXJ2aWNlc0ZhY2FkZSxcclxuICApIHt9XHJcblxyXG4gIGdldFByb2R1Y3RDYXRhbG9nKCk6IFByb2R1Y3RDYXRhbG9nRmFjYWRlIHtcclxuICAgIHJldHVybiB0aGlzLnByb2R1Y3RDYXRhbG9nXHJcbiAgfVxyXG5cclxuICBnZXRQcm9kdWN0U2VydmljZXMoKTogUHJvZHVjdFNlcnZpY2VzRmFjYWRlIHtcclxuICAgIHJldHVybiB0aGlzLnByb2R1Y3RTZXJ2aWNlc1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { BrandManagerHelper } from '../helpers';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../helpers";
|
|
5
|
-
export class ProductManagementFacade {
|
|
6
|
-
constructor(brandManager, productServices) {
|
|
7
|
-
this.brandManager = brandManager;
|
|
8
|
-
this.productServices = productServices;
|
|
9
|
-
}
|
|
10
|
-
getBrandManager() {
|
|
11
|
-
return this.brandManager;
|
|
12
|
-
}
|
|
13
|
-
getProductServices() {
|
|
14
|
-
return this.productServices;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
ProductManagementFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ProductManagementFacade, deps: [{ token: i1.BrandManagerHelper }, { token: 'ProductServicesFacade' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
18
|
-
ProductManagementFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ProductManagementFacade });
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ProductManagementFacade, decorators: [{
|
|
20
|
-
type: Injectable
|
|
21
|
-
}], ctorParameters: function () { return [{ type: i1.BrandManagerHelper }, { type: undefined, decorators: [{
|
|
22
|
-
type: Inject,
|
|
23
|
-
args: ['ProductServicesFacade']
|
|
24
|
-
}] }]; } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2VtZW50LmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9zZXJ2aWNlcy9wcm9kdWN0LW1hbmFnZW1lbnQuZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBR2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQTs7O0FBRy9DLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFDbUIsWUFBZ0MsRUFDQyxlQUFzQztRQUR2RSxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDQyxvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7SUFDdkYsQ0FBQztJQUVKLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUE7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUE7SUFDN0IsQ0FBQzs7b0hBWlUsdUJBQXVCLG9EQUd4Qix1QkFBdUI7d0hBSHRCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOzswQkFJTixNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcblxyXG5pbXBvcnQgeyBQcm9kdWN0U2VydmljZXNGYWNhZGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJ1xyXG5pbXBvcnQgeyBCcmFuZE1hbmFnZXJIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdE1hbmFnZW1lbnRGYWNhZGUge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBicmFuZE1hbmFnZXI6IEJyYW5kTWFuYWdlckhlbHBlcixcclxuICAgIEBJbmplY3QoJ1Byb2R1Y3RTZXJ2aWNlc0ZhY2FkZScpIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFNlcnZpY2VzOiBQcm9kdWN0U2VydmljZXNGYWNhZGUsXHJcbiAgKSB7fVxyXG5cclxuICBnZXRCcmFuZE1hbmFnZXIoKTogQnJhbmRNYW5hZ2VySGVscGVyIHtcclxuICAgIHJldHVybiB0aGlzLmJyYW5kTWFuYWdlclxyXG4gIH1cclxuXHJcbiAgZ2V0UHJvZHVjdFNlcnZpY2VzKCk6IFByb2R1Y3RTZXJ2aWNlc0ZhY2FkZSB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9kdWN0U2VydmljZXNcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { isEmpty, Shops, Where } from '@infrab4a/connect';
|
|
3
|
-
import { CatalogHelpersService, CatalogRepositoryService } from '../services';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../services";
|
|
6
|
-
export class CategorySearchStrategy {
|
|
7
|
-
constructor(repositoryService, helpersService) {
|
|
8
|
-
this.repositoryService = repositoryService;
|
|
9
|
-
this.helpersService = helpersService;
|
|
10
|
-
}
|
|
11
|
-
async search(params, shop, optionsCache) {
|
|
12
|
-
const { category, filters, limits, sort, mainGender } = params;
|
|
13
|
-
if (!category) {
|
|
14
|
-
throw new Error('Category is required for CategorySearchStrategy');
|
|
15
|
-
}
|
|
16
|
-
const fields = this.helpersService.getFieldsHelper().getStandardFields();
|
|
17
|
-
if (sort === 'most-relevant') {
|
|
18
|
-
return this.searchWithMostRelevant({
|
|
19
|
-
category,
|
|
20
|
-
filters,
|
|
21
|
-
limits,
|
|
22
|
-
shop,
|
|
23
|
-
mainGender,
|
|
24
|
-
optionsCache,
|
|
25
|
-
fields,
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
return this.searchDefault({
|
|
29
|
-
category,
|
|
30
|
-
filters,
|
|
31
|
-
limits,
|
|
32
|
-
shop,
|
|
33
|
-
mainGender,
|
|
34
|
-
sort,
|
|
35
|
-
optionsCache,
|
|
36
|
-
fields,
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
async searchWithMostRelevant(params) {
|
|
40
|
-
const { category, filters, shop, optionsCache } = params;
|
|
41
|
-
const mostRelevant = category.isWishlist ? [] : category.getMostRelevantByShop(shop);
|
|
42
|
-
const productsIds = await this.getProductIds(category, filters, optionsCache);
|
|
43
|
-
return this.findAndSortByMostRelevant({
|
|
44
|
-
mostRelevants: mostRelevant,
|
|
45
|
-
productIds: productsIds,
|
|
46
|
-
filters: params.filters,
|
|
47
|
-
limits: params.limits,
|
|
48
|
-
shop: params.shop,
|
|
49
|
-
mainGender: params.mainGender,
|
|
50
|
-
optionsCache: params.optionsCache,
|
|
51
|
-
fields: params.fields,
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
async searchDefault(params) {
|
|
55
|
-
const { category, filters, limits, sort, optionsCache, fields } = params;
|
|
56
|
-
const productCatalog = this.repositoryService.getProductCatalog();
|
|
57
|
-
const filterHelper = this.helpersService.getFilterHelper();
|
|
58
|
-
const sortHelper = this.helpersService.getSortHelper();
|
|
59
|
-
const repoParams = {
|
|
60
|
-
fields,
|
|
61
|
-
filters: {
|
|
62
|
-
...(await productCatalog.categoryStructureAdapter.buildProductFilterByCategory(category)),
|
|
63
|
-
...filterHelper.buildFilterQuery(filters || {}),
|
|
64
|
-
},
|
|
65
|
-
...(sort ? { orderBy: sortHelper.buildSortQuery(sort) } : {}),
|
|
66
|
-
limits,
|
|
67
|
-
options: {
|
|
68
|
-
minimal: ['price'],
|
|
69
|
-
maximum: ['price'],
|
|
70
|
-
distinct: ['brand'],
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
return productCatalog.productRepository.findCatalog(repoParams, null, optionsCache);
|
|
74
|
-
}
|
|
75
|
-
async getProductIds(category, filters, optionsCache) {
|
|
76
|
-
const productCatalog = this.repositoryService.getProductCatalog();
|
|
77
|
-
const filterHelper = this.helpersService.getFilterHelper();
|
|
78
|
-
return productCatalog.productRepository
|
|
79
|
-
.findCatalog({
|
|
80
|
-
fields: ['id'],
|
|
81
|
-
filters: {
|
|
82
|
-
...(await productCatalog.categoryStructureAdapter.buildProductFilterByCategory(category)),
|
|
83
|
-
...filterHelper.buildFilterQuery(filters || {}),
|
|
84
|
-
},
|
|
85
|
-
}, undefined, optionsCache)
|
|
86
|
-
.then((products) => products.data.map((product) => product.id));
|
|
87
|
-
}
|
|
88
|
-
async findAndSortByMostRelevant(params) {
|
|
89
|
-
const { mostRelevants, productIds, filters, shop, mainGender, optionsCache, fields, limits } = params;
|
|
90
|
-
const productCatalog = this.repositoryService.getProductCatalog();
|
|
91
|
-
const filterHelper = this.helpersService.getFilterHelper();
|
|
92
|
-
const sortHelper = this.helpersService.getSortHelper();
|
|
93
|
-
const mostRelevantProductsIds = [...new Set(mostRelevants.concat(productIds))];
|
|
94
|
-
const totalResult = await productCatalog.productRepository.findCatalog({
|
|
95
|
-
fields,
|
|
96
|
-
filters: {
|
|
97
|
-
id: { operator: Where.IN, value: mostRelevantProductsIds },
|
|
98
|
-
...filterHelper.buildFilterQuery(filters || {}),
|
|
99
|
-
},
|
|
100
|
-
orderBy: sortHelper.buildSortQuery('best-sellers'),
|
|
101
|
-
options: {
|
|
102
|
-
minimal: ['price'],
|
|
103
|
-
maximum: ['price'],
|
|
104
|
-
...(isEmpty(filters?.brands) ? { distinct: ['brand'] } : {}),
|
|
105
|
-
},
|
|
106
|
-
}, mainGender || (shop === Shops.MENSMARKET ? 'male' : 'female'), optionsCache);
|
|
107
|
-
return this.sortProductsByRelevance(totalResult, mostRelevants, limits);
|
|
108
|
-
}
|
|
109
|
-
sortProductsByRelevance(totalResult, mostRelevants, limits) {
|
|
110
|
-
const mostRelevantWithoutStock = totalResult.data.filter((product) => mostRelevants.includes(product.id) && product.stock.quantity <= 0);
|
|
111
|
-
const firstProducts = totalResult.data
|
|
112
|
-
.filter((product) => mostRelevants.includes(product.id) && product.stock.quantity > 0)
|
|
113
|
-
.sort((a, b) => mostRelevants.indexOf(a.id) - mostRelevants.indexOf(b.id));
|
|
114
|
-
const lastProducts = totalResult.data
|
|
115
|
-
.filter((product) => !mostRelevants.includes(product.id))
|
|
116
|
-
.concat(mostRelevantWithoutStock);
|
|
117
|
-
const categoryMostRelevants = firstProducts.concat(lastProducts);
|
|
118
|
-
const resultFinal = categoryMostRelevants.slice(limits.offset, limits.offset + limits.limit);
|
|
119
|
-
return {
|
|
120
|
-
data: resultFinal,
|
|
121
|
-
count: totalResult.count,
|
|
122
|
-
maximum: totalResult.maximum,
|
|
123
|
-
minimal: totalResult.minimal,
|
|
124
|
-
distinct: totalResult.distinct,
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
CategorySearchStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategorySearchStrategy, deps: [{ token: i1.CatalogRepositoryService }, { token: i1.CatalogHelpersService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
129
|
-
CategorySearchStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategorySearchStrategy });
|
|
130
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategorySearchStrategy, decorators: [{
|
|
131
|
-
type: Injectable
|
|
132
|
-
}], ctorParameters: function () { return [{ type: i1.CatalogRepositoryService }, { type: i1.CatalogHelpersService }]; } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktc2VhcmNoLnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL3N0cmF0ZWdpZXMvY2F0ZWdvcnktc2VhcmNoLnN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBeUQsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBR2hILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTs7O0FBUzdFLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFDbUIsaUJBQTJDLEVBQzNDLGNBQXFDO1FBRHJDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0MsbUJBQWMsR0FBZCxjQUFjLENBQXVCO0lBQ3JELENBQUM7SUFFSixLQUFLLENBQUMsTUFBTSxDQUNWLE1BQTJCLEVBQzNCLElBQVcsRUFDWCxZQUFpRDtRQUVqRCxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQTtRQUU5RCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFBO1NBQ25FO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBRXhFLElBQUksSUFBSSxLQUFLLGVBQWUsRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztnQkFDakMsUUFBUTtnQkFDUixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sSUFBSTtnQkFDSixVQUFVO2dCQUNWLFlB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RSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDdEYsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUk7YUFDbEMsTUFBTSxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzdELE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1FBQ25DLE1BQU0scUJBQXFCLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUNoRSxNQUFNLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUU1RixPQUFPO1lBQ0wsSUFBSSxFQUFFLFdBQVc7WUFDakIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO1lBQ3hCLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTztZQUM1QixPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU87WUFDNUIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxRQUFRO1NBQy9CLENBQUE7SUFDSCxDQUFDOzttSEF6SlUsc0JBQXNCO3VIQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBpc0VtcHR5LCBQcm9kdWN0LCBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zLCBSZXBvc2l0b3J5RmluZFJlc3VsdCwgU2hvcHMsIFdoZXJlIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcblxyXG5pbXBvcnQgeyBDYXRhbG9nU2VhcmNoUGFyYW1zLCBDYXRhbG9nU2VhcmNoU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJ1xyXG5pbXBvcnQgeyBDYXRhbG9nSGVscGVyc1NlcnZpY2UsIENhdGFsb2dSZXBvc2l0b3J5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJ1xyXG5cclxuaW1wb3J0IHtcclxuICBGaW5kQW5kU29ydEJ5TW9zdFJlbGV2YW50UGFyYW1zLFxyXG4gIFNlYXJjaERlZmF1bHRQYXJhbXMsXHJcbiAgU2VhcmNoV2l0aE1vc3RSZWxldmFudFBhcmFtcyxcclxufSBmcm9tICcuL3R5cGVzL3N0cmF0ZWd5LXBhcmFtcy50eXBlJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlTZWFyY2hTdHJhdGVneSBpbXBsZW1lbnRzIENhdGFsb2dTZWFyY2hTdHJhdGVneSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcG9zaXRvcnlTZXJ2aWNlOiBDYXRhbG9nUmVwb3NpdG9yeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhlbHBlcnNTZXJ2aWNlOiBDYXRhbG9nSGVscGVyc1NlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBhc3luYyBzZWFyY2goXHJcbiAgICBwYXJhbXM6IENhdGFsb2dTZWFyY2hQYXJhbXMsXHJcbiAgICBzaG9wOiBTaG9wcyxcclxuICAgIG9wdGlvbnNDYWNoZT86IHsgY2FjaGU/OiBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zIH0sXHJcbiAgKTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZFJlc3VsdDxQcm9kdWN0Pj4ge1xyXG4gICAgY29uc3QgeyBjYXRlZ29yeSwgZmlsdGVycywgbGltaXRzLCBzb3J0LCBtYWluR2VuZGVyIH0gPSBwYXJhbXNcclxuXHJcbiAgICBpZiAoIWNhdGVnb3J5KSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2F0ZWdvcnkgaXMgcmVxdWlyZWQgZm9yIENhdGVnb3J5U2VhcmNoU3RyYXRlZ3knKVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpZWxkcyA9IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0RmllbGRzSGVscGVyKCkuZ2V0U3RhbmRhcmRGaWVsZHMoKVxyXG5cclxuICAgIGlmIChzb3J0ID09PSAnbW9zdC1yZWxldmFudCcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoV2l0aE1vc3RSZWxldmFudCh7XHJcbiAgICAgICAgY2F0ZWdvcnksXHJcbiAgICAgICAgZmlsdGVycyxcclxuICAgICAgICBsaW1pdHMsXHJcbiAgICAgICAgc2hvcCxcclxuICAgICAgICBtYWluR2VuZGVyLFxyXG4gICAgICAgIG9wdGlvbnNDYWNoZSxcclxuICAgICAgICBmaWVsZHMsXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoRGVmYXVsdCh7XHJcbiAgICAgIGNhdGVnb3J5LFxyXG4gICAgICBmaWx0ZXJzLFxyXG4gICAgICBsaW1pdHMsXHJcbiAgICAgIHNob3AsXHJcbiAgICAgIG1haW5HZW5kZXIsXHJcbiAgICAgIHNvcnQsXHJcbiAgICAgIG9wdGlvbnNDYWNoZSxcclxuICAgICAgZmllbGRzLFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgc2VhcmNoV2l0aE1vc3RSZWxldmFudChwYXJhbXM6IFNlYXJjaFdpdGhNb3N0UmVsZXZhbnRQYXJhbXMpIHtcclxuICAgIGNvbnN0IHsgY2F0ZWdvcnksIGZpbHRlcnMsIHNob3AsIG9wdGlvbnNDYWNoZSB9ID0gcGFyYW1zXHJcbiAgICBjb25zdCBtb3N0UmVsZXZhbnQgPSBjYXRlZ29yeS5pc1dpc2hsaXN0ID8gW10gOiBjYXRlZ29yeS5nZXRNb3N0UmVsZXZhbnRCeVNob3Aoc2hvcClcclxuICAgIGNvbnN0IHByb2R1Y3RzSWRzID0gYXdhaXQgdGhpcy5nZXRQcm9kdWN0SWRzKGNhdGVnb3J5LCBmaWx0ZXJzLCBvcHRpb25zQ2FjaGUpXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZmluZEFuZFNvcnRCeU1vc3RSZWxldmFudCh7XHJcbiAgICAgIG1vc3RSZWxldmFudHM6IG1vc3RSZWxldmFudCxcclxuICAgICAgcHJvZHVjdElkczogcHJvZHVjdHNJZHMsXHJcbiAgICAgIGZpbHRlcnM6IHBhcmFtcy5maWx0ZXJzLFxyXG4gICAgICBsaW1pdHM6IHBhcmFtcy5saW1pdHMsXHJcbiAgICAgIHNob3A6IHBhcmFtcy5zaG9wLFxyXG4gICAgICBtYWluR2VuZGVyOiBwYXJhbXMubWFpbkdlbmRlcixcclxuICAgICAgb3B0aW9uc0NhY2hlOiBwYXJhbXMub3B0aW9uc0NhY2hlLFxyXG4gICAgICBmaWVsZHM6IHBhcmFtcy5maWVsZHMsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBzZWFyY2hEZWZhdWx0KHBhcmFtczogU2VhcmNoRGVmYXVsdFBhcmFtcykge1xyXG4gICAgY29uc3QgeyBjYXRlZ29yeSwgZmlsdGVycywgbGltaXRzLCBzb3J0LCBvcHRpb25zQ2FjaGUsIGZpZWxkcyB9ID0gcGFyYW1zXHJcbiAgICBjb25zdCBwcm9kdWN0Q2F0YWxvZyA9IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UuZ2V0UHJvZHVjdENhdGFsb2coKVxyXG4gICAgY29uc3QgZmlsdGVySGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWx0ZXJIZWxwZXIoKVxyXG4gICAgY29uc3Qgc29ydEhlbHBlciA9IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0U29ydEhlbHBlcigpXHJcblxyXG4gICAgY29uc3QgcmVwb1BhcmFtcyA9IHtcclxuICAgICAgZmllbGRzLFxyXG4gICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgLi4uKGF3YWl0IHByb2R1Y3RDYXRhbG9nLmNhdGVnb3J5U3RydWN0dXJlQWRhcHRlci5idWlsZFByb2R1Y3RGaWx0ZXJCeUNhdGVnb3J5KGNhdGVnb3J5KSksXHJcbiAgICAgICAgLi4uZmlsdGVySGVscGVyLmJ1aWxkRmlsdGVyUXVlcnkoZmlsdGVycyB8fCB7fSksXHJcbiAgICAgIH0sXHJcbiAgICAgIC4uLihzb3J0ID8geyBvcmRlckJ5OiBzb3J0SGVscGVyLmJ1aWxkU29ydFF1ZXJ5KHNvcnQpIH0gOiB7fSksXHJcbiAgICAgIGxpbWl0cyxcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIG1pbmltYWw6IFsncHJpY2UnXSxcclxuICAgICAgICBtYXhpbXVtOiBbJ3ByaWNlJ10sXHJcbiAgICAgICAgZGlzdGluY3Q6IFsnYnJhbmQnXSxcclxuICAgICAgfSxcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcHJvZHVjdENhdGFsb2cucHJvZHVjdFJlcG9zaXRvcnkuZmluZENhdGFsb2cocmVwb1BhcmFtcywgbnVsbCwgb3B0aW9uc0NhY2hlKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXRQcm9kdWN0SWRzKGNhdGVnb3J5OiBhbnksIGZpbHRlcnM6IGFueSwgb3B0aW9uc0NhY2hlOiBhbnkpOiBQcm9taXNlPHN0cmluZ1tdPiB7XHJcbiAgICBjb25zdCBwcm9kdWN0Q2F0YWxvZyA9IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UuZ2V0UHJvZHVjdENhdGFsb2coKVxyXG4gICAgY29uc3QgZmlsdGVySGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWx0ZXJIZWxwZXIoKVxyXG5cclxuICAgIHJldHVybiBwcm9kdWN0Q2F0YWxvZy5wcm9kdWN0UmVwb3NpdG9yeVxyXG4gICAgICAuZmluZENhdGFsb2coXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmllbGRzOiBbJ2lkJ10sXHJcbiAgICAgICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgICAgIC4uLihhd2FpdCBwcm9kdWN0Q2F0YWxvZy5jYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIuYnVpbGRQcm9kdWN0RmlsdGVyQnlDYXRlZ29yeShjYXRlZ29yeSkpLFxyXG4gICAgICAgICAgICAuLi5maWx0ZXJIZWxwZXIuYnVpbGRGaWx0ZXJRdWVyeShmaWx0ZXJzIHx8IHt9KSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgb3B0aW9uc0NhY2hlLFxyXG4gICAgICApXHJcbiAgICAgIC50aGVuKChwcm9kdWN0cykgPT4gcHJvZHVjdHMuZGF0YS5tYXAoKHByb2R1Y3QpID0+IHByb2R1Y3QuaWQpKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBmaW5kQW5kU29ydEJ5TW9zdFJlbGV2YW50KFxyXG4gICAgcGFyYW1zOiBGaW5kQW5kU29ydEJ5TW9zdFJlbGV2YW50UGFyYW1zLFxyXG4gICk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8UHJvZHVjdD4+IHtcclxuICAgIGNvbnN0IHsgbW9zdFJlbGV2YW50cywgcHJvZHVjdElkcywgZmlsdGVycywgc2hvcCwgbWFpbkdlbmRlciwgb3B0aW9uc0NhY2hlLCBmaWVsZHMsIGxpbWl0cyB9ID0gcGFyYW1zXHJcbiAgICBjb25zdCBwcm9kdWN0Q2F0YWxvZyA9IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UuZ2V0UHJvZHVjdENhdGFsb2coKVxyXG4gICAgY29uc3QgZmlsdGVySGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWx0ZXJIZWxwZXIoKVxyXG4gICAgY29uc3Qgc29ydEhlbHBlciA9IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0U29ydEhlbHBlcigpXHJcblxyXG4gICAgY29uc3QgbW9zdFJlbGV2YW50UHJvZHVjdHNJZHMgPSBbLi4ubmV3IFNldChtb3N0UmVsZXZhbnRzLmNvbmNhdChwcm9kdWN0SWRzKSldXHJcbiAgICBjb25zdCB0b3RhbFJlc3VsdCA9IGF3YWl0IHByb2R1Y3RDYXRhbG9nLnByb2R1Y3RSZXBvc2l0b3J5LmZpbmRDYXRhbG9nKFxyXG4gICAgICB7XHJcbiAgICAgICAgZmllbGRzLFxyXG4gICAgICAgIGZpbHRlcnM6IHtcclxuICAgICAgICAgIGlkOiB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IG1vc3RSZWxldmFudFByb2R1Y3RzSWRzIH0sXHJcbiAgICAgICAgICAuLi5maWx0ZXJIZWxwZXIuYnVpbGRGaWx0ZXJRdWVyeShmaWx0ZXJzIHx8IHt9KSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9yZGVyQnk6IHNvcnRIZWxwZXIuYnVpbGRTb3J0UXVlcnkoJ2Jlc3Qtc2VsbGVycycpLFxyXG4gICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgIG1pbmltYWw6IFsncHJpY2UnXSxcclxuICAgICAgICAgIG1heGltdW06IFsncHJpY2UnXSxcclxuICAgICAgICAgIC4uLihpc0VtcHR5KGZpbHRlcnM/LmJyYW5kcykgPyB7IGRpc3RpbmN0OiBbJ2JyYW5kJ10gfSA6IHt9KSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBtYWluR2VuZGVyIHx8IChzaG9wID09PSBTaG9wcy5NRU5TTUFSS0VUID8gJ21hbGUnIDogJ2ZlbWFsZScpLFxyXG4gICAgICBvcHRpb25zQ2FjaGUsXHJcbiAgICApXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuc29ydFByb2R1Y3RzQnlSZWxldmFuY2UodG90YWxSZXN1bHQsIG1vc3RSZWxldmFudHMsIGxpbWl0cylcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc29ydFByb2R1Y3RzQnlSZWxldmFuY2UodG90YWxSZXN1bHQ6IGFueSwgbW9zdFJlbGV2YW50czogc3RyaW5nW10sIGxpbWl0czogYW55KSB7XHJcbiAgICBjb25zdCBtb3N0UmVsZXZhbnRXaXRob3V0U3RvY2sgPSB0b3RhbFJlc3VsdC5kYXRhLmZpbHRlcihcclxuICAgICAgKHByb2R1Y3Q6IGFueSkgPT4gbW9zdFJlbGV2YW50cy5pbmNsdWRlcyhwcm9kdWN0LmlkKSAmJiBwcm9kdWN0LnN0b2NrLnF1YW50aXR5IDw9IDAsXHJcbiAgICApXHJcbiAgICBjb25zdCBmaXJzdFByb2R1Y3RzID0gdG90YWxSZXN1bHQuZGF0YVxyXG4gICAgICAuZmlsdGVyKChwcm9kdWN0OiBhbnkpID0+IG1vc3RSZWxldmFudHMuaW5jbHVkZXMocHJvZHVjdC5pZCkgJiYgcHJvZHVjdC5zdG9jay5xdWFudGl0eSA+IDApXHJcbiAgICAgIC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4gbW9zdFJlbGV2YW50cy5pbmRleE9mKGEuaWQpIC0gbW9zdFJlbGV2YW50cy5pbmRleE9mKGIuaWQpKVxyXG4gICAgY29uc3QgbGFzdFByb2R1Y3RzID0gdG90YWxSZXN1bHQuZGF0YVxyXG4gICAgICAuZmlsdGVyKChwcm9kdWN0OiBhbnkpID0+ICFtb3N0UmVsZXZhbnRzLmluY2x1ZGVzKHByb2R1Y3QuaWQpKVxyXG4gICAgICAuY29uY2F0KG1vc3RSZWxldmFudFdpdGhvdXRTdG9jaylcclxuICAgIGNvbnN0IGNhdGVnb3J5TW9zdFJlbGV2YW50cyA9IGZpcnN0UHJvZHVjdHMuY29uY2F0KGxhc3RQcm9kdWN0cylcclxuICAgIGNvbnN0IHJlc3VsdEZpbmFsID0gY2F0ZWdvcnlNb3N0UmVsZXZhbnRzLnNsaWNlKGxpbWl0cy5vZmZzZXQsIGxpbWl0cy5vZmZzZXQgKyBsaW1pdHMubGltaXQpXHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZGF0YTogcmVzdWx0RmluYWwsXHJcbiAgICAgIGNvdW50OiB0b3RhbFJlc3VsdC5jb3VudCxcclxuICAgICAgbWF4aW11bTogdG90YWxSZXN1bHQubWF4aW11bSxcclxuICAgICAgbWluaW1hbDogdG90YWxSZXN1bHQubWluaW1hbCxcclxuICAgICAgZGlzdGluY3Q6IHRvdGFsUmVzdWx0LmRpc3RpbmN0LFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Shops, Where } from '@infrab4a/connect';
|
|
3
|
-
import { CatalogHelpersService, CatalogRepositoryService } from '../services';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../services";
|
|
6
|
-
export class ProfileSearchStrategy {
|
|
7
|
-
constructor(repositoryService, helpersService) {
|
|
8
|
-
this.repositoryService = repositoryService;
|
|
9
|
-
this.helpersService = helpersService;
|
|
10
|
-
}
|
|
11
|
-
async search(params, shop, optionsCache) {
|
|
12
|
-
const { profile, filters, limits, sort, mainGender } = params;
|
|
13
|
-
if (!profile) {
|
|
14
|
-
throw new Error('Profile is required for ProfileSearchStrategy');
|
|
15
|
-
}
|
|
16
|
-
const productCatalog = this.repositoryService.getProductCatalog();
|
|
17
|
-
const filterHelper = this.helpersService.getFilterHelper();
|
|
18
|
-
const sortHelper = this.helpersService.getSortHelper();
|
|
19
|
-
const fieldsHelper = this.helpersService.getFieldsHelper();
|
|
20
|
-
const repoParams = {
|
|
21
|
-
fields: fieldsHelper.getStandardFields(),
|
|
22
|
-
filters: {
|
|
23
|
-
tagsProfile: { operator: Where.LIKE, value: profile },
|
|
24
|
-
...filterHelper.buildFilterQuery(filters || {}),
|
|
25
|
-
},
|
|
26
|
-
...(sort ? { orderBy: sortHelper.buildSortQuery(sort) } : {}),
|
|
27
|
-
limits,
|
|
28
|
-
options: {
|
|
29
|
-
minimal: ['price'],
|
|
30
|
-
maximum: ['price'],
|
|
31
|
-
distinct: ['brand'],
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
return productCatalog.productRepository.findCatalog(repoParams, mainGender || (shop === Shops.MENSMARKET ? 'male' : 'female'), optionsCache);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
ProfileSearchStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ProfileSearchStrategy, deps: [{ token: i1.CatalogRepositoryService }, { token: i1.CatalogHelpersService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
38
|
-
ProfileSearchStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ProfileSearchStrategy });
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ProfileSearchStrategy, decorators: [{
|
|
40
|
-
type: Injectable
|
|
41
|
-
}], ctorParameters: function () { return [{ type: i1.CatalogRepositoryService }, { type: i1.CatalogHelpersService }]; } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1zZWFyY2guc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvc3RyYXRlZ2llcy9wcm9maWxlLXNlYXJjaC5zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBeUQsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBR3ZHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTs7O0FBRzdFLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFDbUIsaUJBQTJDLEVBQzNDLGNBQXFDO1FBRHJDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0MsbUJBQWMsR0FBZCxjQUFjLENBQXVCO0lBQ3JELENBQUM7SUFFSixLQUFLLENBQUMsTUFBTSxDQUNWLE1BQTJCLEVBQzNCLElBQVcsRUFDWCxZQUFpRDtRQUVqRCxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQTtRQUU3RCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFBO1NBQ2pFO1FBRUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLENBQUE7UUFDakUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUMxRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ3RELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFLENBQUE7UUFFMUQsTUFBTSxVQUFVLEdBQUc7WUFDakIsTUFBTSxFQUFFLFlBQVksQ0FBQyxpQkFBaUIsRUFBRTtZQUN4QyxPQUFPLEVBQUU7Z0JBQ1AsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtnQkFDckQsR0FBRyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQzthQUNoRDtZQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdELE1BQU07WUFDTixPQUFPLEVBQUU7Z0JBQ1AsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO2dCQUNsQixPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7Z0JBQ2xCLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQzthQUNwQjtTQUNGLENBQUE7UUFFRCxPQUFPLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQ2pELFVBQVUsRUFDVixVQUFVLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFDN0QsWUFBWSxDQUNiLENBQUE7SUFDSCxDQUFDOztrSEExQ1UscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBQcm9kdWN0LCBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zLCBSZXBvc2l0b3J5RmluZFJlc3VsdCwgU2hvcHMsIFdoZXJlIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcblxyXG5pbXBvcnQgeyBDYXRhbG9nU2VhcmNoUGFyYW1zLCBDYXRhbG9nU2VhcmNoU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJ1xyXG5pbXBvcnQgeyBDYXRhbG9nSGVscGVyc1NlcnZpY2UsIENhdGFsb2dSZXBvc2l0b3J5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUHJvZmlsZVNlYXJjaFN0cmF0ZWd5IGltcGxlbWVudHMgQ2F0YWxvZ1NlYXJjaFN0cmF0ZWd5IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVwb3NpdG9yeVNlcnZpY2U6IENhdGFsb2dSZXBvc2l0b3J5U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGVscGVyc1NlcnZpY2U6IENhdGFsb2dIZWxwZXJzU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIGFzeW5jIHNlYXJjaChcclxuICAgIHBhcmFtczogQ2F0YWxvZ1NlYXJjaFBhcmFtcyxcclxuICAgIHNob3A6IFNob3BzLFxyXG4gICAgb3B0aW9uc0NhY2hlPzogeyBjYWNoZT86IFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMgfSxcclxuICApOiBQcm9taXNlPFJlcG9zaXRvcnlGaW5kUmVzdWx0PFByb2R1Y3Q+PiB7XHJcbiAgICBjb25zdCB7IHByb2ZpbGUsIGZpbHRlcnMsIGxpbWl0cywgc29ydCwgbWFpbkdlbmRlciB9ID0gcGFyYW1zXHJcblxyXG4gICAgaWYgKCFwcm9maWxlKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignUHJvZmlsZSBpcyByZXF1aXJlZCBmb3IgUHJvZmlsZVNlYXJjaFN0cmF0ZWd5JylcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwcm9kdWN0Q2F0YWxvZyA9IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UuZ2V0UHJvZHVjdENhdGFsb2coKVxyXG4gICAgY29uc3QgZmlsdGVySGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWx0ZXJIZWxwZXIoKVxyXG4gICAgY29uc3Qgc29ydEhlbHBlciA9IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0U29ydEhlbHBlcigpXHJcbiAgICBjb25zdCBmaWVsZHNIZWxwZXIgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldEZpZWxkc0hlbHBlcigpXHJcblxyXG4gICAgY29uc3QgcmVwb1BhcmFtcyA9IHtcclxuICAgICAgZmllbGRzOiBmaWVsZHNIZWxwZXIuZ2V0U3RhbmRhcmRGaWVsZHMoKSxcclxuICAgICAgZmlsdGVyczoge1xyXG4gICAgICAgIHRhZ3NQcm9maWxlOiB7IG9wZXJhdG9yOiBXaGVyZS5MSUtFLCB2YWx1ZTogcHJvZmlsZSB9LFxyXG4gICAgICAgIC4uLmZpbHRlckhlbHBlci5idWlsZEZpbHRlclF1ZXJ5KGZpbHRlcnMgfHwge30pLFxyXG4gICAgICB9LFxyXG4gICAgICAuLi4oc29ydCA/IHsgb3JkZXJCeTogc29ydEhlbHBlci5idWlsZFNvcnRRdWVyeShzb3J0KSB9IDoge30pLFxyXG4gICAgICBsaW1pdHMsXHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICBtaW5pbWFsOiBbJ3ByaWNlJ10sXHJcbiAgICAgICAgbWF4aW11bTogWydwcmljZSddLFxyXG4gICAgICAgIGRpc3RpbmN0OiBbJ2JyYW5kJ10sXHJcbiAgICAgIH0sXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHByb2R1Y3RDYXRhbG9nLnByb2R1Y3RSZXBvc2l0b3J5LmZpbmRDYXRhbG9nKFxyXG4gICAgICByZXBvUGFyYW1zLFxyXG4gICAgICBtYWluR2VuZGVyIHx8IChzaG9wID09PSBTaG9wcy5NRU5TTUFSS0VUID8gJ21hbGUnIDogJ2ZlbWFsZScpLFxyXG4gICAgICBvcHRpb25zQ2FjaGUsXHJcbiAgICApXHJcbiAgfVxyXG59XHJcbiJdfQ==
|