@infrab4a/connect-angular 4.3.1-beta.1 → 4.3.2

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 (64) hide show
  1. package/esm2022/angular-connect.module.mjs +113 -0
  2. package/esm2022/angular-elastic-search.module.mjs +34 -0
  3. package/esm2022/angular-firebase-auth.module.mjs +115 -0
  4. package/esm2022/angular-firestore.module.mjs +502 -0
  5. package/esm2022/angular-hasura-graphql.module.mjs +265 -0
  6. package/{esm2020 → esm2022}/services/auth.service.mjs +6 -6
  7. package/{esm2020 → esm2022}/services/cart.service.mjs +6 -6
  8. package/{esm2020 → esm2022}/services/catalog/adapters/new-category-structure.adapter.mjs +6 -6
  9. package/{esm2020 → esm2022}/services/catalog/adapters/old-category-structure.adapter.mjs +6 -6
  10. package/esm2022/services/catalog/catalog.service.mjs +174 -0
  11. package/{esm2020 → esm2022}/services/catalog/category.service.mjs +6 -6
  12. package/{esm2020 → esm2022}/services/catalog/models/category-with-tree.model.mjs +1 -1
  13. package/{esm2020 → esm2022}/services/catalog/wishlist.service.mjs +6 -6
  14. package/{esm2020 → esm2022}/services/checkout-subscription.service.mjs +6 -6
  15. package/{esm2020 → esm2022}/services/checkout.service.mjs +6 -6
  16. package/esm2022/services/coupon.service.mjs +235 -0
  17. package/esm2022/services/home-shop.service.mjs +125 -0
  18. package/{esm2020 → esm2022}/services/order.service.mjs +6 -6
  19. package/{esm2020 → esm2022}/services/shipping.service.mjs +6 -6
  20. package/{fesm2020 → fesm2022}/infrab4a-connect-angular.mjs +565 -534
  21. package/fesm2022/infrab4a-connect-angular.mjs.map +1 -0
  22. package/package.json +6 -12
  23. package/services/coupon.service.d.ts +1 -0
  24. package/services/home-shop.service.d.ts +1 -0
  25. package/esm2020/angular-connect.module.mjs +0 -113
  26. package/esm2020/angular-elastic-search.module.mjs +0 -34
  27. package/esm2020/angular-firebase-auth.module.mjs +0 -115
  28. package/esm2020/angular-firestore.module.mjs +0 -502
  29. package/esm2020/angular-hasura-graphql.module.mjs +0 -265
  30. package/esm2020/services/catalog/catalog.service.mjs +0 -170
  31. package/esm2020/services/coupon.service.mjs +0 -218
  32. package/esm2020/services/home-shop.service.mjs +0 -115
  33. package/fesm2015/infrab4a-connect-angular.mjs +0 -2350
  34. package/fesm2015/infrab4a-connect-angular.mjs.map +0 -1
  35. package/fesm2020/infrab4a-connect-angular.mjs.map +0 -1
  36. /package/{esm2020 → esm2022}/consts/backend-url.const.mjs +0 -0
  37. /package/{esm2020 → esm2022}/consts/category-structure.mjs +0 -0
  38. /package/{esm2020 → esm2022}/consts/default-shop.const.mjs +0 -0
  39. /package/{esm2020 → esm2022}/consts/es-config.const.mjs +0 -0
  40. /package/{esm2020 → esm2022}/consts/firebase-const.mjs +0 -0
  41. /package/{esm2020 → esm2022}/consts/hasura-options.const.mjs +0 -0
  42. /package/{esm2020 → esm2022}/consts/index.mjs +0 -0
  43. /package/{esm2020 → esm2022}/consts/storage-base-url.const.mjs +0 -0
  44. /package/{esm2020 → esm2022}/helpers/index.mjs +0 -0
  45. /package/{esm2020 → esm2022}/helpers/mobile-operation-system-checker.helper.mjs +0 -0
  46. /package/{esm2020 → esm2022}/index.mjs +0 -0
  47. /package/{esm2020 → esm2022}/infrab4a-connect-angular.mjs +0 -0
  48. /package/{esm2020 → esm2022}/services/catalog/adapters/category-structure.adapter.mjs +0 -0
  49. /package/{esm2020 → esm2022}/services/catalog/adapters/index.mjs +0 -0
  50. /package/{esm2020 → esm2022}/services/catalog/enums/index.mjs +0 -0
  51. /package/{esm2020 → esm2022}/services/catalog/enums/product-sorts.enum.mjs +0 -0
  52. /package/{esm2020 → esm2022}/services/catalog/index.mjs +0 -0
  53. /package/{esm2020 → esm2022}/services/catalog/models/index.mjs +0 -0
  54. /package/{esm2020 → esm2022}/services/catalog/types/index.mjs +0 -0
  55. /package/{esm2020 → esm2022}/services/catalog/types/product-sort.type.mjs +0 -0
  56. /package/{esm2020 → esm2022}/services/helpers/index.mjs +0 -0
  57. /package/{esm2020 → esm2022}/services/helpers/util.helper.mjs +0 -0
  58. /package/{esm2020 → esm2022}/services/index.mjs +0 -0
  59. /package/{esm2020 → esm2022}/services/types/index.mjs +0 -0
  60. /package/{esm2020 → esm2022}/services/types/required-checkout-data.type.mjs +0 -0
  61. /package/{esm2020 → esm2022}/services/types/required-checkout-subscription-data.type.mjs +0 -0
  62. /package/{esm2020 → esm2022}/services/types/shipping-methods.type.mjs +0 -0
  63. /package/{esm2020 → esm2022}/types/firebase-app-config.type.mjs +0 -0
  64. /package/{esm2020 → esm2022}/types/index.mjs +0 -0
@@ -1,20 +1,20 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { NgModule, InjectionToken, PLATFORM_ID, Injectable, Inject } from '@angular/core';
3
3
  import * as i1$4 from '@angular/fire/app';
4
- import { FirebaseApp, provideFirebaseApp, getApp, initializeApp } from '@angular/fire/app';
4
+ import { FirebaseApp, getApp, initializeApp, provideFirebaseApp } from '@angular/fire/app';
5
5
  import * as i1$2 from '@infrab4a/connect';
6
6
  import { ProductsIndex, AxiosAdapter, Authentication, AuthenticationFirebaseAuthService, Register, RegisterFirebaseAuthService, SignOut, RecoveryPassword, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, SubscriptionMaterializationFirestoreRepository, SubscriptionSummaryFirestoreRepository, ProductVariantFirestoreRepository, FirebaseFileUploaderService, CategoryHasuraGraphQLRepository, ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, ProductReviewsHasuraGraphQLRepository, VariantHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, FilterHasuraGraphQLRepository, CategoryCollectionChildrenHasuraGraphQLRepository, WishlistHasuraGraphQLRepository, Where, Shops, CheckoutTypes, CouponTypes, Exclusivities, isNil, NotFoundError, Checkout, pick, LineItem, RoundProductPricesHelper, set, InvalidArgumentError, Category, Wishlist, CheckoutSubscription, Product, RequiredArgumentError, add, Order, UpdateUserImage } from '@infrab4a/connect';
7
7
  import * as i1 from '@angular/fire/auth';
8
- import { Auth, provideAuth, getAuth, getIdToken, authState } from '@angular/fire/auth';
8
+ import { Auth, getAuth, provideAuth, getIdToken, authState } from '@angular/fire/auth';
9
9
  import { isPlatformBrowser, isPlatformServer } from '@angular/common';
10
10
  import * as i1$1 from '@angular/fire/firestore';
11
- import { Firestore, provideFirestore, getFirestore, initializeFirestore, memoryLocalCache, docSnapshots, doc } from '@angular/fire/firestore';
11
+ import { Firestore, getFirestore, memoryLocalCache, initializeFirestore, provideFirestore, doc, docSnapshots } from '@angular/fire/firestore';
12
12
  import * as i2 from '@angular/fire/storage';
13
- import { Storage, provideStorage, getStorage } from '@angular/fire/storage';
14
- import { combineLatest, from, of, throwError, Subject, iif, forkJoin } from 'rxjs';
15
- import { map, mergeMap, catchError, concatMap, tap } from 'rxjs/operators';
13
+ import { Storage, getStorage, provideStorage } from '@angular/fire/storage';
14
+ import { combineLatest, of, from, throwError, Subject, iif, forkJoin } from 'rxjs';
15
+ import { map, catchError, mergeMap, concatMap, tap } from 'rxjs/operators';
16
16
  import cookie from 'js-cookie';
17
- import { __decorate, __metadata } from 'tslib';
17
+ import { __metadata, __decorate } from 'tslib';
18
18
  import { Type } from 'class-transformer';
