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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/angular-connect.module.d.ts +6 -9
  2. package/angular-firebase-auth.module.d.ts +1 -2
  3. package/angular-firestore.module.d.ts +1 -2
  4. package/esm2022/angular-connect.module.mjs +288 -0
  5. package/esm2022/angular-elastic-search.module.mjs +34 -0
  6. package/esm2022/angular-firebase-auth.module.mjs +140 -0
  7. package/esm2022/angular-firestore.module.mjs +538 -0
  8. package/esm2022/angular-hasura-graphql.module.mjs +333 -0
  9. package/esm2022/angular-vertex-search.module.mjs +34 -0
  10. package/{esm2020 → esm2022}/persistence/cookie-data-persistence.mjs +4 -4
  11. package/{esm2020 → esm2022}/services/auth.service.mjs +6 -6
  12. package/{esm2020 → esm2022}/services/cart/cart-services.facade.mjs +5 -5
  13. package/{esm2020 → esm2022}/services/cart.service.mjs +5 -5
  14. package/{esm2020 → esm2022}/services/catalog/adapters/new-category-structure.adapter.mjs +6 -6
  15. package/{esm2020 → esm2022}/services/catalog/adapters/old-category-structure.adapter.mjs +6 -6
  16. package/esm2022/services/catalog/catalog.service.mjs +111 -0
  17. package/esm2022/services/catalog/category.service.mjs +42 -0
  18. package/esm2022/services/catalog/context/catalog-search.context.mjs +40 -0
  19. package/{esm2020 → esm2022}/services/catalog/facades/catalog-service.facade.mjs +6 -6
  20. package/{esm2020 → esm2022}/services/catalog/facades/catalog-strategies.facade.mjs +5 -5
  21. package/{esm2020 → esm2022}/services/catalog/facades/category-repository.facade.mjs +6 -6
  22. package/{esm2020 → esm2022}/services/catalog/facades/category-service.facade.mjs +6 -6
  23. package/{esm2020 → esm2022}/services/catalog/facades/product-catalog.facade.mjs +6 -6
  24. package/esm2022/services/catalog/helpers/brand-manager.helper.mjs +57 -0
  25. package/esm2022/services/catalog/helpers/catalog-filter.helper.mjs +44 -0
  26. package/esm2022/services/catalog/helpers/catalog-sort.helper.mjs +52 -0
  27. package/{esm2020 → esm2022}/services/catalog/helpers/product-fields.helper.mjs +4 -4
  28. package/{esm2020 → esm2022}/services/catalog/models/category-with-tree.model.mjs +1 -1
  29. package/{esm2020 → esm2022}/services/catalog/services/catalog-helpers.service.mjs +5 -5
  30. package/{esm2020 → esm2022}/services/catalog/services/catalog-operations.facade.mjs +5 -5
  31. package/{esm2020 → esm2022}/services/catalog/services/catalog-repository.service.mjs +6 -6
  32. package/{esm2020 → esm2022}/services/catalog/services/product-management.facade.mjs +6 -6
  33. package/esm2022/services/catalog/strategies/category-search.strategy.mjs +133 -0
  34. package/esm2022/services/catalog/strategies/profile-search.strategy.mjs +42 -0
  35. package/esm2022/services/catalog/strategies/term-search.strategy.mjs +123 -0
  36. package/esm2022/services/catalog/wishlist.service.mjs +254 -0
  37. package/{esm2020 → esm2022}/services/checkout/checkout-dependencies.facade.mjs +6 -6
  38. package/{esm2020 → esm2022}/services/checkout/checkout-repositories.facade.mjs +6 -6
  39. package/{esm2020 → esm2022}/services/checkout-subscription.service.mjs +6 -6
  40. package/{esm2020 → esm2022}/services/checkout.service.mjs +7 -7
  41. package/{esm2020 → esm2022}/services/coupon/coupon-repositories.facade.mjs +6 -6
  42. package/esm2022/services/coupon.service.mjs +248 -0
  43. package/{esm2020 → esm2022}/services/home-shop/home-shop-repositories.facade.mjs +6 -6
  44. package/{esm2020 → esm2022}/services/home-shop.service.mjs +5 -5
  45. package/esm2022/services/order-product-review.service.mjs +110 -0
  46. package/{esm2020 → esm2022}/services/order.service.mjs +6 -6
  47. package/{esm2020 → esm2022}/services/shared/configuration.facade.mjs +6 -6
  48. package/{fesm2020 → fesm2022}/infrab4a-connect-angular.mjs +782 -784
  49. package/fesm2022/infrab4a-connect-angular.mjs.map +1 -0
  50. package/package.json +9 -15
  51. package/services/catalog/category.service.d.ts +1 -0
  52. package/services/checkout.service.d.ts +1 -1
  53. package/esm2020/angular-connect.module.mjs +0 -291
  54. package/esm2020/angular-elastic-search.module.mjs +0 -34
  55. package/esm2020/angular-firebase-auth.module.mjs +0 -141
  56. package/esm2020/angular-firestore.module.mjs +0 -541
  57. package/esm2020/angular-hasura-graphql.module.mjs +0 -333
  58. package/esm2020/angular-vertex-search.module.mjs +0 -34
  59. package/esm2020/services/catalog/catalog.service.mjs +0 -111
  60. package/esm2020/services/catalog/category.service.mjs +0 -39
  61. package/esm2020/services/catalog/context/catalog-search.context.mjs +0 -40
  62. package/esm2020/services/catalog/helpers/brand-manager.helper.mjs +0 -57
  63. package/esm2020/services/catalog/helpers/catalog-filter.helper.mjs +0 -44
  64. package/esm2020/services/catalog/helpers/catalog-sort.helper.mjs +0 -52
  65. package/esm2020/services/catalog/strategies/category-search.strategy.mjs +0 -133
  66. package/esm2020/services/catalog/strategies/profile-search.strategy.mjs +0 -42
  67. package/esm2020/services/catalog/strategies/term-search.strategy.mjs +0 -123
  68. package/esm2020/services/catalog/wishlist.service.mjs +0 -254
  69. package/esm2020/services/coupon.service.mjs +0 -248
  70. package/esm2020/services/order-product-review.service.mjs +0 -110
  71. package/fesm2015/infrab4a-connect-angular.mjs +0 -3486
  72. package/fesm2015/infrab4a-connect-angular.mjs.map +0 -1
  73. package/fesm2020/infrab4a-connect-angular.mjs.map +0 -1
  74. /package/{esm2020 → esm2022}/consts/backend-url.const.mjs +0 -0
  75. /package/{esm2020 → esm2022}/consts/category-structure.mjs +0 -0
  76. /package/{esm2020 → esm2022}/consts/default-shop.const.mjs +0 -0
  77. /package/{esm2020 → esm2022}/consts/es-config.const.mjs +0 -0
  78. /package/{esm2020 → esm2022}/consts/firebase-const.mjs +0 -0
  79. /package/{esm2020 → esm2022}/consts/hasura-options.const.mjs +0 -0
  80. /package/{esm2020 → esm2022}/consts/index.mjs +0 -0
  81. /package/{esm2020 → esm2022}/consts/persistence.const.mjs +0 -0
  82. /package/{esm2020 → esm2022}/consts/storage-base-url.const.mjs +0 -0
  83. /package/{esm2020 → esm2022}/consts/vertex-config.const.mjs +0 -0
  84. /package/{esm2020 → esm2022}/helpers/index.mjs +0 -0
  85. /package/{esm2020 → esm2022}/helpers/mobile-operation-system-checker.helper.mjs +0 -0
  86. /package/{esm2020 → esm2022}/index.mjs +0 -0
  87. /package/{esm2020 → esm2022}/infrab4a-connect-angular.mjs +0 -0
  88. /package/{esm2020 → esm2022}/interfaces/catalog-strategies.interface.mjs +0 -0
  89. /package/{esm2020 → esm2022}/interfaces/category-facades.interface.mjs +0 -0
  90. /package/{esm2020 → esm2022}/interfaces/index.mjs +0 -0
  91. /package/{esm2020 → esm2022}/persistence/data-persistence.mjs +0 -0
  92. /package/{esm2020 → esm2022}/persistence/index.mjs +0 -0
  93. /package/{esm2020 → esm2022}/services/cart/index.mjs +0 -0
  94. /package/{esm2020 → esm2022}/services/catalog/adapters/category-structure.adapter.mjs +0 -0
  95. /package/{esm2020 → esm2022}/services/catalog/adapters/index.mjs +0 -0
  96. /package/{esm2020 → esm2022}/services/catalog/enums/index.mjs +0 -0
  97. /package/{esm2020 → esm2022}/services/catalog/enums/product-sorts.enum.mjs +0 -0
  98. /package/{esm2020 → esm2022}/services/catalog/facades/index.mjs +0 -0
  99. /package/{esm2020 → esm2022}/services/catalog/helpers/index.mjs +0 -0
  100. /package/{esm2020 → esm2022}/services/catalog/index.mjs +0 -0
  101. /package/{esm2020 → esm2022}/services/catalog/models/index.mjs +0 -0
  102. /package/{esm2020 → esm2022}/services/catalog/services/index.mjs +0 -0
  103. /package/{esm2020 → esm2022}/services/catalog/strategies/index.mjs +0 -0
  104. /package/{esm2020 → esm2022}/services/catalog/strategies/types/strategy-params.type.mjs +0 -0
  105. /package/{esm2020 → esm2022}/services/catalog/types/fetch-products-options.type.mjs +0 -0
  106. /package/{esm2020 → esm2022}/services/catalog/types/fetch-products-params.type.mjs +0 -0
  107. /package/{esm2020 → esm2022}/services/catalog/types/fetch-products-response.type.mjs +0 -0
  108. /package/{esm2020 → esm2022}/services/catalog/types/index.mjs +0 -0
  109. /package/{esm2020 → esm2022}/services/catalog/types/method-params.type.mjs +0 -0
  110. /package/{esm2020 → esm2022}/services/catalog/types/product-sort.type.mjs +0 -0
  111. /package/{esm2020 → esm2022}/services/checkout/index.mjs +0 -0
  112. /package/{esm2020 → esm2022}/services/coupon/index.mjs +0 -0
  113. /package/{esm2020 → esm2022}/services/coupon/types/coupon-params.type.mjs +0 -0
  114. /package/{esm2020 → esm2022}/services/helpers/index.mjs +0 -0
  115. /package/{esm2020 → esm2022}/services/helpers/util.helper.mjs +0 -0
  116. /package/{esm2020 → esm2022}/services/home-shop/index.mjs +0 -0
  117. /package/{esm2020 → esm2022}/services/index.mjs +0 -0
  118. /package/{esm2020 → esm2022}/services/shared/index.mjs +0 -0
  119. /package/{esm2020 → esm2022}/services/types/index.mjs +0 -0
  120. /package/{esm2020 → esm2022}/services/types/pending-product-review.type.mjs +0 -0
  121. /package/{esm2020 → esm2022}/services/types/product-review-create.type.mjs +0 -0
  122. /package/{esm2020 → esm2022}/services/types/required-checkout-data.type.mjs +0 -0
  123. /package/{esm2020 → esm2022}/services/types/required-checkout-subscription-data.type.mjs +0 -0
  124. /package/{esm2020 → esm2022}/types/firebase-app-config.type.mjs +0 -0
  125. /package/{esm2020 → esm2022}/types/index.mjs +0 -0
