@infrab4a/connect-angular 4.5.3 → 4.5.4-beta.0

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 (116) hide show
  1. package/angular-connect.module.d.ts +26 -27
  2. package/angular-elastic-search.module.d.ts +9 -9
  3. package/angular-firebase-auth.module.d.ts +11 -11
  4. package/angular-firestore.module.d.ts +18 -17
  5. package/angular-hasura-graphql.module.d.ts +16 -16
  6. package/consts/backend-url.const.d.ts +1 -1
  7. package/consts/category-structure.d.ts +1 -1
  8. package/consts/default-shop.const.d.ts +1 -1
  9. package/consts/es-config.const.d.ts +1 -1
  10. package/consts/firebase-const.d.ts +3 -3
  11. package/consts/hasura-options.const.d.ts +1 -1
  12. package/consts/index.d.ts +7 -7
  13. package/consts/persistence.const.d.ts +1 -1
  14. package/consts/storage-base-url.const.d.ts +1 -1
  15. package/esm2020/angular-connect.module.mjs +115 -0
  16. package/esm2020/angular-elastic-search.module.mjs +34 -0
  17. package/esm2020/angular-firebase-auth.module.mjs +115 -0
  18. package/esm2020/angular-firestore.module.mjs +504 -0
  19. package/esm2020/angular-hasura-graphql.module.mjs +287 -0
  20. package/{esm2022 → esm2020}/consts/backend-url.const.mjs +1 -1
  21. package/{esm2022 → esm2020}/consts/category-structure.mjs +2 -2
  22. package/{esm2022 → esm2020}/consts/default-shop.const.mjs +2 -2
  23. package/{esm2022 → esm2020}/consts/es-config.const.mjs +2 -2
  24. package/{esm2022 → esm2020}/consts/firebase-const.mjs +4 -4
  25. package/{esm2022 → esm2020}/consts/hasura-options.const.mjs +2 -2
  26. package/{esm2022 → esm2020}/consts/index.mjs +8 -8
  27. package/{esm2022 → esm2020}/consts/persistence.const.mjs +2 -2
  28. package/{esm2022 → esm2020}/consts/storage-base-url.const.mjs +2 -2
  29. package/{esm2022 → esm2020}/helpers/index.mjs +2 -2
  30. package/{esm2022 → esm2020}/helpers/mobile-operation-system-checker.helper.mjs +7 -7
  31. package/{esm2022 → esm2020}/index.mjs +7 -7
  32. package/{esm2022 → esm2020}/infrab4a-connect-angular.mjs +4 -4
  33. package/{esm2022 → esm2020}/persistence/cookie-data-persistence.mjs +22 -22
  34. package/{esm2022 → esm2020}/persistence/data-persistence.mjs +2 -2
  35. package/{esm2022 → esm2020}/persistence/index.mjs +3 -3
  36. package/{esm2022 → esm2020}/services/auth.service.mjs +37 -37
  37. package/{esm2022 → esm2020}/services/cart.service.mjs +282 -282
  38. package/{esm2022 → esm2020}/services/catalog/adapters/category-structure.adapter.mjs +2 -2
  39. package/{esm2022 → esm2020}/services/catalog/adapters/index.mjs +4 -4
  40. package/{esm2022 → esm2020}/services/catalog/adapters/new-category-structure.adapter.mjs +43 -43
  41. package/{esm2022 → esm2020}/services/catalog/adapters/old-category-structure.adapter.mjs +23 -23
  42. package/esm2020/services/catalog/catalog.service.mjs +202 -0
  43. package/{esm2022 → esm2020}/services/catalog/category.service.mjs +51 -51
  44. package/{esm2022 → esm2020}/services/catalog/enums/index.mjs +2 -2
  45. package/{esm2022 → esm2020}/services/catalog/enums/product-sorts.enum.mjs +11 -11
  46. package/{esm2022 → esm2020}/services/catalog/index.mjs +8 -8
  47. package/{esm2022 → esm2020}/services/catalog/models/category-with-tree.model.mjs +10 -10
  48. package/{esm2022 → esm2020}/services/catalog/models/index.mjs +2 -2
  49. package/{esm2022 → esm2020}/services/catalog/types/index.mjs +2 -2
  50. package/{esm2022 → esm2020}/services/catalog/types/product-sort.type.mjs +2 -2
  51. package/{esm2022 → esm2020}/services/catalog/wishlist.service.mjs +119 -119
  52. package/{esm2022 → esm2020}/services/checkout-subscription.service.mjs +50 -50
  53. package/{esm2022 → esm2020}/services/checkout.service.mjs +68 -68
  54. package/{esm2022 → esm2020}/services/coupon.service.mjs +260 -260
  55. package/{esm2022 → esm2020}/services/helpers/index.mjs +2 -2
  56. package/{esm2022 → esm2020}/services/helpers/util.helper.mjs +18 -18
  57. package/{esm2022 → esm2020}/services/home-shop.service.mjs +125 -125
  58. package/{esm2022 → esm2020}/services/index.mjs +11 -11
  59. package/{esm2022 → esm2020}/services/order.service.mjs +30 -30
  60. package/{esm2022 → esm2020}/services/shipping.service.mjs +96 -96
  61. package/{esm2022 → esm2020}/services/types/index.mjs +3 -3
  62. package/{esm2022 → esm2020}/services/types/required-checkout-data.type.mjs +2 -2
  63. package/{esm2022 → esm2020}/services/types/required-checkout-subscription-data.type.mjs +2 -2
  64. package/esm2020/services/types/shipping-methods.type.mjs +2 -0
  65. package/{esm2022 → esm2020}/types/firebase-app-config.type.mjs +2 -2
  66. package/{esm2022 → esm2020}/types/index.mjs +2 -2
  67. package/fesm2015/infrab4a-connect-angular.mjs +2473 -0
  68. package/fesm2015/infrab4a-connect-angular.mjs.map +1 -0
  69. package/{fesm2022 → fesm2020}/infrab4a-connect-angular.mjs +2344 -2370
  70. package/fesm2020/infrab4a-connect-angular.mjs.map +1 -0
  71. package/helpers/index.d.ts +1 -1
  72. package/helpers/mobile-operation-system-checker.helper.d.ts +3 -3
  73. package/index.d.ts +6 -6
  74. package/package.json +12 -6
  75. package/persistence/cookie-data-persistence.d.ts +10 -10
  76. package/persistence/data-persistence.d.ts +6 -6
  77. package/persistence/index.d.ts +2 -2
  78. package/services/auth.service.d.ts +18 -18
  79. package/services/cart.service.d.ts +42 -42
  80. package/services/catalog/adapters/category-structure.adapter.d.ts +4 -4
  81. package/services/catalog/adapters/index.d.ts +3 -3
  82. package/services/catalog/adapters/new-category-structure.adapter.d.ts +12 -12
  83. package/services/catalog/adapters/old-category-structure.adapter.d.ts +10 -10
  84. package/services/catalog/catalog.service.d.ts +88 -89
  85. package/services/catalog/category.service.d.ts +20 -20
  86. package/services/catalog/enums/index.d.ts +1 -1
  87. package/services/catalog/enums/product-sorts.enum.d.ts +9 -9
  88. package/services/catalog/index.d.ts +7 -7
  89. package/services/catalog/models/category-with-tree.model.d.ts +4 -4
  90. package/services/catalog/models/index.d.ts +1 -1
  91. package/services/catalog/types/index.d.ts +1 -1
  92. package/services/catalog/types/product-sort.type.d.ts +2 -2
  93. package/services/catalog/wishlist.service.d.ts +40 -40
  94. package/services/checkout-subscription.service.d.ts +19 -19
  95. package/services/checkout.service.d.ts +27 -27
  96. package/services/coupon.service.d.ts +33 -33
  97. package/services/helpers/index.d.ts +1 -1
  98. package/services/helpers/util.helper.d.ts +3 -3
  99. package/services/home-shop.service.d.ts +26 -26
  100. package/services/index.d.ts +10 -10
  101. package/services/order.service.d.ts +13 -13
  102. package/services/shipping.service.d.ts +19 -19
  103. package/services/types/index.d.ts +2 -2
  104. package/services/types/required-checkout-data.type.d.ts +2 -2
  105. package/services/types/required-checkout-subscription-data.type.d.ts +2 -2
  106. package/services/types/shipping-methods.type.d.ts +12 -12
  107. package/types/firebase-app-config.type.d.ts +1 -1
  108. package/types/index.d.ts +1 -1
  109. package/esm2022/angular-connect.module.mjs +0 -133
  110. package/esm2022/angular-elastic-search.module.mjs +0 -34
  111. package/esm2022/angular-firebase-auth.module.mjs +0 -115
  112. package/esm2022/angular-firestore.module.mjs +0 -485
  113. package/esm2022/angular-hasura-graphql.module.mjs +0 -287
  114. package/esm2022/services/catalog/catalog.service.mjs +0 -228
  115. package/esm2022/services/types/shipping-methods.type.mjs +0 -2
  116. package/fesm2022/infrab4a-connect-angular.mjs.map +0 -1
