@infrab4a/connect-angular 4.0.0-beta.48 → 4.0.0-beta.5

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 (74) hide show
  1. package/angular-connect.module.d.ts +0 -2
  2. package/angular-firestore.module.d.ts +1 -2
  3. package/consts/index.d.ts +0 -2
  4. package/esm2020/angular-connect.module.mjs +3 -19
  5. package/esm2020/angular-elastic-search.module.mjs +7 -3
  6. package/esm2020/angular-firestore.module.mjs +139 -240
  7. package/esm2020/angular-hasura-graphql.module.mjs +23 -108
  8. package/esm2020/consts/index.mjs +1 -3
  9. package/esm2020/index.mjs +3 -3
  10. package/esm2020/services/auth.service.mjs +3 -3
  11. package/esm2020/services/cart.service.mjs +23 -161
  12. package/esm2020/services/checkout-subscription.service.mjs +3 -5
  13. package/esm2020/services/checkout.service.mjs +5 -3
  14. package/esm2020/services/coupon.service.mjs +140 -132
  15. package/esm2020/services/errors/group-invalid-coupon.error.mjs +8 -0
  16. package/esm2020/services/errors/index.mjs +3 -0
  17. package/esm2020/services/errors/invalid-coupon.error.mjs +7 -0
  18. package/esm2020/services/index.mjs +3 -6
  19. package/fesm2015/infrab4a-connect-angular.mjs +1023 -1793
  20. package/fesm2015/infrab4a-connect-angular.mjs.map +1 -1
  21. package/fesm2020/infrab4a-connect-angular.mjs +887 -1635
  22. package/fesm2020/infrab4a-connect-angular.mjs.map +1 -1
  23. package/index.d.ts +2 -2
  24. package/package.json +3 -2
  25. package/services/cart.service.d.ts +2 -9
  26. package/services/coupon.service.d.ts +10 -13
  27. package/services/errors/group-invalid-coupon.error.d.ts +6 -0
  28. package/services/errors/index.d.ts +2 -0
  29. package/services/errors/invalid-coupon.error.d.ts +4 -0
  30. package/services/index.d.ts +2 -5
  31. package/consts/backend-url.const.d.ts +0 -1
  32. package/consts/category-structure.d.ts +0 -1
  33. package/esm2020/consts/backend-url.const.mjs +0 -2
  34. package/esm2020/consts/category-structure.mjs +0 -2
  35. package/esm2020/helpers/index.mjs +0 -2
  36. package/esm2020/helpers/mobile-operation-system-checker.helper.mjs +0 -7
  37. package/esm2020/services/catalog/adapters/category-structure.adapter.mjs +0 -2
  38. package/esm2020/services/catalog/adapters/index.mjs +0 -4
  39. package/esm2020/services/catalog/adapters/new-category-structure.adapter.mjs +0 -42
  40. package/esm2020/services/catalog/adapters/old-category-structure.adapter.mjs +0 -23
  41. package/esm2020/services/catalog/catalog.service.mjs +0 -98
  42. package/esm2020/services/catalog/category.service.mjs +0 -51
  43. package/esm2020/services/catalog/enums/index.mjs +0 -2
  44. package/esm2020/services/catalog/enums/product-sorts.enum.mjs +0 -11
  45. package/esm2020/services/catalog/index.mjs +0 -7
  46. package/esm2020/services/catalog/models/category-with-tree.model.mjs +0 -10
  47. package/esm2020/services/catalog/models/index.mjs +0 -2
  48. package/esm2020/services/catalog/types/index.mjs +0 -2
  49. package/esm2020/services/catalog/types/product-sort.type.mjs +0 -2
  50. package/esm2020/services/catalog/wishlist.service.mjs +0 -103
  51. package/esm2020/services/helpers/index.mjs +0 -2
  52. package/esm2020/services/helpers/util.service.mjs +0 -29
  53. package/esm2020/services/shipping.service.mjs +0 -96
  54. package/esm2020/services/types/shipping-methods.type.mjs +0 -2
  55. package/helpers/index.d.ts +0 -1
  56. package/helpers/mobile-operation-system-checker.helper.d.ts +0 -3
  57. package/services/catalog/adapters/category-structure.adapter.d.ts +0 -4
  58. package/services/catalog/adapters/index.d.ts +0 -3
  59. package/services/catalog/adapters/new-category-structure.adapter.d.ts +0 -14
  60. package/services/catalog/adapters/old-category-structure.adapter.d.ts +0 -10
  61. package/services/catalog/catalog.service.d.ts +0 -54
  62. package/services/catalog/category.service.d.ts +0 -15
  63. package/services/catalog/enums/index.d.ts +0 -1
  64. package/services/catalog/enums/product-sorts.enum.d.ts +0 -9
  65. package/services/catalog/index.d.ts +0 -6
  66. package/services/catalog/models/category-with-tree.model.d.ts +0 -4
  67. package/services/catalog/models/index.d.ts +0 -1
  68. package/services/catalog/types/index.d.ts +0 -1
  69. package/services/catalog/types/product-sort.type.d.ts +0 -2
  70. package/services/catalog/wishlist.service.d.ts +0 -25
  71. package/services/helpers/index.d.ts +0 -1
  72. package/services/helpers/util.service.d.ts +0 -7
  73. package/services/shipping.service.d.ts +0 -19
  74. package/services/types/shipping-methods.type.d.ts +0 -12
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export * from './angular-connect.module';
1
+ export * from './services';
2
2
  export * from './angular-firebase-auth.module';
3
3
  export * from './angular-firestore.module';
4
+ export * from './angular-connect.module';
4
5
  export * from './angular-hasura-graphql.module';
5
- export * from './services';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infrab4a/connect-angular",
3
- "version": "4.0.0-beta.48",
3
+ "version": "4.0.0-beta.5",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org"
6
6
  },
@@ -12,7 +12,8 @@
12
12
  "@angular/common": "^15.1.4",
13
13
  "@angular/core": "^15.1.4",
14
14
  "@angular/fire": "^7.5.0",
15
- "@infrab4a/connect": "^4.0.0-beta.44",
15
+ "@infrab4a/connect": "^4.0.0-beta.10",
16
+ "js-cookie": "^3.0.1",
16
17
  "rxjs": "^6.6.7"
17
18
  },
