@infrab4a/connect-angular 5.5.0-alpha.2 → 5.5.0-alpha.3

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.
Files changed (194) hide show
  1. package/angular-connect.module.d.ts +33 -0
  2. package/angular-elastic-search.module.d.ts +9 -0
  3. package/angular-firebase-auth.module.d.ts +10 -0
  4. package/angular-firestore.module.d.ts +16 -0
  5. package/angular-hasura-graphql.module.d.ts +14 -0
  6. package/angular-vertex-search.module.d.ts +9 -0
  7. package/consts/backend-url.const.d.ts +1 -0
  8. package/consts/category-structure.d.ts +1 -0
  9. package/consts/default-shop.const.d.ts +1 -0
  10. package/consts/es-config.const.d.ts +1 -0
  11. package/consts/firebase-const.d.ts +4 -0
  12. package/consts/hasura-options.const.d.ts +1 -0
  13. package/consts/index.d.ts +8 -0
  14. package/consts/persistence.const.d.ts +1 -0
  15. package/consts/storage-base-url.const.d.ts +1 -0
  16. package/consts/vertex-config.const.d.ts +1 -0
  17. package/esm2022/angular-connect.module.mjs +288 -0
  18. package/esm2022/angular-elastic-search.module.mjs +34 -0
  19. package/esm2022/angular-firebase-auth.module.mjs +140 -0
  20. package/esm2022/angular-firestore.module.mjs +538 -0
  21. package/esm2022/angular-hasura-graphql.module.mjs +333 -0
  22. package/esm2022/angular-vertex-search.module.mjs +34 -0
  23. package/esm2022/consts/backend-url.const.mjs +2 -0
  24. package/esm2022/consts/category-structure.mjs +2 -0
  25. package/esm2022/consts/default-shop.const.mjs +2 -0
  26. package/esm2022/consts/es-config.const.mjs +2 -0
  27. package/esm2022/consts/firebase-const.mjs +5 -0
  28. package/esm2022/consts/hasura-options.const.mjs +2 -0
  29. package/esm2022/consts/index.mjs +9 -0
  30. package/esm2022/consts/persistence.const.mjs +2 -0
  31. package/esm2022/consts/storage-base-url.const.mjs +2 -0
  32. package/esm2022/consts/vertex-config.const.mjs +2 -0
  33. package/esm2022/helpers/index.mjs +2 -0
  34. package/esm2022/helpers/mobile-operation-system-checker.helper.mjs +7 -0
  35. package/esm2022/index.mjs +7 -0
  36. package/esm2022/infrab4a-connect-angular.mjs +5 -0
  37. package/esm2022/interfaces/catalog-strategies.interface.mjs +2 -0
  38. package/esm2022/interfaces/category-facades.interface.mjs +2 -0
  39. package/esm2022/interfaces/index.mjs +3 -0
  40. package/esm2022/persistence/cookie-data-persistence.mjs +22 -0
  41. package/esm2022/persistence/data-persistence.mjs +2 -0
  42. package/esm2022/persistence/index.mjs +3 -0
  43. package/esm2022/services/auth.service.mjs +37 -0
  44. package/esm2022/services/cart/cart-services.facade.mjs +21 -0
  45. package/esm2022/services/cart/index.mjs +2 -0
  46. package/esm2022/services/cart.service.mjs +73 -0
  47. package/esm2022/services/catalog/adapters/category-structure.adapter.mjs +2 -0
  48. package/esm2022/services/catalog/adapters/index.mjs +4 -0
  49. package/esm2022/services/catalog/adapters/new-category-structure.adapter.mjs +43 -0
  50. package/esm2022/services/catalog/adapters/old-category-structure.adapter.mjs +23 -0
  51. package/esm2022/services/catalog/catalog.service.mjs +111 -0
  52. package/esm2022/services/catalog/category.service.mjs +42 -0
  53. package/esm2022/services/catalog/context/catalog-search.context.mjs +40 -0
  54. package/esm2022/services/catalog/enums/index.mjs +2 -0
  55. package/esm2022/services/catalog/enums/product-sorts.enum.mjs +11 -0
  56. package/esm2022/services/catalog/facades/catalog-service.facade.mjs +32 -0
  57. package/esm2022/services/catalog/facades/catalog-strategies.facade.mjs +17 -0
  58. package/esm2022/services/catalog/facades/category-repository.facade.mjs +20 -0
  59. package/esm2022/services/catalog/facades/category-service.facade.mjs +30 -0
  60. package/esm2022/services/catalog/facades/index.mjs +6 -0
  61. package/esm2022/services/catalog/facades/product-catalog.facade.mjs +21 -0
  62. package/esm2022/services/catalog/helpers/brand-manager.helper.mjs +57 -0
  63. package/esm2022/services/catalog/helpers/catalog-filter.helper.mjs +44 -0
  64. package/esm2022/services/catalog/helpers/catalog-sort.helper.mjs +52 -0
  65. package/esm2022/services/catalog/helpers/index.mjs +5 -0
  66. package/esm2022/services/catalog/helpers/product-fields.helper.mjs +40 -0
  67. package/esm2022/services/catalog/index.mjs +8 -0
  68. package/esm2022/services/catalog/models/category-with-tree.model.mjs +10 -0
  69. package/esm2022/services/catalog/models/index.mjs +2 -0
  70. package/esm2022/services/catalog/services/catalog-helpers.service.mjs +33 -0
  71. package/esm2022/services/catalog/services/catalog-operations.facade.mjs +26 -0
  72. package/esm2022/services/catalog/services/catalog-repository.service.mjs +25 -0
  73. package/esm2022/services/catalog/services/index.mjs +5 -0
  74. package/esm2022/services/catalog/services/product-management.facade.mjs +25 -0
  75. package/esm2022/services/catalog/strategies/category-search.strategy.mjs +133 -0
  76. package/esm2022/services/catalog/strategies/index.mjs +4 -0
  77. package/esm2022/services/catalog/strategies/profile-search.strategy.mjs +42 -0
  78. package/esm2022/services/catalog/strategies/term-search.strategy.mjs +123 -0
  79. package/esm2022/services/catalog/strategies/types/strategy-params.type.mjs +2 -0
  80. package/esm2022/services/catalog/types/fetch-products-options.type.mjs +2 -0
  81. package/esm2022/services/catalog/types/fetch-products-params.type.mjs +2 -0
  82. package/esm2022/services/catalog/types/fetch-products-response.type.mjs +2 -0
  83. package/esm2022/services/catalog/types/index.mjs +6 -0
  84. package/esm2022/services/catalog/types/method-params.type.mjs +2 -0
  85. package/esm2022/services/catalog/types/product-sort.type.mjs +2 -0
  86. package/esm2022/services/catalog/wishlist.service.mjs +254 -0
  87. package/esm2022/services/checkout/checkout-dependencies.facade.mjs +20 -0
  88. package/esm2022/services/checkout/checkout-repositories.facade.mjs +20 -0
  89. package/esm2022/services/checkout/index.mjs +3 -0
  90. package/esm2022/services/checkout-subscription.service.mjs +55 -0
  91. package/esm2022/services/checkout.service.mjs +106 -0
  92. package/esm2022/services/coupon/coupon-repositories.facade.mjs +24 -0
  93. package/esm2022/services/coupon/index.mjs +2 -0
  94. package/esm2022/services/coupon/types/coupon-params.type.mjs +2 -0
  95. package/esm2022/services/coupon.service.mjs +248 -0
  96. package/esm2022/services/helpers/index.mjs +2 -0
  97. package/esm2022/services/helpers/util.helper.mjs +18 -0
  98. package/esm2022/services/home-shop/home-shop-repositories.facade.mjs +24 -0
  99. package/esm2022/services/home-shop/index.mjs +2 -0
  100. package/esm2022/services/home-shop.service.mjs +119 -0
  101. package/esm2022/services/index.mjs +11 -0
  102. package/esm2022/services/order-product-review.service.mjs +110 -0
  103. package/esm2022/services/order.service.mjs +30 -0
  104. package/esm2022/services/shared/configuration.facade.mjs +29 -0
  105. package/esm2022/services/shared/index.mjs +2 -0
  106. package/esm2022/services/types/index.mjs +5 -0
  107. package/esm2022/services/types/pending-product-review.type.mjs +2 -0
  108. package/esm2022/services/types/product-review-create.type.mjs +2 -0
  109. package/esm2022/services/types/required-checkout-data.type.mjs +2 -0
  110. package/esm2022/services/types/required-checkout-subscription-data.type.mjs +2 -0
  111. package/esm2022/types/firebase-app-config.type.mjs +2 -0
  112. package/esm2022/types/index.mjs +2 -0
  113. package/fesm2022/infrab4a-connect-angular.mjs +246 -286
  114. package/fesm2022/infrab4a-connect-angular.mjs.map +1 -1
  115. package/helpers/index.d.ts +1 -0
  116. package/helpers/mobile-operation-system-checker.helper.d.ts +3 -0
  117. package/index.d.ts +6 -755
  118. package/interfaces/catalog-strategies.interface.d.ts +31 -0
  119. package/interfaces/category-facades.interface.d.ts +6 -0
  120. package/interfaces/index.d.ts +2 -0
  121. package/package.json +7 -5
  122. package/persistence/cookie-data-persistence.d.ts +10 -0
  123. package/persistence/data-persistence.d.ts +6 -0
  124. package/persistence/index.d.ts +2 -0
  125. package/services/auth.service.d.ts +18 -0
  126. package/services/cart/cart-services.facade.d.ts +12 -0
  127. package/services/cart/index.d.ts +1 -0
  128. package/services/cart.service.d.ts +26 -0
  129. package/services/catalog/adapters/category-structure.adapter.d.ts +4 -0
  130. package/services/catalog/adapters/index.d.ts +3 -0
  131. package/services/catalog/adapters/new-category-structure.adapter.d.ts +12 -0
  132. package/services/catalog/adapters/old-category-structure.adapter.d.ts +10 -0
  133. package/services/catalog/catalog.service.d.ts +24 -0
  134. package/services/catalog/category.service.d.ts +23 -0
  135. package/services/catalog/context/catalog-search.context.d.ts +14 -0
  136. package/services/catalog/enums/index.d.ts +1 -0
  137. package/services/catalog/enums/product-sorts.enum.d.ts +9 -0
  138. package/services/catalog/facades/catalog-service.facade.d.ts +15 -0
  139. package/services/catalog/facades/catalog-strategies.facade.d.ts +10 -0
  140. package/services/catalog/facades/category-repository.facade.d.ts +9 -0
  141. package/services/catalog/facades/category-service.facade.d.ts +15 -0
  142. package/services/catalog/facades/index.d.ts +5 -0
  143. package/services/catalog/facades/product-catalog.facade.d.ts +10 -0
  144. package/services/catalog/helpers/brand-manager.helper.d.ts +14 -0
  145. package/services/catalog/helpers/catalog-filter.helper.d.ts +8 -0
  146. package/services/catalog/helpers/catalog-sort.helper.d.ts +7 -0
  147. package/services/catalog/helpers/index.d.ts +4 -0
  148. package/services/catalog/helpers/product-fields.helper.d.ts +7 -0
  149. package/services/catalog/index.d.ts +7 -0
  150. package/services/catalog/models/category-with-tree.model.d.ts +4 -0
  151. package/services/catalog/models/index.d.ts +1 -0
  152. package/services/catalog/services/catalog-helpers.service.d.ts +17 -0
  153. package/services/catalog/services/catalog-operations.facade.d.ts +13 -0
  154. package/services/catalog/services/catalog-repository.service.d.ts +12 -0
  155. package/services/catalog/services/index.d.ts +4 -0
  156. package/services/catalog/services/product-management.facade.d.ts +12 -0
  157. package/services/catalog/strategies/category-search.strategy.d.ts +19 -0
  158. package/services/catalog/strategies/index.d.ts +3 -0
  159. package/services/catalog/strategies/profile-search.strategy.d.ts +14 -0
  160. package/services/catalog/strategies/term-search.strategy.d.ts +20 -0
  161. package/services/catalog/strategies/types/strategy-params.type.d.ts +58 -0
  162. package/services/catalog/types/fetch-products-options.type.d.ts +8 -0
  163. package/services/catalog/types/fetch-products-params.type.d.ts +25 -0
  164. package/services/catalog/types/fetch-products-response.type.d.ts +19 -0
  165. package/services/catalog/types/index.d.ts +5 -0
  166. package/services/catalog/types/method-params.type.d.ts +17 -0
  167. package/services/catalog/types/product-sort.type.d.ts +2 -0
  168. package/services/catalog/wishlist.service.d.ts +59 -0
  169. package/services/checkout/checkout-dependencies.facade.d.ts +10 -0
  170. package/services/checkout/checkout-repositories.facade.d.ts +9 -0
  171. package/services/checkout/index.d.ts +2 -0
  172. package/services/checkout-subscription.service.d.ts +19 -0
  173. package/services/checkout.service.d.ts +30 -0
  174. package/services/coupon/coupon-repositories.facade.d.ts +10 -0
  175. package/services/coupon/index.d.ts +1 -0
  176. package/services/coupon/types/coupon-params.type.d.ts +13 -0
  177. package/services/coupon.service.d.ts +36 -0
  178. package/services/helpers/index.d.ts +1 -0
  179. package/services/helpers/util.helper.d.ts +3 -0
  180. package/services/home-shop/home-shop-repositories.facade.d.ts +10 -0
  181. package/services/home-shop/index.d.ts +1 -0
  182. package/services/home-shop.service.d.ts +26 -0
  183. package/services/index.d.ts +10 -0
  184. package/services/order-product-review.service.d.ts +16 -0
  185. package/services/order.service.d.ts +13 -0
  186. package/services/shared/configuration.facade.d.ts +12 -0
  187. package/services/shared/index.d.ts +1 -0
  188. package/services/types/index.d.ts +4 -0
  189. package/services/types/pending-product-review.type.d.ts +12 -0
  190. package/services/types/product-review-create.type.d.ts +14 -0
  191. package/services/types/required-checkout-data.type.d.ts +2 -0
  192. package/services/types/required-checkout-subscription-data.type.d.ts +2 -0
  193. package/types/firebase-app-config.type.d.ts +1 -0
  194. package/types/index.d.ts +1 -0
