@infrab4a/connect-angular 5.5.0-alpha.2 → 5.5.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/angular-connect.module.d.ts +36 -0
  2. package/angular-elastic-search.module.d.ts +9 -0
  3. package/angular-firebase-auth.module.d.ts +11 -0
  4. package/angular-firestore.module.d.ts +17 -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/esm2020/angular-connect.module.mjs +291 -0
  18. package/esm2020/angular-elastic-search.module.mjs +34 -0
  19. package/esm2020/angular-firebase-auth.module.mjs +141 -0
  20. package/esm2020/angular-firestore.module.mjs +541 -0
  21. package/esm2020/angular-hasura-graphql.module.mjs +355 -0
  22. package/esm2020/angular-vertex-search.module.mjs +34 -0
  23. package/esm2020/consts/backend-url.const.mjs +2 -0
  24. package/esm2020/consts/category-structure.mjs +2 -0
  25. package/esm2020/consts/default-shop.const.mjs +2 -0
  26. package/esm2020/consts/es-config.const.mjs +2 -0
  27. package/esm2020/consts/firebase-const.mjs +5 -0
  28. package/esm2020/consts/hasura-options.const.mjs +2 -0
  29. package/esm2020/consts/index.mjs +9 -0
  30. package/esm2020/consts/persistence.const.mjs +2 -0
  31. package/esm2020/consts/storage-base-url.const.mjs +2 -0
  32. package/esm2020/consts/vertex-config.const.mjs +2 -0
  33. package/esm2020/helpers/index.mjs +2 -0
  34. package/esm2020/helpers/mobile-operation-system-checker.helper.mjs +7 -0
  35. package/esm2020/index.mjs +7 -0
  36. package/esm2020/infrab4a-connect-angular.mjs +5 -0
  37. package/esm2020/interfaces/catalog-strategies.interface.mjs +2 -0
  38. package/esm2020/interfaces/category-facades.interface.mjs +2 -0
  39. package/esm2020/interfaces/index.mjs +3 -0
  40. package/esm2020/persistence/cookie-data-persistence.mjs +22 -0
  41. package/esm2020/persistence/data-persistence.mjs +2 -0
  42. package/esm2020/persistence/index.mjs +3 -0
  43. package/esm2020/services/auth.service.mjs +37 -0
  44. package/esm2020/services/cart/cart-services.facade.mjs +21 -0
  45. package/esm2020/services/cart/index.mjs +2 -0
  46. package/esm2020/services/cart.service.mjs +73 -0
  47. package/esm2020/services/catalog/adapters/category-structure.adapter.mjs +2 -0
  48. package/esm2020/services/catalog/adapters/index.mjs +4 -0
  49. package/esm2020/services/catalog/adapters/new-category-structure.adapter.mjs +43 -0
  50. package/esm2020/services/catalog/adapters/old-category-structure.adapter.mjs +23 -0
  51. package/esm2020/services/catalog/catalog.service.mjs +111 -0
  52. package/esm2020/services/catalog/category.service.mjs +42 -0
  53. package/esm2020/services/catalog/context/catalog-search.context.mjs +40 -0
  54. package/esm2020/services/catalog/enums/index.mjs +2 -0
  55. package/esm2020/services/catalog/enums/product-sorts.enum.mjs +11 -0
  56. package/esm2020/services/catalog/facades/catalog-service.facade.mjs +32 -0
  57. package/esm2020/services/catalog/facades/catalog-strategies.facade.mjs +17 -0
  58. package/esm2020/services/catalog/facades/category-repository.facade.mjs +20 -0
  59. package/esm2020/services/catalog/facades/category-service.facade.mjs +30 -0
  60. package/esm2020/services/catalog/facades/index.mjs +6 -0
  61. package/esm2020/services/catalog/facades/product-catalog.facade.mjs +21 -0
  62. package/esm2020/services/catalog/helpers/brand-manager.helper.mjs +57 -0
  63. package/esm2020/services/catalog/helpers/catalog-filter.helper.mjs +44 -0
  64. package/esm2020/services/catalog/helpers/catalog-sort.helper.mjs +52 -0
  65. package/esm2020/services/catalog/helpers/index.mjs +5 -0
  66. package/esm2020/services/catalog/helpers/product-fields.helper.mjs +40 -0
  67. package/esm2020/services/catalog/index.mjs +8 -0
  68. package/esm2020/services/catalog/models/category-with-tree.model.mjs +10 -0
  69. package/esm2020/services/catalog/models/index.mjs +2 -0
  70. package/esm2020/services/catalog/services/catalog-helpers.service.mjs +33 -0
  71. package/esm2020/services/catalog/services/catalog-operations.facade.mjs +26 -0
  72. package/esm2020/services/catalog/services/catalog-repository.service.mjs +25 -0
  73. package/esm2020/services/catalog/services/index.mjs +5 -0
  74. package/esm2020/services/catalog/services/product-management.facade.mjs +25 -0
  75. package/esm2020/services/catalog/strategies/category-search.strategy.mjs +133 -0
  76. package/esm2020/services/catalog/strategies/index.mjs +4 -0
  77. package/esm2020/services/catalog/strategies/profile-search.strategy.mjs +42 -0
  78. package/esm2020/services/catalog/strategies/term-search.strategy.mjs +123 -0
  79. package/esm2020/services/catalog/strategies/types/strategy-params.type.mjs +2 -0
  80. package/esm2020/services/catalog/types/fetch-products-options.type.mjs +2 -0
  81. package/esm2020/services/catalog/types/fetch-products-params.type.mjs +2 -0
  82. package/esm2020/services/catalog/types/fetch-products-response.type.mjs +2 -0
  83. package/esm2020/services/catalog/types/index.mjs +6 -0
  84. package/esm2020/services/catalog/types/method-params.type.mjs +2 -0
  85. package/esm2020/services/catalog/types/product-sort.type.mjs +2 -0
  86. package/esm2020/services/catalog/wishlist.service.mjs +254 -0
  87. package/esm2020/services/checkout/checkout-dependencies.facade.mjs +20 -0
  88. package/esm2020/services/checkout/checkout-repositories.facade.mjs +20 -0
  89. package/esm2020/services/checkout/index.mjs +3 -0
  90. package/esm2020/services/checkout-subscription.service.mjs +55 -0
  91. package/esm2020/services/checkout.service.mjs +106 -0
  92. package/esm2020/services/coupon/coupon-repositories.facade.mjs +24 -0
  93. package/esm2020/services/coupon/index.mjs +2 -0
  94. package/esm2020/services/coupon/types/coupon-params.type.mjs +2 -0
  95. package/esm2020/services/coupon.service.mjs +248 -0
  96. package/esm2020/services/helpers/index.mjs +2 -0
  97. package/esm2020/services/helpers/util.helper.mjs +18 -0
  98. package/esm2020/services/home-shop/home-shop-repositories.facade.mjs +24 -0
  99. package/esm2020/services/home-shop/index.mjs +2 -0
  100. package/esm2020/services/home-shop.service.mjs +119 -0
  101. package/esm2020/services/index.mjs +11 -0
  102. package/esm2020/services/order-product-review.service.mjs +110 -0
  103. package/esm2020/services/order.service.mjs +30 -0
  104. package/esm2020/services/shared/configuration.facade.mjs +29 -0
  105. package/esm2020/services/shared/index.mjs +2 -0
  106. package/esm2020/services/types/index.mjs +5 -0
  107. package/esm2020/services/types/pending-product-review.type.mjs +2 -0
  108. package/esm2020/services/types/product-review-create.type.mjs +2 -0
  109. package/esm2020/services/types/required-checkout-data.type.mjs +2 -0
  110. package/esm2020/services/types/required-checkout-subscription-data.type.mjs +2 -0
  111. package/esm2020/types/firebase-app-config.type.mjs +2 -0
  112. package/esm2020/types/index.mjs +2 -0
  113. package/fesm2015/infrab4a-connect-angular.mjs +3513 -0
  114. package/fesm2015/infrab4a-connect-angular.mjs.map +1 -0
  115. package/{fesm2022 → fesm2020}/infrab4a-connect-angular.mjs +3314 -3327
  116. package/fesm2020/infrab4a-connect-angular.mjs.map +1 -0
  117. package/helpers/index.d.ts +1 -0
  118. package/helpers/mobile-operation-system-checker.helper.d.ts +3 -0
  119. package/index.d.ts +6 -755
  120. package/interfaces/catalog-strategies.interface.d.ts +31 -0
  121. package/interfaces/category-facades.interface.d.ts +6 -0
  122. package/interfaces/index.d.ts +2 -0
  123. package/package.json +15 -7
  124. package/persistence/cookie-data-persistence.d.ts +10 -0
  125. package/persistence/data-persistence.d.ts +6 -0
  126. package/persistence/index.d.ts +2 -0
  127. package/services/auth.service.d.ts +18 -0
  128. package/services/cart/cart-services.facade.d.ts +12 -0
  129. package/services/cart/index.d.ts +1 -0
  130. package/services/cart.service.d.ts +26 -0
  131. package/services/catalog/adapters/category-structure.adapter.d.ts +4 -0
  132. package/services/catalog/adapters/index.d.ts +3 -0
  133. package/services/catalog/adapters/new-category-structure.adapter.d.ts +12 -0
  134. package/services/catalog/adapters/old-category-structure.adapter.d.ts +10 -0
  135. package/services/catalog/catalog.service.d.ts +24 -0
  136. package/services/catalog/category.service.d.ts +23 -0
  137. package/services/catalog/context/catalog-search.context.d.ts +14 -0
  138. package/services/catalog/enums/index.d.ts +1 -0
  139. package/services/catalog/enums/product-sorts.enum.d.ts +9 -0
  140. package/services/catalog/facades/catalog-service.facade.d.ts +15 -0
  141. package/services/catalog/facades/catalog-strategies.facade.d.ts +10 -0
  142. package/services/catalog/facades/category-repository.facade.d.ts +9 -0
  143. package/services/catalog/facades/category-service.facade.d.ts +15 -0
  144. package/services/catalog/facades/index.d.ts +5 -0
  145. package/services/catalog/facades/product-catalog.facade.d.ts +10 -0
  146. package/services/catalog/helpers/brand-manager.helper.d.ts +14 -0
  147. package/services/catalog/helpers/catalog-filter.helper.d.ts +8 -0
  148. package/services/catalog/helpers/catalog-sort.helper.d.ts +7 -0
  149. package/services/catalog/helpers/index.d.ts +4 -0
  150. package/services/catalog/helpers/product-fields.helper.d.ts +7 -0
  151. package/services/catalog/index.d.ts +7 -0
  152. package/services/catalog/models/category-with-tree.model.d.ts +4 -0
  153. package/services/catalog/models/index.d.ts +1 -0
  154. package/services/catalog/services/catalog-helpers.service.d.ts +17 -0
  155. package/services/catalog/services/catalog-operations.facade.d.ts +13 -0
  156. package/services/catalog/services/catalog-repository.service.d.ts +12 -0
  157. package/services/catalog/services/index.d.ts +4 -0
  158. package/services/catalog/services/product-management.facade.d.ts +12 -0
  159. package/services/catalog/strategies/category-search.strategy.d.ts +19 -0
  160. package/services/catalog/strategies/index.d.ts +3 -0
  161. package/services/catalog/strategies/profile-search.strategy.d.ts +14 -0
  162. package/services/catalog/strategies/term-search.strategy.d.ts +20 -0
  163. package/services/catalog/strategies/types/strategy-params.type.d.ts +58 -0
  164. package/services/catalog/types/fetch-products-options.type.d.ts +8 -0
  165. package/services/catalog/types/fetch-products-params.type.d.ts +25 -0
  166. package/services/catalog/types/fetch-products-response.type.d.ts +19 -0
  167. package/services/catalog/types/index.d.ts +5 -0
  168. package/services/catalog/types/method-params.type.d.ts +17 -0
  169. package/services/catalog/types/product-sort.type.d.ts +2 -0
  170. package/services/catalog/wishlist.service.d.ts +59 -0
  171. package/services/checkout/checkout-dependencies.facade.d.ts +10 -0
  172. package/services/checkout/checkout-repositories.facade.d.ts +9 -0
  173. package/services/checkout/index.d.ts +2 -0
  174. package/services/checkout-subscription.service.d.ts +19 -0
  175. package/services/checkout.service.d.ts +30 -0
  176. package/services/coupon/coupon-repositories.facade.d.ts +10 -0
  177. package/services/coupon/index.d.ts +1 -0
  178. package/services/coupon/types/coupon-params.type.d.ts +13 -0
  179. package/services/coupon.service.d.ts +36 -0
  180. package/services/helpers/index.d.ts +1 -0
  181. package/services/helpers/util.helper.d.ts +3 -0
  182. package/services/home-shop/home-shop-repositories.facade.d.ts +10 -0
  183. package/services/home-shop/index.d.ts +1 -0
  184. package/services/home-shop.service.d.ts +26 -0
  185. package/services/index.d.ts +10 -0
  186. package/services/order-product-review.service.d.ts +16 -0
  187. package/services/order.service.d.ts +13 -0
  188. package/services/shared/configuration.facade.d.ts +12 -0
  189. package/services/shared/index.d.ts +1 -0
  190. package/services/types/index.d.ts +4 -0
  191. package/services/types/pending-product-review.type.d.ts +12 -0
  192. package/services/types/product-review-create.type.d.ts +14 -0
  193. package/services/types/required-checkout-data.type.d.ts +2 -0
  194. package/services/types/required-checkout-subscription-data.type.d.ts +2 -0
  195. package/types/firebase-app-config.type.d.ts +1 -0
  196. package/types/index.d.ts +1 -0
  197. package/fesm2022/infrab4a-connect-angular.mjs.map +0 -1