@@ -31,10 +31,10 @@ export class ProductFieldsHelper {
31
31
  'group',
32
32
  ];
33
33
  }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProductFieldsHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
35
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProductFieldsHelper }); }
34
36
  }
35
- ProductFieldsHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ProductFieldsHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
36
- ProductFieldsHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ProductFieldsHelper });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ProductFieldsHelper, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProductFieldsHelper, decorators: [{
38
38
  type: Injectable
39
39
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1maWVsZHMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2hlbHBlcnMvcHJvZHVjdC1maWVsZHMuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7O0FBSTFDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsaUJBQWlCO1FBQ2YsT0FBTztZQUNMLElBQUk7WUFDSixNQUFNO1lBQ04sTUFBTTtZQUNOLFFBQVE7WUFDUixZQUFZO1lBQ1osT0FBTztZQUNQLE9BQU87WUFDUCxXQUFXO1lBQ1gsTUFBTTtZQUNOLEtBQUs7WUFDTCxLQUFLO1lBQ0wsT0FBTztZQUNQLFdBQVc7WUFDWCxhQUFhO1lBQ2IsT0FBTztZQUNQLEtBQUs7WUFDTCxNQUFNO1lBQ04sYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sZUFBZTtZQUNmLFFBQVE7WUFDUixXQUFXO1lBQ1gsT0FBTztZQUNQLFFBQVE7WUFDUixPQUFPO1NBQ1IsQ0FBQTtJQUNILENBQUM7O2dIQTlCVSxtQkFBbUI7b0hBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOb25GdW5jdGlvblByb3BlcnR5TmFtZXMsIFByb2R1Y3QgfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RGaWVsZHNIZWxwZXIge1xuICBnZXRTdGFuZGFyZEZpZWxkcygpOiBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8UHJvZHVjdD5bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdpZCcsXG4gICAgICAnbmFtZScsXG4gICAgICAnc2x1ZycsXG4gICAgICAnaW1hZ2VzJyxcbiAgICAgICdtaW5pYXR1cmVzJyxcbiAgICAgICdwcmljZScsXG4gICAgICAnc3RvY2snLFxuICAgICAgJ3B1Ymxpc2hlZCcsXG4gICAgICAnQ0VTVCcsXG4gICAgICAnRUFOJyxcbiAgICAgICdOQ00nLFxuICAgICAgJ2JyYW5kJyxcbiAgICAgICdjb3N0UHJpY2UnLFxuICAgICAgJ2hhc1ZhcmlhbnRzJyxcbiAgICAgICdpc0tpdCcsXG4gICAgICAnc2t1JyxcbiAgICAgICdyYXRlJyxcbiAgICAgICd0YWdzUHJvZmlsZScsXG4gICAgICAndGFnc0NvbGxlY3Rpb24nLFxuICAgICAgJ3R5cGUnLFxuICAgICAgJ3Nob3BwaW5nQ291bnQnLFxuICAgICAgJ2dlbmRlcicsXG4gICAgICAnY3JlYXRlZEF0JyxcbiAgICAgICdsYWJlbCcsXG4gICAgICAnb3V0bGV0JyxcbiAgICAgICdncm91cCcsXG4gICAgXVxuICB9XG59XG4iXX0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1maWVsZHMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2hlbHBlcnMvcHJvZHVjdC1maWVsZHMuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7O0FBSTFDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsaUJBQWlCO1FBQ2YsT0FBTztZQUNMLElBQUk7WUFDSixNQUFNO1lBQ04sTUFBTTtZQUNOLFFBQVE7WUFDUixZQUFZO1lBQ1osT0FBTztZQUNQLE9BQU87WUFDUCxXQUFXO1lBQ1gsTUFBTTtZQUNOLEtBQUs7WUFDTCxLQUFLO1lBQ0wsT0FBTztZQUNQLFdBQVc7WUFDWCxhQUFhO1lBQ2IsT0FBTztZQUNQLEtBQUs7WUFDTCxNQUFNO1lBQ04sYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sZUFBZTtZQUNmLFFBQVE7WUFDUixXQUFXO1lBQ1gsT0FBTztZQUNQLFFBQVE7WUFDUixPQUFPO1NBQ1IsQ0FBQTtJQUNILENBQUM7K0dBOUJVLG1CQUFtQjttSEFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOb25GdW5jdGlvblByb3BlcnR5TmFtZXMsIFByb2R1Y3QgfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RGaWVsZHNIZWxwZXIge1xuICBnZXRTdGFuZGFyZEZpZWxkcygpOiBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8UHJvZHVjdD5bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdpZCcsXG4gICAgICAnbmFtZScsXG4gICAgICAnc2x1ZycsXG4gICAgICAnaW1hZ2VzJyxcbiAgICAgICdtaW5pYXR1cmVzJyxcbiAgICAgICdwcmljZScsXG4gICAgICAnc3RvY2snLFxuICAgICAgJ3B1Ymxpc2hlZCcsXG4gICAgICAnQ0VTVCcsXG4gICAgICAnRUFOJyxcbiAgICAgICdOQ00nLFxuICAgICAgJ2JyYW5kJyxcbiAgICAgICdjb3N0UHJpY2UnLFxuICAgICAgJ2hhc1ZhcmlhbnRzJyxcbiAgICAgICdpc0tpdCcsXG4gICAgICAnc2t1JyxcbiAgICAgICdyYXRlJyxcbiAgICAgICd0YWdzUHJvZmlsZScsXG4gICAgICAndGFnc0NvbGxlY3Rpb24nLFxuICAgICAgJ3R5cGUnLFxuICAgICAgJ3Nob3BwaW5nQ291bnQnLFxuICAgICAgJ2dlbmRlcicsXG4gICAgICAnY3JlYXRlZEF0JyxcbiAgICAgICdsYWJlbCcsXG4gICAgICAnb3V0bGV0JyxcbiAgICAgICdncm91cCcsXG4gICAgXVxuICB9XG59XG4iXX0=
@@ -7,4 +7,4 @@ __decorate([
7
7
  Type(() => CategoryWithTree),
8
8
  __metadata("design:type", Array)
9
9
  ], CategoryWithTree.prototype, "children", void 0);
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktd2l0aC10cmVlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL21vZGVscy9jYXRlZ29yeS13aXRoLXRyZWUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFNUMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFFBQVE7Q0FHN0M7QUFGQztJQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzs7a0RBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInXG5pbXBvcnQgeyBDYXRlZ29yeSB9IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xuXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlXaXRoVHJlZSBleHRlbmRzIENhdGVnb3J5IHtcbiAgQFR5cGUoKCkgPT4gQ2F0ZWdvcnlXaXRoVHJlZSlcbiAgY2hpbGRyZW4/OiBDYXRlZ29yeVdpdGhUcmVlW11cbn1cbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktd2l0aC10cmVlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL21vZGVscy9jYXRlZ29yeS13aXRoLXRyZWUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFNUMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFFBQVE7Q0FHN0M7QUFEQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzs7a0RBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInXG5pbXBvcnQgeyBDYXRlZ29yeSB9IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xuXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlXaXRoVHJlZSBleHRlbmRzIENhdGVnb3J5IHtcbiAgQFR5cGUoKCkgPT4gQ2F0ZWdvcnlXaXRoVHJlZSlcbiAgY2hpbGRyZW4/OiBDYXRlZ29yeVdpdGhUcmVlW11cbn1cbiJdfQ==
@@ -24,10 +24,10 @@ export class CatalogHelpersService {
24
24
  getProductServices() {
25
25
  return this.productManagement.getProductServices();
26
26
  }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogHelpersService, deps: [{ token: i1.CatalogOperationsFacade }, { token: i2.ProductManagementFacade }], target: i0.ɵɵFactoryTarget.Injectable }); }
28
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogHelpersService }); }
27
29
  }