19
19
  import * as i1$3 from '@angular/common/http';
20
20
 
@@ -27,17 +27,17 @@ class AngularElasticSeachModule {
27
27
  providers: [{ provide: ES_CONFIG, useValue: options }],
28
28
  };
29
29
  }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularElasticSeachModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
31
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: AngularElasticSeachModule }); }
32
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularElasticSeachModule, providers: [
33
+ {
34
+ provide: ProductsIndex,
35
+ useFactory: (configuration) => new ProductsIndex(new AxiosAdapter(configuration)),
36
+ deps: [ES_CONFIG],
37
+ },
38
+ ] }); }
30
39
  }
31
- AngularElasticSeachModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
32
- AngularElasticSeachModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule });
33
- AngularElasticSeachModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule, providers: [
34
- {
35
- provide: ProductsIndex,
36
- useFactory: (configuration) => new ProductsIndex(new AxiosAdapter(configuration)),
37
- deps: [ES_CONFIG],
38
- },
39
- ] });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularElasticSeachModule, decorators: [{
41
41
  type: NgModule,
42
42
  args: [{
43
43
  providers: [
@@ -71,54 +71,54 @@ class AngularFirebaseAuthModule {
71
71
  ],
72
72
  };
73
73
  }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularFirebaseAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
75
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: AngularFirebaseAuthModule, imports: [i1.AuthModule] }); }
76
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularFirebaseAuthModule, providers: [
77
+ {
78
+ provide: 'Authentication',
79
+ useFactory: (authenticationService, userRepository) => {
80
+ return new Authentication(authenticationService, userRepository);
81
+ },
82
+ deps: ['AuthenticationService', 'UserRepository'],
83
+ },
84
+ {
85
+ provide: 'AuthenticationService',
86
+ useFactory: (angularFireAuth) => {
87
+ return new AuthenticationFirebaseAuthService(angularFireAuth);
88
+ },
89
+ deps: [Auth],
90
+ },
91
+ {
92
+ provide: 'Register',
93
+ useFactory: (registerService, userRepository) => {
94
+ return new Register(registerService, userRepository);
95
+ },
96
+ deps: ['RegisterService', 'UserRepository'],
97
+ },
98
+ {
99
+ provide: 'RegisterService',
100
+ useFactory: (angularFireAuth) => {
101
+ return new RegisterFirebaseAuthService(angularFireAuth);
102
+ },
103
+ deps: [Auth],
104
+ },
105
+ {
106
+ provide: 'SignOut',
107
+ useFactory: (authenticationService) => {
108
+ return new SignOut(authenticationService);
109
+ },
110
+ deps: ['AuthenticationService'],
111
+ },
112
+ {
113
+ provide: 'RecoveryPassword',
114
+ useFactory: (authenticationService) => {
115
+ return new RecoveryPassword(authenticationService);
116
+ },
117
+ deps: ['AuthenticationService'],
118
+ },
119
+ ], imports: [provideAuth((injector) => getAuth(injector.get(FirebaseApp)))] }); }
74
120
  }