18
19
  "dependencies": {
@@ -1,4 +1,4 @@
1
- import { Buy2WinFirestoreRepository, CategoryRepository, LineItem, ProductRepository, Shops, User, VariantRepository } from '@infrab4a/connect';
1
+ import { LineItem, ProductRepository, Shops, User } from '@infrab4a/connect';
2
2
  import { Observable } from 'rxjs';
3
3
  import { AuthService } from './auth.service';
4
4
  import { CheckoutService } from './checkout.service';
@@ -12,11 +12,8 @@ export declare class CartService {
12
12
  private readonly checkoutService;
13
13
  private readonly defaultShop;
14
14
  private readonly productRepository;
15
- private readonly categoryRepository;
16
- private readonly variantRepository;
17
- private readonly buy2WinRepository;
18
15
  private cartSubject;
19
- constructor(authService: AuthService, checkoutService: CheckoutService, defaultShop: Shops, productRepository: ProductRepository, categoryRepository: CategoryRepository, variantRepository: VariantRepository, buy2WinRepository: Buy2WinFirestoreRepository);
16
+ constructor(authService: AuthService, checkoutService: CheckoutService, defaultShop: Shops, productRepository: ProductRepository);
20
17
  addItem(item: LineItem, quantity?: number): Observable<Cart>;
21
18
  decreaseItem(item: LineItem): Observable<Cart>;
22
19
  getCart(checkout?: RequiredCheckoutData): Observable<Cart>;
@@ -31,12 +28,8 @@ export declare class CartService {
31
28
  private updateLineItemInCart;
32
29
  private generateCartObject;
33
30
  private buildLineItem;
34
- private roundPrice;
35
- private getProductData;
36
31
  private getProductPrice;
37
32
  private checkMaxStock;
38
- getGifts(): Observable<Cart>;
39
- private giftToLineItems;
40
33
  static ɵfac: i0.ɵɵFactoryDeclaration<CartService, never>;
41
34
  static ɵprov: i0.ɵɵInjectableDeclaration<CartService>;
42
35
  }
@@ -1,28 +1,25 @@
1
- import { CategoryRepository, Checkout, CheckoutSubscription, CheckoutTypes, Coupon, CouponRepository, OrderRepository, Shops } from '@infrab4a/connect';
1
+ import { CategoryRepository, Checkout, CheckoutSubscription, CheckoutTypes, Coupon, CouponRepository, OrderRepository, Shops, SubscriptionRepository } from '@infrab4a/connect';
2
2
  import { Observable } from 'rxjs';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class CouponService {
5
5
  private readonly couponRepository;
6
6
  private readonly defaultShop;
7
7
  private readonly orderRepository;
8
+ private readonly subscriptionRepository;
8
9
  private readonly categoryRepository;
9
- constructor(couponRepository: CouponRepository, defaultShop: Shops, orderRepository: OrderRepository, categoryRepository: CategoryRepository);
10
- checkCoupon(nickname: string, checkoutType: CheckoutTypes, checkout: Partial<Checkout>, plan: string): Observable<Coupon>;
11
- private couponValidation;
12
- private couponRulesValidation;
10
+ constructor(couponRepository: CouponRepository, defaultShop: Shops, orderRepository: OrderRepository, subscriptionRepository: SubscriptionRepository, categoryRepository: CategoryRepository);
11
+ checkCoupon(nickname: string, userEmail: string, checkoutType: CheckoutTypes, plan?: string, checkout?: Partial<Checkout>, isSubscription?: boolean): Observable<Coupon>;
12
+ private emailIsFromCollaborator;
13
+ private checkCouponRules;
14
+ private isValidCoupon;
15
+ private checkCouponUseAndLimit;
13
16
  calcDiscountSubscription(coupon: Coupon, checkout: Partial<CheckoutSubscription>): Observable<number>;
14
17
  calcDiscountShopping(coupon: Coupon, checkout: Partial<Checkout>): Promise<number>;
15
- private calcDiscountByType;
18
+ private calcShoppingPercentageDiscount;
16
19
  private hasMinSubTotal;
17
20
  private hasProductCategories;
18
- private coupomUserValidation;
21
+ private userValidationAndSubscriptionStatus;
19
22
  private getCouponCategoriesId;
20
- private emailIsFromCollaborator;
21
- private getLineItensEligebleForDiscount;
22
- private calcCheckoutSubtotal;
23
- private getOrdersWithCoupon;
24
- private countOrdersWithUser;
25
- private getCouponUseLimits;
26
23
  static ɵfac: i0.ɵɵFactoryDeclaration<CouponService, never>;
27
24
  static ɵprov: i0.ɵɵInjectableDeclaration<CouponService>;
28
25
  }
@@ -0,0 +1,6 @@
1
+ import { CustomError } from 'ts-custom-error';
2
+ import { InvalidCouponError } from './invalid-coupon.error';
3
+ export declare class GroupInvalidCouponError extends CustomError {
4
+ readonly errors: InvalidCouponError[];
5
+ constructor(errors: InvalidCouponError[]);
6
+ }
@@ -0,0 +1,2 @@
1
+ export * from './invalid-coupon.error';
2
+ export * from './group-invalid-coupon.error';
@@ -0,0 +1,4 @@
1
+ import { CustomError } from 'ts-custom-error';
2
+ export declare class InvalidCouponError extends CustomError {
3
+ constructor(message: string);
4
+ }
@@ -1,10 +1,7 @@
1
1
  export * from './auth.service';
2
2
  export * from './cart.service';
3
- export * from './catalog';
4
- export * from './checkout-subscription.service';
5
3
  export * from './checkout.service';
4
+ export * from './checkout-subscription.service';
5
+ export * from './order.service';
6
6
  export * from './coupon.service';
7
- export * from './helpers';
8
7
  export * from './home-shop.service';
9
- export * from './order.service';
10
- export * from './shipping.service';
@@ -1 +0,0 @@
1
- export declare const BACKEND_URL = "BACKEND_URL";
@@ -1 +0,0 @@
1
- export declare const CATEGORY_STRUCTURE = "CATEGORY_STRUCTURE";
@@ -1,2 +0,0 @@
1
- export const BACKEND_URL = 'BACKEND_URL';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC11cmwuY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2NvbnN0cy9iYWNrZW5kLXVybC5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEJBQ0tFTkRfVVJMID0gJ0JBQ0tFTkRfVVJMJyJdfQ==
@@ -1,2 +0,0 @@
1
- export const CATEGORY_STRUCTURE = 'CATEGORY_STRUCTURE';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktc3RydWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9jb25zdHMvY2F0ZWdvcnktc3RydWN0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLG9CQUFvQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENBVEVHT1JZX1NUUlVDVFVSRSA9ICdDQVRFR09SWV9TVFJVQ1RVUkUnXG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './mobile-operation-system-checker.helper';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2hlbHBlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQ0FBMEMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9iaWxlLW9wZXJhdGlvbi1zeXN0ZW0tY2hlY2tlci5oZWxwZXInXG4iXX0=
@@ -1,7 +0,0 @@
1
- export class MobileOperationSystemCheckerHelper {
2
- static isAppleDevice() {
3
- return (['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator?.platform) ||
4
- (navigator?.userAgent?.includes?.('Mac') && 'ontouchend' in (document || {})));
5
- }
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLW9wZXJhdGlvbi1zeXN0ZW0tY2hlY2tlci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2hlbHBlcnMvbW9iaWxlLW9wZXJhdGlvbi1zeXN0ZW0tY2hlY2tlci5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGtDQUFrQztJQUM3QyxNQUFNLENBQUMsYUFBYTtRQUNsQixPQUFPLENBQ0wsQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FDekYsU0FBUyxFQUFFLFFBQVEsQ0FDcEI7WUFDRCxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksWUFBWSxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQzlFLENBQUE7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTW9iaWxlT3BlcmF0aW9uU3lzdGVtQ2hlY2tlckhlbHBlciB7XG4gIHN0YXRpYyBpc0FwcGxlRGV2aWNlKCkge1xuICAgIHJldHVybiAoXG4gICAgICBbJ2lQYWQgU2ltdWxhdG9yJywgJ2lQaG9uZSBTaW11bGF0b3InLCAnaVBvZCBTaW11bGF0b3InLCAnaVBhZCcsICdpUGhvbmUnLCAnaVBvZCddLmluY2x1ZGVzKFxuICAgICAgICBuYXZpZ2F0b3I/LnBsYXRmb3JtLFxuICAgICAgKSB8fFxuICAgICAgKG5hdmlnYXRvcj8udXNlckFnZW50Py5pbmNsdWRlcz8uKCdNYWMnKSAmJiAnb250b3VjaGVuZCcgaW4gKGRvY3VtZW50IHx8IHt9KSlcbiAgICApXG4gIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktc3RydWN0dXJlLmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvYWRhcHRlcnMvY2F0ZWdvcnktc3RydWN0dXJlLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhdGVnb3J5LCBQcm9kdWN0LCBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QvJ1xuXG5leHBvcnQgaW50ZXJmYWNlIENhdGVnb3J5U3RydWN0dXJlQWRhcHRlciB7XG4gIGJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnk6IENhdGVnb3J5KTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFByb2R1Y3Q+PlxufVxuIl19
@@ -1,4 +0,0 @@
1
- export * from './category-structure.adapter';
2
- export * from './new-category-structure.adapter';
3
- export * from './old-category-structure.adapter';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvYWRhcHRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxjQUFjLGtDQUFrQyxDQUFBO0FBQ2hELGNBQWMsa0NBQWtDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhdGVnb3J5LXN0cnVjdHVyZS5hZGFwdGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9uZXctY2F0ZWdvcnktc3RydWN0dXJlLmFkYXB0ZXInXG5leHBvcnQgKiBmcm9tICcuL29sZC1jYXRlZ29yeS1zdHJ1Y3R1cmUuYWRhcHRlcidcbiJdfQ==
@@ -1,42 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { isNil, Where, } from '@infrab4a/connect';
3
- import * as i0 from "@angular/core";
4
- export class NewCategoryStructureAdapter {
5
- constructor(categoryRepository, categoryCollectionChildrenRepository) {
6
- this.categoryRepository = categoryRepository;
7
- this.categoryCollectionChildrenRepository = categoryCollectionChildrenRepository;
8
- }
9
- async buildProductFilterByCategory(category) {
10
- const categoriesIds = (await this.isCollection(category))
11
- ? await this.getAllCategoriesIdFromCollection(category)
12
- : [...(await this.getAllCategoriesIdFromCategory(category)), category.id.toString()];
13
- return { category: { id: { operator: Where.IN, value: categoriesIds } } };
14
- }
15
- async getAllCategoriesIdFromCategory(category) {
16
- return this.categoryRepository
17
- .getChildren(+category.id)
18
- .then((categories) => categories.map((category) => category.id.toString()));
19
- }
20
- async getAllCategoriesIdFromCollection(category) {
21
- return this.categoryCollectionChildrenRepository
22
- .find({ filters: { collectionId: +category.id } })
23
- .then(({ data }) => data.map((categoryCollection) => categoryCollection.categoryId.toString()));
24
- }
25
- async isCollection(category) {
26
- return !isNil(category.isCollection)
27
- ? category.isCollection
28
- : this.categoryRepository.get({ id: category.id }).then((category) => category.isCollection);
29
- }
30
- }
31
- NewCategoryStructureAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NewCategoryStructureAdapter, deps: [{ token: 'CategoryRepository' }, { token: 'CategoryCollectionChildrenRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
32
- NewCategoryStructureAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NewCategoryStructureAdapter });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NewCategoryStructureAdapter, decorators: [{
34
- type: Injectable
35
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
36
- type: Inject,
37
- args: ['CategoryRepository']
38
- }] }, { type: undefined, decorators: [{
39
- type: Inject,
40
- args: ['CategoryCollectionChildrenRepository']
41
- }] }]; } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWNhdGVnb3J5LXN0cnVjdHVyZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2FkYXB0ZXJzL25ldy1jYXRlZ29yeS1zdHJ1Y3R1cmUuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBSUwsS0FBSyxFQUdMLEtBQUssR0FDTixNQUFNLG1CQUFtQixDQUFBOztBQUkxQixNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQ2lELGtCQUFzQyxFQUVwRSxvQ0FBMEU7UUFGNUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUVwRSx5Q0FBb0MsR0FBcEMsb0NBQW9DLENBQXNDO0lBQzFGLENBQUM7SUFFSixLQUFLLENBQUMsNEJBQTRCLENBQUMsUUFBa0I7UUFDbkQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkQsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGdDQUFnQyxDQUFDLFFBQVEsQ0FBQztZQUN2RCxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsOEJBQThCLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFFdEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUE7SUFDM0UsQ0FBQztJQUVPLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxRQUFrQjtRQUM3RCxPQUFPLElBQUksQ0FBQyxrQkFBa0I7YUFDM0IsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQzthQUN6QixJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQy9FLENBQUM7SUFFTyxLQUFLLENBQUMsZ0NBQWdDLENBQUMsUUFBa0I7UUFDL0QsT0FBTyxJQUFJLENBQUMsb0NBQW9DO2FBQzdDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQ2pELElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNuRyxDQUFDO0lBRU8sS0FBSyxDQUFDLFlBQVksQ0FBQyxRQUFrQjtRQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDbEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ2hHLENBQUM7O3dIQS9CVSwyQkFBMkIsa0JBRTVCLG9CQUFvQixhQUNwQixzQ0FBc0M7NEhBSHJDLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVOzswQkFHTixNQUFNOzJCQUFDLG9CQUFvQjs7MEJBQzNCLE1BQU07MkJBQUMsc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIENhdGVnb3J5LFxuICBDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlblJlcG9zaXRvcnksXG4gIENhdGVnb3J5UmVwb3NpdG9yeSxcbiAgaXNOaWwsXG4gIFByb2R1Y3QsXG4gIFJlcG9zaXRvcnlGaW5kRmllbHRlcnMsXG4gIFdoZXJlLFxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcbmltcG9ydCB7IENhdGVnb3J5U3RydWN0dXJlQWRhcHRlciB9IGZyb20gJy4vY2F0ZWdvcnktc3RydWN0dXJlLmFkYXB0ZXInXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOZXdDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIgaW1wbGVtZW50cyBDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdDYXRlZ29yeVJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3J5UmVwb3NpdG9yeTogQ2F0ZWdvcnlSZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoJ0NhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuUmVwb3NpdG9yeScpXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlblJlcG9zaXRvcnk6IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuUmVwb3NpdG9yeSxcbiAgKSB7fVxuXG4gIGFzeW5jIGJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnk6IENhdGVnb3J5KTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFByb2R1Y3Q+PiB7XG4gICAgY29uc3QgY2F0ZWdvcmllc0lkcyA9IChhd2FpdCB0aGlzLmlzQ29sbGVjdGlvbihjYXRlZ29yeSkpXG4gICAgICA/IGF3YWl0IHRoaXMuZ2V0QWxsQ2F0ZWdvcmllc0lkRnJvbUNvbGxlY3Rpb24oY2F0ZWdvcnkpXG4gICAgICA6IFsuLi4oYXdhaXQgdGhpcy5nZXRBbGxDYXRlZ29yaWVzSWRGcm9tQ2F0ZWdvcnkoY2F0ZWdvcnkpKSwgY2F0ZWdvcnkuaWQudG9TdHJpbmcoKV1cblxuICAgIHJldHVybiB7IGNhdGVnb3J5OiB7IGlkOiB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IGNhdGVnb3JpZXNJZHMgfSB9IH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QWxsQ2F0ZWdvcmllc0lkRnJvbUNhdGVnb3J5KGNhdGVnb3J5OiBDYXRlZ29yeSk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeVJlcG9zaXRvcnlcbiAgICAgIC5nZXRDaGlsZHJlbigrY2F0ZWdvcnkuaWQpXG4gICAgICAudGhlbigoY2F0ZWdvcmllcykgPT4gY2F0ZWdvcmllcy5tYXAoKGNhdGVnb3J5KSA9PiBjYXRlZ29yeS5pZC50b1N0cmluZygpKSlcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QWxsQ2F0ZWdvcmllc0lkRnJvbUNvbGxlY3Rpb24oY2F0ZWdvcnk6IENhdGVnb3J5KTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuUmVwb3NpdG9yeVxuICAgICAgLmZpbmQoeyBmaWx0ZXJzOiB7IGNvbGxlY3Rpb25JZDogK2NhdGVnb3J5LmlkIH0gfSlcbiAgICAgIC50aGVuKCh7IGRhdGEgfSkgPT4gZGF0YS5tYXAoKGNhdGVnb3J5Q29sbGVjdGlvbikgPT4gY2F0ZWdvcnlDb2xsZWN0aW9uLmNhdGVnb3J5SWQudG9TdHJpbmcoKSkpXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGlzQ29sbGVjdGlvbihjYXRlZ29yeTogQ2F0ZWdvcnkpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gIWlzTmlsKGNhdGVnb3J5LmlzQ29sbGVjdGlvbilcbiAgICAgID8gY2F0ZWdvcnkuaXNDb2xsZWN0aW9uXG4gICAgICA6IHRoaXMuY2F0ZWdvcnlSZXBvc2l0b3J5LmdldCh7IGlkOiBjYXRlZ29yeS5pZCB9KS50aGVuKChjYXRlZ29yeSkgPT4gY2F0ZWdvcnkuaXNDb2xsZWN0aW9uKVxuICB9XG59XG4iXX0=
@@ -1,23 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { Where } from '@infrab4a/connect';
3
- import * as i0 from "@angular/core";
4
- export class OldCategoryStructureAdapter {
5
- constructor(categoryRepository) {
6
- this.categoryRepository = categoryRepository;
7
- }
8
- async buildProductFilterByCategory(category) {
9
- const productsIds = category.products?.length
10
- ? category.products
11
- : await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products);
12
- return { id: { operator: Where.IN, value: productsIds } };
13
- }
14
- }
15
- OldCategoryStructureAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OldCategoryStructureAdapter, deps: [{ token: 'CategoryRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
16
- OldCategoryStructureAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OldCategoryStructureAdapter });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OldCategoryStructureAdapter, decorators: [{
18
- type: Injectable
19
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
20
- type: Inject,
21
- args: ['CategoryRepository']
22
- }] }]; } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2xkLWNhdGVnb3J5LXN0cnVjdHVyZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2FkYXB0ZXJzL29sZC1jYXRlZ29yeS1zdHJ1Y3R1cmUuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQWlFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBOztBQUl4RyxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQTJELGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQUcsQ0FBQztJQUVyRyxLQUFLLENBQUMsNEJBQTRCLENBQUMsUUFBa0I7UUFDbkQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNO1lBQzNDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUNuQixDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRTFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQTtJQUMzRCxDQUFDOzt3SEFUVSwyQkFBMkIsa0JBQ2xCLG9CQUFvQjs0SEFEN0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVU7OzBCQUVJLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENhdGVnb3J5LCBDYXRlZ29yeVJlcG9zaXRvcnksIFByb2R1Y3QsIFJlcG9zaXRvcnlGaW5kRmllbHRlcnMsIFdoZXJlIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgeyBDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIgfSBmcm9tICcuL2NhdGVnb3J5LXN0cnVjdHVyZS5hZGFwdGVyJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT2xkQ2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyIGltcGxlbWVudHMgQ2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyIHtcbiAgY29uc3RydWN0b3IoQEluamVjdCgnQ2F0ZWdvcnlSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeVJlcG9zaXRvcnk6IENhdGVnb3J5UmVwb3NpdG9yeSkge31cblxuICBhc3luYyBidWlsZFByb2R1Y3RGaWx0ZXJCeUNhdGVnb3J5KGNhdGVnb3J5OiBDYXRlZ29yeSk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRGaWVsdGVyczxQcm9kdWN0Pj4ge1xuICAgIGNvbnN0IHByb2R1Y3RzSWRzID0gY2F0ZWdvcnkucHJvZHVjdHM/Lmxlbmd0aFxuICAgICAgPyBjYXRlZ29yeS5wcm9kdWN0c1xuICAgICAgOiBhd2FpdCB0aGlzLmNhdGVnb3J5UmVwb3NpdG9yeS5nZXQoeyBpZDogY2F0ZWdvcnkuaWQgfSkudGhlbigoY2F0ZWdvcnlGb3VuZCkgPT4gY2F0ZWdvcnlGb3VuZC5wcm9kdWN0cylcblxuICAgIHJldHVybiB7IGlkOiB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IHByb2R1Y3RzSWRzIH0gfVxuICB9XG59XG4iXX0=
@@ -1,98 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { RoundProductPricesHelper, set, Shops, Where, } from '@infrab4a/connect';
3
- import { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@infrab4a/connect";
6
- export class CatalogService {
7
- constructor(productRepository, categoryStructureAdapter, shop) {
8
- this.productRepository = productRepository;
9
- this.categoryStructureAdapter = categoryStructureAdapter;
10
- this.shop = shop;
11
- this.buildFilterQuery = ({ clubDiscount, brands, prices, gender, tags, rate, customOptions, }) => {
12
- const filters = {};
13
- if (clubDiscount?.length)
14
- set(filters, 'price.subscriberDiscountPercentage', { operator: Where.IN, value: clubDiscount });
15
- if (brands?.length)
16
- filters.brand = { operator: Where.IN, value: brands };
17
- if (gender?.length)
18
- filters.tags = {
19
- operator: Where.IN,
20
- value: gender
21
- .map((genderOptions) => genderOptions === 'female' ? 'feminino' : genderOptions === 'male' ? 'masculino' : null)
22
- .filter(Boolean),
23
- };
24
- if (prices?.min || prices?.max)
25
- set(filters, prices.subscriberPrice ? 'price.subscriberPrice' : 'price.price', [
26
- ...(prices.min ? [{ operator: Where.GTE, value: Math.round(prices.min) }] : []),
27
- ...(prices.max ? [{ operator: Where.LTE, value: Math.ceil(prices.max) }] : []),
28
- ]);
29
- if (rate)
30
- filters.rate = { operator: Where.GTE, value: rate };
31
- if (tags?.length)
32
- filters.tags = { operator: Where.LIKE, value: tags };
33
- if (customOptions?.length)
34
- filters.filters = { operator: Where.LIKE, value: customOptions };
35
- return filters;
36
- };
37
- this.buildSortQuery = (sort) => {
38
- if (!sort || sort === 'most-relevant')
39
- return {};
40
- if (sort === 'best-sellers')
41
- return { shoppingCount: 'desc' };
42
- if (sort === 'biggest-price')
43
- return { price: 'desc' };
44
- if (sort === 'lowest-price')
45
- return { price: 'asc' };
46
- if (sort === 'best-rating')
47
- return { rate: 'desc' };
48
- if (sort === 'news')
49
- return { createdAt: 'desc' };
50
- };
51
- this.buildLimitQuery = (options) => {
52
- const limit = options?.perPage || 20;
53
- return {
54
- limit,
55
- offset: ((options?.page || 1) - 1) * limit,
56
- };
57
- };
58
- }
59
- async fetchProducts(category, options) {
60
- const limits = this.buildLimitQuery(options);
61
- return await this.productRepository
62
- .findCatalog({
63
- filters: {
64
- ...(await this.categoryStructureAdapter.buildProductFilterByCategory(category)),
65
- ...this.buildFilterQuery(options?.filters || {}),
66
- },
67
- ...(options?.sort ? { orderBy: this.buildSortQuery(options?.sort) } : {}),
68
- limits,
69
- options: { minimal: ['price'], maximum: ['price'] },
70
- }, options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female')
71
- .then(({ data, count: total, maximum, minimal }) => ({
72
- products: { data: data.map((product) => RoundProductPricesHelper.roundProductPrices(product)), total },
73
- pages: Math.ceil(total / limits.limit),
74
- prices: {
75
- price: { min: +minimal?.price?.price?.toFixed(2), max: +maximum?.price?.price?.toFixed(2) },
76
- subscriberPrice: {
77
- min: +minimal?.price?.subscriberPrice?.toFixed(2),
78
- max: +maximum?.price?.subscriberPrice?.toFixed(2),
79
- },
80
- },
81
- }));
82
- }
83
- }
84
- 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 }], target: i0.ɵɵFactoryTarget.Injectable });
85
- CatalogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService });
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, decorators: [{
87
- type: Injectable
88
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
89
- type: Inject,
90
- args: ['ProductRepository']
91
- }] }, { type: undefined, decorators: [{
92
- type: Inject,
93
- args: [CATEGORY_STRUCTURE]
94
- }] }, { type: i1.Shops, decorators: [{
95
- type: Inject,
96
- args: [DEFAULT_SHOP]
97
- }] }]; } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2NhdGFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBT0wsd0JBQXdCLEVBQ3hCLEdBQUcsRUFDSCxLQUFLLEVBQ0wsS0FBSyxHQUNOLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTs7O0FBZ0MvRCxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUNnRCxpQkFBb0MsRUFDckMsd0JBQWtELEVBQ3hELElBQVc7UUFGSixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3JDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDeEQsU0FBSSxHQUFKLElBQUksQ0FBTztRQWdDNUMscUJBQWdCLEdBQUcsQ0FBQyxFQUMxQixZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sSUFBSSxFQUNKLElBQUksRUFDSixhQUFhLEdBQ1EsRUFBbUMsRUFBRTtZQUMxRCxNQUFNLE9BQU8sR0FBRyxFQUFxQyxDQUFBO1lBRXJELElBQUksWUFBWSxFQUFFLE1BQU07Z0JBQ3RCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQTtZQUNqRyxJQUFJLE1BQU0sRUFBRSxNQUFNO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUE7WUFDekUs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QUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN0QyxNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDM0YsZUFBZSxFQUFFO29CQUNmLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ2pELEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ2xEO2FBQ0Y7U0FDRixDQUFDLENBQUMsQ0FBQTtJQUNQLENBQUM7OzJHQWxDVSxjQUFjLGtCQUVmLG1CQUFtQixhQUNuQixrQkFBa0IsYUFDbEIsWUFBWTsrR0FKWCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsbUJBQW1COzswQkFDMUIsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ2F0ZWdvcnksXG4gIFByb2R1Y3QsXG4gIFByb2R1Y3RHZW5kZXIsXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxuICBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzLFxuICBSZXBvc2l0b3J5T3JkZXJCeSxcbiAgUm91bmRQcm9kdWN0UHJpY2VzSGVscGVyLFxuICBzZXQsXG4gIFNob3BzLFxuICBXaGVyZSxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgeyBDQVRFR09SWV9TVFJVQ1RVUkUsIERFRkFVTFRfU0hPUCB9IGZyb20gJy4uLy4uL2NvbnN0cydcbmltcG9ydCB7IENhdGVnb3J5U3RydWN0dXJlQWRhcHRlciB9IGZyb20gJy4vYWRhcHRlcnMnXG5pbXBvcnQgeyBQcm9kdWN0U29ydCB9IGZyb20gJy4vdHlwZXMvcHJvZHVjdC1zb3J0LnR5cGUnXG5cbnR5cGUgRmV0Y2hQcm9kdWN0c0ZpbHRlcnMgPSB7XG4gIGNsdWJEaXNjb3VudD86IG51bWJlcltdXG4gIGJyYW5kcz86IHN0cmluZ1tdXG4gIHByaWNlcz86IHsgbWluPzogbnVtYmVyOyBtYXg/OiBudW1iZXI7IHN1YnNjcmliZXJQcmljZT86IGJvb2xlYW4gfVxuICBnZW5kZXI/OiBQcm9kdWN0R2VuZGVyW11cbiAgcmF0ZT86IG51bWJlclxuICB0YWdzPzogW11cbiAgY3VzdG9tT3B0aW9ucz86IHN0cmluZ1tdXG59XG5cbnR5cGUgRmV0Y2hQcm9kdWN0c09wdGlvbnMgPSB7XG4gIHBhZ2U/OiBudW1iZXJcbiAgcGVyUGFnZT86IG51bWJlclxuICBmaWx0ZXJzPzogRmV0Y2hQcm9kdWN0c0ZpbHRlcnNcbiAgc29ydD86IFByb2R1Y3RTb3J0XG4gIG1haW5HZW5kZXI/OiBQcm9kdWN0R2VuZGVyXG59XG5cbnR5cGUgRmV0Y2hQcm9kdWN0c1Jlc3BvbnNlID0ge1xuICBwcm9kdWN0czogeyBkYXRhOiBQcm9kdWN0W107IHRvdGFsOiBudW1iZXIgfVxuICBwYWdlczogbnVtYmVyXG4gIHByaWNlczoge1xuICAgIHByaWNlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9XG4gICAgc3Vic2NyaWJlclByaWNlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhdGFsb2dTZXJ2aWNlPFQgZXh0ZW5kcyBDYXRlZ29yeSA9IENhdGVnb3J5PiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ1Byb2R1Y3RSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdFJlcG9zaXRvcnksXG4gICAgQEluamVjdChDQVRFR09SWV9TVFJVQ1RVUkUpIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyOiBDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIsXG4gICAgQEluamVjdChERUZBVUxUX1NIT1ApIHByaXZhdGUgcmVhZG9ubHkgc2hvcDogU2hvcHMsXG4gICkge31cblxuICBhc3luYyBmZXRjaFByb2R1Y3RzKGNhdGVnb3J5OiBULCBvcHRpb25zPzogRmV0Y2hQcm9kdWN0c09wdGlvbnMpOiBQcm9taXNlPEZldGNoUHJvZHVjdHNSZXNwb25zZT4ge1xuICAgIGNvbnN0IGxpbWl0cyA9IHRoaXMuYnVpbGRMaW1pdFF1ZXJ5KG9wdGlvbnMpXG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9kdWN0UmVwb3NpdG9yeVxuICAgICAgLmZpbmRDYXRhbG9nKFxuICAgICAgICB7XG4gICAgICAgICAgZmlsdGVyczoge1xuICAgICAgICAgICAgLi4uKGF3YWl0IHRoaXMuY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLmJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnkpKSxcbiAgICAgICAgICAgIC4uLnRoaXMuYnVpbGRGaWx0ZXJRdWVyeShvcHRpb25zPy5maWx0ZXJzIHx8IHt9KSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLihvcHRpb25zPy5zb3J0ID8geyBvcmRlckJ5OiB0aGlzLmJ1aWxkU29ydFF1ZXJ5KG9wdGlvbnM/LnNvcnQpIH0gOiB7fSksXG4gICAgICAgICAgbGltaXRzLFxuICAgICAgICAgIG9wdGlvbnM6IHsgbWluaW1hbDogWydwcmljZSddLCBtYXhpbXVtOiBbJ3ByaWNlJ10gfSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucz8ubWFpbkdlbmRlciB8fCB0aGlzLnNob3AgPT09IFNob3BzLk1FTlNNQVJLRVQgPyAnbWFsZScgOiAnZmVtYWxlJyxcbiAgICAgIClcbiAgICAgIC50aGVuKCh7IGRhdGEsIGNvdW50OiB0b3RhbCwgbWF4aW11bSwgbWluaW1hbCB9KSA9PiAoe1xuICAgICAgICBwcm9kdWN0czogeyBkYXRhOiBkYXRhLm1hcCgocHJvZHVjdCkgPT4gUm91bmRQcm9kdWN0UHJpY2VzSGVscGVyLnJvdW5kUHJvZHVjdFByaWNlcyhwcm9kdWN0KSksIHRvdGFsIH0sXG4gICAgICAgIHBhZ2VzOiBNYXRoLmNlaWwodG90YWwgLyBsaW1pdHMubGltaXQpLFxuICAgICAgICBwcmljZXM6IHtcbiAgICAgICAgICBwcmljZTogeyBtaW46ICttaW5pbWFsPy5wcmljZT8ucHJpY2U/LnRvRml4ZWQoMiksIG1heDogK21heGltdW0/LnByaWNlPy5wcmljZT8udG9GaXhlZCgyKSB9LFxuICAgICAgICAgIHN1YnNjcmliZXJQcmljZToge1xuICAgICAgICAgICAgbWluOiArbWluaW1hbD8ucHJpY2U/LnN1YnNjcmliZXJQcmljZT8udG9GaXhlZCgyKSxcbiAgICAgICAgICAgIG1heDogK21heGltdW0/LnByaWNlPy5zdWJzY3JpYmVyUHJpY2U/LnRvRml4ZWQoMiksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pKVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEZpbHRlclF1ZXJ5ID0gKHtcbiAgICBjbHViRGlzY291bnQsXG4gICAgYnJhbmRzLFxuICAgIHByaWNlcyxcbiAgICBnZW5kZXIsXG4gICAgdGFncyxcbiAgICByYXRlLFxuICAgIGN1c3RvbU9wdGlvbnMsXG4gIH06IEZldGNoUHJvZHVjdHNGaWx0ZXJzKTogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxQcm9kdWN0PiA9PiB7XG4gICAgY29uc3QgZmlsdGVycyA9IHt9IGFzIFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8UHJvZHVjdD5cblxuICAgIGlmIChjbHViRGlzY291bnQ/Lmxlbmd0aClcbiAgICAgIHNldChmaWx0ZXJzLCAncHJpY2Uuc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZScsIHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogY2x1YkRpc2NvdW50IH0pXG4gICAgaWYgKGJyYW5kcz8ubGVuZ3RoKSBmaWx0ZXJzLmJyYW5kID0geyBvcGVyYXRvcjogV2hlcmUuSU4sIHZhbHVlOiBicmFuZHMgfVxuICAgIGlmIChnZW5kZXI/Lmxlbmd0aClcbiAgICAgIGZpbHRlcnMudGFncyA9IHtcbiAgICAgICAgb3BlcmF0b3I6IFdoZXJlLklOLFxuICAgICAgICB2YWx1ZTogZ2VuZGVyXG4gICAgICAgICAgLm1hcCgoZ2VuZGVyT3B0aW9ucykgPT5cbiAgICAgICAgICAgIGdlbmRlck9wdGlvbnMgPT09ICdmZW1hbGUnID8gJ2ZlbWluaW5vJyA6IGdlbmRlck9wdGlvbnMgPT09ICdtYWxlJyA/ICdtYXNjdWxpbm8nIDogbnVsbCxcbiAgICAgICAgICApXG4gICAgICAgICAgLmZpbHRlcihCb29sZWFuKSxcbiAgICAgIH1cbiAgICBpZiAocHJpY2VzPy5taW4gfHwgcHJpY2VzPy5tYXgpXG4gICAgICBzZXQoZmlsdGVycywgcHJpY2VzLnN1YnNjcmliZXJQcmljZSA/ICdwcmljZS5zdWJzY3JpYmVyUHJpY2UnIDogJ3ByaWNlLnByaWNlJywgW1xuICAgICAgICAuLi4ocHJpY2VzLm1pbiA/IFt7IG9wZXJhdG9yOiBXaGVyZS5HVEUsIHZhbHVlOiBNYXRoLnJvdW5kKHByaWNlcy5taW4pIH1dIDogW10pLFxuICAgICAgICAuLi4ocHJpY2VzLm1heCA/IFt7IG9wZXJhdG9yOiBXaGVyZS5MVEUsIHZhbHVlOiBNYXRoLmNlaWwocHJpY2VzLm1heCkgfV0gOiBbXSksXG4gICAgICBdKVxuICAgIGlmIChyYXRlKSBmaWx0ZXJzLnJhdGUgPSB7IG9wZXJhdG9yOiBXaGVyZS5HVEUsIHZhbHVlOiByYXRlIH1cbiAgICBpZiAodGFncz8ubGVuZ3RoKSBmaWx0ZXJzLnRhZ3MgPSB7IG9wZXJhdG9yOiBXaGVyZS5MSUtFLCB2YWx1ZTogdGFncyB9XG4gICAgaWYgKGN1c3RvbU9wdGlvbnM/Lmxlbmd0aCkgZmlsdGVycy5maWx0ZXJzID0geyBvcGVyYXRvcjogV2hlcmUuTElLRSwgdmFsdWU6IGN1c3RvbU9wdGlvbnMgfVxuXG4gICAgcmV0dXJuIGZpbHRlcnNcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRTb3J0UXVlcnkgPSAoc29ydDogUHJvZHVjdFNvcnQpOiBSZXBvc2l0b3J5T3JkZXJCeTxQcm9kdWN0PiA9PiB7XG4gICAgaWYgKCFzb3J0IHx8IHNvcnQgPT09ICdtb3N0LXJlbGV2YW50JykgcmV0dXJuIHt9XG5cbiAgICBpZiAoc29ydCA9PT0gJ2Jlc3Qtc2VsbGVycycpIHJldHVybiB7IHNob3BwaW5nQ291bnQ6ICdkZXNjJyB9XG4gICAgaWYgKHNvcnQgPT09ICdiaWdnZXN0LXByaWNlJykgcmV0dXJuIHsgcHJpY2U6ICdkZXNjJyB9XG4gICAgaWYgKHNvcnQgPT09ICdsb3dlc3QtcHJpY2UnKSByZXR1cm4geyBwcmljZTogJ2FzYycgfVxuICAgIGlmIChzb3J0ID09PSAnYmVzdC1yYXRpbmcnKSByZXR1cm4geyByYXRlOiAnZGVzYycgfVxuICAgIGlmIChzb3J0ID09PSAnbmV3cycpIHJldHVybiB7IGNyZWF0ZWRBdDogJ2Rlc2MnIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRMaW1pdFF1ZXJ5ID0gKG9wdGlvbnM6IHsgcGFnZT86IG51bWJlcjsgcGVyUGFnZT86IG51bWJlciB9KTogeyBsaW1pdD86IG51bWJlcjsgb2Zmc2V0PzogbnVtYmVyIH0gPT4ge1xuICAgIGNvbnN0IGxpbWl0ID0gb3B0aW9ucz8ucGVyUGFnZSB8fCAyMFxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbWl0LFxuICAgICAgb2Zmc2V0OiAoKG9wdGlvbnM/LnBhZ2UgfHwgMSkgLSAxKSAqIGxpbWl0LFxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,51 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { Shops, } from '@infrab4a/connect';
3
- import { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@infrab4a/connect";
6
- export class CategoryService {
7
- constructor(productRepository, categoryRepository, categoryFilterRepository, categoryStructureAdapter, shop) {
8
- this.productRepository = productRepository;
9
- this.categoryRepository = categoryRepository;
10
- this.categoryFilterRepository = categoryFilterRepository;
11
- this.categoryStructureAdapter = categoryStructureAdapter;
12
- this.shop = shop;
13
- }
14
- async fetchBrands(category, mainGender) {
15
- const brands = await this.productRepository
16
- .findCatalog({
17
- filters: await this.categoryStructureAdapter.buildProductFilterByCategory(category),
18
- fields: ['brand'],
19
- }, mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female')
20
- .then(({ data }) => Object.keys(data.map((product) => product.brand).reduce((brands, brand) => ({ ...brands, [brand]: true }), {})));
21
- return this.categoryRepository
22
- .find({ filters: { brandCategory: true }, orderBy: { name: 'asc' } })
23
- .then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)));
24
- }
25
- async fetchFilterOptions(category, filters) {
26
- return await this.categoryFilterRepository
27
- .find({ filters: { categoryId: +category.id } })
28
- .then(({ data }) => data.map((categoryFilter) => categoryFilter.filter));
29
- }
30
- }
31
- 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 });
32
- CategoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, decorators: [{
34
- type: Injectable
35
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
36
- type: Inject,
37
- args: ['ProductRepository']
38
- }] }, { type: undefined, decorators: [{
39
- type: Inject,
40
- args: ['CategoryRepository']
41
- }] }, { type: undefined, decorators: [{
42
- type: Inject,
43
- args: ['CategoryFilterRepository']
44
- }] }, { type: undefined, decorators: [{
45
- type: Inject,
46
- args: [CATEGORY_STRUCTURE]
47
- }] }, { type: i1.Shops, decorators: [{
48
- type: Inject,
49
- args: [DEFAULT_SHOP]
50
- }] }]; } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFPTCxLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBOzs7QUFJL0QsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDZ0QsaUJBQW9DLEVBQ25DLGtCQUFzQyxFQUNoQyx3QkFBa0QsRUFDMUQsd0JBQWtELEVBQ3hELElBQVc7UUFKSixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ25DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDaEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUMxRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ3hELFNBQUksR0FBSixJQUFJLENBQU87SUFDakQsQ0FBQztJQUVKLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBa0IsRUFBRSxVQUEwQjtRQUM5RCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUI7YUFDeEMsV0FBVyxDQUNWO1lBQ0UsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQztZQUNuRixNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7U0FDbEIsRUFDRCxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FDakU7YUFDQSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUNoSCxDQUFBO1FBRUgsT0FBTyxJQUFJLENBQUMsa0JBQWtCO2FBQzNCLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQzthQUNwRSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzlGLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBa0IsRUFBRSxPQUFrQjtRQUM3RCxPQUFPLE1BQU0sSUFBSSxDQUFDLHdCQUF3QjthQUN2QyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQzthQUMvQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUM1RSxDQUFDOzs0R0EvQlUsZUFBZSxrQkFFaEIsbUJBQW1CLGFBQ25CLG9CQUFvQixhQUNwQiwwQkFBMEIsYUFDMUIsa0JBQWtCLGFBQ2xCLFlBQVk7Z0hBTlgsZUFBZTsyRkFBZixlQUFlO2tCQUQzQixVQUFVOzswQkFHTixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQywwQkFBMEI7OzBCQUNqQyxNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQ3pCLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDYXRlZ29yeSxcbiAgQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5LFxuICBDYXRlZ29yeVJlcG9zaXRvcnksXG4gIEZpbHRlcixcbiAgUHJvZHVjdEdlbmRlcixcbiAgUHJvZHVjdFJlcG9zaXRvcnksXG4gIFNob3BzLFxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcbmltcG9ydCB7IENBVEVHT1JZX1NUUlVDVFVSRSwgREVGQVVMVF9TSE9QIH0gZnJvbSAnLi4vLi4vY29uc3RzJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyIH0gZnJvbSAnLi9hZGFwdGVycydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhdGVnb3J5U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ1Byb2R1Y3RSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdFJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeVJlcG9zaXRvcnk6IENhdGVnb3J5UmVwb3NpdG9yeSxcbiAgICBASW5qZWN0KCdDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeTogQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoQ0FURUdPUllfU1RSVUNUVVJFKSBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3J5U3RydWN0dXJlQWRhcHRlcjogQ2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLFxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IHNob3A6IFNob3BzLFxuICApIHt9XG5cbiAgYXN5bmMgZmV0Y2hCcmFuZHMoY2F0ZWdvcnk6IENhdGVnb3J5LCBtYWluR2VuZGVyPzogUHJvZHVjdEdlbmRlcik6IFByb21pc2U8Q2F0ZWdvcnlbXT4ge1xuICAgIGNvbnN0IGJyYW5kcyA9IGF3YWl0IHRoaXMucHJvZHVjdFJlcG9zaXRvcnlcbiAgICAgIC5maW5kQ2F0YWxvZyhcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlcnM6IGF3YWl0IHRoaXMuY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLmJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnkpLFxuICAgICAgICAgIGZpZWxkczogWydicmFuZCddLFxuICAgICAgICB9LFxuICAgICAgICBtYWluR2VuZGVyIHx8IHRoaXMuc2hvcCA9PT0gU2hvcHMuTUVOU01BUktFVCA/ICdtYWxlJyA6ICdmZW1hbGUnLFxuICAgICAgKVxuICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhkYXRhLm1hcCgocHJvZHVjdCkgPT4gcHJvZHVjdC5icmFuZCkucmVkdWNlKChicmFuZHMsIGJyYW5kKSA9PiAoeyAuLi5icmFuZHMsIFticmFuZF06IHRydWUgfSksIHt9KSksXG4gICAgICApXG5cbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeVJlcG9zaXRvcnlcbiAgICAgIC5maW5kKHsgZmlsdGVyczogeyBicmFuZENhdGVnb3J5OiB0cnVlIH0sIG9yZGVyQnk6IHsgbmFtZTogJ2FzYycgfSB9KVxuICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PiBkYXRhLmZpbHRlcigoY2F0ZWdvcnkpID0+IGJyYW5kcy5pbmNsdWRlcyhjYXRlZ29yeS5jb25kaXRpb25zLmJyYW5kKSkpXG4gIH1cblxuICBhc3luYyBmZXRjaEZpbHRlck9wdGlvbnMoY2F0ZWdvcnk6IENhdGVnb3J5LCBmaWx0ZXJzPzogc3RyaW5nW10pOiBQcm9taXNlPEZpbHRlcltdPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5XG4gICAgICAuZmluZCh7IGZpbHRlcnM6IHsgY2F0ZWdvcnlJZDogK2NhdGVnb3J5LmlkIH0gfSlcbiAgICAgIC50aGVuKCh7IGRhdGEgfSkgPT4gZGF0YS5tYXAoKGNhdGVnb3J5RmlsdGVyKSA9PiBjYXRlZ29yeUZpbHRlci5maWx0ZXIpKVxuICB9XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './product-sorts.enum';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvZW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1zb3J0cy5lbnVtJ1xuIl19
@@ -1,11 +0,0 @@
1
- export var ProductSorts;
2
- (function (ProductSorts) {
3
- ProductSorts["MOST_RELEVANT"] = "most-relevant";
4
- ProductSorts["BEST_SELLER"] = "best-sellers";
5
- ProductSorts["BIGGEST_PRICE"] = "biggest-price";
6
- ProductSorts["LOWEST_PRICE"] = "lowest-price";
7
- ProductSorts["BIGGEST_DISCOUNT"] = "biggest-discount";
8
- ProductSorts["BEST_RATING"] = "best-rating";
9
- ProductSorts["NEWS"] = "news";
10
- })(ProductSorts || (ProductSorts = {}));
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zb3J0cy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2VudW1zL3Byb2R1Y3Qtc29ydHMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxZQVFYO0FBUkQsV0FBWSxZQUFZO0lBQ3RCLCtDQUErQixDQUFBO0lBQy9CLDRDQUE0QixDQUFBO0lBQzVCLCtDQUErQixDQUFBO0lBQy9CLDZDQUE2QixDQUFBO0lBQzdCLHFEQUFxQyxDQUFBO0lBQ3JDLDJDQUEyQixDQUFBO0lBQzNCLDZCQUFhLENBQUE7QUFDZixDQUFDLEVBUlcsWUFBWSxLQUFaLFlBQVksUUFRdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBQcm9kdWN0U29ydHMge1xuICBNT1NUX1JFTEVWQU5UID0gJ21vc3QtcmVsZXZhbnQnLFxuICBCRVNUX1NFTExFUiA9ICdiZXN0LXNlbGxlcnMnLFxuICBCSUdHRVNUX1BSSUNFID0gJ2JpZ2dlc3QtcHJpY2UnLFxuICBMT1dFU1RfUFJJQ0UgPSAnbG93ZXN0LXByaWNlJyxcbiAgQklHR0VTVF9ESVNDT1VOVCA9ICdiaWdnZXN0LWRpc2NvdW50JyxcbiAgQkVTVF9SQVRJTkcgPSAnYmVzdC1yYXRpbmcnLFxuICBORVdTID0gJ25ld3MnLFxufVxuIl19
@@ -1,7 +0,0 @@
1
- export * from './catalog.service';
2
- export * from './category.service';
3
- export * from './enums';
4
- export * from './models';
5
- export * from './types';
6
- export * from './wishlist.service';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsb0JBQW9CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhdGFsb2cuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vY2F0ZWdvcnkuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMnXG5leHBvcnQgKiBmcm9tICcuL21vZGVscydcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnXG5leHBvcnQgKiBmcm9tICcuL3dpc2hsaXN0LnNlcnZpY2UnXG4iXX0=
@@ -1,10 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Type } from 'class-transformer';
3
- import { Category } from '@infrab4a/connect';
4
- export class CategoryWithTree extends Category {
5
- }
6
- __decorate([
7
- Type(() => CategoryWithTree),
8
- __metadata("design:type", Array)
9
- ], CategoryWithTree.prototype, "children", void 0);
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktd2l0aC10cmVlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL21vZGVscy9jYXRlZ29yeS13aXRoLXRyZWUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFNUMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFFBQVE7Q0FHN0M7QUFGQztJQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzs7a0RBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInXG5cbmltcG9ydCB7IENhdGVnb3J5IH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5cbmV4cG9ydCBjbGFzcyBDYXRlZ29yeVdpdGhUcmVlIGV4dGVuZHMgQ2F0ZWdvcnkge1xuICBAVHlwZSgoKSA9PiBDYXRlZ29yeVdpdGhUcmVlKVxuICBjaGlsZHJlbj86IENhdGVnb3J5V2l0aFRyZWVbXVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export * from './category-with-tree.model';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhdGVnb3J5LXdpdGgtdHJlZS5tb2RlbCdcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './product-sort.type';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1zb3J0LnR5cGUnXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zb3J0LnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvdHlwZXMvcHJvZHVjdC1zb3J0LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2R1Y3RTb3J0cyB9IGZyb20gJy4uL2VudW1zJ1xuXG5leHBvcnQgdHlwZSBQcm9kdWN0U29ydCA9IGAke1Byb2R1Y3RTb3J0c31gXG4iXX0=