@@ -1,8 +1,8 @@
1
- export * from './adapters';
2
- export * from './catalog.service';
3
- export * from './category.service';
4
- export * from './enums';
5
- export * from './models';
6
- export * from './types';
7
- export * from './wishlist.service';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsb0JBQW9CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FkYXB0ZXJzJ1xuZXhwb3J0ICogZnJvbSAnLi9jYXRhbG9nLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2NhdGVnb3J5LnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2VudW1zJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJ1xuZXhwb3J0ICogZnJvbSAnLi93aXNobGlzdC5zZXJ2aWNlJ1xuIl19
1
+ export * from './adapters';
2
+ export * from './catalog.service';
3
+ export * from './category.service';
4
+ export * from './enums';
5
+ export * from './models';
6
+ export * from './types';
7
+ export * from './wishlist.service';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsb0JBQW9CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FkYXB0ZXJzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2NhdGFsb2cuc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi9jYXRlZ29yeS5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2VudW1zJ1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscydcclxuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcclxuZXhwb3J0ICogZnJvbSAnLi93aXNobGlzdC5zZXJ2aWNlJ1xyXG4iXX0=
@@ -1,10 +1,10 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktd2l0aC10cmVlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL21vZGVscy9jYXRlZ29yeS13aXRoLXRyZWUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFNUMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFFBQVE7Q0FHN0M7QUFEQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzs7a0RBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInXG5cbmltcG9ydCB7IENhdGVnb3J5IH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5cbmV4cG9ydCBjbGFzcyBDYXRlZ29yeVdpdGhUcmVlIGV4dGVuZHMgQ2F0ZWdvcnkge1xuICBAVHlwZSgoKSA9PiBDYXRlZ29yeVdpdGhUcmVlKVxuICBjaGlsZHJlbj86IENhdGVnb3J5V2l0aFRyZWVbXVxufVxuIl19
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktd2l0aC10cmVlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL21vZGVscy9jYXRlZ29yeS13aXRoLXRyZWUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFNUMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFFBQVE7Q0FHN0M7QUFGQztJQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzs7a0RBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInXHJcblxyXG5pbXBvcnQgeyBDYXRlZ29yeSB9IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5cclxuZXhwb3J0IGNsYXNzIENhdGVnb3J5V2l0aFRyZWUgZXh0ZW5kcyBDYXRlZ29yeSB7XHJcbiAgQFR5cGUoKCkgPT4gQ2F0ZWdvcnlXaXRoVHJlZSlcclxuICBjaGlsZHJlbj86IENhdGVnb3J5V2l0aFRyZWVbXVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
- export * from './category-with-tree.model';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhdGVnb3J5LXdpdGgtdHJlZS5tb2RlbCdcbiJdfQ==
1
+ export * from './category-with-tree.model';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhdGVnb3J5LXdpdGgtdHJlZS5tb2RlbCdcclxuIl19
@@ -1,2 +1,2 @@
1
- export * from './product-sort.type';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1zb3J0LnR5cGUnXG4iXX0=
1
+ export * from './product-sort.type';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1zb3J0LnR5cGUnXHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zb3J0LnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvdHlwZXMvcHJvZHVjdC1zb3J0LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2R1Y3RTb3J0cyB9IGZyb20gJy4uL2VudW1zJ1xuXG5leHBvcnQgdHlwZSBQcm9kdWN0U29ydCA9IGAke1Byb2R1Y3RTb3J0c31gXG4iXX0=
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zb3J0LnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvdHlwZXMvcHJvZHVjdC1zb3J0LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2R1Y3RTb3J0cyB9IGZyb20gJy4uL2VudW1zJ1xyXG5cclxuZXhwb3J0IHR5cGUgUHJvZHVjdFNvcnQgPSBgJHtQcm9kdWN0U29ydHN9YFxyXG4iXX0=
@@ -1,119 +1,119 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { ProductsIndex, Shops, Wishlist, } from '@infrab4a/connect';
3
- import { DEFAULT_SHOP } from '../../consts';
4
- import { NewCategoryStructureAdapter } from './adapters';
5
- import { CatalogService } from './catalog.service';
6
- import { CategoryService } from './category.service';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@infrab4a/connect";
9
- export class WishlistService {
10
- constructor(wishlistRepository, shop, productRepository, categoryFilterRepository, categoryRepository, productStockNotificationRepository, productIndex) {
11
- this.wishlistRepository = wishlistRepository;
12
- this.shop = shop;
13
- const categoryStructureAdapter = new NewCategoryStructureAdapter(wishlistRepository);
14
- this.catalogService = new CatalogService(productRepository, productStockNotificationRepository, categoryRepository, categoryStructureAdapter, shop, productIndex);
15
- this.categoryService = new CategoryService(productRepository, categoryRepository, categoryFilterRepository, categoryStructureAdapter, shop);
16
- }
17
- getCatalogService() {
18
- return this.catalogService;
19
- }
20
- getCategoryService() {
21
- return this.categoryService;
22
- }
23
- async create({ personId, title, description, published, userFullName, userPhoto, theme, bannerUrl, }) {
24
- const data = {
25
- slug: '',
26
- name: title,
27
- description,
28
- metadata: {
29
- title: `${userFullName} - ${title}`,
30
- description: `${userFullName} - ${description}`,
31
- },
32
- shop: this.shop,
33
- shops: [this.shop],
34
- personId,
35
- personName: userFullName,
36
- personPhoto: userPhoto,
37
- brandCategory: false,
38
- published,
39
- theme,
40
- bannerUrl,
41
- };
42
- const newWishlist = await this.wishlistRepository.create(data);
43
- await this.wishlistRepository.update({ id: newWishlist.id, slug: newWishlist.id });
44
- return Wishlist.toInstance({ ...newWishlist.toPlain(), slug: newWishlist.id });
45
- }
46
- update({ id, title, description, published, userFullName, userPhoto, theme, bannerUrl, }) {
47
- const data = {
48
- id,
49
- name: title,
50
- description,
51
- published,
52
- metadata: {
53
- title: `${userFullName} - ${title}`,
54
- description: `${userFullName} - ${description}`,
55
- },
56
- personName: userFullName,
57
- personPhoto: userPhoto,
58
- theme,
59
- bannerUrl,
60
- };
61
- return this.wishlistRepository.update(data);
62
- }
63
- delete(wishlistId) {
64
- return this.wishlistRepository.delete({ id: wishlistId });
65
- }
66
- getWishlistBySlug(slug) {
67
- const [id] = slug.split('-');
68
- if (+id)
69
- return this.wishlistRepository.get({ id });
70
- return this.wishlistRepository.getWishlistBySlug(slug);
71
- }
72
- getWishlistsByPerson(personId) {
73
- return this.wishlistRepository.getWishlistByPerson(personId);
74
- }
75
- async addProduct(wishlistId, productId) {
76
- const wishlist = await this.wishlistRepository.get({ id: wishlistId });
77
- const hasProduct = wishlist.products.some((p) => p == productId);
78
- if (!hasProduct) {
79
- wishlist.products = [...wishlist.products, productId];
80
- return this.wishlistRepository.update({ id: wishlistId, products: wishlist.products });
81
- }
82
- return wishlist;
83
- }
84
- async removeProduct(wishlistId, productId) {
85
- const wishlist = await this.wishlistRepository.get({ id: wishlistId });
86
- const productIndex = wishlist.products.findIndex((p) => p == productId);
87
- if (productIndex != -1) {
88
- wishlist.products.splice(productIndex, 1);
89
- if (!wishlist.products.length)
90
- return this.wishlistRepository.update({ id: wishlistId, products: { action: 'remove' } });
91
- return this.wishlistRepository.update({ id: wishlistId, products: wishlist.products });
92
- }
93
- return wishlist;
94
- }
95
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WishlistService, deps: [{ token: 'WishlistRepository' }, { token: DEFAULT_SHOP }, { token: 'ProductRepository' }, { token: 'CategoryFilterRepository' }, { token: 'CategoryRepository' }, { token: 'ProductStockNotificationRepository' }, { token: i1.ProductsIndex }], target: i0.ɵɵFactoryTarget.Injectable }); }
96
- static { thisprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WishlistService }); }
97
- }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WishlistService, decorators: [{
99
- type: Injectable
100
- }], ctorParameters: () => [{ type: undefined, decorators: [{
101
- type: Inject,
102
- args: ['WishlistRepository']
103
- }] }, { type: i1.Shops, decorators: [{
104
- type: Inject,
105
- args: [DEFAULT_SHOP]
106
- }] }, { type: undefined, decorators: [{
107
- type: Inject,
108
- args: ['ProductRepository']
109
- }] }, { type: undefined, decorators: [{
110
- type: Inject,
111
- args: ['CategoryFilterRepository']
112
- }] }, { type: undefined, decorators: [{
113
- type: Inject,
114
- args: ['CategoryRepository']
115
- }] }, { type: undefined, decorators: [{
116
- type: Inject,
117
- args: ['ProductStockNotificationRepository']
118
- }] }, { type: i1.ProductsIndex }] });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy93aXNobGlzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFLTCxhQUFhLEVBQ2IsS0FBSyxFQUNMLFFBQVEsR0FFVCxNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDM0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7OztBQUdwRCxNQUFNLE9BQU8sZUFBZTtJQUkxQixZQUNpRCxrQkFBc0MsRUFDOUMsSUFBVyxFQUNyQixpQkFBb0MsRUFDN0Isd0JBQWtELEVBQ3hELGtCQUFzQyxFQUVwRSxrQ0FBc0UsRUFDdEUsWUFBMkI7UUFQb0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUM5QyxTQUFJLEdBQUosSUFBSSxDQUFPO1FBUWxELE1BQU0sd0JBQXdCLEdBQUcsSUFBSSwyQkFBMkIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBRXBGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQ3RDLGlCQUFpQixFQUNqQixrQ0FBa0MsRUFDbEMsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QixJQUFJLEVBQ0osWUFBWSxDQUNiLENBQUE7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksZUFBZSxDQUN4QyxpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFD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RUFBRSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFFM0YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7U0FDdkY7UUFFRCxPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDOzhHQXJLVSxlQUFlLGtCQUtoQixvQkFBb0IsYUFDcEIsWUFBWSxhQUNaLG1CQUFtQixhQUNuQiwwQkFBMEIsYUFDMUIsb0JBQW9CLGFBQ3BCLG9DQUFvQztrSEFWbkMsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBTU4sTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsMEJBQTBCOzswQkFDakMsTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLG9DQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXG4gIENhdGVnb3J5UmVwb3NpdG9yeSxcbiAgUHJvZHVjdFJlcG9zaXRvcnksXG4gIFByb2R1Y3RTdG9ja05vdGlmaWNhdGlvblJlcG9zaXRvcnksXG4gIFByb2R1Y3RzSW5kZXgsXG4gIFNob3BzLFxuICBXaXNobGlzdCxcbiAgV2lzaGxpc3RSZXBvc2l0b3J5LFxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcbmltcG9ydCB7IERFRkFVTFRfU0hPUCB9IGZyb20gJy4uLy4uL2NvbnN0cydcbmltcG9ydCB7IE5ld0NhdGVnb3J5U3RydWN0dXJlQWRhcHRlciB9IGZyb20gJy4vYWRhcHRlcnMnXG5pbXBvcnQgeyBDYXRhbG9nU2VydmljZSB9IGZyb20gJy4vY2F0YWxvZy5zZXJ2aWNlJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi9jYXRlZ29yeS5zZXJ2aWNlJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgV2lzaGxpc3RTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjYXRhbG9nU2VydmljZTogQ2F0YWxvZ1NlcnZpY2VcbiAgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ1dpc2hsaXN0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgd2lzaGxpc3RSZXBvc2l0b3J5OiBXaXNobGlzdFJlcG9zaXRvcnksXG4gICAgQEluamVjdChERUZBVUxUX1NIT1ApIHByaXZhdGUgcmVhZG9ubHkgc2hvcDogU2hvcHMsXG4gICAgQEluamVjdCgnUHJvZHVjdFJlcG9zaXRvcnknKSBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdFJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5JykgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5OiBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlSZXBvc2l0b3J5JykgY2F0ZWdvcnlSZXBvc2l0b3J5OiBDYXRlZ29yeVJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeScpXG4gICAgcHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeTogUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeSxcbiAgICBwcm9kdWN0SW5kZXg6IFByb2R1Y3RzSW5kZXgsXG4gICkge1xuICAgIGNvbnN0IGNhdGVnb3J5U3RydWN0dXJlQWRhcHRlciA9IG5ldyBOZXdDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIod2lzaGxpc3RSZXBvc2l0b3J5KVxuXG4gICAgdGhpcy5jYXRhbG9nU2VydmljZSA9IG5ldyBDYXRhbG9nU2VydmljZTxXaXNobGlzdD4oXG4gICAgICBwcm9kdWN0UmVwb3NpdG9yeSxcbiAgICAgIHByb2R1Y3RTdG9ja05vdGlmaWNhdGlvblJlcG9zaXRvcnksXG4gICAgICBjYXRlZ29yeVJlcG9zaXRvcnksXG4gICAgICBjYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIsXG4gICAgICBzaG9wLFxuICAgICAgcHJvZHVjdEluZGV4LFxuICAgIClcbiAgICB0aGlzLmNhdGVnb3J5U2VydmljZSA9IG5ldyBDYXRlZ29yeVNlcnZpY2UoXG4gICAgICBwcm9kdWN0UmVwb3NpdG9yeSxcbiAgICAgIGNhdGVnb3J5UmVwb3NpdG9yeSxcbiAgICAgIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSxcbiAgICAgIGNhdGVnb3J5U3RydWN0dXJlQWRhcHRlcixcbiAgICAgIHNob3AsXG4gICAgKVxuICB9XG5cbiAgZ2V0Q2F0YWxvZ1NlcnZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2F0YWxvZ1NlcnZpY2VcbiAgfVxuXG4gIGdldENhdGVnb3J5U2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeVNlcnZpY2VcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZSh7XG4gICAgcGVyc29uSWQsXG4gICAgdGl0bGUsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgcHVibGlzaGVkLFxuICAgIHVzZXJGdWxsTmFtZSxcbiAgICB1c2VyUGhvdG8sXG4gICAgdGhlbWUsXG4gICAgYmFubmVyVXJsLFxuICB9OiB7XG4gICAgcGVyc29uSWQ6IHN0cmluZ1xuICAgIHRpdGxlOiBzdHJpbmdcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nXG4gICAgcHVibGlzaGVkOiBib29sZWFuXG4gICAgdXNlckZ1bGxOYW1lOiBzdHJpbmdcbiAgICB1c2VyUGhvdG8/OiBzdHJpbmdcbiAgICB0aGVtZT86IHN0cmluZ1xuICAgIGJhbm5lclVybD86IHN0cmluZ1xuICB9KTogUHJvbWlzZTxXaXNobGlzdD4ge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBzbHVnOiAnJyxcbiAgICAgIG5hbWU6IHRpdGxlLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICB0aXRsZTogYCR7dXNlckZ1bGxOYW1lfSAtICR7dGl0bGV9YCxcbiAgICAgICAgZGVzY3JpcHRpb246IGAke3VzZXJGdWxsTmFtZX0gLSAke2Rlc2NyaXB0aW9ufWAsXG4gICAgICB9LFxuICAgICAgc2hvcDogdGhpcy5zaG9wLFxuICAgICAgc2hvcHM6IFt0aGlzLnNob3BdLFxuICAgICAgcGVyc29uSWQsXG4gICAgICBwZXJzb25OYW1lOiB1c2VyRnVsbE5hbWUsXG4gICAgICBwZXJzb25QaG90bzogdXNlclBob3RvLFxuICAgICAgYnJhbmRDYXRlZ29yeTogZmFsc2UsXG4gICAgICBwdWJsaXNoZWQsXG4gICAgICB0aGVtZSxcbiAgICAgIGJhbm5lclVybCxcbiAgICB9XG5cbiAgICBjb25zdCBuZXdXaXNobGlzdCA9IGF3YWl0IHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmNyZWF0ZShkYXRhKVxuXG4gICAgYXdhaXQgdGhpcy53aXNobGlzdFJlcG9zaXRvcnkudXBkYXRlKHsgaWQ6IG5ld1dpc2hsaXN0LmlkLCBzbHVnOiBuZXdXaXNobGlzdC5pZCB9KVxuXG4gICAgcmV0dXJuIFdpc2hsaXN0LnRvSW5zdGFuY2UoeyAuLi5uZXdXaXNobGlzdC50b1BsYWluKCksIHNsdWc6IG5ld1dpc2hsaXN0LmlkIH0pXG4gIH1cblxuICB1cGRhdGUoe1xuICAgIGlkLFxuICAgIHRpdGxlLFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIHB1Ymxpc2hlZCxcbiAgICB1c2VyRnVsbE5hbWUsXG4gICAgdXNlclBob3RvLFxuICAgIHRoZW1lLFxuICAgIGJhbm5lclVybCxcbiAgfToge1xuICAgIGlkOiBzdHJpbmdcbiAgICB0aXRsZTogc3RyaW5nXG4gICAgZGVzY3JpcHRpb246IHN0cmluZ1xuICAgIHB1Ymxpc2hlZDogYm9vbGVhblxuICAgIHVzZXJGdWxsTmFtZTogc3RyaW5nXG4gICAgdXNlclBob3RvPzogc3RyaW5nXG4gICAgdGhlbWU/OiBzdHJpbmdcbiAgICBiYW5uZXJVcmw/OiBzdHJpbmdcbiAgfSk6IFByb21pc2U8V2lzaGxpc3Q+IHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgaWQsXG4gICAgICBuYW1lOiB0aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgcHVibGlzaGVkLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgdGl0bGU6IGAke3VzZXJGdWxsTmFtZX0gLSAke3RpdGxlfWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHt1c2VyRnVsbE5hbWV9IC0gJHtkZXNjcmlwdGlvbn1gLFxuICAgICAgfSxcbiAgICAgIHBlcnNvbk5hbWU6IHVzZXJGdWxsTmFtZSxcbiAgICAgIHBlcnNvblBob3RvOiB1c2VyUGhvdG8sXG4gICAgICB0aGVtZSxcbiAgICAgIGJhbm5lclVybCxcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy53aXNobGlzdFJlcG9zaXRvcnkudXBkYXRlKGRhdGEpXG4gIH1cblxuICBkZWxldGUod2lzaGxpc3RJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmRlbGV0ZSh7IGlkOiB3aXNobGlzdElkIH0pXG4gIH1cblxuICBnZXRXaXNobGlzdEJ5U2x1ZyhzbHVnOiBzdHJpbmcpOiBQcm9taXNlPFdpc2hsaXN0PiB7XG4gICAgY29uc3QgW2lkXSA9IHNsdWcuc3BsaXQoJy0nKVxuXG4gICAgaWYgKCtpZCkgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmdldCh7IGlkIH0pXG5cbiAgICByZXR1cm4gdGhpcy53aXNobGlzdFJlcG9zaXRvcnkuZ2V0V2lzaGxpc3RCeVNsdWcoc2x1ZylcbiAgfVxuXG4gIGdldFdpc2hsaXN0c0J5UGVyc29uKHBlcnNvbklkOiBzdHJpbmcpOiBQcm9taXNlPFdpc2hsaXN0W10+IHtcbiAgICByZXR1cm4gdGhpcy53aXNobGlzdFJlcG9zaXRvcnkuZ2V0V2lzaGxpc3RCeVBlcnNvbihwZXJzb25JZClcbiAgfVxuXG4gIGFzeW5jIGFkZFByb2R1Y3Qod2lzaGxpc3RJZDogc3RyaW5nLCBwcm9kdWN0SWQ6IHN0cmluZyk6IFByb21pc2U8V2lzaGxpc3Q+IHtcbiAgICBjb25zdCB3aXNobGlzdCA9IGF3YWl0IHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmdldCh7IGlkOiB3aXNobGlzdElkIH0pXG4gICAgY29uc3QgaGFzUHJvZHVjdCA9IHdpc2hsaXN0LnByb2R1Y3RzLnNvbWUoKHApID0+IHAgPT0gcHJvZHVjdElkKVxuXG4gICAgaWYgKCFoYXNQcm9kdWN0KSB7XG4gICAgICB3aXNobGlzdC5wcm9kdWN0cyA9IFsuLi53aXNobGlzdC5wcm9kdWN0cywgcHJvZHVjdElkXVxuICAgICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LnVwZGF0ZSh7IGlkOiB3aXNobGlzdElkLCBwcm9kdWN0czogd2lzaGxpc3QucHJvZHVjdHMgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gd2lzaGxpc3RcbiAgfVxuXG4gIGFzeW5jIHJlbW92ZVByb2R1Y3Qod2lzaGxpc3RJZDogc3RyaW5nLCBwcm9kdWN0SWQ6IHN0cmluZyk6IFByb21pc2U8V2lzaGxpc3Q+IHtcbiAgICBjb25zdCB3aXNobGlzdCA9IGF3YWl0IHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmdldCh7IGlkOiB3aXNobGlzdElkIH0pXG4gICAgY29uc3QgcHJvZHVjdEluZGV4ID0gd2lzaGxpc3QucHJvZHVjdHMuZmluZEluZGV4KChwKSA9PiBwID09IHByb2R1Y3RJZClcblxuICAgIGlmIChwcm9kdWN0SW5kZXggIT0gLTEpIHtcbiAgICAgIHdpc2hsaXN0LnByb2R1Y3RzLnNwbGljZShwcm9kdWN0SW5kZXgsIDEpXG5cbiAgICAgIGlmICghd2lzaGxpc3QucHJvZHVjdHMubGVuZ3RoKVxuICAgICAgICByZXR1cm4gdGhpcy53aXNobGlzdFJlcG9zaXRvcnkudXBkYXRlKHsgaWQ6IHdpc2hsaXN0SWQsIHByb2R1Y3RzOiB7IGFjdGlvbjogJ3JlbW92ZScgfSB9KVxuXG4gICAgICByZXR1cm4gdGhpcy53aXNobGlzdFJlcG9zaXRvcnkudXBkYXRlKHsgaWQ6IHdpc2hsaXN0SWQsIHByb2R1Y3RzOiB3aXNobGlzdC5wcm9kdWN0cyB9KVxuICAgIH1cblxuICAgIHJldHVybiB3aXNobGlzdFxuICB9XG59XG4iXX0=
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { ProductsIndex, Shops, Wishlist, } from '@infrab4a/connect';
3
+ import { DEFAULT_SHOP } from '../../consts';
4
+ import { NewCategoryStructureAdapter } from './adapters';
5
+ import { CatalogService } from './catalog.service';
6
+ import { CategoryService } from './category.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@infrab4a/connect";
9
+ export class WishlistService {
10
+ constructor(wishlistRepository, shop, productRepository, categoryFilterRepository, categoryRepository, productStockNotificationRepository, productIndex) {
11
+ this.wishlistRepository = wishlistRepository;
12
+ this.shop = shop;
13
+ const categoryStructureAdapter = new NewCategoryStructureAdapter(wishlistRepository);
14
+ this.catalogService = new CatalogService(productRepository, productStockNotificationRepository, categoryRepository, categoryStructureAdapter, shop, productIndex);
15
+ this.categoryService = new CategoryService(productRepository, categoryRepository, categoryFilterRepository, categoryStructureAdapter, shop);
16
+ }
17
+ getCatalogService() {
18
+ return this.catalogService;
19
+ }
20
+ getCategoryService() {
21
+ return this.categoryService;
22
+ }
23
+ async create({ personId, title, description, published, userFullName, userPhoto, theme, bannerUrl, }) {
24
+ const data = {
25
+ slug: '',
26
+ name: title,
27
+ description,
28
+ metadata: {
29
+ title: `${userFullName} - ${title}`,
30
+ description: `${userFullName} - ${description}`,
31
+ },
32
+ shop: this.shop,
33
+ shops: [this.shop],
34
+ personId,
35
+ personName: userFullName,
36
+ personPhoto: userPhoto,
37
+ brandCategory: false,
38
+ published,
39
+ theme,
40
+ bannerUrl,
41
+ };
42
+ const newWishlist = await this.wishlistRepository.create(data);
43
+ await this.wishlistRepository.update({ id: newWishlist.id, slug: newWishlist.id });
44
+ return Wishlist.toInstance({ ...newWishlist.toPlain(), slug: newWishlist.id });
45
+ }
46
+ update({ id, title, description, published, userFullName, userPhoto, theme, bannerUrl, }) {
47
+ const data = {
48
+ id,
49
+ name: title,
50
+ description,
51
+ published,
52
+ metadata: {
53
+ title: `${userFullName} - ${title}`,
54
+ description: `${userFullName} - ${description}`,
55
+ },
56
+ personName: userFullName,
57
+ personPhoto: userPhoto,
58
+ theme,
59
+ bannerUrl,
60
+ };
61
+ return this.wishlistRepository.update(data);
62
+ }
63
+ delete(wishlistId) {
64
+ return this.wishlistRepository.delete({ id: wishlistId });
65
+ }
66
+ getWishlistBySlug(slug) {
67
+ const [id] = slug.split('-');
68
+ if (+id)
69
+ return this.wishlistRepository.get({ id });
70
+ return this.wishlistRepository.getWishlistBySlug(slug);
71
+ }
72
+ getWishlistsByPerson(personId) {
73
+ return this.wishlistRepository.getWishlistByPerson(personId);
74
+ }
75
+ async addProduct(wishlistId, productId) {
76
+ const wishlist = await this.wishlistRepository.get({ id: wishlistId });
77
+ const hasProduct = wishlist.products.some((p) => p == productId);
78
+ if (!hasProduct) {
79
+ wishlist.products = [...wishlist.products, productId];
80
+ return this.wishlistRepository.update({ id: wishlistId, products: wishlist.products });
81
+ }
82
+ return wishlist;
83
+ }
84
+ async removeProduct(wishlistId, productId) {
85
+ const wishlist = await this.wishlistRepository.get({ id: wishlistId });
86
+ const productIndex = wishlist.products.findIndex((p) => p == productId);
87
+ if (productIndex != -1) {
88
+ wishlist.products.splice(productIndex, 1);
89
+ if (!wishlist.products.length)
90
+ return this.wishlistRepository.update({ id: wishlistId, products: { action: 'remove' } });
91
+ return this.wishlistRepository.update({ id: wishlistId, products: wishlist.products });
92
+ }
93
+ return wishlist;
94
+ }
95
+ }
96
+ WishlistServicefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: WishlistService, deps: [{ token: 'WishlistRepository' }, { token: DEFAULT_SHOP }, { token: 'ProductRepository' }, { token: 'CategoryFilterRepository' }, { token: 'CategoryRepository' }, { token: 'ProductStockNotificationRepository' }, { token: i1.ProductsIndex }], target: i0.ɵɵFactoryTarget.Injectable });
97
+ WishlistService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: WishlistService });
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: WishlistService, decorators: [{
99
+ type: Injectable
100
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
101
+ type: Inject,
102
+ args: ['WishlistRepository']
103
+ }] }, { type: i1.Shops, decorators: [{
104
+ type: Inject,
105
+ args: [DEFAULT_SHOP]
106
+ }] }, { type: undefined, decorators: [{
107
+ type: Inject,
108
+ args: ['ProductRepository']
109
+ }] }, { type: undefined, decorators: [{
110
+ type: Inject,
111
+ args: ['CategoryFilterRepository']
112
+ }] }, { type: undefined, decorators: [{
113
+ type: Inject,
114
+ args: ['CategoryRepository']
115
+ }] }, { type: undefined, decorators: [{
116
+ type: Inject,
117
+ args: ['ProductStockNotificationRepository']
118
+ }] }, { type: i1.ProductsIndex }]; } });
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy93aXNobGlzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFLTCxhQUFhLEVBQ2IsS0FBSyxFQUNMLFFBQVEsR0FFVCxNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDM0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7OztBQUdwRCxNQUFNLE9BQU8sZUFBZTtJQUkxQixZQUNpRCxrQkFBc0MsRUFDOUMsSUFBVyxFQUNyQixpQkFBb0MsRUFDN0Isd0JBQWtELEVBQ3hELGtCQUFzQyxFQUVwRSxrQ0FBc0UsRUFDdEUsWUFBMkI7UUFQb0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUM5QyxTQUFJLEdBQUosSUFBSSxDQUFPO1FBUWxELE1BQU0sd0JBQXdCLEdBQUcsSUFBSSwyQkFBMkIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBRXBGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQ3RDLGlCQUFpQixFQUNqQixrQ0FBa0MsRUFDbEMsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QixJQUFJLEVBQ0osWUFBWSxDQUNiLENBQUE7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksZUFBZSxDQUN4QyxpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFD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RUFBRSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFFM0YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7U0FDdkY7UUFFRCxPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDOzs0R0FyS1UsZUFBZSxrQkFLaEIsb0JBQW9CLGFBQ3BCLFlBQVksYUFDWixtQkFBbUIsYUFDbkIsMEJBQTBCLGFBQzFCLG9CQUFvQixhQUNwQixvQ0FBb0M7Z0hBVm5DLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBTU4sTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsMEJBQTBCOzswQkFDakMsTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLG9DQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5LFxyXG4gIENhdGVnb3J5UmVwb3NpdG9yeSxcclxuICBQcm9kdWN0UmVwb3NpdG9yeSxcclxuICBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25SZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RzSW5kZXgsXHJcbiAgU2hvcHMsXHJcbiAgV2lzaGxpc3QsXHJcbiAgV2lzaGxpc3RSZXBvc2l0b3J5LFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi8uLi9jb25zdHMnXHJcbmltcG9ydCB7IE5ld0NhdGVnb3J5U3RydWN0dXJlQWRhcHRlciB9IGZyb20gJy4vYWRhcHRlcnMnXHJcbmltcG9ydCB7IENhdGFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9jYXRhbG9nLnNlcnZpY2UnXHJcbmltcG9ydCB7IENhdGVnb3J5U2VydmljZSB9IGZyb20gJy4vY2F0ZWdvcnkuc2VydmljZSdcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFdpc2hsaXN0U2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjYXRhbG9nU2VydmljZTogQ2F0YWxvZ1NlcnZpY2VcclxuICBwcml2YXRlIGNhdGVnb3J5U2VydmljZTogQ2F0ZWdvcnlTZXJ2aWNlXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdCgnV2lzaGxpc3RSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSB3aXNobGlzdFJlcG9zaXRvcnk6IFdpc2hsaXN0UmVwb3NpdG9yeSxcclxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IHNob3A6IFNob3BzLFxyXG4gICAgQEluamVjdCgnUHJvZHVjdFJlcG9zaXRvcnknKSBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdFJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KCdDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnknKSBjYXRlZ29yeUZpbHRlclJlcG9zaXRvcnk6IENhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSxcclxuICAgIEBJbmplY3QoJ0NhdGVnb3J5UmVwb3NpdG9yeScpIGNhdGVnb3J5UmVwb3NpdG9yeTogQ2F0ZWdvcnlSZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdCgnUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeScpXHJcbiAgICBwcm9kdWN0U3RvY2tOb3RpZmljYXRpb25SZXBvc2l0b3J5OiBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25SZXBvc2l0b3J5LFxyXG4gICAgcHJvZHVjdEluZGV4OiBQcm9kdWN0c0luZGV4LFxyXG4gICkge1xyXG4gICAgY29uc3QgY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyID0gbmV3IE5ld0NhdGVnb3J5U3RydWN0dXJlQWRhcHRlcih3aXNobGlzdFJlcG9zaXRvcnkpXHJcblxyXG4gICAgdGhpcy5jYXRhbG9nU2VydmljZSA9IG5ldyBDYXRhbG9nU2VydmljZTxXaXNobGlzdD4oXHJcbiAgICAgIHByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gICAgICBwcm9kdWN0U3RvY2tOb3RpZmljYXRpb25SZXBvc2l0b3J5LFxyXG4gICAgICBjYXRlZ29yeVJlcG9zaXRvcnksXHJcbiAgICAgIGNhdGVnb3J5U3RydWN0dXJlQWRhcHRlcixcclxuICAgICAgc2hvcCxcclxuICAgICAgcHJvZHVjdEluZGV4LFxyXG4gICAgKVxyXG4gICAgdGhpcy5jYXRlZ29yeVNlcnZpY2UgPSBuZXcgQ2F0ZWdvcnlTZXJ2aWNlKFxyXG4gICAgICBwcm9kdWN0UmVwb3NpdG9yeSxcclxuICAgICAgY2F0ZWdvcnlSZXBvc2l0b3J5LFxyXG4gICAgICBjYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXHJcbiAgICAgIGNhdGVnb3J5U3RydWN0dXJlQWRhcHRlcixcclxuICAgICAgc2hvcCxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldENhdGFsb2dTZXJ2aWNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0YWxvZ1NlcnZpY2VcclxuICB9XHJcblxyXG4gIGdldENhdGVnb3J5U2VydmljZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5U2VydmljZVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgY3JlYXRlKHtcclxuICAgIHBlcnNvbklkLFxyXG4gICAgdGl0bGUsXHJcbiAgICBkZXNjcmlwdGlvbixcclxuICAgIHB1Ymxpc2hlZCxcclxuICAgIHVzZXJGdWxsTmFtZSxcclxuICAgIHVzZXJQaG90byxcclxuICAgIHRoZW1lLFxyXG4gICAgYmFubmVyVXJsLFxyXG4gIH06IHtcclxuICAgIHBlcnNvbklkOiBzdHJpbmdcclxuICAgIHRpdGxlOiBzdHJpbmdcclxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmdcclxuICAgIHB1Ymxpc2hlZDogYm9vbGVhblxyXG4gICAgdXNlckZ1bGxOYW1lOiBzdHJpbmdcclxuICAgIHVzZXJQaG90bz86IHN0cmluZ1xyXG4gICAgdGhlbWU/OiBzdHJpbmdcclxuICAgIGJhbm5lclVybD86IHN0cmluZ1xyXG4gIH0pOiBQcm9taXNlPFdpc2hsaXN0PiB7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBzbHVnOiAnJyxcclxuICAgICAgbmFtZTogdGl0bGUsXHJcbiAgICAgIGRlc2NyaXB0aW9uLFxyXG4gICAgICBtZXRhZGF0YToge1xyXG4gICAgICAgIHRpdGxlOiBgJHt1c2VyRnVsbE5hbWV9IC0gJHt0aXRsZX1gLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHt1c2VyRnVsbE5hbWV9IC0gJHtkZXNjcmlwdGlvbn1gLFxyXG4gICAgICB9LFxyXG4gICAgICBzaG9wOiB0aGlzLnNob3AsXHJcbiAgICAgIHNob3BzOiBbdGhpcy5zaG9wXSxcclxuICAgICAgcGVyc29uSWQsXHJcbiAgICAgIHBlcnNvbk5hbWU6IHVzZXJGdWxsTmFtZSxcclxuICAgICAgcGVyc29uUGhvdG86IHVzZXJQaG90byxcclxuICAgICAgYnJhbmRDYXRlZ29yeTogZmFsc2UsXHJcbiAgICAgIHB1Ymxpc2hlZCxcclxuICAgICAgdGhlbWUsXHJcbiAgICAgIGJhbm5lclVybCxcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBuZXdXaXNobGlzdCA9IGF3YWl0IHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmNyZWF0ZShkYXRhKVxyXG5cclxuICAgIGF3YWl0IHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LnVwZGF0ZSh7IGlkOiBuZXdXaXNobGlzdC5pZCwgc2x1ZzogbmV3V2lzaGxpc3QuaWQgfSlcclxuXHJcbiAgICByZXR1cm4gV2lzaGxpc3QudG9JbnN0YW5jZSh7IC4uLm5ld1dpc2hsaXN0LnRvUGxhaW4oKSwgc2x1ZzogbmV3V2lzaGxpc3QuaWQgfSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZSh7XHJcbiAgICBpZCxcclxuICAgIHRpdGxlLFxyXG4gICAgZGVzY3JpcHRpb24sXHJcbiAgICBwdWJsaXNoZWQsXHJcbiAgICB1c2VyRnVsbE5hbWUsXHJcbiAgICB1c2VyUGhvdG8sXHJcbiAgICB0aGVtZSxcclxuICAgIGJhbm5lclVybCxcclxuICB9OiB7XHJcbiAgICBpZDogc3RyaW5nXHJcbiAgICB0aXRsZTogc3RyaW5nXHJcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nXHJcbiAgICBwdWJsaXNoZWQ6IGJvb2xlYW5cclxuICAgIHVzZXJGdWxsTmFtZTogc3RyaW5nXHJcbiAgICB1c2VyUGhvdG8/OiBzdHJpbmdcclxuICAgIHRoZW1lPzogc3RyaW5nXHJcbiAgICBiYW5uZXJVcmw/OiBzdHJpbmdcclxuICB9KTogUHJvbWlzZTxXaXNobGlzdD4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgaWQsXHJcbiAgICAgIG5hbWU6IHRpdGxlLFxyXG4gICAgICBkZXNjcmlwdGlvbixcclxuICAgICAgcHVibGlzaGVkLFxyXG4gICAgICBtZXRhZGF0YToge1xyXG4gICAgICAgIHRpdGxlOiBgJHt1c2VyRnVsbE5hbWV9IC0gJHt0aXRsZX1gLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHt1c2VyRnVsbE5hbWV9IC0gJHtkZXNjcmlwdGlvbn1gLFxyXG4gICAgICB9LFxyXG4gICAgICBwZXJzb25OYW1lOiB1c2VyRnVsbE5hbWUsXHJcbiAgICAgIHBlcnNvblBob3RvOiB1c2VyUGhvdG8sXHJcbiAgICAgIHRoZW1lLFxyXG4gICAgICBiYW5uZXJVcmwsXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LnVwZGF0ZShkYXRhKVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlKHdpc2hsaXN0SWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmRlbGV0ZSh7IGlkOiB3aXNobGlzdElkIH0pXHJcbiAgfVxyXG5cclxuICBnZXRXaXNobGlzdEJ5U2x1ZyhzbHVnOiBzdHJpbmcpOiBQcm9taXNlPFdpc2hsaXN0PiB7XHJcbiAgICBjb25zdCBbaWRdID0gc2x1Zy5zcGxpdCgnLScpXHJcblxyXG4gICAgaWYgKCtpZCkgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmdldCh7IGlkIH0pXHJcblxyXG4gICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmdldFdpc2hsaXN0QnlTbHVnKHNsdWcpXHJcbiAgfVxyXG5cclxuICBnZXRXaXNobGlzdHNCeVBlcnNvbihwZXJzb25JZDogc3RyaW5nKTogUHJvbWlzZTxXaXNobGlzdFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy53aXNobGlzdFJlcG9zaXRvcnkuZ2V0V2lzaGxpc3RCeVBlcnNvbihwZXJzb25JZClcclxuICB9XHJcblxyXG4gIGFzeW5jIGFkZFByb2R1Y3Qod2lzaGxpc3RJZDogc3RyaW5nLCBwcm9kdWN0SWQ6IHN0cmluZyk6IFByb21pc2U8V2lzaGxpc3Q+IHtcclxuICAgIGNvbnN0IHdpc2hsaXN0ID0gYXdhaXQgdGhpcy53aXNobGlzdFJlcG9zaXRvcnkuZ2V0KHsgaWQ6IHdpc2hsaXN0SWQgfSlcclxuICAgIGNvbnN0IGhhc1Byb2R1Y3QgPSB3aXNobGlzdC5wcm9kdWN0cy5zb21lKChwKSA9PiBwID09IHByb2R1Y3RJZClcclxuXHJcbiAgICBpZiAoIWhhc1Byb2R1Y3QpIHtcclxuICAgICAgd2lzaGxpc3QucHJvZHVjdHMgPSBbLi4ud2lzaGxpc3QucHJvZHVjdHMsIHByb2R1Y3RJZF1cclxuICAgICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LnVwZGF0ZSh7IGlkOiB3aXNobGlzdElkLCBwcm9kdWN0czogd2lzaGxpc3QucHJvZHVjdHMgfSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gd2lzaGxpc3RcclxuICB9XHJcblxyXG4gIGFzeW5jIHJlbW92ZVByb2R1Y3Qod2lzaGxpc3RJZDogc3RyaW5nLCBwcm9kdWN0SWQ6IHN0cmluZyk6IFByb21pc2U8V2lzaGxpc3Q+IHtcclxuICAgIGNvbnN0IHdpc2hsaXN0ID0gYXdhaXQgdGhpcy53aXNobGlzdFJlcG9zaXRvcnkuZ2V0KHsgaWQ6IHdpc2hsaXN0SWQgfSlcclxuICAgIGNvbnN0IHByb2R1Y3RJbmRleCA9IHdpc2hsaXN0LnByb2R1Y3RzLmZpbmRJbmRleCgocCkgPT4gcCA9PSBwcm9kdWN0SWQpXHJcblxyXG4gICAgaWYgKHByb2R1Y3RJbmRleCAhPSAtMSkge1xyXG4gICAgICB3aXNobGlzdC5wcm9kdWN0cy5zcGxpY2UocHJvZHVjdEluZGV4LCAxKVxyXG5cclxuICAgICAgaWYgKCF3aXNobGlzdC5wcm9kdWN0cy5sZW5ndGgpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LnVwZGF0ZSh7IGlkOiB3aXNobGlzdElkLCBwcm9kdWN0czogeyBhY3Rpb246ICdyZW1vdmUnIH0gfSlcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeS51cGRhdGUoeyBpZDogd2lzaGxpc3RJZCwgcHJvZHVjdHM6IHdpc2hsaXN0LnByb2R1Y3RzIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHdpc2hsaXN0XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,50 +1,50 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { CheckoutSubscription, CheckoutTypes, isNil, pick, } from '@infrab4a/connect';
3
- import { concatMap } from 'rxjs/operators';
4
- import { PERSISTENCE_PROVIDER } from '../consts';
5
- import { CouponService } from './coupon.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./coupon.service";
8
- export class CheckoutSubscriptionService {
9
- constructor(checkoutSubscriptionRepository, dataPersistence, couponService) {
10
- this.checkoutSubscriptionRepository = checkoutSubscriptionRepository;
11
- this.dataPersistence = dataPersistence;
12
- this.couponService = couponService;
13
- }
14
- getCheckoutSubscription(checkoutData) {
15
- return this.dataPersistence
16
- .get('checkoutSubscriptionId')
17
- .pipe(concatMap((id) => !isNil(id) ? this.checkoutSubscriptionRepository.get({ id }) : this.createCheckoutSubscription(checkoutData)));
18
- }
19
- clearCheckoutSubscriptionFromSession() {
20
- return this.dataPersistence.remove('checkoutSubscriptionId');
21
- }
22
- checkCoupon(nickname, userEmail) {
23
- return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService
24
- .checkCoupon(nickname, CheckoutTypes.SUBSCRIPTION, checkout, checkout.subscriptionPlan.name)
25
- .pipe()));
26
- }
27
- calcDiscountSubscription(coupon) {
28
- return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()));
29
- }
30
- async createCheckoutSubscription(checkoutData) {
31
- const checkout = await this.checkoutSubscriptionRepository.create({
32
- createdAt: new Date(),
33
- ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
34
- });
35
- await this.dataPersistence.set('checkoutSubscriptionId', checkout.id).toPromise();
36
- return checkout;
37
- }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutSubscriptionService, deps: [{ token: 'CheckoutSubscriptionRepository' }, { token: PERSISTENCE_PROVIDER }, { token: i1.CouponService }], target: i0.ɵɵFactoryTarget.Injectable }); }
39
- static { thisprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutSubscriptionService }); }
40
- }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutSubscriptionService, decorators: [{
42
- type: Injectable
43
- }], ctorParameters: () => [{ type: undefined, decorators: [{
44
- type: Inject,
45
- args: ['CheckoutSubscriptionRepository']
46
- }] }, { type: undefined, decorators: [{
47
- type: Inject,
48
- args: [PERSISTENCE_PROVIDER]
49
- }] }, { type: i1.CouponService }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtc3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NoZWNrb3V0LXN1YnNjcmlwdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFDTCxvQkFBb0IsRUFFcEIsYUFBYSxFQUViLEtBQUssRUFDTCxJQUFJLEdBQ0wsTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRWhELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTs7O0FBR2hELE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFFbUIsOEJBQThELEVBQ2hDLGVBQWdDLEVBQzlELGFBQTRCO1FBRjVCLG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFDaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQzlELGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQzVDLENBQUM7SUFFSix1QkFBdUIsQ0FBQyxZQUErQztRQUNyRSxPQUFPLElBQUksQ0FBQyxlQUFlO2FBQ3hCLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQzthQUM3QixJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDZixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLENBQUMsQ0FDN0csQ0FDRixDQUFBO0lBQ0wsQ0FBQztJQUVELG9DQUFvQztRQUNsQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQixFQUFFLFNBQWlCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsSUFBSSxDQUN4QyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUNyQixJQUFJLENBQUMsYUFBYTthQUNmLFdBQVcsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUMzRixJQUFJLEVBQUUsQ0FDVixDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsTUFBYztRQUNyQyxPQUFPLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLElBQUksQ0FDeEMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUM5RixDQUFBO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQywwQkFBMEIsQ0FDdEMsWUFBK0M7UUFFL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFDO1lBQ2hFLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtZQUNyQixHQUFHLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7U0FDbkYsQ0FBQyxDQUFBO1FBRUYsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFakYsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQzs4R0FqRFUsMkJBQTJCLGtCQUU1QixnQ0FBZ0MsYUFFaEMsb0JBQW9CO2tIQUpuQiwyQkFBMkI7OzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsZ0NBQWdDOzswQkFFdkMsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ2hlY2tvdXRTdWJzY3JpcHRpb24sXG4gIENoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeSxcbiAgQ2hlY2tvdXRUeXBlcyxcbiAgQ291cG9uLFxuICBpc05pbCxcbiAgcGljayxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNvbmNhdE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgUmVxdWlyZWRDaGVja291dFN1YnNjcmlwdGlvbkRhdGEgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBQRVJTSVNURU5DRV9QUk9WSURFUiB9IGZyb20gJy4uL2NvbnN0cydcbmltcG9ydCB7IERhdGFQZXJzaXN0ZW5jZSB9IGZyb20gJy4uL3BlcnNpc3RlbmNlJ1xuaW1wb3J0IHsgQ291cG9uU2VydmljZSB9IGZyb20gJy4vY291cG9uLnNlcnZpY2UnXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDaGVja291dFN1YnNjcmlwdGlvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdDaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnknKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5OiBDaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnksXG4gICAgQEluamVjdChQRVJTSVNURU5DRV9QUk9WSURFUikgcHJpdmF0ZSByZWFkb25seSBkYXRhUGVyc2lzdGVuY2U6IERhdGFQZXJzaXN0ZW5jZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvdXBvblNlcnZpY2U6IENvdXBvblNlcnZpY2UsXG4gICkge31cblxuICBnZXRDaGVja291dFN1YnNjcmlwdGlvbihjaGVja291dERhdGE/OiBSZXF1aXJlZENoZWNrb3V0U3Vic2NyaXB0aW9uRGF0YSk6IE9ic2VydmFibGU8Q2hlY2tvdXRTdWJzY3JpcHRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhUGVyc2lzdGVuY2VcbiAgICAgIC5nZXQoJ2NoZWNrb3V0U3Vic2NyaXB0aW9uSWQnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNvbmNhdE1hcCgoaWQpID0+XG4gICAgICAgICAgIWlzTmlsKGlkKSA/IHRoaXMuY2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5LmdldCh7IGlkIH0pIDogdGhpcy5jcmVhdGVDaGVja291dFN1YnNjcmlwdGlvbihjaGVja291dERhdGEpLFxuICAgICAgICApLFxuICAgICAgKVxuICB9XG5cbiAgY2xlYXJDaGVja291dFN1YnNjcmlwdGlvbkZyb21TZXNzaW9uKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFQZXJzaXN0ZW5jZS5yZW1vdmUoJ2NoZWNrb3V0U3Vic2NyaXB0aW9uSWQnKVxuICB9XG5cbiAgY2hlY2tDb3Vwb24obmlja25hbWU6IHN0cmluZywgdXNlckVtYWlsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvdXBvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0U3Vic2NyaXB0aW9uKCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XG4gICAgICAgIHRoaXMuY291cG9uU2VydmljZVxuICAgICAgICAgIC5jaGVja0NvdXBvbihuaWNrbmFtZSwgQ2hlY2tvdXRUeXBlcy5TVUJTQ1JJUFRJT04sIGNoZWNrb3V0LCBjaGVja291dC5zdWJzY3JpcHRpb25QbGFuLm5hbWUpXG4gICAgICAgICAgLnBpcGUoKSxcbiAgICAgICksXG4gICAgKVxuICB9XG5cbiAgY2FsY0Rpc2NvdW50U3Vic2NyaXB0aW9uKGNvdXBvbjogQ291cG9uKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXRTdWJzY3JpcHRpb24oKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jb3Vwb25TZXJ2aWNlLmNhbGNEaXNjb3VudFN1YnNjcmlwdGlvbihjb3Vwb24sIGNoZWNrb3V0KS5waXBlKCkpLFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlQ2hlY2tvdXRTdWJzY3JpcHRpb24oXG4gICAgY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dFN1YnNjcmlwdGlvbkRhdGEsXG4gICk6IFByb21pc2U8Q2hlY2tvdXRTdWJzY3JpcHRpb24+IHtcbiAgICBjb25zdCBjaGVja291dCA9IGF3YWl0IHRoaXMuY2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5LmNyZWF0ZSh7XG4gICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAuLi5DaGVja291dFN1YnNjcmlwdGlvbi50b0luc3RhbmNlKHBpY2soY2hlY2tvdXREYXRhLCBbJ3VzZXInLCAnc2hvcCddKSkudG9QbGFpbigpLFxuICAgIH0pXG5cbiAgICBhd2FpdCB0aGlzLmRhdGFQZXJzaXN0ZW5jZS5zZXQoJ2NoZWNrb3V0U3Vic2NyaXB0aW9uSWQnLCBjaGVja291dC5pZCkudG9Qcm9taXNlKClcblxuICAgIHJldHVybiBjaGVja291dFxuICB9XG59XG4iXX0=
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { CheckoutSubscription, CheckoutTypes, isNil, pick, } from '@infrab4a/connect';
3
+ import { concatMap } from 'rxjs/operators';
4
+ import { PERSISTENCE_PROVIDER } from '../consts';
5
+ import { CouponService } from './coupon.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./coupon.service";
8
+ export class CheckoutSubscriptionService {
9
+ constructor(checkoutSubscriptionRepository, dataPersistence, couponService) {
10
+ this.checkoutSubscriptionRepository = checkoutSubscriptionRepository;
11
+ this.dataPersistence = dataPersistence;
12
+ this.couponService = couponService;
13
+ }
14
+ getCheckoutSubscription(checkoutData) {
15
+ return this.dataPersistence
16
+ .get('checkoutSubscriptionId')
17
+ .pipe(concatMap((id) => !isNil(id) ? this.checkoutSubscriptionRepository.get({ id }) : this.createCheckoutSubscription(checkoutData)));
18
+ }
19
+ clearCheckoutSubscriptionFromSession() {
20
+ return this.dataPersistence.remove('checkoutSubscriptionId');
21
+ }
22
+ checkCoupon(nickname, userEmail) {
23
+ return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService
24
+ .checkCoupon(nickname, CheckoutTypes.SUBSCRIPTION, checkout, checkout.subscriptionPlan.name)
25
+ .pipe()));
26
+ }
27
+ calcDiscountSubscription(coupon) {
28
+ return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()));
29
+ }
30
+ async createCheckoutSubscription(checkoutData) {
31
+ const checkout = await this.checkoutSubscriptionRepository.create({
32
+ createdAt: new Date(),
33
+ ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
34
+ });
35
+ await this.dataPersistence.set('checkoutSubscriptionId', checkout.id).toPromise();
36
+ return checkout;
37
+ }
38
+ }
39
+ CheckoutSubscriptionServicefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService, deps: [{ token: 'CheckoutSubscriptionRepository' }, { token: PERSISTENCE_PROVIDER }, { token: i1.CouponService }], target: i0.ɵɵFactoryTarget.Injectable });
40
+ CheckoutSubscriptionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CheckoutSubscriptionService, decorators: [{
42
+ type: Injectable
43
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
44
+ type: Inject,
45
+ args: ['CheckoutSubscriptionRepository']
46
+ }] }, { type: undefined, decorators: [{
47
+ type: Inject,
48
+ args: [PERSISTENCE_PROVIDER]
49
+ }] }, { type: i1.CouponService }]; } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtc3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NoZWNrb3V0LXN1YnNjcmlwdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFDTCxvQkFBb0IsRUFFcEIsYUFBYSxFQUViLEtBQUssRUFDTCxJQUFJLEdBQ0wsTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRWhELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTs7O0FBR2hELE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFFbUIsOEJBQThELEVBQ2hDLGVBQWdDLEVBQzlELGFBQTRCO1FBRjVCLG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFDaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQzlELGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQzVDLENBQUM7SUFFSix1QkFBdUIsQ0FBQyxZQUErQztRQUNyRSxPQUFPLElBQUksQ0FBQyxlQUFlO2FBQ3hCLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQzthQUM3QixJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDZixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLENBQUMsQ0FDN0csQ0FDRixDQUFBO0lBQ0wsQ0FBQztJQUVELG9DQUFvQztRQUNsQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQixFQUFFLFNBQWlCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsSUFBSSxDQUN4QyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUNyQixJQUFJLENBQUMsYUFBYTthQUNmLFdBQVcsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUMzRixJQUFJLEVBQUUsQ0FDVixDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsTUFBYztRQUNyQyxPQUFPLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLElBQUksQ0FDeEMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUM5RixDQUFBO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQywwQkFBMEIsQ0FDdEMsWUFBK0M7UUFFL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFDO1lBQ2hFLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtZQUNyQixHQUFHLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7U0FDbkYsQ0FBQyxDQUFBO1FBRUYsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFakYsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQzs7d0hBakRVLDJCQUEyQixrQkFFNUIsZ0NBQWdDLGFBRWhDLG9CQUFvQjs0SEFKbkIsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsZ0NBQWdDOzswQkFFdkMsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge1xyXG4gIENoZWNrb3V0U3Vic2NyaXB0aW9uLFxyXG4gIENoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeSxcclxuICBDaGVja291dFR5cGVzLFxyXG4gIENvdXBvbixcclxuICBpc05pbCxcclxuICBwaWNrLFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgY29uY2F0TWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IFJlcXVpcmVkQ2hlY2tvdXRTdWJzY3JpcHRpb25EYXRhIH0gZnJvbSAnLi90eXBlcydcclxuXHJcbmltcG9ydCB7IFBFUlNJU1RFTkNFX1BST1ZJREVSIH0gZnJvbSAnLi4vY29uc3RzJ1xyXG5pbXBvcnQgeyBEYXRhUGVyc2lzdGVuY2UgfSBmcm9tICcuLi9wZXJzaXN0ZW5jZSdcclxuaW1wb3J0IHsgQ291cG9uU2VydmljZSB9IGZyb20gJy4vY291cG9uLnNlcnZpY2UnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDaGVja291dFN1YnNjcmlwdGlvblNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdCgnQ2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5JylcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5OiBDaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KFBFUlNJU1RFTkNFX1BST1ZJREVSKSBwcml2YXRlIHJlYWRvbmx5IGRhdGFQZXJzaXN0ZW5jZTogRGF0YVBlcnNpc3RlbmNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3Vwb25TZXJ2aWNlOiBDb3Vwb25TZXJ2aWNlLFxyXG4gICkge31cclxuXHJcbiAgZ2V0Q2hlY2tvdXRTdWJzY3JpcHRpb24oY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dFN1YnNjcmlwdGlvbkRhdGEpOiBPYnNlcnZhYmxlPENoZWNrb3V0U3Vic2NyaXB0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhUGVyc2lzdGVuY2VcclxuICAgICAgLmdldCgnY2hlY2tvdXRTdWJzY3JpcHRpb25JZCcpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGNvbmNhdE1hcCgoaWQpID0+XHJcbiAgICAgICAgICAhaXNOaWwoaWQpID8gdGhpcy5jaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnkuZ2V0KHsgaWQgfSkgOiB0aGlzLmNyZWF0ZUNoZWNrb3V0U3Vic2NyaXB0aW9uKGNoZWNrb3V0RGF0YSksXHJcbiAgICAgICAgKSxcclxuICAgICAgKVxyXG4gIH1cclxuXHJcbiAgY2xlYXJDaGVja291dFN1YnNjcmlwdGlvbkZyb21TZXNzaW9uKCk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVBlcnNpc3RlbmNlLnJlbW92ZSgnY2hlY2tvdXRTdWJzY3JpcHRpb25JZCcpXHJcbiAgfVxyXG5cclxuICBjaGVja0NvdXBvbihuaWNrbmFtZTogc3RyaW5nLCB1c2VyRW1haWw6IHN0cmluZyk6IE9ic2VydmFibGU8Q291cG9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja291dFN1YnNjcmlwdGlvbigpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XHJcbiAgICAgICAgdGhpcy5jb3Vwb25TZXJ2aWNlXHJcbiAgICAgICAgICAuY2hlY2tDb3Vwb24obmlja25hbWUsIENoZWNrb3V0VHlwZXMuU1VCU0NSSVBUSU9OLCBjaGVja291dCwgY2hlY2tvdXQuc3Vic2NyaXB0aW9uUGxhbi5uYW1lKVxyXG4gICAgICAgICAgLnBpcGUoKSxcclxuICAgICAgKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGNhbGNEaXNjb3VudFN1YnNjcmlwdGlvbihjb3Vwb246IENvdXBvbikge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXRTdWJzY3JpcHRpb24oKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmNvdXBvblNlcnZpY2UuY2FsY0Rpc2NvdW50U3Vic2NyaXB0aW9uKGNvdXBvbiwgY2hlY2tvdXQpLnBpcGUoKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZUNoZWNrb3V0U3Vic2NyaXB0aW9uKFxyXG4gICAgY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dFN1YnNjcmlwdGlvbkRhdGEsXHJcbiAgKTogUHJvbWlzZTxDaGVja291dFN1YnNjcmlwdGlvbj4ge1xyXG4gICAgY29uc3QgY2hlY2tvdXQgPSBhd2FpdCB0aGlzLmNoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeS5jcmVhdGUoe1xyXG4gICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCksXHJcbiAgICAgIC4uLkNoZWNrb3V0U3Vic2NyaXB0aW9uLnRvSW5zdGFuY2UocGljayhjaGVja291dERhdGEsIFsndXNlcicsICdzaG9wJ10pKS50b1BsYWluKCksXHJcbiAgICB9KVxyXG5cclxuICAgIGF3YWl0IHRoaXMuZGF0YVBlcnNpc3RlbmNlLnNldCgnY2hlY2tvdXRTdWJzY3JpcHRpb25JZCcsIGNoZWNrb3V0LmlkKS50b1Byb21pc2UoKVxyXG5cclxuICAgIHJldHVybiBjaGVja291dFxyXG4gIH1cclxufVxyXG4iXX0=