75
- AngularFirebaseAuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularFirebaseAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
76
- AngularFirebaseAuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularFirebaseAuthModule, imports: [i1.AuthModule] });
77
- AngularFirebaseAuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularFirebaseAuthModule, providers: [
78
- {
79
- provide: 'Authentication',
80
- useFactory: (authenticationService, userRepository) => {
81
- return new Authentication(authenticationService, userRepository);
82
- },
83
- deps: ['AuthenticationService', 'UserRepository'],
84
- },
85
- {
86
- provide: 'AuthenticationService',
87
- useFactory: (angularFireAuth) => {
88
- return new AuthenticationFirebaseAuthService(angularFireAuth);
89
- },
90
- deps: [Auth],
91
- },
92
- {
93
- provide: 'Register',
94
- useFactory: (registerService, userRepository) => {
95
- return new Register(registerService, userRepository);
96
- },
97
- deps: ['RegisterService', 'UserRepository'],
98
- },
99
- {
100
- provide: 'RegisterService',
101
- useFactory: (angularFireAuth) => {
102
- return new RegisterFirebaseAuthService(angularFireAuth);
103
- },
104
- deps: [Auth],
105
- },
106
- {
107
- provide: 'SignOut',
108
- useFactory: (authenticationService) => {
109
- return new SignOut(authenticationService);
110
- },
111
- deps: ['AuthenticationService'],
112
- },
113
- {
114
- provide: 'RecoveryPassword',
115
- useFactory: (authenticationService) => {
116
- return new RecoveryPassword(authenticationService);
117
- },
118
- deps: ['AuthenticationService'],
119
- },
120
- ], imports: [provideAuth((injector) => getAuth(injector.get(FirebaseApp)))] });
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularFirebaseAuthModule, decorators: [{
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularFirebaseAuthModule, decorators: [{
122
122
  type: NgModule,
123
123
  args: [{
124
124
  imports: [provideAuth((injector) => getAuth(injector.get(FirebaseApp)))],
@@ -189,243 +189,243 @@ class AngularFirestoreModule {
189
189
  ],
190
190
  };
191
191
  }
192
- }
193
- AngularFirestoreModulefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularFirestoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
194
- AngularFirestoreModulemod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularFirestoreModule, imports: [AngularElasticSeachModule, i1$1.FirestoreModule, i2.StorageModule] });
195
- AngularFirestoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularFirestoreModule, providers: [
196
- {
197
- provide: 'FirestoreOptions',
198
- useFactory: (firestore, platformId) => ({
199
- firestore,
200
- interceptors: {
201
- request: (request) => {
202
- if (isPlatformBrowser(platformId))
192
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularFirestoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
193
+ static { thismod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: AngularFirestoreModule, imports: [AngularElasticSeachModule, i1$1.FirestoreModule, i2.StorageModule] }); }
194
+ static { thisinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularFirestoreModule, providers: [
195
+ {
196
+ provide: 'FirestoreOptions',
197
+ useFactory: (firestore, platformId) => ({
198
+ firestore,
199
+ interceptors: {
200
+ request: (request) => {
201
+ if (isPlatformBrowser(platformId))
202
+ return request;
203
+ const interval = setInterval(() => { }, 100);
204
+ request.interval = interval;
203
205
  return request;
204
- const interval = setInterval(() => { }, 100);
205
- request.interval = interval;
206
- return request;
207
- },
208
- response: (response, request) => {
209
- if (isPlatformBrowser(platformId))
206
+ },
207
+ response: (response, request) => {
208
+ if (isPlatformBrowser(platformId))
209
+ return response;
210
+ clearInterval(request.interval);
210
211
  return response;
211
- clearInterval(request.interval);
212
- return response;
212
+ },
213
213
  },
214
+ }),
215
+ deps: [Firestore, PLATFORM_ID],
216
+ },
217
+ {
218
+ provide: 'BeautyProfileRepository',
219
+ useFactory: (config, userRepository) => {
220
+ return new UserBeautyProfileFirestoreRepository(config, userRepository);
221
+ },
222
+ deps: ['FirestoreOptions', 'UserRepository'],
223
+ },
224
+ {
225
+ provide: 'Buy2WinRepository',
226
+ useFactory: (options) => {
227
+ return new Buy2WinFirestoreRepository(options);
228
+ },
229
+ deps: ['FirestoreOptions'],
230
+ },
231
+ {
232
+ provide: CategoryFirestoreRepository,
233
+ useFactory: (options) => {
234
+ return new CategoryFirestoreRepository(options);
235
+ },
236
+ deps: ['FirestoreOptions'],
237
+ },
238
+ {
239
+ provide: 'CheckoutRepository',
240
+ useFactory: (options) => {
241
+ return new CheckoutFirestoreRepository(options);
242
+ },
243
+ deps: ['FirestoreOptions'],
244
+ },
245
+ {
246
+ provide: 'CheckoutSubscriptionRepository',
247
+ useFactory: (options) => {
248
+ return new CheckoutSubscriptionFirestoreRepository(options);
249
+ },
250
+ deps: ['FirestoreOptions'],
251
+ },
252
+ {
253
+ provide: 'CouponRepository',
254
+ useFactory: (options) => {
255
+ return new CouponFirestoreRepository(options);
256
+ },
257
+ deps: ['FirestoreOptions'],
258
+ },
259
+ {
260
+ provide: 'CampaignHashtagRepository',
261
+ useFactory: (options) => {
262
+ return new CampaignHashtagFirestoreRepository(options);
263
+ },
264
+ deps: ['FirestoreOptions'],
265
+ },
266
+ {
267
+ provide: 'CampaignDashboardRepository',
268
+ useFactory: (options) => {
269
+ return new CampaignDashboardFirestoreRepository(options);
270
+ },
271
+ deps: ['FirestoreOptions'],
272
+ },
273
+ {
274
+ provide: 'EditionRepository',
275
+ useFactory: (options, subscriptionRepository) => {
276
+ return new SubscriptionEditionFirestoreRepository(options, subscriptionRepository);
277
+ },
278
+ deps: ['FirestoreOptions', 'SubscriptionRepository'],
279
+ },
280
+ {
281
+ provide: 'HomeRepository',
282
+ useFactory: (options) => {
283
+ return new HomeFirestoreRepository(options);
284
+ },
285
+ deps: ['FirestoreOptions'],
286
+ },
287
+ {
288
+ provide: 'LeadRepository',
289
+ useFactory: (options) => {
290
+ return new LeadFirestoreRepository(options);
291
+ },
292
+ deps: ['FirestoreOptions'],
293
+ },
294
+ {
295
+ provide: 'LegacyOrderRepository',
296
+ useFactory: (options) => {
297
+ return new LegacyOrderFirestoreRepository(options);
298
+ },
299
+ deps: ['FirestoreOptions'],
300
+ },
301
+ {
302
+ provide: 'ShopMenuRepository',
303
+ useFactory: (options) => {
304
+ return new ShopMenuFirestoreRepository(options);
305
+ },
306
+ deps: ['FirestoreOptions'],
307
+ },
308
+ {
309
+ provide: 'OrderRepository',
310
+ useFactory: (options) => {
311
+ return new OrderFirestoreRepository(options);
312
+ },
313
+ deps: ['FirestoreOptions'],
314
+ },
315
+ {
316
+ provide: 'PaymentRepository',
317
+ useFactory: (options) => {
318
+ return new PaymentFirestoreRepository(options);
319
+ },
320
+ deps: ['FirestoreOptions'],
321
+ },
322
+ {
323
+ provide: ProductFirestoreRepository,
324
+ useFactory: (options) => {
325
+ return new ProductFirestoreRepository(options);
326
+ },
327
+ deps: ['FirestoreOptions'],
328
+ },
329
+ {
330
+ provide: 'ShopSettingsRepository',
331
+ useFactory: (options) => {
332
+ return new ShopSettingsFirestoreRepository(options);
333
+ },
334
+ deps: ['FirestoreOptions'],
335
+ },
336
+ {
337
+ provide: 'SubscriptionPaymentRepository',
338
+ useFactory: (options, subscriptionRepository) => {
339
+ return new SubscriptionPaymentFirestoreRepository(options, subscriptionRepository);
340
+ },
341
+ deps: ['FirestoreOptions', 'SubscriptionRepository'],
342
+ },
343
+ {
344
+ provide: 'SubscriptionPlanRepository',
345
+ useFactory: (options) => {
346
+ return new SubscriptionPlanFirestoreRepository(options);
347
+ },
348
+ deps: ['FirestoreOptions'],
349
+ },
350
+ {
351
+ provide: 'SubscriptionProductRepository',
352
+ useFactory: (options) => {
353
+ return new SubscriptionProductFirestoreRepository(options);
354
+ },
355
+ deps: ['FirestoreOptions'],
356
+ },
357
+ {
358
+ provide: 'SubscriptionRepository',
359
+ useFactory: (options) => {
360
+ return new SubscriptionFirestoreRepository(options);
361
+ },
362
+ deps: ['FirestoreOptions'],
363
+ },
364
+ {
365
+ provide: 'UserRepository',
366
+ useFactory: (options) => {
367
+ return new UserFirestoreRepository(options);
368
+ },
369
+ deps: ['FirestoreOptions'],
370
+ },
371
+ {
372
+ provide: 'UserAddressRepository',
373
+ useFactory: (options, userRepository) => {
374
+ return new UserAddressFirestoreRepository(options, userRepository);
375
+ },
376
+ deps: ['FirestoreOptions', 'UserRepository'],
377
+ },
378
+ {
379
+ provide: 'UserPaymentMethodRepository',
380
+ useFactory: (options, userRepository) => {
381
+ return new UserPaymentMethodFirestoreRepository(options, userRepository);
214
382
  },
383
+ deps: ['FirestoreOptions', 'UserRepository'],
384
+ },
385
+ {
386
+ provide: 'SubscriptionMaterializationRepository',
387
+ useFactory: (options) => {
388
+ return new SubscriptionMaterializationFirestoreRepository(options);
389
+ },
390
+ deps: ['FirestoreOptions'],
391
+ },
392
+ {
393
+ provide: 'SubscriptionSummaryRepository',
394
+ useFactory: (options) => {
395
+ return new SubscriptionSummaryFirestoreRepository(options);
396
+ },
397
+ deps: ['FirestoreOptions'],
398
+ },
399
+ {
400
+ provide: ProductVariantFirestoreRepository,
401
+ useFactory: (options, productRepository) => {
402
+ return new ProductVariantFirestoreRepository(options, productRepository);
403
+ },
404
+ deps: ['FirestoreOptions', ProductFirestoreRepository],
405
+ },
406
+ {
407
+ provide: 'FileUploaderService',
408
+ useFactory: (storage, baseUrl) => {
409
+ return new FirebaseFileUploaderService(storage, baseUrl);
410
+ },
411
+ deps: [Storage, STORAGE_BASE_URL],
412
+ },
413
+ ], imports: [AngularElasticSeachModule,
414
+ provideFirestore((injector) => {
415
+ const platformId = injector.get(PLATFORM_ID);
416
+ if (isPlatformServer(platformId))
417
+ return getFirestore(injector.get(FirebaseApp));
418
+ if (!MobileOperationSystemCheckerHelper.isAppleDevice())
419
+ return getFirestore(injector.get(FirebaseApp));
420
+ const firestore = initializeFirestore(injector.get(FirebaseApp), {
421
+ experimentalForceLongPolling: true,
422
+ localCache: memoryLocalCache(),
423
+ });
424
+ return firestore;
215
425
  }),
216
- deps: [Firestore, PLATFORM_ID],
217
- },
218
- {
219
- provide: 'BeautyProfileRepository',
220
- useFactory: (config, userRepository) => {
221
- return new UserBeautyProfileFirestoreRepository(config, userRepository);
222
- },
223
- deps: ['FirestoreOptions', 'UserRepository'],
224
- },
225
- {
226
- provide: 'Buy2WinRepository',
227
- useFactory: (options) => {
228
- return new Buy2WinFirestoreRepository(options);
229
- },
230
- deps: ['FirestoreOptions'],
231
- },
232
- {
233
- provide: CategoryFirestoreRepository,
234
- useFactory: (options) => {
235
- return new CategoryFirestoreRepository(options);
236
- },
237
- deps: ['FirestoreOptions'],
238
- },
239
- {
240
- provide: 'CheckoutRepository',
241
- useFactory: (options) => {
242
- return new CheckoutFirestoreRepository(options);
243
- },
244
- deps: ['FirestoreOptions'],
245
- },
246
- {
247
- provide: 'CheckoutSubscriptionRepository',
248
- useFactory: (options) => {
249
- return new CheckoutSubscriptionFirestoreRepository(options);
250
- },
251
- deps: ['FirestoreOptions'],
252
- },
253
- {
254
- provide: 'CouponRepository',
255
- useFactory: (options) => {
256
- return new CouponFirestoreRepository(options);
257
- },
258
- deps: ['FirestoreOptions'],
259
- },
260
- {
261
- provide: 'CampaignHashtagRepository',
262
- useFactory: (options) => {
263
- return new CampaignHashtagFirestoreRepository(options);
264
- },
265
- deps: ['FirestoreOptions'],
266
- },
267
- {
268
- provide: 'CampaignDashboardRepository',
269
- useFactory: (options) => {
270
- return new CampaignDashboardFirestoreRepository(options);
271
- },
272
- deps: ['FirestoreOptions'],
273
- },
274
- {
275
- provide: 'EditionRepository',
276
- useFactory: (options, subscriptionRepository) => {
277
- return new SubscriptionEditionFirestoreRepository(options, subscriptionRepository);
278
- },
279
- deps: ['FirestoreOptions', 'SubscriptionRepository'],
280
- },
281
- {
282
- provide: 'HomeRepository',
283
- useFactory: (options) => {
284
- return new HomeFirestoreRepository(options);
285
- },
286
- deps: ['FirestoreOptions'],
287
- },
288
- {
289
- provide: 'LeadRepository',
290
- useFactory: (options) => {
291
- return new LeadFirestoreRepository(options);
292
- },
293
- deps: ['FirestoreOptions'],
294
- },
295
- {
296
- provide: 'LegacyOrderRepository',
297
- useFactory: (options) => {
298
- return new LegacyOrderFirestoreRepository(options);
299
- },
300
- deps: ['FirestoreOptions'],
301
- },
302
- {
303
- provide: 'ShopMenuRepository',
304
- useFactory: (options) => {
305
- return new ShopMenuFirestoreRepository(options);
306
- },
307
- deps: ['FirestoreOptions'],
308
- },
309
- {
310
- provide: 'OrderRepository',
311
- useFactory: (options) => {
312
- return new OrderFirestoreRepository(options);
313
- },
314
- deps: ['FirestoreOptions'],
315
- },
316
- {
317
- provide: 'PaymentRepository',
318
- useFactory: (options) => {
319
- return new PaymentFirestoreRepository(options);
320
- },
321
- deps: ['FirestoreOptions'],
322
- },
323
- {
324
- provide: ProductFirestoreRepository,
325
- useFactory: (options) => {
326
- return new ProductFirestoreRepository(options);
327
- },
328
- deps: ['FirestoreOptions'],
329
- },
330
- {
331
- provide: 'ShopSettingsRepository',
332
- useFactory: (options) => {
333
- return new ShopSettingsFirestoreRepository(options);
334
- },
335
- deps: ['FirestoreOptions'],
336
- },
337
- {
338
- provide: 'SubscriptionPaymentRepository',
339
- useFactory: (options, subscriptionRepository) => {
340
- return new SubscriptionPaymentFirestoreRepository(options, subscriptionRepository);
341
- },
342
- deps: ['FirestoreOptions', 'SubscriptionRepository'],
343
- },
344
- {
345
- provide: 'SubscriptionPlanRepository',
346
- useFactory: (options) => {
347
- return new SubscriptionPlanFirestoreRepository(options);
348
- },
349
- deps: ['FirestoreOptions'],
350
- },
351
- {
352
- provide: 'SubscriptionProductRepository',
353
- useFactory: (options) => {
354
- return new SubscriptionProductFirestoreRepository(options);
355
- },
356
- deps: ['FirestoreOptions'],
357
- },
358
- {
359
- provide: 'SubscriptionRepository',
360
- useFactory: (options) => {
361
- return new SubscriptionFirestoreRepository(options);
362
- },
363
- deps: ['FirestoreOptions'],
364
- },
365
- {
366
- provide: 'UserRepository',
367
- useFactory: (options) => {
368
- return new UserFirestoreRepository(options);
369
- },
370
- deps: ['FirestoreOptions'],
371
- },
372
- {
373
- provide: 'UserAddressRepository',
374
- useFactory: (options, userRepository) => {
375
- return new UserAddressFirestoreRepository(options, userRepository);
376
- },
377
- deps: ['FirestoreOptions', 'UserRepository'],
378
- },
379
- {
380
- provide: 'UserPaymentMethodRepository',
381
- useFactory: (options, userRepository) => {
382
- return new UserPaymentMethodFirestoreRepository(options, userRepository);
383
- },
384
- deps: ['FirestoreOptions', 'UserRepository'],
385
- },
386
- {
387
- provide: 'SubscriptionMaterializationRepository',
388
- useFactory: (options) => {
389
- return new SubscriptionMaterializationFirestoreRepository(options);
390
- },
391
- deps: ['FirestoreOptions'],
392
- },
393
- {
394
- provide: 'SubscriptionSummaryRepository',
395
- useFactory: (options) => {
396
- return new SubscriptionSummaryFirestoreRepository(options);
397
- },
398
- deps: ['FirestoreOptions'],
399
- },
400
- {
401
- provide: ProductVariantFirestoreRepository,
402
- useFactory: (options, productRepository) => {
403
- return new ProductVariantFirestoreRepository(options, productRepository);
404
- },
405
- deps: ['FirestoreOptions', ProductFirestoreRepository],
406
- },
407
- {
408
- provide: 'FileUploaderService',
409
- useFactory: (storage, baseUrl) => {
410
- return new FirebaseFileUploaderService(storage, baseUrl);
411
- },
412
- deps: [Storage, STORAGE_BASE_URL],
413
- },
414
- ], imports: [AngularElasticSeachModule,
415
- provideFirestore((injector) => {
416
- const platformId = injector.get(PLATFORM_ID);
417
- if (isPlatformServer(platformId))
418
- return getFirestore(injector.get(FirebaseApp));
419
- if (!MobileOperationSystemCheckerHelper.isAppleDevice())
420
- return getFirestore(injector.get(FirebaseApp));
421
- const firestore = initializeFirestore(injector.get(FirebaseApp), {
422
- experimentalForceLongPolling: true,
423
- localCache: memoryLocalCache(),
424
- });
425
- return firestore;
426
- }),
427
- provideStorage(() => getStorage())] });
428
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularFirestoreModule, decorators: [{
426
+ provideStorage(() => getStorage())] }); }
427
+ }
428
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularFirestoreModule, decorators: [{
429
429
  type: NgModule,
430
430
  args: [{
431
431
  imports: [
@@ -674,132 +674,132 @@ class AngularHasuraGraphQLModule {
674
674
  providers: [{ provide: HASURA_OPTIONS, useValue: options }],
675
675
  };
676
676
  }
677
- }
678
- AngularHasuraGraphQLModulefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
679
- AngularHasuraGraphQLModulemod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule });
680
- AngularHasuraGraphQLModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule, providers: [
681
- {
682
- provide: 'HasuraConfig',
683
- useFactory: (options, platformId) => ({
684
- endpoint: options.endpoint,
685
- authOptions: options.credentials,
686
- interceptors: {
687
- request: (request) => {
688
- if (isPlatformBrowser(platformId))
677
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularHasuraGraphQLModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
678
+ static { thismod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: AngularHasuraGraphQLModule }); }
679
+ static { thisinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularHasuraGraphQLModule, providers: [
680
+ {
681
+ provide: 'HasuraConfig',
682
+ useFactory: (options, platformId) => ({
683
+ endpoint: options.endpoint,
684
+ authOptions: options.credentials,
685
+ interceptors: {
686
+ request: (request) => {
687
+ if (isPlatformBrowser(platformId))
688
+ return request;
689
+ const interval = setInterval(() => { }, 100);
690
+ request.interval = interval;
689
691
  return request;
690
- const interval = setInterval(() => { }, 100);
691
- request.interval = interval;
692
- return request;
693
- },
694
- response: (response, request) => {
695
- if (isPlatformBrowser(platformId))
692
+ },
693
+ response: (response, request) => {
694
+ if (isPlatformBrowser(platformId))
695
+ return response;
696
+ clearInterval(request.interval);
696
697
  return response;
697
- clearInterval(request.interval);
698
- return response;
698
+ },
699
699
  },
700
+ }),
701
+ deps: [HASURA_OPTIONS, PLATFORM_ID],
702
+ },
703
+ {
704
+ provide: 'CategoryRepository',
705
+ useExisting: CategoryHasuraGraphQLRepository,
706
+ },
707
+ {
708
+ provide: CategoryHasuraGraphQLRepository,
709
+ useFactory: (options, productRepository, categoryFilterRepository) => {
710
+ return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
700
711
  },
701
- }),
702
- deps: [HASURA_OPTIONS, PLATFORM_ID],
703
- },
704
- {
705
- provide: 'CategoryRepository',
706
- useExisting: CategoryHasuraGraphQLRepository,
707
- },
708
- {
709
- provide: CategoryHasuraGraphQLRepository,
710
- useFactory: (options, productRepository, categoryFilterRepository) => {
711
- return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
712
- },
713
- deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
714
- },
715
- {
716
- provide: 'ProductRepository',
717
- useExisting: ProductHasuraGraphQLRepository,
718
- },
719
- {
720
- provide: ProductHasuraGraphQLRepository,
721
- useFactory: (hasuraConfig) => {
722
- return new ProductHasuraGraphQLRepository(hasuraConfig);
723
- },
724
- deps: ['HasuraConfig'],
725
- },
726
- {
727
- provide: 'ProductReviewsRepository',
728
- useExisting: ProductReviewsHasuraGraphQLRepository,
729
- },
730
- {
731
- provide: ProductReviewsHasuraGraphQLRepository,
732
- useFactory: (hasuraConfig) => {
733
- return new ProductReviewsHasuraGraphQLRepository(hasuraConfig);
734
- },
735
- deps: ['HasuraConfig'],
736
- },
737
- {
738
- provide: 'VariantRepository',
739
- useExisting: VariantHasuraGraphQLRepository,
740
- },
741
- {
742
- provide: VariantHasuraGraphQLRepository,
743
- useFactory: (hasuraConfig) => {
744
- return new VariantHasuraGraphQLRepository(hasuraConfig);
745
- },
746
- deps: ['HasuraConfig'],
747
- },
748
- {
749
- provide: 'CategoryFilterRepository',
750
- useExisting: CategoryFilterHasuraGraphQLRepository,
751
- },
752
- {
753
- provide: CategoryFilterHasuraGraphQLRepository,
754
- useFactory: (options) => {
755
- return new CategoryFilterHasuraGraphQLRepository(options);
756
- },
757
- deps: ['HasuraConfig'],
758
- },
759
- {
760
- provide: 'FilterOptionRepository',
761
- useExisting: FilterOptionHasuraGraphQLRepository,
762
- },
763
- {
764
- provide: FilterOptionHasuraGraphQLRepository,
765
- useFactory: (options) => {
766
- return new FilterOptionHasuraGraphQLRepository(options);
767
- },
768
- deps: ['HasuraConfig'],
769
- },
770
- {
771
- provide: 'FilterRepository',
772
- useExisting: FilterHasuraGraphQLRepository,
773
- },
774
- {
775
- provide: FilterHasuraGraphQLRepository,
776
- useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
777
- return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
778
- },
779
- deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
780
- },
781
- {
782
- provide: CategoryCollectionChildrenHasuraGraphQLRepository,
783
- useFactory: (options) => new CategoryCollectionChildrenHasuraGraphQLRepository(options),
784
- deps: ['HasuraConfig'],
785
- },
786
- {
787
- provide: 'CategoryCollectionChildrenRepository',
788
- useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
789
- },
790
- {
791
- provide: WishlistHasuraGraphQLRepository,
792
- useFactory: (options, categoryFilterRepository) => {
793
- return new WishlistHasuraGraphQLRepository(options, categoryFilterRepository);
794
- },
795
- deps: ['HasuraConfig', CategoryFilterHasuraGraphQLRepository],
796
- },
797
- {
798
- provide: 'WishlistRepository',
799
- useExisting: WishlistHasuraGraphQLRepository,
800
- },
801
- ] });
802
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule, decorators: [{
712
+ deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
713
+ },
714
+ {
715
+ provide: 'ProductRepository',
716
+ useExisting: ProductHasuraGraphQLRepository,
717
+ },
718
+ {
719
+ provide: ProductHasuraGraphQLRepository,
720
+ useFactory: (hasuraConfig) => {
721
+ return new ProductHasuraGraphQLRepository(hasuraConfig);
722
+ },
723
+ deps: ['HasuraConfig'],
724
+ },
725
+ {
726
+ provide: 'ProductReviewsRepository',
727
+ useExisting: ProductReviewsHasuraGraphQLRepository,
728
+ },
729
+ {
730
+ provide: ProductReviewsHasuraGraphQLRepository,
731
+ useFactory: (hasuraConfig) => {
732
+ return new ProductReviewsHasuraGraphQLRepository(hasuraConfig);
733
+ },
734
+ deps: ['HasuraConfig'],
735
+ },
736
+ {
737
+ provide: 'VariantRepository',
738
+ useExisting: VariantHasuraGraphQLRepository,
739
+ },
740
+ {
741
+ provide: VariantHasuraGraphQLRepository,
742
+ useFactory: (hasuraConfig) => {
743
+ return new VariantHasuraGraphQLRepository(hasuraConfig);
744
+ },
745
+ deps: ['HasuraConfig'],
746
+ },
747
+ {
748
+ provide: 'CategoryFilterRepository',
749
+ useExisting: CategoryFilterHasuraGraphQLRepository,
750
+ },
751
+ {
752
+ provide: CategoryFilterHasuraGraphQLRepository,
753
+ useFactory: (options) => {
754
+ return new CategoryFilterHasuraGraphQLRepository(options);
755
+ },
756
+ deps: ['HasuraConfig'],
757
+ },
758
+ {
759
+ provide: 'FilterOptionRepository',
760
+ useExisting: FilterOptionHasuraGraphQLRepository,
761
+ },
762
+ {
763
+ provide: FilterOptionHasuraGraphQLRepository,
764
+ useFactory: (options) => {
765
+ return new FilterOptionHasuraGraphQLRepository(options);
766
+ },
767
+ deps: ['HasuraConfig'],
768
+ },
769
+ {
770
+ provide: 'FilterRepository',
771
+ useExisting: FilterHasuraGraphQLRepository,
772
+ },
773
+ {
774
+ provide: FilterHasuraGraphQLRepository,
775
+ useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
776
+ return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
777
+ },
778
+ deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
779
+ },
780
+ {
781
+ provide: CategoryCollectionChildrenHasuraGraphQLRepository,
782
+ useFactory: (options) => new CategoryCollectionChildrenHasuraGraphQLRepository(options),
783
+ deps: ['HasuraConfig'],
784
+ },
785
+ {
786
+ provide: 'CategoryCollectionChildrenRepository',
787
+ useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
788
+ },
789
+ {
790
+ provide: WishlistHasuraGraphQLRepository,
791
+ useFactory: (options, categoryFilterRepository) => {
792
+ return new WishlistHasuraGraphQLRepository(options, categoryFilterRepository);
793
+ },
794
+ deps: ['HasuraConfig', CategoryFilterHasuraGraphQLRepository],
795
+ },
796
+ {
797
+ provide: 'WishlistRepository',
798
+ useExisting: WishlistHasuraGraphQLRepository,
799
+ },
800
+ ] }); }
801
+ }
802
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularHasuraGraphQLModule, decorators: [{
803
803
  type: NgModule,
804
804
  args: [{
805
805
  providers: [
@@ -948,15 +948,15 @@ class AuthService {
948
948
  getFireUser() {
949
949
  return authState(this.angularFireAuth).pipe(catchError(() => of(null)));
950
950
  }
951
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AuthService, deps: [{ token: i1.Auth }, { token: 'UserRepository' }], target: i0.ɵɵFactoryTarget.Injectable }); }
952
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AuthService }); }
951
953
  }