28
- CatalogHelpersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogHelpersService, deps: [{ token: i1.CatalogOperationsFacade }, { token: i2.ProductManagementFacade }], target: i0.ɵɵFactoryTarget.Injectable });
29
- CatalogHelpersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogHelpersService });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogHelpersService, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogHelpersService, decorators: [{
31
31
  type: Injectable
32
- }], ctorParameters: function () { return [{ type: i1.CatalogOperationsFacade }, { type: i2.ProductManagementFacade }]; } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1oZWxwZXJzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvc2VydmljZXMvY2F0YWxvZy1oZWxwZXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUsxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTs7OztBQUdyRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQ21CLGlCQUEwQyxFQUMxQyxpQkFBMEM7UUFEMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5QjtRQUMxQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXlCO0lBQzFELENBQUM7SUFFSixlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDakQsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMvQyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQ2pELENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDakQsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO0lBQ3BELENBQUM7O2tIQXhCVSxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IFByb2R1Y3RTZXJ2aWNlc0ZhY2FkZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnXG5pbXBvcnQgeyBCcmFuZE1hbmFnZXJIZWxwZXIsIENhdGFsb2dGaWx0ZXJIZWxwZXIsIENhdGFsb2dTb3J0SGVscGVyLCBQcm9kdWN0RmllbGRzSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycydcblxuaW1wb3J0IHsgQ2F0YWxvZ09wZXJhdGlvbnNGYWNhZGUgfSBmcm9tICcuL2NhdGFsb2ctb3BlcmF0aW9ucy5mYWNhZGUnXG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlbWVudEZhY2FkZSB9IGZyb20gJy4vcHJvZHVjdC1tYW5hZ2VtZW50LmZhY2FkZSdcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhdGFsb2dIZWxwZXJzU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2F0YWxvZ09wZXJhdGlvbnM6IENhdGFsb2dPcGVyYXRpb25zRmFjYWRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdE1hbmFnZW1lbnQ6IFByb2R1Y3RNYW5hZ2VtZW50RmFjYWRlLFxuICApIHt9XG5cbiAgZ2V0RmlsdGVySGVscGVyKCk6IENhdGFsb2dGaWx0ZXJIZWxwZXIge1xuICAgIHJldHVybiB0aGlzLmNhdGFsb2dPcGVyYXRpb25zLmdldEZpbHRlckhlbHBlcigpXG4gIH1cblxuICBnZXRTb3J0SGVscGVyKCk6IENhdGFsb2dTb3J0SGVscGVyIHtcbiAgICByZXR1cm4gdGhpcy5jYXRhbG9nT3BlcmF0aW9ucy5nZXRTb3J0SGVscGVyKClcbiAgfVxuXG4gIGdldEZpZWxkc0hlbHBlcigpOiBQcm9kdWN0RmllbGRzSGVscGVyIHtcbiAgICByZXR1cm4gdGhpcy5jYXRhbG9nT3BlcmF0aW9ucy5nZXRGaWVsZHNIZWxwZXIoKVxuICB9XG5cbiAgZ2V0QnJhbmRNYW5hZ2VyKCk6IEJyYW5kTWFuYWdlckhlbHBlciB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjdE1hbmFnZW1lbnQuZ2V0QnJhbmRNYW5hZ2VyKClcbiAgfVxuXG4gIGdldFByb2R1Y3RTZXJ2aWNlcygpOiBQcm9kdWN0U2VydmljZXNGYWNhZGUge1xuICAgIHJldHVybiB0aGlzLnByb2R1Y3RNYW5hZ2VtZW50LmdldFByb2R1Y3RTZXJ2aWNlcygpXG4gIH1cbn1cbiJdfQ==
32
+ }], ctorParameters: () => [{ type: i1.CatalogOperationsFacade }, { type: i2.ProductManagementFacade }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1oZWxwZXJzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvc2VydmljZXMvY2F0YWxvZy1oZWxwZXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUsxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTs7OztBQUdyRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQ21CLGlCQUEwQyxFQUMxQyxpQkFBMEM7UUFEMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5QjtRQUMxQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXlCO0lBQzFELENBQUM7SUFFSixlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDakQsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMvQyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQ2pELENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDakQsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO0lBQ3BELENBQUM7K0dBeEJVLHFCQUFxQjttSEFBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IFByb2R1Y3RTZXJ2aWNlc0ZhY2FkZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnXG5pbXBvcnQgeyBCcmFuZE1hbmFnZXJIZWxwZXIsIENhdGFsb2dGaWx0ZXJIZWxwZXIsIENhdGFsb2dTb3J0SGVscGVyLCBQcm9kdWN0RmllbGRzSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycydcblxuaW1wb3J0IHsgQ2F0YWxvZ09wZXJhdGlvbnNGYWNhZGUgfSBmcm9tICcuL2NhdGFsb2ctb3BlcmF0aW9ucy5mYWNhZGUnXG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlbWVudEZhY2FkZSB9IGZyb20gJy4vcHJvZHVjdC1tYW5hZ2VtZW50LmZhY2FkZSdcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhdGFsb2dIZWxwZXJzU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2F0YWxvZ09wZXJhdGlvbnM6IENhdGFsb2dPcGVyYXRpb25zRmFjYWRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdE1hbmFnZW1lbnQ6IFByb2R1Y3RNYW5hZ2VtZW50RmFjYWRlLFxuICApIHt9XG5cbiAgZ2V0RmlsdGVySGVscGVyKCk6IENhdGFsb2dGaWx0ZXJIZWxwZXIge1xuICAgIHJldHVybiB0aGlzLmNhdGFsb2dPcGVyYXRpb25zLmdldEZpbHRlckhlbHBlcigpXG4gIH1cblxuICBnZXRTb3J0SGVscGVyKCk6IENhdGFsb2dTb3J0SGVscGVyIHtcbiAgICByZXR1cm4gdGhpcy5jYXRhbG9nT3BlcmF0aW9ucy5nZXRTb3J0SGVscGVyKClcbiAgfVxuXG4gIGdldEZpZWxkc0hlbHBlcigpOiBQcm9kdWN0RmllbGRzSGVscGVyIHtcbiAgICByZXR1cm4gdGhpcy5jYXRhbG9nT3BlcmF0aW9ucy5nZXRGaWVsZHNIZWxwZXIoKVxuICB9XG5cbiAgZ2V0QnJhbmRNYW5hZ2VyKCk6IEJyYW5kTWFuYWdlckhlbHBlciB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjdE1hbmFnZW1lbnQuZ2V0QnJhbmRNYW5hZ2VyKClcbiAgfVxuXG4gIGdldFByb2R1Y3RTZXJ2aWNlcygpOiBQcm9kdWN0U2VydmljZXNGYWNhZGUge1xuICAgIHJldHVybiB0aGlzLnByb2R1Y3RNYW5hZ2VtZW50LmdldFByb2R1Y3RTZXJ2aWNlcygpXG4gIH1cbn1cbiJdfQ==
@@ -17,10 +17,10 @@ export class CatalogOperationsFacade {
17
17
  getFieldsHelper() {
18
18
  return this.fieldsHelper;
19
19
  }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogOperationsFacade, deps: [{ token: i1.CatalogFilterHelper }, { token: i1.CatalogSortHelper }, { token: i1.ProductFieldsHelper }], target: i0.ɵɵFactoryTarget.Injectable }); }
21
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogOperationsFacade }); }
20
22
  }
21
- CatalogOperationsFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogOperationsFacade, deps: [{ token: i1.CatalogFilterHelper }, { token: i1.CatalogSortHelper }, { token: i1.ProductFieldsHelper }], target: i0.ɵɵFactoryTarget.Injectable });
22
- CatalogOperationsFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogOperationsFacade });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogOperationsFacade, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogOperationsFacade, decorators: [{
24
24
  type: Injectable
25
- }], ctorParameters: function () { return [{ type: i1.CatalogFilterHelper }, { type: i1.CatalogSortHelper }, { type: i1.ProductFieldsHelper }]; } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1vcGVyYXRpb25zLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9zZXJ2aWNlcy9jYXRhbG9nLW9wZXJhdGlvbnMuZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFBOzs7QUFHeEYsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUNtQixZQUFpQyxFQUNqQyxVQUE2QixFQUM3QixZQUFpQztRQUZqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsaUJBQVksR0FBWixZQUFZLENBQXFCO0lBQ2pELENBQUM7SUFFSixlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFBO0lBQzFCLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFBO0lBQzFCLENBQUM7O29IQWpCVSx1QkFBdUI7d0hBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IENhdGFsb2dGaWx0ZXJIZWxwZXIsIENhdGFsb2dTb3J0SGVscGVyLCBQcm9kdWN0RmllbGRzSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhdGFsb2dPcGVyYXRpb25zRmFjYWRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJIZWxwZXI6IENhdGFsb2dGaWx0ZXJIZWxwZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3J0SGVscGVyOiBDYXRhbG9nU29ydEhlbHBlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkc0hlbHBlcjogUHJvZHVjdEZpZWxkc0hlbHBlcixcbiAgKSB7fVxuXG4gIGdldEZpbHRlckhlbHBlcigpOiBDYXRhbG9nRmlsdGVySGVscGVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJIZWxwZXJcbiAgfVxuXG4gIGdldFNvcnRIZWxwZXIoKTogQ2F0YWxvZ1NvcnRIZWxwZXIge1xuICAgIHJldHVybiB0aGlzLnNvcnRIZWxwZXJcbiAgfVxuXG4gIGdldEZpZWxkc0hlbHBlcigpOiBQcm9kdWN0RmllbGRzSGVscGVyIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZHNIZWxwZXJcbiAgfVxufVxuIl19
25
+ }], ctorParameters: () => [{ type: i1.CatalogFilterHelper }, { type: i1.CatalogSortHelper }, { type: i1.ProductFieldsHelper }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1vcGVyYXRpb25zLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9zZXJ2aWNlcy9jYXRhbG9nLW9wZXJhdGlvbnMuZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFBOzs7QUFHeEYsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUNtQixZQUFpQyxFQUNqQyxVQUE2QixFQUM3QixZQUFpQztRQUZqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsaUJBQVksR0FBWixZQUFZLENBQXFCO0lBQ2pELENBQUM7SUFFSixlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFBO0lBQzFCLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFBO0lBQzFCLENBQUM7K0dBakJVLHVCQUF1QjttSEFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IENhdGFsb2dGaWx0ZXJIZWxwZXIsIENhdGFsb2dTb3J0SGVscGVyLCBQcm9kdWN0RmllbGRzSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhdGFsb2dPcGVyYXRpb25zRmFjYWRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJIZWxwZXI6IENhdGFsb2dGaWx0ZXJIZWxwZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3J0SGVscGVyOiBDYXRhbG9nU29ydEhlbHBlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkc0hlbHBlcjogUHJvZHVjdEZpZWxkc0hlbHBlcixcbiAgKSB7fVxuXG4gIGdldEZpbHRlckhlbHBlcigpOiBDYXRhbG9nRmlsdGVySGVscGVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJIZWxwZXJcbiAgfVxuXG4gIGdldFNvcnRIZWxwZXIoKTogQ2F0YWxvZ1NvcnRIZWxwZXIge1xuICAgIHJldHVybiB0aGlzLnNvcnRIZWxwZXJcbiAgfVxuXG4gIGdldEZpZWxkc0hlbHBlcigpOiBQcm9kdWN0RmllbGRzSGVscGVyIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZHNIZWxwZXJcbiAgfVxufVxuIl19
@@ -13,13 +13,13 @@ export class CatalogRepositoryService {
13
13
  getProductServices() {
14
14
  return this.productServices;
15
15
  }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogRepositoryService, deps: [{ token: i1.ProductCatalogFacade }, { token: 'ProductServicesFacade' }], target: i0.ɵɵFactoryTarget.Injectable }); }
17
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogRepositoryService }); }
16
18
  }
17
- CatalogRepositoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogRepositoryService, deps: [{ token: i1.ProductCatalogFacade }, { token: 'ProductServicesFacade' }], target: i0.ɵɵFactoryTarget.Injectable });
18
- CatalogRepositoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogRepositoryService });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogRepositoryService, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CatalogRepositoryService, decorators: [{
20
20
  type: Injectable
21
- }], ctorParameters: function () { return [{ type: i1.ProductCatalogFacade }, { type: undefined, decorators: [{
21
+ }], ctorParameters: () => [{ type: i1.ProductCatalogFacade }, { type: undefined, decorators: [{
22
22
  type: Inject,
23
23
  args: ['ProductServicesFacade']
24
- }] }]; } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1yZXBvc2l0b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvc2VydmljZXMvY2F0YWxvZy1yZXBvc2l0b3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFBOzs7QUFHakQsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNtQixjQUFvQyxFQUNILGVBQXNDO1FBRHZFLG1CQUFjLEdBQWQsY0FBYyxDQUFzQjtRQUNILG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtJQUN2RixDQUFDO0lBRUosaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFBO0lBQzdCLENBQUM7O3FIQVpVLHdCQUF3QixzREFHekIsdUJBQXVCO3lIQUh0Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVTs7MEJBSU4sTUFBTTsyQkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBQcm9kdWN0U2VydmljZXNGYWNhZGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJ1xuaW1wb3J0IHsgUHJvZHVjdENhdGFsb2dGYWNhZGUgfSBmcm9tICcuLi9mYWNhZGVzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ1JlcG9zaXRvcnlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0Q2F0YWxvZzogUHJvZHVjdENhdGFsb2dGYWNhZGUsXG4gICAgQEluamVjdCgnUHJvZHVjdFNlcnZpY2VzRmFjYWRlJykgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0U2VydmljZXM6IFByb2R1Y3RTZXJ2aWNlc0ZhY2FkZSxcbiAgKSB7fVxuXG4gIGdldFByb2R1Y3RDYXRhbG9nKCk6IFByb2R1Y3RDYXRhbG9nRmFjYWRlIHtcbiAgICByZXR1cm4gdGhpcy5wcm9kdWN0Q2F0YWxvZ1xuICB9XG5cbiAgZ2V0UHJvZHVjdFNlcnZpY2VzKCk6IFByb2R1Y3RTZXJ2aWNlc0ZhY2FkZSB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjdFNlcnZpY2VzXG4gIH1cbn1cbiJdfQ==
24
+ }] }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1yZXBvc2l0b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvc2VydmljZXMvY2F0YWxvZy1yZXBvc2l0b3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFBOzs7QUFHakQsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNtQixjQUFvQyxFQUNILGVBQXNDO1FBRHZFLG1CQUFjLEdBQWQsY0FBYyxDQUFzQjtRQUNILG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtJQUN2RixDQUFDO0lBRUosaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFBO0lBQzdCLENBQUM7K0dBWlUsd0JBQXdCLHNEQUd6Qix1QkFBdUI7bUhBSHRCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVTs7MEJBSU4sTUFBTTsyQkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBQcm9kdWN0U2VydmljZXNGYWNhZGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJ1xuaW1wb3J0IHsgUHJvZHVjdENhdGFsb2dGYWNhZGUgfSBmcm9tICcuLi9mYWNhZGVzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ1JlcG9zaXRvcnlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0Q2F0YWxvZzogUHJvZHVjdENhdGFsb2dGYWNhZGUsXG4gICAgQEluamVjdCgnUHJvZHVjdFNlcnZpY2VzRmFjYWRlJykgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0U2VydmljZXM6IFByb2R1Y3RTZXJ2aWNlc0ZhY2FkZSxcbiAgKSB7fVxuXG4gIGdldFByb2R1Y3RDYXRhbG9nKCk6IFByb2R1Y3RDYXRhbG9nRmFjYWRlIHtcbiAgICByZXR1cm4gdGhpcy5wcm9kdWN0Q2F0YWxvZ1xuICB9XG5cbiAgZ2V0UHJvZHVjdFNlcnZpY2VzKCk6IFByb2R1Y3RTZXJ2aWNlc0ZhY2FkZSB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjdFNlcnZpY2VzXG4gIH1cbn1cbiJdfQ==
@@ -13,13 +13,13 @@ export class ProductManagementFacade {
13
13
  getProductServices() {
14
14
  return this.productServices;
15
15
  }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProductManagementFacade, deps: [{ token: i1.BrandManagerHelper }, { token: 'ProductServicesFacade' }], target: i0.ɵɵFactoryTarget.Injectable }); }