@@ -0,0 +1,21 @@
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProductCatalogFacade, deps: [{ token: 'ProductRepository' }, { token: CATEGORY_STRUCTURE }], target: i0.ɵɵFactoryTarget.Injectable }); }
10
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProductCatalogFacade }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProductCatalogFacade, decorators: [{
13
+ type: Injectable
14
+ }], ctorParameters: () => [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jYXRhbG9nLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9mYWNhZGVzL3Byb2R1Y3QtY2F0YWxvZy5mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7O0FBSXBELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFDK0MsaUJBQW9DLEVBQ3JDLHdCQUFrRDtRQURqRCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3JDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7SUFDN0YsQ0FBQzsrR0FKTyxvQkFBb0Isa0JBRXJCLG1CQUFtQixhQUNuQixrQkFBa0I7bUhBSGpCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVTs7MEJBR04sTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUMxQixNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBQcm9kdWN0UmVwb3NpdG9yeSB9IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xuXG5pbXBvcnQgeyBDQVRFR09SWV9TVFJVQ1RVUkUgfSBmcm9tICcuLi8uLi8uLi9jb25zdHMnXG5pbXBvcnQgeyBDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIgfSBmcm9tICcuLi9hZGFwdGVycydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RDYXRhbG9nRmFjYWRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgnUHJvZHVjdFJlcG9zaXRvcnknKSBwdWJsaWMgcmVhZG9ubHkgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RSZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoQ0FURUdPUllfU1RSVUNUVVJFKSBwdWJsaWMgcmVhZG9ubHkgY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyOiBDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIsXG4gICkge31cbn1cbiJdfQ==
@@ -0,0 +1,57 @@
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BrandManagerHelper, deps: [{ token: i1.ProductCatalogFacade }], target: i0.ɵɵFactoryTarget.Injectable }); }
52
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BrandManagerHelper }); }
53
+ }
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BrandManagerHelper, decorators: [{
55
+ type: Injectable
56
+ }], ctorParameters: () => [{ type: i1.ProductCatalogFacade }] });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmQtbWFuYWdlci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvaGVscGVycy9icmFuZC1tYW5hZ2VyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFHbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFBOzs7QUFHakQsTUFBTSxPQUFPLGtCQUFrQjtJQUc3QixZQUE2QixjQUFvQztRQUFwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFGekQsZUFBVSxHQUE2QixFQUFFLENBQUE7SUFFbUIsQ0FBQztJQUVyRSxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQTRCLEVBQUUsTUFBZ0I7UUFDaEUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUE7UUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRS9DLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFBO1FBQy9CLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksTUFBTSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFFeEcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUVyRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixPQUFPLENBQUMsT0FBTyxHQUFHO2dCQUNoQixHQUFHLE9BQU8sQ0FBQyxPQUFPO2dCQUNsQixNQUFNLEVBQUUsWUFBWTthQUNyQixDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsUUFBZ0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxPQUE0QjtRQUMzQyxJQUFJLE9BQU8sQ0FBQyxRQUFRO1lBQUUsT0FBTyxZQUFZLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUE7UUFFOUQsSUFBSSxPQUFPLENBQUMsSUFBSTtZQUFFLE9BQU8sUUFBUSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7UUFFL0MsSUFBSSxPQUFPLENBQUMsT0FBTztZQUFFLE9BQU8sV0FBVyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFBO1FBRWxFLE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQztJQUVPLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBNEI7UUFDeEQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQjthQUN6QyxXQUFXLENBQ1Y7WUFDRSxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDZCxPQUFPLEVBQUU7Z0JBQ1AsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTthQUNuRDtZQUNELE9BQU8sRUFBRTtnQkFDUCxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUM7YUFDcEI7U0FDRixFQUNELE9BQU8sQ0FBQyxVQUFVLENBQ25CO2FBQ0EsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzVDLENBQUM7K0dBdERVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBXaGVyZSwgaXNFbXB0eSB9IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xuXG5pbXBvcnQgeyBDYXRhbG9nU2VhcmNoUGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcydcbmltcG9ydCB7IFByb2R1Y3RDYXRhbG9nRmFjYWRlIH0gZnJvbSAnLi4vZmFjYWRlcydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJyYW5kTWFuYWdlckhlbHBlciB7XG4gIHByaXZhdGUgYnJhbmRzTGlzdDogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge31cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3RDYXRhbG9nOiBQcm9kdWN0Q2F0YWxvZ0ZhY2FkZSkge31cblxuICBhc3luYyBzZXRCcmFuZHNMaXN0KG9wdGlvbnM6IENhdGFsb2dTZWFyY2hQYXJhbXMsIGJyYW5kczogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmaWx0ZXJCcmFuZHMgPSBvcHRpb25zLmZpbHRlcnM/LmJyYW5kc1xuICAgIGNvbnN0IGluZGV4S2V5ID0gdGhpcy5idWlsZEluZGV4QnJhbmRzKG9wdGlvbnMpXG5cbiAgICBpZiAoaXNFbXB0eShicmFuZHMpICYmIG9wdGlvbnMuZmlsdGVycykge1xuICAgICAgZGVsZXRlIG9wdGlvbnMuZmlsdGVycy5icmFuZHNcbiAgICB9XG5cbiAgICB0aGlzLmJyYW5kc0xpc3RbaW5kZXhLZXldID0gdGhpcy5icmFuZHNMaXN0W2luZGV4S2V5XSB8fCBicmFuZHMgfHwgKGF3YWl0IHRoaXMuZmV0Y2hCcmFuZHNPbmx5KG9wdGlvbnMpKVxuXG4gICAgdGhpcy5icmFuZHNMaXN0W2luZGV4S2V5XSA9IHRoaXMuYnJhbmRzTGlzdFtpbmRleEtleV0uZmlsdGVyKEJvb2xlYW4pXG5cbiAgICBpZiAob3B0aW9ucy5maWx0ZXJzKSB7XG4gICAgICBvcHRpb25zLmZpbHRlcnMgPSB7XG4gICAgICAgIC4uLm9wdGlvbnMuZmlsdGVycyxcbiAgICAgICAgYnJhbmRzOiBmaWx0ZXJCcmFuZHMsXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0QnJhbmRzTGlzdChpbmRleEtleTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmJyYW5kc0xpc3RbaW5kZXhLZXldXG4gIH1cblxuICBidWlsZEluZGV4QnJhbmRzKG9wdGlvbnM6IENhdGFsb2dTZWFyY2hQYXJhbXMpOiBzdHJpbmcge1xuICAgIGlmIChvcHRpb25zLmNhdGVnb3J5KSByZXR1cm4gYGNhdGVnb3J5LSR7b3B0aW9ucy5jYXRlZ29yeS5pZH1gXG5cbiAgICBpZiAob3B0aW9ucy50ZXJtKSByZXR1cm4gYHRlcm0tJHtvcHRpb25zLnRlcm19YFxuXG4gICAgaWYgKG9wdGlvbnMucHJvZmlsZSkgcmV0dXJuIGBwcm9maWxlLSR7b3B0aW9ucy5wcm9maWxlLmpvaW4oJywnKX1gXG5cbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmV0Y2hCcmFuZHNPbmx5KG9wdGlvbnM6IENhdGFsb2dTZWFyY2hQYXJhbXMpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjdENhdGFsb2cucHJvZHVjdFJlcG9zaXRvcnlcbiAgICAgIC5maW5kQ2F0YWxvZyhcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkczogWydpZCddLFxuICAgICAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgICAgIHB1Ymxpc2hlZDogeyBvcGVyYXRvcjogV2hlcmUuRVFVQUxTLCB2YWx1ZTogdHJ1ZSB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgZGlzdGluY3Q6IFsnYnJhbmQnXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLm1haW5HZW5kZXIsXG4gICAgICApXG4gICAgICAudGhlbigocmVzdWx0KSA9PiByZXN1bHQuZGlzdGluY3QuYnJhbmQpXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,44 @@
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogFilterHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
39
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogFilterHelper }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogFilterHelper, decorators: [{
42
+ type: Injectable
43
+ }] });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1maWx0ZXIuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2hlbHBlcnMvY2F0YWxvZy1maWx0ZXIuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFtQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7O0FBSy9FLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsZ0JBQWdCLENBQUMsT0FBdUI7UUFDdEMsTUFBTSxXQUFXLEdBQUcsRUFBcUMsQ0FBQTtRQUV6RCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDakMsR0FBRyxDQUFDLFdBQVcsRUFBRSxvQ0FBb0MsRUFBRTtnQkFDckQsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNsQixLQUFLLEVBQUUsT0FBTyxDQUFDLFlBQVk7YUFDNUIsQ0FBQyxDQUFBO1FBQ0osQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUMzQixXQUFXLENBQUMsS0FBSyxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNuRSxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzNCLFdBQVcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQ3BFLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDL0MsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUE7WUFDM0YsTUFBTSxZQUFZLEdBQUc7Z0JBQ25CLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQy9GLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDL0YsQ0FBQTtZQUVELEdBQUcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBQzVDLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixXQUFXLENBQUMsSUFBSSxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNqRSxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLFdBQVcsQ0FBQyxXQUFXLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ3pFLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDbEMsV0FBVyxDQUFDLE9BQU8sR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDOUUsQ0FBQztRQUVELE9BQU8sV0FBVyxDQUFBO0lBQ3BCLENBQUM7K0dBMUNVLG1CQUFtQjttSEFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBQcm9kdWN0LCBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzLCBzZXQsIFdoZXJlIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5cbmltcG9ydCB7IENhdGFsb2dGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhdGFsb2dGaWx0ZXJIZWxwZXIge1xuICBidWlsZEZpbHRlclF1ZXJ5KGZpbHRlcnM6IENhdGFsb2dGaWx0ZXJzKTogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxQcm9kdWN0PiB7XG4gICAgY29uc3QgZmlsdGVyUXVlcnkgPSB7fSBhcyBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFByb2R1Y3Q+XG5cbiAgICBpZiAoZmlsdGVycy5jbHViRGlzY291bnQ/Lmxlbmd0aCkge1xuICAgICAgc2V0KGZpbHRlclF1ZXJ5LCAncHJpY2Uuc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZScsIHtcbiAgICAgICAgb3BlcmF0b3I6IFdoZXJlLklOLFxuICAgICAgICB2YWx1ZTogZmlsdGVycy5jbHViRGlzY291bnQsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChmaWx0ZXJzLmJyYW5kcz8ubGVuZ3RoKSB7XG4gICAgICBmaWx0ZXJRdWVyeS5icmFuZCA9IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogZmlsdGVycy5icmFuZHMgfVxuICAgIH1cblxuICAgIGlmIChmaWx0ZXJzLmdlbmRlcj8ubGVuZ3RoKSB7XG4gICAgICBmaWx0ZXJRdWVyeS5nZW5kZXIgPSB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IGZpbHRlcnMuZ2VuZGVyIH1cbiAgICB9XG5cbiAgICBpZiAoZmlsdGVycy5wcmljZXM/Lm1pbiB8fCBmaWx0ZXJzLnByaWNlcz8ubWF4KSB7XG4gICAgICBjb25zdCBwcmljZUZpZWxkID0gZmlsdGVycy5wcmljZXMuc3Vic2NyaWJlclByaWNlID8gJ3ByaWNlLnN1YnNjcmliZXJQcmljZScgOiAncHJpY2UucHJpY2UnXG4gICAgICBjb25zdCBwcmljZUZpbHRlcnMgPSBbXG4gICAgICAgIC4uLihmaWx0ZXJzLnByaWNlcy5taW4gPyBbeyBvcGVyYXRvcjogV2hlcmUuR1RFLCB2YWx1ZTogTWF0aC5mbG9vcihmaWx0ZXJzLnByaWNlcy5taW4pIH1dIDogW10pLFxuICAgICAgICAuLi4oZmlsdGVycy5wcmljZXMubWF4ID8gW3sgb3BlcmF0b3I6IFdoZXJlLkxURSwgdmFsdWU6IE1hdGguY2VpbChmaWx0ZXJzLnByaWNlcy5tYXgpIH1dIDogW10pLFxuICAgICAgXVxuXG4gICAgICBzZXQoZmlsdGVyUXVlcnksIHByaWNlRmllbGQsIHByaWNlRmlsdGVycylcbiAgICB9XG5cbiAgICBpZiAoZmlsdGVycy5yYXRlKSB7XG4gICAgICBmaWx0ZXJRdWVyeS5yYXRlID0geyBvcGVyYXRvcjogV2hlcmUuR1RFLCB2YWx1ZTogZmlsdGVycy5yYXRlIH1cbiAgICB9XG5cbiAgICBpZiAoZmlsdGVycy50YWdzPy5sZW5ndGgpIHtcbiAgICAgIGZpbHRlclF1ZXJ5LnRhZ3NQcm9maWxlID0geyBvcGVyYXRvcjogV2hlcmUuTElLRSwgdmFsdWU6IGZpbHRlcnMudGFncyB9XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlcnMuY3VzdG9tT3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICBmaWx0ZXJRdWVyeS5maWx0ZXJzID0geyBvcGVyYXRvcjogV2hlcmUuTElLRSwgdmFsdWU6IGZpbHRlcnMuY3VzdG9tT3B0aW9ucyB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlclF1ZXJ5XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,52 @@
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogSortHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
47
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogSortHelper }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogSortHelper, decorators: [{
50
+ type: Injectable
51
+ }] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1zb3J0LmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9oZWxwZXJzL2NhdGFsb2ctc29ydC5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7QUFJMUMsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixjQUFjLENBQUMsSUFBWTtRQUN6QixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksS0FBSyxlQUFlO1lBQUUsT0FBTyxFQUFFLENBQUE7UUFFaEQsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssY0FBYztnQkFDakIsT0FBTztvQkFDTCxhQUFhLEVBQUUsTUFBTTtvQkFDckIsSUFBSSxFQUFFLE1BQU07b0JBQ1osS0FBSyxFQUFFLE1BQU07b0JBQ2IsSUFBSSxFQUFFLEtBQUs7aUJBQ1osQ0FBQTtZQUVILEtBQUssZUFBZTtnQkFDbEIsT0FBTztvQkFDTCxlQUFlLEVBQUUsTUFBTTtvQkFDdkIsSUFBSSxFQUFFLE1BQU07b0JBQ1osYUFBYSxFQUFFLE1BQU07aUJBQ2YsQ0FBQTtZQUVWLEtBQUssY0FBYztnQkFDakIsT0FBTztvQkFDTCxlQUFlLEVBQUUsS0FBSztvQkFDdEIsSUFBSSxFQUFFLE1BQU07b0JBQ1osYUFBYSxFQUFFLE1BQU07aUJBQ2YsQ0FBQTtZQUVWLEtBQUssYUFBYTtnQkFDaEIsT0FBTztvQkFDTCxJQUFJLEVBQUUsTUFBTTtvQkFDWixhQUFhLEVBQUUsTUFBTTtvQkFDckIsS0FBSyxFQUFFLE1BQU07b0JBQ2IsSUFBSSxFQUFFLEtBQUs7aUJBQ1osQ0FBQTtZQUVILEtBQUssTUFBTTtnQkFDVCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFBO1lBRTlCLEtBQUssa0JBQWtCO2dCQUNyQixPQUFPO29CQUNMLDRCQUE0QixFQUFFLE1BQU07b0JBQ3BDLElBQUksRUFBRSxNQUFNO29CQUNaLGFBQWEsRUFBRSxNQUFNO2lCQUNmLENBQUE7WUFFVjtnQkFDRSxPQUFPLEVBQUUsQ0FBQTtRQUNiLENBQUM7SUFDSCxDQUFDOytHQWhEVSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgUHJvZHVjdCwgUmVwb3NpdG9yeU9yZGVyQnkgfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhdGFsb2dTb3J0SGVscGVyIHtcbiAgYnVpbGRTb3J0UXVlcnkoc29ydDogc3RyaW5nKTogUmVwb3NpdG9yeU9yZGVyQnk8UHJvZHVjdD4ge1xuICAgIGlmICghc29ydCB8fCBzb3J0ID09PSAnbW9zdC1yZWxldmFudCcpIHJldHVybiB7fVxuXG4gICAgc3dpdGNoIChzb3J0KSB7XG4gICAgICBjYXNlICdiZXN0LXNlbGxlcnMnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNob3BwaW5nQ291bnQ6ICdkZXNjJyxcbiAgICAgICAgICByYXRlOiAnZGVzYycsXG4gICAgICAgICAgc3RvY2s6ICdkZXNjJyxcbiAgICAgICAgICBuYW1lOiAnYXNjJyxcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdiaWdnZXN0LXByaWNlJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdWJzY3JpYmVyUHJpY2U6ICdkZXNjJyxcbiAgICAgICAgICByYXRlOiAnZGVzYycsXG4gICAgICAgICAgc2hvcHBpbmdDb3VudDogJ2Rlc2MnLFxuICAgICAgICB9IGFzIGFueVxuXG4gICAgICBjYXNlICdsb3dlc3QtcHJpY2UnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN1YnNjcmliZXJQcmljZTogJ2FzYycsXG4gICAgICAgICAgcmF0ZTogJ2Rlc2MnLFxuICAgICAgICAgIHNob3BwaW5nQ291bnQ6ICdkZXNjJyxcbiAgICAgICAgfSBhcyBhbnlcblxuICAgICAgY2FzZSAnYmVzdC1yYXRpbmcnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJhdGU6ICdkZXNjJyxcbiAgICAgICAgICBzaG9wcGluZ0NvdW50OiAnZGVzYycsXG4gICAgICAgICAgc3RvY2s6ICdkZXNjJyxcbiAgICAgICAgICBuYW1lOiAnYXNjJyxcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICduZXdzJzpcbiAgICAgICAgcmV0dXJuIHsgY3JlYXRlZEF0OiAnZGVzYycgfVxuXG4gICAgICBjYXNlICdiaWdnZXN0LWRpc2NvdW50JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlOiAnZGVzYycsXG4gICAgICAgICAgcmF0ZTogJ2Rlc2MnLFxuICAgICAgICAgIHNob3BwaW5nQ291bnQ6ICdkZXNjJyxcbiAgICAgICAgfSBhcyBhbnlcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHt9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export * from './brand-manager.helper';
2
+ export * from './catalog-filter.helper';
3
+ export * from './catalog-sort.helper';
4
+ export * from './product-fields.helper';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFBO0FBQ3RDLGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLHlCQUF5QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9icmFuZC1tYW5hZ2VyLmhlbHBlcidcbmV4cG9ydCAqIGZyb20gJy4vY2F0YWxvZy1maWx0ZXIuaGVscGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9jYXRhbG9nLXNvcnQuaGVscGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0LWZpZWxkcy5oZWxwZXInXG4iXX0=
@@ -0,0 +1,40 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ProductFieldsHelper {
4
+ getStandardFields() {
5
+ return [
6
+ 'id',
7
+ 'name',
8
+ 'slug',
9
+ 'images',
10
+ 'miniatures',
11
+ 'price',
12
+ 'stock',
13
+ 'published',
14
+ 'CEST',
15
+ 'EAN',
16
+ 'NCM',
17
+ 'brand',
18
+ 'costPrice',
19
+ 'hasVariants',
20
+ 'isKit',
21
+ 'sku',
22
+ 'rate',
23
+ 'tagsProfile',
24
+ 'tagsCollection',
25
+ 'type',
26
+ 'shoppingCount',
27
+ 'gender',
28
+ 'createdAt',
29
+ 'label',
30
+ 'outlet',
31
+ 'group',
32
+ ];
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProductFieldsHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
35
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProductFieldsHelper }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProductFieldsHelper, decorators: [{
38
+ type: Injectable
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1maWVsZHMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2hlbHBlcnMvcHJvZHVjdC1maWVsZHMuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7O0FBSTFDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsaUJBQWlCO1FBQ2YsT0FBTztZQUNMLElBQUk7WUFDSixNQUFNO1lBQ04sTUFBTTtZQUNOLFFBQVE7WUFDUixZQUFZO1lBQ1osT0FBTztZQUNQLE9BQU87WUFDUCxXQUFXO1lBQ1gsTUFBTTtZQUNOLEtBQUs7WUFDTCxLQUFLO1lBQ0wsT0FBTztZQUNQLFdBQVc7WUFDWCxhQUFhO1lBQ2IsT0FBTztZQUNQLEtBQUs7WUFDTCxNQUFNO1lBQ04sYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sZUFBZTtZQUNmLFFBQVE7WUFDUixXQUFXO1lBQ1gsT0FBTztZQUNQLFFBQVE7WUFDUixPQUFPO1NBQ1IsQ0FBQTtJQUNILENBQUM7K0dBOUJVLG1CQUFtQjttSEFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOb25GdW5jdGlvblByb3BlcnR5TmFtZXMsIFByb2R1Y3QgfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RGaWVsZHNIZWxwZXIge1xuICBnZXRTdGFuZGFyZEZpZWxkcygpOiBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8UHJvZHVjdD5bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdpZCcsXG4gICAgICAnbmFtZScsXG4gICAgICAnc2x1ZycsXG4gICAgICAnaW1hZ2VzJyxcbiAgICAgICdtaW5pYXR1cmVzJyxcbiAgICAgICdwcmljZScsXG4gICAgICAnc3RvY2snLFxuICAgICAgJ3B1Ymxpc2hlZCcsXG4gICAgICAnQ0VTVCcsXG4gICAgICAnRUFOJyxcbiAgICAgICdOQ00nLFxuICAgICAgJ2JyYW5kJyxcbiAgICAgICdjb3N0UHJpY2UnLFxuICAgICAgJ2hhc1ZhcmlhbnRzJyxcbiAgICAgICdpc0tpdCcsXG4gICAgICAnc2t1JyxcbiAgICAgICdyYXRlJyxcbiAgICAgICd0YWdzUHJvZmlsZScsXG4gICAgICAndGFnc0NvbGxlY3Rpb24nLFxuICAgICAgJ3R5cGUnLFxuICAgICAgJ3Nob3BwaW5nQ291bnQnLFxuICAgICAgJ2dlbmRlcicsXG4gICAgICAnY3JlYXRlZEF0JyxcbiAgICAgICdsYWJlbCcsXG4gICAgICAnb3V0bGV0JyxcbiAgICAgICdncm91cCcsXG4gICAgXVxuICB9XG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ export * from './adapters';
2
+ export * from './catalog.service';
3
+ export * from './category.service';
4
+ export * from './enums';
5
+ export * from './models';
6
+ export * from './types';
7
+ export * from './wishlist.service';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsb0JBQW9CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FkYXB0ZXJzJ1xuZXhwb3J0ICogZnJvbSAnLi9jYXRhbG9nLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2NhdGVnb3J5LnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2VudW1zJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJ1xuZXhwb3J0ICogZnJvbSAnLi93aXNobGlzdC5zZXJ2aWNlJ1xuIl19
@@ -0,0 +1,10 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Type } from 'class-transformer';
3
+ import { Category } from '@infrab4a/connect';
4
+ export class CategoryWithTree extends Category {
5
+ }
6
+ __decorate([
7
+ Type(() => CategoryWithTree),
8
+ __metadata("design:type", Array)
9
+ ], CategoryWithTree.prototype, "children", void 0);
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktd2l0aC10cmVlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL21vZGVscy9jYXRlZ29yeS13aXRoLXRyZWUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFNUMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFFBQVE7Q0FHN0M7QUFEQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzs7a0RBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInXG5pbXBvcnQgeyBDYXRlZ29yeSB9IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xuXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlXaXRoVHJlZSBleHRlbmRzIENhdGVnb3J5IHtcbiAgQFR5cGUoKCkgPT4gQ2F0ZWdvcnlXaXRoVHJlZSlcbiAgY2hpbGRyZW4/OiBDYXRlZ29yeVdpdGhUcmVlW11cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './category-with-tree.model';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhdGVnb3J5LXdpdGgtdHJlZS5tb2RlbCdcbiJdfQ==
@@ -0,0 +1,33 @@
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogHelpersService, deps: [{ token: i1.CatalogOperationsFacade }, { token: i2.ProductManagementFacade }], target: i0.ɵɵFactoryTarget.Injectable }); }
28
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogHelpersService }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogHelpersService, decorators: [{
31
+ type: Injectable
32
+ }], ctorParameters: () => [{ type: i1.CatalogOperationsFacade }, { type: i2.ProductManagementFacade }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1oZWxwZXJzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvc2VydmljZXMvY2F0YWxvZy1oZWxwZXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUsxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTs7OztBQUdyRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQ21CLGlCQUEwQyxFQUMxQyxpQkFBMEM7UUFEMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5QjtRQUMxQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXlCO0lBQzFELENBQUM7SUFFSixlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDakQsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMvQyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQ2pELENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDakQsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO0lBQ3BELENBQUM7K0dBeEJVLHFCQUFxQjttSEFBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IFByb2R1Y3RTZXJ2aWNlc0ZhY2FkZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnXG5pbXBvcnQgeyBCcmFuZE1hbmFnZXJIZWxwZXIsIENhdGFsb2dGaWx0ZXJIZWxwZXIsIENhdGFsb2dTb3J0SGVscGVyLCBQcm9kdWN0RmllbGRzSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycydcblxuaW1wb3J0IHsgQ2F0YWxvZ09wZXJhdGlvbnNGYWNhZGUgfSBmcm9tICcuL2NhdGFsb2ctb3BlcmF0aW9ucy5mYWNhZGUnXG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlbWVudEZhY2FkZSB9IGZyb20gJy4vcHJvZHVjdC1tYW5hZ2VtZW50LmZhY2FkZSdcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhdGFsb2dIZWxwZXJzU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2F0YWxvZ09wZXJhdGlvbnM6IENhdGFsb2dPcGVyYXRpb25zRmFjYWRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdE1hbmFnZW1lbnQ6IFByb2R1Y3RNYW5hZ2VtZW50RmFjYWRlLFxuICApIHt9XG5cbiAgZ2V0RmlsdGVySGVscGVyKCk6IENhdGFsb2dGaWx0ZXJIZWxwZXIge1xuICAgIHJldHVybiB0aGlzLmNhdGFsb2dPcGVyYXRpb25zLmdldEZpbHRlckhlbHBlcigpXG4gIH1cblxuICBnZXRTb3J0SGVscGVyKCk6IENhdGFsb2dTb3J0SGVscGVyIHtcbiAgICByZXR1cm4gdGhpcy5jYXRhbG9nT3BlcmF0aW9ucy5nZXRTb3J0SGVscGVyKClcbiAgfVxuXG4gIGdldEZpZWxkc0hlbHBlcigpOiBQcm9kdWN0RmllbGRzSGVscGVyIHtcbiAgICByZXR1cm4gdGhpcy5jYXRhbG9nT3BlcmF0aW9ucy5nZXRGaWVsZHNIZWxwZXIoKVxuICB9XG5cbiAgZ2V0QnJhbmRNYW5hZ2VyKCk6IEJyYW5kTWFuYWdlckhlbHBlciB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjdE1hbmFnZW1lbnQuZ2V0QnJhbmRNYW5hZ2VyKClcbiAgfVxuXG4gIGdldFByb2R1Y3RTZXJ2aWNlcygpOiBQcm9kdWN0U2VydmljZXNGYWNhZGUge1xuICAgIHJldHVybiB0aGlzLnByb2R1Y3RNYW5hZ2VtZW50LmdldFByb2R1Y3RTZXJ2aWNlcygpXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { CatalogFilterHelper, CatalogSortHelper, ProductFieldsHelper } from '../helpers';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../helpers";
5
+ export class CatalogOperationsFacade {
6
+ constructor(filterHelper, sortHelper, fieldsHelper) {
7
+ this.filterHelper = filterHelper;
8
+ this.sortHelper = sortHelper;
9
+ this.fieldsHelper = fieldsHelper;
10
+ }
11
+ getFilterHelper() {
12
+ return this.filterHelper;
13
+ }
14
+ getSortHelper() {
15
+ return this.sortHelper;
16
+ }
17
+ getFieldsHelper() {
18
+ return this.fieldsHelper;
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogOperationsFacade, deps: [{ token: i1.CatalogFilterHelper }, { token: i1.CatalogSortHelper }, { token: i1.ProductFieldsHelper }], target: i0.ɵɵFactoryTarget.Injectable }); }
21
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogOperationsFacade }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogOperationsFacade, decorators: [{
24
+ type: Injectable
25
+ }], ctorParameters: () => [{ type: i1.CatalogFilterHelper }, { type: i1.CatalogSortHelper }, { type: i1.ProductFieldsHelper }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1vcGVyYXRpb25zLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9zZXJ2aWNlcy9jYXRhbG9nLW9wZXJhdGlvbnMuZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFBOzs7QUFHeEYsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUNtQixZQUFpQyxFQUNqQyxVQUE2QixFQUM3QixZQUFpQztRQUZqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsaUJBQVksR0FBWixZQUFZLENBQXFCO0lBQ2pELENBQUM7SUFFSixlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFBO0lBQzFCLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFBO0lBQzFCLENBQUM7K0dBakJVLHVCQUF1QjttSEFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IENhdGFsb2dGaWx0ZXJIZWxwZXIsIENhdGFsb2dTb3J0SGVscGVyLCBQcm9kdWN0RmllbGRzSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhdGFsb2dPcGVyYXRpb25zRmFjYWRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJIZWxwZXI6IENhdGFsb2dGaWx0ZXJIZWxwZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3J0SGVscGVyOiBDYXRhbG9nU29ydEhlbHBlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkc0hlbHBlcjogUHJvZHVjdEZpZWxkc0hlbHBlcixcbiAgKSB7fVxuXG4gIGdldEZpbHRlckhlbHBlcigpOiBDYXRhbG9nRmlsdGVySGVscGVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJIZWxwZXJcbiAgfVxuXG4gIGdldFNvcnRIZWxwZXIoKTogQ2F0YWxvZ1NvcnRIZWxwZXIge1xuICAgIHJldHVybiB0aGlzLnNvcnRIZWxwZXJcbiAgfVxuXG4gIGdldEZpZWxkc0hlbHBlcigpOiBQcm9kdWN0RmllbGRzSGVscGVyIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZHNIZWxwZXJcbiAgfVxufVxuIl19
@@ -0,0 +1,25 @@
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogRepositoryService, deps: [{ token: i1.ProductCatalogFacade }, { token: 'ProductServicesFacade' }], target: i0.ɵɵFactoryTarget.Injectable }); }
17
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogRepositoryService }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogRepositoryService, decorators: [{
20
+ type: Injectable
21
+ }], ctorParameters: () => [{ type: i1.ProductCatalogFacade }, { type: undefined, decorators: [{
22
+ type: Inject,
23
+ args: ['ProductServicesFacade']
24
+ }] }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1yZXBvc2l0b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvc2VydmljZXMvY2F0YWxvZy1yZXBvc2l0b3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFBOzs7QUFHakQsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNtQixjQUFvQyxFQUNILGVBQXNDO1FBRHZFLG1CQUFjLEdBQWQsY0FBYyxDQUFzQjtRQUNILG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtJQUN2RixDQUFDO0lBRUosaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFBO0lBQzdCLENBQUM7K0dBWlUsd0JBQXdCLHNEQUd6Qix1QkFBdUI7bUhBSHRCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVTs7MEJBSU4sTUFBTTsyQkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBQcm9kdWN0U2VydmljZXNGYWNhZGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJ1xuaW1wb3J0IHsgUHJvZHVjdENhdGFsb2dGYWNhZGUgfSBmcm9tICcuLi9mYWNhZGVzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ1JlcG9zaXRvcnlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0Q2F0YWxvZzogUHJvZHVjdENhdGFsb2dGYWNhZGUsXG4gICAgQEluamVjdCgnUHJvZHVjdFNlcnZpY2VzRmFjYWRlJykgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0U2VydmljZXM6IFByb2R1Y3RTZXJ2aWNlc0ZhY2FkZSxcbiAgKSB7fVxuXG4gIGdldFByb2R1Y3RDYXRhbG9nKCk6IFByb2R1Y3RDYXRhbG9nRmFjYWRlIHtcbiAgICByZXR1cm4gdGhpcy5wcm9kdWN0Q2F0YWxvZ1xuICB9XG5cbiAgZ2V0UHJvZHVjdFNlcnZpY2VzKCk6IFByb2R1Y3RTZXJ2aWNlc0ZhY2FkZSB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjdFNlcnZpY2VzXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export { CatalogHelpersService } from './catalog-helpers.service';
2
+ export { CatalogOperationsFacade } from './catalog-operations.facade';
3
+ export * from './catalog-repository.service';
4
+ export { ProductManagementFacade } from './product-management.facade';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDckUsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENhdGFsb2dIZWxwZXJzU2VydmljZSB9IGZyb20gJy4vY2F0YWxvZy1oZWxwZXJzLnNlcnZpY2UnXG5leHBvcnQgeyBDYXRhbG9nT3BlcmF0aW9uc0ZhY2FkZSB9IGZyb20gJy4vY2F0YWxvZy1vcGVyYXRpb25zLmZhY2FkZSdcbmV4cG9ydCAqIGZyb20gJy4vY2F0YWxvZy1yZXBvc2l0b3J5LnNlcnZpY2UnXG5leHBvcnQgeyBQcm9kdWN0TWFuYWdlbWVudEZhY2FkZSB9IGZyb20gJy4vcHJvZHVjdC1tYW5hZ2VtZW50LmZhY2FkZSdcbiJdfQ==
@@ -0,0 +1,25 @@
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProductManagementFacade, deps: [{ token: i1.BrandManagerHelper }, { token: 'ProductServicesFacade' }], target: i0.ɵɵFactoryTarget.Injectable }); }
17
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProductManagementFacade }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProductManagementFacade, decorators: [{
20
+ type: Injectable
21
+ }], ctorParameters: () => [{ type: i1.BrandManagerHelper }, { type: undefined, decorators: [{
22
+ type: Inject,
23
+ args: ['ProductServicesFacade']
24
+ }] }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2VtZW50LmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9zZXJ2aWNlcy9wcm9kdWN0LW1hbmFnZW1lbnQuZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBR2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQTs7O0FBRy9DLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFDbUIsWUFBZ0MsRUFDQyxlQUFzQztRQUR2RSxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDQyxvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7SUFDdkYsQ0FBQztJQUVKLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUE7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUE7SUFDN0IsQ0FBQzsrR0FaVSx1QkFBdUIsb0RBR3hCLHVCQUF1QjttSEFIdEIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOzswQkFJTixNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IFByb2R1Y3RTZXJ2aWNlc0ZhY2FkZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnXG5pbXBvcnQgeyBCcmFuZE1hbmFnZXJIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUHJvZHVjdE1hbmFnZW1lbnRGYWNhZGUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJyYW5kTWFuYWdlcjogQnJhbmRNYW5hZ2VySGVscGVyLFxuICAgIEBJbmplY3QoJ1Byb2R1Y3RTZXJ2aWNlc0ZhY2FkZScpIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFNlcnZpY2VzOiBQcm9kdWN0U2VydmljZXNGYWNhZGUsXG4gICkge31cblxuICBnZXRCcmFuZE1hbmFnZXIoKTogQnJhbmRNYW5hZ2VySGVscGVyIHtcbiAgICByZXR1cm4gdGhpcy5icmFuZE1hbmFnZXJcbiAgfVxuXG4gIGdldFByb2R1Y3RTZXJ2aWNlcygpOiBQcm9kdWN0U2VydmljZXNGYWNhZGUge1xuICAgIHJldHVybiB0aGlzLnByb2R1Y3RTZXJ2aWNlc1xuICB9XG59XG4iXX0=
@@ -0,0 +1,133 @@
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CategorySearchStrategy, deps: [{ token: i1.CatalogRepositoryService }, { token: i1.CatalogHelpersService }], target: i0.ɵɵFactoryTarget.Injectable }); }
128
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CategorySearchStrategy }); }
129
+ }
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CategorySearchStrategy, decorators: [{
131
+ type: Injectable
132
+ }], ctorParameters: () => [{ type: i1.CatalogRepositoryService }, { type: i1.CatalogHelpersService }] });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktc2VhcmNoLnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL3N0cmF0ZWdpZXMvY2F0ZWdvcnktc2VhcmNoLnN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBeUQsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBR2hILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTs7O0FBUzdFLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFDbUIsaUJBQTJDLEVBQzNDLGNBQXFDO1FBRHJDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0MsbUJBQWMsR0FBZCxjQUFjLENBQXVCO0lBQ3JELENBQUM7SUFFSixLQUFLLENBQUMsTUFBTSxDQUNWLE1BQTJCLEVBQzNCLElBQVcsRUFDWCxZQUFpRDtRQUVqRCxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQTtRQUU5RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUE7UUFDcEUsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtRQUV4RSxJQUFJLElBQUksS0FBSyxlQUFlLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztnQkFDakMsUUFBUTtnQkFDUixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sSUFBSTtnQkFD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TSxFQUFFLENBQU0sRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN0RixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsSUFBSTthQUNsQyxNQUFNLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDN0QsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFDbkMsTUFBTSxxQkFBcUIsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ2hFLE1BQU0sV0FBVyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRTVGLE9BQU87WUFDTCxJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUs7WUFDeEIsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO1lBQzVCLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTztZQUM1QixRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7U0FDL0IsQ0FBQTtJQUNILENBQUM7K0dBekpVLHNCQUFzQjttSEFBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBpc0VtcHR5LCBQcm9kdWN0LCBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zLCBSZXBvc2l0b3J5RmluZFJlc3VsdCwgU2hvcHMsIFdoZXJlIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5cbmltcG9ydCB7IENhdGFsb2dTZWFyY2hQYXJhbXMsIENhdGFsb2dTZWFyY2hTdHJhdGVneSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnXG5pbXBvcnQgeyBDYXRhbG9nSGVscGVyc1NlcnZpY2UsIENhdGFsb2dSZXBvc2l0b3J5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJ1xuXG5pbXBvcnQge1xuICBGaW5kQW5kU29ydEJ5TW9zdFJlbGV2YW50UGFyYW1zLFxuICBTZWFyY2hEZWZhdWx0UGFyYW1zLFxuICBTZWFyY2hXaXRoTW9zdFJlbGV2YW50UGFyYW1zLFxufSBmcm9tICcuL3R5cGVzL3N0cmF0ZWd5LXBhcmFtcy50eXBlJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlTZWFyY2hTdHJhdGVneSBpbXBsZW1lbnRzIENhdGFsb2dTZWFyY2hTdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVwb3NpdG9yeVNlcnZpY2U6IENhdGFsb2dSZXBvc2l0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhlbHBlcnNTZXJ2aWNlOiBDYXRhbG9nSGVscGVyc1NlcnZpY2UsXG4gICkge31cblxuICBhc3luYyBzZWFyY2goXG4gICAgcGFyYW1zOiBDYXRhbG9nU2VhcmNoUGFyYW1zLFxuICAgIHNob3A6IFNob3BzLFxuICAgIG9wdGlvbnNDYWNoZT86IHsgY2FjaGU/OiBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zIH0sXG4gICk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8UHJvZHVjdD4+IHtcbiAgICBjb25zdCB7IGNhdGVnb3J5LCBmaWx0ZXJzLCBsaW1pdHMsIHNvcnQsIG1haW5HZW5kZXIgfSA9IHBhcmFtc1xuXG4gICAgaWYgKCFjYXRlZ29yeSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYXRlZ29yeSBpcyByZXF1aXJlZCBmb3IgQ2F0ZWdvcnlTZWFyY2hTdHJhdGVneScpXG4gICAgfVxuXG4gICAgY29uc3QgZmllbGRzID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWVsZHNIZWxwZXIoKS5nZXRTdGFuZGFyZEZpZWxkcygpXG5cbiAgICBpZiAoc29ydCA9PT0gJ21vc3QtcmVsZXZhbnQnKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZWFyY2hXaXRoTW9zdFJlbGV2YW50KHtcbiAgICAgICAgY2F0ZWdvcnksXG4gICAgICAgIGZpbHRlcnMsXG4gICAgICAgIGxpbWl0cyxcbiAgICAgICAgc2hvcCxcbiAgICAgICAgbWFpbkdlbmRlcixcbiAgICAgICAgb3B0aW9uc0NhY2hlLFxuICAgICAgICBmaWVsZHMsXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNlYXJjaERlZmF1bHQoe1xuICAgICAgY2F0ZWdvcnksXG4gICAgICBmaWx0ZXJzLFxuICAgICAgbGltaXRzLFxuICAgICAgc2hvcCxcbiAgICAgIG1haW5HZW5kZXIsXG4gICAgICBzb3J0LFxuICAgICAgb3B0aW9uc0NhY2hlLFxuICAgICAgZmllbGRzLFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNlYXJjaFdpdGhNb3N0UmVsZXZhbnQocGFyYW1zOiBTZWFyY2hXaXRoTW9zdFJlbGV2YW50UGFyYW1zKSB7XG4gICAgY29uc3QgeyBjYXRlZ29yeSwgZmlsdGVycywgc2hvcCwgb3B0aW9uc0NhY2hlIH0gPSBwYXJhbXNcbiAgICBjb25zdCBtb3N0UmVsZXZhbnQgPSBjYXRlZ29yeS5pc1dpc2hsaXN0ID8gW10gOiBjYXRlZ29yeS5nZXRNb3N0UmVsZXZhbnRCeVNob3Aoc2hvcClcbiAgICBjb25zdCBwcm9kdWN0c0lkcyA9IGF3YWl0IHRoaXMuZ2V0UHJvZHVjdElkcyhjYXRlZ29yeSwgZmlsdGVycywgb3B0aW9uc0NhY2hlKVxuXG4gICAgcmV0dXJuIHRoaXMuZmluZEFuZFNvcnRCeU1vc3RSZWxldmFudCh7XG4gICAgICBtb3N0UmVsZXZhbnRzOiBtb3N0UmVsZXZhbnQsXG4gICAgICBwcm9kdWN0SWRzOiBwcm9kdWN0c0lkcyxcbiAgICAgIGZpbHRlcnM6IHBhcmFtcy5maWx0ZXJzLFxuICAgICAgbGltaXRzOiBwYXJhbXMubGltaXRzLFxuICAgICAgc2hvcDogcGFyYW1zLnNob3AsXG4gICAgICBtYWluR2VuZGVyOiBwYXJhbXMubWFpbkdlbmRlcixcbiAgICAgIG9wdGlvbnNDYWNoZTogcGFyYW1zLm9wdGlvbnNDYWNoZSxcbiAgICAgIGZpZWxkczogcGFyYW1zLmZpZWxkcyxcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZWFyY2hEZWZhdWx0KHBhcmFtczogU2VhcmNoRGVmYXVsdFBhcmFtcykge1xuICAgIGNvbnN0IHsgY2F0ZWdvcnksIGZpbHRlcnMsIGxpbWl0cywgc29ydCwgb3B0aW9uc0NhY2hlLCBmaWVsZHMgfSA9IHBhcmFtc1xuICAgIGNvbnN0IHByb2R1Y3RDYXRhbG9nID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZS5nZXRQcm9kdWN0Q2F0YWxvZygpXG4gICAgY29uc3QgZmlsdGVySGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWx0ZXJIZWxwZXIoKVxuICAgIGNvbnN0IHNvcnRIZWxwZXIgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldFNvcnRIZWxwZXIoKVxuXG4gICAgY29uc3QgcmVwb1BhcmFtcyA9IHtcbiAgICAgIGZpZWxkcyxcbiAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgLi4uKGF3YWl0IHByb2R1Y3RDYXRhbG9nLmNhdGVnb3J5U3RydWN0dXJlQWRhcHRlci5idWlsZFByb2R1Y3RGaWx0ZXJCeUNhdGVnb3J5KGNhdGVnb3J5KSksXG4gICAgICAgIC4uLmZpbHRlckhlbHBlci5idWlsZEZpbHRlclF1ZXJ5KGZpbHRlcnMgfHwge30pLFxuICAgICAgfSxcbiAgICAgIC4uLihzb3J0ID8geyBvcmRlckJ5OiBzb3J0SGVscGVyLmJ1aWxkU29ydFF1ZXJ5KHNvcnQpIH0gOiB7fSksXG4gICAgICBsaW1pdHMsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIG1pbmltYWw6IFsncHJpY2UnXSxcbiAgICAgICAgbWF4aW11bTogWydwcmljZSddLFxuICAgICAgICBkaXN0aW5jdDogWydicmFuZCddLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvZHVjdENhdGFsb2cucHJvZHVjdFJlcG9zaXRvcnkuZmluZENhdGFsb2cocmVwb1BhcmFtcywgbnVsbCwgb3B0aW9uc0NhY2hlKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRQcm9kdWN0SWRzKGNhdGVnb3J5OiBhbnksIGZpbHRlcnM6IGFueSwgb3B0aW9uc0NhY2hlOiBhbnkpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgcHJvZHVjdENhdGFsb2cgPSB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmdldFByb2R1Y3RDYXRhbG9nKClcbiAgICBjb25zdCBmaWx0ZXJIZWxwZXIgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldEZpbHRlckhlbHBlcigpXG5cbiAgICByZXR1cm4gcHJvZHVjdENhdGFsb2cucHJvZHVjdFJlcG9zaXRvcnlcbiAgICAgIC5maW5kQ2F0YWxvZyhcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkczogWydpZCddLFxuICAgICAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgICAgIC4uLihhd2FpdCBwcm9kdWN0Q2F0YWxvZy5jYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIuYnVpbGRQcm9kdWN0RmlsdGVyQnlDYXRlZ29yeShjYXRlZ29yeSkpLFxuICAgICAgICAgICAgLi4uZmlsdGVySGVscGVyLmJ1aWxkRmlsdGVyUXVlcnkoZmlsdGVycyB8fCB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICBvcHRpb25zQ2FjaGUsXG4gICAgICApXG4gICAgICAudGhlbigocHJvZHVjdHMpID0+IHByb2R1Y3RzLmRhdGEubWFwKChwcm9kdWN0KSA9PiBwcm9kdWN0LmlkKSlcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmluZEFuZFNvcnRCeU1vc3RSZWxldmFudChcbiAgICBwYXJhbXM6IEZpbmRBbmRTb3J0QnlNb3N0UmVsZXZhbnRQYXJhbXMsXG4gICk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8UHJvZHVjdD4+IHtcbiAgICBjb25zdCB7IG1vc3RSZWxldmFudHMsIHByb2R1Y3RJZHMsIGZpbHRlcnMsIHNob3AsIG1haW5HZW5kZXIsIG9wdGlvbnNDYWNoZSwgZmllbGRzLCBsaW1pdHMgfSA9IHBhcmFtc1xuICAgIGNvbnN0IHByb2R1Y3RDYXRhbG9nID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZS5nZXRQcm9kdWN0Q2F0YWxvZygpXG4gICAgY29uc3QgZmlsdGVySGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWx0ZXJIZWxwZXIoKVxuICAgIGNvbnN0IHNvcnRIZWxwZXIgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldFNvcnRIZWxwZXIoKVxuXG4gICAgY29uc3QgbW9zdFJlbGV2YW50UHJvZHVjdHNJZHMgPSBbLi4ubmV3IFNldChtb3N0UmVsZXZhbnRzLmNvbmNhdChwcm9kdWN0SWRzKSldXG4gICAgY29uc3QgdG90YWxSZXN1bHQgPSBhd2FpdCBwcm9kdWN0Q2F0YWxvZy5wcm9kdWN0UmVwb3NpdG9yeS5maW5kQ2F0YWxvZyhcbiAgICAgIHtcbiAgICAgICAgZmllbGRzLFxuICAgICAgICBmaWx0ZXJzOiB7XG4gICAgICAgICAgaWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogbW9zdFJlbGV2YW50UHJvZHVjdHNJZHMgfSxcbiAgICAgICAgICAuLi5maWx0ZXJIZWxwZXIuYnVpbGRGaWx0ZXJRdWVyeShmaWx0ZXJzIHx8IHt9KSxcbiAgICAgICAgfSxcbiAgICAgICAgb3JkZXJCeTogc29ydEhlbHBlci5idWlsZFNvcnRRdWVyeSgnYmVzdC1zZWxsZXJzJyksXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBtaW5pbWFsOiBbJ3ByaWNlJ10sXG4gICAgICAgICAgbWF4aW11bTogWydwcmljZSddLFxuICAgICAgICAgIC4uLihpc0VtcHR5KGZpbHRlcnM/LmJyYW5kcykgPyB7IGRpc3RpbmN0OiBbJ2JyYW5kJ10gfSA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBtYWluR2VuZGVyIHx8IChzaG9wID09PSBTaG9wcy5NRU5TTUFSS0VUID8gJ21hbGUnIDogJ2ZlbWFsZScpLFxuICAgICAgb3B0aW9uc0NhY2hlLFxuICAgIClcblxuICAgIHJldHVybiB0aGlzLnNvcnRQcm9kdWN0c0J5UmVsZXZhbmNlKHRvdGFsUmVzdWx0LCBtb3N0UmVsZXZhbnRzLCBsaW1pdHMpXG4gIH1cblxuICBwcml2YXRlIHNvcnRQcm9kdWN0c0J5UmVsZXZhbmNlKHRvdGFsUmVzdWx0OiBhbnksIG1vc3RSZWxldmFudHM6IHN0cmluZ1tdLCBsaW1pdHM6IGFueSkge1xuICAgIGNvbnN0IG1vc3RSZWxldmFudFdpdGhvdXRTdG9jayA9IHRvdGFsUmVzdWx0LmRhdGEuZmlsdGVyKFxuICAgICAgKHByb2R1Y3Q6IGFueSkgPT4gbW9zdFJlbGV2YW50cy5pbmNsdWRlcyhwcm9kdWN0LmlkKSAmJiBwcm9kdWN0LnN0b2NrLnF1YW50aXR5IDw9IDAsXG4gICAgKVxuICAgIGNvbnN0IGZpcnN0UHJvZHVjdHMgPSB0b3RhbFJlc3VsdC5kYXRhXG4gICAgICAuZmlsdGVyKChwcm9kdWN0OiBhbnkpID0+IG1vc3RSZWxldmFudHMuaW5jbHVkZXMocHJvZHVjdC5pZCkgJiYgcHJvZHVjdC5zdG9jay5xdWFudGl0eSA+IDApXG4gICAgICAuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IG1vc3RSZWxldmFudHMuaW5kZXhPZihhLmlkKSAtIG1vc3RSZWxldmFudHMuaW5kZXhPZihiLmlkKSlcbiAgICBjb25zdCBsYXN0UHJvZHVjdHMgPSB0b3RhbFJlc3VsdC5kYXRhXG4gICAgICAuZmlsdGVyKChwcm9kdWN0OiBhbnkpID0+ICFtb3N0UmVsZXZhbnRzLmluY2x1ZGVzKHByb2R1Y3QuaWQpKVxuICAgICAgLmNvbmNhdChtb3N0UmVsZXZhbnRXaXRob3V0U3RvY2spXG4gICAgY29uc3QgY2F0ZWdvcnlNb3N0UmVsZXZhbnRzID0gZmlyc3RQcm9kdWN0cy5jb25jYXQobGFzdFByb2R1Y3RzKVxuICAgIGNvbnN0IHJlc3VsdEZpbmFsID0gY2F0ZWdvcnlNb3N0UmVsZXZhbnRzLnNsaWNlKGxpbWl0cy5vZmZzZXQsIGxpbWl0cy5vZmZzZXQgKyBsaW1pdHMubGltaXQpXG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogcmVzdWx0RmluYWwsXG4gICAgICBjb3VudDogdG90YWxSZXN1bHQuY291bnQsXG4gICAgICBtYXhpbXVtOiB0b3RhbFJlc3VsdC5tYXhpbXVtLFxuICAgICAgbWluaW1hbDogdG90YWxSZXN1bHQubWluaW1hbCxcbiAgICAgIGRpc3RpbmN0OiB0b3RhbFJlc3VsdC5kaXN0aW5jdCxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './category-search.strategy';
2
+ export * from './profile-search.strategy';
3
+ export * from './term-search.strategy';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvc3RyYXRlZ2llcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsMkJBQTJCLENBQUE7QUFDekMsY0FBYyx3QkFBd0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2F0ZWdvcnktc2VhcmNoLnN0cmF0ZWd5J1xuZXhwb3J0ICogZnJvbSAnLi9wcm9maWxlLXNlYXJjaC5zdHJhdGVneSdcbmV4cG9ydCAqIGZyb20gJy4vdGVybS1zZWFyY2guc3RyYXRlZ3knXG4iXX0=