952
- AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AuthService, deps: [{ token: i1.Auth }, { token: 'UserRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
953
- AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AuthService });
954
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AuthService, decorators: [{
954
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AuthService, decorators: [{
955
955
  type: Injectable
956
- }], ctorParameters: function () { return [{ type: i1.Auth }, { type: undefined, decorators: [{
956
+ }], ctorParameters: () => [{ type: i1.Auth }, { type: undefined, decorators: [{
957
957
  type: Inject,
958
958
  args: ['UserRepository']
959
- }] }]; } });
959
+ }] }] });
960
960
 
961
961
  class CouponService {
962
962
  constructor(couponRepository, defaultShop, orderRepository, categoryRepository) {
@@ -1001,6 +1001,11 @@ class CouponService {
1001
1001
  if (!validUser)
1002
1002
  throw 'Usuário não elegível.';
1003
1003
  const couponUseLimits = this.getCouponUseLimits(coupon, checkoutType, checkout.user);
1004
+ if (couponUseLimits.firstOrder) {
1005
+ const ordersUser = await this.getOrdersFromUser(checkout.user.email.toLocaleLowerCase());
1006
+ if (couponUseLimits.firstOrder && ordersUser.length >= 1)
1007
+ throw 'Limite de uso atingido';
1008
+ }
1004
1009
  if (!couponUseLimits.unlimited || couponUseLimits.limitedPerUser) {
1005
1010
  const orders = await this.getOrdersWithCoupon(coupon);
1006
1011
  if (!couponUseLimits.unlimited && couponUseLimits.total && orders.length >= couponUseLimits.total)
@@ -1074,9 +1079,11 @@ class CouponService {
1074
1079
  if (!user || coupon.exclusivityType.includes(Exclusivities.ALL_USERS))
1075
1080
  return true;
1076
1081
  let userTypes = [];
1077
- if (coupon.exclusivityType.includes(Exclusivities.COLLABORATORS) && this.emailIsFromCollaborator(user.email))
1082
+ if (coupon.exclusivityType.includes(Exclusivities.COLLABORATORS) &&
1083
+ this.emailIsFromCollaborator(user.email.toLocaleLowerCase()))
1078
1084
  userTypes.push(Exclusivities.COLLABORATORS);
1079
- if (coupon.exclusivityType.includes(Exclusivities.SPECIFIC_USER) && coupon.userExclusiveEmail.includes(user.email))
1085
+ if (coupon.exclusivityType.includes(Exclusivities.SPECIFIC_USER) &&
1086
+ coupon.userExclusiveEmail.includes(user.email.toLocaleLowerCase()))
1080
1087
  userTypes.push(Exclusivities.SPECIFIC_USER);
1081
1088
  if (coupon.exclusivityType.includes(Exclusivities.ACTIVE_SUBSCRIBER) &&
1082
1089
  user.isSubscriber &&
@@ -1134,6 +1141,16 @@ class CouponService {
1134
1141
  })
1135
1142
  .then((result) => result.data);
1136
1143
  }
1144
+ async getOrdersFromUser(email) {
1145
+ return await this.orderRepository
1146
+ .find({
1147
+ filters: {
1148
+ user: { email: { operator: Where.EQUALS, value: email } },
1149
+ payment: { status: 'paid' },
1150
+ },
1151
+ })
1152
+ .then((result) => result.data);
1153
+ }
1137
1154
  countOrdersWithUser(orders, email) {
1138
1155
  return orders.filter((o) => o.user.email == email).length;
1139
1156
  }
@@ -1147,15 +1164,15 @@ class CouponService {
1147
1164
  }
1148
1165
  return couponUseLimits;
1149
1166
  }
1167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CouponService, deps: [{ token: 'CouponRepository' }, { token: DEFAULT_SHOP }, { token: 'OrderRepository' }, { token: 'CategoryRepository' }], target: i0.ɵɵFactoryTarget.Injectable }); }
1168
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CouponService, providedIn: 'root' }); }
1150
1169
  }
