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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/angular-connect.module.d.ts +33 -36
  2. package/angular-elastic-search.module.d.ts +9 -9
  3. package/angular-firebase-auth.module.d.ts +10 -11
  4. package/angular-firestore.module.d.ts +16 -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 +288 -0
  18. package/esm2022/angular-elastic-search.module.mjs +34 -0
  19. package/esm2022/angular-firebase-auth.module.mjs +140 -0
  20. package/esm2022/angular-firestore.module.mjs +538 -0
  21. package/esm2022/angular-hasura-graphql.module.mjs +333 -0
  22. package/esm2022/angular-vertex-search.module.mjs +34 -0
  23. package/{esm2020 → esm2022}/consts/backend-url.const.mjs +2 -2
  24. package/{esm2020 → esm2022}/consts/category-structure.mjs +2 -2
  25. package/{esm2020 → esm2022}/consts/default-shop.const.mjs +2 -2
  26. package/{esm2020 → esm2022}/consts/es-config.const.mjs +2 -2
  27. package/{esm2020 → esm2022}/consts/firebase-const.mjs +5 -5
  28. package/{esm2020 → esm2022}/consts/hasura-options.const.mjs +2 -2
  29. package/{esm2020 → esm2022}/consts/index.mjs +9 -9
  30. package/{esm2020 → esm2022}/consts/persistence.const.mjs +2 -2
  31. package/{esm2020 → esm2022}/consts/storage-base-url.const.mjs +2 -2
  32. package/{esm2020 → esm2022}/consts/vertex-config.const.mjs +2 -2
  33. package/{esm2020 → esm2022}/helpers/index.mjs +2 -2
  34. package/{esm2020 → esm2022}/helpers/mobile-operation-system-checker.helper.mjs +7 -7
  35. package/{esm2020 → esm2022}/index.mjs +7 -7
  36. package/{esm2020 → esm2022}/infrab4a-connect-angular.mjs +4 -4
  37. package/esm2022/interfaces/catalog-strategies.interface.mjs +2 -0
  38. package/{esm2020 → esm2022}/interfaces/category-facades.interface.mjs +2 -2
  39. package/{esm2020 → esm2022}/interfaces/index.mjs +3 -3
  40. package/{esm2020 → esm2022}/persistence/cookie-data-persistence.mjs +22 -22
  41. package/{esm2020 → esm2022}/persistence/data-persistence.mjs +2 -2
  42. package/{esm2020 → esm2022}/persistence/index.mjs +3 -3
  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 +2 -2
  46. package/{esm2020 → esm2022}/services/cart.service.mjs +73 -73
  47. package/{esm2020 → esm2022}/services/catalog/adapters/category-structure.adapter.mjs +2 -2
  48. package/{esm2020 → esm2022}/services/catalog/adapters/index.mjs +4 -4
  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/esm2022/services/catalog/catalog.service.mjs +111 -0
  52. package/{esm2020 → esm2022}/services/catalog/category.service.mjs +42 -42
  53. package/esm2022/services/catalog/context/catalog-search.context.mjs +40 -0
  54. package/{esm2020 → esm2022}/services/catalog/enums/index.mjs +2 -2
  55. package/{esm2020 → esm2022}/services/catalog/enums/product-sorts.enum.mjs +11 -11
  56. package/{esm2020 → esm2022}/services/catalog/facades/catalog-service.facade.mjs +32 -32
  57. package/esm2022/services/catalog/facades/catalog-strategies.facade.mjs +17 -0
  58. package/esm2022/services/catalog/facades/category-repository.facade.mjs +20 -0
  59. package/{esm2020 → esm2022}/services/catalog/facades/category-service.facade.mjs +30 -30
  60. package/{esm2020 → esm2022}/services/catalog/facades/index.mjs +6 -6
  61. package/esm2022/services/catalog/facades/product-catalog.facade.mjs +21 -0
  62. package/esm2022/services/catalog/helpers/brand-manager.helper.mjs +57 -0
  63. package/esm2022/services/catalog/helpers/catalog-filter.helper.mjs +44 -0
  64. package/esm2022/services/catalog/helpers/catalog-sort.helper.mjs +52 -0
  65. package/{esm2020 → esm2022}/services/catalog/helpers/index.mjs +5 -5
  66. package/{esm2020 → esm2022}/services/catalog/helpers/product-fields.helper.mjs +40 -40
  67. package/{esm2020 → esm2022}/services/catalog/index.mjs +8 -8
  68. package/{esm2020 → esm2022}/services/catalog/models/category-with-tree.model.mjs +10 -10
  69. package/{esm2020 → esm2022}/services/catalog/models/index.mjs +2 -2
  70. package/esm2022/services/catalog/services/catalog-helpers.service.mjs +33 -0
  71. package/{esm2020 → esm2022}/services/catalog/services/catalog-operations.facade.mjs +26 -26
  72. package/esm2022/services/catalog/services/catalog-repository.service.mjs +25 -0
  73. package/{esm2020 → esm2022}/services/catalog/services/index.mjs +5 -5
  74. package/esm2022/services/catalog/services/product-management.facade.mjs +25 -0
  75. package/esm2022/services/catalog/strategies/category-search.strategy.mjs +133 -0
  76. package/{esm2020 → esm2022}/services/catalog/strategies/index.mjs +4 -4
  77. package/esm2022/services/catalog/strategies/profile-search.strategy.mjs +42 -0
  78. package/esm2022/services/catalog/strategies/term-search.strategy.mjs +123 -0
  79. package/esm2022/services/catalog/strategies/types/strategy-params.type.mjs +2 -0
  80. package/{esm2020 → esm2022}/services/catalog/types/fetch-products-options.type.mjs +2 -2
  81. package/esm2022/services/catalog/types/fetch-products-params.type.mjs +2 -0
  82. package/{esm2020 → esm2022}/services/catalog/types/fetch-products-response.type.mjs +2 -2
  83. package/{esm2020 → esm2022}/services/catalog/types/index.mjs +6 -6
  84. package/esm2022/services/catalog/types/method-params.type.mjs +2 -0
  85. package/{esm2020 → esm2022}/services/catalog/types/product-sort.type.mjs +2 -2
  86. package/esm2022/services/catalog/wishlist.service.mjs +254 -0
  87. package/esm2022/services/checkout/checkout-dependencies.facade.mjs +20 -0
  88. package/esm2022/services/checkout/checkout-repositories.facade.mjs +20 -0
  89. package/{esm2020 → esm2022}/services/checkout/index.mjs +3 -3
  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 +2 -2
  94. package/esm2022/services/coupon/types/coupon-params.type.mjs +2 -0
  95. package/esm2022/services/coupon.service.mjs +248 -0
  96. package/{esm2020 → esm2022}/services/helpers/index.mjs +2 -2
  97. package/{esm2020 → esm2022}/services/helpers/util.helper.mjs +18 -18
  98. package/{esm2020 → esm2022}/services/home-shop/home-shop-repositories.facade.mjs +24 -24
  99. package/{esm2020 → esm2022}/services/home-shop/index.mjs +2 -2
  100. package/{esm2020 → esm2022}/services/home-shop.service.mjs +119 -119
  101. package/{esm2020 → esm2022}/services/index.mjs +11 -11
  102. package/esm2022/services/order-product-review.service.mjs +110 -0
  103. package/{esm2020 → esm2022}/services/order.service.mjs +30 -30
  104. package/{esm2020 → esm2022}/services/shared/configuration.facade.mjs +29 -29
  105. package/{esm2020 → esm2022}/services/shared/index.mjs +2 -2
  106. package/{esm2020 → esm2022}/services/types/index.mjs +5 -5
  107. package/{esm2020 → esm2022}/services/types/pending-product-review.type.mjs +2 -2
  108. package/{esm2020 → esm2022}/services/types/product-review-create.type.mjs +2 -2
  109. package/{esm2020 → esm2022}/services/types/required-checkout-data.type.mjs +2 -2
  110. package/{esm2020 → esm2022}/services/types/required-checkout-subscription-data.type.mjs +2 -2
  111. package/{esm2020 → esm2022}/types/firebase-app-config.type.mjs +2 -2
  112. package/{esm2020 → esm2022}/types/index.mjs +2 -2
  113. package/{fesm2020 → fesm2022}/infrab4a-connect-angular.mjs +3284 -3289
  114. package/fesm2022/infrab4a-connect-angular.mjs.map +1 -0
  115. package/helpers/index.d.ts +1 -1
  116. package/helpers/mobile-operation-system-checker.helper.d.ts +3 -3
  117. package/index.d.ts +6 -6
  118. package/interfaces/catalog-strategies.interface.d.ts +31 -31
  119. package/interfaces/category-facades.interface.d.ts +6 -6
  120. package/interfaces/index.d.ts +2 -2
  121. package/package.json +9 -15
  122. package/persistence/cookie-data-persistence.d.ts +10 -10
  123. package/persistence/data-persistence.d.ts +6 -6
  124. package/persistence/index.d.ts +2 -2
  125. package/services/auth.service.d.ts +18 -18
  126. package/services/cart/cart-services.facade.d.ts +12 -12
  127. package/services/cart/index.d.ts +1 -1
  128. package/services/cart.service.d.ts +26 -26
  129. package/services/catalog/adapters/category-structure.adapter.d.ts +4 -4
  130. package/services/catalog/adapters/index.d.ts +3 -3
  131. package/services/catalog/adapters/new-category-structure.adapter.d.ts +12 -12
  132. package/services/catalog/adapters/old-category-structure.adapter.d.ts +10 -10
  133. package/services/catalog/catalog.service.d.ts +24 -24
  134. package/services/catalog/category.service.d.ts +23 -23
  135. package/services/catalog/context/catalog-search.context.d.ts +14 -14
  136. package/services/catalog/enums/index.d.ts +1 -1
  137. package/services/catalog/enums/product-sorts.enum.d.ts +9 -9
  138. package/services/catalog/facades/catalog-service.facade.d.ts +15 -15
  139. package/services/catalog/facades/catalog-strategies.facade.d.ts +10 -10
  140. package/services/catalog/facades/category-repository.facade.d.ts +9 -9
  141. package/services/catalog/facades/category-service.facade.d.ts +15 -15
  142. package/services/catalog/facades/index.d.ts +5 -5
  143. package/services/catalog/facades/product-catalog.facade.d.ts +10 -10
  144. package/services/catalog/helpers/brand-manager.helper.d.ts +14 -14
  145. package/services/catalog/helpers/catalog-filter.helper.d.ts +8 -8
  146. package/services/catalog/helpers/catalog-sort.helper.d.ts +7 -7
  147. package/services/catalog/helpers/index.d.ts +4 -4
  148. package/services/catalog/helpers/product-fields.helper.d.ts +7 -7
  149. package/services/catalog/index.d.ts +7 -7
  150. package/services/catalog/models/category-with-tree.model.d.ts +4 -4
  151. package/services/catalog/models/index.d.ts +1 -1
  152. package/services/catalog/services/catalog-helpers.service.d.ts +17 -17
  153. package/services/catalog/services/catalog-operations.facade.d.ts +13 -13
  154. package/services/catalog/services/catalog-repository.service.d.ts +12 -12
  155. package/services/catalog/services/index.d.ts +4 -4
  156. package/services/catalog/services/product-management.facade.d.ts +12 -12
  157. package/services/catalog/strategies/category-search.strategy.d.ts +19 -19
  158. package/services/catalog/strategies/index.d.ts +3 -3
  159. package/services/catalog/strategies/profile-search.strategy.d.ts +14 -14
  160. package/services/catalog/strategies/term-search.strategy.d.ts +20 -20
  161. package/services/catalog/strategies/types/strategy-params.type.d.ts +58 -58
  162. package/services/catalog/types/fetch-products-options.type.d.ts +8 -8
  163. package/services/catalog/types/fetch-products-params.type.d.ts +25 -25
  164. package/services/catalog/types/fetch-products-response.type.d.ts +19 -19
  165. package/services/catalog/types/index.d.ts +5 -5
  166. package/services/catalog/types/method-params.type.d.ts +17 -17
  167. package/services/catalog/types/product-sort.type.d.ts +2 -2
  168. package/services/catalog/wishlist.service.d.ts +59 -59
  169. package/services/checkout/checkout-dependencies.facade.d.ts +10 -10
  170. package/services/checkout/checkout-repositories.facade.d.ts +9 -9
  171. package/services/checkout/index.d.ts +2 -2
  172. package/services/checkout-subscription.service.d.ts +19 -19
  173. package/services/checkout.service.d.ts +30 -30
  174. package/services/coupon/coupon-repositories.facade.d.ts +10 -10
  175. package/services/coupon/index.d.ts +1 -1
  176. package/services/coupon/types/coupon-params.type.d.ts +13 -13
  177. package/services/coupon.service.d.ts +36 -36
  178. package/services/helpers/index.d.ts +1 -1
  179. package/services/helpers/util.helper.d.ts +3 -3
  180. package/services/home-shop/home-shop-repositories.facade.d.ts +10 -10
  181. package/services/home-shop/index.d.ts +1 -1
  182. package/services/home-shop.service.d.ts +26 -26
  183. package/services/index.d.ts +10 -10
  184. package/services/order-product-review.service.d.ts +16 -16
  185. package/services/order.service.d.ts +13 -13
  186. package/services/shared/configuration.facade.d.ts +12 -12
  187. package/services/shared/index.d.ts +1 -1
  188. package/services/types/index.d.ts +4 -4
  189. package/services/types/pending-product-review.type.d.ts +12 -12
  190. package/services/types/product-review-create.type.d.ts +14 -14
  191. package/services/types/required-checkout-data.type.d.ts +2 -2
  192. package/services/types/required-checkout-subscription-data.type.d.ts +2 -2
  193. package/types/firebase-app-config.type.d.ts +1 -1
  194. package/types/index.d.ts +1 -1
  195. package/esm2020/angular-connect.module.mjs +0 -291
  196. package/esm2020/angular-elastic-search.module.mjs +0 -34
  197. package/esm2020/angular-firebase-auth.module.mjs +0 -141
  198. package/esm2020/angular-firestore.module.mjs +0 -541
  199. package/esm2020/angular-hasura-graphql.module.mjs +0 -333
  200. package/esm2020/angular-vertex-search.module.mjs +0 -34
  201. package/esm2020/interfaces/catalog-strategies.interface.mjs +0 -2
  202. package/esm2020/services/catalog/catalog.service.mjs +0 -111
  203. package/esm2020/services/catalog/context/catalog-search.context.mjs +0 -40
  204. package/esm2020/services/catalog/facades/catalog-strategies.facade.mjs +0 -17
  205. package/esm2020/services/catalog/facades/category-repository.facade.mjs +0 -20
  206. package/esm2020/services/catalog/facades/product-catalog.facade.mjs +0 -21
  207. package/esm2020/services/catalog/helpers/brand-manager.helper.mjs +0 -57
  208. package/esm2020/services/catalog/helpers/catalog-filter.helper.mjs +0 -44
  209. package/esm2020/services/catalog/helpers/catalog-sort.helper.mjs +0 -52
  210. package/esm2020/services/catalog/services/catalog-helpers.service.mjs +0 -33
  211. package/esm2020/services/catalog/services/catalog-repository.service.mjs +0 -25
  212. package/esm2020/services/catalog/services/product-management.facade.mjs +0 -25
  213. package/esm2020/services/catalog/strategies/category-search.strategy.mjs +0 -133
  214. package/esm2020/services/catalog/strategies/profile-search.strategy.mjs +0 -42
  215. package/esm2020/services/catalog/strategies/term-search.strategy.mjs +0 -123
  216. package/esm2020/services/catalog/strategies/types/strategy-params.type.mjs +0 -2
  217. package/esm2020/services/catalog/types/fetch-products-params.type.mjs +0 -2
  218. package/esm2020/services/catalog/types/method-params.type.mjs +0 -2
  219. package/esm2020/services/catalog/wishlist.service.mjs +0 -254
  220. package/esm2020/services/checkout/checkout-dependencies.facade.mjs +0 -20
  221. package/esm2020/services/checkout/checkout-repositories.facade.mjs +0 -20
  222. package/esm2020/services/coupon/types/coupon-params.type.mjs +0 -2
  223. package/esm2020/services/coupon.service.mjs +0 -248
  224. package/esm2020/services/order-product-review.service.mjs +0 -110
  225. package/fesm2015/infrab4a-connect-angular.mjs +0 -3491
  226. package/fesm2015/infrab4a-connect-angular.mjs.map +0 -1
  227. package/fesm2020/infrab4a-connect-angular.mjs.map +0 -1
