@infrab4a/connect-angular 5.8.0-beta.2 → 5.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/angular-connect.module.d.ts +36 -36
  2. package/angular-elastic-search.module.d.ts +9 -9
  3. package/angular-firebase-auth.module.d.ts +11 -11
  4. package/angular-firestore.module.d.ts +17 -17
  5. package/angular-hasura-graphql.module.d.ts +14 -14
  6. package/angular-vertex-search.module.d.ts +9 -9
  7. package/consts/backend-url.const.d.ts +1 -1
  8. package/consts/category-structure.d.ts +1 -1
  9. package/consts/default-shop.const.d.ts +1 -1
  10. package/consts/es-config.const.d.ts +1 -1
  11. package/consts/firebase-const.d.ts +4 -4
  12. package/consts/hasura-options.const.d.ts +1 -1
  13. package/consts/index.d.ts +8 -8
  14. package/consts/persistence.const.d.ts +1 -1
  15. package/consts/storage-base-url.const.d.ts +1 -1
  16. package/consts/vertex-config.const.d.ts +1 -1
  17. package/esm2022/angular-connect.module.mjs +293 -0
  18. package/esm2022/angular-elastic-search.module.mjs +34 -0
  19. package/esm2022/angular-firebase-auth.module.mjs +141 -0
  20. package/esm2022/angular-firestore.module.mjs +597 -0
  21. package/esm2022/angular-hasura-graphql.module.mjs +421 -0
  22. package/esm2022/angular-vertex-search.module.mjs +34 -0
  23. package/{esm2020 → esm2022}/consts/backend-url.const.mjs +1 -1
  24. package/{esm2020 → esm2022}/consts/category-structure.mjs +1 -1
  25. package/{esm2020 → esm2022}/consts/default-shop.const.mjs +1 -1
  26. package/{esm2020 → esm2022}/consts/es-config.const.mjs +1 -1
  27. package/{esm2020 → esm2022}/consts/firebase-const.mjs +4 -4
  28. package/{esm2020 → esm2022}/consts/hasura-options.const.mjs +1 -1
  29. package/{esm2020 → esm2022}/consts/index.mjs +8 -8
  30. package/{esm2020 → esm2022}/consts/persistence.const.mjs +1 -1
  31. package/{esm2020 → esm2022}/consts/storage-base-url.const.mjs +1 -1
  32. package/{esm2020 → esm2022}/consts/vertex-config.const.mjs +1 -1
  33. package/{esm2020 → esm2022}/helpers/index.mjs +1 -1
  34. package/{esm2020 → esm2022}/helpers/mobile-operation-system-checker.helper.mjs +6 -6
  35. package/{esm2020 → esm2022}/index.mjs +6 -6
  36. package/{esm2020 → esm2022}/infrab4a-connect-angular.mjs +4 -4
  37. package/{esm2020 → esm2022}/interfaces/catalog-strategies.interface.mjs +1 -1
  38. package/{esm2020 → esm2022}/interfaces/category-facades.interface.mjs +1 -1
  39. package/{esm2020 → esm2022}/interfaces/index.mjs +2 -2
  40. package/{esm2020 → esm2022}/persistence/cookie-data-persistence.mjs +22 -22
  41. package/{esm2020 → esm2022}/persistence/data-persistence.mjs +1 -1
  42. package/{esm2020 → esm2022}/persistence/index.mjs +2 -2
  43. package/{esm2020 → esm2022}/services/auth.service.mjs +37 -37
  44. package/{esm2020 → esm2022}/services/cart/cart-services.facade.mjs +21 -21
  45. package/{esm2020 → esm2022}/services/cart/index.mjs +1 -1
  46. package/{esm2020 → esm2022}/services/cart.service.mjs +73 -73
  47. package/{esm2020 → esm2022}/services/catalog/adapters/category-structure.adapter.mjs +1 -1
  48. package/{esm2020 → esm2022}/services/catalog/adapters/index.mjs +3 -3
  49. package/{esm2020 → esm2022}/services/catalog/adapters/new-category-structure.adapter.mjs +43 -43
  50. package/{esm2020 → esm2022}/services/catalog/adapters/old-category-structure.adapter.mjs +23 -23
  51. package/{esm2020 → esm2022}/services/catalog/catalog.service.mjs +111 -111
  52. package/{esm2020 → esm2022}/services/catalog/category.service.mjs +42 -42
  53. package/{esm2020 → esm2022}/services/catalog/context/catalog-search.context.mjs +39 -39
  54. package/{esm2020 → esm2022}/services/catalog/enums/index.mjs +1 -1
  55. package/{esm2020 → esm2022}/services/catalog/enums/product-sorts.enum.mjs +10 -10
  56. package/{esm2020 → esm2022}/services/catalog/facades/catalog-service.facade.mjs +32 -32
  57. package/{esm2020 → esm2022}/services/catalog/facades/catalog-strategies.facade.mjs +17 -17
  58. package/{esm2020 → esm2022}/services/catalog/facades/category-repository.facade.mjs +20 -20
  59. package/{esm2020 → esm2022}/services/catalog/facades/category-service.facade.mjs +30 -30
  60. package/{esm2020 → esm2022}/services/catalog/facades/index.mjs +5 -5
  61. package/{esm2020 → esm2022}/services/catalog/facades/product-catalog.facade.mjs +21 -21
  62. package/{esm2020 → esm2022}/services/catalog/helpers/brand-manager.helper.mjs +62 -62
  63. package/{esm2020 → esm2022}/services/catalog/helpers/catalog-filter.helper.mjs +44 -44
  64. package/{esm2020 → esm2022}/services/catalog/helpers/catalog-sort.helper.mjs +52 -52
  65. package/{esm2020 → esm2022}/services/catalog/helpers/index.mjs +4 -4
  66. package/{esm2020 → esm2022}/services/catalog/helpers/product-fields.helper.mjs +43 -43
  67. package/{esm2020 → esm2022}/services/catalog/index.mjs +7 -7
  68. package/{esm2020 → esm2022}/services/catalog/models/category-with-tree.model.mjs +10 -10
  69. package/{esm2020 → esm2022}/services/catalog/models/index.mjs +1 -1
  70. package/{esm2020 → esm2022}/services/catalog/services/catalog-helpers.service.mjs +33 -33
  71. package/{esm2020 → esm2022}/services/catalog/services/catalog-operations.facade.mjs +26 -26
  72. package/{esm2020 → esm2022}/services/catalog/services/catalog-repository.service.mjs +25 -25
  73. package/{esm2020 → esm2022}/services/catalog/services/index.mjs +4 -4
  74. package/{esm2020 → esm2022}/services/catalog/services/product-management.facade.mjs +25 -25
  75. package/{esm2020 → esm2022}/services/catalog/strategies/category-search.strategy.mjs +133 -133
  76. package/{esm2020 → esm2022}/services/catalog/strategies/index.mjs +3 -3
  77. package/{esm2020 → esm2022}/services/catalog/strategies/profile-search.strategy.mjs +42 -42
  78. package/{esm2020 → esm2022}/services/catalog/strategies/term-search.strategy.mjs +126 -126
  79. package/{esm2020 → esm2022}/services/catalog/strategies/types/strategy-params.type.mjs +1 -1
  80. package/{esm2020 → esm2022}/services/catalog/types/fetch-products-options.type.mjs +1 -1
  81. package/{esm2020 → esm2022}/services/catalog/types/fetch-products-params.type.mjs +1 -1
  82. package/{esm2020 → esm2022}/services/catalog/types/fetch-products-response.type.mjs +1 -1
  83. package/{esm2020 → esm2022}/services/catalog/types/index.mjs +5 -5
  84. package/{esm2020 → esm2022}/services/catalog/types/method-params.type.mjs +1 -1
  85. package/{esm2020 → esm2022}/services/catalog/types/product-sort.type.mjs +1 -1
  86. package/{esm2020 → esm2022}/services/catalog/wishlist.service.mjs +258 -258
  87. package/{esm2020 → esm2022}/services/checkout/checkout-dependencies.facade.mjs +20 -20
  88. package/{esm2020 → esm2022}/services/checkout/checkout-repositories.facade.mjs +20 -20
  89. package/{esm2020 → esm2022}/services/checkout/index.mjs +2 -2
  90. package/{esm2020 → esm2022}/services/checkout-subscription.service.mjs +55 -55
  91. package/{esm2020 → esm2022}/services/checkout.service.mjs +106 -106
  92. package/{esm2020 → esm2022}/services/coupon/coupon-repositories.facade.mjs +24 -24
  93. package/{esm2020 → esm2022}/services/coupon/index.mjs +1 -1
  94. package/{esm2020 → esm2022}/services/coupon/types/coupon-params.type.mjs +1 -1
  95. package/{esm2020 → esm2022}/services/coupon.service.mjs +248 -248
  96. package/{esm2020 → esm2022}/services/helpers/index.mjs +1 -1
  97. package/{esm2020 → esm2022}/services/helpers/util.helper.mjs +17 -17
  98. package/{esm2020 → esm2022}/services/home-shop/home-shop-repositories.facade.mjs +24 -24
  99. package/{esm2020 → esm2022}/services/home-shop/index.mjs +1 -1
  100. package/{esm2020 → esm2022}/services/home-shop.service.mjs +119 -119
  101. package/{esm2020 → esm2022}/services/index.mjs +11 -11
  102. package/{esm2020 → esm2022}/services/order-product-review.service.mjs +126 -126
  103. package/{esm2020 → esm2022}/services/order-recurrence.service.mjs +83 -83
  104. package/{esm2020 → esm2022}/services/order.service.mjs +30 -30
  105. package/{esm2020 → esm2022}/services/shared/configuration.facade.mjs +29 -29
  106. package/{esm2020 → esm2022}/services/shared/index.mjs +1 -1
  107. package/{esm2020 → esm2022}/services/types/index.mjs +4 -4
  108. package/{esm2020 → esm2022}/services/types/pending-product-review.type.mjs +1 -1
  109. package/{esm2020 → esm2022}/services/types/product-review-create.type.mjs +1 -1
  110. package/{esm2020 → esm2022}/services/types/required-checkout-data.type.mjs +1 -1
  111. package/{esm2020 → esm2022}/services/types/required-checkout-subscription-data.type.mjs +1 -1
  112. package/{esm2020 → esm2022}/types/firebase-app-config.type.mjs +1 -1
  113. package/{esm2020 → esm2022}/types/index.mjs +1 -1
  114. package/{fesm2020 → fesm2022}/infrab4a-connect-angular.mjs +3527 -3527
  115. package/{fesm2020 → fesm2022}/infrab4a-connect-angular.mjs.map +1 -1
  116. package/helpers/index.d.ts +1 -1
  117. package/helpers/mobile-operation-system-checker.helper.d.ts +3 -3
  118. package/index.d.ts +6 -6
  119. package/interfaces/catalog-strategies.interface.d.ts +31 -31
  120. package/interfaces/category-facades.interface.d.ts +6 -6
  121. package/interfaces/index.d.ts +2 -2
  122. package/package.json +6 -12
  123. package/persistence/cookie-data-persistence.d.ts +10 -10
  124. package/persistence/data-persistence.d.ts +6 -6
  125. package/persistence/index.d.ts +2 -2
  126. package/services/auth.service.d.ts +18 -18
  127. package/services/cart/cart-services.facade.d.ts +12 -12
  128. package/services/cart/index.d.ts +1 -1
  129. package/services/cart.service.d.ts +26 -26
  130. package/services/catalog/adapters/category-structure.adapter.d.ts +4 -4
  131. package/services/catalog/adapters/index.d.ts +3 -3
  132. package/services/catalog/adapters/new-category-structure.adapter.d.ts +12 -12
  133. package/services/catalog/adapters/old-category-structure.adapter.d.ts +10 -10
  134. package/services/catalog/catalog.service.d.ts +24 -24
  135. package/services/catalog/category.service.d.ts +23 -23
  136. package/services/catalog/context/catalog-search.context.d.ts +14 -14
  137. package/services/catalog/enums/index.d.ts +1 -1
  138. package/services/catalog/enums/product-sorts.enum.d.ts +9 -9
  139. package/services/catalog/facades/catalog-service.facade.d.ts +15 -15
  140. package/services/catalog/facades/catalog-strategies.facade.d.ts +10 -10
  141. package/services/catalog/facades/category-repository.facade.d.ts +9 -9
  142. package/services/catalog/facades/category-service.facade.d.ts +15 -15
  143. package/services/catalog/facades/index.d.ts +5 -5
  144. package/services/catalog/facades/product-catalog.facade.d.ts +10 -10
  145. package/services/catalog/helpers/brand-manager.helper.d.ts +14 -14
  146. package/services/catalog/helpers/catalog-filter.helper.d.ts +8 -8
  147. package/services/catalog/helpers/catalog-sort.helper.d.ts +7 -7
  148. package/services/catalog/helpers/index.d.ts +4 -4
  149. package/services/catalog/helpers/product-fields.helper.d.ts +7 -7
  150. package/services/catalog/index.d.ts +7 -7
  151. package/services/catalog/models/category-with-tree.model.d.ts +4 -4
  152. package/services/catalog/models/index.d.ts +1 -1
  153. package/services/catalog/services/catalog-helpers.service.d.ts +17 -17
  154. package/services/catalog/services/catalog-operations.facade.d.ts +13 -13
  155. package/services/catalog/services/catalog-repository.service.d.ts +12 -12
  156. package/services/catalog/services/index.d.ts +4 -4
  157. package/services/catalog/services/product-management.facade.d.ts +12 -12
  158. package/services/catalog/strategies/category-search.strategy.d.ts +19 -19
  159. package/services/catalog/strategies/index.d.ts +3 -3
  160. package/services/catalog/strategies/profile-search.strategy.d.ts +14 -14
  161. package/services/catalog/strategies/term-search.strategy.d.ts +20 -20
  162. package/services/catalog/strategies/types/strategy-params.type.d.ts +59 -59
  163. package/services/catalog/types/fetch-products-options.type.d.ts +8 -8
  164. package/services/catalog/types/fetch-products-params.type.d.ts +25 -25
  165. package/services/catalog/types/fetch-products-response.type.d.ts +19 -19
  166. package/services/catalog/types/index.d.ts +5 -5
  167. package/services/catalog/types/method-params.type.d.ts +17 -17
  168. package/services/catalog/types/product-sort.type.d.ts +2 -2
  169. package/services/catalog/wishlist.service.d.ts +60 -60
  170. package/services/checkout/checkout-dependencies.facade.d.ts +10 -10
  171. package/services/checkout/checkout-repositories.facade.d.ts +9 -9
  172. package/services/checkout/index.d.ts +2 -2
  173. package/services/checkout-subscription.service.d.ts +19 -19
  174. package/services/checkout.service.d.ts +30 -30
  175. package/services/coupon/coupon-repositories.facade.d.ts +10 -10
  176. package/services/coupon/index.d.ts +1 -1
  177. package/services/coupon/types/coupon-params.type.d.ts +13 -13
  178. package/services/coupon.service.d.ts +36 -36
  179. package/services/helpers/index.d.ts +1 -1
  180. package/services/helpers/util.helper.d.ts +3 -3
  181. package/services/home-shop/home-shop-repositories.facade.d.ts +10 -10
  182. package/services/home-shop/index.d.ts +1 -1
  183. package/services/home-shop.service.d.ts +26 -26
  184. package/services/index.d.ts +11 -11
  185. package/services/order-product-review.service.d.ts +18 -18
  186. package/services/order-recurrence.service.d.ts +37 -37
  187. package/services/order.service.d.ts +13 -13
  188. package/services/shared/configuration.facade.d.ts +12 -12
  189. package/services/shared/index.d.ts +1 -1
  190. package/services/types/index.d.ts +4 -4
  191. package/services/types/pending-product-review.type.d.ts +12 -12
  192. package/services/types/product-review-create.type.d.ts +14 -14
  193. package/services/types/required-checkout-data.type.d.ts +2 -2
  194. package/services/types/required-checkout-subscription-data.type.d.ts +2 -2
  195. package/types/firebase-app-config.type.d.ts +1 -1
  196. package/types/index.d.ts +1 -1
  197. package/esm2020/angular-connect.module.mjs +0 -293
  198. package/esm2020/angular-elastic-search.module.mjs +0 -34
  199. package/esm2020/angular-firebase-auth.module.mjs +0 -141
  200. package/esm2020/angular-firestore.module.mjs +0 -597
  201. package/esm2020/angular-hasura-graphql.module.mjs +0 -421
  202. package/esm2020/angular-vertex-search.module.mjs +0 -34
  203. package/fesm2015/infrab4a-connect-angular.mjs +0 -3735
  204. package/fesm2015/infrab4a-connect-angular.mjs.map +0 -1