1151
- CouponService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CouponService, deps: [{ token: 'CouponRepository' }, { token: DEFAULT_SHOP }, { token: 'OrderRepository' }, { token: 'CategoryRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
1152
- CouponService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CouponService, providedIn: 'root' });
1153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CouponService, decorators: [{
1170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CouponService, decorators: [{
1154
1171
  type: Injectable,
1155
1172
  args: [{
1156
1173
  providedIn: 'root',
1157
1174
  }]
1158
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1175
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1159
1176
  type: Inject,
1160
1177
  args: ['CouponRepository']
1161
1178
  }] }, { type: i1$2.Shops, decorators: [{
@@ -1167,7 +1184,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
1167
1184
  }] }, { type: undefined, decorators: [{
1168
1185
  type: Inject,
1169
1186
  args: ['CategoryRepository']
1170
- }] }]; } });
1187
+ }] }] });
1171
1188
 
1172
1189
  class CheckoutService {
1173
1190
  constructor(couponService, checkoutRepository, orderRepository, userRepository, defaultShop) {
@@ -1211,12 +1228,12 @@ class CheckoutService {
1211
1228
  cookie.set('checkoutId', checkout.id);
1212
1229
  return checkout;
1213
1230
  }
1231
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutService, deps: [{ token: CouponService }, { token: 'CheckoutRepository' }, { token: 'OrderRepository' }, { token: 'UserRepository' }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable }); }
1232
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutService }); }
1214
1233
  }