@@ -1,333 +0,0 @@
1
- import { isPlatformBrowser } from '@angular/common';
2
- import { NgModule, PLATFORM_ID } from '@angular/core';
3
- import { CategoryCollectionChildrenHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, CategoryHasuraGraphQLRepository, CategoryProductHasuraGraphQLRepository, FilterHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, ProductErrorsHasuraGraphQLRepository, ProductHasuraGraphQLRepository, ProductReviewHasuraGraphQLRepository, ProductStockNotificationHasuraGraphQLRepository, VariantHasuraGraphQLRepository, WishlistHasuraGraphQLRepository, } from '@infrab4a/connect';
4
- import { HASURA_OPTIONS } from './consts';
5
- import * as i0 from "@angular/core";
6
- export class AngularHasuraGraphQLModule {
7
- static initializeApp(options) {
8
- return {
9
- ngModule: AngularHasuraGraphQLModule,
10
- providers: [{ provide: HASURA_OPTIONS, useValue: options }],
11
- };
12
- }
13
- }
14
- AngularHasuraGraphQLModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- AngularHasuraGraphQLModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule });
16
- AngularHasuraGraphQLModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule, providers: [
17
- {
18
- provide: 'HasuraConfig',
19
- useFactory: (options, platformId) => ({
20
- endpoint: options.endpoint,
21
- authOptions: options.credentials,
22
- cache: options.cache,
23
- interceptors: {
24
- request: (request) => {
25
- if (isPlatformBrowser(platformId))
26
- return request;
27
- const interval = setInterval(() => { }, 100);
28
- request.interval = interval;
29
- return request;
30
- },
31
- response: (response, request) => {
32
- if (isPlatformBrowser(platformId))
33
- return response;
34
- clearInterval(request.interval);
35
- return response;
36
- },
37
- },
38
- }),
39
- deps: [HASURA_OPTIONS, PLATFORM_ID],
40
- },
41
- {
42
- provide: 'CategoryRepository',
43
- useExisting: CategoryHasuraGraphQLRepository,
44
- },
45
- {
46
- provide: CategoryHasuraGraphQLRepository,
47
- useFactory: (options, productRepository, categoryFilterRepository) => {
48
- return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
49
- },
50
- deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
51
- },
52
- {
53
- provide: 'ProductRepository',
54
- useExisting: ProductHasuraGraphQLRepository,
55
- },
56
- {
57
- provide: ProductHasuraGraphQLRepository,
58
- useFactory: (hasuraConfig) => {
59
- return new ProductHasuraGraphQLRepository(hasuraConfig);
60
- },
61
- deps: ['HasuraConfig'],
62
- },
63
- {
64
- provide: 'ProductReviewRepository',
65
- useExisting: ProductReviewHasuraGraphQLRepository,
66
- },
67
- {
68
- provide: ProductReviewHasuraGraphQLRepository,
69
- useFactory: (hasuraConfig) => {
70
- return new ProductReviewHasuraGraphQLRepository(hasuraConfig);
71
- },
72
- deps: ['HasuraConfig'],
73
- },
74
- {
75
- provide: 'VariantRepository',
76
- useExisting: VariantHasuraGraphQLRepository,
77
- },
78
- {
79
- provide: VariantHasuraGraphQLRepository,
80
- useFactory: (hasuraConfig) => {
81
- return new VariantHasuraGraphQLRepository(hasuraConfig);
82
- },
83
- deps: ['HasuraConfig'],
84
- },
85
- {
86
- provide: 'ProductStockNotificationRepository',
87
- useExisting: ProductStockNotificationHasuraGraphQLRepository,
88
- },
89
- {
90
- provide: ProductStockNotificationHasuraGraphQLRepository,
91
- useFactory: (hasuraConfig) => {
92
- return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig);
93
- },
94
- deps: ['HasuraConfig'],
95
- },
96
- {
97
- provide: 'CategoryFilterRepository',
98
- useExisting: CategoryFilterHasuraGraphQLRepository,
99
- },
100
- {
101
- provide: CategoryFilterHasuraGraphQLRepository,
102
- useFactory: (options) => {
103
- return new CategoryFilterHasuraGraphQLRepository(options);
104
- },
105
- deps: ['HasuraConfig'],
106
- },
107
- {
108
- provide: 'FilterOptionRepository',
109
- useExisting: FilterOptionHasuraGraphQLRepository,
110
- },
111
- {
112
- provide: FilterOptionHasuraGraphQLRepository,
113
- useFactory: (options) => {
114
- return new FilterOptionHasuraGraphQLRepository(options);
115
- },
116
- deps: ['HasuraConfig'],
117
- },
118
- {
119
- provide: 'FilterRepository',
120
- useExisting: FilterHasuraGraphQLRepository,
121
- },
122
- {
123
- provide: FilterHasuraGraphQLRepository,
124
- useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
125
- return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
126
- },
127
- deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
128
- },
129
- {
130
- provide: CategoryCollectionChildrenHasuraGraphQLRepository,
131
- useFactory: (options) => new CategoryCollectionChildrenHasuraGraphQLRepository(options),
132
- deps: ['HasuraConfig'],
133
- },
134
- {
135
- provide: 'CategoryCollectionChildrenRepository',
136
- useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
137
- },
138
- {
139
- provide: CategoryProductHasuraGraphQLRepository,
140
- useFactory: (options) => {
141
- return new CategoryProductHasuraGraphQLRepository(options);
142
- },
143
- deps: ['HasuraConfig'],
144
- },
145
- {
146
- provide: 'CategoryProductRepository',
147
- useExisting: CategoryProductHasuraGraphQLRepository,
148
- },
149
- {
150
- provide: WishlistHasuraGraphQLRepository,
151
- useFactory: (options, categoryProductRepository) => {
152
- return new WishlistHasuraGraphQLRepository(options, categoryProductRepository);
153
- },
154
- deps: ['HasuraConfig', CategoryProductHasuraGraphQLRepository],
155
- },
156
- {
157
- provide: 'WishlistRepository',
158
- useExisting: WishlistHasuraGraphQLRepository,
159
- },
160
- {
161
- provide: ProductErrorsHasuraGraphQLRepository,
162
- useFactory: (options, productRepository) => {
163
- return new ProductErrorsHasuraGraphQLRepository(options, productRepository);
164
- },
165
- deps: ['HasuraConfig', ProductHasuraGraphQLRepository],
166
- },
167
- {
168
- provide: 'ProductErrorsRepository',
169
- useExisting: ProductErrorsHasuraGraphQLRepository,
170
- },
171
- ] });
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule, decorators: [{
173
- type: NgModule,
174
- args: [{
175
- providers: [
176
- {
177
- provide: 'HasuraConfig',
178
- useFactory: (options, platformId) => ({
179
- endpoint: options.endpoint,
180
- authOptions: options.credentials,
181
- cache: options.cache,
182
- interceptors: {
183
- request: (request) => {
184
- if (isPlatformBrowser(platformId))
185
- return request;
186
- const interval = setInterval(() => { }, 100);
187
- request.interval = interval;
188
- return request;
189
- },
190
- response: (response, request) => {
191
- if (isPlatformBrowser(platformId))
192
- return response;
193
- clearInterval(request.interval);
194
- return response;
195
- },
196
- },
197
- }),
198
- deps: [HASURA_OPTIONS, PLATFORM_ID],
199
- },
200
- {
201
- provide: 'CategoryRepository',
202
- useExisting: CategoryHasuraGraphQLRepository,
203
- },
204
- {
205
- provide: CategoryHasuraGraphQLRepository,
206
- useFactory: (options, productRepository, categoryFilterRepository) => {
207
- return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
208
- },
209
- deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
210
- },
211
- {
212
- provide: 'ProductRepository',
213
- useExisting: ProductHasuraGraphQLRepository,
214
- },
215
- {
216
- provide: ProductHasuraGraphQLRepository,
217
- useFactory: (hasuraConfig) => {
218
- return new ProductHasuraGraphQLRepository(hasuraConfig);
219
- },
220
- deps: ['HasuraConfig'],
221
- },
222
- {
223
- provide: 'ProductReviewRepository',
224
- useExisting: ProductReviewHasuraGraphQLRepository,
225
- },
226
- {
227
- provide: ProductReviewHasuraGraphQLRepository,
228
- useFactory: (hasuraConfig) => {
229
- return new ProductReviewHasuraGraphQLRepository(hasuraConfig);
230
- },
231
- deps: ['HasuraConfig'],
232
- },
233
- {
234
- provide: 'VariantRepository',
235
- useExisting: VariantHasuraGraphQLRepository,
236
- },
237
- {
238
- provide: VariantHasuraGraphQLRepository,
239
- useFactory: (hasuraConfig) => {
240
- return new VariantHasuraGraphQLRepository(hasuraConfig);
241
- },
242
- deps: ['HasuraConfig'],
243
- },
244
- {
245
- provide: 'ProductStockNotificationRepository',
246
- useExisting: ProductStockNotificationHasuraGraphQLRepository,
247
- },
248
- {
249
- provide: ProductStockNotificationHasuraGraphQLRepository,
250
- useFactory: (hasuraConfig) => {
251
- return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig);
252
- },
253
- deps: ['HasuraConfig'],
254
- },
255
- {
256
- provide: 'CategoryFilterRepository',
257
- useExisting: CategoryFilterHasuraGraphQLRepository,
258
- },
259
- {
260
- provide: CategoryFilterHasuraGraphQLRepository,
261
- useFactory: (options) => {
262
- return new CategoryFilterHasuraGraphQLRepository(options);
263
- },
264
- deps: ['HasuraConfig'],
265
- },
266
- {
267
- provide: 'FilterOptionRepository',
268
- useExisting: FilterOptionHasuraGraphQLRepository,
269
- },
270
- {
271
- provide: FilterOptionHasuraGraphQLRepository,
272
- useFactory: (options) => {
273
- return new FilterOptionHasuraGraphQLRepository(options);
274
- },
275
- deps: ['HasuraConfig'],
276
- },
277
- {
278
- provide: 'FilterRepository',
279
- useExisting: FilterHasuraGraphQLRepository,
280
- },
281
- {
282
- provide: FilterHasuraGraphQLRepository,
283
- useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
284
- return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
285
- },
286
- deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
287
- },
288
- {
289
- provide: CategoryCollectionChildrenHasuraGraphQLRepository,
290
- useFactory: (options) => new CategoryCollectionChildrenHasuraGraphQLRepository(options),
291
- deps: ['HasuraConfig'],
292
- },
293
- {
294
- provide: 'CategoryCollectionChildrenRepository',
295
- useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
296
- },
297
- {
298
- provide: CategoryProductHasuraGraphQLRepository,
299
- useFactory: (options) => {
300
- return new CategoryProductHasuraGraphQLRepository(options);
301
- },
302
- deps: ['HasuraConfig'],
303
- },
304
- {
305
- provide: 'CategoryProductRepository',
306
- useExisting: CategoryProductHasuraGraphQLRepository,
307
- },
308
- {
309
- provide: WishlistHasuraGraphQLRepository,
310
- useFactory: (options, categoryProductRepository) => {
311
- return new WishlistHasuraGraphQLRepository(options, categoryProductRepository);
312
- },
313
- deps: ['HasuraConfig', CategoryProductHasuraGraphQLRepository],
314
- },
315
- {
316
- provide: 'WishlistRepository',
317
- useExisting: WishlistHasuraGraphQLRepository,
318
- },
319
- {
320
- provide: ProductErrorsHasuraGraphQLRepository,
321
- useFactory: (options, productRepository) => {
322
- return new ProductErrorsHasuraGraphQLRepository(options, productRepository);
323
- },
324
- deps: ['HasuraConfig', ProductHasuraGraphQLRepository],
325
- },
326
- {
327
- provide: 'ProductErrorsRepository',
328
- useExisting: ProductErrorsHasuraGraphQLRepository,
329
- },
330
- ],
331
- }]
332
- }] });
333
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1oYXN1cmEtZ3JhcGhxbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2FuZ3VsYXItaGFzdXJhLWdyYXBocWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ25ELE9BQU8sRUFBdUIsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRSxPQUFPLEVBRUwsaURBQWlELEVBQ2pELHFDQUFxQyxFQUVyQywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBRXRDLDZCQUE2QixFQUM3QixtQ0FBbUMsRUFPbkMsb0NBQW9DLEVBRXBDLDhCQUE4QixFQUU5QixvQ0FBb0MsRUFFcEMsK0NBQStDLEVBRS9DLDhCQUE4QixFQUU5QiwrQkFBK0IsR0FDaEMsTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBOztBQW9MekMsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQTZCO1FBQ2hELE9BQU87WUFDTCxRQUFRLEVBQUUsMEJBQTBCO1lBQ3BDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDNUQsQ0FBQTtJQUNILENBQUM7O3VIQU5VLDBCQUEwQjt3SEFBMUIsMEJBQTBCO3dIQUExQiwwQkFBMEIsYUEvSzFCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsY0FBYztZQUN2QixVQUFVLEVBQUUsQ0FBQyxPQUE2QixFQUFFLFVBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2xFLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtnQkFDMUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUNoQyxLQUFLLEVBQUUs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c0M7eUJBQ3BEO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSwrQkFBK0I7NEJBQ3hDLFVBQVUsRUFBRSxDQUNWLE9BQVksRUFDWix5QkFBaUUsRUFDaEMsRUFBRTtnQ0FDbkMsT0FBTyxJQUFJLCtCQUErQixDQUFDLE9BQU8sRUFBRSx5QkFBeUIsQ0FBQyxDQUFBOzRCQUNoRixDQUFDOzRCQUNELElBQUksRUFBRSxDQUFDLGNBQWMsRUFBRSxzQ0FBc0MsQ0FBQzt5QkFDL0Q7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLG9CQUFvQjs0QkFDN0IsV0FBVyxFQUFFLCtCQUErQjt5QkFDN0M7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLG9DQUFvQzs0QkFDN0MsVUFBVSxFQUFFLENBQ1YsT0FBK0MsRUFDL0MsaUJBQWlELEVBQ3hCLEVBQUU7Z0NBQzNCLE9BQU8sSUFBSSxvQ0FBb0MsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTs0QkFDN0UsQ0FBQzs0QkFDRCxJQUFJLEVBQUUsQ0FBQyxjQUFjLEVBQUUsOEJBQThCLENBQUM7eUJBQ3ZEO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSx5QkFBeUI7NEJBQ2xDLFdBQVcsRUFBRSxvQ0FBb0M7eUJBQ2xEO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXHJcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgQ2FjaGVDb25maWcsXHJcbiAgQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gIENhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gIENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gIENhdGVnb3J5UmVwb3NpdG9yeSxcclxuICBGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBGaWx0ZXJPcHRpb25SZXBvc2l0b3J5LFxyXG4gIEZpbHRlclJlcG9zaXRvcnksXHJcbiAgR3JhcGhRTFBhcmFtcyxcclxuICBIYXN1cmFDb25zdHJ1Y3RvclBhcmFtcyxcclxuICBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnMsXHJcbiAgUHJvZHVjdEVycm9ycyxcclxuICBQcm9kdWN0RXJyb3JzSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgUHJvZHVjdEVycm9yc1JlcG9zaXRvcnksXHJcbiAgUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RSZXZpZXdIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBQcm9kdWN0UmV2aWV3UmVwb3NpdG9yeSxcclxuICBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25SZXBvc2l0b3J5LFxyXG4gIFZhcmlhbnRIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBWYXJpYW50UmVwb3NpdG9yeSxcclxuICBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5cclxuaW1wb3J0IHsgSEFTVVJBX09QVElPTlMgfSBmcm9tICcuL2NvbnN0cydcclxuXHJcbmV4cG9ydCB0eXBlIEhhc3VyYUdyYXBoUUxPcHRpb25zID0geyBlbmRwb2ludDogc3RyaW5nOyBjcmVkZW50aWFscz86IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9uczsgY2FjaGU/OiBDYWNoZUNvbmZpZyB9XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnSGFzdXJhQ29uZmlnJyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEhhc3VyYUdyYXBoUUxPcHRpb25zLCBwbGF0Zm9ybUlkOiBzdHJpbmcpID0+ICh7XHJcbiAgICAgICAgZW5kcG9pbnQ6IG9wdGlvbnMuZW5kcG9pbnQsXHJcbiAgICAgICAgYXV0aE9wdGlvbnM6IG9wdGlvbnMuY3JlZGVudGlhbHMsXHJcbiAgICAgICAgY2FjaGU6IG9wdGlvbnMuY2FjaGUsXHJcbiAgICAgICAgaW50ZXJjZXB0b3JzOiB7XHJcbiAgICAgICAgICByZXF1ZXN0OiAocmVxdWVzdDogR3JhcGhRTFBhcmFtczxhbnk+ICYgeyBpbnRlcnZhbDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCkpIHJldHVybiByZXF1ZXN0XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHt9LCAxMDApXHJcblxyXG4gICAgICAgICAgICByZXF1ZXN0LmludGVydmFsID0gaW50ZXJ2YWxcclxuXHJcbiAgICAgICAgICAgIHJldHVybiByZXF1ZXN0XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcmVzcG9uc2U6IChyZXNwb25zZTogYW55LCByZXF1ZXN0OiBHcmFwaFFMUGFyYW1zPGFueT4gJiB7IGludGVydmFsOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB9KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkgcmV0dXJuIHJlc3BvbnNlXHJcblxyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKHJlcXVlc3QuaW50ZXJ2YWwpXHJcblxyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSksXHJcbiAgICAgIGRlcHM6IFtIQVNVUkFfT1BUSU9OUywgUExBVEZPUk1fSURdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ0NhdGVnb3J5UmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDYXRlZ29yeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQ2F0ZWdvcnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKFxyXG4gICAgICAgIG9wdGlvbnM6IGFueSxcclxuICAgICAgICBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICAgIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeTogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgKTogQ2F0ZWdvcnlSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucywgcHJvZHVjdFJlcG9zaXRvcnksIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnLCBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksIENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnldLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogUHJvZHVjdFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KGhhc3VyYUNvbmZpZylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0UmV2aWV3UmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBQcm9kdWN0UmV2aWV3SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBQcm9kdWN0UmV2aWV3SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChoYXN1cmFDb25maWc6IGFueSk6IFByb2R1Y3RSZXZpZXdSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RSZXZpZXdIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShoYXN1cmFDb25maWcpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnVmFyaWFudFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogVmFyaWFudEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogVmFyaWFudEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAoaGFzdXJhQ29uZmlnOiBhbnkpOiBWYXJpYW50UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBWYXJpYW50SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkoaGFzdXJhQ29uZmlnKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RTdG9ja05vdGlmaWNhdGlvblJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShoYXN1cmFDb25maWcpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdGaWx0ZXJPcHRpb25SZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRmlsdGVyT3B0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBhbnkpOiBGaWx0ZXJPcHRpb25SZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnRmlsdGVyUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAoXHJcbiAgICAgICAgb3B0aW9uczogYW55LFxyXG4gICAgICAgIGZpbHRlck9wdGlvblJlcG9zaXRvcnk6IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICAgIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeTogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgKTogRmlsdGVyUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zLCBmaWx0ZXJPcHRpb25SZXBvc2l0b3J5LCBjYXRlZ29yeUZpbHRlclJlcG9zaXRvcnkpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJywgRmlsdGVyT3B0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksIENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnldLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT5cclxuICAgICAgICBuZXcgQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zKSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlblJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdDYXRlZ29yeVByb2R1Y3RSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKFxyXG4gICAgICAgIG9wdGlvbnM6IGFueSxcclxuICAgICAgICBjYXRlZ29yeVByb2R1Y3RSZXBvc2l0b3J5OiBDYXRlZ29yeVByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgKTogV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMsIGNhdGVnb3J5UHJvZHVjdFJlcG9zaXRvcnkpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJywgQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnldLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1dpc2hsaXN0UmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogUHJvZHVjdEVycm9yc0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAoXHJcbiAgICAgICAgb3B0aW9uczogSGFzdXJhQ29uc3RydWN0b3JQYXJhbXM8UHJvZHVjdEVycm9ycz4sXHJcbiAgICAgICAgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgKTogUHJvZHVjdEVycm9yc1JlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdEVycm9yc0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMsIHByb2R1Y3RSZXBvc2l0b3J5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZycsIFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeV0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnUHJvZHVjdEVycm9yc1JlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdEVycm9yc0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5ndWxhckhhc3VyYUdyYXBoUUxNb2R1bGUge1xyXG4gIHN0YXRpYyBpbml0aWFsaXplQXBwKG9wdGlvbnM6IEhhc3VyYUdyYXBoUUxPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBbmd1bGFySGFzdXJhR3JhcGhRTE1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEFuZ3VsYXJIYXN1cmFHcmFwaFFMTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEhBU1VSQV9PUFRJT05TLCB1c2VWYWx1ZTogb3B0aW9ucyB9XSxcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -1,34 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { ProductsVertexSearch, VertexAxiosAdapter } from '@infrab4a/connect';
3
- import { VERTEX_CONFIG } from './consts';
4
- import * as i0 from "@angular/core";
5
- export class AngularVertexSeachModule {
6
- static initializeApp(options) {
7
- return {
8
- ngModule: AngularVertexSeachModule,
9
- providers: [{ provide: VERTEX_CONFIG, useValue: options }],
10
- };
11
- }
12
- }
13
- AngularVertexSeachModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularVertexSeachModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- AngularVertexSeachModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularVertexSeachModule });
15
- AngularVertexSeachModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularVertexSeachModule, providers: [
16
- {
17
- provide: ProductsVertexSearch,
18
- useFactory: (configuration) => new ProductsVertexSearch(new VertexAxiosAdapter(configuration)),
19
- deps: [VERTEX_CONFIG],
20
- },
21
- ] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularVertexSeachModule, decorators: [{
23
- type: NgModule,
24
- args: [{
25
- providers: [
26
- {
27
- provide: ProductsVertexSearch,
28
- useFactory: (configuration) => new ProductsVertexSearch(new VertexAxiosAdapter(configuration)),
29
- deps: [VERTEX_CONFIG],
30
- },
31
- ],
32
- }]
33
- }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci12ZXJ0ZXgtc2VhcmNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvYW5ndWxhci12ZXJ0ZXgtc2VhcmNoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQXNCLE1BQU0sbUJBQW1CLENBQUE7QUFFaEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQTs7QUFZeEMsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQTJCO1FBQzlDLE9BQU87WUFDTCxRQUFRLEVBQUUsd0JBQXdCO1lBQ2xDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDM0QsQ0FBQTtJQUNILENBQUM7O3FIQU5VLHdCQUF3QjtzSEFBeEIsd0JBQXdCO3NIQUF4Qix3QkFBd0IsYUFUeEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsVUFBVSxFQUFFLENBQUMsYUFBaUMsRUFBd0IsRUFBRSxDQUN0RSxJQUFJLG9CQUFvQixDQUFDLElBQUksa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDakUsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDO1NBQ3RCO0tBQ0Y7MkZBRVUsd0JBQXdCO2tCQVZwQyxRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsb0JBQW9COzRCQUM3QixVQUFVLEVBQUUsQ0FBQyxhQUFpQyxFQUF3QixFQUFFLENBQ3RFLElBQUksb0JBQW9CLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQzs0QkFDakUsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDO3lCQUN0QjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgUHJvZHVjdHNWZXJ0ZXhTZWFyY2gsIFZlcnRleEF4aW9zQWRhcHRlciwgVmVydGV4U2VhcmNoQ29uZmlnIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcblxyXG5pbXBvcnQgeyBWRVJURVhfQ09ORklHIH0gZnJvbSAnLi9jb25zdHMnXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBQcm9kdWN0c1ZlcnRleFNlYXJjaCxcclxuICAgICAgdXNlRmFjdG9yeTogKGNvbmZpZ3VyYXRpb246IFZlcnRleFNlYXJjaENvbmZpZyk6IFByb2R1Y3RzVmVydGV4U2VhcmNoID0+XHJcbiAgICAgICAgbmV3IFByb2R1Y3RzVmVydGV4U2VhcmNoKG5ldyBWZXJ0ZXhBeGlvc0FkYXB0ZXIoY29uZmlndXJhdGlvbikpLFxyXG4gICAgICBkZXBzOiBbVkVSVEVYX0NPTkZJR10sXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbmd1bGFyVmVydGV4U2VhY2hNb2R1bGUge1xyXG4gIHN0YXRpYyBpbml0aWFsaXplQXBwKG9wdGlvbnM6IFZlcnRleFNlYXJjaENvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QW5ndWxhclZlcnRleFNlYWNoTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQW5ndWxhclZlcnRleFNlYWNoTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFZFUlRFWF9DT05GSUcsIHVzZVZhbHVlOiBvcHRpb25zIH1dLFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1zdHJhdGVnaWVzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvaW50ZXJmYWNlcy9jYXRhbG9nLXN0cmF0ZWdpZXMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENhdGVnb3J5LFxyXG4gIFByb2R1Y3QsXHJcbiAgUHJvZHVjdEdlbmRlcixcclxuICBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zLFxyXG4gIFJlcG9zaXRvcnlGaW5kUmVzdWx0LFxyXG4gIFNob3BzLFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9nU2VhcmNoUGFyYW1zIHtcclxuICBjYXRlZ29yeT86IENhdGVnb3J5XHJcbiAgcHJvZmlsZT86IHN0cmluZ1tdXHJcbiAgdGVybT86IHN0cmluZ1xyXG4gIGZpbHRlcnM/OiBDYXRhbG9nRmlsdGVyc1xyXG4gIG1haW5HZW5kZXI/OiBQcm9kdWN0R2VuZGVyXHJcbiAgbGltaXRzOiB7IGxpbWl0PzogbnVtYmVyOyBvZmZzZXQ/OiBudW1iZXIgfVxyXG4gIHNvcnQ/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9nRmlsdGVycyB7XHJcbiAgY2x1YkRpc2NvdW50PzogbnVtYmVyW11cclxuICBicmFuZHM/OiBzdHJpbmdbXVxyXG4gIHByaWNlcz86IHsgbWluPzogbnVtYmVyOyBtYXg/OiBudW1iZXI7IHN1YnNjcmliZXJQcmljZT86IGJvb2xlYW4gfVxyXG4gIGdlbmRlcj86IFByb2R1Y3RHZW5kZXJbXVxyXG4gIHJhdGU/OiBudW1iZXJcclxuICBjdXN0b21PcHRpb25zPzogc3RyaW5nW11cclxuICB0YWdzPzogc3RyaW5nW11cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9nU2VhcmNoU3RyYXRlZ3kge1xyXG4gIHNlYXJjaChcclxuICAgIHBhcmFtczogQ2F0YWxvZ1NlYXJjaFBhcmFtcyxcclxuICAgIHNob3A6IFNob3BzLFxyXG4gICAgb3B0aW9uc0NhY2hlPzogeyBjYWNoZT86IFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMgfSxcclxuICApOiBQcm9taXNlPFJlcG9zaXRvcnlGaW5kUmVzdWx0PFByb2R1Y3Q+PlxyXG59XHJcbiJdfQ==
@@ -1,111 +0,0 @@
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==
@@ -1,40 +0,0 @@
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=
@@ -1,17 +0,0 @@
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==