17
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProductManagementFacade }); }
16
18
  }
17
- ProductManagementFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ProductManagementFacade, deps: [{ token: i1.BrandManagerHelper }, { token: 'ProductServicesFacade' }], target: i0.ɵɵFactoryTarget.Injectable });
18
- ProductManagementFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ProductManagementFacade });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ProductManagementFacade, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProductManagementFacade, decorators: [{
20
20
  type: Injectable
21
- }], ctorParameters: function () { return [{ type: i1.BrandManagerHelper }, { type: undefined, decorators: [{
21
+ }], ctorParameters: () => [{ type: i1.BrandManagerHelper }, { type: undefined, decorators: [{
22
22
  type: Inject,
23
23
  args: ['ProductServicesFacade']
24
- }] }]; } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2VtZW50LmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9zZXJ2aWNlcy9wcm9kdWN0LW1hbmFnZW1lbnQuZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBR2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQTs7O0FBRy9DLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFDbUIsWUFBZ0MsRUFDQyxlQUFzQztRQUR2RSxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDQyxvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7SUFDdkYsQ0FBQztJQUVKLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUE7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUE7SUFDN0IsQ0FBQzs7b0hBWlUsdUJBQXVCLG9EQUd4Qix1QkFBdUI7d0hBSHRCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOzswQkFJTixNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IFByb2R1Y3RTZXJ2aWNlc0ZhY2FkZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnXG5pbXBvcnQgeyBCcmFuZE1hbmFnZXJIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUHJvZHVjdE1hbmFnZW1lbnRGYWNhZGUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJyYW5kTWFuYWdlcjogQnJhbmRNYW5hZ2VySGVscGVyLFxuICAgIEBJbmplY3QoJ1Byb2R1Y3RTZXJ2aWNlc0ZhY2FkZScpIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFNlcnZpY2VzOiBQcm9kdWN0U2VydmljZXNGYWNhZGUsXG4gICkge31cblxuICBnZXRCcmFuZE1hbmFnZXIoKTogQnJhbmRNYW5hZ2VySGVscGVyIHtcbiAgICByZXR1cm4gdGhpcy5icmFuZE1hbmFnZXJcbiAgfVxuXG4gIGdldFByb2R1Y3RTZXJ2aWNlcygpOiBQcm9kdWN0U2VydmljZXNGYWNhZGUge1xuICAgIHJldHVybiB0aGlzLnByb2R1Y3RTZXJ2aWNlc1xuICB9XG59XG4iXX0=
24
+ }] }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2VtZW50LmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9zZXJ2aWNlcy9wcm9kdWN0LW1hbmFnZW1lbnQuZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBR2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQTs7O0FBRy9DLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFDbUIsWUFBZ0MsRUFDQyxlQUFzQztRQUR2RSxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDQyxvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7SUFDdkYsQ0FBQztJQUVKLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUE7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUE7SUFDN0IsQ0FBQzsrR0FaVSx1QkFBdUIsb0RBR3hCLHVCQUF1QjttSEFIdEIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOzswQkFJTixNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IFByb2R1Y3RTZXJ2aWNlc0ZhY2FkZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnXG5pbXBvcnQgeyBCcmFuZE1hbmFnZXJIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUHJvZHVjdE1hbmFnZW1lbnRGYWNhZGUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJyYW5kTWFuYWdlcjogQnJhbmRNYW5hZ2VySGVscGVyLFxuICAgIEBJbmplY3QoJ1Byb2R1Y3RTZXJ2aWNlc0ZhY2FkZScpIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFNlcnZpY2VzOiBQcm9kdWN0U2VydmljZXNGYWNhZGUsXG4gICkge31cblxuICBnZXRCcmFuZE1hbmFnZXIoKTogQnJhbmRNYW5hZ2VySGVscGVyIHtcbiAgICByZXR1cm4gdGhpcy5icmFuZE1hbmFnZXJcbiAgfVxuXG4gIGdldFByb2R1Y3RTZXJ2aWNlcygpOiBQcm9kdWN0U2VydmljZXNGYWNhZGUge1xuICAgIHJldHVybiB0aGlzLnByb2R1Y3RTZXJ2aWNlc1xuICB9XG59XG4iXX0=
@@ -0,0 +1,133 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { isEmpty, Shops, Where } from '@infrab4a/connect';
3
+ import { CatalogHelpersService, CatalogRepositoryService } from '../services';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../services";
6
+ export class CategorySearchStrategy {
7
+ constructor(repositoryService, helpersService) {
8
+ this.repositoryService = repositoryService;
9
+ this.helpersService = helpersService;
10
+ }
11
+ async search(params, shop, optionsCache) {
12
+ const { category, filters, limits, sort, mainGender } = params;
13
+ if (!category) {
14
+ throw new Error('Category is required for CategorySearchStrategy');
15
+ }
16
+ const fields = this.helpersService.getFieldsHelper().getStandardFields();
17
+ if (sort === 'most-relevant') {
18
+ return this.searchWithMostRelevant({
19
+ category,
20
+ filters,
21
+ limits,
22
+ shop,
23
+ mainGender,
24
+ optionsCache,
25
+ fields,
26
+ });
27
+ }
28
+ return this.searchDefault({
29
+ category,
30
+ filters,
31
+ limits,
32
+ shop,
33
+ mainGender,
34
+ sort,
35
+ optionsCache,
36
+ fields,
37
+ });
38
+ }
39
+ async searchWithMostRelevant(params) {
40
+ const { category, filters, shop, optionsCache } = params;
41
+ const mostRelevant = category.isWishlist ? [] : category.getMostRelevantByShop(shop);
42
+ const productsIds = await this.getProductIds(category, filters, optionsCache);
43
+ return this.findAndSortByMostRelevant({
44
+ mostRelevants: mostRelevant,
45
+ productIds: productsIds,
46
+ filters: params.filters,
47
+ limits: params.limits,
48
+ shop: params.shop,
49
+ mainGender: params.mainGender,
50
+ optionsCache: params.optionsCache,
51
+ fields: params.fields,
52
+ });
53
+ }
54
+ async searchDefault(params) {
55
+ const { category, filters, limits, sort, optionsCache, fields } = params;
56
+ const productCatalog = this.repositoryService.getProductCatalog();
57
+ const filterHelper = this.helpersService.getFilterHelper();
58
+ const sortHelper = this.helpersService.getSortHelper();
59
+ const repoParams = {
60
+ fields,
61
+ filters: {
62
+ ...(await productCatalog.categoryStructureAdapter.buildProductFilterByCategory(category)),
63
+ ...filterHelper.buildFilterQuery(filters || {}),
64
+ },
65
+ ...(sort ? { orderBy: sortHelper.buildSortQuery(sort) } : {}),
66
+ limits,
67
+ options: {
68
+ minimal: ['price'],
69
+ maximum: ['price'],
70
+ distinct: ['brand'],
71
+ },
72
+ };
73
+ return productCatalog.productRepository.findCatalog(repoParams, null, optionsCache);
74
+ }
75
+ async getProductIds(category, filters, optionsCache) {
76
+ const productCatalog = this.repositoryService.getProductCatalog();
77
+ const filterHelper = this.helpersService.getFilterHelper();
78
+ return productCatalog.productRepository
79
+ .findCatalog({
80
+ fields: ['id'],
81
+ filters: {
82
+ ...(await productCatalog.categoryStructureAdapter.buildProductFilterByCategory(category)),
83
+ ...filterHelper.buildFilterQuery(filters || {}),
84
+ },
85
+ }, undefined, optionsCache)
86
+ .then((products) => products.data.map((product) => product.id));
87
+ }
88
+ async findAndSortByMostRelevant(params) {
89
+ const { mostRelevants, productIds, filters, shop, mainGender, optionsCache, fields, limits } = params;
90
+ const productCatalog = this.repositoryService.getProductCatalog();
91
+ const filterHelper = this.helpersService.getFilterHelper();
92
+ const sortHelper = this.helpersService.getSortHelper();
93
+ const mostRelevantProductsIds = [...new Set(mostRelevants.concat(productIds))];
94
+ const totalResult = await productCatalog.productRepository.findCatalog({
95
+ fields,
96
+ filters: {
97
+ id: { operator: Where.IN, value: mostRelevantProductsIds },
98
+ ...filterHelper.buildFilterQuery(filters || {}),
99
+ },
100
+ orderBy: sortHelper.buildSortQuery('best-sellers'),
101
+ options: {
102
+ minimal: ['price'],
103
+ maximum: ['price'],
104
+ ...(isEmpty(filters?.brands) ? { distinct: ['brand'] } : {}),
105
+ },
106
+ }, mainGender || (shop === Shops.MENSMARKET ? 'male' : 'female'), optionsCache);
107
+ return this.sortProductsByRelevance(totalResult, mostRelevants, limits);
108
+ }
109
+ sortProductsByRelevance(totalResult, mostRelevants, limits) {
110
+ const mostRelevantWithoutStock = totalResult.data.filter((product) => mostRelevants.includes(product.id) && product.stock.quantity <= 0);
111
+ const firstProducts = totalResult.data
112
+ .filter((product) => mostRelevants.includes(product.id) && product.stock.quantity > 0)
113
+ .sort((a, b) => mostRelevants.indexOf(a.id) - mostRelevants.indexOf(b.id));
114
+ const lastProducts = totalResult.data
115
+ .filter((product) => !mostRelevants.includes(product.id))
116
+ .concat(mostRelevantWithoutStock);
117
+ const categoryMostRelevants = firstProducts.concat(lastProducts);
118
+ const resultFinal = categoryMostRelevants.slice(limits.offset, limits.offset + limits.limit);
119
+ return {
120
+ data: resultFinal,
121
+ count: totalResult.count,
122
+ maximum: totalResult.maximum,
123
+ minimal: totalResult.minimal,
124
+ distinct: totalResult.distinct,
125
+ };
126
+ }
127
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CategorySearchStrategy, deps: [{ token: i1.CatalogRepositoryService }, { token: i1.CatalogHelpersService }], target: i0.ɵɵFactoryTarget.Injectable }); }
128
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CategorySearchStrategy }); }
129
+ }
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CategorySearchStrategy, decorators: [{
131
+ type: Injectable
132
+ }], ctorParameters: () => [{ type: i1.CatalogRepositoryService }, { type: i1.CatalogHelpersService }] });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktc2VhcmNoLnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL3N0cmF0ZWdpZXMvY2F0ZWdvcnktc2VhcmNoLnN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBeUQsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBR2hILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTs7O0FBUzdFLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFDbUIsaUJBQTJDLEVBQzNDLGNBQXFDO1FBRHJDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0MsbUJBQWMsR0FBZCxjQUFjLENBQXVCO0lBQ3JELENBQUM7SUFFSixLQUFLLENBQUMsTUFBTSxDQUNWLE1BQTJCLEVBQzNCLElBQVcsRUFDWCxZQUFpRDtRQUVqRCxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQTtRQUU5RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUE7UUFDcEUsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtRQUV4RSxJQUFJLElBQUksS0FBSyxlQUFlLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztnQkFDakMsUUFBUTtnQkFDUixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sSUFBSTtnQkFD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TSxFQUFFLENBQU0sRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN0RixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsSUFBSTthQUNsQyxNQUFNLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDN0QsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFDbkMsTUFBTSxxQkFBcUIsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ2hFLE1BQU0sV0FBVyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRTVGLE9BQU87WUFDTCxJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUs7WUFDeEIsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO1lBQzVCLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTztZQUM1QixRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7U0FDL0IsQ0FBQTtJQUNILENBQUM7K0dBekpVLHNCQUFzQjttSEFBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBpc0VtcHR5LCBQcm9kdWN0LCBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zLCBSZXBvc2l0b3J5RmluZFJlc3VsdCwgU2hvcHMsIFdoZXJlIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5cbmltcG9ydCB7IENhdGFsb2dTZWFyY2hQYXJhbXMsIENhdGFsb2dTZWFyY2hTdHJhdGVneSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnXG5pbXBvcnQgeyBDYXRhbG9nSGVscGVyc1NlcnZpY2UsIENhdGFsb2dSZXBvc2l0b3J5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJ1xuXG5pbXBvcnQge1xuICBGaW5kQW5kU29ydEJ5TW9zdFJlbGV2YW50UGFyYW1zLFxuICBTZWFyY2hEZWZhdWx0UGFyYW1zLFxuICBTZWFyY2hXaXRoTW9zdFJlbGV2YW50UGFyYW1zLFxufSBmcm9tICcuL3R5cGVzL3N0cmF0ZWd5LXBhcmFtcy50eXBlJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlTZWFyY2hTdHJhdGVneSBpbXBsZW1lbnRzIENhdGFsb2dTZWFyY2hTdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVwb3NpdG9yeVNlcnZpY2U6IENhdGFsb2dSZXBvc2l0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhlbHBlcnNTZXJ2aWNlOiBDYXRhbG9nSGVscGVyc1NlcnZpY2UsXG4gICkge31cblxuICBhc3luYyBzZWFyY2goXG4gICAgcGFyYW1zOiBDYXRhbG9nU2VhcmNoUGFyYW1zLFxuICAgIHNob3A6IFNob3BzLFxuICAgIG9wdGlvbnNDYWNoZT86IHsgY2FjaGU/OiBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zIH0sXG4gICk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8UHJvZHVjdD4+IHtcbiAgICBjb25zdCB7IGNhdGVnb3J5LCBmaWx0ZXJzLCBsaW1pdHMsIHNvcnQsIG1haW5HZW5kZXIgfSA9IHBhcmFtc1xuXG4gICAgaWYgKCFjYXRlZ29yeSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYXRlZ29yeSBpcyByZXF1aXJlZCBmb3IgQ2F0ZWdvcnlTZWFyY2hTdHJhdGVneScpXG4gICAgfVxuXG4gICAgY29uc3QgZmllbGRzID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWVsZHNIZWxwZXIoKS5nZXRTdGFuZGFyZEZpZWxkcygpXG5cbiAgICBpZiAoc29ydCA9PT0gJ21vc3QtcmVsZXZhbnQnKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZWFyY2hXaXRoTW9zdFJlbGV2YW50KHtcbiAgICAgICAgY2F0ZWdvcnksXG4gICAgICAgIGZpbHRlcnMsXG4gICAgICAgIGxpbWl0cyxcbiAgICAgICAgc2hvcCxcbiAgICAgICAgbWFpbkdlbmRlcixcbiAgICAgICAgb3B0aW9uc0NhY2hlLFxuICAgICAgICBmaWVsZHMsXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNlYXJjaERlZmF1bHQoe1xuICAgICAgY2F0ZWdvcnksXG4gICAgICBmaWx0ZXJzLFxuICAgICAgbGltaXRzLFxuICAgICAgc2hvcCxcbiAgICAgIG1haW5HZW5kZXIsXG4gICAgICBzb3J0LFxuICAgICAgb3B0aW9uc0NhY2hlLFxuICAgICAgZmllbGRzLFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNlYXJjaFdpdGhNb3N0UmVsZXZhbnQocGFyYW1zOiBTZWFyY2hXaXRoTW9zdFJlbGV2YW50UGFyYW1zKSB7XG4gICAgY29uc3QgeyBjYXRlZ29yeSwgZmlsdGVycywgc2hvcCwgb3B0aW9uc0NhY2hlIH0gPSBwYXJhbXNcbiAgICBjb25zdCBtb3N0UmVsZXZhbnQgPSBjYXRlZ29yeS5pc1dpc2hsaXN0ID8gW10gOiBjYXRlZ29yeS5nZXRNb3N0UmVsZXZhbnRCeVNob3Aoc2hvcClcbiAgICBjb25zdCBwcm9kdWN0c0lkcyA9IGF3YWl0IHRoaXMuZ2V0UHJvZHVjdElkcyhjYXRlZ29yeSwgZmlsdGVycywgb3B0aW9uc0NhY2hlKVxuXG4gICAgcmV0dXJuIHRoaXMuZmluZEFuZFNvcnRCeU1vc3RSZWxldmFudCh7XG4gICAgICBtb3N0UmVsZXZhbnRzOiBtb3N0UmVsZXZhbnQsXG4gICAgICBwcm9kdWN0SWRzOiBwcm9kdWN0c0lkcyxcbiAgICAgIGZpbHRlcnM6IHBhcmFtcy5maWx0ZXJzLFxuICAgICAgbGltaXRzOiBwYXJhbXMubGltaXRzLFxuICAgICAgc2hvcDogcGFyYW1zLnNob3AsXG4gICAgICBtYWluR2VuZGVyOiBwYXJhbXMubWFpbkdlbmRlcixcbiAgICAgIG9wdGlvbnNDYWNoZTogcGFyYW1zLm9wdGlvbnNDYWNoZSxcbiAgICAgIGZpZWxkczogcGFyYW1zLmZpZWxkcyxcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZWFyY2hEZWZhdWx0KHBhcmFtczogU2VhcmNoRGVmYXVsdFBhcmFtcykge1xuICAgIGNvbnN0IHsgY2F0ZWdvcnksIGZpbHRlcnMsIGxpbWl0cywgc29ydCwgb3B0aW9uc0NhY2hlLCBmaWVsZHMgfSA9IHBhcmFtc1xuICAgIGNvbnN0IHByb2R1Y3RDYXRhbG9nID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZS5nZXRQcm9kdWN0Q2F0YWxvZygpXG4gICAgY29uc3QgZmlsdGVySGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWx0ZXJIZWxwZXIoKVxuICAgIGNvbnN0IHNvcnRIZWxwZXIgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldFNvcnRIZWxwZXIoKVxuXG4gICAgY29uc3QgcmVwb1BhcmFtcyA9IHtcbiAgICAgIGZpZWxkcyxcbiAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgLi4uKGF3YWl0IHByb2R1Y3RDYXRhbG9nLmNhdGVnb3J5U3RydWN0dXJlQWRhcHRlci5idWlsZFByb2R1Y3RGaWx0ZXJCeUNhdGVnb3J5KGNhdGVnb3J5KSksXG4gICAgICAgIC4uLmZpbHRlckhlbHBlci5idWlsZEZpbHRlclF1ZXJ5KGZpbHRlcnMgfHwge30pLFxuICAgICAgfSxcbiAgICAgIC4uLihzb3J0ID8geyBvcmRlckJ5OiBzb3J0SGVscGVyLmJ1aWxkU29ydFF1ZXJ5KHNvcnQpIH0gOiB7fSksXG4gICAgICBsaW1pdHMsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIG1pbmltYWw6IFsncHJpY2UnXSxcbiAgICAgICAgbWF4aW11bTogWydwcmljZSddLFxuICAgICAgICBkaXN0aW5jdDogWydicmFuZCddLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvZHVjdENhdGFsb2cucHJvZHVjdFJlcG9zaXRvcnkuZmluZENhdGFsb2cocmVwb1BhcmFtcywgbnVsbCwgb3B0aW9uc0NhY2hlKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRQcm9kdWN0SWRzKGNhdGVnb3J5OiBhbnksIGZpbHRlcnM6IGFueSwgb3B0aW9uc0NhY2hlOiBhbnkpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgcHJvZHVjdENhdGFsb2cgPSB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmdldFByb2R1Y3RDYXRhbG9nKClcbiAgICBjb25zdCBmaWx0ZXJIZWxwZXIgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldEZpbHRlckhlbHBlcigpXG5cbiAgICByZXR1cm4gcHJvZHVjdENhdGFsb2cucHJvZHVjdFJlcG9zaXRvcnlcbiAgICAgIC5maW5kQ2F0YWxvZyhcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkczogWydpZCddLFxuICAgICAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgICAgIC4uLihhd2FpdCBwcm9kdWN0Q2F0YWxvZy5jYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIuYnVpbGRQcm9kdWN0RmlsdGVyQnlDYXRlZ29yeShjYXRlZ29yeSkpLFxuICAgICAgICAgICAgLi4uZmlsdGVySGVscGVyLmJ1aWxkRmlsdGVyUXVlcnkoZmlsdGVycyB8fCB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICBvcHRpb25zQ2FjaGUsXG4gICAgICApXG4gICAgICAudGhlbigocHJvZHVjdHMpID0+IHByb2R1Y3RzLmRhdGEubWFwKChwcm9kdWN0KSA9PiBwcm9kdWN0LmlkKSlcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmluZEFuZFNvcnRCeU1vc3RSZWxldmFudChcbiAgICBwYXJhbXM6IEZpbmRBbmRTb3J0QnlNb3N0UmVsZXZhbnRQYXJhbXMsXG4gICk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8UHJvZHVjdD4+IHtcbiAgICBjb25zdCB7IG1vc3RSZWxldmFudHMsIHByb2R1Y3RJZHMsIGZpbHRlcnMsIHNob3AsIG1haW5HZW5kZXIsIG9wdGlvbnNDYWNoZSwgZmllbGRzLCBsaW1pdHMgfSA9IHBhcmFtc1xuICAgIGNvbnN0IHByb2R1Y3RDYXRhbG9nID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZS5nZXRQcm9kdWN0Q2F0YWxvZygpXG4gICAgY29uc3QgZmlsdGVySGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWx0ZXJIZWxwZXIoKVxuICAgIGNvbnN0IHNvcnRIZWxwZXIgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldFNvcnRIZWxwZXIoKVxuXG4gICAgY29uc3QgbW9zdFJlbGV2YW50UHJvZHVjdHNJZHMgPSBbLi4ubmV3IFNldChtb3N0UmVsZXZhbnRzLmNvbmNhdChwcm9kdWN0SWRzKSldXG4gICAgY29uc3QgdG90YWxSZXN1bHQgPSBhd2FpdCBwcm9kdWN0Q2F0YWxvZy5wcm9kdWN0UmVwb3NpdG9yeS5maW5kQ2F0YWxvZyhcbiAgICAgIHtcbiAgICAgICAgZmllbGRzLFxuICAgICAgICBmaWx0ZXJzOiB7XG4gICAgICAgICAgaWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogbW9zdFJlbGV2YW50UHJvZHVjdHNJZHMgfSxcbiAgICAgICAgICAuLi5maWx0ZXJIZWxwZXIuYnVpbGRGaWx0ZXJRdWVyeShmaWx0ZXJzIHx8IHt9KSxcbiAgICAgICAgfSxcbiAgICAgICAgb3JkZXJCeTogc29ydEhlbHBlci5idWlsZFNvcnRRdWVyeSgnYmVzdC1zZWxsZXJzJyksXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBtaW5pbWFsOiBbJ3ByaWNlJ10sXG4gICAgICAgICAgbWF4aW11bTogWydwcmljZSddLFxuICAgICAgICAgIC4uLihpc0VtcHR5KGZpbHRlcnM/LmJyYW5kcykgPyB7IGRpc3RpbmN0OiBbJ2JyYW5kJ10gfSA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBtYWluR2VuZGVyIHx8IChzaG9wID09PSBTaG9wcy5NRU5TTUFSS0VUID8gJ21hbGUnIDogJ2ZlbWFsZScpLFxuICAgICAgb3B0aW9uc0NhY2hlLFxuICAgIClcblxuICAgIHJldHVybiB0aGlzLnNvcnRQcm9kdWN0c0J5UmVsZXZhbmNlKHRvdGFsUmVzdWx0LCBtb3N0UmVsZXZhbnRzLCBsaW1pdHMpXG4gIH1cblxuICBwcml2YXRlIHNvcnRQcm9kdWN0c0J5UmVsZXZhbmNlKHRvdGFsUmVzdWx0OiBhbnksIG1vc3RSZWxldmFudHM6IHN0cmluZ1tdLCBsaW1pdHM6IGFueSkge1xuICAgIGNvbnN0IG1vc3RSZWxldmFudFdpdGhvdXRTdG9jayA9IHRvdGFsUmVzdWx0LmRhdGEuZmlsdGVyKFxuICAgICAgKHByb2R1Y3Q6IGFueSkgPT4gbW9zdFJlbGV2YW50cy5pbmNsdWRlcyhwcm9kdWN0LmlkKSAmJiBwcm9kdWN0LnN0b2NrLnF1YW50aXR5IDw9IDAsXG4gICAgKVxuICAgIGNvbnN0IGZpcnN0UHJvZHVjdHMgPSB0b3RhbFJlc3VsdC5kYXRhXG4gICAgICAuZmlsdGVyKChwcm9kdWN0OiBhbnkpID0+IG1vc3RSZWxldmFudHMuaW5jbHVkZXMocHJvZHVjdC5pZCkgJiYgcHJvZHVjdC5zdG9jay5xdWFudGl0eSA+IDApXG4gICAgICAuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IG1vc3RSZWxldmFudHMuaW5kZXhPZihhLmlkKSAtIG1vc3RSZWxldmFudHMuaW5kZXhPZihiLmlkKSlcbiAgICBjb25zdCBsYXN0UHJvZHVjdHMgPSB0b3RhbFJlc3VsdC5kYXRhXG4gICAgICAuZmlsdGVyKChwcm9kdWN0OiBhbnkpID0+ICFtb3N0UmVsZXZhbnRzLmluY2x1ZGVzKHByb2R1Y3QuaWQpKVxuICAgICAgLmNvbmNhdChtb3N0UmVsZXZhbnRXaXRob3V0U3RvY2spXG4gICAgY29uc3QgY2F0ZWdvcnlNb3N0UmVsZXZhbnRzID0gZmlyc3RQcm9kdWN0cy5jb25jYXQobGFzdFByb2R1Y3RzKVxuICAgIGNvbnN0IHJlc3VsdEZpbmFsID0gY2F0ZWdvcnlNb3N0UmVsZXZhbnRzLnNsaWNlKGxpbWl0cy5vZmZzZXQsIGxpbWl0cy5vZmZzZXQgKyBsaW1pdHMubGltaXQpXG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogcmVzdWx0RmluYWwsXG4gICAgICBjb3VudDogdG90YWxSZXN1bHQuY291bnQsXG4gICAgICBtYXhpbXVtOiB0b3RhbFJlc3VsdC5tYXhpbXVtLFxuICAgICAgbWluaW1hbDogdG90YWxSZXN1bHQubWluaW1hbCxcbiAgICAgIGRpc3RpbmN0OiB0b3RhbFJlc3VsdC5kaXN0aW5jdCxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,42 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Shops, Where } from '@infrab4a/connect';
3
+ import { CatalogHelpersService, CatalogRepositoryService } from '../services';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../services";
6
+ export class ProfileSearchStrategy {
7
+ constructor(repositoryService, helpersService) {
8
+ this.repositoryService = repositoryService;
9
+ this.helpersService = helpersService;
10
+ }
11
+ async search(params, shop, optionsCache) {
12
+ const { profile, filters, limits, sort, mainGender } = params;
13
+ if (!profile) {
14
+ throw new Error('Profile is required for ProfileSearchStrategy');
15
+ }
16
+ const productCatalog = this.repositoryService.getProductCatalog();
17
+ const filterHelper = this.helpersService.getFilterHelper();
18
+ const sortHelper = this.helpersService.getSortHelper();
19
+ const fieldsHelper = this.helpersService.getFieldsHelper();
20
+ const repoParams = {
21
+ fields: fieldsHelper.getStandardFields(),
22
+ filters: {
23
+ tagsProfile: { operator: Where.LIKE, value: profile },
24
+ ...filterHelper.buildFilterQuery(filters || {}),
25
+ },
26
+ ...(sort ? { orderBy: sortHelper.buildSortQuery(sort) } : {}),
27
+ limits,
28
+ options: {
29
+ minimal: ['price'],
30
+ maximum: ['price'],
31
+ distinct: ['brand'],
32
+ },
33
+ };
34
+ return productCatalog.productRepository.findCatalog(repoParams, mainGender || (shop === Shops.MENSMARKET ? 'male' : 'female'), optionsCache);
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProfileSearchStrategy, deps: [{ token: i1.CatalogRepositoryService }, { token: i1.CatalogHelpersService }], target: i0.ɵɵFactoryTarget.Injectable }); }
37
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProfileSearchStrategy }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProfileSearchStrategy, decorators: [{
40
+ type: Injectable
41
+ }], ctorParameters: () => [{ type: i1.CatalogRepositoryService }, { type: i1.CatalogHelpersService }] });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1zZWFyY2guc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvc3RyYXRlZ2llcy9wcm9maWxlLXNlYXJjaC5zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBeUQsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBR3ZHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTs7O0FBRzdFLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFDbUIsaUJBQTJDLEVBQzNDLGNBQXFDO1FBRHJDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0MsbUJBQWMsR0FBZCxjQUFjLENBQXVCO0lBQ3JELENBQUM7SUFFSixLQUFLLENBQUMsTUFBTSxDQUNWLE1BQTJCLEVBQzNCLElBQVcsRUFDWCxZQUFpRDtRQUVqRCxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQTtRQUU3RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUE7UUFDbEUsQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBQ2pFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFLENBQUE7UUFDMUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUN0RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsRUFBRSxDQUFBO1FBRTFELE1BQU0sVUFBVSxHQUFHO1lBQ2pCLE1BQU0sRUFBRSxZQUFZLENBQUMsaUJBQWlCLEVBQUU7WUFDeEMsT0FBTyxFQUFFO2dCQUNQLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7Z0JBQ3JELEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7YUFDaEQ7WUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM3RCxNQUFNO1lBQ04sT0FBTyxFQUFFO2dCQUNQLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztnQkFDbEIsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO2dCQUNsQixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUM7YUFDcEI7U0FDRixDQUFBO1FBRUQsT0FBTyxjQUFjLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUNqRCxVQUFVLEVBQ1YsVUFBVSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQzdELFlBQVksQ0FDYixDQUFBO0lBQ0gsQ0FBQzsrR0ExQ1UscUJBQXFCO21IQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFByb2R1Y3QsIFJlcG9zaXRvcnlDYWNoZU9wdGlvbnMsIFJlcG9zaXRvcnlGaW5kUmVzdWx0LCBTaG9wcywgV2hlcmUgfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcblxuaW1wb3J0IHsgQ2F0YWxvZ1NlYXJjaFBhcmFtcywgQ2F0YWxvZ1NlYXJjaFN0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcydcbmltcG9ydCB7IENhdGFsb2dIZWxwZXJzU2VydmljZSwgQ2F0YWxvZ1JlcG9zaXRvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQcm9maWxlU2VhcmNoU3RyYXRlZ3kgaW1wbGVtZW50cyBDYXRhbG9nU2VhcmNoU3RyYXRlZ3kge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcG9zaXRvcnlTZXJ2aWNlOiBDYXRhbG9nUmVwb3NpdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBoZWxwZXJzU2VydmljZTogQ2F0YWxvZ0hlbHBlcnNTZXJ2aWNlLFxuICApIHt9XG5cbiAgYXN5bmMgc2VhcmNoKFxuICAgIHBhcmFtczogQ2F0YWxvZ1NlYXJjaFBhcmFtcyxcbiAgICBzaG9wOiBTaG9wcyxcbiAgICBvcHRpb25zQ2FjaGU/OiB7IGNhY2hlPzogUmVwb3NpdG9yeUNhY2hlT3B0aW9ucyB9LFxuICApOiBQcm9taXNlPFJlcG9zaXRvcnlGaW5kUmVzdWx0PFByb2R1Y3Q+PiB7XG4gICAgY29uc3QgeyBwcm9maWxlLCBmaWx0ZXJzLCBsaW1pdHMsIHNvcnQsIG1haW5HZW5kZXIgfSA9IHBhcmFtc1xuXG4gICAgaWYgKCFwcm9maWxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Byb2ZpbGUgaXMgcmVxdWlyZWQgZm9yIFByb2ZpbGVTZWFyY2hTdHJhdGVneScpXG4gICAgfVxuXG4gICAgY29uc3QgcHJvZHVjdENhdGFsb2cgPSB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmdldFByb2R1Y3RDYXRhbG9nKClcbiAgICBjb25zdCBmaWx0ZXJIZWxwZXIgPSB0aGlzLmhlbHBlcnNTZXJ2aWNlLmdldEZpbHRlckhlbHBlcigpXG4gICAgY29uc3Qgc29ydEhlbHBlciA9IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0U29ydEhlbHBlcigpXG4gICAgY29uc3QgZmllbGRzSGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWVsZHNIZWxwZXIoKVxuXG4gICAgY29uc3QgcmVwb1BhcmFtcyA9IHtcbiAgICAgIGZpZWxkczogZmllbGRzSGVscGVyLmdldFN0YW5kYXJkRmllbGRzKCksXG4gICAgICBmaWx0ZXJzOiB7XG4gICAgICAgIHRhZ3NQcm9maWxlOiB7IG9wZXJhdG9yOiBXaGVyZS5MSUtFLCB2YWx1ZTogcHJvZmlsZSB9LFxuICAgICAgICAuLi5maWx0ZXJIZWxwZXIuYnVpbGRGaWx0ZXJRdWVyeShmaWx0ZXJzIHx8IHt9KSxcbiAgICAgIH0sXG4gICAgICAuLi4oc29ydCA/IHsgb3JkZXJCeTogc29ydEhlbHBlci5idWlsZFNvcnRRdWVyeShzb3J0KSB9IDoge30pLFxuICAgICAgbGltaXRzLFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBtaW5pbWFsOiBbJ3ByaWNlJ10sXG4gICAgICAgIG1heGltdW06IFsncHJpY2UnXSxcbiAgICAgICAgZGlzdGluY3Q6IFsnYnJhbmQnXSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgcmV0dXJuIHByb2R1Y3RDYXRhbG9nLnByb2R1Y3RSZXBvc2l0b3J5LmZpbmRDYXRhbG9nKFxuICAgICAgcmVwb1BhcmFtcyxcbiAgICAgIG1haW5HZW5kZXIgfHwgKHNob3AgPT09IFNob3BzLk1FTlNNQVJLRVQgPyAnbWFsZScgOiAnZmVtYWxlJyksXG4gICAgICBvcHRpb25zQ2FjaGUsXG4gICAgKVxuICB9XG59XG4iXX0=
@@ -0,0 +1,123 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { isEmpty, Shops, Where, } from '@infrab4a/connect';
3
+ import { CatalogHelpersService, CatalogRepositoryService } from '../services';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../services";
6
+ export class TermSearchStrategy {
7
+ constructor(repositoryService, helpersService) {
8
+ this.repositoryService = repositoryService;
9
+ this.helpersService = helpersService;
10
+ this.productsByTerm = {};
11
+ }
12
+ async search(params, shop, _optionsCache) {
13
+ const { term, filters, limits, sort, mainGender } = params;
14
+ if (!term) {
15
+ throw new Error('Term is required for TermSearchStrategy');
16
+ }
17
+ const productIds = await this.findCatalogIdsBySearch(term, shop);
18
+ if (sort === 'most-relevant') {
19
+ return this.searchWithMostRelevant({
20
+ productIds,
21
+ filters,
22
+ limits,
23
+ shop,
24
+ mainGender,
25
+ });
26
+ }
27
+ return this.searchDefault({
28
+ productIds,
29
+ filters,
30
+ limits,
31
+ shop,
32
+ mainGender,
33
+ fields: this.helpersService.getFieldsHelper().getStandardFields(),
34
+ });
35
+ }
36
+ async searchWithMostRelevant(params) {
37
+ const { productIds, filters, shop, mainGender } = params;
38
+ const productCatalog = this.repositoryService.getProductCatalog();
39
+ const filterHelper = this.helpersService.getFilterHelper();
40
+ const totalResult = await productCatalog.productRepository.findCatalog({
41
+ fields: ['id', 'stock', 'gender'],
42
+ filters: {
43
+ id: { operator: Where.IN, value: productIds },
44
+ published: { operator: Where.EQUALS, value: true },
45
+ ...filterHelper.buildFilterQuery(filters || {}),
46
+ },
47
+ options: {
48
+ minimal: ['price'],
49
+ maximum: ['price'],
50
+ ...(isEmpty(filters?.brands) ? { distinct: ['brand'] } : {}),
51
+ },
52
+ });
53
+ return this.sortByTermRelevance({
54
+ productIds,
55
+ totalResult,
56
+ limits: params.limits,
57
+ filters,
58
+ fieldsHelper: this.helpersService.getFieldsHelper(),
59
+ });
60
+ }
61
+ async searchDefault(params) {
62
+ const { productIds, filters, limits, shop, mainGender, fields } = params;
63
+ const productCatalog = this.repositoryService.getProductCatalog();
64
+ const filterHelper = this.helpersService.getFilterHelper();
65
+ return productCatalog.productRepository.findCatalog({
66
+ fields,
67
+ filters: {
68
+ id: { operator: Where.IN, value: productIds },
69
+ published: { operator: Where.EQUALS, value: true },
70
+ ...filterHelper.buildFilterQuery(filters || {}),
71
+ },
72
+ limits,
73
+ options: {
74
+ minimal: ['price'],
75
+ maximum: ['price'],
76
+ distinct: ['brand'],
77
+ },
78
+ });
79
+ }
80
+ sortByTermRelevance(params) {
81
+ const { productIds, totalResult, limits, filters, fieldsHelper } = params;
82
+ // const defaultGender = filters?.gender?.at(0) || 'male'
83
+ const stockData = totalResult.data.filter((product) => product.stock.quantity > 0);
84
+ const stockOut = totalResult.data.filter((product) => product.stock.quantity <= 0);
85
+ const productIdsStock = productIds.filter((product) => stockData.some((result) => result.id === product));
86
+ const productIdsStockOut = productIds.filter((product) => stockOut.some((result) => result.id === product));
87
+ const limitedProductId = productIdsStock
88
+ .concat(productIdsStockOut)
89
+ .slice(limits.offset, limits.offset + limits.limit);
90
+ return this.getDetailedProducts(limitedProductId, totalResult, fieldsHelper);
91
+ }
92
+ async getDetailedProducts(orderedId, totalResult, fieldsHelper) {
93
+ const productCatalog = this.repositoryService.getProductCatalog();
94
+ const fields = fieldsHelper.getStandardFields();
95
+ const productResult = await productCatalog.productRepository.findCatalog({
96
+ filters: {
97
+ id: { operator: Where.IN, value: orderedId },
98
+ },
99
+ fields,
100
+ });
101
+ return {
102
+ data: orderedId.map((id) => productResult.data.find((product) => product.id === id)).filter(Boolean),
103
+ count: totalResult.count,
104
+ maximum: totalResult.maximum,
105
+ minimal: totalResult.minimal,
106
+ distinct: totalResult.distinct,
107
+ };
108
+ }
109
+ async findCatalogIdsBySearch(term, shop) {
110
+ if (this.productsByTerm[term])
111
+ return this.productsByTerm[term];
112
+ const productServices = this.repositoryService.getProductServices();
113
+ return (this.productsByTerm[term] = await productServices.productSearch
114
+ .search(term, 999, shop === Shops.GLAMSHOP ? 'female' : 'male')
115
+ .then((products) => [...new Set(products.map((product) => product.id))]));
116
+ }
117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TermSearchStrategy, deps: [{ token: i1.CatalogRepositoryService }, { token: i1.CatalogHelpersService }], target: i0.ɵɵFactoryTarget.Injectable }); }
118
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TermSearchStrategy }); }
119
+ }
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TermSearchStrategy, decorators: [{
121
+ type: Injectable
122
+ }], ctorParameters: () => [{ type: i1.CatalogRepositoryService }, { type: i1.CatalogHelpersService }] });
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybS1zZWFyY2guc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvc3RyYXRlZ2llcy90ZXJtLXNlYXJjaC5zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFDTCxPQUFPLEVBS1AsS0FBSyxFQUNMLEtBQUssR0FDTixNQUFNLG1CQUFtQixDQUFBO0FBRzFCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTs7O0FBUzdFLE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFDbUIsaUJBQTJDLEVBQzNDLGNBQXFDO1FBRHJDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0MsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBSmhELG1CQUFjLEdBQTZCLEVBQUUsQ0FBQTtJQUtsRCxDQUFDO0lBRUosS0FBSyxDQUFDLE1BQU0sQ0FDVixNQUEyQixFQUMzQixJQUFXLEVBQ1gsYUFBa0Q7UUFFbEQsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUE7UUFFMUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFBO1FBQzVELENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFFaEUsSUFBSSxJQUFJLEtBQUssZUFBZSxFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7Z0JBQ2pDLFVBQVU7Z0JBQ1YsT0FBTztnQkFDUCxN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QUFHLE1BQU0sZUFBZSxDQUFDLGFBQWE7YUFDcEUsTUFBTSxDQUFnQixJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksS0FBSyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQzthQUM3RSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM3RSxDQUFDOytHQXpJVSxrQkFBa0I7bUhBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgaXNFbXB0eSxcbiAgUHJvZHVjdCxcbiAgUHJvZHVjdFNlYXJjaCxcbiAgUmVwb3NpdG9yeUNhY2hlT3B0aW9ucyxcbiAgUmVwb3NpdG9yeUZpbmRSZXN1bHQsXG4gIFNob3BzLFxuICBXaGVyZSxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5cbmltcG9ydCB7IENhdGFsb2dTZWFyY2hQYXJhbXMsIENhdGFsb2dTZWFyY2hTdHJhdGVneSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnXG5pbXBvcnQgeyBDYXRhbG9nSGVscGVyc1NlcnZpY2UsIENhdGFsb2dSZXBvc2l0b3J5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJ1xuXG5pbXBvcnQge1xuICBTb3J0QnlUZXJtUmVsZXZhbmNlUGFyYW1zLFxuICBUZXJtU2VhcmNoRGVmYXVsdFBhcmFtcyxcbiAgVGVybVNlYXJjaE1vc3RSZWxldmFudFBhcmFtcyxcbn0gZnJvbSAnLi90eXBlcy9zdHJhdGVneS1wYXJhbXMudHlwZSdcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRlcm1TZWFyY2hTdHJhdGVneSBpbXBsZW1lbnRzIENhdGFsb2dTZWFyY2hTdHJhdGVneSB7XG4gIHByaXZhdGUgcHJvZHVjdHNCeVRlcm06IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXBvc2l0b3J5U2VydmljZTogQ2F0YWxvZ1JlcG9zaXRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGVscGVyc1NlcnZpY2U6IENhdGFsb2dIZWxwZXJzU2VydmljZSxcbiAgKSB7fVxuXG4gIGFzeW5jIHNlYXJjaChcbiAgICBwYXJhbXM6IENhdGFsb2dTZWFyY2hQYXJhbXMsXG4gICAgc2hvcDogU2hvcHMsXG4gICAgX29wdGlvbnNDYWNoZT86IHsgY2FjaGU/OiBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zIH0sXG4gICk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8UHJvZHVjdD4+IHtcbiAgICBjb25zdCB7IHRlcm0sIGZpbHRlcnMsIGxpbWl0cywgc29ydCwgbWFpbkdlbmRlciB9ID0gcGFyYW1zXG5cbiAgICBpZiAoIXRlcm0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGVybSBpcyByZXF1aXJlZCBmb3IgVGVybVNlYXJjaFN0cmF0ZWd5JylcbiAgICB9XG5cbiAgICBjb25zdCBwcm9kdWN0SWRzID0gYXdhaXQgdGhpcy5maW5kQ2F0YWxvZ0lkc0J5U2VhcmNoKHRlcm0sIHNob3ApXG5cbiAgICBpZiAoc29ydCA9PT0gJ21vc3QtcmVsZXZhbnQnKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZWFyY2hXaXRoTW9zdFJlbGV2YW50KHtcbiAgICAgICAgcHJvZHVjdElkcyxcbiAgICAgICAgZmlsdGVycyxcbiAgICAgICAgbGltaXRzLFxuICAgICAgICBzaG9wLFxuICAgICAgICBtYWluR2VuZGVyLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zZWFyY2hEZWZhdWx0KHtcbiAgICAgIHByb2R1Y3RJZHMsXG4gICAgICBmaWx0ZXJzLFxuICAgICAgbGltaXRzLFxuICAgICAgc2hvcCxcbiAgICAgIG1haW5HZW5kZXIsXG4gICAgICBmaWVsZHM6IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0RmllbGRzSGVscGVyKCkuZ2V0U3RhbmRhcmRGaWVsZHMoKSxcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZWFyY2hXaXRoTW9zdFJlbGV2YW50KHBhcmFtczogVGVybVNlYXJjaE1vc3RSZWxldmFudFBhcmFtcyk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8UHJvZHVjdD4+IHtcbiAgICBjb25zdCB7IHByb2R1Y3RJZHMsIGZpbHRlcnMsIHNob3AsIG1haW5HZW5kZXIgfSA9IHBhcmFtc1xuICAgIGNvbnN0IHByb2R1Y3RDYXRhbG9nID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZS5nZXRQcm9kdWN0Q2F0YWxvZygpXG4gICAgY29uc3QgZmlsdGVySGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWx0ZXJIZWxwZXIoKVxuXG4gICAgY29uc3QgdG90YWxSZXN1bHQgPSBhd2FpdCBwcm9kdWN0Q2F0YWxvZy5wcm9kdWN0UmVwb3NpdG9yeS5maW5kQ2F0YWxvZyhcbiAgICAgIHtcbiAgICAgICAgZmllbGRzOiBbJ2lkJywgJ3N0b2NrJywgJ2dlbmRlciddLFxuICAgICAgICBmaWx0ZXJzOiB7XG4gICAgICAgICAgaWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogcHJvZHVjdElkcyB9LFxuICAgICAgICAgIHB1Ymxpc2hlZDogeyBvcGVyYXRvcjogV2hlcmUuRVFVQUxTLCB2YWx1ZTogdHJ1ZSB9LFxuICAgICAgICAgIC4uLmZpbHRlckhlbHBlci5idWlsZEZpbHRlclF1ZXJ5KGZpbHRlcnMgfHwge30pLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgbWluaW1hbDogWydwcmljZSddLFxuICAgICAgICAgIG1heGltdW06IFsncHJpY2UnXSxcbiAgICAgICAgICAuLi4oaXNFbXB0eShmaWx0ZXJzPy5icmFuZHMpID8geyBkaXN0aW5jdDogWydicmFuZCddIH0gOiB7fSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgLy8gbWFpbkdlbmRlciB8fCAoc2hvcCA9PT0gU2hvcHMuTUVOU01BUktFVCA/ICdtYWxlJyA6ICdmZW1hbGUnKSxcbiAgICApXG5cbiAgICByZXR1cm4gdGhpcy5zb3J0QnlUZXJtUmVsZXZhbmNlKHtcbiAgICAgIHByb2R1Y3RJZHMsXG4gICAgICB0b3RhbFJlc3VsdCxcbiAgICAgIGxpbWl0czogcGFyYW1zLmxpbWl0cyxcbiAgICAgIGZpbHRlcnMsXG4gICAgICBmaWVsZHNIZWxwZXI6IHRoaXMuaGVscGVyc1NlcnZpY2UuZ2V0RmllbGRzSGVscGVyKCksXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2VhcmNoRGVmYXVsdChwYXJhbXM6IFRlcm1TZWFyY2hEZWZhdWx0UGFyYW1zKTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZFJlc3VsdDxQcm9kdWN0Pj4ge1xuICAgIGNvbnN0IHsgcHJvZHVjdElkcywgZmlsdGVycywgbGltaXRzLCBzaG9wLCBtYWluR2VuZGVyLCBmaWVsZHMgfSA9IHBhcmFtc1xuICAgIGNvbnN0IHByb2R1Y3RDYXRhbG9nID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZS5nZXRQcm9kdWN0Q2F0YWxvZygpXG4gICAgY29uc3QgZmlsdGVySGVscGVyID0gdGhpcy5oZWxwZXJzU2VydmljZS5nZXRGaWx0ZXJIZWxwZXIoKVxuXG4gICAgcmV0dXJuIHByb2R1Y3RDYXRhbG9nLnByb2R1Y3RSZXBvc2l0b3J5LmZpbmRDYXRhbG9nKFxuICAgICAge1xuICAgICAgICBmaWVsZHMsXG4gICAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgICBpZDogeyBvcGVyYXRvcjogV2hlcmUuSU4sIHZhbHVlOiBwcm9kdWN0SWRzIH0sXG4gICAgICAgICAgcHVibGlzaGVkOiB7IG9wZXJhdG9yOiBXaGVyZS5FUVVBTFMsIHZhbHVlOiB0cnVlIH0sXG4gICAgICAgICAgLi4uZmlsdGVySGVscGVyLmJ1aWxkRmlsdGVyUXVlcnkoZmlsdGVycyB8fCB7fSksXG4gICAgICAgIH0sXG4gICAgICAgIGxpbWl0cyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIG1pbmltYWw6IFsncHJpY2UnXSxcbiAgICAgICAgICBtYXhpbXVtOiBbJ3ByaWNlJ10sXG4gICAgICAgICAgZGlzdGluY3Q6IFsnYnJhbmQnXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAvLyBtYWluR2VuZGVyIHx8IChzaG9wID09PSBTaG9wcy5NRU5TTUFSS0VUID8gJ21hbGUnIDogJ2ZlbWFsZScpLFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgc29ydEJ5VGVybVJlbGV2YW5jZShwYXJhbXM6IFNvcnRCeVRlcm1SZWxldmFuY2VQYXJhbXMpIHtcbiAgICBjb25zdCB7IHByb2R1Y3RJZHMsIHRvdGFsUmVzdWx0LCBsaW1pdHMsIGZpbHRlcnMsIGZpZWxkc0hlbHBlciB9ID0gcGFyYW1zXG4gICAgLy8gY29uc3QgZGVmYXVsdEdlbmRlciA9IGZpbHRlcnM/LmdlbmRlcj8uYXQoMCkgfHwgJ21hbGUnXG4gICAgY29uc3Qgc3RvY2tEYXRhID0gdG90YWxSZXN1bHQuZGF0YS5maWx0ZXIoKHByb2R1Y3Q6IGFueSkgPT4gcHJvZHVjdC5zdG9jay5xdWFudGl0eSA+IDApXG4gICAgY29uc3Qgc3RvY2tPdXQgPSB0b3RhbFJlc3VsdC5kYXRhLmZpbHRlcigocHJvZHVjdDogYW55KSA9PiBwcm9kdWN0LnN0b2NrLnF1YW50aXR5IDw9IDApXG4gICAgY29uc3QgcHJvZHVjdElkc1N0b2NrID0gcHJvZHVjdElkcy5maWx0ZXIoKHByb2R1Y3QpID0+IHN0b2NrRGF0YS5zb21lKChyZXN1bHQ6IGFueSkgPT4gcmVzdWx0LmlkID09PSBwcm9kdWN0KSlcbiAgICBjb25zdCBwcm9kdWN0SWRzU3RvY2tPdXQgPSBwcm9kdWN0SWRzLmZpbHRlcigocHJvZHVjdCkgPT4gc3RvY2tPdXQuc29tZSgocmVzdWx0OiBhbnkpID0+IHJlc3VsdC5pZCA9PT0gcHJvZHVjdCkpXG4gICAgY29uc3QgbGltaXRlZFByb2R1Y3RJZCA9IHByb2R1Y3RJZHNTdG9ja1xuICAgICAgLmNvbmNhdChwcm9kdWN0SWRzU3RvY2tPdXQpXG4gICAgICAuc2xpY2UobGltaXRzLm9mZnNldCwgbGltaXRzLm9mZnNldCArIGxpbWl0cy5saW1pdClcblxuICAgIHJldHVybiB0aGlzLmdldERldGFpbGVkUHJvZHVjdHMobGltaXRlZFByb2R1Y3RJZCwgdG90YWxSZXN1bHQsIGZpZWxkc0hlbHBlcilcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RGV0YWlsZWRQcm9kdWN0cyhvcmRlcmVkSWQ6IHN0cmluZ1tdLCB0b3RhbFJlc3VsdDogYW55LCBmaWVsZHNIZWxwZXI6IGFueSkge1xuICAgIGNvbnN0IHByb2R1Y3RDYXRhbG9nID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZS5nZXRQcm9kdWN0Q2F0YWxvZygpXG4gICAgY29uc3QgZmllbGRzID0gZmllbGRzSGVscGVyLmdldFN0YW5kYXJkRmllbGRzKClcbiAgICBjb25zdCBwcm9kdWN0UmVzdWx0ID0gYXdhaXQgcHJvZHVjdENhdGFsb2cucHJvZHVjdFJlcG9zaXRvcnkuZmluZENhdGFsb2coe1xuICAgICAgZmlsdGVyczoge1xuICAgICAgICBpZDogeyBvcGVyYXRvcjogV2hlcmUuSU4sIHZhbHVlOiBvcmRlcmVkSWQgfSxcbiAgICAgIH0sXG4gICAgICBmaWVsZHMsXG4gICAgfSlcblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiBvcmRlcmVkSWQubWFwKChpZCkgPT4gcHJvZHVjdFJlc3VsdC5kYXRhLmZpbmQoKHByb2R1Y3QpID0+IHByb2R1Y3QuaWQgPT09IGlkKSkuZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgY291bnQ6IHRvdGFsUmVzdWx0LmNvdW50LFxuICAgICAgbWF4aW11bTogdG90YWxSZXN1bHQubWF4aW11bSxcbiAgICAgIG1pbmltYWw6IHRvdGFsUmVzdWx0Lm1pbmltYWwsXG4gICAgICBkaXN0aW5jdDogdG90YWxSZXN1bHQuZGlzdGluY3QsXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmaW5kQ2F0YWxvZ0lkc0J5U2VhcmNoKHRlcm06IHN0cmluZywgc2hvcDogU2hvcHMpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgaWYgKHRoaXMucHJvZHVjdHNCeVRlcm1bdGVybV0pIHJldHVybiB0aGlzLnByb2R1Y3RzQnlUZXJtW3Rlcm1dXG5cbiAgICBjb25zdCBwcm9kdWN0U2VydmljZXMgPSB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmdldFByb2R1Y3RTZXJ2aWNlcygpXG5cbiAgICByZXR1cm4gKHRoaXMucHJvZHVjdHNCeVRlcm1bdGVybV0gPSBhd2FpdCBwcm9kdWN0U2VydmljZXMucHJvZHVjdFNlYXJjaFxuICAgICAgLnNlYXJjaDxQcm9kdWN0U2VhcmNoPih0ZXJtLCA5OTksIHNob3AgPT09IFNob3BzLkdMQU1TSE9QID8gJ2ZlbWFsZScgOiAnbWFsZScpXG4gICAgICAudGhlbigocHJvZHVjdHMpID0+IFsuLi5uZXcgU2V0KHByb2R1Y3RzLm1hcCgocHJvZHVjdCkgPT4gcHJvZHVjdC5pZCkpXSkpXG4gIH1cbn1cbiJdfQ==