1215
- CheckoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService, deps: [{ token: CouponService }, { token: 'CheckoutRepository' }, { token: 'OrderRepository' }, { token: 'UserRepository' }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
1216
- CheckoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService });
1217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutService, decorators: [{
1234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutService, decorators: [{
1218
1235
  type: Injectable
1219
- }], ctorParameters: function () { return [{ type: CouponService }, { type: undefined, decorators: [{
1236
+ }], ctorParameters: () => [{ type: CouponService }, { type: undefined, decorators: [{
1220
1237
  type: Inject,
1221
1238
  args: ['CheckoutRepository']
1222
1239
  }] }, { type: undefined, decorators: [{
@@ -1228,7 +1245,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
1228
1245
  }] }, { type: i1$2.Shops, decorators: [{
1229
1246
  type: Inject,
1230
1247
  args: [DEFAULT_SHOP]
1231
- }] }]; } });
1248
+ }] }] });
1232
1249
 
1233
1250
  class CartService {
1234
1251
  constructor(authService, checkoutService, defaultShop, productRepository, categoryRepository, variantRepository, buy2WinRepository) {
@@ -1478,12 +1495,12 @@ class CartService {
1478
1495
  });
1479
1496
  });
1480
1497
  }
1498
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CartService, deps: [{ token: AuthService }, { token: CheckoutService }, { token: DEFAULT_SHOP }, { token: 'ProductRepository' }, { token: 'CategoryRepository' }, { token: 'VariantRepository' }, { token: 'Buy2WinRepository' }], target: i0.ɵɵFactoryTarget.Injectable }); }
1499
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CartService }); }
1481
1500
  }
1482
- CartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CartService, deps: [{ token: AuthService }, { token: CheckoutService }, { token: DEFAULT_SHOP }, { token: 'ProductRepository' }, { token: 'CategoryRepository' }, { token: 'VariantRepository' }, { token: 'Buy2WinRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
1483
- CartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CartService });
1484
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CartService, decorators: [{
1501
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CartService, decorators: [{
1485
1502
  type: Injectable
1486
- }], ctorParameters: function () { return [{ type: AuthService }, { type: CheckoutService }, { type: i1$2.Shops, decorators: [{
1503
+ }], ctorParameters: () => [{ type: AuthService }, { type: CheckoutService }, { type: i1$2.Shops, decorators: [{
1487
1504
  type: Inject,
1488
1505
  args: [DEFAULT_SHOP]
1489
1506
  }] }, { type: undefined, decorators: [{
@@ -1498,7 +1515,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
1498
1515
  }] }, { type: i1$2.Buy2WinFirestoreRepository, decorators: [{
1499
1516
  type: Inject,
1500
1517
  args: ['Buy2WinRepository']
1501
- }] }]; } });
1518
+ }] }] });
1502
1519
 
1503
1520
  class NewCategoryStructureAdapter {
1504
1521
  constructor(categoryRepository) {
@@ -1528,15 +1545,15 @@ class NewCategoryStructureAdapter {
1528
1545
  ? this.categoryRepository.get({ id: category.id })
1529
1546
  : category;
1530
1547
  }
1548
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NewCategoryStructureAdapter, deps: [{ token: 'CategoryRepository' }], target: i0.ɵɵFactoryTarget.Injectable }); }
1549
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NewCategoryStructureAdapter }); }
1531
1550
  }
1532
- NewCategoryStructureAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NewCategoryStructureAdapter, deps: [{ token: 'CategoryRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
1533
- NewCategoryStructureAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NewCategoryStructureAdapter });
1534
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NewCategoryStructureAdapter, decorators: [{
1551
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NewCategoryStructureAdapter, decorators: [{
1535
1552
  type: Injectable
1536
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1553
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1537
1554
  type: Inject,
1538
1555
  args: ['CategoryRepository']
1539
- }] }]; } });
1556
+ }] }] });
1540
1557
 
1541
1558
  class OldCategoryStructureAdapter {
1542
1559
  constructor(categoryRepository) {
@@ -1548,15 +1565,15 @@ class OldCategoryStructureAdapter {
1548
1565
  : await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products);
1549
1566
  return { id: { operator: Where.IN, value: productsIds } };
1550
1567
  }
1568
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OldCategoryStructureAdapter, deps: [{ token: 'CategoryRepository' }], target: i0.ɵɵFactoryTarget.Injectable }); }
1569
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OldCategoryStructureAdapter }); }
1551
1570
  }
1552
- OldCategoryStructureAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OldCategoryStructureAdapter, deps: [{ token: 'CategoryRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
1553
- OldCategoryStructureAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OldCategoryStructureAdapter });
1554
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OldCategoryStructureAdapter, decorators: [{
1571
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OldCategoryStructureAdapter, decorators: [{
1555
1572
  type: Injectable
1556
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1573
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1557
1574
  type: Inject,
1558
1575
  args: ['CategoryRepository']
1559
- }] }]; } });
1576
+ }] }] });
1560
1577
 