@@ -1,23 +1,23 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { Where } from '@infrab4a/connect';
3
- import * as i0 from "@angular/core";
4
- export class OldCategoryStructureAdapter {
5
- constructor(categoryRepository) {
6
- this.categoryRepository = categoryRepository;
7
- }
8
- async buildProductFilterByCategory(category) {
9
- const productsIds = category.products?.length
10
- ? category.products
11
- : await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products);
12
- return { id: { operator: Where.IN, value: productsIds } };
13
- }
14
- }
15
- OldCategoryStructureAdapterfac = 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=
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OldCategoryStructureAdapter, deps: [{ token: 'CategoryRepository' }], target: i0.ɵɵFactoryTarget.Injectable }); }
15
+ static { thisprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OldCategoryStructureAdapter }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OldCategoryStructureAdapter, decorators: [{
18
+ type: Injectable
19
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
20
+ type: Inject,
21
+ args: ['CategoryRepository']
22
+ }] }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2xkLWNhdGVnb3J5LXN0cnVjdHVyZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2FkYXB0ZXJzL29sZC1jYXRlZ29yeS1zdHJ1Y3R1cmUuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQWlFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBOztBQUt4RyxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQTJELGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQUcsQ0FBQztJQUVyRyxLQUFLLENBQUMsNEJBQTRCLENBQUMsUUFBa0I7UUFDbkQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNO1lBQzNDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUNuQixDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRTFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQTtJQUMzRCxDQUFDOzhHQVRVLDJCQUEyQixrQkFDbEIsb0JBQW9CO2tIQUQ3QiwyQkFBMkI7OzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVU7OzBCQUVJLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQ2F0ZWdvcnksIENhdGVnb3J5UmVwb3NpdG9yeSwgUHJvZHVjdCwgUmVwb3NpdG9yeUZpbmRGaWVsdGVycywgV2hlcmUgfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuXHJcbmltcG9ydCB7IENhdGVnb3J5U3RydWN0dXJlQWRhcHRlciB9IGZyb20gJy4vY2F0ZWdvcnktc3RydWN0dXJlLmFkYXB0ZXInXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBPbGRDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIgaW1wbGVtZW50cyBDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIge1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ0NhdGVnb3J5UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlSZXBvc2l0b3J5OiBDYXRlZ29yeVJlcG9zaXRvcnkpIHt9XHJcblxyXG4gIGFzeW5jIGJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnk6IENhdGVnb3J5KTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFByb2R1Y3Q+PiB7XHJcbiAgICBjb25zdCBwcm9kdWN0c0lkcyA9IGNhdGVnb3J5LnByb2R1Y3RzPy5sZW5ndGhcclxuICAgICAgPyBjYXRlZ29yeS5wcm9kdWN0c1xyXG4gICAgICA6IGF3YWl0IHRoaXMuY2F0ZWdvcnlSZXBvc2l0b3J5LmdldCh7IGlkOiBjYXRlZ29yeS5pZCB9KS50aGVuKChjYXRlZ29yeUZvdW5kKSA9PiBjYXRlZ29yeUZvdW5kLnByb2R1Y3RzKVxyXG5cclxuICAgIHJldHVybiB7IGlkOiB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IHByb2R1Y3RzSWRzIH0gfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,111 +1,111 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { InvalidArgumentError, RoundProductPricesHelper, Shops, } from '@infrab4a/connect';
3
- import { DEFAULT_SHOP } from '../../consts';
4
- import { CatalogSearchContext } from './context/catalog-search.context';
5
- import { CatalogHelpersService } from './services';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./context/catalog-search.context";
8
- import * as i2 from "./services";
9
- import * as i3 from "@infrab4a/connect";
10
- export class CatalogService {
11
- constructor(searchContext, helpersService, shop) {
12
- this.searchContext = searchContext;
13
- this.helpersService = helpersService;
14
- this.shop = shop;
15
- }
16
- async fetchProducts(options, optionsCache) {
17
- this.validateRequest(options);
18
- const searchParams = this.buildSearchParams(options);
19
- const { data, count: total, maximum, minimal, distinct, } = await this.searchContext.executeSearch(searchParams, this.shop, optionsCache);
20
- await this.helpersService.getBrandManager().setBrandsList(searchParams, distinct?.brand);
21
- return this.buildResponse({
22
- data,
23
- total,
24
- maximum,
25
- minimal,
26
- searchParams,
27
- options,
28
- });
29
- }
30
- async addCustomerToStockNotification(params) {
31
- const { shop, productId, name, email } = params;
32
- const productServices = this.helpersService.getProductServices();
33
- return productServices.productStockNotificationRepository.addCustomerEmail({
34
- shop,
35
- productId,
36
- name,
37
- email,
38
- });
39
- }
40
- validateRequest(options) {
41
- if (this.hasProfile(options) && options.filters?.customOptions) {
42
- throw new InvalidArgumentError(`It couldn't filled customOptions when profile is given`);
43
- }
44
- if (this.hasProfile(options) && options.filters?.tags) {
45
- throw new InvalidArgumentError(`It couldn't filled tags when profile is given`);
46
- }
47
- if (this.hasTerm(options) && options.filters?.customOptions) {
48
- throw new InvalidArgumentError(`It couldn't filled customOptions when term is given`);
49
- }
50
- }
51
- buildSearchParams(options) {
52
- const limits = this.buildLimitQuery(options);
53
- return {
54
- category: this.hasCategory(options) ? options.category : undefined,
55
- profile: this.hasProfile(options) ? options.profile : undefined,
56
- term: this.hasTerm(options) ? options.term : undefined,
57
- filters: options.filters,
58
- mainGender: options.mainGender,
59
- sort: options.sort,
60
- limits,
61
- };
62
- }
63
- buildResponse(params) {
64
- const { data, total, maximum, minimal, searchParams } = params;
65
- const limits = searchParams.limits;
66
- const indexKey = this.helpersService.getBrandManager().buildIndexBrands(searchParams);
67
- return {
68
- products: {
69
- data: data.map((product) => RoundProductPricesHelper.roundProductPrices(product)),
70
- total,
71
- },
72
- pages: Math.ceil(total / limits.limit),
73
- prices: {
74
- price: {
75
- min: +(minimal?.price?.price?.toFixed(2) || 0),
76
- max: +(maximum?.price?.price?.toFixed(2) || 0),
77
- },
78
- subscriberPrice: {
79
- min: +(minimal?.price?.subscriberPrice?.toFixed(2) || 0),
80
- max: +(maximum?.price?.subscriberPrice?.toFixed(2) || 0),
81
- },
82
- },
83
- brands: this.helpersService.getBrandManager().getBrandsList(indexKey),
84
- };
85
- }
86
- buildLimitQuery(options) {
87
- const limit = options?.perPage || 20;
88
- return {
89
- limit,
90
- offset: ((options?.page || 1) - 1) * limit,
91
- };
92
- }
93
- hasProfile(options) {
94
- return 'profile' in options;
95
- }
96
- hasTerm(options) {
97
- return 'term' in options;
98
- }
99
- hasCategory(options) {
100
- return 'category' in options;
101
- }
102
- }
103
- CatalogServicefac = 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==
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CatalogService, deps: [{ token: i1.CatalogSearchContext }, { token: i2.CatalogHelpersService }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable }); }
103
+ static { thisprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CatalogService }); }
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CatalogService, decorators: [{
106
+ type: Injectable
107
+ }], ctorParameters: () => [{ 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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Q0FBQTtJQUM5QixDQUFDOzhHQS9IVSxjQUFjLDJGQUlmLFlBQVk7a0hBSlgsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsVUFBVTs7MEJBS04sTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBDYXRlZ29yeSxcclxuICBJbnZhbGlkQXJndW1lbnRFcnJvcixcclxuICBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zLFxyXG4gIFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlcixcclxuICBTaG9wcyxcclxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuXHJcbmltcG9ydCB7IERFRkFVTFRfU0hPUCB9IGZyb20gJy4uLy4uL2NvbnN0cydcclxuaW1wb3J0IHsgQ2F0YWxvZ0ZpbHRlcnMsIENhdGFsb2dTZWFyY2hQYXJhbXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJ1xyXG5cclxuaW1wb3J0IHsgQ2F0YWxvZ1NlYXJjaENvbnRleHQgfSBmcm9tICcuL2NvbnRleHQvY2F0YWxvZy1zZWFyY2guY29udGV4dCdcclxuaW1wb3J0IHsgQ2F0YWxvZ0hlbHBlcnNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcydcclxuaW1wb3J0IHtcclxuICBCdWlsZFJlc3BvbnNlUGFyYW1zLFxyXG4gIEZldGNoUHJvZHVjdHNNYWluUGFyYW1zLFxyXG4gIEZldGNoUHJvZHVjdHNPcHRpb25zLFxyXG4gIEZldGNoUHJvZHVjdHNQYXJhbXMsXHJcbiAgRmV0Y2hQcm9kdWN0c1Jlc3BvbnNlLFxyXG4gIFN0b2NrTm90aWZpY2F0aW9uUGFyYW1zLFxyXG59IGZyb20gJy4vdHlwZXMnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYXRhbG9nU2VydmljZTxUIGV4dGVuZHMgQ2F0ZWdvcnkgPSBDYXRlZ29yeT4ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWFyY2hDb250ZXh0OiBDYXRhbG9nU2VhcmNoQ29udGV4dCxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGVscGVyc1NlcnZpY2U6IENhdGFsb2dIZWxwZXJzU2VydmljZSxcclxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IHNob3A6IFNob3BzLFxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgZmV0Y2hQcm9kdWN0cyhcclxuICAgIG9wdGlvbnM6IEZldGNoUHJvZHVjdHNQYXJhbXM8VD4sXHJcbiAgICBvcHRpb25zQ2FjaGU/OiB7IGNhY2hlPzogUmVwb3NpdG9yeUNhY2hlT3B0aW9ucyB9LFxyXG4gICk6IFByb21pc2U8RmV0Y2hQcm9kdWN0c1Jlc3BvbnNlPiB7XHJcbiAgICB0aGlzLnZhbGlkYXRlUmVxdWVzdChvcHRpb25zKVxyXG5cclxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IHRoaXMuYnVpbGRTZWFyY2hQYXJhbXMob3B0aW9ucylcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGF0YSxcclxuICAgICAgY291bnQ6IHRvdGFsLFxyXG4gICAgICBtYXhpbXVtLFxyXG4gICAgICBtaW5pbWFsLFxyXG4gICAgICBkaXN0aW5jdCxcclxuICAgIH0gPSBhd2FpdCB0aGlzLnNlYXJjaENvbnRleHQuZXhlY3V0ZVNlYXJjaChzZWFyY2hQYXJhbXMsIHRoaXMuc2hvcCwgb3B0aW9uc0NhY2hlKVxyXG5cclxuICAgIGF3YWl0IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0QnJhbmRNYW5hZ2VyKCkuc2V0QnJhbmRzTGlzdChzZWFyY2hQYXJhbXMsIGRpc3RpbmN0Py5icmFuZClcclxuXHJcbiAgICByZXR1cm4gdGhpcy5idWlsZFJlc3BvbnNlKHtcclxuICAgICAgZGF0YSxcclxuICAgICAgdG90YWwsXHJcbiAgICAgIG1heGltdW0sXHJcbiAgICAgIG1pbmltYWwsXHJcbiAgICAgIHNlYXJjaFBhcmFtcyxcclxuICAgICAgb3B0aW9ucyxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBhc3luYyBhZGRDdXN0b21lclRvU3RvY2tOb3RpZmljYXRpb24ocGFyYW1zOiBTdG9ja05vdGlmaWNhdGlvblBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgeyBzaG9wLCBwcm9kdWN0SWQsIG5hbWUsIGVtYWlsIH0gPSBwYXJhbXNcclxuICAgIGNvbnN0IHByb2R1Y3RTZXJ2aWNlcyA9IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0UHJvZHVjdFNlcnZpY2VzKClcclxuXHJcbiAgICByZXR1cm4gcHJvZHVjdFNlcnZpY2VzLnByb2R1Y3RTdG9ja05vdGlmaWNhdGlvblJlcG9zaXRvcnkuYWRkQ3VzdG9tZXJFbWFpbCh7XHJcbiAgICAgIHNob3AsXHJcbiAgICAgIHByb2R1Y3RJZCxcclxuICAgICAgbmFtZSxcclxuICAgICAgZW1haWwsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZVJlcXVlc3Qob3B0aW9uczogRmV0Y2hQcm9kdWN0c1BhcmFtczxUPik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaGFzUHJvZmlsZShvcHRpb25zKSAmJiBvcHRpb25zLmZpbHRlcnM/LmN1c3RvbU9wdGlvbnMpIHtcclxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKGBJdCBjb3VsZG4ndCBmaWxsZWQgY3VzdG9tT3B0aW9ucyB3aGVuIHByb2ZpbGUgaXMgZ2l2ZW5gKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmhhc1Byb2ZpbGUob3B0aW9ucykgJiYgb3B0aW9ucy5maWx0ZXJzPy50YWdzKSB7XHJcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihgSXQgY291bGRuJ3QgZmlsbGVkIHRhZ3Mgd2hlbiBwcm9maWxlIGlzIGdpdmVuYClcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oYXNUZXJtKG9wdGlvbnMpICYmIG9wdGlvbnMuZmlsdGVycz8uY3VzdG9tT3B0aW9ucykge1xyXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoYEl0IGNvdWxkbid0IGZpbGxlZCBjdXN0b21PcHRpb25zIHdoZW4gdGVybSBpcyBnaXZlbmApXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkU2VhcmNoUGFyYW1zKG9wdGlvbnM6IEZldGNoUHJvZHVjdHNQYXJhbXM8VD4pOiBDYXRhbG9nU2VhcmNoUGFyYW1zIHtcclxuICAgIGNvbnN0IGxpbWl0cyA9IHRoaXMuYnVpbGRMaW1pdFF1ZXJ5KG9wdGlvbnMpXHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2F0ZWdvcnk6IHRoaXMuaGFzQ2F0ZWdvcnkob3B0aW9ucykgPyBvcHRpb25zLmNhdGVnb3J5IDogdW5kZWZpbmVkLFxyXG4gICAgICBwcm9maWxlOiB0aGlzLmhhc1Byb2ZpbGUob3B0aW9ucykgPyBvcHRpb25zLnByb2ZpbGUgOiB1bmRlZmluZWQsXHJcbiAgICAgIHRlcm06IHRoaXMuaGFzVGVybShvcHRpb25zKSA/IG9wdGlvbnMudGVybSA6IHVuZGVmaW5lZCxcclxuICAgICAgZmlsdGVyczogb3B0aW9ucy5maWx0ZXJzLFxyXG4gICAgICBtYWluR2VuZGVyOiBvcHRpb25zLm1haW5HZW5kZXIsXHJcbiAgICAgIHNvcnQ6IG9wdGlvbnMuc29ydCxcclxuICAgICAgbGltaXRzLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZFJlc3BvbnNlKHBhcmFtczogQnVpbGRSZXNwb25zZVBhcmFtczxUPik6IEZldGNoUHJvZHVjdHNSZXNwb25zZSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIHRvdGFsLCBtYXhpbXVtLCBtaW5pbWFsLCBzZWFyY2hQYXJhbXMgfSA9IHBhcmFtc1xyXG4gICAgY29uc3QgbGltaXRzID0gc2VhcmNoUGFyYW1zLmxpbWl0c1xyXG4gICAgY29uc3QgaW5kZXhLZXkgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldEJyYW5kTWFuYWdlcigpLmJ1aWxkSW5kZXhCcmFuZHMoc2VhcmNoUGFyYW1zKVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHByb2R1Y3RzOiB7XHJcbiAgICAgICAgZGF0YTogZGF0YS5tYXAoKHByb2R1Y3QpID0+IFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlci5yb3VuZFByb2R1Y3RQcmljZXMocHJvZHVjdCkpLFxyXG4gICAgICAgIHRvdGFsLFxyXG4gICAgICB9LFxyXG4gICAgICBwYWdlczogTWF0aC5jZWlsKHRvdGFsIC8gbGltaXRzLmxpbWl0KSxcclxuICAgICAgcHJpY2VzOiB7XHJcbiAgICAgICAgcHJpY2U6IHtcclxuICAgICAgICAgIG1pbjogKyhtaW5pbWFsPy5wcmljZT8ucHJpY2U/LnRvRml4ZWQoMikgfHwgMCksXHJcbiAgICAgICAgICBtYXg6ICsobWF4aW11bT8ucHJpY2U/LnByaWNlPy50b0ZpeGVkKDIpIHx8IDApLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3Vic2NyaWJlclByaWNlOiB7XHJcbiAgICAgICAgICBtaW46ICsobWluaW1hbD8ucHJpY2U/LnN1YnNjcmliZXJQcmljZT8udG9GaXhlZCgyKSB8fCAwKSxcclxuICAgICAgICAgIG1heDogKyhtYXhpbXVtPy5wcmljZT8uc3Vic2NyaWJlclByaWNlPy50b0ZpeGVkKDIpIHx8IDApLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGJyYW5kczogdGhpcy5oZWxwZXJzU2VydmljZS5nZXRCcmFuZE1hbmFnZXIoKS5nZXRCcmFuZHNMaXN0KGluZGV4S2V5KSxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRMaW1pdFF1ZXJ5KG9wdGlvbnM6IHsgcGFnZT86IG51bWJlcjsgcGVyUGFnZT86IG51bWJlciB9KTogeyBsaW1pdDogbnVtYmVyOyBvZmZzZXQ6IG51bWJlciB9IHtcclxuICAgIGNvbnN0IGxpbWl0ID0gb3B0aW9ucz8ucGVyUGFnZSB8fCAyMFxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxpbWl0LFxyXG4gICAgICBvZmZzZXQ6ICgob3B0aW9ucz8ucGFnZSB8fCAxKSAtIDEpICogbGltaXQsXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1Byb2ZpbGUob3B0aW9uczogUGFydGlhbDxGZXRjaFByb2R1Y3RzUGFyYW1zPFQ+Pik6IG9wdGlvbnMgaXMgRmV0Y2hQcm9kdWN0c09wdGlvbnMgJiB7XHJcbiAgICBwcm9maWxlOiBGZXRjaFByb2R1Y3RzTWFpblBhcmFtczxUPlsncHJvZmlsZSddXHJcbiAgICBmaWx0ZXJzPzogQ2F0YWxvZ0ZpbHRlcnMgJiB7IGN1c3RvbU9wdGlvbnM/OiBuZXZlcjsgdGFncz86IG5ldmVyIH1cclxuICB9IHtcclxuICAgIHJldHVybiAncHJvZmlsZScgaW4gb3B0aW9uc1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNUZXJtKG9wdGlvbnM6IFBhcnRpYWw8RmV0Y2hQcm9kdWN0c1BhcmFtczxUPj4pOiBvcHRpb25zIGlzIEZldGNoUHJvZHVjdHNPcHRpb25zICYge1xyXG4gICAgdGVybTogRmV0Y2hQcm9kdWN0c01haW5QYXJhbXM8VD5bJ3Rlcm0nXVxyXG4gICAgZmlsdGVycz86IENhdGFsb2dGaWx0ZXJzICYgeyBjdXN0b21PcHRpb25zPzogbmV2ZXIgfVxyXG4gIH0ge1xyXG4gICAgcmV0dXJuICd0ZXJtJyBpbiBvcHRpb25zXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc0NhdGVnb3J5KG9wdGlvbnM6IFBhcnRpYWw8RmV0Y2hQcm9kdWN0c1BhcmFtczxUPj4pOiBvcHRpb25zIGlzIEZldGNoUHJvZHVjdHNPcHRpb25zICYge1xyXG4gICAgY2F0ZWdvcnk6IEZldGNoUHJvZHVjdHNNYWluUGFyYW1zPFQ+WydjYXRlZ29yeSddXHJcbiAgICBmaWx0ZXJzPzogQ2F0YWxvZ0ZpbHRlcnMgJiB7IGN1c3RvbU9wdGlvbnM/OiBuZXZlciB9XHJcbiAgfSB7XHJcbiAgICByZXR1cm4gJ2NhdGVnb3J5JyBpbiBvcHRpb25zXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,42 +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.productCatalogRepository
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
- CategoryServicefac = 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFBMkQsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUE7Ozs7QUFRMUUsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDbUIsY0FBd0MsRUFDeEMsY0FBb0MsRUFDZCxJQUFXO1FBRmpDLG1CQUFjLEdBQWQsY0FBYyxDQUEwQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFDZCxTQUFJLEdBQUosSUFBSSxDQUFPO0lBQ2pELENBQUM7SUFFSixLQUFLLENBQUMsV0FBVyxDQUNmLFFBQWtCLEVBQ2xCLE9BQTRCLEVBQzVCLFlBQWlEO1FBRWpELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0I7YUFDOUQsV0FBVyxDQUNWO1lBQ0UsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUM7WUFDbEcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO1NBQ2xCLEVBQ0QsSUFBSSxFQUNKLFlBQVksQ0FDYjthQUNBLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ2hILENBQUE7UUFFSCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCO2FBQzFDLElBQUksQ0FDSCxFQUFFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUNoRyxZQUFZLENBQ2I7YUFDQSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzlGLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYTtRQUNqQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtJQUN2RSxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFFBQWtCLEVBQUUsWUFBaUQ7UUFDNUYsT0FBTyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCO2FBQ3RELElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBQzthQUM3RCxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUM1RSxDQUFDOzs0R0F6Q1UsZUFBZSw4RkFJaEIsWUFBWTtnSEFKWCxlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQUtOLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IENhdGVnb3J5LCBGaWx0ZXIsIFByb2R1Y3RHZW5kZXIsIFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMsIFNob3BzIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcblxyXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi8uLi9jb25zdHMnXHJcblxyXG5pbXBvcnQgeyBDYXRlZ29yeVJlcG9zaXRvcnlGYWNhZGUsIFByb2R1Y3RDYXRhbG9nRmFjYWRlIH0gZnJvbSAnLi9mYWNhZGVzJ1xyXG5cclxudHlwZSBGZXRjaEJyYW5kc09wdGlvbnMgPSB7XHJcbiAgbWFpbkdlbmRlcj86IFByb2R1Y3RHZW5kZXJcclxuICBzaG9wPzogU2hvcHNcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlGYWNhZGU6IENhdGVnb3J5UmVwb3NpdG9yeUZhY2FkZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdENhdGFsb2c6IFByb2R1Y3RDYXRhbG9nRmFjYWRlLFxyXG4gICAgQEluamVjdChERUZBVUxUX1NIT1ApIHByaXZhdGUgcmVhZG9ubHkgc2hvcDogU2hvcHMsXHJcbiAgKSB7fVxyXG5cclxuICBhc3luYyBmZXRjaEJyYW5kcyhcclxuICAgIGNhdGVnb3J5OiBDYXRlZ29yeSxcclxuICAgIG9wdGlvbnM/OiBGZXRjaEJyYW5kc09wdGlvbnMsXHJcbiAgICBvcHRpb25zQ2FjaGU/OiB7IGNhY2hlPzogUmVwb3NpdG9yeUNhY2hlT3B0aW9ucyB9LFxyXG4gICk6IFByb21pc2U8Q2F0ZWdvcnlbXT4ge1xyXG4gICAgY29uc3QgYnJhbmRzID0gYXdhaXQgdGhpcy5wcm9kdWN0Q2F0YWxvZy5wcm9kdWN0Q2F0YWxvZ1JlcG9zaXRvcnlcclxuICAgICAgLmZpbmRDYXRhbG9nKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpbHRlcnM6IGF3YWl0IHRoaXMucHJvZHVjdENhdGFsb2cuY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLmJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnkpLFxyXG4gICAgICAgICAgZmllbGRzOiBbJ2JyYW5kJ10sXHJcbiAgICAgICAgfSxcclxuICAgICAgICBudWxsLFxyXG4gICAgICAgIG9wdGlvbnNDYWNoZSxcclxuICAgICAgKVxyXG4gICAgICAudGhlbigoeyBkYXRhIH0pID0+XHJcbiAgICAgICAgT2JqZWN0LmtleXMoZGF0YS5tYXAoKHByb2R1Y3QpID0+IHByb2R1Y3QuYnJhbmQpLnJlZHVjZSgoYnJhbmRzLCBicmFuZCkgPT4gKHsgLi4uYnJhbmRzLCBbYnJhbmRdOiB0cnVlIH0pLCB7fSkpLFxyXG4gICAgICApXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnlGYWNhZGUuY2F0ZWdvcnlSZXBvc2l0b3J5XHJcbiAgICAgIC5maW5kKFxyXG4gICAgICAgIHsgZmlsdGVyczogeyBicmFuZENhdGVnb3J5OiB0cnVlLCBzaG9wOiBvcHRpb25zPy5zaG9wIHx8IHRoaXMuc2hvcCB9LCBvcmRlckJ5OiB7IG5hbWU6ICdhc2MnIH0gfSxcclxuICAgICAgICBvcHRpb25zQ2FjaGUsXHJcbiAgICAgIClcclxuICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PiBkYXRhLmZpbHRlcigoY2F0ZWdvcnkpID0+IGJyYW5kcy5pbmNsdWRlcyhjYXRlZ29yeS5jb25kaXRpb25zLmJyYW5kKSkpXHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRNZW51QnJhbmRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnlGYWNhZGUuY2F0ZWdvcnlSZXBvc2l0b3J5LmdldEJyYW5kc1dpdGhQcm9kdWN0cygpXHJcbiAgfVxyXG5cclxuICBhc3luYyBmZXRjaEZpbHRlck9wdGlvbnMoY2F0ZWdvcnk6IENhdGVnb3J5LCBvcHRpb25zQ2FjaGU/OiB7IGNhY2hlPzogUmVwb3NpdG9yeUNhY2hlT3B0aW9ucyB9KTogUHJvbWlzZTxGaWx0ZXJbXT4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2F0ZWdvcnlGYWNhZGUuY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5XHJcbiAgICAgIC5maW5kKHsgZmlsdGVyczogeyBjYXRlZ29yeUlkOiArY2F0ZWdvcnkuaWQgfSB9LCBvcHRpb25zQ2FjaGUpXHJcbiAgICAgIC50aGVuKCh7IGRhdGEgfSkgPT4gZGF0YS5tYXAoKGNhdGVnb3J5RmlsdGVyKSA9PiBjYXRlZ29yeUZpbHRlci5maWx0ZXIpKVxyXG4gIH1cclxufVxyXG4iXX0=
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.productCatalogRepository
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CategoryService, deps: [{ token: i1.CategoryRepositoryFacade }, { token: i1.ProductCatalogFacade }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable }); }
34
+ static { thisprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CategoryService }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CategoryService, decorators: [{
37
+ type: Injectable
38
+ }], ctorParameters: () => [{ type: i1.CategoryRepositoryFacade }, { type: i1.ProductCatalogFacade }, { type: i2.Shops, decorators: [{
39
+ type: Inject,
40
+ args: [DEFAULT_SHOP]
41
+ }] }] });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFBMkQsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUE7Ozs7QUFRMUUsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDbUIsY0FBd0MsRUFDeEMsY0FBb0MsRUFDZCxJQUFXO1FBRmpDLG1CQUFjLEdBQWQsY0FBYyxDQUEwQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFDZCxTQUFJLEdBQUosSUFBSSxDQUFPO0lBQ2pELENBQUM7SUFFSixLQUFLLENBQUMsV0FBVyxDQUNmLFFBQWtCLEVBQ2xCLE9BQTRCLEVBQzVCLFlBQWlEO1FBRWpELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0I7YUFDOUQsV0FBVyxDQUNWO1lBQ0UsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUM7WUFDbEcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO1NBQ2xCLEVBQ0QsSUFBSSxFQUNKLFlBQVksQ0FDYjthQUNBLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ2hILENBQUE7UUFFSCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCO2FBQzFDLElBQUksQ0FDSCxFQUFFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUNoRyxZQUFZLENBQ2I7YUFDQSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzlGLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYTtRQUNqQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtJQUN2RSxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFFBQWtCLEVBQUUsWUFBaUQ7UUFDNUYsT0FBTyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCO2FBQ3RELElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBQzthQUM3RCxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUM1RSxDQUFDOzhHQXpDVSxlQUFlLDhGQUloQixZQUFZO2tIQUpYLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQUtOLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IENhdGVnb3J5LCBGaWx0ZXIsIFByb2R1Y3RHZW5kZXIsIFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMsIFNob3BzIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcblxyXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi8uLi9jb25zdHMnXHJcblxyXG5pbXBvcnQgeyBDYXRlZ29yeVJlcG9zaXRvcnlGYWNhZGUsIFByb2R1Y3RDYXRhbG9nRmFjYWRlIH0gZnJvbSAnLi9mYWNhZGVzJ1xyXG5cclxudHlwZSBGZXRjaEJyYW5kc09wdGlvbnMgPSB7XHJcbiAgbWFpbkdlbmRlcj86IFByb2R1Y3RHZW5kZXJcclxuICBzaG9wPzogU2hvcHNcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlGYWNhZGU6IENhdGVnb3J5UmVwb3NpdG9yeUZhY2FkZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdENhdGFsb2c6IFByb2R1Y3RDYXRhbG9nRmFjYWRlLFxyXG4gICAgQEluamVjdChERUZBVUxUX1NIT1ApIHByaXZhdGUgcmVhZG9ubHkgc2hvcDogU2hvcHMsXHJcbiAgKSB7fVxyXG5cclxuICBhc3luYyBmZXRjaEJyYW5kcyhcclxuICAgIGNhdGVnb3J5OiBDYXRlZ29yeSxcclxuICAgIG9wdGlvbnM/OiBGZXRjaEJyYW5kc09wdGlvbnMsXHJcbiAgICBvcHRpb25zQ2FjaGU/OiB7IGNhY2hlPzogUmVwb3NpdG9yeUNhY2hlT3B0aW9ucyB9LFxyXG4gICk6IFByb21pc2U8Q2F0ZWdvcnlbXT4ge1xyXG4gICAgY29uc3QgYnJhbmRzID0gYXdhaXQgdGhpcy5wcm9kdWN0Q2F0YWxvZy5wcm9kdWN0Q2F0YWxvZ1JlcG9zaXRvcnlcclxuICAgICAgLmZpbmRDYXRhbG9nKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpbHRlcnM6IGF3YWl0IHRoaXMucHJvZHVjdENhdGFsb2cuY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLmJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnkpLFxyXG4gICAgICAgICAgZmllbGRzOiBbJ2JyYW5kJ10sXHJcbiAgICAgICAgfSxcclxuICAgICAgICBudWxsLFxyXG4gICAgICAgIG9wdGlvbnNDYWNoZSxcclxuICAgICAgKVxyXG4gICAgICAudGhlbigoeyBkYXRhIH0pID0+XHJcbiAgICAgICAgT2JqZWN0LmtleXMoZGF0YS5tYXAoKHByb2R1Y3QpID0+IHByb2R1Y3QuYnJhbmQpLnJlZHVjZSgoYnJhbmRzLCBicmFuZCkgPT4gKHsgLi4uYnJhbmRzLCBbYnJhbmRdOiB0cnVlIH0pLCB7fSkpLFxyXG4gICAgICApXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnlGYWNhZGUuY2F0ZWdvcnlSZXBvc2l0b3J5XHJcbiAgICAgIC5maW5kKFxyXG4gICAgICAgIHsgZmlsdGVyczogeyBicmFuZENhdGVnb3J5OiB0cnVlLCBzaG9wOiBvcHRpb25zPy5zaG9wIHx8IHRoaXMuc2hvcCB9LCBvcmRlckJ5OiB7IG5hbWU6ICdhc2MnIH0gfSxcclxuICAgICAgICBvcHRpb25zQ2FjaGUsXHJcbiAgICAgIClcclxuICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PiBkYXRhLmZpbHRlcigoY2F0ZWdvcnkpID0+IGJyYW5kcy5pbmNsdWRlcyhjYXRlZ29yeS5jb25kaXRpb25zLmJyYW5kKSkpXHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRNZW51QnJhbmRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnlGYWNhZGUuY2F0ZWdvcnlSZXBvc2l0b3J5LmdldEJyYW5kc1dpdGhQcm9kdWN0cygpXHJcbiAgfVxyXG5cclxuICBhc3luYyBmZXRjaEZpbHRlck9wdGlvbnMoY2F0ZWdvcnk6IENhdGVnb3J5LCBvcHRpb25zQ2FjaGU/OiB7IGNhY2hlPzogUmVwb3NpdG9yeUNhY2hlT3B0aW9ucyB9KTogUHJvbWlzZTxGaWx0ZXJbXT4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2F0ZWdvcnlGYWNhZGUuY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5XHJcbiAgICAgIC5maW5kKHsgZmlsdGVyczogeyBjYXRlZ29yeUlkOiArY2F0ZWdvcnkuaWQgfSB9LCBvcHRpb25zQ2FjaGUpXHJcbiAgICAgIC50aGVuKCh7IGRhdGEgfSkgPT4gZGF0YS5tYXAoKGNhdGVnb3J5RmlsdGVyKSA9PiBjYXRlZ29yeUZpbHRlci5maWx0ZXIpKVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,40 +1,40 @@
1
- export class CatalogSearchContext {
2
- constructor(categoryStrategy, termStrategy, profileStrategy) {
3
- this.categoryStrategy = categoryStrategy;
4
- this.termStrategy = termStrategy;
5
- this.profileStrategy = profileStrategy;
6
- this.strategies = new Map();
7
- this.initializeStrategies();
8
- }
9
- async executeSearch(params, shop, optionsCache) {
10
- const strategy = this.selectStrategy(params);
11
- return strategy.search(params, shop, optionsCache);
12
- }
13
- initializeStrategies() {
14
- this.strategies.set('category', this.categoryStrategy);
15
- this.strategies.set('term', this.termStrategy);
16
- this.strategies.set('profile', this.profileStrategy);
17
- }
18
- selectStrategy(params) {
19
- if (params.category) {
20
- const strategy = this.strategies.get('category');
21
- if (!strategy)
22
- throw new Error('Category strategy not found');
23
- return strategy;
24
- }
25
- if (params.term) {
26
- const strategy = this.strategies.get('term');
27
- if (!strategy)
28
- throw new Error('Term strategy not found');
29
- return strategy;
30
- }
31
- if (params.profile?.length) {
32
- const strategy = this.strategies.get('profile');
33
- if (!strategy)
34
- throw new Error('Profile strategy not found');
35
- return strategy;
36
- }
37
- throw new Error('No valid search strategy found for the given parameters');
38
- }
39
- }
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
40
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1zZWFyY2guY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9jb250ZXh0L2NhdGFsb2ctc2VhcmNoLmNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUNtQixnQkFBdUMsRUFDdkMsWUFBbUMsRUFDbkMsZUFBc0M7UUFGdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF1QjtRQUN2QyxpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUFDbkMsb0JBQWUsR0FBZixlQUFlLENBQXVCO1FBTGpELGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQTtRQU8zRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FDakIsTUFBMkIsRUFDM0IsSUFBVyxFQUNYLFlBQWlEO1FBRWpELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7UUFFNUMsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDcEQsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ3RELENBQUM7SUFFTyxjQUFjLENBQUMsTUFBMkI7UUFDaEQsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBRWhELElBQUksQ0FBQyxRQUFRO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtZQUU3RCxPQUFPLFFBQVEsQ0FBQTtTQUNoQjtRQUVELElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtZQUNmLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBRTVDLElBQUksQ0FBQyxRQUFRO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQTtZQUV6RCxPQUFPLFFBQVEsQ0FBQTtTQUNoQjtRQUVELElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUU7WUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7WUFFL0MsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO1lBRTVELE9BQU8sUUFBUSxDQUFBO1NBQ2hCO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFBO0lBQzVFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2R1Y3QsIFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMsIFJlcG9zaXRvcnlGaW5kUmVzdWx0LCBTaG9wcyB9IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5cclxuaW1wb3J0IHsgQ2F0YWxvZ1NlYXJjaFBhcmFtcywgQ2F0YWxvZ1NlYXJjaFN0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcydcclxuXHJcbmV4cG9ydCBjbGFzcyBDYXRhbG9nU2VhcmNoQ29udGV4dCB7XHJcbiAgcHJpdmF0ZSBzdHJhdGVnaWVzID0gbmV3IE1hcDxzdHJpbmcsIENhdGFsb2dTZWFyY2hTdHJhdGVneT4oKVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlTdHJhdGVneTogQ2F0YWxvZ1NlYXJjaFN0cmF0ZWd5LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXJtU3RyYXRlZ3k6IENhdGFsb2dTZWFyY2hTdHJhdGVneSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZmlsZVN0cmF0ZWd5OiBDYXRhbG9nU2VhcmNoU3RyYXRlZ3ksXHJcbiAgKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVTdHJhdGVnaWVzKClcclxuICB9XHJcblxyXG4gIGFzeW5jIGV4ZWN1dGVTZWFyY2goXHJcbiAgICBwYXJhbXM6IENhdGFsb2dTZWFyY2hQYXJhbXMsXHJcbiAgICBzaG9wOiBTaG9wcyxcclxuICAgIG9wdGlvbnNDYWNoZT86IHsgY2FjaGU/OiBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zIH0sXHJcbiAgKTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZFJlc3VsdDxQcm9kdWN0Pj4ge1xyXG4gICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLnNlbGVjdFN0cmF0ZWd5KHBhcmFtcylcclxuXHJcbiAgICByZXR1cm4gc3RyYXRlZ3kuc2VhcmNoKHBhcmFtcywgc2hvcCwgb3B0aW9uc0NhY2hlKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplU3RyYXRlZ2llcygpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RyYXRlZ2llcy5zZXQoJ2NhdGVnb3J5JywgdGhpcy5jYXRlZ29yeVN0cmF0ZWd5KVxyXG4gICAgdGhpcy5zdHJhdGVnaWVzLnNldCgndGVybScsIHRoaXMudGVybVN0cmF0ZWd5KVxyXG4gICAgdGhpcy5zdHJhdGVnaWVzLnNldCgncHJvZmlsZScsIHRoaXMucHJvZmlsZVN0cmF0ZWd5KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZWxlY3RTdHJhdGVneShwYXJhbXM6IENhdGFsb2dTZWFyY2hQYXJhbXMpOiBDYXRhbG9nU2VhcmNoU3RyYXRlZ3kge1xyXG4gICAgaWYgKHBhcmFtcy5jYXRlZ29yeSkge1xyXG4gICAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuc3RyYXRlZ2llcy5nZXQoJ2NhdGVnb3J5JylcclxuXHJcbiAgICAgIGlmICghc3RyYXRlZ3kpIHRocm93IG5ldyBFcnJvcignQ2F0ZWdvcnkgc3RyYXRlZ3kgbm90IGZvdW5kJylcclxuXHJcbiAgICAgIHJldHVybiBzdHJhdGVneVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChwYXJhbXMudGVybSkge1xyXG4gICAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuc3RyYXRlZ2llcy5nZXQoJ3Rlcm0nKVxyXG5cclxuICAgICAgaWYgKCFzdHJhdGVneSkgdGhyb3cgbmV3IEVycm9yKCdUZXJtIHN0cmF0ZWd5IG5vdCBmb3VuZCcpXHJcblxyXG4gICAgICByZXR1cm4gc3RyYXRlZ3lcclxuICAgIH1cclxuXHJcbiAgICBpZiAocGFyYW1zLnByb2ZpbGU/Lmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuc3RyYXRlZ2llcy5nZXQoJ3Byb2ZpbGUnKVxyXG5cclxuICAgICAgaWYgKCFzdHJhdGVneSkgdGhyb3cgbmV3IEVycm9yKCdQcm9maWxlIHN0cmF0ZWd5IG5vdCBmb3VuZCcpXHJcblxyXG4gICAgICByZXR1cm4gc3RyYXRlZ3lcclxuICAgIH1cclxuXHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHZhbGlkIHNlYXJjaCBzdHJhdGVneSBmb3VuZCBmb3IgdGhlIGdpdmVuIHBhcmFtZXRlcnMnKVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
- export * from './product-sorts.enum';
1
+ export * from './product-sorts.enum';
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvZW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1zb3J0cy5lbnVtJ1xyXG4iXX0=
@@ -1,11 +1,11 @@
1
- export var ProductSorts;
2
- (function (ProductSorts) {
3
- ProductSorts["MOST_RELEVANT"] = "most-relevant";
4
- ProductSorts["BEST_SELLER"] = "best-sellers";
5
- ProductSorts["BIGGEST_PRICE"] = "biggest-price";
6
- ProductSorts["LOWEST_PRICE"] = "lowest-price";
7
- ProductSorts["BIGGEST_DISCOUNT"] = "biggest-discount";
8
- ProductSorts["BEST_RATING"] = "best-rating";
9
- ProductSorts["NEWS"] = "news";
10
- })(ProductSorts || (ProductSorts = {}));
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
11
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zb3J0cy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2VudW1zL3Byb2R1Y3Qtc29ydHMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxZQVFYO0FBUkQsV0FBWSxZQUFZO0lBQ3RCLCtDQUErQixDQUFBO0lBQy9CLDRDQUE0QixDQUFBO0lBQzVCLCtDQUErQixDQUFBO0lBQy9CLDZDQUE2QixDQUFBO0lBQzdCLHFEQUFxQyxDQUFBO0lBQ3JDLDJDQUEyQixDQUFBO0lBQzNCLDZCQUFhLENBQUE7QUFDZixDQUFDLEVBUlcsWUFBWSxLQUFaLFlBQVksUUFRdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBQcm9kdWN0U29ydHMge1xyXG4gIE1PU1RfUkVMRVZBTlQgPSAnbW9zdC1yZWxldmFudCcsXHJcbiAgQkVTVF9TRUxMRVIgPSAnYmVzdC1zZWxsZXJzJyxcclxuICBCSUdHRVNUX1BSSUNFID0gJ2JpZ2dlc3QtcHJpY2UnLFxyXG4gIExPV0VTVF9QUklDRSA9ICdsb3dlc3QtcHJpY2UnLFxyXG4gIEJJR0dFU1RfRElTQ09VTlQgPSAnYmlnZ2VzdC1kaXNjb3VudCcsXHJcbiAgQkVTVF9SQVRJTkcgPSAnYmVzdC1yYXRpbmcnLFxyXG4gIE5FV1MgPSAnbmV3cycsXHJcbn1cclxuIl19