@infrab4a/connect-angular 5.4.0-beta.10 → 5.5.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/angular-connect.module.d.ts +36 -36
- package/angular-elastic-search.module.d.ts +9 -9
- package/angular-firebase-auth.module.d.ts +11 -11
- package/angular-firestore.module.d.ts +17 -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/esm2020/angular-connect.module.mjs +291 -291
- package/esm2020/angular-elastic-search.module.mjs +34 -34
- package/esm2020/angular-firebase-auth.module.mjs +141 -141
- package/esm2020/angular-firestore.module.mjs +541 -541
- package/esm2020/angular-hasura-graphql.module.mjs +333 -333
- package/esm2020/angular-vertex-search.module.mjs +34 -34
- package/esm2020/consts/backend-url.const.mjs +2 -2
- 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 +5 -5
- package/esm2020/consts/hasura-options.const.mjs +2 -2
- package/esm2020/consts/index.mjs +9 -9
- package/esm2020/consts/persistence.const.mjs +2 -2
- package/esm2020/consts/storage-base-url.const.mjs +2 -2
- package/esm2020/consts/vertex-config.const.mjs +2 -2
- package/esm2020/helpers/index.mjs +2 -2
- package/esm2020/helpers/mobile-operation-system-checker.helper.mjs +7 -7
- package/esm2020/index.mjs +7 -7
- package/esm2020/infrab4a-connect-angular.mjs +4 -4
- package/esm2020/interfaces/catalog-strategies.interface.mjs +2 -2
- package/esm2020/interfaces/category-facades.interface.mjs +2 -2
- package/esm2020/interfaces/index.mjs +3 -3
- package/esm2020/persistence/cookie-data-persistence.mjs +22 -22
- package/esm2020/persistence/data-persistence.mjs +2 -2
- package/esm2020/persistence/index.mjs +3 -3
- package/esm2020/services/auth.service.mjs +37 -37
- package/esm2020/services/cart/cart-services.facade.mjs +21 -21
- package/esm2020/services/cart/index.mjs +2 -2
- package/esm2020/services/cart.service.mjs +73 -73
- 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 +43 -43
- package/esm2020/services/catalog/adapters/old-category-structure.adapter.mjs +23 -23
- package/esm2020/services/catalog/catalog.service.mjs +111 -111
- package/esm2020/services/catalog/category.service.mjs +39 -39
- package/esm2020/services/catalog/context/catalog-search.context.mjs +40 -40
- package/esm2020/services/catalog/enums/index.mjs +2 -2
- package/esm2020/services/catalog/enums/product-sorts.enum.mjs +11 -11
- package/esm2020/services/catalog/facades/catalog-service.facade.mjs +32 -32
- package/esm2020/services/catalog/facades/catalog-strategies.facade.mjs +17 -17
- package/esm2020/services/catalog/facades/category-repository.facade.mjs +20 -20
- package/esm2020/services/catalog/facades/category-service.facade.mjs +30 -30
- package/esm2020/services/catalog/facades/index.mjs +6 -6
- package/esm2020/services/catalog/facades/product-catalog.facade.mjs +21 -21
- package/esm2020/services/catalog/helpers/brand-manager.helper.mjs +57 -57
- package/esm2020/services/catalog/helpers/catalog-filter.helper.mjs +44 -44
- package/esm2020/services/catalog/helpers/catalog-sort.helper.mjs +52 -52
- package/esm2020/services/catalog/helpers/index.mjs +5 -5
- package/esm2020/services/catalog/helpers/product-fields.helper.mjs +40 -40
- package/esm2020/services/catalog/index.mjs +8 -8
- 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/services/catalog-helpers.service.mjs +33 -33
- package/esm2020/services/catalog/services/catalog-operations.facade.mjs +26 -26
- package/esm2020/services/catalog/services/catalog-repository.service.mjs +25 -25
- package/esm2020/services/catalog/services/index.mjs +5 -5
- package/esm2020/services/catalog/services/product-management.facade.mjs +25 -25
- package/esm2020/services/catalog/strategies/category-search.strategy.mjs +133 -133
- package/esm2020/services/catalog/strategies/index.mjs +4 -4
- package/esm2020/services/catalog/strategies/profile-search.strategy.mjs +42 -42
- package/esm2020/services/catalog/strategies/term-search.strategy.mjs +123 -123
- package/esm2020/services/catalog/strategies/types/strategy-params.type.mjs +2 -2
- package/esm2020/services/catalog/types/fetch-products-options.type.mjs +2 -2
- package/esm2020/services/catalog/types/fetch-products-params.type.mjs +2 -2
- package/esm2020/services/catalog/types/fetch-products-response.type.mjs +2 -2
- package/esm2020/services/catalog/types/index.mjs +6 -6
- package/esm2020/services/catalog/types/method-params.type.mjs +2 -2
- package/esm2020/services/catalog/types/product-sort.type.mjs +2 -2
- package/esm2020/services/catalog/wishlist.service.mjs +254 -254
- package/esm2020/services/checkout/checkout-dependencies.facade.mjs +20 -20
- package/esm2020/services/checkout/checkout-repositories.facade.mjs +20 -20
- package/esm2020/services/checkout/index.mjs +3 -3
- package/esm2020/services/checkout-subscription.service.mjs +55 -55
- package/esm2020/services/checkout.service.mjs +106 -106
- package/esm2020/services/coupon/coupon-repositories.facade.mjs +24 -24
- package/esm2020/services/coupon/index.mjs +2 -2
- package/esm2020/services/coupon/types/coupon-params.type.mjs +2 -2
- package/esm2020/services/coupon.service.mjs +248 -248
- package/esm2020/services/helpers/index.mjs +2 -2
- package/esm2020/services/helpers/util.helper.mjs +18 -18
- package/esm2020/services/home-shop/home-shop-repositories.facade.mjs +24 -24
- package/esm2020/services/home-shop/index.mjs +2 -2
- package/esm2020/services/home-shop.service.mjs +119 -119
- package/esm2020/services/index.mjs +11 -11
- package/esm2020/services/order-product-review.service.mjs +110 -110
- package/esm2020/services/order.service.mjs +30 -30
- package/esm2020/services/shared/configuration.facade.mjs +29 -29
- package/esm2020/services/shared/index.mjs +2 -2
- package/esm2020/services/types/index.mjs +5 -5
- package/esm2020/services/types/pending-product-review.type.mjs +2 -2
- package/esm2020/services/types/product-review-create.type.mjs +2 -2
- 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/types/firebase-app-config.type.mjs +2 -2
- package/esm2020/types/index.mjs +2 -2
- package/fesm2015/infrab4a-connect-angular.mjs +3348 -3348
- package/fesm2015/infrab4a-connect-angular.mjs.map +1 -1
- package/fesm2020/infrab4a-connect-angular.mjs +3244 -3244
- package/fesm2020/infrab4a-connect-angular.mjs.map +1 -1
- 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 +2 -2
- 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 +22 -22
- 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
|
@@ -1,111 +1,111 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { InvalidArgumentError, RoundProductPricesHelper, Shops, } from '@infrab4a/connect';
|
|
3
|
-
import { DEFAULT_SHOP } from '../../consts';
|
|
4
|
-
import { CatalogSearchContext } from './context/catalog-search.context';
|
|
5
|
-
import { CatalogHelpersService } from './services';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./context/catalog-search.context";
|
|
8
|
-
import * as i2 from "./services";
|
|
9
|
-
import * as i3 from "@infrab4a/connect";
|
|
10
|
-
export class CatalogService {
|
|
11
|
-
constructor(searchContext, helpersService, shop) {
|
|
12
|
-
this.searchContext = searchContext;
|
|
13
|
-
this.helpersService = helpersService;
|
|
14
|
-
this.shop = shop;
|
|
15
|
-
}
|
|
16
|
-
async fetchProducts(options, optionsCache) {
|
|
17
|
-
this.validateRequest(options);
|
|
18
|
-
const searchParams = this.buildSearchParams(options);
|
|
19
|
-
const { data, count: total, maximum, minimal, distinct, } = await this.searchContext.executeSearch(searchParams, this.shop, optionsCache);
|
|
20
|
-
await this.helpersService.getBrandManager().setBrandsList(searchParams, distinct?.brand);
|
|
21
|
-
return this.buildResponse({
|
|
22
|
-
data,
|
|
23
|
-
total,
|
|
24
|
-
maximum,
|
|
25
|
-
minimal,
|
|
26
|
-
searchParams,
|
|
27
|
-
options,
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
async addCustomerToStockNotification(params) {
|
|
31
|
-
const { shop, productId, name, email } = params;
|
|
32
|
-
const productServices = this.helpersService.getProductServices();
|
|
33
|
-
return productServices.productStockNotificationRepository.addCustomerEmail({
|
|
34
|
-
shop,
|
|
35
|
-
productId,
|
|
36
|
-
name,
|
|
37
|
-
email,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
validateRequest(options) {
|
|
41
|
-
if (this.hasProfile(options) && options.filters?.customOptions) {
|
|
42
|
-
throw new InvalidArgumentError(`It couldn't filled customOptions when profile is given`);
|
|
43
|
-
}
|
|
44
|
-
if (this.hasProfile(options) && options.filters?.tags) {
|
|
45
|
-
throw new InvalidArgumentError(`It couldn't filled tags when profile is given`);
|
|
46
|
-
}
|
|
47
|
-
if (this.hasTerm(options) && options.filters?.customOptions) {
|
|
48
|
-
throw new InvalidArgumentError(`It couldn't filled customOptions when term is given`);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
buildSearchParams(options) {
|
|
52
|
-
const limits = this.buildLimitQuery(options);
|
|
53
|
-
return {
|
|
54
|
-
category: this.hasCategory(options) ? options.category : undefined,
|
|
55
|
-
profile: this.hasProfile(options) ? options.profile : undefined,
|
|
56
|
-
term: this.hasTerm(options) ? options.term : undefined,
|
|
57
|
-
filters: options.filters,
|
|
58
|
-
mainGender: options.mainGender,
|
|
59
|
-
sort: options.sort,
|
|
60
|
-
limits,
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
buildResponse(params) {
|
|
64
|
-
const { data, total, maximum, minimal, searchParams } = params;
|
|
65
|
-
const limits = searchParams.limits;
|
|
66
|
-
const indexKey = this.helpersService.getBrandManager().buildIndexBrands(searchParams);
|
|
67
|
-
return {
|
|
68
|
-
products: {
|
|
69
|
-
data: data.map((product) => RoundProductPricesHelper.roundProductPrices(product)),
|
|
70
|
-
total,
|
|
71
|
-
},
|
|
72
|
-
pages: Math.ceil(total / limits.limit),
|
|
73
|
-
prices: {
|
|
74
|
-
price: {
|
|
75
|
-
min: +(minimal?.price?.price?.toFixed(2) || 0),
|
|
76
|
-
max: +(maximum?.price?.price?.toFixed(2) || 0),
|
|
77
|
-
},
|
|
78
|
-
subscriberPrice: {
|
|
79
|
-
min: +(minimal?.price?.subscriberPrice?.toFixed(2) || 0),
|
|
80
|
-
max: +(maximum?.price?.subscriberPrice?.toFixed(2) || 0),
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
brands: this.helpersService.getBrandManager().getBrandsList(indexKey),
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
buildLimitQuery(options) {
|
|
87
|
-
const limit = options?.perPage || 20;
|
|
88
|
-
return {
|
|
89
|
-
limit,
|
|
90
|
-
offset: ((options?.page || 1) - 1) * limit,
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
hasProfile(options) {
|
|
94
|
-
return 'profile' in options;
|
|
95
|
-
}
|
|
96
|
-
hasTerm(options) {
|
|
97
|
-
return 'term' in options;
|
|
98
|
-
}
|
|
99
|
-
hasCategory(options) {
|
|
100
|
-
return 'category' in options;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
CatalogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, deps: [{ token: i1.CatalogSearchContext }, { token: i2.CatalogHelpersService }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
104
|
-
CatalogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService });
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, decorators: [{
|
|
106
|
-
type: Injectable
|
|
107
|
-
}], ctorParameters: function () { return [{ type: i1.CatalogSearchContext }, { type: i2.CatalogHelpersService }, { type: i3.Shops, decorators: [{
|
|
108
|
-
type: Inject,
|
|
109
|
-
args: [DEFAULT_SHOP]
|
|
110
|
-
}] }]; } });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2NhdGFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBRUwsb0JBQW9CLEVBRXBCLHdCQUF3QixFQUN4QixLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQTs7Ozs7QUFXbEQsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFDbUIsYUFBbUMsRUFDbkMsY0FBcUMsRUFDZixJQUFXO1FBRmpDLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUNuQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFPO0lBQ2pELENBQUM7SUFFSixLQUFLLENBQUMsYUFBYSxDQUNqQixPQUErQixFQUMvQixZQUFpRDtRQUVqRCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRTdCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNwRCxNQUFNLEVBQ0osSUFBSSxFQUNKLEtBQUssRUFBRSxLQUFLLEVBQ1osT0FBTyxFQUNQLE9BQU8sRUFDUCxRQUFRLEdBQ1QsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBRWpGLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUV4RixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDeEIsSUFBSTtZQUNKLEtBQUs7WUFDTCxPQUFPO1lBQ1AsT0FBTztZQUNQLFlBQVk7WUFDWixPQUFPO1NBQ1IsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxNQUErQjtRQUNsRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQy9DLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtRQUVoRSxPQUFPLGVBQWUsQ0FBQyxrQ0FBa0MsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN6RSxJQUFJO1lBQ0osU0FBUztZQUNULElBQUk7WUFDSixLQUFLO1NBQ04sQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVPLGVBQWUsQ0FBQyxPQUErQjtRQUNyRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUU7WUFDOUQsTUFBTSxJQUFJLG9CQUFvQixDQUFDLHdEQUF3RCxDQUFDLENBQUE7U0FDekY7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUU7WUFDckQsTUFBTSxJQUFJLG9CQUFvQixDQUFDLCtDQUErQyxDQUFDLENBQUE7U0FDaEY7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUU7WUFDM0QsTUFBTSxJQUFJLG9CQUFvQixDQUFDLHFEQUFxRCxDQUFDLENBQUE7U0FDdEY7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBK0I7UUFDdkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUU1QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDbEUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDL0QsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDdEQsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1lBQ3hCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtZQUM5QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsTUFBTTtTQUNQLENBQUE7SUFDSCxDQUFDO0lBRU8sYUFBYSxDQUFDLE1BQThCO1FBQ2xELE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQzlELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUE7UUFDbEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUVyRixPQUFPO1lBQ0wsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDakYsS0FBSzthQUNOO1lBQ0QsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDdEMsTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRTtvQkFDTCxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzlDLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDL0M7Z0JBQ0QsZUFBZSxFQUFFO29CQUNmLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEQsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN6RDthQUNGO1lBQ0QsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztTQUN0RSxDQUFBO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxPQUE0QztRQUNsRSxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQTtRQUVwQyxPQUFPO1lBQ0wsS0FBSztZQUNMLE1BQU0sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLO1NBQzNDLENBQUE7SUFDSCxDQUFDO0lBRU8sVUFBVSxDQUFDLE9BQXdDO1FBSXpELE9BQU8sU0FBUyxJQUFJLE9BQU8sQ0FBQTtJQUM3QixDQUFDO0lBRU8sT0FBTyxDQUFDLE9BQXdDO1FBSXRELE9BQU8sTUFBTSxJQUFJLE9BQU8sQ0FBQTtJQUMxQixDQUFDO0lBRU8sV0FBVyxDQUFDLE9BQXdDO1FBSTFELE9BQU8sVUFBVSxJQUFJLE9BQU8sQ0FBQTtJQUM5QixDQUFDOzsyR0EvSFUsY0FBYywyRkFJZixZQUFZOytHQUpYLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVTs7MEJBS04sTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBDYXRlZ29yeSxcclxuICBJbnZhbGlkQXJndW1lbnRFcnJvcixcclxuICBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zLFxyXG4gIFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlcixcclxuICBTaG9wcyxcclxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuXHJcbmltcG9ydCB7IERFRkFVTFRfU0hPUCB9IGZyb20gJy4uLy4uL2NvbnN0cydcclxuaW1wb3J0IHsgQ2F0YWxvZ0ZpbHRlcnMsIENhdGFsb2dTZWFyY2hQYXJhbXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJ1xyXG5cclxuaW1wb3J0IHsgQ2F0YWxvZ1NlYXJjaENvbnRleHQgfSBmcm9tICcuL2NvbnRleHQvY2F0YWxvZy1zZWFyY2guY29udGV4dCdcclxuaW1wb3J0IHsgQ2F0YWxvZ0hlbHBlcnNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcydcclxuaW1wb3J0IHtcclxuICBCdWlsZFJlc3BvbnNlUGFyYW1zLFxyXG4gIEZldGNoUHJvZHVjdHNNYWluUGFyYW1zLFxyXG4gIEZldGNoUHJvZHVjdHNPcHRpb25zLFxyXG4gIEZldGNoUHJvZHVjdHNQYXJhbXMsXHJcbiAgRmV0Y2hQcm9kdWN0c1Jlc3BvbnNlLFxyXG4gIFN0b2NrTm90aWZpY2F0aW9uUGFyYW1zLFxyXG59IGZyb20gJy4vdHlwZXMnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYXRhbG9nU2VydmljZTxUIGV4dGVuZHMgQ2F0ZWdvcnkgPSBDYXRlZ29yeT4ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWFyY2hDb250ZXh0OiBDYXRhbG9nU2VhcmNoQ29udGV4dCxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGVscGVyc1NlcnZpY2U6IENhdGFsb2dIZWxwZXJzU2VydmljZSxcclxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IHNob3A6IFNob3BzLFxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgZmV0Y2hQcm9kdWN0cyhcclxuICAgIG9wdGlvbnM6IEZldGNoUHJvZHVjdHNQYXJhbXM8VD4sXHJcbiAgICBvcHRpb25zQ2FjaGU/OiB7IGNhY2hlPzogUmVwb3NpdG9yeUNhY2hlT3B0aW9ucyB9LFxyXG4gICk6IFByb21pc2U8RmV0Y2hQcm9kdWN0c1Jlc3BvbnNlPiB7XHJcbiAgICB0aGlzLnZhbGlkYXRlUmVxdWVzdChvcHRpb25zKVxyXG5cclxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IHRoaXMuYnVpbGRTZWFyY2hQYXJhbXMob3B0aW9ucylcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGF0YSxcclxuICAgICAgY291bnQ6IHRvdGFsLFxyXG4gICAgICBtYXhpbXVtLFxyXG4gICAgICBtaW5pbWFsLFxyXG4gICAgICBkaXN0aW5jdCxcclxuICAgIH0gPSBhd2FpdCB0aGlzLnNlYXJjaENvbnRleHQuZXhlY3V0ZVNlYXJjaChzZWFyY2hQYXJhbXMsIHRoaXMuc2hvcCwgb3B0aW9uc0NhY2hlKVxyXG5cclxuICAgIGF3YWl0IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0QnJhbmRNYW5hZ2VyKCkuc2V0QnJhbmRzTGlzdChzZWFyY2hQYXJhbXMsIGRpc3RpbmN0Py5icmFuZClcclxuXHJcbiAgICByZXR1cm4gdGhpcy5idWlsZFJlc3BvbnNlKHtcclxuICAgICAgZGF0YSxcclxuICAgICAgdG90YWwsXHJcbiAgICAgIG1heGltdW0sXHJcbiAgICAgIG1pbmltYWwsXHJcbiAgICAgIHNlYXJjaFBhcmFtcyxcclxuICAgICAgb3B0aW9ucyxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBhc3luYyBhZGRDdXN0b21lclRvU3RvY2tOb3RpZmljYXRpb24ocGFyYW1zOiBTdG9ja05vdGlmaWNhdGlvblBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgeyBzaG9wLCBwcm9kdWN0SWQsIG5hbWUsIGVtYWlsIH0gPSBwYXJhbXNcclxuICAgIGNvbnN0IHByb2R1Y3RTZXJ2aWNlcyA9IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0UHJvZHVjdFNlcnZpY2VzKClcclxuXHJcbiAgICByZXR1cm4gcHJvZHVjdFNlcnZpY2VzLnByb2R1Y3RTdG9ja05vdGlmaWNhdGlvblJlcG9zaXRvcnkuYWRkQ3VzdG9tZXJFbWFpbCh7XHJcbiAgICAgIHNob3AsXHJcbiAgICAgIHByb2R1Y3RJZCxcclxuICAgICAgbmFtZSxcclxuICAgICAgZW1haWwsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZVJlcXVlc3Qob3B0aW9uczogRmV0Y2hQcm9kdWN0c1BhcmFtczxUPik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaGFzUHJvZmlsZShvcHRpb25zKSAmJiBvcHRpb25zLmZpbHRlcnM/LmN1c3RvbU9wdGlvbnMpIHtcclxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKGBJdCBjb3VsZG4ndCBmaWxsZWQgY3VzdG9tT3B0aW9ucyB3aGVuIHByb2ZpbGUgaXMgZ2l2ZW5gKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmhhc1Byb2ZpbGUob3B0aW9ucykgJiYgb3B0aW9ucy5maWx0ZXJzPy50YWdzKSB7XHJcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihgSXQgY291bGRuJ3QgZmlsbGVkIHRhZ3Mgd2hlbiBwcm9maWxlIGlzIGdpdmVuYClcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oYXNUZXJtKG9wdGlvbnMpICYmIG9wdGlvbnMuZmlsdGVycz8uY3VzdG9tT3B0aW9ucykge1xyXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoYEl0IGNvdWxkbid0IGZpbGxlZCBjdXN0b21PcHRpb25zIHdoZW4gdGVybSBpcyBnaXZlbmApXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkU2VhcmNoUGFyYW1zKG9wdGlvbnM6IEZldGNoUHJvZHVjdHNQYXJhbXM8VD4pOiBDYXRhbG9nU2VhcmNoUGFyYW1zIHtcclxuICAgIGNvbnN0IGxpbWl0cyA9IHRoaXMuYnVpbGRMaW1pdFF1ZXJ5KG9wdGlvbnMpXHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2F0ZWdvcnk6IHRoaXMuaGFzQ2F0ZWdvcnkob3B0aW9ucykgPyBvcHRpb25zLmNhdGVnb3J5IDogdW5kZWZpbmVkLFxyXG4gICAgICBwcm9maWxlOiB0aGlzLmhhc1Byb2ZpbGUob3B0aW9ucykgPyBvcHRpb25zLnByb2ZpbGUgOiB1bmRlZmluZWQsXHJcbiAgICAgIHRlcm06IHRoaXMuaGFzVGVybShvcHRpb25zKSA/IG9wdGlvbnMudGVybSA6IHVuZGVmaW5lZCxcclxuICAgICAgZmlsdGVyczogb3B0aW9ucy5maWx0ZXJzLFxyXG4gICAgICBtYWluR2VuZGVyOiBvcHRpb25zLm1haW5HZW5kZXIsXHJcbiAgICAgIHNvcnQ6IG9wdGlvbnMuc29ydCxcclxuICAgICAgbGltaXRzLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZFJlc3BvbnNlKHBhcmFtczogQnVpbGRSZXNwb25zZVBhcmFtczxUPik6IEZldGNoUHJvZHVjdHNSZXNwb25zZSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIHRvdGFsLCBtYXhpbXVtLCBtaW5pbWFsLCBzZWFyY2hQYXJhbXMgfSA9IHBhcmFtc1xyXG4gICAgY29uc3QgbGltaXRzID0gc2VhcmNoUGFyYW1zLmxpbWl0c1xyXG4gICAgY29uc3QgaW5kZXhLZXkgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldEJyYW5kTWFuYWdlcigpLmJ1aWxkSW5kZXhCcmFuZHMoc2VhcmNoUGFyYW1zKVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHByb2R1Y3RzOiB7XHJcbiAgICAgICAgZGF0YTogZGF0YS5tYXAoKHByb2R1Y3QpID0+IFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlci5yb3VuZFByb2R1Y3RQcmljZXMocHJvZHVjdCkpLFxyXG4gICAgICAgIHRvdGFsLFxyXG4gICAgICB9LFxyXG4gICAgICBwYWdlczogTWF0aC5jZWlsKHRvdGFsIC8gbGltaXRzLmxpbWl0KSxcclxuICAgICAgcHJpY2VzOiB7XHJcbiAgICAgICAgcHJpY2U6IHtcclxuICAgICAgICAgIG1pbjogKyhtaW5pbWFsPy5wcmljZT8ucHJpY2U/LnRvRml4ZWQoMikgfHwgMCksXHJcbiAgICAgICAgICBtYXg6ICsobWF4aW11bT8ucHJpY2U/LnByaWNlPy50b0ZpeGVkKDIpIHx8IDApLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3Vic2NyaWJlclByaWNlOiB7XHJcbiAgICAgICAgICBtaW46ICsobWluaW1hbD8ucHJpY2U/LnN1YnNjcmliZXJQcmljZT8udG9GaXhlZCgyKSB8fCAwKSxcclxuICAgICAgICAgIG1heDogKyhtYXhpbXVtPy5wcmljZT8uc3Vic2NyaWJlclByaWNlPy50b0ZpeGVkKDIpIHx8IDApLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGJyYW5kczogdGhpcy5oZWxwZXJzU2VydmljZS5nZXRCcmFuZE1hbmFnZXIoKS5nZXRCcmFuZHNMaXN0KGluZGV4S2V5KSxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRMaW1pdFF1ZXJ5KG9wdGlvbnM6IHsgcGFnZT86IG51bWJlcjsgcGVyUGFnZT86IG51bWJlciB9KTogeyBsaW1pdDogbnVtYmVyOyBvZmZzZXQ6IG51bWJlciB9IHtcclxuICAgIGNvbnN0IGxpbWl0ID0gb3B0aW9ucz8ucGVyUGFnZSB8fCAyMFxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxpbWl0LFxyXG4gICAgICBvZmZzZXQ6ICgob3B0aW9ucz8ucGFnZSB8fCAxKSAtIDEpICogbGltaXQsXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1Byb2ZpbGUob3B0aW9uczogUGFydGlhbDxGZXRjaFByb2R1Y3RzUGFyYW1zPFQ+Pik6IG9wdGlvbnMgaXMgRmV0Y2hQcm9kdWN0c09wdGlvbnMgJiB7XHJcbiAgICBwcm9maWxlOiBGZXRjaFByb2R1Y3RzTWFpblBhcmFtczxUPlsncHJvZmlsZSddXHJcbiAgICBmaWx0ZXJzPzogQ2F0YWxvZ0ZpbHRlcnMgJiB7IGN1c3RvbU9wdGlvbnM/OiBuZXZlcjsgdGFncz86IG5ldmVyIH1cclxuICB9IHtcclxuICAgIHJldHVybiAncHJvZmlsZScgaW4gb3B0aW9uc1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNUZXJtKG9wdGlvbnM6IFBhcnRpYWw8RmV0Y2hQcm9kdWN0c1BhcmFtczxUPj4pOiBvcHRpb25zIGlzIEZldGNoUHJvZHVjdHNPcHRpb25zICYge1xyXG4gICAgdGVybTogRmV0Y2hQcm9kdWN0c01haW5QYXJhbXM8VD5bJ3Rlcm0nXVxyXG4gICAgZmlsdGVycz86IENhdGFsb2dGaWx0ZXJzICYgeyBjdXN0b21PcHRpb25zPzogbmV2ZXIgfVxyXG4gIH0ge1xyXG4gICAgcmV0dXJuICd0ZXJtJyBpbiBvcHRpb25zXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc0NhdGVnb3J5KG9wdGlvbnM6IFBhcnRpYWw8RmV0Y2hQcm9kdWN0c1BhcmFtczxUPj4pOiBvcHRpb25zIGlzIEZldGNoUHJvZHVjdHNPcHRpb25zICYge1xyXG4gICAgY2F0ZWdvcnk6IEZldGNoUHJvZHVjdHNNYWluUGFyYW1zPFQ+WydjYXRlZ29yeSddXHJcbiAgICBmaWx0ZXJzPzogQ2F0YWxvZ0ZpbHRlcnMgJiB7IGN1c3RvbU9wdGlvbnM/OiBuZXZlciB9XHJcbiAgfSB7XHJcbiAgICByZXR1cm4gJ2NhdGVnb3J5JyBpbiBvcHRpb25zXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { InvalidArgumentError, RoundProductPricesHelper, Shops, } from '@infrab4a/connect';
|
|
3
|
+
import { DEFAULT_SHOP } from '../../consts';
|
|
4
|
+
import { CatalogSearchContext } from './context/catalog-search.context';
|
|
5
|
+
import { CatalogHelpersService } from './services';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "./context/catalog-search.context";
|
|
8
|
+
import * as i2 from "./services";
|
|
9
|
+
import * as i3 from "@infrab4a/connect";
|
|
10
|
+
export class CatalogService {
|
|
11
|
+
constructor(searchContext, helpersService, shop) {
|
|
12
|
+
this.searchContext = searchContext;
|
|
13
|
+
this.helpersService = helpersService;
|
|
14
|
+
this.shop = shop;
|
|
15
|
+
}
|
|
16
|
+
async fetchProducts(options, optionsCache) {
|
|
17
|
+
this.validateRequest(options);
|
|
18
|
+
const searchParams = this.buildSearchParams(options);
|
|
19
|
+
const { data, count: total, maximum, minimal, distinct, } = await this.searchContext.executeSearch(searchParams, this.shop, optionsCache);
|
|
20
|
+
await this.helpersService.getBrandManager().setBrandsList(searchParams, distinct?.brand);
|
|
21
|
+
return this.buildResponse({
|
|
22
|
+
data,
|
|
23
|
+
total,
|
|
24
|
+
maximum,
|
|
25
|
+
minimal,
|
|
26
|
+
searchParams,
|
|
27
|
+
options,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async addCustomerToStockNotification(params) {
|
|
31
|
+
const { shop, productId, name, email } = params;
|
|
32
|
+
const productServices = this.helpersService.getProductServices();
|
|
33
|
+
return productServices.productStockNotificationRepository.addCustomerEmail({
|
|
34
|
+
shop,
|
|
35
|
+
productId,
|
|
36
|
+
name,
|
|
37
|
+
email,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
validateRequest(options) {
|
|
41
|
+
if (this.hasProfile(options) && options.filters?.customOptions) {
|
|
42
|
+
throw new InvalidArgumentError(`It couldn't filled customOptions when profile is given`);
|
|
43
|
+
}
|
|
44
|
+
if (this.hasProfile(options) && options.filters?.tags) {
|
|
45
|
+
throw new InvalidArgumentError(`It couldn't filled tags when profile is given`);
|
|
46
|
+
}
|
|
47
|
+
if (this.hasTerm(options) && options.filters?.customOptions) {
|
|
48
|
+
throw new InvalidArgumentError(`It couldn't filled customOptions when term is given`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
buildSearchParams(options) {
|
|
52
|
+
const limits = this.buildLimitQuery(options);
|
|
53
|
+
return {
|
|
54
|
+
category: this.hasCategory(options) ? options.category : undefined,
|
|
55
|
+
profile: this.hasProfile(options) ? options.profile : undefined,
|
|
56
|
+
term: this.hasTerm(options) ? options.term : undefined,
|
|
57
|
+
filters: options.filters,
|
|
58
|
+
mainGender: options.mainGender,
|
|
59
|
+
sort: options.sort,
|
|
60
|
+
limits,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
buildResponse(params) {
|
|
64
|
+
const { data, total, maximum, minimal, searchParams } = params;
|
|
65
|
+
const limits = searchParams.limits;
|
|
66
|
+
const indexKey = this.helpersService.getBrandManager().buildIndexBrands(searchParams);
|
|
67
|
+
return {
|
|
68
|
+
products: {
|
|
69
|
+
data: data.map((product) => RoundProductPricesHelper.roundProductPrices(product)),
|
|
70
|
+
total,
|
|
71
|
+
},
|
|
72
|
+
pages: Math.ceil(total / limits.limit),
|
|
73
|
+
prices: {
|
|
74
|
+
price: {
|
|
75
|
+
min: +(minimal?.price?.price?.toFixed(2) || 0),
|
|
76
|
+
max: +(maximum?.price?.price?.toFixed(2) || 0),
|
|
77
|
+
},
|
|
78
|
+
subscriberPrice: {
|
|
79
|
+
min: +(minimal?.price?.subscriberPrice?.toFixed(2) || 0),
|
|
80
|
+
max: +(maximum?.price?.subscriberPrice?.toFixed(2) || 0),
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
brands: this.helpersService.getBrandManager().getBrandsList(indexKey),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
buildLimitQuery(options) {
|
|
87
|
+
const limit = options?.perPage || 20;
|
|
88
|
+
return {
|
|
89
|
+
limit,
|
|
90
|
+
offset: ((options?.page || 1) - 1) * limit,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
hasProfile(options) {
|
|
94
|
+
return 'profile' in options;
|
|
95
|
+
}
|
|
96
|
+
hasTerm(options) {
|
|
97
|
+
return 'term' in options;
|
|
98
|
+
}
|
|
99
|
+
hasCategory(options) {
|
|
100
|
+
return 'category' in options;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
CatalogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, deps: [{ token: i1.CatalogSearchContext }, { token: i2.CatalogHelpersService }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
104
|
+
CatalogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService });
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, decorators: [{
|
|
106
|
+
type: Injectable
|
|
107
|
+
}], ctorParameters: function () { return [{ type: i1.CatalogSearchContext }, { type: i2.CatalogHelpersService }, { type: i3.Shops, decorators: [{
|
|
108
|
+
type: Inject,
|
|
109
|
+
args: [DEFAULT_SHOP]
|
|
110
|
+
}] }]; } });
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2NhdGFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBRUwsb0JBQW9CLEVBRXBCLHdCQUF3QixFQUN4QixLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQTs7Ozs7QUFXbEQsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFDbUIsYUFBbUMsRUFDbkMsY0FBcUMsRUFDZixJQUFXO1FBRmpDLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUNuQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFPO0lBQ2pELENBQUM7SUFFSixLQUFLLENBQUMsYUFBYSxDQUNqQixPQUErQixFQUMvQixZQUFpRDtRQUVqRCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRTdCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNwRCxNQUFNLEVBQ0osSUFBSSxFQUNKLEtBQUssRUFBRSxLQUFLLEVBQ1osT0FBTyxFQUNQLE9BQU8sRUFDUCxRQUFRLEdBQ1QsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBRWpGLE1BQU0sSUFBSSxD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Q0FBQTtJQUM5QixDQUFDOzsyR0EvSFUsY0FBYywyRkFJZixZQUFZOytHQUpYLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVTs7MEJBS04sTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIENhdGVnb3J5LFxuICBJbnZhbGlkQXJndW1lbnRFcnJvcixcbiAgUmVwb3NpdG9yeUNhY2hlT3B0aW9ucyxcbiAgUm91bmRQcm9kdWN0UHJpY2VzSGVscGVyLFxuICBTaG9wcyxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5cbmltcG9ydCB7IERFRkFVTFRfU0hPUCB9IGZyb20gJy4uLy4uL2NvbnN0cydcbmltcG9ydCB7IENhdGFsb2dGaWx0ZXJzLCBDYXRhbG9nU2VhcmNoUGFyYW1zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcydcblxuaW1wb3J0IHsgQ2F0YWxvZ1NlYXJjaENvbnRleHQgfSBmcm9tICcuL2NvbnRleHQvY2F0YWxvZy1zZWFyY2guY29udGV4dCdcbmltcG9ydCB7IENhdGFsb2dIZWxwZXJzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnXG5pbXBvcnQge1xuICBCdWlsZFJlc3BvbnNlUGFyYW1zLFxuICBGZXRjaFByb2R1Y3RzTWFpblBhcmFtcyxcbiAgRmV0Y2hQcm9kdWN0c09wdGlvbnMsXG4gIEZldGNoUHJvZHVjdHNQYXJhbXMsXG4gIEZldGNoUHJvZHVjdHNSZXNwb25zZSxcbiAgU3RvY2tOb3RpZmljYXRpb25QYXJhbXMsXG59IGZyb20gJy4vdHlwZXMnXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYXRhbG9nU2VydmljZTxUIGV4dGVuZHMgQ2F0ZWdvcnkgPSBDYXRlZ29yeT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlYXJjaENvbnRleHQ6IENhdGFsb2dTZWFyY2hDb250ZXh0LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGVscGVyc1NlcnZpY2U6IENhdGFsb2dIZWxwZXJzU2VydmljZSxcbiAgICBASW5qZWN0KERFRkFVTFRfU0hPUCkgcHJpdmF0ZSByZWFkb25seSBzaG9wOiBTaG9wcyxcbiAgKSB7fVxuXG4gIGFzeW5jIGZldGNoUHJvZHVjdHMoXG4gICAgb3B0aW9uczogRmV0Y2hQcm9kdWN0c1BhcmFtczxUPixcbiAgICBvcHRpb25zQ2FjaGU/OiB7IGNhY2hlPzogUmVwb3NpdG9yeUNhY2hlT3B0aW9ucyB9LFxuICApOiBQcm9taXNlPEZldGNoUHJvZHVjdHNSZXNwb25zZT4ge1xuICAgIHRoaXMudmFsaWRhdGVSZXF1ZXN0KG9wdGlvbnMpXG5cbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSB0aGlzLmJ1aWxkU2VhcmNoUGFyYW1zKG9wdGlvbnMpXG4gICAgY29uc3Qge1xuICAgICAgZGF0YSxcbiAgICAgIGNvdW50OiB0b3RhbCxcbiAgICAgIG1heGltdW0sXG4gICAgICBtaW5pbWFsLFxuICAgICAgZGlzdGluY3QsXG4gICAgfSA9IGF3YWl0IHRoaXMuc2VhcmNoQ29udGV4dC5leGVjdXRlU2VhcmNoKHNlYXJjaFBhcmFtcywgdGhpcy5zaG9wLCBvcHRpb25zQ2FjaGUpXG5cbiAgICBhd2FpdCB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldEJyYW5kTWFuYWdlcigpLnNldEJyYW5kc0xpc3Qoc2VhcmNoUGFyYW1zLCBkaXN0aW5jdD8uYnJhbmQpXG5cbiAgICByZXR1cm4gdGhpcy5idWlsZFJlc3BvbnNlKHtcbiAgICAgIGRhdGEsXG4gICAgICB0b3RhbCxcbiAgICAgIG1heGltdW0sXG4gICAgICBtaW5pbWFsLFxuICAgICAgc2VhcmNoUGFyYW1zLFxuICAgICAgb3B0aW9ucyxcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgYWRkQ3VzdG9tZXJUb1N0b2NrTm90aWZpY2F0aW9uKHBhcmFtczogU3RvY2tOb3RpZmljYXRpb25QYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IHNob3AsIHByb2R1Y3RJZCwgbmFtZSwgZW1haWwgfSA9IHBhcmFtc1xuICAgIGNvbnN0IHByb2R1Y3RTZXJ2aWNlcyA9IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0UHJvZHVjdFNlcnZpY2VzKClcblxuICAgIHJldHVybiBwcm9kdWN0U2VydmljZXMucHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeS5hZGRDdXN0b21lckVtYWlsKHtcbiAgICAgIHNob3AsXG4gICAgICBwcm9kdWN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgZW1haWwsXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVSZXF1ZXN0KG9wdGlvbnM6IEZldGNoUHJvZHVjdHNQYXJhbXM8VD4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oYXNQcm9maWxlKG9wdGlvbnMpICYmIG9wdGlvbnMuZmlsdGVycz8uY3VzdG9tT3B0aW9ucykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKGBJdCBjb3VsZG4ndCBmaWxsZWQgY3VzdG9tT3B0aW9ucyB3aGVuIHByb2ZpbGUgaXMgZ2l2ZW5gKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmhhc1Byb2ZpbGUob3B0aW9ucykgJiYgb3B0aW9ucy5maWx0ZXJzPy50YWdzKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoYEl0IGNvdWxkbid0IGZpbGxlZCB0YWdzIHdoZW4gcHJvZmlsZSBpcyBnaXZlbmApXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzVGVybShvcHRpb25zKSAmJiBvcHRpb25zLmZpbHRlcnM/LmN1c3RvbU9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihgSXQgY291bGRuJ3QgZmlsbGVkIGN1c3RvbU9wdGlvbnMgd2hlbiB0ZXJtIGlzIGdpdmVuYClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkU2VhcmNoUGFyYW1zKG9wdGlvbnM6IEZldGNoUHJvZHVjdHNQYXJhbXM8VD4pOiBDYXRhbG9nU2VhcmNoUGFyYW1zIHtcbiAgICBjb25zdCBsaW1pdHMgPSB0aGlzLmJ1aWxkTGltaXRRdWVyeShvcHRpb25zKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNhdGVnb3J5OiB0aGlzLmhhc0NhdGVnb3J5KG9wdGlvbnMpID8gb3B0aW9ucy5jYXRlZ29yeSA6IHVuZGVmaW5lZCxcbiAgICAgIHByb2ZpbGU6IHRoaXMuaGFzUHJvZmlsZShvcHRpb25zKSA/IG9wdGlvbnMucHJvZmlsZSA6IHVuZGVmaW5lZCxcbiAgICAgIHRlcm06IHRoaXMuaGFzVGVybShvcHRpb25zKSA/IG9wdGlvbnMudGVybSA6IHVuZGVmaW5lZCxcbiAgICAgIGZpbHRlcnM6IG9wdGlvbnMuZmlsdGVycyxcbiAgICAgIG1haW5HZW5kZXI6IG9wdGlvbnMubWFpbkdlbmRlcixcbiAgICAgIHNvcnQ6IG9wdGlvbnMuc29ydCxcbiAgICAgIGxpbWl0cyxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkUmVzcG9uc2UocGFyYW1zOiBCdWlsZFJlc3BvbnNlUGFyYW1zPFQ+KTogRmV0Y2hQcm9kdWN0c1Jlc3BvbnNlIHtcbiAgICBjb25zdCB7IGRhdGEsIHRvdGFsLCBtYXhpbXVtLCBtaW5pbWFsLCBzZWFyY2hQYXJhbXMgfSA9IHBhcmFtc1xuICAgIGNvbnN0IGxpbWl0cyA9IHNlYXJjaFBhcmFtcy5saW1pdHNcbiAgICBjb25zdCBpbmRleEtleSA9IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0QnJhbmRNYW5hZ2VyKCkuYnVpbGRJbmRleEJyYW5kcyhzZWFyY2hQYXJhbXMpXG5cbiAgICByZXR1cm4ge1xuICAgICAgcHJvZHVjdHM6IHtcbiAgICAgICAgZGF0YTogZGF0YS5tYXAoKHByb2R1Y3QpID0+IFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlci5yb3VuZFByb2R1Y3RQcmljZXMocHJvZHVjdCkpLFxuICAgICAgICB0b3RhbCxcbiAgICAgIH0sXG4gICAgICBwYWdlczogTWF0aC5jZWlsKHRvdGFsIC8gbGltaXRzLmxpbWl0KSxcbiAgICAgIHByaWNlczoge1xuICAgICAgICBwcmljZToge1xuICAgICAgICAgIG1pbjogKyhtaW5pbWFsPy5wcmljZT8ucHJpY2U/LnRvRml4ZWQoMikgfHwgMCksXG4gICAgICAgICAgbWF4OiArKG1heGltdW0/LnByaWNlPy5wcmljZT8udG9GaXhlZCgyKSB8fCAwKSxcbiAgICAgICAgfSxcbiAgICAgICAgc3Vic2NyaWJlclByaWNlOiB7XG4gICAgICAgICAgbWluOiArKG1pbmltYWw/LnByaWNlPy5zdWJzY3JpYmVyUHJpY2U/LnRvRml4ZWQoMikgfHwgMCksXG4gICAgICAgICAgbWF4OiArKG1heGltdW0/LnByaWNlPy5zdWJzY3JpYmVyUHJpY2U/LnRvRml4ZWQoMikgfHwgMCksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYnJhbmRzOiB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldEJyYW5kTWFuYWdlcigpLmdldEJyYW5kc0xpc3QoaW5kZXhLZXkpLFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRMaW1pdFF1ZXJ5KG9wdGlvbnM6IHsgcGFnZT86IG51bWJlcjsgcGVyUGFnZT86IG51bWJlciB9KTogeyBsaW1pdDogbnVtYmVyOyBvZmZzZXQ6IG51bWJlciB9IHtcbiAgICBjb25zdCBsaW1pdCA9IG9wdGlvbnM/LnBlclBhZ2UgfHwgMjBcblxuICAgIHJldHVybiB7XG4gICAgICBsaW1pdCxcbiAgICAgIG9mZnNldDogKChvcHRpb25zPy5wYWdlIHx8IDEpIC0gMSkgKiBsaW1pdCxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhc1Byb2ZpbGUob3B0aW9uczogUGFydGlhbDxGZXRjaFByb2R1Y3RzUGFyYW1zPFQ+Pik6IG9wdGlvbnMgaXMgRmV0Y2hQcm9kdWN0c09wdGlvbnMgJiB7XG4gICAgcHJvZmlsZTogRmV0Y2hQcm9kdWN0c01haW5QYXJhbXM8VD5bJ3Byb2ZpbGUnXVxuICAgIGZpbHRlcnM/OiBDYXRhbG9nRmlsdGVycyAmIHsgY3VzdG9tT3B0aW9ucz86IG5ldmVyOyB0YWdzPzogbmV2ZXIgfVxuICB9IHtcbiAgICByZXR1cm4gJ3Byb2ZpbGUnIGluIG9wdGlvbnNcbiAgfVxuXG4gIHByaXZhdGUgaGFzVGVybShvcHRpb25zOiBQYXJ0aWFsPEZldGNoUHJvZHVjdHNQYXJhbXM8VD4+KTogb3B0aW9ucyBpcyBGZXRjaFByb2R1Y3RzT3B0aW9ucyAmIHtcbiAgICB0ZXJtOiBGZXRjaFByb2R1Y3RzTWFpblBhcmFtczxUPlsndGVybSddXG4gICAgZmlsdGVycz86IENhdGFsb2dGaWx0ZXJzICYgeyBjdXN0b21PcHRpb25zPzogbmV2ZXIgfVxuICB9IHtcbiAgICByZXR1cm4gJ3Rlcm0nIGluIG9wdGlvbnNcbiAgfVxuXG4gIHByaXZhdGUgaGFzQ2F0ZWdvcnkob3B0aW9uczogUGFydGlhbDxGZXRjaFByb2R1Y3RzUGFyYW1zPFQ+Pik6IG9wdGlvbnMgaXMgRmV0Y2hQcm9kdWN0c09wdGlvbnMgJiB7XG4gICAgY2F0ZWdvcnk6IEZldGNoUHJvZHVjdHNNYWluUGFyYW1zPFQ+WydjYXRlZ29yeSddXG4gICAgZmlsdGVycz86IENhdGFsb2dGaWx0ZXJzICYgeyBjdXN0b21PcHRpb25zPzogbmV2ZXIgfVxuICB9IHtcbiAgICByZXR1cm4gJ2NhdGVnb3J5JyBpbiBvcHRpb25zXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { Shops } from '@infrab4a/connect';
|
|
3
|
-
import { DEFAULT_SHOP } from '../../consts';
|
|
4
|
-
import { CategoryRepositoryFacade, ProductCatalogFacade } from './facades';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "./facades";
|
|
7
|
-
import * as i2 from "@infrab4a/connect";
|
|
8
|
-
export class CategoryService {
|
|
9
|
-
constructor(categoryFacade, productCatalog, shop) {
|
|
10
|
-
this.categoryFacade = categoryFacade;
|
|
11
|
-
this.productCatalog = productCatalog;
|
|
12
|
-
this.shop = shop;
|
|
13
|
-
}
|
|
14
|
-
async fetchBrands(category, options, optionsCache) {
|
|
15
|
-
const brands = await this.productCatalog.productRepository
|
|
16
|
-
.findCatalog({
|
|
17
|
-
filters: await this.productCatalog.categoryStructureAdapter.buildProductFilterByCategory(category),
|
|
18
|
-
fields: ['brand'],
|
|
19
|
-
}, null, optionsCache)
|
|
20
|
-
.then(({ data }) => Object.keys(data.map((product) => product.brand).reduce((brands, brand) => ({ ...brands, [brand]: true }), {})));
|
|
21
|
-
return this.categoryFacade.categoryRepository
|
|
22
|
-
.find({ filters: { brandCategory: true, shop: options?.shop || this.shop }, orderBy: { name: 'asc' } }, optionsCache)
|
|
23
|
-
.then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)));
|
|
24
|
-
}
|
|
25
|
-
async fetchFilterOptions(category, optionsCache) {
|
|
26
|
-
return await this.categoryFacade.categoryFilterRepository
|
|
27
|
-
.find({ filters: { categoryId: +category.id } }, optionsCache)
|
|
28
|
-
.then(({ data }) => data.map((categoryFilter) => categoryFilter.filter));
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
CategoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, deps: [{ token: i1.CategoryRepositoryFacade }, { token: i1.ProductCatalogFacade }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
|
-
CategoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService });
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, decorators: [{
|
|
34
|
-
type: Injectable
|
|
35
|
-
}], ctorParameters: function () { return [{ type: i1.CategoryRepositoryFacade }, { type: i1.ProductCatalogFacade }, { type: i2.Shops, decorators: [{
|
|
36
|
-
type: Inject,
|
|
37
|
-
args: [DEFAULT_SHOP]
|
|
38
|
-
}] }]; } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Shops } from '@infrab4a/connect';
|
|
3
|
+
import { DEFAULT_SHOP } from '../../consts';
|
|
4
|
+
import { CategoryRepositoryFacade, ProductCatalogFacade } from './facades';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./facades";
|
|
7
|
+
import * as i2 from "@infrab4a/connect";
|
|
8
|
+
export class CategoryService {
|
|
9
|
+
constructor(categoryFacade, productCatalog, shop) {
|
|
10
|
+
this.categoryFacade = categoryFacade;
|
|
11
|
+
this.productCatalog = productCatalog;
|
|
12
|
+
this.shop = shop;
|
|
13
|
+
}
|
|
14
|
+
async fetchBrands(category, options, optionsCache) {
|
|
15
|
+
const brands = await this.productCatalog.productRepository
|
|
16
|
+
.findCatalog({
|
|
17
|
+
filters: await this.productCatalog.categoryStructureAdapter.buildProductFilterByCategory(category),
|
|
18
|
+
fields: ['brand'],
|
|
19
|
+
}, null, optionsCache)
|
|
20
|
+
.then(({ data }) => Object.keys(data.map((product) => product.brand).reduce((brands, brand) => ({ ...brands, [brand]: true }), {})));
|
|
21
|
+
return this.categoryFacade.categoryRepository
|
|
22
|
+
.find({ filters: { brandCategory: true, shop: options?.shop || this.shop }, orderBy: { name: 'asc' } }, optionsCache)
|
|
23
|
+
.then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)));
|
|
24
|
+
}
|
|
25
|
+
async fetchFilterOptions(category, optionsCache) {
|
|
26
|
+
return await this.categoryFacade.categoryFilterRepository
|
|
27
|
+
.find({ filters: { categoryId: +category.id } }, optionsCache)
|
|
28
|
+
.then(({ data }) => data.map((categoryFilter) => categoryFilter.filter));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
CategoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, deps: [{ token: i1.CategoryRepositoryFacade }, { token: i1.ProductCatalogFacade }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
|
+
CategoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, decorators: [{
|
|
34
|
+
type: Injectable
|
|
35
|
+
}], ctorParameters: function () { return [{ type: i1.CategoryRepositoryFacade }, { type: i1.ProductCatalogFacade }, { type: i2.Shops, decorators: [{
|
|
36
|
+
type: Inject,
|
|
37
|
+
args: [DEFAULT_SHOP]
|
|
38
|
+
}] }]; } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFBMkQsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUE7Ozs7QUFRMUUsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDbUIsY0FBd0MsRUFDeEMsY0FBb0MsRUFDZCxJQUFXO1FBRmpDLG1CQUFjLEdBQWQsY0FBYyxDQUEwQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFDZCxTQUFJLEdBQUosSUFBSSxDQUFPO0lBQ2pELENBQUM7SUFFSixLQUFLLENBQUMsV0FBVyxDQUNmLFFBQWtCLEVBQ2xCLE9BQTRCLEVBQzVCLFlBQWlEO1FBRWpELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUI7YUFDdkQsV0FBVyxDQUNWO1lBQ0UsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUM7WUFDbEcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO1NBQ2xCLEVBQ0QsSUFBSSxFQUNKLFlBQVksQ0FDYjthQUNBLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ2hILENBQUE7UUFFSCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCO2FBQzFDLElBQUksQ0FDSCxFQUFFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUNoRyxZQUFZLENBQ2I7YUFDQSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzlGLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBa0IsRUFBRSxZQUFpRDtRQUM1RixPQUFPLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0I7YUFDdEQsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFDO2FBQzdELElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQzVFLENBQUM7OzRHQXJDVSxlQUFlLDhGQUloQixZQUFZO2dIQUpYLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBS04sTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENhdGVnb3J5LCBGaWx0ZXIsIFByb2R1Y3RHZW5kZXIsIFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMsIFNob3BzIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5cbmltcG9ydCB7IERFRkFVTFRfU0hPUCB9IGZyb20gJy4uLy4uL2NvbnN0cydcblxuaW1wb3J0IHsgQ2F0ZWdvcnlSZXBvc2l0b3J5RmFjYWRlLCBQcm9kdWN0Q2F0YWxvZ0ZhY2FkZSB9IGZyb20gJy4vZmFjYWRlcydcblxudHlwZSBGZXRjaEJyYW5kc09wdGlvbnMgPSB7XG4gIG1haW5HZW5kZXI/OiBQcm9kdWN0R2VuZGVyXG4gIHNob3A/OiBTaG9wc1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeUZhY2FkZTogQ2F0ZWdvcnlSZXBvc2l0b3J5RmFjYWRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdENhdGFsb2c6IFByb2R1Y3RDYXRhbG9nRmFjYWRlLFxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IHNob3A6IFNob3BzLFxuICApIHt9XG5cbiAgYXN5bmMgZmV0Y2hCcmFuZHMoXG4gICAgY2F0ZWdvcnk6IENhdGVnb3J5LFxuICAgIG9wdGlvbnM/OiBGZXRjaEJyYW5kc09wdGlvbnMsXG4gICAgb3B0aW9uc0NhY2hlPzogeyBjYWNoZT86IFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMgfSxcbiAgKTogUHJvbWlzZTxDYXRlZ29yeVtdPiB7XG4gICAgY29uc3QgYnJhbmRzID0gYXdhaXQgdGhpcy5wcm9kdWN0Q2F0YWxvZy5wcm9kdWN0UmVwb3NpdG9yeVxuICAgICAgLmZpbmRDYXRhbG9nKFxuICAgICAgICB7XG4gICAgICAgICAgZmlsdGVyczogYXdhaXQgdGhpcy5wcm9kdWN0Q2F0YWxvZy5jYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIuYnVpbGRQcm9kdWN0RmlsdGVyQnlDYXRlZ29yeShjYXRlZ29yeSksXG4gICAgICAgICAgZmllbGRzOiBbJ2JyYW5kJ10sXG4gICAgICAgIH0sXG4gICAgICAgIG51bGwsXG4gICAgICAgIG9wdGlvbnNDYWNoZSxcbiAgICAgIClcbiAgICAgIC50aGVuKCh7IGRhdGEgfSkgPT5cbiAgICAgICAgT2JqZWN0LmtleXMoZGF0YS5tYXAoKHByb2R1Y3QpID0+IHByb2R1Y3QuYnJhbmQpLnJlZHVjZSgoYnJhbmRzLCBicmFuZCkgPT4gKHsgLi4uYnJhbmRzLCBbYnJhbmRdOiB0cnVlIH0pLCB7fSkpLFxuICAgICAgKVxuXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnlGYWNhZGUuY2F0ZWdvcnlSZXBvc2l0b3J5XG4gICAgICAuZmluZChcbiAgICAgICAgeyBmaWx0ZXJzOiB7IGJyYW5kQ2F0ZWdvcnk6IHRydWUsIHNob3A6IG9wdGlvbnM/LnNob3AgfHwgdGhpcy5zaG9wIH0sIG9yZGVyQnk6IHsgbmFtZTogJ2FzYycgfSB9LFxuICAgICAgICBvcHRpb25zQ2FjaGUsXG4gICAgICApXG4gICAgICAudGhlbigoeyBkYXRhIH0pID0+IGRhdGEuZmlsdGVyKChjYXRlZ29yeSkgPT4gYnJhbmRzLmluY2x1ZGVzKGNhdGVnb3J5LmNvbmRpdGlvbnMuYnJhbmQpKSlcbiAgfVxuXG4gIGFzeW5jIGZldGNoRmlsdGVyT3B0aW9ucyhjYXRlZ29yeTogQ2F0ZWdvcnksIG9wdGlvbnNDYWNoZT86IHsgY2FjaGU/OiBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zIH0pOiBQcm9taXNlPEZpbHRlcltdPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2F0ZWdvcnlGYWNhZGUuY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5XG4gICAgICAuZmluZCh7IGZpbHRlcnM6IHsgY2F0ZWdvcnlJZDogK2NhdGVnb3J5LmlkIH0gfSwgb3B0aW9uc0NhY2hlKVxuICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PiBkYXRhLm1hcCgoY2F0ZWdvcnlGaWx0ZXIpID0+IGNhdGVnb3J5RmlsdGVyLmZpbHRlcikpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
export class CatalogSearchContext {
|
|
2
|
-
constructor(categoryStrategy, termStrategy, profileStrategy) {
|
|
3
|
-
this.categoryStrategy = categoryStrategy;
|
|
4
|
-
this.termStrategy = termStrategy;
|
|
5
|
-
this.profileStrategy = profileStrategy;
|
|
6
|
-
this.strategies = new Map();
|
|
7
|
-
this.initializeStrategies();
|
|
8
|
-
}
|
|
9
|
-
async executeSearch(params, shop, optionsCache) {
|
|
10
|
-
const strategy = this.selectStrategy(params);
|
|
11
|
-
return strategy.search(params, shop, optionsCache);
|
|
12
|
-
}
|
|
13
|
-
initializeStrategies() {
|
|
14
|
-
this.strategies.set('category', this.categoryStrategy);
|
|
15
|
-
this.strategies.set('term', this.termStrategy);
|
|
16
|
-
this.strategies.set('profile', this.profileStrategy);
|
|
17
|
-
}
|
|
18
|
-
selectStrategy(params) {
|
|
19
|
-
if (params.category) {
|
|
20
|
-
const strategy = this.strategies.get('category');
|
|
21
|
-
if (!strategy)
|
|
22
|
-
throw new Error('Category strategy not found');
|
|
23
|
-
return strategy;
|
|
24
|
-
}
|
|
25
|
-
if (params.term) {
|
|
26
|
-
const strategy = this.strategies.get('term');
|
|
27
|
-
if (!strategy)
|
|
28
|
-
throw new Error('Term strategy not found');
|
|
29
|
-
return strategy;
|
|
30
|
-
}
|
|
31
|
-
if (params.profile?.length) {
|
|
32
|
-
const strategy = this.strategies.get('profile');
|
|
33
|
-
if (!strategy)
|
|
34
|
-
throw new Error('Profile strategy not found');
|
|
35
|
-
return strategy;
|
|
36
|
-
}
|
|
37
|
-
throw new Error('No valid search strategy found for the given parameters');
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export class CatalogSearchContext {
|
|
2
|
+
constructor(categoryStrategy, termStrategy, profileStrategy) {
|
|
3
|
+
this.categoryStrategy = categoryStrategy;
|
|
4
|
+
this.termStrategy = termStrategy;
|
|
5
|
+
this.profileStrategy = profileStrategy;
|
|
6
|
+
this.strategies = new Map();
|
|
7
|
+
this.initializeStrategies();
|
|
8
|
+
}
|
|
9
|
+
async executeSearch(params, shop, optionsCache) {
|
|
10
|
+
const strategy = this.selectStrategy(params);
|
|
11
|
+
return strategy.search(params, shop, optionsCache);
|
|
12
|
+
}
|
|
13
|
+
initializeStrategies() {
|
|
14
|
+
this.strategies.set('category', this.categoryStrategy);
|
|
15
|
+
this.strategies.set('term', this.termStrategy);
|
|
16
|
+
this.strategies.set('profile', this.profileStrategy);
|
|
17
|
+
}
|
|
18
|
+
selectStrategy(params) {
|
|
19
|
+
if (params.category) {
|
|
20
|
+
const strategy = this.strategies.get('category');
|
|
21
|
+
if (!strategy)
|
|
22
|
+
throw new Error('Category strategy not found');
|
|
23
|
+
return strategy;
|
|
24
|
+
}
|
|
25
|
+
if (params.term) {
|
|
26
|
+
const strategy = this.strategies.get('term');
|
|
27
|
+
if (!strategy)
|
|
28
|
+
throw new Error('Term strategy not found');
|
|
29
|
+
return strategy;
|
|
30
|
+
}
|
|
31
|
+
if (params.profile?.length) {
|
|
32
|
+
const strategy = this.strategies.get('profile');
|
|
33
|
+
if (!strategy)
|
|
34
|
+
throw new Error('Profile strategy not found');
|
|
35
|
+
return strategy;
|
|
36
|
+
}
|
|
37
|
+
throw new Error('No valid search strategy found for the given parameters');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1zZWFyY2guY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9jb250ZXh0L2NhdGFsb2ctc2VhcmNoLmNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUNtQixnQkFBdUMsRUFDdkMsWUFBbUMsRUFDbkMsZUFBc0M7UUFGdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF1QjtRQUN2QyxpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUFDbkMsb0JBQWUsR0FBZixlQUFlLENBQXVCO1FBTGpELGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQTtRQU8zRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FDakIsTUFBMkIsRUFDM0IsSUFBVyxFQUNYLFlBQWlEO1FBRWpELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7UUFFNUMsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDcEQsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ3RELENBQUM7SUFFTyxjQUFjLENBQUMsTUFBMkI7UUFDaEQsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBRWhELElBQUksQ0FBQyxRQUFRO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtZQUU3RCxPQUFPLFFBQVEsQ0FBQTtTQUNoQjtRQUVELElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtZQUNmLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBRTVDLElBQUksQ0FBQyxRQUFRO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQTtZQUV6RCxPQUFPLFFBQVEsQ0FBQTtTQUNoQjtRQUVELElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUU7WUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7WUFFL0MsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO1lBRTVELE9BQU8sUUFBUSxDQUFBO1NBQ2hCO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFBO0lBQzVFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2R1Y3QsIFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMsIFJlcG9zaXRvcnlGaW5kUmVzdWx0LCBTaG9wcyB9IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xuXG5pbXBvcnQgeyBDYXRhbG9nU2VhcmNoUGFyYW1zLCBDYXRhbG9nU2VhcmNoU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJ1xuXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ1NlYXJjaENvbnRleHQge1xuICBwcml2YXRlIHN0cmF0ZWdpZXMgPSBuZXcgTWFwPHN0cmluZywgQ2F0YWxvZ1NlYXJjaFN0cmF0ZWd5PigpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeVN0cmF0ZWd5OiBDYXRhbG9nU2VhcmNoU3RyYXRlZ3ksXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXJtU3RyYXRlZ3k6IENhdGFsb2dTZWFyY2hTdHJhdGVneSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2ZpbGVTdHJhdGVneTogQ2F0YWxvZ1NlYXJjaFN0cmF0ZWd5LFxuICApIHtcbiAgICB0aGlzLmluaXRpYWxpemVTdHJhdGVnaWVzKClcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVTZWFyY2goXG4gICAgcGFyYW1zOiBDYXRhbG9nU2VhcmNoUGFyYW1zLFxuICAgIHNob3A6IFNob3BzLFxuICAgIG9wdGlvbnNDYWNoZT86IHsgY2FjaGU/OiBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zIH0sXG4gICk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8UHJvZHVjdD4+IHtcbiAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuc2VsZWN0U3RyYXRlZ3kocGFyYW1zKVxuXG4gICAgcmV0dXJuIHN0cmF0ZWd5LnNlYXJjaChwYXJhbXMsIHNob3AsIG9wdGlvbnNDYWNoZSlcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVN0cmF0ZWdpZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zdHJhdGVnaWVzLnNldCgnY2F0ZWdvcnknLCB0aGlzLmNhdGVnb3J5U3RyYXRlZ3kpXG4gICAgdGhpcy5zdHJhdGVnaWVzLnNldCgndGVybScsIHRoaXMudGVybVN0cmF0ZWd5KVxuICAgIHRoaXMuc3RyYXRlZ2llcy5zZXQoJ3Byb2ZpbGUnLCB0aGlzLnByb2ZpbGVTdHJhdGVneSlcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0U3RyYXRlZ3kocGFyYW1zOiBDYXRhbG9nU2VhcmNoUGFyYW1zKTogQ2F0YWxvZ1NlYXJjaFN0cmF0ZWd5IHtcbiAgICBpZiAocGFyYW1zLmNhdGVnb3J5KSB7XG4gICAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuc3RyYXRlZ2llcy5nZXQoJ2NhdGVnb3J5JylcblxuICAgICAgaWYgKCFzdHJhdGVneSkgdGhyb3cgbmV3IEVycm9yKCdDYXRlZ29yeSBzdHJhdGVneSBub3QgZm91bmQnKVxuXG4gICAgICByZXR1cm4gc3RyYXRlZ3lcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLnRlcm0pIHtcbiAgICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5zdHJhdGVnaWVzLmdldCgndGVybScpXG5cbiAgICAgIGlmICghc3RyYXRlZ3kpIHRocm93IG5ldyBFcnJvcignVGVybSBzdHJhdGVneSBub3QgZm91bmQnKVxuXG4gICAgICByZXR1cm4gc3RyYXRlZ3lcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLnByb2ZpbGU/Lmxlbmd0aCkge1xuICAgICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLnN0cmF0ZWdpZXMuZ2V0KCdwcm9maWxlJylcblxuICAgICAgaWYgKCFzdHJhdGVneSkgdGhyb3cgbmV3IEVycm9yKCdQcm9maWxlIHN0cmF0ZWd5IG5vdCBmb3VuZCcpXG5cbiAgICAgIHJldHVybiBzdHJhdGVneVxuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignTm8gdmFsaWQgc2VhcmNoIHN0cmF0ZWd5IGZvdW5kIGZvciB0aGUgZ2l2ZW4gcGFyYW1ldGVycycpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvZW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1zb3J0cy5lbnVtJ1xuIl19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zb3J0cy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2VudW1zL3Byb2R1Y3Qtc29ydHMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxZQVFYO0FBUkQsV0FBWSxZQUFZO0lBQ3RCLCtDQUErQixDQUFBO0lBQy9CLDRDQUE0QixDQUFBO0lBQzVCLCtDQUErQixDQUFBO0lBQy9CLDZDQUE2QixDQUFBO0lBQzdCLHFEQUFxQyxDQUFBO0lBQ3JDLDJDQUEyQixDQUFBO0lBQzNCLDZCQUFhLENBQUE7QUFDZixDQUFDLEVBUlcsWUFBWSxLQUFaLFlBQVksUUFRdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBQcm9kdWN0U29ydHMge1xuICBNT1NUX1JFTEVWQU5UID0gJ21vc3QtcmVsZXZhbnQnLFxuICBCRVNUX1NFTExFUiA9ICdiZXN0LXNlbGxlcnMnLFxuICBCSUdHRVNUX1BSSUNFID0gJ2JpZ2dlc3QtcHJpY2UnLFxuICBMT1dFU1RfUFJJQ0UgPSAnbG93ZXN0LXByaWNlJyxcbiAgQklHR0VTVF9ESVNDT1VOVCA9ICdiaWdnZXN0LWRpc2NvdW50JyxcbiAgQkVTVF9SQVRJTkcgPSAnYmVzdC1yYXRpbmcnLFxuICBORVdTID0gJ25ld3MnLFxufVxuIl19
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { Shops } from '@infrab4a/connect';
|
|
3
|
-
import { DEFAULT_SHOP } from '../../../consts';
|
|
4
|
-
import { CatalogService } from '../catalog.service';
|
|
5
|
-
import { CatalogSearchContext } from '../context/catalog-search.context';
|
|
6
|
-
import { CatalogHelpersService } from '../services';
|
|
7
|
-
import { CatalogStrategiesFacade } from './catalog-strategies.facade';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../services";
|
|
10
|
-
import * as i2 from "./catalog-strategies.facade";
|
|
11
|
-
import * as i3 from "@infrab4a/connect";
|
|
12
|
-
export class CatalogServiceFacade {
|
|
13
|
-
constructor(helpersService, strategiesFacade, shop) {
|
|
14
|
-
this.helpersService = helpersService;
|
|
15
|
-
this.strategiesFacade = strategiesFacade;
|
|
16
|
-
this.shop = shop;
|
|
17
|
-
const searchContext = new CatalogSearchContext(this.strategiesFacade.categoryStrategy, this.strategiesFacade.termStrategy, this.strategiesFacade.profileStrategy);
|
|
18
|
-
this.catalogService = new CatalogService(searchContext, this.helpersService, this.shop);
|
|
19
|
-
}
|
|
20
|
-
getCatalogService() {
|
|
21
|
-
return this.catalogService;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
CatalogServiceFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogServiceFacade, deps: [{ token: i1.CatalogHelpersService }, { token: i2.CatalogStrategiesFacade }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
25
|
-
CatalogServiceFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogServiceFacade });
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogServiceFacade, decorators: [{
|
|
27
|
-
type: Injectable
|
|
28
|
-
}], ctorParameters: function () { return [{ type: i1.CatalogHelpersService }, { type: i2.CatalogStrategiesFacade }, { type: i3.Shops, decorators: [{
|
|
29
|
-
type: Inject,
|
|
30
|
-
args: [DEFAULT_SHOP]
|
|
31
|
-
}] }]; } });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Shops } from '@infrab4a/connect';
|
|
3
|
+
import { DEFAULT_SHOP } from '../../../consts';
|
|
4
|
+
import { CatalogService } from '../catalog.service';
|
|
5
|
+
import { CatalogSearchContext } from '../context/catalog-search.context';
|
|
6
|
+
import { CatalogHelpersService } from '../services';
|
|
7
|
+
import { CatalogStrategiesFacade } from './catalog-strategies.facade';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../services";
|
|
10
|
+
import * as i2 from "./catalog-strategies.facade";
|
|
11
|
+
import * as i3 from "@infrab4a/connect";
|
|
12
|
+
export class CatalogServiceFacade {
|
|
13
|
+
constructor(helpersService, strategiesFacade, shop) {
|
|
14
|
+
this.helpersService = helpersService;
|
|
15
|
+
this.strategiesFacade = strategiesFacade;
|
|
16
|
+
this.shop = shop;
|
|
17
|
+
const searchContext = new CatalogSearchContext(this.strategiesFacade.categoryStrategy, this.strategiesFacade.termStrategy, this.strategiesFacade.profileStrategy);
|
|
18
|
+
this.catalogService = new CatalogService(searchContext, this.helpersService, this.shop);
|
|
19
|
+
}
|
|
20
|
+
getCatalogService() {
|
|
21
|
+
return this.catalogService;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
CatalogServiceFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogServiceFacade, deps: [{ token: i1.CatalogHelpersService }, { token: i2.CatalogStrategiesFacade }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
25
|
+
CatalogServiceFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogServiceFacade });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogServiceFacade, decorators: [{
|
|
27
|
+
type: Injectable
|
|
28
|
+
}], ctorParameters: function () { return [{ type: i1.CatalogHelpersService }, { type: i2.CatalogStrategiesFacade }, { type: i3.Shops, decorators: [{
|
|
29
|
+
type: Inject,
|
|
30
|
+
args: [DEFAULT_SHOP]
|
|
31
|
+
}] }]; } });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1zZXJ2aWNlLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9mYWNhZGVzL2NhdGFsb2ctc2VydmljZS5mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRW5ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFBOzs7OztBQUdyRSxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLFlBQ21CLGNBQXFDLEVBQ3JDLGdCQUF5QyxFQUNuQixJQUFXO1FBRmpDLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQU87UUFFbEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxvQkFBb0IsQ0FDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUN0QyxDQUFBO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDekYsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQTtJQUM1QixDQUFDOztpSEFuQlUsb0JBQW9CLDhGQU1yQixZQUFZO3FIQU5YLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVOzswQkFPTixNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgU2hvcHMgfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcblxuaW1wb3J0IHsgREVGQVVMVF9TSE9QIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RzJ1xuaW1wb3J0IHsgQ2F0YWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9jYXRhbG9nLnNlcnZpY2UnXG5pbXBvcnQgeyBDYXRhbG9nU2VhcmNoQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQvY2F0YWxvZy1zZWFyY2guY29udGV4dCdcbmltcG9ydCB7IENhdGFsb2dIZWxwZXJzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJ1xuXG5pbXBvcnQgeyBDYXRhbG9nU3RyYXRlZ2llc0ZhY2FkZSB9IGZyb20gJy4vY2F0YWxvZy1zdHJhdGVnaWVzLmZhY2FkZSdcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhdGFsb2dTZXJ2aWNlRmFjYWRlIHtcbiAgcHJpdmF0ZSBjYXRhbG9nU2VydmljZTogQ2F0YWxvZ1NlcnZpY2VcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhlbHBlcnNTZXJ2aWNlOiBDYXRhbG9nSGVscGVyc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdHJhdGVnaWVzRmFjYWRlOiBDYXRhbG9nU3RyYXRlZ2llc0ZhY2FkZSxcbiAgICBASW5qZWN0KERFRkFVTFRfU0hPUCkgcHJpdmF0ZSByZWFkb25seSBzaG9wOiBTaG9wcyxcbiAgKSB7XG4gICAgY29uc3Qgc2VhcmNoQ29udGV4dCA9IG5ldyBDYXRhbG9nU2VhcmNoQ29udGV4dChcbiAgICAgIHRoaXMuc3RyYXRlZ2llc0ZhY2FkZS5jYXRlZ29yeVN0cmF0ZWd5LFxuICAgICAgdGhpcy5zdHJhdGVnaWVzRmFjYWRlLnRlcm1TdHJhdGVneSxcbiAgICAgIHRoaXMuc3RyYXRlZ2llc0ZhY2FkZS5wcm9maWxlU3RyYXRlZ3ksXG4gICAgKVxuXG4gICAgdGhpcy5jYXRhbG9nU2VydmljZSA9IG5ldyBDYXRhbG9nU2VydmljZShzZWFyY2hDb250ZXh0LCB0aGlzLmhlbHBlcnNTZXJ2aWNlLCB0aGlzLnNob3ApXG4gIH1cblxuICBnZXRDYXRhbG9nU2VydmljZSgpOiBDYXRhbG9nU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuY2F0YWxvZ1NlcnZpY2VcbiAgfVxufVxuIl19
|