1561
1578
  class CatalogService {
1562
1579
  constructor(productRepository, categoryStructureAdapter, shop, productIndex) {
@@ -1667,7 +1684,7 @@ class CatalogService {
1667
1684
  async findCatalogByTermAndSortByMostRevelant(options, limits) {
1668
1685
  const productIds = await this.findCatalogIdsByElasticSearch(options.term);
1669
1686
  const totalResult = await this.productRepository.findCatalog({
1670
- fields: ['id'],
1687
+ fields: ['id', 'stock'],
1671
1688
  filters: {
1672
1689
  id: { operator: Where.IN, value: productIds },
1673
1690
  ...this.buildFilterQuery(options?.filters || {}),
@@ -1678,9 +1695,13 @@ class CatalogService {
1678
1695
  distinct: ['brand'],
1679
1696
  },
1680
1697
  }, options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female');
1681
- const limitedProductId = totalResult.data
1682
- .slice(limits.offset, limits.offset + limits.limit)
1683
- .map((product) => product.id);
1698
+ const stockData = totalResult.data.filter((product) => product.stock.quantity > 0);
1699
+ const stockOut = totalResult.data.filter((product) => product.stock.quantity <= 0);
1700
+ const productIdsStock = productIds.filter((product) => stockData.some((result) => result.id == product));
1701
+ const productIdsStockOut = productIds.filter((product) => stockOut.some((result) => result.id == product));
1702
+ const limitedProductId = productIdsStock
1703
+ .concat(productIdsStockOut)
1704
+ .slice(limits.offset, limits.offset + limits.limit);
1684
1705
  const orderedId = productIds.filter((product) => limitedProductId.includes(product));
1685
1706
  const productResult = await this.productRepository.findCatalog({
1686
1707
  filters: {
@@ -1707,12 +1728,12 @@ class CatalogService {
1707
1728
  return [...new Set(sorted.map(({ _source }) => _source.id))];
1708
1729
  }));
1709
1730
  }
1731
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CatalogService, deps: [{ token: 'ProductRepository' }, { token: CATEGORY_STRUCTURE }, { token: DEFAULT_SHOP }, { token: i1$2.ProductsIndex }], target: i0.ɵɵFactoryTarget.Injectable }); }
1732
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CatalogService }); }
1710
1733
  }
1711
- CatalogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, deps: [{ token: 'ProductRepository' }, { token: CATEGORY_STRUCTURE }, { token: DEFAULT_SHOP }, { token: i1$2.ProductsIndex }], target: i0.ɵɵFactoryTarget.Injectable });
1712
- CatalogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService });
1713
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, decorators: [{
1734
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CatalogService, decorators: [{
1714
1735
  type: Injectable
1715
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1736
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1716
1737
  type: Inject,
1717
1738
  args: ['ProductRepository']
1718
1739
  }] }, { type: undefined, decorators: [{
@@ -1721,7 +1742,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
1721
1742
  }] }, { type: i1$2.Shops, decorators: [{
1722
1743
  type: Inject,
1723
1744
  args: [DEFAULT_SHOP]
1724
- }] }, { type: i1$2.ProductsIndex }]; } });
1745
+ }] }, { type: i1$2.ProductsIndex }] });
1725
1746
 
1726
1747
  class CategoryService {
1727
1748
  constructor(productRepository, categoryRepository, categoryFilterRepository, categoryStructureAdapter, shop) {
@@ -1747,12 +1768,12 @@ class CategoryService {
1747
1768
  .find({ filters: { categoryId: +category.id } })
1748
1769
  .then(({ data }) => data.map((categoryFilter) => categoryFilter.filter));
1749
1770
  }
1771
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CategoryService, deps: [{ token: 'ProductRepository' }, { token: 'CategoryRepository' }, { token: 'CategoryFilterRepository' }, { token: CATEGORY_STRUCTURE }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable }); }
1772
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CategoryService }); }
1750
1773
  }
1751
- CategoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, deps: [{ token: 'ProductRepository' }, { token: 'CategoryRepository' }, { token: 'CategoryFilterRepository' }, { token: CATEGORY_STRUCTURE }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
1752
- CategoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService });
1753
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, decorators: [{
1774
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CategoryService, decorators: [{
1754
1775
  type: Injectable
1755
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1776
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1756
1777
  type: Inject,
1757
1778
  args: ['ProductRepository']
1758
1779
  }] }, { type: undefined, decorators: [{
@@ -1767,7 +1788,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
1767
1788
  }] }, { type: i1$2.Shops, decorators: [{
1768
1789
  type: Inject,
1769
1790
  args: [DEFAULT_SHOP]
1770
- }] }]; } });
1791
+ }] }] });
1771
1792
 
1772
1793
  var ProductSorts;
1773
1794
  (function (ProductSorts) {
@@ -1873,12 +1894,12 @@ class WishlistService {
1873
1894
  }
1874
1895
  return wishlist;
1875
1896
  }
1897
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WishlistService, deps: [{ token: 'WishlistRepository' }, { token: 'CategoryRepository' }, { token: DEFAULT_SHOP }, { token: 'ProductRepository' }, { token: 'CategoryFilterRepository' }, { token: i1$2.ProductsIndex }], target: i0.ɵɵFactoryTarget.Injectable }); }
1898
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WishlistService }); }
1876
1899
  }
1877
- WishlistService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: WishlistService, deps: [{ token: 'WishlistRepository' }, { token: 'CategoryRepository' }, { token: DEFAULT_SHOP }, { token: 'ProductRepository' }, { token: 'CategoryFilterRepository' }, { token: i1$2.ProductsIndex }], target: i0.ɵɵFactoryTarget.Injectable });
1878
- WishlistService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: WishlistService });
1879
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: WishlistService, decorators: [{
1900
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WishlistService, decorators: [{
1880
1901
  type: Injectable
1881
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1902
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1882
1903
  type: Inject,
1883
1904
  args: ['WishlistRepository']
1884
1905
  }] }, { type: undefined, decorators: [{
@@ -1893,7 +1914,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
1893
1914
  }] }, { type: undefined, decorators: [{
1894
1915
  type: Inject,
1895
1916
  args: ['CategoryFilterRepository']
1896
- }] }, { type: i1$2.ProductsIndex }]; } });
1917
+ }] }, { type: i1$2.ProductsIndex }] });
1897
1918
 
1898
1919
  class CheckoutSubscriptionService {
1899
1920
  constructor(checkoutSubscriptionRepository, subscriptionRepository, couponService) {
@@ -1927,18 +1948,18 @@ class CheckoutSubscriptionService {
1927
1948
  calcDiscountSubscription(coupon) {
1928
1949
  return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()));
1929
1950
  }
1951
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutSubscriptionService, deps: [{ token: 'CheckoutSubscriptionRepository' }, { token: 'SubscriptionRepository' }, { token: CouponService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1952
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutSubscriptionService }); }
1930
1953
  }
1931
- CheckoutSubscriptionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService, deps: [{ token: 'CheckoutSubscriptionRepository' }, { token: 'SubscriptionRepository' }, { token: CouponService }], target: i0.ɵɵFactoryTarget.Injectable });
1932
- CheckoutSubscriptionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService });
1933
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService, decorators: [{
1954
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutSubscriptionService, decorators: [{
1934
1955
  type: Injectable
1935
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1956
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1936
1957
  type: Inject,
1937
1958
  args: ['CheckoutSubscriptionRepository']
1938
1959
  }] }, { type: undefined, decorators: [{
1939
1960
  type: Inject,
1940
1961
  args: ['SubscriptionRepository']
1941
- }] }, { type: CouponService }]; } });
1962
+ }] }, { type: CouponService }] });
1942
1963
 