@@ -0,0 +1,21 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Injectable } from '@angular/core';
3
+ import { AuthService } from '../auth.service';
4
+ import { CheckoutService } from '../checkout.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../auth.service";
7
+ import * as i2 from "../checkout.service";
8
+ import * as i3 from "@angular/common/http";
9
+ export class CartServicesFacade {
10
+ constructor(authService, checkoutService, httpClient) {
11
+ this.authService = authService;
12
+ this.checkoutService = checkoutService;
13
+ this.httpClient = httpClient;
14
+ }
15
+ }
16
+ CartServicesFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CartServicesFacade, deps: [{ token: i1.AuthService }, { token: i2.CheckoutService }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
17
+ CartServicesFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CartServicesFacade });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CartServicesFacade, decorators: [{
19
+ type: Injectable
20
+ }], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i2.CheckoutService }, { type: i3.HttpClient }]; } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1zZXJ2aWNlcy5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhcnQvY2FydC1zZXJ2aWNlcy5mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTs7Ozs7QUFHckQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUNrQixXQUF3QixFQUN4QixlQUFnQyxFQUNoQyxVQUFzQjtRQUZ0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUNyQyxDQUFDOzsrR0FMTyxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuXHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi9jaGVja291dC5zZXJ2aWNlJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ2FydFNlcnZpY2VzRmFjYWRlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZWFkb25seSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICApIHt9XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export { CartServicesFacade } from './cart-services.facade';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhcnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDYXJ0U2VydmljZXNGYWNhZGUgfSBmcm9tICcuL2NhcnQtc2VydmljZXMuZmFjYWRlJ1xyXG4iXX0=
@@ -0,0 +1,73 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Checkout, LineItem } from '@infrab4a/connect';
3
+ import { of, Subject } from 'rxjs';
4
+ import { concatMap, map, tap } from 'rxjs/operators';
5
+ import { CartServicesFacade } from './cart';
6
+ import { ConfigurationFacade } from './shared';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./cart";
9
+ import * as i2 from "./shared";
10
+ export class CartService {
11
+ constructor(servicesFacade, configurationFacade) {
12
+ this.servicesFacade = servicesFacade;
13
+ this.configurationFacade = configurationFacade;
14
+ this.cartSubject = new Subject();
15
+ this.checkoutUrl = null;
16
+ this.generateCartObject = (items) => items?.reduce((cart, item) => ({
17
+ ...cart,
18
+ [item.id]: LineItem.toInstance({
19
+ ...(cart[item.id] || item),
20
+ quantity: (cart[item.id]?.quantity || 0) + (item.quantity ? item.quantity : 1),
21
+ }),
22
+ }), {}) || {};
23
+ this.checkoutUrl = this.configurationFacade.getCheckoutUrl();
24
+ }
25
+ addItem(item, quantity = 1) {
26
+ return this.servicesFacade.checkoutService.getCheckout().pipe(concatMap((checkout) => this.servicesFacade.httpClient.post(`${this.checkoutUrl}/checkoutAddItemToCart`, {
27
+ checkoutId: checkout.id,
28
+ productId: item.id,
29
+ quantity,
30
+ })), concatMap(() => this.servicesFacade.checkoutService.getCheckout()), map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)), tap((cart) => this.cartSubject.next(cart)));
31
+ }
32
+ decreaseItem(item) {
33
+ return this.servicesFacade.checkoutService.getCheckout().pipe(concatMap((checkout) => this.servicesFacade.httpClient.post(`${this.checkoutUrl}/checkoutDecreaseProductFromCart`, {
34
+ checkoutId: checkout.id,
35
+ productId: item.id,
36
+ quantity: 1,
37
+ })), concatMap(() => this.servicesFacade.checkoutService.getCheckout()), map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)), tap((cart) => this.cartSubject.next(cart)));
38
+ }
39
+ removeItem(item) {
40
+ return this.servicesFacade.checkoutService.getCheckout().pipe(concatMap((checkout) => this.servicesFacade.httpClient.post(`${this.checkoutUrl}/checkoutRemoveProductFromCart`, {
41
+ checkoutId: checkout.id,
42
+ productId: item.id,
43
+ })), concatMap(() => this.servicesFacade.checkoutService.getCheckout()), map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)), tap((cart) => this.cartSubject.next(cart)));
44
+ }
45
+ updateUserCart(user) {
46
+ return this.servicesFacade.checkoutService.getCheckout().pipe(concatMap((checkout) => this.servicesFacade.checkoutService.updateCheckoutUser(Checkout.toInstance({ ...checkout.toPlain(), user }))), concatMap((checkout) => {
47
+ return this.servicesFacade.httpClient.post(`${this.checkoutUrl}/checkoutUpdateUserCart`, {
48
+ checkoutId: checkout.id,
49
+ });
50
+ }), concatMap(() => this.servicesFacade.checkoutService.getCheckout()), map((updatedCheckout) => {
51
+ return this.generateCartObject(updatedCheckout.lineItems);
52
+ }), tap((cart) => this.cartSubject.next(cart)));
53
+ }
54
+ getCart(checkout) {
55
+ this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart));
56
+ return this.cartSubject;
57
+ }
58
+ clearCart() {
59
+ return this.servicesFacade.checkoutService.getCheckout().pipe(map((checkout) => {
60
+ this.servicesFacade.checkoutService.clearCheckoutFromSession();
61
+ return checkout;
62
+ }), concatMap((oldCheckout) => this.buildCartFromCheckout(oldCheckout)), tap((cart) => this.cartSubject.next(cart)));
63
+ }
64
+ buildCartFromCheckout(checkoutData) {
65
+ return this.servicesFacade.checkoutService.getCheckout(checkoutData).pipe(map((checkout) => checkout.lineItems), concatMap((lineItems) => of(this.generateCartObject(lineItems))));
66
+ }
67
+ }
68
+ CartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CartService, deps: [{ token: i1.CartServicesFacade }, { token: i2.ConfigurationFacade }], target: i0.ɵɵFactoryTarget.Injectable });
69
+ CartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CartService });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CartService, decorators: [{
71
+ type: Injectable
72
+ }], ctorParameters: function () { return [{ type: i1.CartServicesFacade }, { type: i2.ConfigurationFacade }]; } });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBUSxNQUFNLG1CQUFtQixDQUFBO0FBQzVELE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBR3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUE7Ozs7QUFPOUMsTUFBTSxPQUFPLFdBQVc7SUFJdEIsWUFDbUIsY0FBa0MsRUFDbEMsbUJBQXdDO1FBRHhDLG1CQUFjLEdBQWQsY0FBYyxDQUFvQjtRQUNsQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBTG5ELGdCQUFXLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUE7UUFDMUMsZ0JBQVcsR0FBVyxJQUFJLENBQUE7UUFnRzFCLHVCQUFrQixHQUFHLENBQUMsS0FBaUIsRUFBUSxFQUFFLENBQ3ZELEtBQUssRUFBRSxNQUFNLENBQ1gsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2YsR0FBRyxJQUFJO1lBQ1AsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQztnQkFDN0IsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUMxQixRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvRSxDQUFDO1NBQ0gsQ0FBQyxFQUNGLEVBQThCLENBQy9CLElBQUksRUFBRSxDQUFBO1FBcEdQLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQzlELENBQUM7SUFFRCxPQUFPLENBQUMsSUFBYyxFQUFFLFdBQW1CLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQzNELFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLHdCQUF3QixFQUFFO1lBQy9FLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRTtZQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDbEIsUUFBUTtTQUNULENBQUMsQ0FDSCxFQUNELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUNsRSxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDNUUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMzQyxDQUFBO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFjO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUMzRCxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxrQ0FBa0MsRUFBRTtZQUN6RixVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ2xCLFFBQVEsRUFBRSxDQUFDO1NBQ1osQ0FBQyxDQUNILEVBQ0QsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQ2xFLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUM1RSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzNDLENBQUE7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQzNELFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLGdDQUFnQyxFQUFFO1lBQ3ZGLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRTtZQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUU7U0FDbkIsQ0FBQyxDQUNILEVBQ0QsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQ2xFLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUM1RSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzNDLENBQUE7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVU7UUFDdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQzNELFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQzdHLEVBQ0QsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyx5QkFBeUIsRUFBRTtnQkFDdkYsVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFO2FBQ3hCLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUNsRSxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDM0QsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMzQyxDQUFBO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxRQUErQjtRQUNyQyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBRXJGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQTtJQUN6QixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUMzRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLHdCQUF3QixFQUFFLENBQUE7WUFFOUQsT0FBTyxRQUFRLENBQUE7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUMsRUFDbkUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMzQyxDQUFBO0lBQ0gsQ0FBQztJQUVPLHFCQUFxQixDQUFDLFlBQW1DO1FBQy9ELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDdkUsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQ3JDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQ2pFLENBQUE7SUFDSCxDQUFDOzt3R0FoR1UsV0FBVzs0R0FBWCxXQUFXOzJGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQ2hlY2tvdXQsIExpbmVJdGVtLCBVc2VyIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgY29uY2F0TWFwLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5cclxuaW1wb3J0IHsgUmVxdWlyZWRDaGVja291dERhdGEgfSBmcm9tICcuL3R5cGVzJ1xyXG5pbXBvcnQgeyBDYXJ0U2VydmljZXNGYWNhZGUgfSBmcm9tICcuL2NhcnQnXHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25GYWNhZGUgfSBmcm9tICcuL3NoYXJlZCdcclxuXHJcbmV4cG9ydCB0eXBlIENhcnQgPSB7XHJcbiAgW2lkOiBzdHJpbmddOiBMaW5lSXRlbVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYXJ0U2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjYXJ0U3ViamVjdDogU3ViamVjdDxDYXJ0PiA9IG5ldyBTdWJqZWN0KClcclxuICBwcml2YXRlIGNoZWNrb3V0VXJsOiBzdHJpbmcgPSBudWxsXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlc0ZhY2FkZTogQ2FydFNlcnZpY2VzRmFjYWRlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWd1cmF0aW9uRmFjYWRlOiBDb25maWd1cmF0aW9uRmFjYWRlLFxyXG4gICkge1xyXG4gICAgdGhpcy5jaGVja291dFVybCA9IHRoaXMuY29uZmlndXJhdGlvbkZhY2FkZS5nZXRDaGVja291dFVybCgpXHJcbiAgfVxyXG5cclxuICBhZGRJdGVtKGl0ZW06IExpbmVJdGVtLCBxdWFudGl0eTogbnVtYmVyID0gMSk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZXNGYWNhZGUuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cclxuICAgICAgICB0aGlzLnNlcnZpY2VzRmFjYWRlLmh0dHBDbGllbnQucG9zdChgJHt0aGlzLmNoZWNrb3V0VXJsfS9jaGVja291dEFkZEl0ZW1Ub0NhcnRgLCB7XHJcbiAgICAgICAgICBjaGVja291dElkOiBjaGVja291dC5pZCxcclxuICAgICAgICAgIHByb2R1Y3RJZDogaXRlbS5pZCxcclxuICAgICAgICAgIHF1YW50aXR5LFxyXG4gICAgICAgIH0pLFxyXG4gICAgICApLFxyXG4gICAgICBjb25jYXRNYXAoKCkgPT4gdGhpcy5zZXJ2aWNlc0ZhY2FkZS5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKSksXHJcbiAgICAgIG1hcCgodXBkYXRlZENoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdCh1cGRhdGVkQ2hlY2tvdXQubGluZUl0ZW1zKSksXHJcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGRlY3JlYXNlSXRlbShpdGVtOiBMaW5lSXRlbSk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZXNGYWNhZGUuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cclxuICAgICAgICB0aGlzLnNlcnZpY2VzRmFjYWRlLmh0dHBDbGllbnQucG9zdChgJHt0aGlzLmNoZWNrb3V0VXJsfS9jaGVja291dERlY3JlYXNlUHJvZHVjdEZyb21DYXJ0YCwge1xyXG4gICAgICAgICAgY2hlY2tvdXRJZDogY2hlY2tvdXQuaWQsXHJcbiAgICAgICAgICBwcm9kdWN0SWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgICBxdWFudGl0eTogMSxcclxuICAgICAgICB9KSxcclxuICAgICAgKSxcclxuICAgICAgY29uY2F0TWFwKCgpID0+IHRoaXMuc2VydmljZXNGYWNhZGUuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkpLFxyXG4gICAgICBtYXAoKHVwZGF0ZWRDaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QodXBkYXRlZENoZWNrb3V0LmxpbmVJdGVtcykpLFxyXG4gICAgICB0YXAoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICByZW1vdmVJdGVtKGl0ZW06IExpbmVJdGVtKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlc0ZhY2FkZS5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PlxyXG4gICAgICAgIHRoaXMuc2VydmljZXNGYWNhZGUuaHR0cENsaWVudC5wb3N0KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0UmVtb3ZlUHJvZHVjdEZyb21DYXJ0YCwge1xyXG4gICAgICAgICAgY2hlY2tvdXRJZDogY2hlY2tvdXQuaWQsXHJcbiAgICAgICAgICBwcm9kdWN0SWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgfSksXHJcbiAgICAgICksXHJcbiAgICAgIGNvbmNhdE1hcCgoKSA9PiB0aGlzLnNlcnZpY2VzRmFjYWRlLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpKSxcclxuICAgICAgbWFwKCh1cGRhdGVkQ2hlY2tvdXQpID0+IHRoaXMuZ2VuZXJhdGVDYXJ0T2JqZWN0KHVwZGF0ZWRDaGVja291dC5saW5lSXRlbXMpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVXNlckNhcnQodXNlcjogVXNlcik6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZXNGYWNhZGUuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cclxuICAgICAgICB0aGlzLnNlcnZpY2VzRmFjYWRlLmNoZWNrb3V0U2VydmljZS51cGRhdGVDaGVja291dFVzZXIoQ2hlY2tvdXQudG9JbnN0YW5jZSh7IC4uLmNoZWNrb3V0LnRvUGxhaW4oKSwgdXNlciB9KSksXHJcbiAgICAgICksXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlc0ZhY2FkZS5odHRwQ2xpZW50LnBvc3QoYCR7dGhpcy5jaGVja291dFVybH0vY2hlY2tvdXRVcGRhdGVVc2VyQ2FydGAsIHtcclxuICAgICAgICAgIGNoZWNrb3V0SWQ6IGNoZWNrb3V0LmlkLFxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pLFxyXG4gICAgICBjb25jYXRNYXAoKCkgPT4gdGhpcy5zZXJ2aWNlc0ZhY2FkZS5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKSksXHJcbiAgICAgIG1hcCgodXBkYXRlZENoZWNrb3V0KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVDYXJ0T2JqZWN0KHVwZGF0ZWRDaGVja291dC5saW5lSXRlbXMpXHJcbiAgICAgIH0pLFxyXG4gICAgICB0YXAoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBnZXRDYXJ0KGNoZWNrb3V0PzogUmVxdWlyZWRDaGVja291dERhdGEpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHRoaXMuYnVpbGRDYXJ0RnJvbUNoZWNrb3V0KGNoZWNrb3V0KS5zdWJzY3JpYmUoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSlcclxuXHJcbiAgICByZXR1cm4gdGhpcy5jYXJ0U3ViamVjdFxyXG4gIH1cclxuXHJcbiAgY2xlYXJDYXJ0KCk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZXNGYWNhZGUuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgbWFwKChjaGVja291dCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VydmljZXNGYWNhZGUuY2hlY2tvdXRTZXJ2aWNlLmNsZWFyQ2hlY2tvdXRGcm9tU2Vzc2lvbigpXHJcblxyXG4gICAgICAgIHJldHVybiBjaGVja291dFxyXG4gICAgICB9KSxcclxuICAgICAgY29uY2F0TWFwKChvbGRDaGVja291dCkgPT4gdGhpcy5idWlsZENhcnRGcm9tQ2hlY2tvdXQob2xkQ2hlY2tvdXQpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZENhcnRGcm9tQ2hlY2tvdXQoY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dERhdGEpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VzRmFjYWRlLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dChjaGVja291dERhdGEpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IGNoZWNrb3V0LmxpbmVJdGVtcyksXHJcbiAgICAgIGNvbmNhdE1hcCgobGluZUl0ZW1zKSA9PiBvZih0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChsaW5lSXRlbXMpKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdlbmVyYXRlQ2FydE9iamVjdCA9IChpdGVtczogTGluZUl0ZW1bXSk6IENhcnQgPT5cclxuICAgIGl0ZW1zPy5yZWR1Y2UoXHJcbiAgICAgIChjYXJ0LCBpdGVtKSA9PiAoe1xyXG4gICAgICAgIC4uLmNhcnQsXHJcbiAgICAgICAgW2l0ZW0uaWRdOiBMaW5lSXRlbS50b0luc3RhbmNlKHtcclxuICAgICAgICAgIC4uLihjYXJ0W2l0ZW0uaWRdIHx8IGl0ZW0pLFxyXG4gICAgICAgICAgcXVhbnRpdHk6IChjYXJ0W2l0ZW0uaWRdPy5xdWFudGl0eSB8fCAwKSArIChpdGVtLnF1YW50aXR5ID8gaXRlbS5xdWFudGl0eSA6IDEpLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICB9KSxcclxuICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgTGluZUl0ZW0+LFxyXG4gICAgKSB8fCB7fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktc3RydWN0dXJlLmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvYWRhcHRlcnMvY2F0ZWdvcnktc3RydWN0dXJlLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhdGVnb3J5LCBQcm9kdWN0LCBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QvJ1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIge1xyXG4gIGJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnk6IENhdGVnb3J5KTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFByb2R1Y3Q+PlxyXG59XHJcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './category-structure.adapter';
2
+ export * from './new-category-structure.adapter';
3
+ export * from './old-category-structure.adapter';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvYWRhcHRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxjQUFjLGtDQUFrQyxDQUFBO0FBQ2hELGNBQWMsa0NBQWtDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhdGVnb3J5LXN0cnVjdHVyZS5hZGFwdGVyJ1xyXG5leHBvcnQgKiBmcm9tICcuL25ldy1jYXRlZ29yeS1zdHJ1Y3R1cmUuYWRhcHRlcidcclxuZXhwb3J0ICogZnJvbSAnLi9vbGQtY2F0ZWdvcnktc3RydWN0dXJlLmFkYXB0ZXInXHJcbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { isNil, Where } from '@infrab4a/connect';
3
+ import * as i0 from "@angular/core";
4
+ export class NewCategoryStructureAdapter {
5
+ constructor(categoryRepository) {
6
+ this.categoryRepository = categoryRepository;
7
+ }
8
+ async buildProductFilterByCategory(category) {
9
+ const loadedCategory = await this.getCategory(category);
10
+ if (loadedCategory.isCollection)
11
+ return { id: { operator: Where.IN, value: loadedCategory.products } };
12
+ const categoryIds = [...(await this.getAllCategoriesIdFromCategory(category)), category.id.toString()];
13
+ return {
14
+ category: {
15
+ id: {
16
+ operator: Where.IN,
17
+ value: categoryIds,
18
+ },
19
+ },
20
+ };
21
+ }
22
+ async getAllCategoriesIdFromCategory(category) {
23
+ return this.categoryRepository
24
+ .getChildren(+category.id)
25
+ .then((categories) => categories.map((category) => category.id.toString()));
26
+ }
27
+ async getCategory(category) {
28
+ const collectionCategory = category.isCollection ||
29
+ (isNil(category.isCollection) && !category.products?.length) ||
30
+ category.isWishlist ||
31
+ category.brandCategory;
32
+ return collectionCategory ? this.categoryRepository.get({ id: category.id }) : category;
33
+ }
34
+ }
35
+ NewCategoryStructureAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NewCategoryStructureAdapter, deps: [{ token: 'CategoryRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
36
+ NewCategoryStructureAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NewCategoryStructureAdapter });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NewCategoryStructureAdapter, decorators: [{
38
+ type: Injectable
39
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
40
+ type: Inject,
41
+ args: ['CategoryRepository']
42
+ }] }]; } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWNhdGVnb3J5LXN0cnVjdHVyZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2FkYXB0ZXJzL25ldy1jYXRlZ29yeS1zdHJ1Y3R1cmUuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQWdDLEtBQUssRUFBbUMsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7O0FBSy9HLE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFBMkQsa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFBRyxDQUFDO0lBRXJHLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxRQUFrQjtRQUNuRCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFdkQsSUFBSSxjQUFjLENBQUMsWUFBWTtZQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUE7UUFFdEcsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsOEJBQThCLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFFdEcsT0FBTztZQUNMLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUU7b0JBQ0YsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFO29CQUNsQixLQUFLLEVBQUUsV0FBVztpQkFDbkI7YUFDRjtTQUNGLENBQUE7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLDhCQUE4QixDQUFDLFFBQWtCO1FBQzdELE9BQU8sSUFBSSxDQUFDLGtCQUFrQjthQUMzQixXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2FBQ3pCLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDL0UsQ0FBQztJQUVPLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBa0I7UUFDMUMsTUFBTSxrQkFBa0IsR0FDdEIsUUFBUSxDQUFDLFlBQVk7WUFDckIsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7WUFDNUQsUUFBUSxDQUFDLFVBQVU7WUFDbkIsUUFBUSxDQUFDLGFBQWEsQ0FBQTtRQUV4QixPQUFPLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUE7SUFDekYsQ0FBQzs7d0hBbENVLDJCQUEyQixrQkFDbEIsb0JBQW9COzRIQUQ3QiwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVTs7MEJBRUksTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBDYXRlZ29yeSwgQ2F0ZWdvcnlSZXBvc2l0b3J5LCBpc05pbCwgUHJvZHVjdCwgUmVwb3NpdG9yeUZpbmRGaWVsdGVycywgV2hlcmUgfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuXHJcbmltcG9ydCB7IENhdGVnb3J5U3RydWN0dXJlQWRhcHRlciB9IGZyb20gJy4vY2F0ZWdvcnktc3RydWN0dXJlLmFkYXB0ZXInXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBOZXdDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIgaW1wbGVtZW50cyBDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIge1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ0NhdGVnb3J5UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlSZXBvc2l0b3J5OiBDYXRlZ29yeVJlcG9zaXRvcnkpIHt9XHJcblxyXG4gIGFzeW5jIGJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnk6IENhdGVnb3J5KTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFByb2R1Y3Q+PiB7XHJcbiAgICBjb25zdCBsb2FkZWRDYXRlZ29yeSA9IGF3YWl0IHRoaXMuZ2V0Q2F0ZWdvcnkoY2F0ZWdvcnkpXHJcblxyXG4gICAgaWYgKGxvYWRlZENhdGVnb3J5LmlzQ29sbGVjdGlvbikgcmV0dXJuIHsgaWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogbG9hZGVkQ2F0ZWdvcnkucHJvZHVjdHMgfSB9XHJcblxyXG4gICAgY29uc3QgY2F0ZWdvcnlJZHMgPSBbLi4uKGF3YWl0IHRoaXMuZ2V0QWxsQ2F0ZWdvcmllc0lkRnJvbUNhdGVnb3J5KGNhdGVnb3J5KSksIGNhdGVnb3J5LmlkLnRvU3RyaW5nKCldXHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2F0ZWdvcnk6IHtcclxuICAgICAgICBpZDoge1xyXG4gICAgICAgICAgb3BlcmF0b3I6IFdoZXJlLklOLFxyXG4gICAgICAgICAgdmFsdWU6IGNhdGVnb3J5SWRzLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGdldEFsbENhdGVnb3JpZXNJZEZyb21DYXRlZ29yeShjYXRlZ29yeTogQ2F0ZWdvcnkpOiBQcm9taXNlPHN0cmluZ1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeVJlcG9zaXRvcnlcclxuICAgICAgLmdldENoaWxkcmVuKCtjYXRlZ29yeS5pZClcclxuICAgICAgLnRoZW4oKGNhdGVnb3JpZXMpID0+IGNhdGVnb3JpZXMubWFwKChjYXRlZ29yeSkgPT4gY2F0ZWdvcnkuaWQudG9TdHJpbmcoKSkpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGdldENhdGVnb3J5KGNhdGVnb3J5OiBDYXRlZ29yeSk6IFByb21pc2U8Q2F0ZWdvcnk+IHtcclxuICAgIGNvbnN0IGNvbGxlY3Rpb25DYXRlZ29yeSA9XHJcbiAgICAgIGNhdGVnb3J5LmlzQ29sbGVjdGlvbiB8fFxyXG4gICAgICAoaXNOaWwoY2F0ZWdvcnkuaXNDb2xsZWN0aW9uKSAmJiAhY2F0ZWdvcnkucHJvZHVjdHM/Lmxlbmd0aCkgfHxcclxuICAgICAgY2F0ZWdvcnkuaXNXaXNobGlzdCB8fFxyXG4gICAgICBjYXRlZ29yeS5icmFuZENhdGVnb3J5XHJcblxyXG4gICAgcmV0dXJuIGNvbGxlY3Rpb25DYXRlZ29yeSA/IHRoaXMuY2F0ZWdvcnlSZXBvc2l0b3J5LmdldCh7IGlkOiBjYXRlZ29yeS5pZCB9KSA6IGNhdGVnb3J5XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { Where } from '@infrab4a/connect';
3
+ import * as i0 from "@angular/core";
4
+ export class OldCategoryStructureAdapter {
5
+ constructor(categoryRepository) {
6
+ this.categoryRepository = categoryRepository;
7
+ }
8
+ async buildProductFilterByCategory(category) {
9
+ const productsIds = category.products?.length
10
+ ? category.products
11
+ : await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products);
12
+ return { id: { operator: Where.IN, value: productsIds } };
13
+ }
14
+ }
15
+ OldCategoryStructureAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OldCategoryStructureAdapter, deps: [{ token: 'CategoryRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
16
+ OldCategoryStructureAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OldCategoryStructureAdapter });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OldCategoryStructureAdapter, decorators: [{
18
+ type: Injectable
19
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
20
+ type: Inject,
21
+ args: ['CategoryRepository']
22
+ }] }]; } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2xkLWNhdGVnb3J5LXN0cnVjdHVyZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2FkYXB0ZXJzL29sZC1jYXRlZ29yeS1zdHJ1Y3R1cmUuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQWlFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBOztBQUt4RyxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQTJELGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQUcsQ0FBQztJQUVyRyxLQUFLLENBQUMsNEJBQTRCLENBQUMsUUFBa0I7UUFDbkQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNO1lBQzNDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUNuQixDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRTFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQTtJQUMzRCxDQUFDOzt3SEFUVSwyQkFBMkIsa0JBQ2xCLG9CQUFvQjs0SEFEN0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVU7OzBCQUVJLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQ2F0ZWdvcnksIENhdGVnb3J5UmVwb3NpdG9yeSwgUHJvZHVjdCwgUmVwb3NpdG9yeUZpbmRGaWVsdGVycywgV2hlcmUgfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuXHJcbmltcG9ydCB7IENhdGVnb3J5U3RydWN0dXJlQWRhcHRlciB9IGZyb20gJy4vY2F0ZWdvcnktc3RydWN0dXJlLmFkYXB0ZXInXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBPbGRDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIgaW1wbGVtZW50cyBDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIge1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ0NhdGVnb3J5UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlSZXBvc2l0b3J5OiBDYXRlZ29yeVJlcG9zaXRvcnkpIHt9XHJcblxyXG4gIGFzeW5jIGJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnk6IENhdGVnb3J5KTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFByb2R1Y3Q+PiB7XHJcbiAgICBjb25zdCBwcm9kdWN0c0lkcyA9IGNhdGVnb3J5LnByb2R1Y3RzPy5sZW5ndGhcclxuICAgICAgPyBjYXRlZ29yeS5wcm9kdWN0c1xyXG4gICAgICA6IGF3YWl0IHRoaXMuY2F0ZWdvcnlSZXBvc2l0b3J5LmdldCh7IGlkOiBjYXRlZ29yeS5pZCB9KS50aGVuKChjYXRlZ29yeUZvdW5kKSA9PiBjYXRlZ29yeUZvdW5kLnByb2R1Y3RzKVxyXG5cclxuICAgIHJldHVybiB7IGlkOiB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IHByb2R1Y3RzSWRzIH0gfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2NhdGFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBRUwsb0JBQW9CLEVBRXBCLHdCQUF3QixFQUN4QixLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQTs7Ozs7QUFXbEQsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFDbUIsYUFBbUMsRUFDbkMsY0FBcUMsRUFDZixJQUFXO1FBRmpDLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUNuQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFPO0lBQ2pELENBQUM7SUFFSixLQUFLLENBQUMsYUFBYSxDQUNqQixPQUErQixFQUMvQixZQUFpRDtRQUVqRCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRTdCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNwRCxNQUFNLEVBQ0osSUFBSSxFQUNKLEtBQUssRUFBRSxLQUFLLEVBQ1osT0FBTyxFQUNQLE9BQU8sRUFDUCxRQUFRLEdBQ1QsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBRWpGLE1BQU0sSUFBSSxD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Q0FBQTtJQUM5QixDQUFDOzsyR0EvSFUsY0FBYywyRkFJZixZQUFZOytHQUpYLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVTs7MEJBS04sTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBDYXRlZ29yeSxcclxuICBJbnZhbGlkQXJndW1lbnRFcnJvcixcclxuICBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zLFxyXG4gIFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlcixcclxuICBTaG9wcyxcclxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuXHJcbmltcG9ydCB7IERFRkFVTFRfU0hPUCB9IGZyb20gJy4uLy4uL2NvbnN0cydcclxuaW1wb3J0IHsgQ2F0YWxvZ0ZpbHRlcnMsIENhdGFsb2dTZWFyY2hQYXJhbXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJ1xyXG5cclxuaW1wb3J0IHsgQ2F0YWxvZ1NlYXJjaENvbnRleHQgfSBmcm9tICcuL2NvbnRleHQvY2F0YWxvZy1zZWFyY2guY29udGV4dCdcclxuaW1wb3J0IHsgQ2F0YWxvZ0hlbHBlcnNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcydcclxuaW1wb3J0IHtcclxuICBCdWlsZFJlc3BvbnNlUGFyYW1zLFxyXG4gIEZldGNoUHJvZHVjdHNNYWluUGFyYW1zLFxyXG4gIEZldGNoUHJvZHVjdHNPcHRpb25zLFxyXG4gIEZldGNoUHJvZHVjdHNQYXJhbXMsXHJcbiAgRmV0Y2hQcm9kdWN0c1Jlc3BvbnNlLFxyXG4gIFN0b2NrTm90aWZpY2F0aW9uUGFyYW1zLFxyXG59IGZyb20gJy4vdHlwZXMnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYXRhbG9nU2VydmljZTxUIGV4dGVuZHMgQ2F0ZWdvcnkgPSBDYXRlZ29yeT4ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWFyY2hDb250ZXh0OiBDYXRhbG9nU2VhcmNoQ29udGV4dCxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGVscGVyc1NlcnZpY2U6IENhdGFsb2dIZWxwZXJzU2VydmljZSxcclxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IHNob3A6IFNob3BzLFxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgZmV0Y2hQcm9kdWN0cyhcclxuICAgIG9wdGlvbnM6IEZldGNoUHJvZHVjdHNQYXJhbXM8VD4sXHJcbiAgICBvcHRpb25zQ2FjaGU/OiB7IGNhY2hlPzogUmVwb3NpdG9yeUNhY2hlT3B0aW9ucyB9LFxyXG4gICk6IFByb21pc2U8RmV0Y2hQcm9kdWN0c1Jlc3BvbnNlPiB7XHJcbiAgICB0aGlzLnZhbGlkYXRlUmVxdWVzdChvcHRpb25zKVxyXG5cclxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IHRoaXMuYnVpbGRTZWFyY2hQYXJhbXMob3B0aW9ucylcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGF0YSxcclxuICAgICAgY291bnQ6IHRvdGFsLFxyXG4gICAgICBtYXhpbXVtLFxyXG4gICAgICBtaW5pbWFsLFxyXG4gICAgICBkaXN0aW5jdCxcclxuICAgIH0gPSBhd2FpdCB0aGlzLnNlYXJjaENvbnRleHQuZXhlY3V0ZVNlYXJjaChzZWFyY2hQYXJhbXMsIHRoaXMuc2hvcCwgb3B0aW9uc0NhY2hlKVxyXG5cclxuICAgIGF3YWl0IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0QnJhbmRNYW5hZ2VyKCkuc2V0QnJhbmRzTGlzdChzZWFyY2hQYXJhbXMsIGRpc3RpbmN0Py5icmFuZClcclxuXHJcbiAgICByZXR1cm4gdGhpcy5idWlsZFJlc3BvbnNlKHtcclxuICAgICAgZGF0YSxcclxuICAgICAgdG90YWwsXHJcbiAgICAgIG1heGltdW0sXHJcbiAgICAgIG1pbmltYWwsXHJcbiAgICAgIHNlYXJjaFBhcmFtcyxcclxuICAgICAgb3B0aW9ucyxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBhc3luYyBhZGRDdXN0b21lclRvU3RvY2tOb3RpZmljYXRpb24ocGFyYW1zOiBTdG9ja05vdGlmaWNhdGlvblBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgeyBzaG9wLCBwcm9kdWN0SWQsIG5hbWUsIGVtYWlsIH0gPSBwYXJhbXNcclxuICAgIGNvbnN0IHByb2R1Y3RTZXJ2aWNlcyA9IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0UHJvZHVjdFNlcnZpY2VzKClcclxuXHJcbiAgICByZXR1cm4gcHJvZHVjdFNlcnZpY2VzLnByb2R1Y3RTdG9ja05vdGlmaWNhdGlvblJlcG9zaXRvcnkuYWRkQ3VzdG9tZXJFbWFpbCh7XHJcbiAgICAgIHNob3AsXHJcbiAgICAgIHByb2R1Y3RJZCxcclxuICAgICAgbmFtZSxcclxuICAgICAgZW1haWwsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZVJlcXVlc3Qob3B0aW9uczogRmV0Y2hQcm9kdWN0c1BhcmFtczxUPik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaGFzUHJvZmlsZShvcHRpb25zKSAmJiBvcHRpb25zLmZpbHRlcnM/LmN1c3RvbU9wdGlvbnMpIHtcclxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKGBJdCBjb3VsZG4ndCBmaWxsZWQgY3VzdG9tT3B0aW9ucyB3aGVuIHByb2ZpbGUgaXMgZ2l2ZW5gKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmhhc1Byb2ZpbGUob3B0aW9ucykgJiYgb3B0aW9ucy5maWx0ZXJzPy50YWdzKSB7XHJcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihgSXQgY291bGRuJ3QgZmlsbGVkIHRhZ3Mgd2hlbiBwcm9maWxlIGlzIGdpdmVuYClcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oYXNUZXJtKG9wdGlvbnMpICYmIG9wdGlvbnMuZmlsdGVycz8uY3VzdG9tT3B0aW9ucykge1xyXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoYEl0IGNvdWxkbid0IGZpbGxlZCBjdXN0b21PcHRpb25zIHdoZW4gdGVybSBpcyBnaXZlbmApXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkU2VhcmNoUGFyYW1zKG9wdGlvbnM6IEZldGNoUHJvZHVjdHNQYXJhbXM8VD4pOiBDYXRhbG9nU2VhcmNoUGFyYW1zIHtcclxuICAgIGNvbnN0IGxpbWl0cyA9IHRoaXMuYnVpbGRMaW1pdFF1ZXJ5KG9wdGlvbnMpXHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2F0ZWdvcnk6IHRoaXMuaGFzQ2F0ZWdvcnkob3B0aW9ucykgPyBvcHRpb25zLmNhdGVnb3J5IDogdW5kZWZpbmVkLFxyXG4gICAgICBwcm9maWxlOiB0aGlzLmhhc1Byb2ZpbGUob3B0aW9ucykgPyBvcHRpb25zLnByb2ZpbGUgOiB1bmRlZmluZWQsXHJcbiAgICAgIHRlcm06IHRoaXMuaGFzVGVybShvcHRpb25zKSA/IG9wdGlvbnMudGVybSA6IHVuZGVmaW5lZCxcclxuICAgICAgZmlsdGVyczogb3B0aW9ucy5maWx0ZXJzLFxyXG4gICAgICBtYWluR2VuZGVyOiBvcHRpb25zLm1haW5HZW5kZXIsXHJcbiAgICAgIHNvcnQ6IG9wdGlvbnMuc29ydCxcclxuICAgICAgbGltaXRzLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZFJlc3BvbnNlKHBhcmFtczogQnVpbGRSZXNwb25zZVBhcmFtczxUPik6IEZldGNoUHJvZHVjdHNSZXNwb25zZSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIHRvdGFsLCBtYXhpbXVtLCBtaW5pbWFsLCBzZWFyY2hQYXJhbXMgfSA9IHBhcmFtc1xyXG4gICAgY29uc3QgbGltaXRzID0gc2VhcmNoUGFyYW1zLmxpbWl0c1xyXG4gICAgY29uc3QgaW5kZXhLZXkgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldEJyYW5kTWFuYWdlcigpLmJ1aWxkSW5kZXhCcmFuZHMoc2VhcmNoUGFyYW1zKVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHByb2R1Y3RzOiB7XHJcbiAgICAgICAgZGF0YTogZGF0YS5tYXAoKHByb2R1Y3QpID0+IFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlci5yb3VuZFByb2R1Y3RQcmljZXMocHJvZHVjdCkpLFxyXG4gICAgICAgIHRvdGFsLFxyXG4gICAgICB9LFxyXG4gICAgICBwYWdlczogTWF0aC5jZWlsKHRvdGFsIC8gbGltaXRzLmxpbWl0KSxcclxuICAgICAgcHJpY2VzOiB7XHJcbiAgICAgICAgcHJpY2U6IHtcclxuICAgICAgICAgIG1pbjogKyhtaW5pbWFsPy5wcmljZT8ucHJpY2U/LnRvRml4ZWQoMikgfHwgMCksXHJcbiAgICAgICAgICBtYXg6ICsobWF4aW11bT8ucHJpY2U/LnByaWNlPy50b0ZpeGVkKDIpIHx8IDApLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3Vic2NyaWJlclByaWNlOiB7XHJcbiAgICAgICAgICBtaW46ICsobWluaW1hbD8ucHJpY2U/LnN1YnNjcmliZXJQcmljZT8udG9GaXhlZCgyKSB8fCAwKSxcclxuICAgICAgICAgIG1heDogKyhtYXhpbXVtPy5wcmljZT8uc3Vic2NyaWJlclByaWNlPy50b0ZpeGVkKDIpIHx8IDApLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGJyYW5kczogdGhpcy5oZWxwZXJzU2VydmljZS5nZXRCcmFuZE1hbmFnZXIoKS5nZXRCcmFuZHNMaXN0KGluZGV4S2V5KSxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRMaW1pdFF1ZXJ5KG9wdGlvbnM6IHsgcGFnZT86IG51bWJlcjsgcGVyUGFnZT86IG51bWJlciB9KTogeyBsaW1pdDogbnVtYmVyOyBvZmZzZXQ6IG51bWJlciB9IHtcclxuICAgIGNvbnN0IGxpbWl0ID0gb3B0aW9ucz8ucGVyUGFnZSB8fCAyMFxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxpbWl0LFxyXG4gICAgICBvZmZzZXQ6ICgob3B0aW9ucz8ucGFnZSB8fCAxKSAtIDEpICogbGltaXQsXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1Byb2ZpbGUob3B0aW9uczogUGFydGlhbDxGZXRjaFByb2R1Y3RzUGFyYW1zPFQ+Pik6IG9wdGlvbnMgaXMgRmV0Y2hQcm9kdWN0c09wdGlvbnMgJiB7XHJcbiAgICBwcm9maWxlOiBGZXRjaFByb2R1Y3RzTWFpblBhcmFtczxUPlsncHJvZmlsZSddXHJcbiAgICBmaWx0ZXJzPzogQ2F0YWxvZ0ZpbHRlcnMgJiB7IGN1c3RvbU9wdGlvbnM/OiBuZXZlcjsgdGFncz86IG5ldmVyIH1cclxuICB9IHtcclxuICAgIHJldHVybiAncHJvZmlsZScgaW4gb3B0aW9uc1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNUZXJtKG9wdGlvbnM6IFBhcnRpYWw8RmV0Y2hQcm9kdWN0c1BhcmFtczxUPj4pOiBvcHRpb25zIGlzIEZldGNoUHJvZHVjdHNPcHRpb25zICYge1xyXG4gICAgdGVybTogRmV0Y2hQcm9kdWN0c01haW5QYXJhbXM8VD5bJ3Rlcm0nXVxyXG4gICAgZmlsdGVycz86IENhdGFsb2dGaWx0ZXJzICYgeyBjdXN0b21PcHRpb25zPzogbmV2ZXIgfVxyXG4gIH0ge1xyXG4gICAgcmV0dXJuICd0ZXJtJyBpbiBvcHRpb25zXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc0NhdGVnb3J5KG9wdGlvbnM6IFBhcnRpYWw8RmV0Y2hQcm9kdWN0c1BhcmFtczxUPj4pOiBvcHRpb25zIGlzIEZldGNoUHJvZHVjdHNPcHRpb25zICYge1xyXG4gICAgY2F0ZWdvcnk6IEZldGNoUHJvZHVjdHNNYWluUGFyYW1zPFQ+WydjYXRlZ29yeSddXHJcbiAgICBmaWx0ZXJzPzogQ2F0YWxvZ0ZpbHRlcnMgJiB7IGN1c3RvbU9wdGlvbnM/OiBuZXZlciB9XHJcbiAgfSB7XHJcbiAgICByZXR1cm4gJ2NhdGVnb3J5JyBpbiBvcHRpb25zXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,42 @@
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 getMenuBrands() {
26
+ return this.categoryFacade.categoryRepository.getBrandsWithProducts();
27
+ }
28
+ async fetchFilterOptions(category, optionsCache) {
29
+ return await this.categoryFacade.categoryFilterRepository
30
+ .find({ filters: { categoryId: +category.id } }, optionsCache)
31
+ .then(({ data }) => data.map((categoryFilter) => categoryFilter.filter));
32
+ }
33
+ }
34
+ 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 });
35
+ CategoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, decorators: [{
37
+ type: Injectable
38
+ }], ctorParameters: function () { return [{ type: i1.CategoryRepositoryFacade }, { type: i1.ProductCatalogFacade }, { type: i2.Shops, decorators: [{
39
+ type: Inject,
40
+ args: [DEFAULT_SHOP]
41
+ }] }]; } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFBMkQsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUE7Ozs7QUFRMUUsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDbUIsY0FBd0MsRUFDeEMsY0FBb0MsRUFDZCxJQUFXO1FBRmpDLG1CQUFjLEdBQWQsY0FBYyxDQUEwQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFDZCxTQUFJLEdBQUosSUFBSSxDQUFPO0lBQ2pELENBQUM7SUFFSixLQUFLLENBQUMsV0FBVyxDQUNmLFFBQWtCLEVBQ2xCLE9BQTRCLEVBQzVCLFlBQWlEO1FBRWpELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUI7YUFDdkQsV0FBVyxDQUNWO1lBQ0UsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUM7WUFDbEcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO1NBQ2xCLEVBQ0QsSUFBSSxFQUNKLFlBQVksQ0FDYjthQUNBLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ2hILENBQUE7UUFFSCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCO2FBQzFDLElBQUksQ0FDSCxFQUFFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUNoRyxZQUFZLENBQ2I7YUFDQSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzlGLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYTtRQUNqQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtJQUN2RSxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFFBQWtCLEVBQUUsWUFBaUQ7UUFDNUYsT0FBTyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCO2FBQ3RELElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBQzthQUM3RCxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUM1RSxDQUFDOzs0R0F6Q1UsZUFBZSw4RkFJaEIsWUFBWTtnSEFKWCxlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQUtOLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IENhdGVnb3J5LCBGaWx0ZXIsIFByb2R1Y3RHZW5kZXIsIFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMsIFNob3BzIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcblxyXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi8uLi9jb25zdHMnXHJcblxyXG5pbXBvcnQgeyBDYXRlZ29yeVJlcG9zaXRvcnlGYWNhZGUsIFByb2R1Y3RDYXRhbG9nRmFjYWRlIH0gZnJvbSAnLi9mYWNhZGVzJ1xyXG5cclxudHlwZSBGZXRjaEJyYW5kc09wdGlvbnMgPSB7XHJcbiAgbWFpbkdlbmRlcj86IFByb2R1Y3RHZW5kZXJcclxuICBzaG9wPzogU2hvcHNcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlGYWNhZGU6IENhdGVnb3J5UmVwb3NpdG9yeUZhY2FkZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdENhdGFsb2c6IFByb2R1Y3RDYXRhbG9nRmFjYWRlLFxyXG4gICAgQEluamVjdChERUZBVUxUX1NIT1ApIHByaXZhdGUgcmVhZG9ubHkgc2hvcDogU2hvcHMsXHJcbiAgKSB7fVxyXG5cclxuICBhc3luYyBmZXRjaEJyYW5kcyhcclxuICAgIGNhdGVnb3J5OiBDYXRlZ29yeSxcclxuICAgIG9wdGlvbnM/OiBGZXRjaEJyYW5kc09wdGlvbnMsXHJcbiAgICBvcHRpb25zQ2FjaGU/OiB7IGNhY2hlPzogUmVwb3NpdG9yeUNhY2hlT3B0aW9ucyB9LFxyXG4gICk6IFByb21pc2U8Q2F0ZWdvcnlbXT4ge1xyXG4gICAgY29uc3QgYnJhbmRzID0gYXdhaXQgdGhpcy5wcm9kdWN0Q2F0YWxvZy5wcm9kdWN0UmVwb3NpdG9yeVxyXG4gICAgICAuZmluZENhdGFsb2coXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmlsdGVyczogYXdhaXQgdGhpcy5wcm9kdWN0Q2F0YWxvZy5jYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIuYnVpbGRQcm9kdWN0RmlsdGVyQnlDYXRlZ29yeShjYXRlZ29yeSksXHJcbiAgICAgICAgICBmaWVsZHM6IFsnYnJhbmQnXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIG51bGwsXHJcbiAgICAgICAgb3B0aW9uc0NhY2hlLFxyXG4gICAgICApXHJcbiAgICAgIC50aGVuKCh7IGRhdGEgfSkgPT5cclxuICAgICAgICBPYmplY3Qua2V5cyhkYXRhLm1hcCgocHJvZHVjdCkgPT4gcHJvZHVjdC5icmFuZCkucmVkdWNlKChicmFuZHMsIGJyYW5kKSA9PiAoeyAuLi5icmFuZHMsIFticmFuZF06IHRydWUgfSksIHt9KSksXHJcbiAgICAgIClcclxuXHJcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeUZhY2FkZS5jYXRlZ29yeVJlcG9zaXRvcnlcclxuICAgICAgLmZpbmQoXHJcbiAgICAgICAgeyBmaWx0ZXJzOiB7IGJyYW5kQ2F0ZWdvcnk6IHRydWUsIHNob3A6IG9wdGlvbnM/LnNob3AgfHwgdGhpcy5zaG9wIH0sIG9yZGVyQnk6IHsgbmFtZTogJ2FzYycgfSB9LFxyXG4gICAgICAgIG9wdGlvbnNDYWNoZSxcclxuICAgICAgKVxyXG4gICAgICAudGhlbigoeyBkYXRhIH0pID0+IGRhdGEuZmlsdGVyKChjYXRlZ29yeSkgPT4gYnJhbmRzLmluY2x1ZGVzKGNhdGVnb3J5LmNvbmRpdGlvbnMuYnJhbmQpKSlcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldE1lbnVCcmFuZHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeUZhY2FkZS5jYXRlZ29yeVJlcG9zaXRvcnkuZ2V0QnJhbmRzV2l0aFByb2R1Y3RzKClcclxuICB9XHJcblxyXG4gIGFzeW5jIGZldGNoRmlsdGVyT3B0aW9ucyhjYXRlZ29yeTogQ2F0ZWdvcnksIG9wdGlvbnNDYWNoZT86IHsgY2FjaGU/OiBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zIH0pOiBQcm9taXNlPEZpbHRlcltdPiB7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jYXRlZ29yeUZhY2FkZS5jYXRlZ29yeUZpbHRlclJlcG9zaXRvcnlcclxuICAgICAgLmZpbmQoeyBmaWx0ZXJzOiB7IGNhdGVnb3J5SWQ6ICtjYXRlZ29yeS5pZCB9IH0sIG9wdGlvbnNDYWNoZSlcclxuICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PiBkYXRhLm1hcCgoY2F0ZWdvcnlGaWx0ZXIpID0+IGNhdGVnb3J5RmlsdGVyLmZpbHRlcikpXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1zZWFyY2guY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9jb250ZXh0L2NhdGFsb2ctc2VhcmNoLmNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUNtQixnQkFBdUMsRUFDdkMsWUFBbUMsRUFDbkMsZUFBc0M7UUFGdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF1QjtRQUN2QyxpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUFDbkMsb0JBQWUsR0FBZixlQUFlLENBQXVCO1FBTGpELGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQTtRQU8zRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FDakIsTUFBMkIsRUFDM0IsSUFBVyxFQUNYLFlBQWlEO1FBRWpELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7UUFFNUMsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDcEQsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ3RELENBQUM7SUFFTyxjQUFjLENBQUMsTUFBMkI7UUFDaEQsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBRWhELElBQUksQ0FBQyxRQUFRO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtZQUU3RCxPQUFPLFFBQVEsQ0FBQTtTQUNoQjtRQUVELElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtZQUNmLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBRTVDLElBQUksQ0FBQyxRQUFRO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQTtZQUV6RCxPQUFPLFFBQVEsQ0FBQTtTQUNoQjtRQUVELElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUU7WUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7WUFFL0MsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO1lBRTVELE9BQU8sUUFBUSxDQUFBO1NBQ2hCO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFBO0lBQzVFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2R1Y3QsIFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMsIFJlcG9zaXRvcnlGaW5kUmVzdWx0LCBTaG9wcyB9IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5cclxuaW1wb3J0IHsgQ2F0YWxvZ1NlYXJjaFBhcmFtcywgQ2F0YWxvZ1NlYXJjaFN0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcydcclxuXHJcbmV4cG9ydCBjbGFzcyBDYXRhbG9nU2VhcmNoQ29udGV4dCB7XHJcbiAgcHJpdmF0ZSBzdHJhdGVnaWVzID0gbmV3IE1hcDxzdHJpbmcsIENhdGFsb2dTZWFyY2hTdHJhdGVneT4oKVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlTdHJhdGVneTogQ2F0YWxvZ1NlYXJjaFN0cmF0ZWd5LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXJtU3RyYXRlZ3k6IENhdGFsb2dTZWFyY2hTdHJhdGVneSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZmlsZVN0cmF0ZWd5OiBDYXRhbG9nU2VhcmNoU3RyYXRlZ3ksXHJcbiAgKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVTdHJhdGVnaWVzKClcclxuICB9XHJcblxyXG4gIGFzeW5jIGV4ZWN1dGVTZWFyY2goXHJcbiAgICBwYXJhbXM6IENhdGFsb2dTZWFyY2hQYXJhbXMsXHJcbiAgICBzaG9wOiBTaG9wcyxcclxuICAgIG9wdGlvbnNDYWNoZT86IHsgY2FjaGU/OiBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zIH0sXHJcbiAgKTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZFJlc3VsdDxQcm9kdWN0Pj4ge1xyXG4gICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLnNlbGVjdFN0cmF0ZWd5KHBhcmFtcylcclxuXHJcbiAgICByZXR1cm4gc3RyYXRlZ3kuc2VhcmNoKHBhcmFtcywgc2hvcCwgb3B0aW9uc0NhY2hlKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplU3RyYXRlZ2llcygpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RyYXRlZ2llcy5zZXQoJ2NhdGVnb3J5JywgdGhpcy5jYXRlZ29yeVN0cmF0ZWd5KVxyXG4gICAgdGhpcy5zdHJhdGVnaWVzLnNldCgndGVybScsIHRoaXMudGVybVN0cmF0ZWd5KVxyXG4gICAgdGhpcy5zdHJhdGVnaWVzLnNldCgncHJvZmlsZScsIHRoaXMucHJvZmlsZVN0cmF0ZWd5KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZWxlY3RTdHJhdGVneShwYXJhbXM6IENhdGFsb2dTZWFyY2hQYXJhbXMpOiBDYXRhbG9nU2VhcmNoU3RyYXRlZ3kge1xyXG4gICAgaWYgKHBhcmFtcy5jYXRlZ29yeSkge1xyXG4gICAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuc3RyYXRlZ2llcy5nZXQoJ2NhdGVnb3J5JylcclxuXHJcbiAgICAgIGlmICghc3RyYXRlZ3kpIHRocm93IG5ldyBFcnJvcignQ2F0ZWdvcnkgc3RyYXRlZ3kgbm90IGZvdW5kJylcclxuXHJcbiAgICAgIHJldHVybiBzdHJhdGVneVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChwYXJhbXMudGVybSkge1xyXG4gICAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuc3RyYXRlZ2llcy5nZXQoJ3Rlcm0nKVxyXG5cclxuICAgICAgaWYgKCFzdHJhdGVneSkgdGhyb3cgbmV3IEVycm9yKCdUZXJtIHN0cmF0ZWd5IG5vdCBmb3VuZCcpXHJcblxyXG4gICAgICByZXR1cm4gc3RyYXRlZ3lcclxuICAgIH1cclxuXHJcbiAgICBpZiAocGFyYW1zLnByb2ZpbGU/Lmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuc3RyYXRlZ2llcy5nZXQoJ3Byb2ZpbGUnKVxyXG5cclxuICAgICAgaWYgKCFzdHJhdGVneSkgdGhyb3cgbmV3IEVycm9yKCdQcm9maWxlIHN0cmF0ZWd5IG5vdCBmb3VuZCcpXHJcblxyXG4gICAgICByZXR1cm4gc3RyYXRlZ3lcclxuICAgIH1cclxuXHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHZhbGlkIHNlYXJjaCBzdHJhdGVneSBmb3VuZCBmb3IgdGhlIGdpdmVuIHBhcmFtZXRlcnMnKVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './product-sorts.enum';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvZW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1zb3J0cy5lbnVtJ1xyXG4iXX0=
@@ -0,0 +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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zb3J0cy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2VudW1zL3Byb2R1Y3Qtc29ydHMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxZQVFYO0FBUkQsV0FBWSxZQUFZO0lBQ3RCLCtDQUErQixDQUFBO0lBQy9CLDRDQUE0QixDQUFBO0lBQzVCLCtDQUErQixDQUFBO0lBQy9CLDZDQUE2QixDQUFBO0lBQzdCLHFEQUFxQyxDQUFBO0lBQ3JDLDJDQUEyQixDQUFBO0lBQzNCLDZCQUFhLENBQUE7QUFDZixDQUFDLEVBUlcsWUFBWSxLQUFaLFlBQVksUUFRdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBQcm9kdWN0U29ydHMge1xyXG4gIE1PU1RfUkVMRVZBTlQgPSAnbW9zdC1yZWxldmFudCcsXHJcbiAgQkVTVF9TRUxMRVIgPSAnYmVzdC1zZWxsZXJzJyxcclxuICBCSUdHRVNUX1BSSUNFID0gJ2JpZ2dlc3QtcHJpY2UnLFxyXG4gIExPV0VTVF9QUklDRSA9ICdsb3dlc3QtcHJpY2UnLFxyXG4gIEJJR0dFU1RfRElTQ09VTlQgPSAnYmlnZ2VzdC1kaXNjb3VudCcsXHJcbiAgQkVTVF9SQVRJTkcgPSAnYmVzdC1yYXRpbmcnLFxyXG4gIE5FV1MgPSAnbmV3cycsXHJcbn1cclxuIl19
@@ -0,0 +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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1zZXJ2aWNlLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9mYWNhZGVzL2NhdGFsb2ctc2VydmljZS5mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRW5ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFBOzs7OztBQUdyRSxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLFlBQ21CLGNBQXFDLEVBQ3JDLGdCQUF5QyxFQUNuQixJQUFXO1FBRmpDLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQU87UUFFbEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxvQkFBb0IsQ0FDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUN0QyxDQUFBO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDekYsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQTtJQUM1QixDQUFDOztpSEFuQlUsb0JBQW9CLDhGQU1yQixZQUFZO3FIQU5YLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVOzswQkFPTixNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBTaG9wcyB9IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5cclxuaW1wb3J0IHsgREVGQVVMVF9TSE9QIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RzJ1xyXG5pbXBvcnQgeyBDYXRhbG9nU2VydmljZSB9IGZyb20gJy4uL2NhdGFsb2cuc2VydmljZSdcclxuaW1wb3J0IHsgQ2F0YWxvZ1NlYXJjaENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0L2NhdGFsb2ctc2VhcmNoLmNvbnRleHQnXHJcbmltcG9ydCB7IENhdGFsb2dIZWxwZXJzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJ1xyXG5cclxuaW1wb3J0IHsgQ2F0YWxvZ1N0cmF0ZWdpZXNGYWNhZGUgfSBmcm9tICcuL2NhdGFsb2ctc3RyYXRlZ2llcy5mYWNhZGUnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYXRhbG9nU2VydmljZUZhY2FkZSB7XHJcbiAgcHJpdmF0ZSBjYXRhbG9nU2VydmljZTogQ2F0YWxvZ1NlcnZpY2VcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhlbHBlcnNTZXJ2aWNlOiBDYXRhbG9nSGVscGVyc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0cmF0ZWdpZXNGYWNhZGU6IENhdGFsb2dTdHJhdGVnaWVzRmFjYWRlLFxyXG4gICAgQEluamVjdChERUZBVUxUX1NIT1ApIHByaXZhdGUgcmVhZG9ubHkgc2hvcDogU2hvcHMsXHJcbiAgKSB7XHJcbiAgICBjb25zdCBzZWFyY2hDb250ZXh0ID0gbmV3IENhdGFsb2dTZWFyY2hDb250ZXh0KFxyXG4gICAgICB0aGlzLnN0cmF0ZWdpZXNGYWNhZGUuY2F0ZWdvcnlTdHJhdGVneSxcclxuICAgICAgdGhpcy5zdHJhdGVnaWVzRmFjYWRlLnRlcm1TdHJhdGVneSxcclxuICAgICAgdGhpcy5zdHJhdGVnaWVzRmFjYWRlLnByb2ZpbGVTdHJhdGVneSxcclxuICAgIClcclxuXHJcbiAgICB0aGlzLmNhdGFsb2dTZXJ2aWNlID0gbmV3IENhdGFsb2dTZXJ2aWNlKHNlYXJjaENvbnRleHQsIHRoaXMuaGVscGVyc1NlcnZpY2UsIHRoaXMuc2hvcClcclxuICB9XHJcblxyXG4gIGdldENhdGFsb2dTZXJ2aWNlKCk6IENhdGFsb2dTZXJ2aWNlIHtcclxuICAgIHJldHVybiB0aGlzLmNhdGFsb2dTZXJ2aWNlXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { CategorySearchStrategy, ProfileSearchStrategy, TermSearchStrategy } from '../strategies';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../strategies";
5
+ export class CatalogStrategiesFacade {
6
+ constructor(categoryStrategy, termStrategy, profileStrategy) {
7
+ this.categoryStrategy = categoryStrategy;
8
+ this.termStrategy = termStrategy;
9
+ this.profileStrategy = profileStrategy;
10
+ }
11
+ }
12
+ CatalogStrategiesFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogStrategiesFacade, deps: [{ token: i1.CategorySearchStrategy }, { token: i1.TermSearchStrategy }, { token: i1.ProfileSearchStrategy }], target: i0.ɵɵFactoryTarget.Injectable });
13
+ CatalogStrategiesFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogStrategiesFacade });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogStrategiesFacade, decorators: [{
15
+ type: Injectable
16
+ }], ctorParameters: function () { return [{ type: i1.CategorySearchStrategy }, { type: i1.TermSearchStrategy }, { type: i1.ProfileSearchStrategy }]; } });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1zdHJhdGVnaWVzLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9mYWNhZGVzL2NhdGFsb2ctc3RyYXRlZ2llcy5mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUE7OztBQUdqRyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQ2tCLGdCQUF3QyxFQUN4QyxZQUFnQyxFQUNoQyxlQUFzQztRQUZ0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXdCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7SUFDckQsQ0FBQzs7b0hBTE8sdUJBQXVCO3dIQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5cclxuaW1wb3J0IHsgQ2F0ZWdvcnlTZWFyY2hTdHJhdGVneSwgUHJvZmlsZVNlYXJjaFN0cmF0ZWd5LCBUZXJtU2VhcmNoU3RyYXRlZ3kgfSBmcm9tICcuLi9zdHJhdGVnaWVzJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ1N0cmF0ZWdpZXNGYWNhZGUge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3J5U3RyYXRlZ3k6IENhdGVnb3J5U2VhcmNoU3RyYXRlZ3ksXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGVybVN0cmF0ZWd5OiBUZXJtU2VhcmNoU3RyYXRlZ3ksXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgcHJvZmlsZVN0cmF0ZWd5OiBQcm9maWxlU2VhcmNoU3RyYXRlZ3ksXHJcbiAgKSB7fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class CategoryRepositoryFacade {
4
+ constructor(categoryRepository, categoryFilterRepository) {
5
+ this.categoryRepository = categoryRepository;
6
+ this.categoryFilterRepository = categoryFilterRepository;
7
+ }
8
+ }
9
+ CategoryRepositoryFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryRepositoryFacade, deps: [{ token: 'CategoryRepository' }, { token: 'CategoryFilterRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
10
+ CategoryRepositoryFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryRepositoryFacade });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryRepositoryFacade, decorators: [{
12
+ type: Injectable
13
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14
+ type: Inject,
15
+ args: ['CategoryRepository']
16
+ }] }, { type: undefined, decorators: [{
17
+ type: Inject,
18
+ args: ['CategoryFilterRepository']
19
+ }] }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktcmVwb3NpdG9yeS5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvZmFjYWRlcy9jYXRlZ29yeS1yZXBvc2l0b3J5LmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7QUFJbEQsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNnRCxrQkFBc0MsRUFDaEMsd0JBQWtEO1FBRHhELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDaEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtJQUNyRyxDQUFDOztxSEFKTyx3QkFBd0Isa0JBRXpCLG9CQUFvQixhQUNwQiwwQkFBMEI7eUhBSHpCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVOzswQkFHTixNQUFNOzJCQUFDLG9CQUFvQjs7MEJBQzNCLE1BQU07MkJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5LCBDYXRlZ29yeVJlcG9zaXRvcnkgfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENhdGVnb3J5UmVwb3NpdG9yeUZhY2FkZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KCdDYXRlZ29yeVJlcG9zaXRvcnknKSBwdWJsaWMgcmVhZG9ubHkgY2F0ZWdvcnlSZXBvc2l0b3J5OiBDYXRlZ29yeVJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KCdDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnknKSBwdWJsaWMgcmVhZG9ubHkgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5OiBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXHJcbiAgKSB7fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,30 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { Shops } from '@infrab4a/connect';
3
+ import { DEFAULT_SHOP } from '../../../consts';
4
+ import { CategoryService } from '../category.service';
5
+ import { CategoryRepositoryFacade } from './category-repository.facade';
6
+ import { ProductCatalogFacade } from './product-catalog.facade';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./category-repository.facade";
9
+ import * as i2 from "./product-catalog.facade";
10
+ import * as i3 from "@infrab4a/connect";
11
+ export class CategoryServiceFacade {
12
+ constructor(categoryRepositoryFacade, productCatalogFacade, shop) {
13
+ this.categoryRepositoryFacade = categoryRepositoryFacade;
14
+ this.productCatalogFacade = productCatalogFacade;
15
+ this.shop = shop;
16
+ this.categoryService = new CategoryService(this.categoryRepositoryFacade, this.productCatalogFacade, this.shop);
17
+ }
18
+ getCategoryService() {
19
+ return this.categoryService;
20
+ }
21
+ }
22
+ CategoryServiceFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryServiceFacade, deps: [{ token: i1.CategoryRepositoryFacade }, { token: i2.ProductCatalogFacade }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
23
+ CategoryServiceFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryServiceFacade });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryServiceFacade, decorators: [{
25
+ type: Injectable
26
+ }], ctorParameters: function () { return [{ type: i1.CategoryRepositoryFacade }, { type: i2.ProductCatalogFacade }, { type: i3.Shops, decorators: [{
27
+ type: Inject,
28
+ args: [DEFAULT_SHOP]
29
+ }] }]; } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktc2VydmljZS5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvZmFjYWRlcy9jYXRlZ29yeS1zZXJ2aWNlLmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUVyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7Ozs7QUFHL0QsTUFBTSxPQUFPLHFCQUFxQjtJQUdoQyxZQUNtQix3QkFBa0QsRUFDbEQsb0JBQTBDLEVBQ3BCLElBQVc7UUFGakMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQ3BCLFNBQUksR0FBSixJQUFJLENBQU87UUFFbEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNqSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQTtJQUM3QixDQUFDOztrSEFiVSxxQkFBcUIsOEZBTXRCLFlBQVk7c0hBTlgscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVU7OzBCQU9OLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IFNob3BzIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcblxyXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi8uLi8uLi9jb25zdHMnXHJcbmltcG9ydCB7IENhdGVnb3J5U2VydmljZSB9IGZyb20gJy4uL2NhdGVnb3J5LnNlcnZpY2UnXHJcblxyXG5pbXBvcnQgeyBDYXRlZ29yeVJlcG9zaXRvcnlGYWNhZGUgfSBmcm9tICcuL2NhdGVnb3J5LXJlcG9zaXRvcnkuZmFjYWRlJ1xyXG5pbXBvcnQgeyBQcm9kdWN0Q2F0YWxvZ0ZhY2FkZSB9IGZyb20gJy4vcHJvZHVjdC1jYXRhbG9nLmZhY2FkZSdcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENhdGVnb3J5U2VydmljZUZhY2FkZSB7XHJcbiAgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlSZXBvc2l0b3J5RmFjYWRlOiBDYXRlZ29yeVJlcG9zaXRvcnlGYWNhZGUsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3RDYXRhbG9nRmFjYWRlOiBQcm9kdWN0Q2F0YWxvZ0ZhY2FkZSxcclxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IHNob3A6IFNob3BzLFxyXG4gICkge1xyXG4gICAgdGhpcy5jYXRlZ29yeVNlcnZpY2UgPSBuZXcgQ2F0ZWdvcnlTZXJ2aWNlKHRoaXMuY2F0ZWdvcnlSZXBvc2l0b3J5RmFjYWRlLCB0aGlzLnByb2R1Y3RDYXRhbG9nRmFjYWRlLCB0aGlzLnNob3ApXHJcbiAgfVxyXG5cclxuICBnZXRDYXRlZ29yeVNlcnZpY2UoKTogQ2F0ZWdvcnlTZXJ2aWNlIHtcclxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5U2VydmljZVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,6 @@
1
+ export { CatalogServiceFacade } from './catalog-service.facade';
2
+ export { CatalogStrategiesFacade } from './catalog-strategies.facade';
3
+ export { CategoryRepositoryFacade } from './category-repository.facade';
4
+ export { CategoryServiceFacade } from './category-service.facade';
5
+ export { ProductCatalogFacade } from './product-catalog.facade';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvZmFjYWRlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENhdGFsb2dTZXJ2aWNlRmFjYWRlIH0gZnJvbSAnLi9jYXRhbG9nLXNlcnZpY2UuZmFjYWRlJ1xyXG5leHBvcnQgeyBDYXRhbG9nU3RyYXRlZ2llc0ZhY2FkZSB9IGZyb20gJy4vY2F0YWxvZy1zdHJhdGVnaWVzLmZhY2FkZSdcclxuZXhwb3J0IHsgQ2F0ZWdvcnlSZXBvc2l0b3J5RmFjYWRlIH0gZnJvbSAnLi9jYXRlZ29yeS1yZXBvc2l0b3J5LmZhY2FkZSdcclxuZXhwb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlRmFjYWRlIH0gZnJvbSAnLi9jYXRlZ29yeS1zZXJ2aWNlLmZhY2FkZSdcclxuZXhwb3J0IHsgUHJvZHVjdENhdGFsb2dGYWNhZGUgfSBmcm9tICcuL3Byb2R1Y3QtY2F0YWxvZy5mYWNhZGUnXHJcbiJdfQ==