1943
1964
  class UtilHelper {
1944
1965
  static createSlug(name) {
@@ -1995,7 +2016,11 @@ class HomeShopService {
1995
2016
  getHomeData() {
1996
2017
  return this.getHomeConfiguration().pipe(map((home) => (home?.data?.expiresAt > new Date() ? home : null)), concatMap((home) => home
1997
2018
  ? of(home)
1998
- : forkJoin([this.getDiscoverProducts(), this.getFeaturedProducts(), this.getVerticalProducts()]).pipe(map(([discoverProducts, featuredProducts, verticalProducts]) => ({
2019
+ : forkJoin([
2020
+ this.getDiscoverProducts(this.gender),
2021
+ this.getFeaturedProducts(this.gender),
2022
+ this.getVerticalProducts(this.gender),
2023
+ ]).pipe(map(([discoverProducts, featuredProducts, verticalProducts]) => ({
1999
2024
  discoverProducts,
2000
2025
  featuredProducts,
2001
2026
  verticalProducts,
@@ -2017,15 +2042,18 @@ class HomeShopService {
2017
2042
  getMinValueForFreeShipping() {
2018
2043
  return this.getHomeConfiguration().pipe(map((home) => home.minValueForFreeShipping));
2019
2044
  }
2020
- getDiscoverProducts() {
2021
- return this.getHomeConfiguration().pipe(concatMap((home) => from(this.categoryRepository.getCategoriesForHome(home.discoverCategories)).pipe(map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)))));
2045
+ getDiscoverProducts(gender) {
2046
+ return this.getHomeConfiguration().pipe(concatMap((home) => from(this.categoryRepository.getCategoriesForHome(home.discoverCategories, undefined, gender)).pipe(map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)))));
2022
2047
  }
2023
- getFeaturedProducts() {
2024
- return this.getHomeConfiguration().pipe(concatMap((home) => from(this.categoryRepository.getCategoriesForHome(home.featuredCategories)).pipe(map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)))));
2048
+ getFeaturedProducts(gender) {
2049
+ return this.getHomeConfiguration().pipe(concatMap((home) => from(this.categoryRepository.getCategoriesForHome(home.featuredCategories, undefined, gender)).pipe(map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)))));
2025
2050
  }
2026
- getVerticalProducts() {
2051
+ getVerticalProducts(gender) {
2027
2052
  return this.getHomeConfiguration().pipe(concatMap((home) => forkJoin(home.verticalCarousels.filter(Boolean).map((id) => from(this.categoryRepository.get({ id })).pipe(concatMap((category) => from(this.productRepository.find({
2028
- filters: { categories: { operator: Where.IN, value: [category.id] } },
2053
+ filters: {
2054
+ categories: { operator: Where.IN, value: [category.id] },
2055
+ ...(gender ? { tags: { operator: Where.IN, value: [gender] } } : {}),
2056
+ },
2029
2057
  limits: { limit: 12 },
2030
2058
  })).pipe(map((products) => ({ category, products })))), map(({ category, products }) => ({ category, products: products.data })), map(this.buildCategoryGroupWithRequiredData))))));
2031
2059
  }
@@ -2047,12 +2075,15 @@ class HomeShopService {
2047
2075
  data,
2048
2076
  })).pipe(tap(() => (this.homeConfiguration.data = data)), map(() => this.homeConfiguration));
2049
2077
  }
2078
+ get gender() {
2079
+ return this.homeId === 'mens_market' ? 'masculino' : undefined;
2080
+ }
2081
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HomeShopService, deps: [{ token: 'CategoryRepository' }, { token: 'HomeRepository' }, { token: 'ProductRepository' }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable }); }
2082
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HomeShopService }); }
2050
2083
  }
2051
- HomeShopService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: HomeShopService, deps: [{ token: 'CategoryRepository' }, { token: 'HomeRepository' }, { token: 'ProductRepository' }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
2052
- HomeShopService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: HomeShopService });
2053
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: HomeShopService, decorators: [{
2084
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HomeShopService, decorators: [{
2054
2085
  type: Injectable
2055
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
2086
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
2056
2087
  type: Inject,
2057
2088
  args: ['CategoryRepository']
2058
2089
  }] }, { type: undefined, decorators: [{
@@ -2064,7 +2095,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
2064
2095
  }] }, { type: i1$2.Shops, decorators: [{
2065
2096
  type: Inject,
2066
2097
  args: [DEFAULT_SHOP]
2067
- }] }]; } });
2098
+ }] }] });
2068
2099
 
2069
2100
  class OrderService {
2070
2101
  constructor(angularFirestore, orderRepository) {
@@ -2078,15 +2109,15 @@ class OrderService {
2078
2109
  .subscribe((doc) => this.orderSubject.next(doc));
2079
2110
  return this.orderSubject;
2080
2111
  }
2112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OrderService, deps: [{ token: i1$1.Firestore }, { token: 'OrderRepository' }], target: i0.ɵɵFactoryTarget.Injectable }); }
2113
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OrderService }); }
2081
2114
  }
2082
- OrderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderService, deps: [{ token: i1$1.Firestore }, { token: 'OrderRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
2083
- OrderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderService });
2084
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderService, decorators: [{
2115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OrderService, decorators: [{
2085
2116
  type: Injectable
2086
- }], ctorParameters: function () { return [{ type: i1$1.Firestore }, { type: i1$2.OrderFirestoreRepository, decorators: [{
2117
+ }], ctorParameters: () => [{ type: i1$1.Firestore }, { type: i1$2.OrderFirestoreRepository, decorators: [{
2087
2118
  type: Inject,
2088
2119
  args: ['OrderRepository']
2089
- }] }]; } });
2120
+ }] }] });
2090
2121
 
2091
2122
  class ShippingService {
2092
2123
  constructor(http, apiUrl, homeService) {
@@ -2164,15 +2195,15 @@ class ShippingService {
2164
2195
  }
2165
2196
  return false;
2166
2197
  }
2198
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ShippingService, deps: [{ token: i1$3.HttpClient }, { token: BACKEND_URL }, { token: HomeShopService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2199
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ShippingService }); }
2167
2200
  }
2168
- ShippingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ShippingService, deps: [{ token: i1$3.HttpClient }, { token: BACKEND_URL }, { token: HomeShopService }], target: i0.ɵɵFactoryTarget.Injectable });
2169
- ShippingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ShippingService });
2170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ShippingService, decorators: [{
2201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ShippingService, decorators: [{
2171
2202
  type: Injectable
2172
- }], ctorParameters: function () { return [{ type: i1$3.HttpClient }, { type: undefined, decorators: [{
2203
+ }], ctorParameters: () => [{ type: i1$3.HttpClient }, { type: undefined, decorators: [{
2173
2204
  type: Inject,
2174
2205
  args: [BACKEND_URL]
2175
- }] }, { type: HomeShopService }]; } });
2206
+ }] }, { type: HomeShopService }] });
2176
2207
 
2177
2208
  class AngularConnectModule {
2178
2209
  static initializeApp(defaultShop, options, nameOrConfig) {
@@ -2195,45 +2226,45 @@ class AngularConnectModule {
2195
2226
  ],
2196
2227
  };
2197
2228
  }
2229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularConnectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2230
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: AngularConnectModule, imports: [i1$4.FirebaseAppModule, AngularElasticSeachModule,
2231
+ AngularFirebaseAuthModule,
2232
+ AngularFirestoreModule,
2233
+ AngularHasuraGraphQLModule] }); }
2234
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularConnectModule, providers: [
2235
+ AuthService,
2236
+ CartService,
2237
+ CatalogService,
2238
+ CategoryService,
2239
+ CheckoutService,
2240
+ CheckoutSubscriptionService,
2241
+ CouponService,
2242
+ HomeShopService,
2243
+ OrderService,
2244
+ ShippingService,
2245
+ WishlistService,
2246
+ {
2247
+ provide: UpdateUserImage,
2248
+ useFactory: (userRepository, fileUploader) => {
2249
+ return new UpdateUserImage(userRepository, fileUploader);
2250
+ },
2251
+ deps: ['UserRepository', 'FileUploaderService'],
2252
+ },
2253
+ ], imports: [provideFirebaseApp((injector) => {
2254
+ const appName = injector.get(FIREBASE_APP_NAME) || '[DEFAULT]';
2255
+ try {
2256
+ return getApp(appName);
2257
+ }
2258
+ catch (error) {
2259
+ return initializeApp(injector.get(FIREBASE_OPTIONS), appName);
2260
+ }
2261
+ }),
2262
+ AngularElasticSeachModule,
2263
+ AngularFirebaseAuthModule,
2264
+ AngularFirestoreModule,
2265
+ AngularHasuraGraphQLModule] }); }
2198
2266
  }
2199
- AngularConnectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularConnectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2200
- AngularConnectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularConnectModule, imports: [i1$4.FirebaseAppModule, AngularElasticSeachModule,
2201
- AngularFirebaseAuthModule,
2202
- AngularFirestoreModule,
2203
- AngularHasuraGraphQLModule] });
2204
- AngularConnectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularConnectModule, providers: [
2205
- AuthService,
2206
- CartService,
2207
- CatalogService,
2208
- CategoryService,
2209
- CheckoutService,
2210
- CheckoutSubscriptionService,
2211
- CouponService,
2212
- HomeShopService,
2213
- OrderService,
2214
- ShippingService,
2215
- WishlistService,
2216
- {
2217
- provide: UpdateUserImage,
2218
- useFactory: (userRepository, fileUploader) => {
2219
- return new UpdateUserImage(userRepository, fileUploader);
2220
- },
2221
- deps: ['UserRepository', 'FileUploaderService'],
2222
- },
2223
- ], imports: [provideFirebaseApp((injector) => {
2224
- const appName = injector.get(FIREBASE_APP_NAME) || '[DEFAULT]';
2225
- try {
2226
- return getApp(appName);
2227
- }
2228
- catch (error) {
2229
- return initializeApp(injector.get(FIREBASE_OPTIONS), appName);
2230
- }
2231
- }),
2232
- AngularElasticSeachModule,
2233
- AngularFirebaseAuthModule,
2234
- AngularFirestoreModule,
2235
- AngularHasuraGraphQLModule] });
2236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularConnectModule, decorators: [{
2267
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularConnectModule, decorators: [{
2237
2268
  type: NgModule,
2238
2269
  args: [{
2239
2270
  imports: [