ng-miam 3.2.2 → 3.4.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 (120) hide show
  1. package/bundles/ng-miam.umd.js +7452 -5975
  2. package/bundles/ng-miam.umd.js.map +1 -1
  3. package/bundles/ng-miam.umd.min.js +2 -2
  4. package/bundles/ng-miam.umd.min.js.map +1 -1
  5. package/esm2015/lib/_components/abstracts/abstract-recipe-card.component.js +1 -1
  6. package/esm2015/lib/_components/icon/icon.component.js +65 -6
  7. package/esm2015/lib/_components/recipe-filters/recipe-filters.component.js +94 -40
  8. package/esm2015/lib/_components/recipe-type-chooser/recipe-type-chooser.component.js +23 -30
  9. package/esm2015/lib/_components/text-input/text-input.component.js +6 -4
  10. package/esm2015/lib/_models/article.js +43 -0
  11. package/esm2015/lib/_models/basket.js +2 -2
  12. package/esm2015/lib/_models/groceries-entry.js +23 -2
  13. package/esm2015/lib/_models/groceries-list.js +5 -2
  14. package/esm2015/lib/_models/index.js +4 -1
  15. package/esm2015/lib/_models/package.js +14 -3
  16. package/esm2015/lib/_models/recipe.js +4 -1
  17. package/esm2015/lib/_models/user.js +10 -1
  18. package/esm2015/lib/_services/analytics.service.js +7 -1
  19. package/esm2015/lib/_services/articles.service.js +21 -0
  20. package/esm2015/lib/_services/baskets.service.js +7 -3
  21. package/esm2015/lib/_services/context.service.js +15 -1
  22. package/esm2015/lib/_services/groceries-lists.service.js +23 -6
  23. package/esm2015/lib/_services/index.js +3 -1
  24. package/esm2015/lib/_services/ingredients.service.js +2 -2
  25. package/esm2015/lib/_services/interceptor.service.js +2 -3
  26. package/esm2015/lib/_services/package.service.js +32 -9
  27. package/esm2015/lib/_services/recipe-events.service.js +2 -2
  28. package/esm2015/lib/_services/recipe-likes.service.js +6 -2
  29. package/esm2015/lib/_services/recipe-share.service.js +2 -2
  30. package/esm2015/lib/_services/recipes.service.js +2 -2
  31. package/esm2015/lib/_services/suppliers.service.js +2 -2
  32. package/esm2015/lib/_services/toastr.service.js +52 -0
  33. package/esm2015/lib/_services/user.service.js +64 -21
  34. package/esm2015/lib/_types/icon.enum.js +22 -18
  35. package/esm2015/lib/_web-components/{basket-preview-block → basket-preview/basket-preview-block}/basket-preview-block.component.js +15 -15
  36. package/esm2015/lib/_web-components/{basket-preview-disabled → basket-preview/basket-preview-disabled}/basket-preview-disabled.component.js +3 -3
  37. package/esm2015/lib/_web-components/{basket-preview-line → basket-preview/basket-preview-line}/basket-preview-line.component.js +22 -19
  38. package/esm2015/lib/_web-components/basket-preview/basket-preview.module.js +78 -0
  39. package/esm2015/lib/_web-components/basket-preview/index.js +7 -0
  40. package/esm2015/lib/_web-components/{replace-item → basket-preview/replace-item}/replace-item.component.js +8 -8
  41. package/esm2015/lib/_web-components/catalog-article-card/catalog-article-card.component.js +71 -0
  42. package/esm2015/lib/_web-components/catalog-category/catalog-category.component.js +134 -92
  43. package/esm2015/lib/_web-components/catalog-header/catalog-header.component.js +51 -34
  44. package/esm2015/lib/_web-components/catalog-list/catalog-list.component.js +106 -61
  45. package/esm2015/lib/_web-components/catalog-recipe-card/catalog-recipe-card.component.js +65 -52
  46. package/esm2015/lib/_web-components/drawer/drawer.component.js +1 -1
  47. package/esm2015/lib/_web-components/favorite-page/favorite-page.component.js +8 -6
  48. package/esm2015/lib/_web-components/index.js +5 -6
  49. package/esm2015/lib/_web-components/list-scan/basket-preview/basket-preview.component.js +145 -0
  50. package/esm2015/lib/_web-components/list-scan/index.js +3 -0
  51. package/esm2015/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.js +150 -0
  52. package/esm2015/lib/_web-components/list-scan/list-scan.component.js +87 -0
  53. package/esm2015/lib/_web-components/list-scan/list-scan.module.js +60 -0
  54. package/esm2015/lib/_web-components/list-scan/overlay-button/overlay-button.component.js +104 -0
  55. package/esm2015/lib/_web-components/loader/index.js +3 -0
  56. package/esm2015/lib/_web-components/loader/loader.module.js +39 -0
  57. package/esm2015/lib/_web-components/personal-recipes/personal-recipes.component.js +7 -5
  58. package/esm2015/lib/_web-components/recipe-card/recipe-card.component.js +73 -58
  59. package/esm2015/lib/_web-components/recipe-catalog/recipe-catalog.component.js +152 -92
  60. package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +307 -270
  61. package/esm2015/lib/_web-components/recipe-modal/recipe-modal.component.js +1 -1
  62. package/esm2015/lib/_web-components/recipe-stepper/recipe-stepper.component.js +1 -1
  63. package/esm2015/lib/_web-components/recipes-history/recipes-history.component.js +1 -1
  64. package/esm2015/lib/_web-components/suggestion-card/suggestion-card.component.js +3 -6
  65. package/esm2015/lib/_web-components/web-components.module.js +35 -65
  66. package/esm2015/lib/environments/environment.js +6 -0
  67. package/esm2015/lib/ng-miam.module.js +4 -4
  68. package/fesm2015/ng-miam.js +6540 -5287
  69. package/fesm2015/ng-miam.js.map +1 -1
  70. package/lib/_components/abstracts/abstract-recipe-card.component.d.ts +1 -1
  71. package/lib/_components/recipe-filters/recipe-filters.component.d.ts +14 -4
  72. package/lib/_components/recipe-type-chooser/recipe-type-chooser.component.d.ts +2 -2
  73. package/lib/_components/text-input/text-input.component.d.ts +2 -1
  74. package/lib/_models/article.d.ts +23 -0
  75. package/lib/_models/basket.d.ts +1 -2
  76. package/lib/_models/groceries-entry.d.ts +8 -1
  77. package/lib/_models/groceries-list.d.ts +4 -3
  78. package/lib/_models/index.d.ts +3 -0
  79. package/lib/_models/package.d.ts +10 -3
  80. package/lib/_models/recipe.d.ts +1 -0
  81. package/lib/_models/user.d.ts +16 -1
  82. package/lib/_services/articles.service.d.ts +10 -0
  83. package/lib/_services/context.service.d.ts +12 -6
  84. package/lib/_services/groceries-lists.service.d.ts +4 -1
  85. package/lib/_services/index.d.ts +2 -0
  86. package/lib/_services/package.service.d.ts +6 -1
  87. package/lib/_services/toastr.service.d.ts +10 -0
  88. package/lib/_services/user.service.d.ts +12 -6
  89. package/lib/_types/icon.enum.d.ts +21 -17
  90. package/lib/_web-components/{basket-preview-block → basket-preview/basket-preview-block}/basket-preview-block.component.d.ts +6 -6
  91. package/lib/_web-components/{basket-preview-disabled → basket-preview/basket-preview-disabled}/basket-preview-disabled.component.d.ts +2 -2
  92. package/lib/_web-components/{basket-preview-line → basket-preview/basket-preview-line}/basket-preview-line.component.d.ts +7 -7
  93. package/lib/_web-components/basket-preview/basket-preview.module.d.ts +16 -0
  94. package/lib/_web-components/basket-preview/index.d.ts +5 -0
  95. package/lib/_web-components/{replace-item → basket-preview/replace-item}/replace-item.component.d.ts +5 -5
  96. package/lib/_web-components/catalog-article-card/catalog-article-card.component.d.ts +8 -0
  97. package/lib/_web-components/catalog-category/catalog-category.component.d.ts +12 -7
  98. package/lib/_web-components/catalog-header/catalog-header.component.d.ts +5 -2
  99. package/lib/_web-components/catalog-list/catalog-list.component.d.ts +13 -6
  100. package/lib/_web-components/catalog-recipe-card/catalog-recipe-card.component.d.ts +1 -0
  101. package/lib/_web-components/favorite-page/favorite-page.component.d.ts +0 -1
  102. package/lib/_web-components/index.d.ts +4 -5
  103. package/lib/_web-components/list-scan/basket-preview/basket-preview.component.d.ts +25 -0
  104. package/lib/_web-components/list-scan/index.d.ts +2 -0
  105. package/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.d.ts +22 -0
  106. package/lib/_web-components/list-scan/list-scan.component.d.ts +17 -0
  107. package/lib/_web-components/list-scan/list-scan.module.d.ts +16 -0
  108. package/lib/_web-components/list-scan/overlay-button/overlay-button.component.d.ts +19 -0
  109. package/lib/_web-components/loader/index.d.ts +2 -0
  110. package/lib/_web-components/loader/loader.module.d.ts +10 -0
  111. package/lib/_web-components/personal-recipes/personal-recipes.component.d.ts +0 -1
  112. package/lib/_web-components/recipe-card/recipe-card.component.d.ts +1 -0
  113. package/lib/_web-components/recipe-catalog/recipe-catalog.component.d.ts +13 -4
  114. package/lib/_web-components/recipe-details/recipe-details.component.d.ts +8 -3
  115. package/lib/_web-components/suggestion-card/suggestion-card.component.d.ts +0 -1
  116. package/lib/_web-components/web-components.module.d.ts +38 -65
  117. package/lib/{environment.d.ts → environments/environment.d.ts} +1 -1
  118. package/miam-style.css +1 -1
  119. package/package.json +1 -1
  120. package/esm2015/lib/environment.js +0 -8
@@ -0,0 +1,43 @@
1
+ import { DocumentCollection, DocumentResource, Resource } from 'ngx-jsonapi';
2
+ export class Article extends Resource {
3
+ constructor() {
4
+ super(...arguments);
5
+ this.attributes = {
6
+ title: '',
7
+ image: '',
8
+ url: '',
9
+ logo: '',
10
+ date: '',
11
+ 'hidden-css-classes': ''
12
+ };
13
+ this.relationships = {
14
+ provider: new DocumentResource(),
15
+ packages: new DocumentCollection()
16
+ };
17
+ }
18
+ get title() {
19
+ return this.attributes.title;
20
+ }
21
+ get image() {
22
+ return this.attributes.image;
23
+ }
24
+ get url() {
25
+ return this.attributes.url;
26
+ }
27
+ get logo() {
28
+ return this.attributes.logo;
29
+ }
30
+ get date() {
31
+ if (!this.attributes.date) {
32
+ return null;
33
+ }
34
+ return new Date(this.attributes.date);
35
+ }
36
+ get hiddenCssClasses() {
37
+ return this.attributes['hidden-css-classes'].toString().split(',');
38
+ }
39
+ set hiddenCssClasses(classes) {
40
+ this.attributes['hidden-css-classes'] = classes.join(',');
41
+ }
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS5qcyIsInNvdXJjZVJvb3QiOiIvYnVpbGRzL21pYW0vbmctbWlhbS1zZGsvcHJvamVjdHMvbmctbWlhbS9zcmMvIiwic291cmNlcyI6WyJsaWIvX21vZGVscy9hcnRpY2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHN0UsTUFBTSxPQUFPLE9BQVEsU0FBUSxRQUFRO0lBQXJDOztRQUNFLGVBQVUsR0FBRztZQUNYLEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLEVBQUU7WUFDVCxHQUFHLEVBQUUsRUFBRTtZQUNQLElBQUksRUFBRSxFQUFFO1lBQ1IsSUFBSSxFQUFFLEVBQUU7WUFDUixvQkFBb0IsRUFBRSxFQUFFO1NBQ3pCLENBQUM7UUFFRixrQkFBYSxHQUFHO1lBQ2QsUUFBUSxFQUFFLElBQUksZ0JBQWdCLEVBQWtCO1lBQ2hELFFBQVEsRUFBRSxJQUFJLGtCQUFrQixFQUFXO1NBQzVDLENBQUM7SUFpQ0osQ0FBQztJQS9CQyxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUFJLGdCQUFnQixDQUFDLE9BQWlCO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvY3VtZW50Q29sbGVjdGlvbiwgRG9jdW1lbnRSZXNvdXJjZSwgUmVzb3VyY2UgfSBmcm9tICduZ3gtanNvbmFwaSc7XG5pbXBvcnQgeyBSZWNpcGVQcm92aWRlciwgUGFja2FnZSB9IGZyb20gJy4nO1xuXG5leHBvcnQgY2xhc3MgQXJ0aWNsZSBleHRlbmRzIFJlc291cmNlIHtcbiAgYXR0cmlidXRlcyA9IHtcbiAgICB0aXRsZTogJycsXG4gICAgaW1hZ2U6ICcnLFxuICAgIHVybDogJycsXG4gICAgbG9nbzogJycsXG4gICAgZGF0ZTogJycsXG4gICAgJ2hpZGRlbi1jc3MtY2xhc3Nlcyc6ICcnXG4gIH07XG5cbiAgcmVsYXRpb25zaGlwcyA9IHtcbiAgICBwcm92aWRlcjogbmV3IERvY3VtZW50UmVzb3VyY2U8UmVjaXBlUHJvdmlkZXI+KCksXG4gICAgcGFja2FnZXM6IG5ldyBEb2N1bWVudENvbGxlY3Rpb248UGFja2FnZT4oKVxuICB9O1xuXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXMudGl0bGU7XG4gIH1cblxuICBnZXQgaW1hZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGVzLmltYWdlO1xuICB9XG5cbiAgZ2V0IHVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXMudXJsO1xuICB9XG5cbiAgZ2V0IGxvZ28oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGVzLmxvZ287XG4gIH1cblxuICBnZXQgZGF0ZSgpOiBEYXRlIHtcbiAgICBpZiAoIXRoaXMuYXR0cmlidXRlcy5kYXRlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5hdHRyaWJ1dGVzLmRhdGUpO1xuICB9XG5cbiAgZ2V0IGhpZGRlbkNzc0NsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXNbJ2hpZGRlbi1jc3MtY2xhc3NlcyddLnRvU3RyaW5nKCkuc3BsaXQoJywnKTtcbiAgfVxuXG4gIHNldCBoaWRkZW5Dc3NDbGFzc2VzKGNsYXNzZXM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5hdHRyaWJ1dGVzWydoaWRkZW4tY3NzLWNsYXNzZXMnXSA9IGNsYXNzZXMuam9pbignLCcpO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { Resource, DocumentCollection, DocumentResource } from 'ngx-jsonapi';
2
- import { environment } from '../environment';
2
+ import { environment } from '../environments/environment';
3
3
  export class Basket extends Resource {
4
4
  constructor() {
5
5
  super(...arguments);
@@ -34,4 +34,4 @@ export class Basket extends Resource {
34
34
  return this.attributes.token;
35
35
  }
36
36
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fbW9kZWxzL2Jhc2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU83QyxNQUFNLE9BQU8sTUFBTyxTQUFRLFFBQVE7SUFBcEM7O1FBQ1MsZUFBVSxHQUFHO1lBQ2xCLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEtBQUs7WUFDaEIsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDO1lBQ2pDLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLEtBQUssRUFBRSxJQUFJLENBQUMsbUVBQW1FO1NBQ2hGLENBQUE7UUFFTSxrQkFBYSxHQUFHO1lBQ3JCLGdCQUFnQixFQUFFLElBQUksa0JBQWtCLEVBQWU7WUFDdkQsZUFBZSxFQUFFLElBQUksZ0JBQWdCLEVBQWU7U0FDckQsQ0FBQztJQXlCSixDQUFDO0lBdkJDLElBQVcsV0FBVztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNaLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sbUJBQW1CLElBQUksQ0FBQyxFQUFFLFdBQVcsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMzRixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc291cmNlLCBEb2N1bWVudENvbGxlY3Rpb24sIERvY3VtZW50UmVzb3VyY2UgfSBmcm9tICduZ3gtanNvbmFwaSc7XG5pbXBvcnQgeyBCYXNrZXRFbnRyeSB9IGZyb20gJy4vYmFza2V0LWVudHJ5JztcbmltcG9ydCB7IFBvaW50T2ZTYWxlIH0gZnJvbSAnLi9wb2ludC1vZi1zYWxlJztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2tldENvbXBsZXRpb24ge1xuICB0b3RhbDogbnVtYmVyO1xuICBmb3VuZDogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgQmFza2V0IGV4dGVuZHMgUmVzb3VyY2Uge1xuICBwdWJsaWMgYXR0cmlidXRlcyA9IHtcbiAgICBuYW1lOiAnJyxcbiAgICBjb25maXJtZWQ6IGZhbHNlLFxuICAgIGNvbXBsZXRpb246IHsgdG90YWw6IDAsIGZvdW5kOiAwfSxcbiAgICAndG90YWwtcHJpY2UnOiAwLFxuICAgIHRva2VuOiBudWxsIC8vIHRva2VuIGV4cG9zZWQgb25seSBvbiBiYXNrZXQgY29uZmlybWF0aW9uIChQQVRDSCBjb25maXJtZWQ9dHJ1ZSlcbiAgfVxuXG4gIHB1YmxpYyByZWxhdGlvbnNoaXBzID0ge1xuICAgICdiYXNrZXQtZW50cmllcyc6IG5ldyBEb2N1bWVudENvbGxlY3Rpb248QmFza2V0RW50cnk+KCksXG4gICAgJ3BvaW50LW9mLXNhbGUnOiBuZXcgRG9jdW1lbnRSZXNvdXJjZTxQb2ludE9mU2FsZT4oKVxuICB9O1xuXG4gIHB1YmxpYyBnZXQgcmVkaXJlY3RVcmwoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBgJHtlbnZpcm9ubWVudC5taWFtQVBJfS9hcGkvdjEvYmFza2V0cy8ke3RoaXMuaWR9L3JlZGlyZWN0YDtcbiAgfVxuXG4gIGdldCBjb21wbGV0aW9uKCk6IEJhc2tldENvbXBsZXRpb24ge1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXMuY29tcGxldGlvbjtcbiAgfVxuXG4gIGdldCBlbnRyaWVzKCk6IEJhc2tldEVudHJ5W10ge1xuICAgIHJldHVybiB0aGlzLnJlbGF0aW9uc2hpcHNbJ2Jhc2tldC1lbnRyaWVzJ10gJiYgdGhpcy5yZWxhdGlvbnNoaXBzWydiYXNrZXQtZW50cmllcyddLmRhdGE7XG4gIH1cblxuICBnZXQgdG90YWxQcmljZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXNbJ3RvdGFsLXByaWNlJ107XG4gIH1cblxuICBnZXQgdG9rZW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGVzLnRva2VuO1xuICB9XG59XG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fbW9kZWxzL2Jhc2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU8xRCxNQUFNLE9BQU8sTUFBTyxTQUFRLFFBQVE7SUFBcEM7O1FBQ1MsZUFBVSxHQUFHO1lBQ2xCLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEtBQUs7WUFDaEIsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDO1lBQ2pDLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLEtBQUssRUFBRSxJQUFJLENBQUMsbUVBQW1FO1NBQ2hGLENBQUE7UUFFTSxrQkFBYSxHQUFHO1lBQ3JCLGdCQUFnQixFQUFFLElBQUksa0JBQWtCLEVBQWU7WUFDdkQsZUFBZSxFQUFFLElBQUksZ0JBQWdCLEVBQWU7U0FDckQsQ0FBQztJQXlCSixDQUFDO0lBdkJDLElBQVcsV0FBVztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNaLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sbUJBQW1CLElBQUksQ0FBQyxFQUFFLFdBQVcsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMzRixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc291cmNlLCBEb2N1bWVudENvbGxlY3Rpb24sIERvY3VtZW50UmVzb3VyY2UgfSBmcm9tICduZ3gtanNvbmFwaSc7XG5pbXBvcnQgeyBCYXNrZXRFbnRyeSwgUG9pbnRPZlNhbGUgfSBmcm9tICcuJztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBCYXNrZXRDb21wbGV0aW9uIHtcbiAgdG90YWw6IG51bWJlcjtcbiAgZm91bmQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIEJhc2tldCBleHRlbmRzIFJlc291cmNlIHtcbiAgcHVibGljIGF0dHJpYnV0ZXMgPSB7XG4gICAgbmFtZTogJycsXG4gICAgY29uZmlybWVkOiBmYWxzZSxcbiAgICBjb21wbGV0aW9uOiB7IHRvdGFsOiAwLCBmb3VuZDogMH0sXG4gICAgJ3RvdGFsLXByaWNlJzogMCxcbiAgICB0b2tlbjogbnVsbCAvLyB0b2tlbiBleHBvc2VkIG9ubHkgb24gYmFza2V0IGNvbmZpcm1hdGlvbiAoUEFUQ0ggY29uZmlybWVkPXRydWUpXG4gIH1cblxuICBwdWJsaWMgcmVsYXRpb25zaGlwcyA9IHtcbiAgICAnYmFza2V0LWVudHJpZXMnOiBuZXcgRG9jdW1lbnRDb2xsZWN0aW9uPEJhc2tldEVudHJ5PigpLFxuICAgICdwb2ludC1vZi1zYWxlJzogbmV3IERvY3VtZW50UmVzb3VyY2U8UG9pbnRPZlNhbGU+KClcbiAgfTtcblxuICBwdWJsaWMgZ2V0IHJlZGlyZWN0VXJsKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7ZW52aXJvbm1lbnQubWlhbUFQSX0vYXBpL3YxL2Jhc2tldHMvJHt0aGlzLmlkfS9yZWRpcmVjdGA7XG4gIH1cblxuICBnZXQgY29tcGxldGlvbigpOiBCYXNrZXRDb21wbGV0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGVzLmNvbXBsZXRpb247XG4gIH1cblxuICBnZXQgZW50cmllcygpOiBCYXNrZXRFbnRyeVtdIHtcbiAgICByZXR1cm4gdGhpcy5yZWxhdGlvbnNoaXBzWydiYXNrZXQtZW50cmllcyddICYmIHRoaXMucmVsYXRpb25zaGlwc1snYmFza2V0LWVudHJpZXMnXS5kYXRhO1xuICB9XG5cbiAgZ2V0IHRvdGFsUHJpY2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGVzWyd0b3RhbC1wcmljZSddO1xuICB9XG5cbiAgZ2V0IHRva2VuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlcy50b2tlbjtcbiAgfVxufVxuIl19
@@ -4,7 +4,7 @@ export class GroceriesEntry extends Resource {
4
4
  super(...arguments);
5
5
  this.attributes = {
6
6
  name: '',
7
- 'capacity-volume': '',
7
+ 'capacity-volume': 1,
8
8
  'capacity-unit': '',
9
9
  'capacity-factor': '',
10
10
  status: 'active',
@@ -17,5 +17,26 @@ export class GroceriesEntry extends Resource {
17
17
  set status(st) {
18
18
  this.attributes.status = st;
19
19
  }
20
+ get name() {
21
+ return this.attributes.name;
22
+ }
23
+ set name(n) {
24
+ this.attributes.name = n;
25
+ }
26
+ get recipesIds() {
27
+ return this.attributes['recipe-ids'];
28
+ }
29
+ get volume() {
30
+ return parseFloat(this.attributes['capacity-volume'].toString());
31
+ }
32
+ set volume(v) {
33
+ this.attributes['capacity-volume'] = v;
34
+ }
35
+ get unit() {
36
+ return this.attributes['capacity-unit'];
37
+ }
38
+ set unit(u) {
39
+ this.attributes['capacity-unit'] = u;
40
+ }
20
41
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvY2VyaWVzLWVudHJ5LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fbW9kZWxzL2dyb2Nlcmllcy1lbnRyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXZDLE1BQU0sT0FBTyxjQUFlLFNBQVEsUUFBUTtJQUE1Qzs7UUFDUyxlQUFVLEdBQUc7WUFDbEIsSUFBSSxFQUFFLEVBQUU7WUFDUixpQkFBaUIsRUFBRSxFQUFFO1lBQ3JCLGVBQWUsRUFBRSxFQUFFO1lBQ25CLGlCQUFpQixFQUFFLEVBQUU7WUFDckIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsWUFBWSxFQUFFLEVBQUU7U0FDakIsQ0FBQztJQVNKLENBQUM7SUFQQyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxFQUFVO1FBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNvdXJjZSB9IGZyb20gJ25neC1qc29uYXBpJztcblxuZXhwb3J0IGNsYXNzIEdyb2Nlcmllc0VudHJ5IGV4dGVuZHMgUmVzb3VyY2Uge1xuICBwdWJsaWMgYXR0cmlidXRlcyA9IHtcbiAgICBuYW1lOiAnJyxcbiAgICAnY2FwYWNpdHktdm9sdW1lJzogJycsXG4gICAgJ2NhcGFjaXR5LXVuaXQnOiAnJyxcbiAgICAnY2FwYWNpdHktZmFjdG9yJzogJycsXG4gICAgc3RhdHVzOiAnYWN0aXZlJyxcbiAgICAncmVjaXBlLWlkcyc6IFtdXG4gIH07XG5cbiAgZ2V0IHN0YXR1cygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXMuc3RhdHVzO1xuICB9XG5cbiAgc2V0IHN0YXR1cyhzdDogc3RyaW5nKSB7XG4gICAgdGhpcy5hdHRyaWJ1dGVzLnN0YXR1cyA9IHN0O1xuICB9XG59XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvY2VyaWVzLWVudHJ5LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fbW9kZWxzL2dyb2Nlcmllcy1lbnRyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXZDLE1BQU0sT0FBTyxjQUFlLFNBQVEsUUFBUTtJQUE1Qzs7UUFDUyxlQUFVLEdBQUc7WUFDbEIsSUFBSSxFQUFFLEVBQUU7WUFDUixpQkFBaUIsRUFBRSxDQUFDO1lBQ3BCLGVBQWUsRUFBRSxFQUFFO1lBQ25CLGlCQUFpQixFQUFFLEVBQUU7WUFDckIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsWUFBWSxFQUFFLEVBQUU7U0FDakIsQ0FBQztJQXFDSixDQUFDO0lBbkNDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEVBQVU7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxDQUFTO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsQ0FBUztRQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLENBQVM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tICduZ3gtanNvbmFwaSc7XG5cbmV4cG9ydCBjbGFzcyBHcm9jZXJpZXNFbnRyeSBleHRlbmRzIFJlc291cmNlIHtcbiAgcHVibGljIGF0dHJpYnV0ZXMgPSB7XG4gICAgbmFtZTogJycsXG4gICAgJ2NhcGFjaXR5LXZvbHVtZSc6IDEsXG4gICAgJ2NhcGFjaXR5LXVuaXQnOiAnJyxcbiAgICAnY2FwYWNpdHktZmFjdG9yJzogJycsXG4gICAgc3RhdHVzOiAnYWN0aXZlJyxcbiAgICAncmVjaXBlLWlkcyc6IFtdXG4gIH07XG5cbiAgZ2V0IHN0YXR1cygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXMuc3RhdHVzO1xuICB9XG5cbiAgc2V0IHN0YXR1cyhzdDogc3RyaW5nKSB7XG4gICAgdGhpcy5hdHRyaWJ1dGVzLnN0YXR1cyA9IHN0O1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGVzLm5hbWU7XG4gIH1cblxuICBzZXQgbmFtZShuOiBzdHJpbmcpIHtcbiAgICB0aGlzLmF0dHJpYnV0ZXMubmFtZSA9IG47XG4gIH1cblxuICBnZXQgcmVjaXBlc0lkcygpOiBBcnJheTxzdHJpbmd8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlc1sncmVjaXBlLWlkcyddO1xuICB9XG5cbiAgZ2V0IHZvbHVtZSgpOiBudW1iZXIge1xuICAgIHJldHVybiBwYXJzZUZsb2F0KHRoaXMuYXR0cmlidXRlc1snY2FwYWNpdHktdm9sdW1lJ10udG9TdHJpbmcoKSk7XG4gIH1cblxuICBzZXQgdm9sdW1lKHY6IG51bWJlcikge1xuICAgIHRoaXMuYXR0cmlidXRlc1snY2FwYWNpdHktdm9sdW1lJ10gPSB2O1xuICB9XG5cbiAgZ2V0IHVuaXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGVzWydjYXBhY2l0eS11bml0J107XG4gIH1cblxuICBzZXQgdW5pdCh1OiBzdHJpbmcpIHtcbiAgICB0aGlzLmF0dHJpYnV0ZXNbJ2NhcGFjaXR5LXVuaXQnXSA9IHU7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { DocumentCollection, Resource } from "ngx-jsonapi";
1
+ import { DocumentCollection, Resource } from 'ngx-jsonapi';
2
2
  export class GroceriesList extends Resource {
3
3
  constructor() {
4
4
  super(...arguments);
@@ -21,6 +21,9 @@ export class GroceriesList extends Resource {
21
21
  get recipeInfos() {
22
22
  return this.attributes['recipes-infos'];
23
23
  }
24
+ get entries() {
25
+ return this.relationships['groceries-entries'];
26
+ }
24
27
  hasRecipe(recipeId) {
25
28
  var _a;
26
29
  return (_a = this.recipeInfos) === null || _a === void 0 ? void 0 : _a.map(info => info.id).includes(recipeId);
@@ -30,4 +33,4 @@ export class GroceriesList extends Resource {
30
33
  return +((_a = this.recipeInfos.find(info => info.id === recipe.id)) === null || _a === void 0 ? void 0 : _a.guests);
31
34
  }
32
35
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvY2VyaWVzLWxpc3QuanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL19tb2RlbHMvZ3JvY2VyaWVzLWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUkzRCxNQUFNLE9BQU8sYUFBYyxTQUFRLFFBQVE7SUFBM0M7O1FBQ1MsZUFBVSxHQUFHO1lBQ2xCLElBQUksRUFBRSxFQUFFO1lBQ1IsWUFBWSxFQUFFLEVBQUU7WUFDaEIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsT0FBTyxFQUFFLEVBQUU7WUFDWCxhQUFhLEVBQUUsRUFBRTtZQUNqQixlQUFlLEVBQUUsRUFBRTtZQUNuQixnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLEVBQUU7WUFDYixnQkFBZ0IsRUFBRSxLQUFLO1NBQ3hCLENBQUM7UUFFSyxrQkFBYSxHQUFHO1lBQ3JCLG1CQUFtQixFQUFFLElBQUksa0JBQWtCLEVBQWtCO1NBQzlELENBQUM7SUFhSixDQUFDO0lBWEMsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxTQUFTLENBQUMsUUFBZ0I7O1FBQ3hCLGFBQVEsSUFBSSxDQUFDLFdBQVcsMENBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFO0lBQ3BFLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBYzs7UUFDNUIsT0FBTyxRQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsRUFBRSxDQUFDLDBDQUFFLE1BQU0sQ0FBQSxDQUFDO0lBQ3ZFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvY3VtZW50Q29sbGVjdGlvbiwgUmVzb3VyY2UgfSBmcm9tIFwibmd4LWpzb25hcGlcIjtcbmltcG9ydCB7IEdyb2Nlcmllc0VudHJ5IH0gZnJvbSBcIi4vZ3JvY2VyaWVzLWVudHJ5XCI7XG5pbXBvcnQgeyBSZWNpcGUgfSBmcm9tIFwiLi9yZWNpcGVcIjtcblxuZXhwb3J0IGNsYXNzIEdyb2Nlcmllc0xpc3QgZXh0ZW5kcyBSZXNvdXJjZSB7XG4gIHB1YmxpYyBhdHRyaWJ1dGVzID0ge1xuICAgIG5hbWU6ICcnLFxuICAgICdjcmVhdGVkLWF0JzogJycsXG4gICAgJ3VwZGF0ZWQtYXQnOiAnJyxcbiAgICBlbnRyaWVzOiBbXSxcbiAgICAncmVjaXBlcy1pZHMnOiBbXSxcbiAgICAncmVjaXBlcy1pbmZvcyc6IFtdLFxuICAgICdzZWFyY2gtb3B0aW9ucyc6IHt9LFxuICAgIHNldHRpbmdzOiB7fSxcbiAgICAndXNlci1pZCc6ICcnLFxuICAgICdhcHBlbmQtcmVjaXBlcyc6IGZhbHNlXG4gIH07XG5cbiAgcHVibGljIHJlbGF0aW9uc2hpcHMgPSB7XG4gICAgJ2dyb2Nlcmllcy1lbnRyaWVzJzogbmV3IERvY3VtZW50Q29sbGVjdGlvbjxHcm9jZXJpZXNFbnRyeT4oKVxuICB9O1xuXG4gIGdldCByZWNpcGVJbmZvcygpOiB7IGlkOiBzdHJpbmcsIGd1ZXN0czogc3RyaW5nIH1bXSB7XG4gICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlc1sncmVjaXBlcy1pbmZvcyddO1xuICB9XG5cbiAgaGFzUmVjaXBlKHJlY2lwZUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIHRoaXMucmVjaXBlSW5mb3M/Lm1hcChpbmZvID0+IGluZm8uaWQpLmluY2x1ZGVzKHJlY2lwZUlkKTtcbiAgfVxuXG4gIGd1ZXN0c0ZvclJlY2lwZShyZWNpcGU6IFJlY2lwZSk6IG51bWJlciB7XG4gICAgcmV0dXJuICt0aGlzLnJlY2lwZUluZm9zLmZpbmQoaW5mbyA9PiBpbmZvLmlkID09PSByZWNpcGUuaWQpPy5ndWVzdHM7XG4gIH1cbn1cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvY2VyaWVzLWxpc3QuanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL19tb2RlbHMvZ3JvY2VyaWVzLWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUkzRCxNQUFNLE9BQU8sYUFBYyxTQUFRLFFBQVE7SUFBM0M7O1FBQ1MsZUFBVSxHQUFHO1lBQ2xCLElBQUksRUFBRSxFQUFFO1lBQ1IsWUFBWSxFQUFFLEVBQUU7WUFDaEIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsT0FBTyxFQUFFLEVBQUU7WUFDWCxhQUFhLEVBQUUsRUFBRTtZQUNqQixlQUFlLEVBQUUsRUFBRTtZQUNuQixnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLEVBQUU7WUFDYixnQkFBZ0IsRUFBRSxLQUFLO1NBQ3hCLENBQUM7UUFFSyxrQkFBYSxHQUFHO1lBQ3JCLG1CQUFtQixFQUFFLElBQUksa0JBQWtCLEVBQWtCO1NBQzlELENBQUM7SUFpQkosQ0FBQztJQWZDLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFNBQVMsQ0FBQyxRQUFnQjs7UUFDeEIsYUFBUSxJQUFJLENBQUMsV0FBVywwQ0FBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUU7SUFDcEUsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUFjOztRQUM1QixPQUFPLFFBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUMsMENBQUUsTUFBTSxDQUFBLENBQUM7SUFDdkUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9jdW1lbnRDb2xsZWN0aW9uLCBSZXNvdXJjZSB9IGZyb20gJ25neC1qc29uYXBpJztcbmltcG9ydCB7IEdyb2Nlcmllc0VudHJ5IH0gZnJvbSAnLi9ncm9jZXJpZXMtZW50cnknO1xuaW1wb3J0IHsgUmVjaXBlIH0gZnJvbSAnLi9yZWNpcGUnO1xuXG5leHBvcnQgY2xhc3MgR3JvY2VyaWVzTGlzdCBleHRlbmRzIFJlc291cmNlIHtcbiAgcHVibGljIGF0dHJpYnV0ZXMgPSB7XG4gICAgbmFtZTogJycsXG4gICAgJ2NyZWF0ZWQtYXQnOiAnJyxcbiAgICAndXBkYXRlZC1hdCc6ICcnLFxuICAgIGVudHJpZXM6IFtdLFxuICAgICdyZWNpcGVzLWlkcyc6IFtdLFxuICAgICdyZWNpcGVzLWluZm9zJzogW10sXG4gICAgJ3NlYXJjaC1vcHRpb25zJzoge30sXG4gICAgc2V0dGluZ3M6IHt9LFxuICAgICd1c2VyLWlkJzogJycsXG4gICAgJ2FwcGVuZC1yZWNpcGVzJzogZmFsc2VcbiAgfTtcblxuICBwdWJsaWMgcmVsYXRpb25zaGlwcyA9IHtcbiAgICAnZ3JvY2VyaWVzLWVudHJpZXMnOiBuZXcgRG9jdW1lbnRDb2xsZWN0aW9uPEdyb2Nlcmllc0VudHJ5PigpXG4gIH07XG5cbiAgZ2V0IHJlY2lwZUluZm9zKCk6IHsgaWQ6IHN0cmluZywgZ3Vlc3RzOiBzdHJpbmcgfVtdIHtcbiAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGVzWydyZWNpcGVzLWluZm9zJ107XG4gIH1cblxuICBnZXQgZW50cmllcygpOiBEb2N1bWVudENvbGxlY3Rpb248R3JvY2VyaWVzRW50cnk+IHtcbiAgICByZXR1cm4gdGhpcy5yZWxhdGlvbnNoaXBzWydncm9jZXJpZXMtZW50cmllcyddO1xuICB9XG5cbiAgaGFzUmVjaXBlKHJlY2lwZUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIHRoaXMucmVjaXBlSW5mb3M/Lm1hcChpbmZvID0+IGluZm8uaWQpLmluY2x1ZGVzKHJlY2lwZUlkKTtcbiAgfVxuXG4gIGd1ZXN0c0ZvclJlY2lwZShyZWNpcGU6IFJlY2lwZSk6IG51bWJlciB7XG4gICAgcmV0dXJuICt0aGlzLnJlY2lwZUluZm9zLmZpbmQoaW5mbyA9PiBpbmZvLmlkID09PSByZWNpcGUuaWQpPy5ndWVzdHM7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  export * from './ingredient';
2
2
  export * from './item';
3
3
  export * from './point-of-sale';
4
+ export * from './package';
4
5
  export * from './quantity-unit';
5
6
  export * from './recipe';
6
7
  export * from './recipe-provider';
@@ -14,4 +15,6 @@ export * from './basket-entry';
14
15
  export * from './basket-entries-item';
15
16
  export * from './basket-preview-line';
16
17
  export * from './sponsor';
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL19tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbmdyZWRpZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL3BvaW50LW9mLXNhbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWFudGl0eS11bml0JztcbmV4cG9ydCAqIGZyb20gJy4vcmVjaXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVjaXBlLXByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vcmVjaXBlLXNoYXJlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVjaXBlLXN0YXR1cyc7XG5leHBvcnQgKiBmcm9tICcuL3JlY2lwZS1zdGVwJztcbmV4cG9ydCAqIGZyb20gJy4vcmVjaXBlLXR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdXBwbGllcic7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2tldCc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2tldC1lbnRyeSc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2tldC1lbnRyaWVzLWl0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNrZXQtcHJldmlldy1saW5lJztcbmV4cG9ydCAqIGZyb20gJy4vc3BvbnNvcic7XG4iXX0=
18
+ export * from './article';
19
+ export * from './user';
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL19tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbmdyZWRpZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL3BvaW50LW9mLXNhbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWNrYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vcXVhbnRpdHktdW5pdCc7XG5leHBvcnQgKiBmcm9tICcuL3JlY2lwZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlY2lwZS1wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL3JlY2lwZS1zaGFyZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlY2lwZS1zdGF0dXMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWNpcGUtc3RlcCc7XG5leHBvcnQgKiBmcm9tICcuL3JlY2lwZS10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3VwcGxpZXInO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNrZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNrZXQtZW50cnknO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNrZXQtZW50cmllcy1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vYmFza2V0LXByZXZpZXctbGluZSc7XG5leHBvcnQgKiBmcm9tICcuL3Nwb25zb3InO1xuZXhwb3J0ICogZnJvbSAnLi9hcnRpY2xlJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlcic7XG4iXX0=
@@ -1,18 +1,29 @@
1
- import { DocumentResource, Resource } from 'ngx-jsonapi';
1
+ import { DocumentCollection, DocumentResource, Resource } from 'ngx-jsonapi';
2
2
  export class Package extends Resource {
3
3
  constructor() {
4
4
  super(...arguments);
5
5
  this.attributes = {
6
6
  title: '',
7
7
  'author-id': '',
8
+ // system: '',
9
+ editable: false,
10
+ shared: false,
11
+ 'catalog-category': false,
12
+ 'catalog-position': '',
13
+ 'recipes-count': ''
8
14
  };
9
15
  this.relationships = {
10
16
  provider: new DocumentResource(),
11
- status: new DocumentResource()
17
+ status: new DocumentResource(),
18
+ recipes: new DocumentCollection(),
19
+ 'shared-suppliers': new DocumentCollection()
12
20
  };
13
21
  }
14
22
  get title() {
15
23
  return this.attributes.title;
16
24
  }
25
+ get status() {
26
+ return this.relationships && this.relationships.status && this.relationships.status.data;
27
+ }
17
28
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIvYnVpbGRzL21pYW0vbmctbWlhbS1zZGsvcHJvamVjdHMvbmctbWlhbS9zcmMvIiwic291cmNlcyI6WyJsaWIvX21vZGVscy9wYWNrYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFJdkQsTUFBTSxPQUFPLE9BQVEsU0FBUSxRQUFRO0lBQXJDOztRQUNTLGVBQVUsR0FBRztZQUNsQixLQUFLLEVBQUUsRUFBRTtZQUNULFdBQVcsRUFBRSxFQUFFO1NBRWhCLENBQUM7UUFNRixrQkFBYSxHQUFHO1lBQ2QsUUFBUSxFQUFFLElBQUksZ0JBQWdCLEVBQWtCO1lBQ2hELE1BQU0sRUFBRSxJQUFJLGdCQUFnQixFQUFnQjtTQUM3QyxDQUFDO0lBQ0osQ0FBQztJQVJDLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQztDQU1GIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEb2N1bWVudFJlc291cmNlLCBSZXNvdXJjZX0gZnJvbSAnbmd4LWpzb25hcGknO1xuaW1wb3J0IHsgUmVjaXBlUHJvdmlkZXIgfSBmcm9tICcuL3JlY2lwZS1wcm92aWRlcic7XG5pbXBvcnQgeyBSZWNpcGVTdGF0dXMgfSBmcm9tICcuL3JlY2lwZS1zdGF0dXMnO1xuXG5leHBvcnQgY2xhc3MgUGFja2FnZSBleHRlbmRzIFJlc291cmNlIHtcbiAgcHVibGljIGF0dHJpYnV0ZXMgPSB7XG4gICAgdGl0bGU6ICcnLFxuICAgICdhdXRob3ItaWQnOiAnJyxcbiAgICAvLyBzeXN0ZW06ICcnXG4gIH07XG5cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlcy50aXRsZTtcbiAgfVxuXG4gIHJlbGF0aW9uc2hpcHMgPSB7XG4gICAgcHJvdmlkZXI6IG5ldyBEb2N1bWVudFJlc291cmNlPFJlY2lwZVByb3ZpZGVyPigpLFxuICAgIHN0YXR1czogbmV3IERvY3VtZW50UmVzb3VyY2U8UmVjaXBlU3RhdHVzPigpXG4gIH07XG59Il19
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIvYnVpbGRzL21pYW0vbmctbWlhbS1zZGsvcHJvamVjdHMvbmctbWlhbS9zcmMvIiwic291cmNlcyI6WyJsaWIvX21vZGVscy9wYWNrYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHN0UsTUFBTSxPQUFPLE9BQVEsU0FBUSxRQUFRO0lBQXJDOztRQUNTLGVBQVUsR0FBRztZQUNsQixLQUFLLEVBQUUsRUFBRTtZQUNULFdBQVcsRUFBRSxFQUFFO1lBQ2YsY0FBYztZQUNkLFFBQVEsRUFBRSxLQUFLO1lBQ2YsTUFBTSxFQUFFLEtBQUs7WUFDYixrQkFBa0IsRUFBRSxLQUFLO1lBQ3pCLGtCQUFrQixFQUFFLEVBQUU7WUFDdEIsZUFBZSxFQUFFLEVBQUU7U0FDcEIsQ0FBQztRQU1GLGtCQUFhLEdBQUc7WUFDZCxRQUFRLEVBQUUsSUFBSSxnQkFBZ0IsRUFBa0I7WUFDaEQsTUFBTSxFQUFFLElBQUksZ0JBQWdCLEVBQWdCO1lBQzVDLE9BQU8sRUFBRSxJQUFJLGtCQUFrQixFQUFVO1lBQ3pDLGtCQUFrQixFQUFFLElBQUksa0JBQWtCLEVBQVk7U0FDdkQsQ0FBQztJQUtKLENBQUM7SUFkQyxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFTRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQzNGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvY3VtZW50Q29sbGVjdGlvbiwgRG9jdW1lbnRSZXNvdXJjZSwgUmVzb3VyY2UgfSBmcm9tICduZ3gtanNvbmFwaSc7XG5pbXBvcnQgeyBTdXBwbGllciwgUmVjaXBlLCBSZWNpcGVQcm92aWRlciwgUmVjaXBlU3RhdHVzfSBmcm9tICcuJztcblxuZXhwb3J0IGNsYXNzIFBhY2thZ2UgZXh0ZW5kcyBSZXNvdXJjZSB7XG4gIHB1YmxpYyBhdHRyaWJ1dGVzID0ge1xuICAgIHRpdGxlOiAnJyxcbiAgICAnYXV0aG9yLWlkJzogJycsXG4gICAgLy8gc3lzdGVtOiAnJyxcbiAgICBlZGl0YWJsZTogZmFsc2UsXG4gICAgc2hhcmVkOiBmYWxzZSxcbiAgICAnY2F0YWxvZy1jYXRlZ29yeSc6IGZhbHNlLFxuICAgICdjYXRhbG9nLXBvc2l0aW9uJzogJycsXG4gICAgJ3JlY2lwZXMtY291bnQnOiAnJ1xuICB9O1xuXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXMudGl0bGU7XG4gIH1cblxuICByZWxhdGlvbnNoaXBzID0ge1xuICAgIHByb3ZpZGVyOiBuZXcgRG9jdW1lbnRSZXNvdXJjZTxSZWNpcGVQcm92aWRlcj4oKSxcbiAgICBzdGF0dXM6IG5ldyBEb2N1bWVudFJlc291cmNlPFJlY2lwZVN0YXR1cz4oKSxcbiAgICByZWNpcGVzOiBuZXcgRG9jdW1lbnRDb2xsZWN0aW9uPFJlY2lwZT4oKSxcbiAgICAnc2hhcmVkLXN1cHBsaWVycyc6IG5ldyBEb2N1bWVudENvbGxlY3Rpb248U3VwcGxpZXI+KClcbiAgfTtcblxuICBnZXQgc3RhdHVzKCk6IFJlY2lwZVN0YXR1cyB7XG4gICAgcmV0dXJuIHRoaXMucmVsYXRpb25zaGlwcyAmJiB0aGlzLnJlbGF0aW9uc2hpcHMuc3RhdHVzICYmIHRoaXMucmVsYXRpb25zaGlwcy5zdGF0dXMuZGF0YTtcbiAgfVxufVxuIl19
@@ -178,6 +178,9 @@ export class Recipe extends Resource {
178
178
  }
179
179
  return this._normalizedIngredients;
180
180
  }
181
+ get videoId() {
182
+ return this.attributes['video-id'];
183
+ }
181
184
  formatDuration(duration) {
182
185
  if (!toMinutes(duration)) {
183
186
  return '-';
@@ -195,4 +198,4 @@ export class Recipe extends Resource {
195
198
  return formatedDuration;
196
199
  }
197
200
  }
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fbW9kZWxzL3JlY2lwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQVksTUFBTSxjQUFjLENBQUM7QUFnQjFFLE1BQU0sT0FBTyxNQUFPLFNBQVEsUUFBUTtJQUFwQzs7UUFFRSxlQUFVLEdBQUc7WUFDWCxLQUFLLEVBQUUsRUFBRTtZQUNULFFBQVEsRUFBRSxFQUFFO1lBQ1osVUFBVSxFQUFFLEVBQUU7WUFDZCxXQUFXLEVBQUUsRUFBRTtZQUNmLGtCQUFrQixFQUFFLEVBQUU7WUFDdEIsaUJBQWlCLEVBQUUsRUFBRTtZQUNyQixrQkFBa0IsRUFBRSxFQUFFO1lBQ3RCLGlCQUFpQixFQUFFLEVBQUU7WUFDckIsY0FBYyxFQUFFLEVBQUU7WUFDbEIsY0FBYyxFQUFFLEVBQUU7WUFDbEIsV0FBVyxFQUFFLEVBQUU7WUFDZixNQUFNLEVBQUUsRUFBRTtZQUNWLHlCQUF5QixFQUFFLEVBQUU7WUFDN0Isb0JBQW9CLEVBQUUsRUFBRTtZQUN4Qix3QkFBd0IsRUFBRSxFQUFFO1lBQzVCLFVBQVUsRUFBRSxDQUFDO1lBQ2IsSUFBSSxFQUFFLENBQUM7WUFDUCxTQUFTLEVBQUUsS0FBSztZQUNoQixVQUFVLEVBQUUsQ0FBQztZQUNiLFVBQVUsRUFBRSxFQUFFO1lBQ2QsUUFBUSxFQUFFLEtBQUs7WUFDZixNQUFNLEVBQUUsWUFBWTtZQUNwQixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDO1FBRUYsa0JBQWEsR0FBRztZQUNkLFdBQVcsRUFBRSxJQUFJLGtCQUFrQixFQUFjO1lBQ2pELGNBQWMsRUFB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IHsgRG9jdW1lbnRDb2xsZWN0aW9uLCBSZXNvdXJjZSwgRG9jdW1lbnRSZXNvdXJjZSB9IGZyb20gJ25neC1qc29uYXBpJztcbmltcG9ydCB7IHN1bSwgbm9ybWFsaXplLCBwYXJzZSwgdG9NaW51dGVzLCBEdXJhdGlvbiB9IGZyb20gJ2R1cmF0aW9uLWZucyc7XG5pbXBvcnQgeyBSZWNpcGVQcm92aWRlciB9IGZyb20gJy4vcmVjaXBlLXByb3ZpZGVyJztcbmltcG9ydCB7IFJlY2lwZVN0YXR1cyB9IGZyb20gJy4vcmVjaXBlLXN0YXR1cyc7XG5pbXBvcnQgeyBSZWNpcGVUeXBlIH0gZnJvbSAnLi9yZWNpcGUtdHlwZSc7XG5pbXBvcnQgeyBSZWNpcGVTdGVwIH0gZnJvbSAnLi9yZWNpcGUtc3RlcCc7XG5pbXBvcnQgeyBJbmdyZWRpZW50IH0gZnJvbSAnLi9pbmdyZWRpZW50JztcbmltcG9ydCB7IFNwb25zb3IgfSBmcm9tICcuL3Nwb25zb3InO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gJy4vcGFja2FnZSc7XG5cbmludGVyZmFjZSBTaW1wbGlmaWVkSW5ncmVkaWVudCB7XG4gIG5hbWU6IHN0cmluZztcbiAgcXR5OiBudW1iZXI7XG4gIHVuaXQ6IHN0cmluZztcbn1cblxuXG5leHBvcnQgY2xhc3MgUmVjaXBlIGV4dGVuZHMgUmVzb3VyY2Uge1xuXG4gIGF0dHJpYnV0ZXMgPSB7XG4gICAgdGl0bGU6ICcnLFxuICAgICdleHQtaWQnOiAnJyxcbiAgICAnZXh0LWxpbmsnOiAnJyxcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgJ251bWJlci1vZi1ndWVzdHMnOiAnJyxcbiAgICAnaW5ncmVkaWVudHMtc3RyJzogW10sXG4gICAgJ3ByZXBhcmF0aW9uLXRpbWUnOiAnJyxcbiAgICAncHJlaGVhdGluZy10aW1lJzogJycsXG4gICAgJ2Nvb2tpbmctdGltZSc6ICcnLFxuICAgICdyZXN0aW5nLXRpbWUnOiAnJyxcbiAgICAnbWVkaWEtdXJsJzogJycsXG4gICAgc291cmNlOiAnJyxcbiAgICAnaW5mb3JtYXRpb25hbC1wYWdlLWh0bWwnOiAnJyxcbiAgICAnZmlsaWdyYW5lLWxvZ28tdXJsJzogJycsXG4gICAgJ2luZm9ybWF0aW9uYWwtc2VudGVuY2UnOiAnJyxcbiAgICBkaWZmaWN1bHR5OiAxLFxuICAgIGNvc3Q6IDEsXG4gICAgc3VnZ2VzdGVkOiBmYWxzZSxcbiAgICBwb3B1bGFyaXR5OiAwLFxuICAgICd2aWRlby1pZCc6ICcnLFxuICAgIHByb21vdGVkOiBmYWxzZSxcbiAgICBzaGFyZWQ6ICdub3Rfc2hhcmVkJyxcbiAgICBlZGl0YWJsZTogZmFsc2VcbiAgfTtcblxuICByZWxhdGlvbnNoaXBzID0ge1xuICAgIGluZ3JlZGllbnRzOiBuZXcgRG9jdW1lbnRDb2xsZWN0aW9uPEluZ3JlZGllbnQ+KCksXG4gICAgJ3JlY2lwZS1zdGVwcyc6IG5ldyBEb2N1bWVudENvbGxlY3Rpb248UmVjaXBlU3RlcD4oKSxcbiAgICAncmVjaXBlLXByb3ZpZGVyJzogbmV3IERvY3VtZW50UmVzb3VyY2U8UmVjaXBlUHJvdmlkZXI+KCksXG4gICAgJ3JlY2lwZS1zdGF0dXMnOiBuZXcgRG9jdW1lbnRSZXNvdXJjZTxSZWNpcGVTdGF0dXM+KCksXG4gICAgJ3JlY2lwZS10eXBlJzogbmV3IERvY3VtZW50UmVzb3VyY2U8UmVjaXBlVHlwZT4oKSxcbiAgICBzcG9uc29yczogbmV3IERvY3VtZW50Q29sbGVjdGlvbjxTcG9uc29yPigpLFxuICAgIHBhY2thZ2VzOiBuZXcgRG9jdW1lbnRDb2xsZWN0aW9uPFBhY2thZ2U+KClcbiAgfTtcblxuICB0dGwgPSAzNjAwOyAvLyByZWNpcGVzIHdpbGwgYmUgY2FjaGVkIGZvciAxIGhvdXJcblxuICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgZmluYWxUaW1lciA9IHRoaXMuYXR0cmlidXRlc1sncHJlcGFyYXRpb24tdGltZSddICsgdGhpcy5hdHRyaWJ1dGVzWydwcmVoZWF0aW5nLXRpbWUnXSArXG4gICAgdGhpcy5hdHRyaWJ1dGVzWydjb29raW5nLXRpbWUnXSArIHRoaXMuYXR0cmlidXRlc1sncmVzdGluZy10aW1lJ107XG4gIG1vZGlmaWVkR3Vlc3RzOiBudW1iZXI7XG4gIHByaXZhdGUgX2V2ZW50c0dyb3VwSWQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfZXZlbnRPcmlnaW46IHN0cmluZztcbiAgcHJpdmF0ZSBfbm9ybWFsaXplZEluZ3JlZGllbnRzOiBTaW1wbGlmaWVkSW5ncmVkaWVudFtdO1xuXG4gIHNoYWxsb3dDb3B5V2l0aEV2ZW50cyhvcmlnaW4sIGdyb3VwSWQpOiBSZWNpcGUge1xuICAgIGxldCByZXMgPSBuZXcgUmVjaXBlKCk7XG4gICAgT2JqZWN0LmFzc2lnbihyZXMsIHRoaXMpO1xuICAgIHJlcy5fZXZlbnRPcmlnaW4gPSBvcmlnaW47XG4gICAgcmVzLl9ldmVudHNHcm91cElkID0gZ3JvdXBJZDtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgZ2V0IGV2ZW50c0dyb3VwSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRzR3JvdXBJZDtcbiAgfVxuXG4gIGdldCBldmVudE9yaWdpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9ldmVudE9yaWdpbjtcbiAgfVxuXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXMudGl0bGU7XG4gIH1cblxuICBnZXQgcHJvbW90ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlcy5wcm9tb3RlZDtcbiAgfVxuXG4gIGdldCBndWVzdHMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGVzWydudW1iZXItb2YtZ3Vlc3RzJ107XG4gIH1cblxuICBnZXQgc2hhcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXMuc2hhcmVkID09PSAnc2hhcmVkJztcbiAgfVxuXG4gIHNldCBzaGFyZWQoaXNTaGFyZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmF0dHJpYnV0ZXMuc2hhcmVkID0gaXNTaGFyZWQgPyAnc2hhcmVkJyA6ICdub3Rfc2hhcmVkJztcbiAgfVxuXG4gIGdldCBmaWxpZ3JhbmVMb2dvVXJsKCk6IFN0cmluZyB7XG4gICAgaWYgKHRoaXMuYXR0cmlidXRlc1snZmlsaWdyYW5lLWxvZ28tdXJsJ10pIHtcbiAgICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXNbJ2ZpbGlncmFuZS1sb2dvLXVybCddXG4gICAgfVxuICAgIGlmICh0aGlzLnNwb25zb3JzLmxlbmd0aCA+IDApe1xuICAgICAgcmV0dXJuIHRoaXMuc3BvbnNvcnNbMF0uYXR0cmlidXRlc1snbG9nby11cmwnXVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgZ2V0IGluZm9ybWF0aW9uYWxTZW50ZW5jZSgpOiBTdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXNbJ2luZm9ybWF0aW9uYWwtc2VudGVuY2UnXVxuICB9XG5cbiAgZ2V0IGNvc3RMYWJlbCgpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy5hdHRyaWJ1dGVzLmNvc3QpIHtcbiAgICAgIGNhc2UgMToge1xuICAgICAgICByZXR1cm4gJ2ZhaWJsZSc7XG4gICAgICB9XG4gICAgICBjYXNlIDI6IHtcbiAgICAgICAgcmV0dXJuICdtb3llbic7XG4gICAgICB9XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgcmV0dXJuICfDqWxldsOpJztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuICdtb3llbic7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IGNvc3RQaWN0dXJlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBhc3NldHMvaW1hZ2VzL2NhcmQtcmVjaXBlL2Nvc3QvJHt0aGlzLmNvc3RMYWJlbC5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKX0uc3ZnYDtcbiAgfVxuXG4gIGdldCBkaWZmaWN1bHR5TGFiZWwoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuYXR0cmlidXRlcy5kaWZmaWN1bHR5KSB7XG4gICAgICBjYXNlIDE6IHtcbiAgICAgICAgcmV0dXJuICdmYWNpbGUnO1xuICAgICAgfVxuICAgICAgY2FzZSAyOiB7XG4gICAgICAgIHJldHVybiAnbW95ZW4nO1xuICAgICAgfVxuICAgICAgY2FzZSAzOiB7XG4gICAgICAgIHJldHVybiAnZGlmZmljaWxlJztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuICdmYWNpbGUnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBkaWZmaWN1bHR5UGljdHVyZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgYXNzZXRzL2ltYWdlcy9jYXJkLXJlY2lwZS9kaWZmaWN1bHR5LyR7dGhpcy5kaWZmaWN1bHR5TGFiZWwubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJyl9LnN2Z2A7XG4gIH1cblxuICBnZXQgdG90YWxUaW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZHVyYXRpb24gPSBub3JtYWxpemUoc3VtKFxuICAgICAgcGFyc2UodGhpcy5hdHRyaWJ1dGVzWydwcmVwYXJhdGlvbi10aW1lJ10pLFxuICAgICAgcGFyc2UodGhpcy5hdHRyaWJ1dGVzWydjb29raW5nLXRpbWUnXSksXG4gICAgICBwYXJzZSh0aGlzLmF0dHJpYnV0ZXNbJ3Jlc3RpbmctdGltZSddKVxuICAgICkpO1xuXG4gICAgaWYgKHRvTWludXRlcyhkdXJhdGlvbikgPCAxMCkge1xuICAgICAgcmV0dXJuICcgPCAxMCBtaW4nO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZvcm1hdER1cmF0aW9uKGR1cmF0aW9uKTtcbiAgfVxuXG5cbiAgZ2V0UGhvdG9zKCkge1xuICAgIHJldHVybiBbdGhpcy5hdHRyaWJ1dGVzWydtZWRpYS11cmwnXV07XG4gIH1cblxuICBnZXQgcHJlcGFyYXRpb25UaW1lKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdER1cmF0aW9uKG5vcm1hbGl6ZShwYXJzZSh0aGlzLmF0dHJpYnV0ZXNbJ3ByZXBhcmF0aW9uLXRpbWUnXSkpKTtcbiAgfVxuXG4gIGdldCBjb29raW5nVGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtYXREdXJhdGlvbihub3JtYWxpemUocGFyc2UodGhpcy5hdHRyaWJ1dGVzWydjb29raW5nLXRpbWUnXSkpKTtcbiAgfVxuXG4gIGdldCByZXN0aW5nVGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtYXREdXJhdGlvbihub3JtYWxpemUocGFyc2UodGhpcy5hdHRyaWJ1dGVzWydyZXN0aW5nLXRpbWUnXSkpKTtcbiAgfVxuXG4gIC8vIFJldHVybnMgaW5ncmVkaWVudHMsIHB1dHRpbmcgdGhlIHNwb25zb3JlZCBvbmVzIGZpcnN0IFxuICBnZXQgaW5ncmVkaWVudHMoKTogSW5ncmVkaWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5yZWxhdGlvbnNoaXBzLmluZ3JlZGllbnRzLmRhdGFcbiAgICAgIC5maWx0ZXIoKGk6IEluZ3JlZGllbnQpID0+IGkuYXR0cmlidXRlcy5hY3RpdmUpXG4gICAgICAuc29ydCgoaTEsIGkyKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzSTFGb3JjZWQgPSBpMS5hdHRyaWJ1dGVzWydmb3JjZWQtZWFucyddICYmIGkxLmF0dHJpYnV0ZXNbJ2ZvcmNlZC1lYW5zJ10ubGVuZ3RoID4gMDtcbiAgICAgICAgY29uc3QgaXNJMkZvcmNlZCA9IGkyLmF0dHJpYnV0ZXNbJ2ZvcmNlZC1lYW5zJ10gJiYgaTIuYXR0cmlidXRlc1snZm9yY2VkLWVhbnMnXS5sZW5ndGggPiAwO1xuICAgICAgICByZXR1cm4gKGlzSTFGb3JjZWQgJiYgIWlzSTJGb3JjZWQpID8gLTEgOiAxO1xuICAgICAgfSk7XG4gIH1cblxuICBnZXQgc3BvbnNvcnMoKTogU3BvbnNvcltdIHtcbiAgICByZXR1cm4gdGhpcy5yZWxhdGlvbnNoaXBzPy5zcG9uc29ycz8uZGF0YTtcbiAgfVxuICBnZXQgc3RlcHMoKTogUmVjaXBlU3RlcFtdIHtcbiAgICByZXR1cm4gdGhpcy5yZWxhdGlvbnNoaXBzWydyZWNpcGUtc3RlcHMnXS5kYXRhLnNvcnQoKGEsIGIpID0+IGEuYXR0cmlidXRlc1snc3RlcC1udW1iZXInXSA+IGIuYXR0cmlidXRlc1snc3RlcC1udW1iZXInXSA/IDEgOiAtMSk7XG4gIH1cblxuICBnZXQgc3RhdHVzKCk6IFJlY2lwZVN0YXR1cyB7XG4gICAgcmV0dXJuIHRoaXMucmVsYXRpb25zaGlwcyAmJiB0aGlzLnJlbGF0aW9uc2hpcHNbJ3JlY2lwZS1zdGF0dXMnXSAmJiB0aGlzLnJlbGF0aW9uc2hpcHNbJ3JlY2lwZS1zdGF0dXMnXS5kYXRhO1xuICB9XG5cbiAgZ2V0IHJlY2lwZVR5cGUoKTogUmVjaXBlVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMucmVsYXRpb25zaGlwcyAmJiB0aGlzLnJlbGF0aW9uc2hpcHNbJ3JlY2lwZS10eXBlJ10gJiYgdGhpcy5yZWxhdGlvbnNoaXBzWydyZWNpcGUtdHlwZSddLmRhdGE7XG4gIH1cblxuICBnZXQgbW9kaWZpZWRJbmdyZWRpZW50cygpOiBTaW1wbGlmaWVkSW5ncmVkaWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVkSW5ncmVkaWVudHMubWFwKGluZ3JlZGllbnQgPT4ge1xuICAgICAgcmV0dXJuIHsgLi4uaW5ncmVkaWVudCwgcXR5OiBpbmdyZWRpZW50LnF0eSAqICh0aGlzLm1vZGlmaWVkR3Vlc3RzIHx8ICt0aGlzLmd1ZXN0cykgfTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBub3JtYWxpemVkSW5ncmVkaWVudHMoKTogU2ltcGxpZmllZEluZ3JlZGllbnRbXSB7XG4gICAgaWYgKCF0aGlzLl9ub3JtYWxpemVkSW5ncmVkaWVudHMpIHtcbiAgICAgIHRoaXMuX25vcm1hbGl6ZWRJbmdyZWRpZW50cyA9IHRoaXMuaW5ncmVkaWVudHMubWFwKChpbmdyZWRpZW50OiBJbmdyZWRpZW50KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZTogaW5ncmVkaWVudC5hdHRyaWJ1dGVzLm5hbWUsXG4gICAgICAgICAgcXR5OiAoK2luZ3JlZGllbnQucXVhbnRpdHkpIC8gKCt0aGlzLmd1ZXN0cyB8fCAxKSxcbiAgICAgICAgICB1bml0OiBpbmdyZWRpZW50LmF0dHJpYnV0ZXMudW5pdFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9ub3JtYWxpemVkSW5ncmVkaWVudHM7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdER1cmF0aW9uKGR1cmF0aW9uOiBEdXJhdGlvbikge1xuICAgaWYgKCF0b01pbnV0ZXMoZHVyYXRpb24pKXtcbiAgICByZXR1cm4gJy0nO1xuICAgfVxuICAgaWYgKGR1cmF0aW9uLmRheXMpIHsgZHVyYXRpb24uaG91cnMgKz0gMjQgKiBkdXJhdGlvbi5kYXlzOyB9XG5cbiAgIGlmICghZHVyYXRpb24uaG91cnMpIHtcbiAgICAgcmV0dXJuIGAke2R1cmF0aW9uLm1pbnV0ZXN9IG1pbmA7XG4gICB9XG4gICBsZXQgZm9ybWF0ZWREdXJhdGlvbiA9IGAke2R1cmF0aW9uLmhvdXJzfSBoYDtcbiAgIGlmIChkdXJhdGlvbi5taW51dGVzKSB7XG4gICAgZm9ybWF0ZWREdXJhdGlvbiArPSAgYCR7ZHVyYXRpb24ubWludXRlcyA8IDEwICAgPyAnIDAnIDogJyAnfSR7ZHVyYXRpb24ubWludXRlc31gO1xuICAgfVxuICAgcmV0dXJuIGZvcm1hdGVkRHVyYXRpb247XG4gIH1cbn1cbiJdfQ==
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fbW9kZWxzL3JlY2lwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQVksTUFBTSxjQUFjLENBQUM7QUFnQjFFLE1BQU0sT0FBTyxNQUFPLFNBQVEsUUFBUTtJQUFwQzs7UUFFRSxlQUFVLEdBQUc7WUFDWCxLQUFLLEVBQUUsRUFBRTtZQUNULFFBQVEsRUFBRSxFQUFFO1lBQ1osVUFBVSxFQUFFLEVBQUU7WUFDZCxXQUFXLEVBQUUsRUFBRTtZQUNmLGtCQUFrQixFQUFFLEVBQUU7WUFDdEIsaUJBQWlCLEVBQUUsRUFBRTtZQUNyQixrQkFBa0IsRUFBRSxFQUFFO1lBQ3RCLGlCQUFpQixFQUFFLEVBQUU7WUFDckIsY0FBYyxFQUFFLEVBQUU7WUFDbEIsY0FBYyxFQUFFLEVBQUU7WUFDbEIsV0FBVyxFQUFFLEVBQUU7WUFDZixNQUFNLEVBQUUsRUFBRTtZQUNWLHlCQUF5QixFQUFFLEVBQUU7WUFDN0Isb0JBQW9CLEVBQUUsRUFBRTtZQUN4Qix3QkFBd0IsRUFBRSxFQUFFO1lBQzVCLFVBQVUsRUFBRSxDQUFDO1lBQ2IsSUFBSSxFQUFFLENBQUM7WUFDUCxTQUFTLEVBQUUsS0FBSztZQUNoQixVQUFVLEVBQUUsQ0FBQztZQUNiLFVBQVUsRUFBRSxFQUFFO1lBQ2QsUUFBUSxFQUFFLEtBQUs7WUFDZixNQUFNLEVBQUUsWUFBWTtZQUNwQixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDO1FBRUYsa0JBQWEsR0FBRztZQUNkLFdBQVcsRUFBRSxJQUFJLGtCQUFrQixFQUFjO1lBQ2pELGNBQWMsRUFB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O1NBQ2xGO1FBQ0QsT0FBTyxnQkFBZ0IsQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb2N1bWVudENvbGxlY3Rpb24sIFJlc291cmNlLCBEb2N1bWVudFJlc291cmNlIH0gZnJvbSAnbmd4LWpzb25hcGknO1xuaW1wb3J0IHsgc3VtLCBub3JtYWxpemUsIHBhcnNlLCB0b01pbnV0ZXMsIER1cmF0aW9uIH0gZnJvbSAnZHVyYXRpb24tZm5zJztcbmltcG9ydCB7IFJlY2lwZVByb3ZpZGVyIH0gZnJvbSAnLi9yZWNpcGUtcHJvdmlkZXInO1xuaW1wb3J0IHsgUmVjaXBlU3RhdHVzIH0gZnJvbSAnLi9yZWNpcGUtc3RhdHVzJztcbmltcG9ydCB7IFJlY2lwZVR5cGUgfSBmcm9tICcuL3JlY2lwZS10eXBlJztcbmltcG9ydCB7IFJlY2lwZVN0ZXAgfSBmcm9tICcuL3JlY2lwZS1zdGVwJztcbmltcG9ydCB7IEluZ3JlZGllbnQgfSBmcm9tICcuL2luZ3JlZGllbnQnO1xuaW1wb3J0IHsgU3BvbnNvciB9IGZyb20gJy4vc3BvbnNvcic7XG5pbXBvcnQgeyBQYWNrYWdlIH0gZnJvbSAnLi9wYWNrYWdlJztcblxuaW50ZXJmYWNlIFNpbXBsaWZpZWRJbmdyZWRpZW50IHtcbiAgbmFtZTogc3RyaW5nO1xuICBxdHk6IG51bWJlcjtcbiAgdW5pdDogc3RyaW5nO1xufVxuXG5cbmV4cG9ydCBjbGFzcyBSZWNpcGUgZXh0ZW5kcyBSZXNvdXJjZSB7XG5cbiAgYXR0cmlidXRlcyA9IHtcbiAgICB0aXRsZTogJycsXG4gICAgJ2V4dC1pZCc6ICcnLFxuICAgICdleHQtbGluayc6ICcnLFxuICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAnbnVtYmVyLW9mLWd1ZXN0cyc6ICcnLFxuICAgICdpbmdyZWRpZW50cy1zdHInOiBbXSxcbiAgICAncHJlcGFyYXRpb24tdGltZSc6ICcnLFxuICAgICdwcmVoZWF0aW5nLXRpbWUnOiAnJyxcbiAgICAnY29va2luZy10aW1lJzogJycsXG4gICAgJ3Jlc3RpbmctdGltZSc6ICcnLFxuICAgICdtZWRpYS11cmwnOiAnJyxcbiAgICBzb3VyY2U6ICcnLFxuICAgICdpbmZvcm1hdGlvbmFsLXBhZ2UtaHRtbCc6ICcnLFxuICAgICdmaWxpZ3JhbmUtbG9nby11cmwnOiAnJyxcbiAgICAnaW5mb3JtYXRpb25hbC1zZW50ZW5jZSc6ICcnLFxuICAgIGRpZmZpY3VsdHk6IDEsXG4gICAgY29zdDogMSxcbiAgICBzdWdnZXN0ZWQ6IGZhbHNlLFxuICAgIHBvcHVsYXJpdHk6IDAsXG4gICAgJ3ZpZGVvLWlkJzogJycsXG4gICAgcHJvbW90ZWQ6IGZhbHNlLFxuICAgIHNoYXJlZDogJ25vdF9zaGFyZWQnLFxuICAgIGVkaXRhYmxlOiBmYWxzZVxuICB9O1xuXG4gIHJlbGF0aW9uc2hpcHMgPSB7XG4gICAgaW5ncmVkaWVudHM6IG5ldyBEb2N1bWVudENvbGxlY3Rpb248SW5ncmVkaWVudD4oKSxcbiAgICAncmVjaXBlLXN0ZXBzJzogbmV3IERvY3VtZW50Q29sbGVjdGlvbjxSZWNpcGVTdGVwPigpLFxuICAgICdyZWNpcGUtcHJvdmlkZXInOiBuZXcgRG9jdW1lbnRSZXNvdXJjZTxSZWNpcGVQcm92aWRlcj4oKSxcbiAgICAncmVjaXBlLXN0YXR1cyc6IG5ldyBEb2N1bWVudFJlc291cmNlPFJlY2lwZVN0YXR1cz4oKSxcbiAgICAncmVjaXBlLXR5cGUnOiBuZXcgRG9jdW1lbnRSZXNvdXJjZTxSZWNpcGVUeXBlPigpLFxuICAgIHNwb25zb3JzOiBuZXcgRG9jdW1lbnRDb2xsZWN0aW9uPFNwb25zb3I+KCksXG4gICAgcGFja2FnZXM6IG5ldyBEb2N1bWVudENvbGxlY3Rpb248UGFja2FnZT4oKVxuICB9O1xuXG4gIHR0bCA9IDM2MDA7IC8vIHJlY2lwZXMgd2lsbCBiZSBjYWNoZWQgZm9yIDEgaG91clxuXG4gIHNlbGVjdGVkOiBib29sZWFuO1xuICBmaW5hbFRpbWVyID0gdGhpcy5hdHRyaWJ1dGVzWydwcmVwYXJhdGlvbi10aW1lJ10gKyB0aGlzLmF0dHJpYnV0ZXNbJ3ByZWhlYXRpbmctdGltZSddICtcbiAgICB0aGlzLmF0dHJpYnV0ZXNbJ2Nvb2tpbmctdGltZSddICsgdGhpcy5hdHRyaWJ1dGVzWydyZXN0aW5nLXRpbWUnXTtcbiAgbW9kaWZpZWRHdWVzdHM6IG51bWJlcjtcbiAgcHJpdmF0ZSBfZXZlbnRzR3JvdXBJZDogc3RyaW5nO1xuICBwcml2YXRlIF9ldmVudE9yaWdpbjogc3RyaW5nO1xuICBwcml2YXRlIF9ub3JtYWxpemVkSW5ncmVkaWVudHM6IFNpbXBsaWZpZWRJbmdyZWRpZW50W107XG5cbiAgc2hhbGxvd0NvcHlXaXRoRXZlbnRzKG9yaWdpbiwgZ3JvdXBJZCk6IFJlY2lwZSB7XG4gICAgbGV0IHJlcyA9IG5ldyBSZWNpcGUoKTtcbiAgICBPYmplY3QuYXNzaWduKHJlcywgdGhpcyk7XG4gICAgcmVzLl9ldmVudE9yaWdpbiA9IG9yaWdpbjtcbiAgICByZXMuX2V2ZW50c0dyb3VwSWQgPSBncm91cElkO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBnZXQgZXZlbnRzR3JvdXBJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9ldmVudHNHcm91cElkO1xuICB9XG5cbiAgZ2V0IGV2ZW50T3JpZ2luKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2V2ZW50T3JpZ2luO1xuICB9XG5cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlcy50aXRsZTtcbiAgfVxuXG4gIGdldCBwcm9tb3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGVzLnByb21vdGVkO1xuICB9XG5cbiAgZ2V0IGd1ZXN0cygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXNbJ251bWJlci1vZi1ndWVzdHMnXTtcbiAgfVxuXG4gIGdldCBzaGFyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlcy5zaGFyZWQgPT09ICdzaGFyZWQnO1xuICB9XG5cbiAgc2V0IHNoYXJlZChpc1NoYXJlZDogYm9vbGVhbikge1xuICAgIHRoaXMuYXR0cmlidXRlcy5zaGFyZWQgPSBpc1NoYXJlZCA/ICdzaGFyZWQnIDogJ25vdF9zaGFyZWQnO1xuICB9XG5cbiAgZ2V0IGZpbGlncmFuZUxvZ29VcmwoKTogU3RyaW5nIHtcbiAgICBpZiAodGhpcy5hdHRyaWJ1dGVzWydmaWxpZ3JhbmUtbG9nby11cmwnXSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlc1snZmlsaWdyYW5lLWxvZ28tdXJsJ11cbiAgICB9XG4gICAgaWYgKHRoaXMuc3BvbnNvcnMubGVuZ3RoID4gMCl7XG4gICAgICByZXR1cm4gdGhpcy5zcG9uc29yc1swXS5hdHRyaWJ1dGVzWydsb2dvLXVybCddXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBnZXQgaW5mb3JtYXRpb25hbFNlbnRlbmNlKCk6IFN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlc1snaW5mb3JtYXRpb25hbC1zZW50ZW5jZSddXG4gIH1cblxuICBnZXQgY29zdExhYmVsKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLmF0dHJpYnV0ZXMuY29zdCkge1xuICAgICAgY2FzZSAxOiB7XG4gICAgICAgIHJldHVybiAnZmFpYmxlJztcbiAgICAgIH1cbiAgICAgIGNhc2UgMjoge1xuICAgICAgICByZXR1cm4gJ21veWVuJztcbiAgICAgIH1cbiAgICAgIGNhc2UgMzoge1xuICAgICAgICByZXR1cm4gJ8OpbGV2w6knO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICByZXR1cm4gJ21veWVuJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgY29zdFBpY3R1cmUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGFzc2V0cy9pbWFnZXMvY2FyZC1yZWNpcGUvY29zdC8ke3RoaXMuY29zdExhYmVsLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpfS5zdmdgO1xuICB9XG5cbiAgZ2V0IGRpZmZpY3VsdHlMYWJlbCgpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy5hdHRyaWJ1dGVzLmRpZmZpY3VsdHkpIHtcbiAgICAgIGNhc2UgMToge1xuICAgICAgICByZXR1cm4gJ2ZhY2lsZSc7XG4gICAgICB9XG4gICAgICBjYXNlIDI6IHtcbiAgICAgICAgcmV0dXJuICdtb3llbic7XG4gICAgICB9XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgcmV0dXJuICdkaWZmaWNpbGUnO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICByZXR1cm4gJ2ZhY2lsZSc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRpZmZpY3VsdHlQaWN0dXJlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBhc3NldHMvaW1hZ2VzL2NhcmQtcmVjaXBlL2RpZmZpY3VsdHkvJHt0aGlzLmRpZmZpY3VsdHlMYWJlbC5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKX0uc3ZnYDtcbiAgfVxuXG4gIGdldCB0b3RhbFRpbWUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBkdXJhdGlvbiA9IG5vcm1hbGl6ZShzdW0oXG4gICAgICBwYXJzZSh0aGlzLmF0dHJpYnV0ZXNbJ3ByZXBhcmF0aW9uLXRpbWUnXSksXG4gICAgICBwYXJzZSh0aGlzLmF0dHJpYnV0ZXNbJ2Nvb2tpbmctdGltZSddKSxcbiAgICAgIHBhcnNlKHRoaXMuYXR0cmlidXRlc1sncmVzdGluZy10aW1lJ10pXG4gICAgKSk7XG5cbiAgICBpZiAodG9NaW51dGVzKGR1cmF0aW9uKSA8IDEwKSB7XG4gICAgICByZXR1cm4gJyA8IDEwIG1pbic7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0RHVyYXRpb24oZHVyYXRpb24pO1xuICB9XG5cblxuICBnZXRQaG90b3MoKSB7XG4gICAgcmV0dXJuIFt0aGlzLmF0dHJpYnV0ZXNbJ21lZGlhLXVybCddXTtcbiAgfVxuXG4gIGdldCBwcmVwYXJhdGlvblRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0RHVyYXRpb24obm9ybWFsaXplKHBhcnNlKHRoaXMuYXR0cmlidXRlc1sncHJlcGFyYXRpb24tdGltZSddKSkpO1xuICB9XG5cbiAgZ2V0IGNvb2tpbmdUaW1lKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdER1cmF0aW9uKG5vcm1hbGl6ZShwYXJzZSh0aGlzLmF0dHJpYnV0ZXNbJ2Nvb2tpbmctdGltZSddKSkpO1xuICB9XG5cbiAgZ2V0IHJlc3RpbmdUaW1lKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdER1cmF0aW9uKG5vcm1hbGl6ZShwYXJzZSh0aGlzLmF0dHJpYnV0ZXNbJ3Jlc3RpbmctdGltZSddKSkpO1xuICB9XG5cbiAgLy8gUmV0dXJucyBpbmdyZWRpZW50cywgcHV0dGluZyB0aGUgc3BvbnNvcmVkIG9uZXMgZmlyc3QgXG4gIGdldCBpbmdyZWRpZW50cygpOiBJbmdyZWRpZW50W10ge1xuICAgIHJldHVybiB0aGlzLnJlbGF0aW9uc2hpcHMuaW5ncmVkaWVudHMuZGF0YVxuICAgICAgLmZpbHRlcigoaTogSW5ncmVkaWVudCkgPT4gaS5hdHRyaWJ1dGVzLmFjdGl2ZSlcbiAgICAgIC5zb3J0KChpMSwgaTIpID0+IHtcbiAgICAgICAgY29uc3QgaXNJMUZvcmNlZCA9IGkxLmF0dHJpYnV0ZXNbJ2ZvcmNlZC1lYW5zJ10gJiYgaTEuYXR0cmlidXRlc1snZm9yY2VkLWVhbnMnXS5sZW5ndGggPiAwO1xuICAgICAgICBjb25zdCBpc0kyRm9yY2VkID0gaTIuYXR0cmlidXRlc1snZm9yY2VkLWVhbnMnXSAmJiBpMi5hdHRyaWJ1dGVzWydmb3JjZWQtZWFucyddLmxlbmd0aCA+IDA7XG4gICAgICAgIHJldHVybiAoaXNJMUZvcmNlZCAmJiAhaXNJMkZvcmNlZCkgPyAtMSA6IDE7XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldCBzcG9uc29ycygpOiBTcG9uc29yW10ge1xuICAgIHJldHVybiB0aGlzLnJlbGF0aW9uc2hpcHM/LnNwb25zb3JzPy5kYXRhO1xuICB9XG4gIGdldCBzdGVwcygpOiBSZWNpcGVTdGVwW10ge1xuICAgIHJldHVybiB0aGlzLnJlbGF0aW9uc2hpcHNbJ3JlY2lwZS1zdGVwcyddLmRhdGEuc29ydCgoYSwgYikgPT4gYS5hdHRyaWJ1dGVzWydzdGVwLW51bWJlciddID4gYi5hdHRyaWJ1dGVzWydzdGVwLW51bWJlciddID8gMSA6IC0xKTtcbiAgfVxuXG4gIGdldCBzdGF0dXMoKTogUmVjaXBlU3RhdHVzIHtcbiAgICByZXR1cm4gdGhpcy5yZWxhdGlvbnNoaXBzICYmIHRoaXMucmVsYXRpb25zaGlwc1sncmVjaXBlLXN0YXR1cyddICYmIHRoaXMucmVsYXRpb25zaGlwc1sncmVjaXBlLXN0YXR1cyddLmRhdGE7XG4gIH1cblxuICBnZXQgcmVjaXBlVHlwZSgpOiBSZWNpcGVUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5yZWxhdGlvbnNoaXBzICYmIHRoaXMucmVsYXRpb25zaGlwc1sncmVjaXBlLXR5cGUnXSAmJiB0aGlzLnJlbGF0aW9uc2hpcHNbJ3JlY2lwZS10eXBlJ10uZGF0YTtcbiAgfVxuXG4gIGdldCBtb2RpZmllZEluZ3JlZGllbnRzKCk6IFNpbXBsaWZpZWRJbmdyZWRpZW50W10ge1xuICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZWRJbmdyZWRpZW50cy5tYXAoaW5ncmVkaWVudCA9PiB7XG4gICAgICByZXR1cm4geyAuLi5pbmdyZWRpZW50LCBxdHk6IGluZ3JlZGllbnQucXR5ICogKHRoaXMubW9kaWZpZWRHdWVzdHMgfHwgK3RoaXMuZ3Vlc3RzKSB9O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IG5vcm1hbGl6ZWRJbmdyZWRpZW50cygpOiBTaW1wbGlmaWVkSW5ncmVkaWVudFtdIHtcbiAgICBpZiAoIXRoaXMuX25vcm1hbGl6ZWRJbmdyZWRpZW50cykge1xuICAgICAgdGhpcy5fbm9ybWFsaXplZEluZ3JlZGllbnRzID0gdGhpcy5pbmdyZWRpZW50cy5tYXAoKGluZ3JlZGllbnQ6IEluZ3JlZGllbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuYW1lOiBpbmdyZWRpZW50LmF0dHJpYnV0ZXMubmFtZSxcbiAgICAgICAgICBxdHk6ICgraW5ncmVkaWVudC5xdWFudGl0eSkgLyAoK3RoaXMuZ3Vlc3RzIHx8IDEpLFxuICAgICAgICAgIHVuaXQ6IGluZ3JlZGllbnQuYXR0cmlidXRlcy51bml0XG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZWRJbmdyZWRpZW50cztcbiAgfVxuXG4gIGdldCB2aWRlb0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlc1sndmlkZW8taWQnXTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0RHVyYXRpb24oZHVyYXRpb246IER1cmF0aW9uKSB7XG4gICBpZiAoIXRvTWludXRlcyhkdXJhdGlvbikpe1xuICAgIHJldHVybiAnLSc7XG4gICB9XG4gICBpZiAoZHVyYXRpb24uZGF5cykgeyBkdXJhdGlvbi5ob3VycyArPSAyNCAqIGR1cmF0aW9uLmRheXM7IH1cblxuICAgaWYgKCFkdXJhdGlvbi5ob3Vycykge1xuICAgICByZXR1cm4gYCR7ZHVyYXRpb24ubWludXRlc30gbWluYDtcbiAgIH1cbiAgIGxldCBmb3JtYXRlZER1cmF0aW9uID0gYCR7ZHVyYXRpb24uaG91cnN9IGhgO1xuICAgaWYgKGR1cmF0aW9uLm1pbnV0ZXMpIHtcbiAgICBmb3JtYXRlZER1cmF0aW9uICs9ICBgJHtkdXJhdGlvbi5taW51dGVzIDwgMTAgICA/ICcgMCcgOiAnICd9JHtkdXJhdGlvbi5taW51dGVzfWA7XG4gICB9XG4gICByZXR1cm4gZm9ybWF0ZWREdXJhdGlvbjtcbiAgfVxufVxuIl19
@@ -1,7 +1,16 @@
1
+ import { environment } from "../environments/environment";
1
2
  export class User {
2
3
  constructor(attrs = {}) {
4
+ this.user_metadata = { preferences: {} };
3
5
  this.forbidProfiling = false;
4
6
  Object.assign(this, attrs);
5
7
  }
8
+ get supplierId() {
9
+ var _a;
10
+ if (this.app_metadata.env === null) {
11
+ return null;
12
+ }
13
+ return (_a = this.app_metadata.env[environment.env]) === null || _a === void 0 ? void 0 : _a.supplier_id;
14
+ }
6
15
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIvYnVpbGRzL21pYW0vbmctbWlhbS1zZGsvcHJvamVjdHMvbmctbWlhbS9zcmMvIiwic291cmNlcyI6WyJsaWIvX21vZGVscy91c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxJQUFJO0lBZ0JmLFlBQVksS0FBSyxHQUFHLEVBQUU7UUFGdEIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFHdEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFVzZXIge1xuICBpZDogc3RyaW5nO1xuICBmaXJzdF9uYW1lOiBzdHJpbmc7XG4gIGxhc3RfbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwaWN0dXJlOiBzdHJpbmc7XG4gIGZyb21fdXNlcl9pZDogc3RyaW5nO1xuICBhcHBfbWV0YWRhdGE6IHtcbiAgICBjdXJyZW50X2dyb2Nlcmllc19saXN0X2lkOiBzdHJpbmcsXG4gICAgcmVjaXBlX3Byb3ZpZGVyOiBzdHJpbmcsXG4gICAgcGVybWlzc2lvbnM6IHN0cmluZ1tdLFxuICAgIHJvbGVzOiBzdHJpbmdbXVxuICB9O1xuICB1c2VyX21ldGFkYXRhOiBhbnk7XG4gIGZvcmJpZFByb2ZpbGluZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGF0dHJzID0ge30pIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGF0dHJzKTtcbiAgfVxufSJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIvYnVpbGRzL21pYW0vbmctbWlhbS1zZGsvcHJvamVjdHMvbmctbWlhbS9zcmMvIiwic291cmNlcyI6WyJsaWIvX21vZGVscy91c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRCxNQUFNLE9BQU8sSUFBSTtJQThCZixZQUFZLEtBQUssR0FBRyxFQUFFO1FBTnRCLGtCQUFhLEdBR1QsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDeEIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFHdEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksVUFBVTs7UUFDWixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxLQUFLLElBQUksRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1NBQUU7UUFDcEQsYUFBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLDBDQUFFLFdBQVcsQ0FBQztJQUM3RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gXCIuLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnRcIjtcblxuZXhwb3J0IGNsYXNzIFVzZXIge1xuICBpZDogc3RyaW5nO1xuICBmaXJzdF9uYW1lOiBzdHJpbmc7XG4gIGxhc3RfbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwaWN0dXJlOiBzdHJpbmc7XG4gIGZyb21fdXNlcl9pZDogc3RyaW5nO1xuICBhcHBfbWV0YWRhdGE6IHtcbiAgICBjdXJyZW50X2dyb2Nlcmllc19saXN0X2lkOiBzdHJpbmcsXG4gICAgcmVjaXBlX3Byb3ZpZGVyOiBzdHJpbmcsXG4gICAgcGVybWlzc2lvbnM6IHN0cmluZ1tdLFxuICAgIHJvbGVzOiBzdHJpbmdbXSxcbiAgICBlbnY6IHtcbiAgICAgIGRldjoge1xuICAgICAgICBzdXBwbGllcl9pZDogc3RyaW5nXG4gICAgICB9LFxuICAgICAgdWF0OiB7XG4gICAgICAgIHN1cHBsaWVyX2lkOiBzdHJpbmdcbiAgICAgIH0sXG4gICAgICBwcm9kOiB7XG4gICAgICAgIHN1cHBsaWVyX2lkOiBzdHJpbmdcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIHVzZXJfbWV0YWRhdGE6IHtcbiAgICBhZGRyZXNzPzogc3RyaW5nLFxuICAgIHByZWZlcmVuY2VzPzoge31cbiAgfSA9IHsgcHJlZmVyZW5jZXM6IHt9IH07XG4gIGZvcmJpZFByb2ZpbGluZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGF0dHJzID0ge30pIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGF0dHJzKTtcbiAgfVxuXG4gIGdldCBzdXBwbGllcklkKCkge1xuICAgIGlmICh0aGlzLmFwcF9tZXRhZGF0YS5lbnYgPT09IG51bGwpIHsgcmV0dXJuIG51bGw7IH1cbiAgICByZXR1cm4gdGhpcy5hcHBfbWV0YWRhdGEuZW52W2Vudmlyb25tZW50LmVudl0/LnN1cHBsaWVyX2lkO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { environment } from '../environments/environment';
2
3
  import * as i0 from "@angular/core";
3
4
  // Loading a script directly in the DOM every time an event is triggered is probably not the ideal way
4
5
  // of handling it. However, it seems to be the only way to make sure the analytics script gets loaded,
@@ -14,6 +15,11 @@ export class AnalyticsService {
14
15
  }
15
16
  // Load Google analytics & optimize scripts into host page DOM & create tracker
16
17
  init(gaKey, optimizeKey = null) {
18
+ // we do not have uat or local analytical service, guard it if you are using a non prod script
19
+ if (environment.env !== 'prod') {
20
+ console.info('[Miam] you are not in prod, do not initialize analytical service');
21
+ return;
22
+ }
17
23
  if (!gaKey || gaKey.length < 0) {
18
24
  console.error('[Miam] Cannot initialize analytics : invalid key', gaKey);
19
25
  return;
@@ -79,4 +85,4 @@ AnalyticsService.ɵprov = i0.ɵɵdefineInjectable({ token: AnalyticsService, fac
79
85
  providedIn: 'root'
80
86
  }]
81
87
  }], function () { return []; }, null); })();
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL19zZXJ2aWNlcy9hbmFseXRpY3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDOztBQUV4RCxzR0FBc0c7QUFDdEcsc0dBQXNHO0FBQ3RHLDJHQUEyRztBQUMzRyxtQ0FBbUM7QUFDbkMsRUFBRTtBQUNGLGdIQUFnSDtBQUNoSCx5R0FBeUc7QUFDekcsa0dBQWtHO0FBSWxHLE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0I7UUFGUSxpQkFBWSxHQUFHLEtBQUssQ0FBQztJQUVkLENBQUM7SUFFaEIsK0VBQStFO0lBQy9FLElBQUksQ0FBQyxLQUFhLEVBQUUsY0FBc0IsSUFBSTtRQUM1QyxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0RBQWtELEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekUsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxTQUFTLENBQUMsTUFBYyxFQUFFLFFBQWdCLElBQUksRUFBRSxRQUFnQixJQUFJO1FBQ2xFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sQ0FBQyxTQUFTLEdBQUc7OzswQkFHQyxNQUFNO3lCQUNQLEtBQUs7d0JBQ04sS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQU8sRUFBRTs7T0FFakMsQ0FBQztZQUNGLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXO1FBQ2xCLE1BQU0sYUFBYSxHQUFHOzs7Ozs7Ozs7O3NCQVVKLEdBQUc7Ozs7OztLQU1wQixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQztRQUNqQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsY0FBYyxDQUFDLFdBQW1CO1FBQ2hDLElBQUksQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDMUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpREFBaUQsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUM3RSxPQUFPO1NBQ1I7UUFDRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxHQUFHLEdBQUcsaURBQWlELFdBQVcsRUFBRSxDQUFDO1FBQzVFLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7O2dGQXBFVSxnQkFBZ0I7d0RBQWhCLGdCQUFnQixXQUFoQixnQkFBZ0IsbUJBRmYsTUFBTTtrREFFUCxnQkFBZ0I7Y0FINUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0RmxhZ3MgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gTG9hZGluZyBhIHNjcmlwdCBkaXJlY3RseSBpbiB0aGUgRE9NIGV2ZXJ5IHRpbWUgYW4gZXZlbnQgaXMgdHJpZ2dlcmVkIGlzIHByb2JhYmx5IG5vdCB0aGUgaWRlYWwgd2F5XG4vLyBvZiBoYW5kbGluZyBpdC4gSG93ZXZlciwgaXQgc2VlbXMgdG8gYmUgdGhlIG9ubHkgd2F5IHRvIG1ha2Ugc3VyZSB0aGUgYW5hbHl0aWNzIHNjcmlwdCBnZXRzIGxvYWRlZCxcbi8vIHRoZSBcImdhXCIgZnVuY3Rpb24gZGVmaW5lZCAoYW5kIHVsdGltYXRlbHksIGNhbGxlZCksIGluIHRoZSBhY3R1YWwgY29udGV4dCBvZiB0aGUgaG9zdCBET00gd2hlcmUgdGhlIHdlYmNcbi8vIGxpYnJhcnkgaXMgZ29pbmcgdG8gYmUgaW5qZWN0ZWQuXG4vL1xuLy8gRm9yIGluc3RhbmNlLCBpZiB0aGUgbGliIGlzIGxvYWRlZCBpbiBhIHRoaXJkIHBhcnR5IGFwcGxpY2F0aW9ucyBET00gZnJvbSBhIENocm9tZSBleHRlbnNpb25zIGNvbnRlbnQgc2NyaXB0LFxuLy8gYXR0ZW1wdHMgYXQgZXhlY3V0aW5nIHRoZSBnYSBmdW5jdGlvbiBkaXJlY3RseSBpbiB0aGUgY29udGVudCBzY3JpcHQgd2lsbCBmYWlsIGFzIHdlIGNhbm5vdCBhY2Nlc3MgdGhlXG4vLyBKYXZhc2NyaXB0IGNvbnRleHQgd2hlcmUgdGhlIHNjcmlwdCBnb3QgbG9hZGVkIGluIHRoZSBmaXJzdCBwbGFjZSAoXCJ3aW5kb3dcIiBvYmplY3Qgd2lsbCBkaWZmZXIpXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBbmFseXRpY3NTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLy8gTG9hZCBHb29nbGUgYW5hbHl0aWNzICYgb3B0aW1pemUgc2NyaXB0cyBpbnRvIGhvc3QgcGFnZSBET00gJiBjcmVhdGUgdHJhY2tlclxuICBpbml0KGdhS2V5OiBzdHJpbmcsIG9wdGltaXplS2V5OiBzdHJpbmcgPSBudWxsKSB7XG4gICAgaWYgKCFnYUtleSB8fCBnYUtleS5sZW5ndGggPCAwKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbTWlhbV0gQ2Fubm90IGluaXRpYWxpemUgYW5hbHl0aWNzIDogaW52YWxpZCBrZXknLCBnYUtleSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pbmplY3RHQShnYUtleSk7XG4gICAgdGhpcy5pbmplY3RPcHRpbWl6ZShvcHRpbWl6ZUtleSk7XG5cbiAgICB0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7XG4gICAgY29uc29sZS5sb2coJ1tNaWFtXSBJbml0aWFsaXplIGFuYWx5dGljcycsIGdhS2V5LCBvcHRpbWl6ZUtleSk7XG4gICAgdGhpcy5zZW5kRXZlbnQoJ2xvYWQnKTtcbiAgfVxuXG4gIC8vIEFwcGVuZCBuZXcgc2NyaXB0IHRvIHRoZSBET00gc28gdGhlIGV2ZW50IGlzIHNlbnQgZnJvbSB0aGUgY29ycmVjdCBjb250ZXh0XG4gIHNlbmRFdmVudChhY3Rpb246IHN0cmluZywgbGFiZWw6IHN0cmluZyA9IG51bGwsIHZhbHVlOiBudW1iZXIgPSBudWxsKSB7XG4gICAgaWYgKHRoaXMuX2luaXRpYWxpemVkKSB7XG4gICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgIHNjcmlwdC5pbm5lckhUTUwgPSBgXFxcbiAgICAgICAgZ2EoJ21faV9hX21fVHJhY2tlci5zZW5kJywgJ2V2ZW50Jywge1xuICAgICAgICAgIGV2ZW50Q2F0ZWdvcnk6ICduZy1taWFtJyxcbiAgICAgICAgICBldmVudEFjdGlvbjogJyR7YWN0aW9ufScsXG4gICAgICAgICAgZXZlbnRMYWJlbDogJyR7bGFiZWx9JyxcbiAgICAgICAgICBldmVudFZhbHVlOiAke3ZhbHVlPy50b0ZpeGVkKCl9XG4gICAgICAgIH0pO1xuICAgICAgYDtcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9XG4gIH1cblxuICBpbmplY3RHQShrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHNjcmlwdENvbnRlbnQgPSBgXG4gICAgICAoZnVuY3Rpb24oaSwgcywgbywgZywgciwgYSwgbSkge1xuICAgICAgICBpW3JdID0gaVtyXSB8fCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAoaVtyXS5xID0gaVtyXS5xIHx8IFtdKS5wdXNoKGFyZ3VtZW50cyk7XG4gICAgICAgIH0sIGlbcl0ubCA9IDEgKiBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgYSA9IHMuY3JlYXRlRWxlbWVudChvKSwgbSA9IHMuZ2V0RWxlbWVudHNCeVRhZ05hbWUobylbMF07XG4gICAgICAgIGEuYXN5bmMgPSAxO1xuICAgICAgICBhLnNyYyA9IGc7XG4gICAgICAgIG0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSwgbSk7XG4gICAgICB9KSh3aW5kb3csIGRvY3VtZW50LCAnc2NyaXB0JywgJ2h0dHBzOi8vc3NsLmdvb2dsZS1hbmFseXRpY3MuY29tL2FuYWx5dGljcy5qcycsICdnYScpO1xuICAgICAgZ2EoJ2NyZWF0ZScsICcke2tleX0nLCAnbm9uZScsICdtX2lfYV9tX1RyYWNrZXInKTtcbiAgICAgIGdhKCdtX2lfYV9tX1RyYWNrZXIuc2V0JywgJ3JlZmVycmVyJywgd2luZG93LmxvY2F0aW9uLm9yaWdpbik7XG4gICAgICBnYSgnbV9pX2FfbV9UcmFja2VyLnNldCcsICdjYW1wYWlnbk5hbWUnLCAnbmctbWlhbScpO1xuICAgICAgZ2EoJ21faV9hX21fVHJhY2tlci5zZXQnLCAnY2FtcGFpZ25Tb3VyY2UnLCAnbmctbWlhbScpO1xuICAgICAgZ2EoJ21faV9hX21fVHJhY2tlci5zZXQnLCAnY2FtcGFpZ25NZWRpdW0nLCB3aW5kb3cubG9jYXRpb24uaG9zdCk7XG4gICAgICBnYSgnbV9pX2FfbV9UcmFja2VyLnNldCcsICdmb3JjZVNTTCcsIHRydWUpO1xuICAgIGA7XG5cbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBzY3JpcHQuaW5uZXJIVE1MID0gc2NyaXB0Q29udGVudDtcbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gIH1cblxuICBpbmplY3RPcHRpbWl6ZShvcHRpbWl6ZUtleTogc3RyaW5nKSB7XG4gICAgaWYgKCFvcHRpbWl6ZUtleSB8fCBvcHRpbWl6ZUtleS5sZW5ndGggPCAwKSB7XG4gICAgICBjb25zb2xlLmluZm8oJ1tNaWFtXSBHb29nbGUgT3B0aW1pemUgbm90IGluaXRpYWxpemVkIChubyBrZXkpJywgb3B0aW1pemVLZXkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBzY3JpcHQuc3JjID0gYGh0dHBzOi8vd3d3Lmdvb2dsZW9wdGltaXplLmNvbS9vcHRpbWl6ZS5qcz9pZD0ke29wdGltaXplS2V5fWA7XG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICB9XG59XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL19zZXJ2aWNlcy9hbmFseXRpY3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFFMUQsc0dBQXNHO0FBQ3RHLHNHQUFzRztBQUN0RywyR0FBMkc7QUFDM0csbUNBQW1DO0FBQ25DLEVBQUU7QUFDRixnSEFBZ0g7QUFDaEgseUdBQXlHO0FBQ3pHLGtHQUFrRztBQUlsRyxNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCO1FBRlEsaUJBQVksR0FBRyxLQUFLLENBQUM7SUFFZCxDQUFDO0lBRWhCLCtFQUErRTtJQUMvRSxJQUFJLENBQUMsS0FBYSxFQUFFLGNBQXNCLElBQUk7UUFDNUMsOEZBQThGO1FBQzlGLElBQUksV0FBVyxDQUFDLEdBQUcsS0FBSyxNQUFNLEVBQUM7WUFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO1lBQ2pGLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxrREFBa0QsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6RSxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLFNBQVMsQ0FBQyxNQUFjLEVBQUUsUUFBZ0IsSUFBSSxFQUFFLFFBQWdCLElBQUk7UUFDbEUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsTUFBTSxDQUFDLFNBQVMsR0FBRzs7OzBCQUdDLE1BQU07eUJBQ1AsS0FBSzt3QkFDTixLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsT0FBTyxFQUFFOztPQUVqQyxDQUFDO1lBQ0YsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVc7UUFDbEIsTUFBTSxhQUFhLEdBQUc7Ozs7Ozs7Ozs7c0JBVUosR0FBRzs7Ozs7O0tBTXBCLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDO1FBQ2pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxjQUFjLENBQUMsV0FBbUI7UUFDaEMsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMxQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzdFLE9BQU87U0FDUjtRQUNELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsTUFBTSxDQUFDLEdBQUcsR0FBRyxpREFBaUQsV0FBVyxFQUFFLENBQUM7UUFDNUUsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7Z0ZBMUVVLGdCQUFnQjt3REFBaEIsZ0JBQWdCLFdBQWhCLGdCQUFnQixtQkFGZixNQUFNO2tEQUVQLGdCQUFnQjtjQUg1QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RGbGFncyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuXG4vLyBMb2FkaW5nIGEgc2NyaXB0IGRpcmVjdGx5IGluIHRoZSBET00gZXZlcnkgdGltZSBhbiBldmVudCBpcyB0cmlnZ2VyZWQgaXMgcHJvYmFibHkgbm90IHRoZSBpZGVhbCB3YXlcbi8vIG9mIGhhbmRsaW5nIGl0LiBIb3dldmVyLCBpdCBzZWVtcyB0byBiZSB0aGUgb25seSB3YXkgdG8gbWFrZSBzdXJlIHRoZSBhbmFseXRpY3Mgc2NyaXB0IGdldHMgbG9hZGVkLFxuLy8gdGhlIFwiZ2FcIiBmdW5jdGlvbiBkZWZpbmVkIChhbmQgdWx0aW1hdGVseSwgY2FsbGVkKSwgaW4gdGhlIGFjdHVhbCBjb250ZXh0IG9mIHRoZSBob3N0IERPTSB3aGVyZSB0aGUgd2ViY1xuLy8gbGlicmFyeSBpcyBnb2luZyB0byBiZSBpbmplY3RlZC5cbi8vXG4vLyBGb3IgaW5zdGFuY2UsIGlmIHRoZSBsaWIgaXMgbG9hZGVkIGluIGEgdGhpcmQgcGFydHkgYXBwbGljYXRpb25zIERPTSBmcm9tIGEgQ2hyb21lIGV4dGVuc2lvbnMgY29udGVudCBzY3JpcHQsXG4vLyBhdHRlbXB0cyBhdCBleGVjdXRpbmcgdGhlIGdhIGZ1bmN0aW9uIGRpcmVjdGx5IGluIHRoZSBjb250ZW50IHNjcmlwdCB3aWxsIGZhaWwgYXMgd2UgY2Fubm90IGFjY2VzcyB0aGVcbi8vIEphdmFzY3JpcHQgY29udGV4dCB3aGVyZSB0aGUgc2NyaXB0IGdvdCBsb2FkZWQgaW4gdGhlIGZpcnN0IHBsYWNlIChcIndpbmRvd1wiIG9iamVjdCB3aWxsIGRpZmZlcilcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFuYWx5dGljc1NlcnZpY2Uge1xuICBwcml2YXRlIF9pbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvLyBMb2FkIEdvb2dsZSBhbmFseXRpY3MgJiBvcHRpbWl6ZSBzY3JpcHRzIGludG8gaG9zdCBwYWdlIERPTSAmIGNyZWF0ZSB0cmFja2VyXG4gIGluaXQoZ2FLZXk6IHN0cmluZywgb3B0aW1pemVLZXk6IHN0cmluZyA9IG51bGwpIHtcbiAgICAvLyB3ZSBkbyBub3QgaGF2ZSB1YXQgb3IgbG9jYWwgYW5hbHl0aWNhbCBzZXJ2aWNlLCBndWFyZCBpdCBpZiB5b3UgYXJlIHVzaW5nIGEgbm9uIHByb2Qgc2NyaXB0XG4gICAgaWYgKGVudmlyb25tZW50LmVudiAhPT0gJ3Byb2QnKXtcbiAgICAgIGNvbnNvbGUuaW5mbygnW01pYW1dIHlvdSBhcmUgbm90IGluIHByb2QsIGRvIG5vdCBpbml0aWFsaXplIGFuYWx5dGljYWwgc2VydmljZScpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghZ2FLZXkgfHwgZ2FLZXkubGVuZ3RoIDwgMCkge1xuICAgICAgY29uc29sZS5lcnJvcignW01pYW1dIENhbm5vdCBpbml0aWFsaXplIGFuYWx5dGljcyA6IGludmFsaWQga2V5JywgZ2FLZXkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaW5qZWN0R0EoZ2FLZXkpO1xuICAgIHRoaXMuaW5qZWN0T3B0aW1pemUob3B0aW1pemVLZXkpO1xuXG4gICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIGNvbnNvbGUubG9nKCdbTWlhbV0gSW5pdGlhbGl6ZSBhbmFseXRpY3MnLCBnYUtleSwgb3B0aW1pemVLZXkpO1xuICAgIHRoaXMuc2VuZEV2ZW50KCdsb2FkJyk7XG4gIH1cblxuICAvLyBBcHBlbmQgbmV3IHNjcmlwdCB0byB0aGUgRE9NIHNvIHRoZSBldmVudCBpcyBzZW50IGZyb20gdGhlIGNvcnJlY3QgY29udGV4dFxuICBzZW5kRXZlbnQoYWN0aW9uOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcgPSBudWxsLCB2YWx1ZTogbnVtYmVyID0gbnVsbCkge1xuICAgIGlmICh0aGlzLl9pbml0aWFsaXplZCkge1xuICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICBzY3JpcHQuaW5uZXJIVE1MID0gYFxcXG4gICAgICAgIGdhKCdtX2lfYV9tX1RyYWNrZXIuc2VuZCcsICdldmVudCcsIHtcbiAgICAgICAgICBldmVudENhdGVnb3J5OiAnbmctbWlhbScsXG4gICAgICAgICAgZXZlbnRBY3Rpb246ICcke2FjdGlvbn0nLFxuICAgICAgICAgIGV2ZW50TGFiZWw6ICcke2xhYmVsfScsXG4gICAgICAgICAgZXZlbnRWYWx1ZTogJHt2YWx1ZT8udG9GaXhlZCgpfVxuICAgICAgICB9KTtcbiAgICAgIGA7XG4gICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgfVxuICB9XG5cbiAgaW5qZWN0R0Eoa2V5OiBzdHJpbmcpIHtcbiAgICBjb25zdCBzY3JpcHRDb250ZW50ID0gYFxuICAgICAgKGZ1bmN0aW9uKGksIHMsIG8sIGcsIHIsIGEsIG0pIHtcbiAgICAgICAgaVtyXSA9IGlbcl0gfHwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgKGlbcl0ucSA9IGlbcl0ucSB8fCBbXSkucHVzaChhcmd1bWVudHMpO1xuICAgICAgICB9LCBpW3JdLmwgPSAxICogbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgIGEgPSBzLmNyZWF0ZUVsZW1lbnQobyksIG0gPSBzLmdldEVsZW1lbnRzQnlUYWdOYW1lKG8pWzBdO1xuICAgICAgICBhLmFzeW5jID0gMTtcbiAgICAgICAgYS5zcmMgPSBnO1xuICAgICAgICBtLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsIG0pO1xuICAgICAgfSkod2luZG93LCBkb2N1bWVudCwgJ3NjcmlwdCcsICdodHRwczovL3NzbC5nb29nbGUtYW5hbHl0aWNzLmNvbS9hbmFseXRpY3MuanMnLCAnZ2EnKTtcbiAgICAgIGdhKCdjcmVhdGUnLCAnJHtrZXl9JywgJ25vbmUnLCAnbV9pX2FfbV9UcmFja2VyJyk7XG4gICAgICBnYSgnbV9pX2FfbV9UcmFja2VyLnNldCcsICdyZWZlcnJlcicsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO1xuICAgICAgZ2EoJ21faV9hX21fVHJhY2tlci5zZXQnLCAnY2FtcGFpZ25OYW1lJywgJ25nLW1pYW0nKTtcbiAgICAgIGdhKCdtX2lfYV9tX1RyYWNrZXIuc2V0JywgJ2NhbXBhaWduU291cmNlJywgJ25nLW1pYW0nKTtcbiAgICAgIGdhKCdtX2lfYV9tX1RyYWNrZXIuc2V0JywgJ2NhbXBhaWduTWVkaXVtJywgd2luZG93LmxvY2F0aW9uLmhvc3QpO1xuICAgICAgZ2EoJ21faV9hX21fVHJhY2tlci5zZXQnLCAnZm9yY2VTU0wnLCB0cnVlKTtcbiAgICBgO1xuXG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgc2NyaXB0LmlubmVySFRNTCA9IHNjcmlwdENvbnRlbnQ7XG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICB9XG5cbiAgaW5qZWN0T3B0aW1pemUob3B0aW1pemVLZXk6IHN0cmluZykge1xuICAgIGlmICghb3B0aW1pemVLZXkgfHwgb3B0aW1pemVLZXkubGVuZ3RoIDwgMCkge1xuICAgICAgY29uc29sZS5pbmZvKCdbTWlhbV0gR29vZ2xlIE9wdGltaXplIG5vdCBpbml0aWFsaXplZCAobm8ga2V5KScsIG9wdGltaXplS2V5KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgc2NyaXB0LnNyYyA9IGBodHRwczovL3d3dy5nb29nbGVvcHRpbWl6ZS5jb20vb3B0aW1pemUuanM/aWQ9JHtvcHRpbWl6ZUtleX1gO1xuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,21 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Service } from 'ngx-jsonapi';
3
+ import { Article } from '../_models/article';
4
+ import * as i0 from "@angular/core";
5
+ export class ArticlesService extends Service {
6
+ constructor() {
7
+ super();
8
+ this.resource = Article;
9
+ this.type = 'articles';
10
+ this.register();
11
+ }
12
+ }
13
+ ArticlesService.ɵfac = function ArticlesService_Factory(t) { return new (t || ArticlesService)(); };
14
+ ArticlesService.ɵprov = i0.ɵɵdefineInjectable({ token: ArticlesService, factory: ArticlesService.ɵfac, providedIn: 'root' });
15
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ArticlesService, [{
16
+ type: Injectable,
17
+ args: [{
18
+ providedIn: 'root'
19
+ }]
20
+ }], function () { return []; }, null); })();
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvYnVpbGRzL21pYW0vbmctbWlhbS1zZGsvcHJvamVjdHMvbmctbWlhbS9zcmMvIiwic291cmNlcyI6WyJsaWIvX3NlcnZpY2VzL2FydGljbGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFLN0MsTUFBTSxPQUFPLGVBQWdCLFNBQVEsT0FBZ0I7SUFJbkQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUpILGFBQVEsR0FBRyxPQUFPLENBQUM7UUFDbkIsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQUl2QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQzs7OEVBUFUsZUFBZTt1REFBZixlQUFlLFdBQWYsZUFBZSxtQkFGZCxNQUFNO2tEQUVQLGVBQWU7Y0FIM0IsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VydmljZSB9IGZyb20gJ25neC1qc29uYXBpJztcbmltcG9ydCB7IEFydGljbGUgfSBmcm9tICcuLi9fbW9kZWxzL2FydGljbGUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBcnRpY2xlc1NlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlPEFydGljbGU+IHtcbiAgcHVibGljIHJlc291cmNlID0gQXJ0aWNsZTtcbiAgcHVibGljIHR5cGUgPSAnYXJ0aWNsZXMnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yZWdpc3RlcigpO1xuICB9XG59XG4iXX0=
@@ -4,7 +4,7 @@ import { Basket } from '../_models/basket';
4
4
  import { BehaviorSubject, combineLatest, forkJoin, of } from 'rxjs';
5
5
  import { skipWhile, switchMap, tap, map, take } from 'rxjs/operators';
6
6
  import { HttpClient } from '@angular/common/http';
7
- import { environment as e } from '../environment';
7
+ import { environment as e } from '../environments/environment';
8
8
  import { BasketEntriesService } from './basket-entries.service';
9
9
  import { GroceriesListsService } from './groceries-lists.service';
10
10
  import { PointOfSalesService } from './point-of-sales.service';
@@ -72,8 +72,12 @@ export class BasketsService extends Service {
72
72
  // Send total in cents
73
73
  this.analyticsService.sendEvent('push-basket', null, (total * 100));
74
74
  }
75
+ // set basket as undefined as it because inconsistent while we reset the list. then wait for new one
76
+ this.basket$.next(undefined);
75
77
  return this.listsService.resetList();
76
- }), map(() => confirmedBasket));
78
+ }), switchMap(() => {
79
+ return this.basket$;
80
+ }), skipWhile((b) => !b), map(() => confirmedBasket));
77
81
  }
78
82
  basketEntries() {
79
83
  return this._entries$;
@@ -213,4 +217,4 @@ BasketsService.ɵprov = i0.ɵɵdefineInjectable({ token: BasketsService, factory
213
217
  providedIn: 'root'
214
218
  }]
215
219
  }], function () { return [{ type: i1.HttpClient }, { type: i2.BasketEntriesService }, { type: i3.GroceriesListsService }, { type: i4.GroceriesEntriesService }, { type: i5.PointOfSalesService }, { type: i6.RecipesService }, { type: i7.AnalyticsService }]; }, null); })();
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fc2VydmljZXMvYmFza2V0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBd0MsTUFBTSxhQUFhLENBQUM7QUFDNUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLE9BQU8sRUFBYyxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsSUFBSSxDQUFDLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQWUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0s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LFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUNoQyxNQUFNO3lCQUNQO3dCQUNELE9BQU8sQ0FBQyxDQUFDOzRCQUNQLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUM5QixNQUFNO3lCQUNQO3FCQUNGO2lCQUNGO3FCQUFNO29CQUNMLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNsQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQTVPTSw4QkFBZSxHQUFHLEVBQUUsQ0FBQzs0RUFEakIsY0FBYztzREFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGYixNQUFNO2tEQUVQLGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VydmljZSwgRG9jdW1lbnRDb2xsZWN0aW9uLCBEb2N1bWVudFJlc291cmNlIH0gZnJvbSAnbmd4LWpzb25hcGknO1xuaW1wb3J0IHsgQmFza2V0IH0gZnJvbSAnLi4vX21vZGVscy9iYXNrZXQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNraXBXaGlsZSwgc3dpdGNoTWFwLCB0YXAsIG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCBhcyBlIH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgQmFza2V0RW50cmllc1NlcnZpY2UgfSBmcm9tICcuL2Jhc2tldC1lbnRyaWVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JvY2VyaWVzTGlzdHNTZXJ2aWNlIH0gZnJvbSAnLi9ncm9jZXJpZXMtbGlzdHMuc2VydmljZSc7XG5pbXBvcnQgeyBQb2ludE9mU2FsZXNTZXJ2aWNlIH0gZnJvbSAnLi9wb2ludC1vZi1zYWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2tldFByZXZpZXdMaW5lLCBMaW5lRW50cmllcyB9IGZyb20gJy4uL19tb2RlbHMvYmFza2V0LXByZXZpZXctbGluZSc7XG5pbXBvcnQgeyBSZWNpcGVzU2VydmljZSB9IGZyb20gJy4vcmVjaXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZSB9IGZyb20gJy4uL19tb2RlbHMvcmVjaXBlJztcbmltcG9ydCB7IEdyb2Nlcmllc0VudHJpZXNTZXJ2aWNlIH0gZnJvbSAnLi9ncm9jZXJpZXMtZW50cmllcy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2tldEVudHJ5IH0gZnJvbSAnLi4vX21vZGVscy9iYXNrZXQtZW50cnknO1xuaW1wb3J0IHsgdW5pb25CeSwgZmxhdHRlbiB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBHcm9jZXJpZXNFbnRyeSB9IGZyb20gJy4uL19tb2RlbHMvZ3JvY2VyaWVzLWVudHJ5JztcblxuZXhwb3J0IGludGVyZmFjZSBCYXNrZXRTdGF0cyB7XG4gIHRvdGFsUHJpY2U6IG51bWJlcjtcbiAgcmVjaXBlc0NvdW50OiBudW1iZXI7XG4gIGVudHJpZXNDb3VudDogbnVtYmVyO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCYXNrZXRzU2VydmljZSBleHRlbmRzIFNlcnZpY2U8QmFza2V0PiB7XG4gIHN0YXRpYyBlbnRyaWVzUGVyUGFnZXMgPSAzMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBiYXNrZXRFbnRyaWVzU2VydmljZTogQmFza2V0RW50cmllc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsaXN0c1NlcnZpY2U6IEdyb2Nlcmllc0xpc3RzU2VydmljZSxcbiAgICBwcml2YXRlIGdyb2Nlcmllc0VudHJpZXNTZXJ2aWNlOiBHcm9jZXJpZXNFbnRyaWVzU2VydmljZSxcbiAgICBwcml2YXRlIHBvc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWNpcGVzU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yZWdpc3RlcigpO1xuICAgIHRoaXMubG9hZEJhc2tldCgpLnN1YnNjcmliZSgpO1xuICAgIHRoaXMubG9hZFByZXZpZXcoKTtcbiAgfVxuXG4gIHJlc291cmNlID0gQmFza2V0O1xuICB0eXBlID0gJ2Jhc2tldHMnO1xuICBiYXNrZXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCYXNrZXQ+KG51bGwpO1xuICBiYXNrZXRQcmV2aWV3JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QmFza2V0UHJldmlld0xpbmVbXT4obnVsbCk7XG4gIGJhc2tldFN0YXRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QmFza2V0U3RhdHM+KHsgdG90YWxQcmljZTogMCwgcmVjaXBlc0NvdW50OiAwLCBlbnRyaWVzQ291bnQ6IDAgfSk7XG5cbiAgcHJpdmF0ZSBfZW50cmllcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJhc2tldEVudHJ5W10+KFtdKTtcblxuICAvLyBGZXRjaCByZWxhdGVkIGJhc2tldHMsIGZpbHRlcmluZyBvbiBhIHBvaW50IG9mIHNhbGVcbiAgZmV0Y2hGb3JMaXN0QW5kUG9zKGxpc3RJZDogc3RyaW5nLCBwb3NJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxCYXNrZXQ+IHtcbiAgICBpZiAoIWxpc3RJZCB8fCAhcG9zSWQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG4gICAgbGV0IHVybCA9IFtlLm1pYW1BUEksICdhcGkvdjEvZ3JvY2VyaWVzLWxpc3RzJywgbGlzdElkLCAnYmFza2V0cyddLmpvaW4oJy8nKTtcbiAgICB1cmwgPSBgJHt1cmx9P2ZpbHRlcltwb2ludF9vZl9zYWxlX2lkXT0ke3Bvc0lkfWA7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnBpcGUoXG4gICAgICBza2lwV2hpbGUoKHJlc3A6IERvY3VtZW50Q29sbGVjdGlvbjxCYXNrZXQ+KSA9PiByZXNwLmlzX2xvYWRpbmcpLFxuICAgICAgbWFwKChyZXNwOiBEb2N1bWVudENvbGxlY3Rpb248QmFza2V0PikgPT4ge1xuICAgICAgICBjb25zdCBiYXNrZXRzID0gdGhpcy5uZXdDb2xsZWN0aW9uKCk7XG4gICAgICAgIGJhc2tldHMuZmlsbChyZXNwKTtcbiAgICAgICAgcmV0dXJuIGJhc2tldHMuZGF0YVswXTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGxvYWRCYXNrZXQoKTogT2JzZXJ2YWJsZTxCYXNrZXQ+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5saXN0c1NlcnZpY2UubGlzdCQsIHRoaXMucG9zU2VydmljZS5wb3MkXSkucGlwZShcbiAgICAgIHNraXBXaGlsZShyZXN1bHRzID0+ICAhcmVzdWx0c1swXSB8fCAhcmVzdWx0c1sxXSksXG4gICAgICBzd2l0Y2hNYXAocmVzdWx0cyA9PiB0aGlzLmZldGNoRm9yTGlzdEFuZFBvcyhyZXN1bHRzWzBdLmlkLCByZXN1bHRzWzFdLmlkKSksXG4gICAgICB0YXAoYmFza2V0ID0+IHRoaXMuYmFza2V0JC5uZXh0KGJhc2tldCkpXG4gICAgKTtcbiAgfVxuXG4gIC8vIFNldCBiYXNrZXQgYXMgY29uZmlybWVkLCBhbmQgcmV0dXJucyBvbmx5IG9uY2UgdGhlIG5ldyBjdXJyZW50IGxpc3QgaXMgcmV0dXJuZWRcbiAgY29uZmlybUJhc2tldCgpOiBPYnNlcnZhYmxlPEJhc2tldD4ge1xuICAgIGxldCBjb25maXJtZWRCYXNrZXQ6IEJhc2tldDtcbiAgICByZXR1cm4gdGhpcy5iYXNrZXQkLnBpcGUoXG4gICAgICBza2lwV2hpbGUoYiA9PiAhYiksXG4gICAgICB0YWtlKDEpLFxuICAgICAgc3dpdGNoTWFwKGJhc2tldCA9PiB7XG4gICAgICAgIGJhc2tldC5hdHRyaWJ1dGVzLmNvbmZpcm1lZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBiYXNrZXQuc2F2ZSgpO1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKHJlc3A6IERvY3VtZW50UmVzb3VyY2U8QmFza2V0PikgPT4ge1xuICAgICAgICBjb25maXJtZWRCYXNrZXQgPSB0aGlzLm5ldygpO1xuICAgICAgICBjb25maXJtZWRCYXNrZXQuZmlsbChyZXNwKTtcbiAgICAgICAgY29uc3QgdG90YWwgPSBjb25maXJtZWRCYXNrZXQudG90YWxQcmljZTtcbiAgICAgICAgY29uc29sZS5sb2coJ1tNaWFtXSBzZW5kIHB1c2ggYW5hbHl0aWNzIGV2ZW50IGlmID4gMDonLCB0b3RhbCwgY29uZmlybWVkQmFza2V0KTtcbiAgICAgICAgaWYgKHRvdGFsID4gMCkge1xuICAgICAgICAgIC8vIFNlbmQgdG90YWwgaW4gY2VudHNcbiAgICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KCdwdXNoLWJhc2tldCcsIG51bGwsICh0b3RhbCAqIDEwMCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmxpc3RzU2VydmljZS5yZXNldExpc3QoKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKCgpID0+IGNvbmZpcm1lZEJhc2tldClcbiAgICApO1xuICB9XG5cbiAgYmFza2V0RW50cmllcygpOiBPYnNlcnZhYmxlPEJhc2tldEVudHJ5W10+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50cmllcyQ7XG4gIH1cblxuICBhY3RpdmVCYXNrZXRFbnRyaWVzKCk6IE9ic2VydmFibGU8QmFza2V0RW50cnlbXT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2tldEVudHJpZXMoKS5waXBlKFxuICAgICAgbWFwKChlbnRyaWVzOiBCYXNrZXRFbnRyeVtdKSA9PiBlbnRyaWVzLmZpbHRlcihlbnRyeSA9PiBlbnRyeS5ncm9jZXJpZXNFbnRyeVN0YXR1cyA9PT0gJ2FjdGl2ZScpKVxuICAgICk7XG4gIH1cblxuICAvLyBEZWNyZWFzZSBxdWFudGl0eSBvbiBhIGxpc3Qgb2YgYmFza2V0IGVudHJpZXNcbiAgLy8gSWYgdGhlIHF1YW50aXR5IGdvZXMgYmVsb3cgMSwgdGhlIGNvcnJlc3BvbmRpbmcgZ3JvY2VyaWVzIGVudHJ5J3Mgc3RhdHVzIGdldHMgZGVsZXRlZFxuICAvLyBSZWxvYWQgYmFza2V0IGFmdGVyIGFsbCBvYmplY3RzIGFyZSBzYXZlZFxuICByZW1vdmVCYXNrZXRFbnRyaWVzKGVudHJpZXNUb1JlbW92ZTogeyBpZDogc3RyaW5nLCBxdHk6IG51bWJlciB9W10pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICghdGhpcy5fZW50cmllcyQudmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzYXZlT2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8R3JvY2VyaWVzRW50cnl8QmFza2V0RW50cnk+W10gPSBlbnRyaWVzVG9SZW1vdmUubWFwKGVudHJ5VG9SZW1vdmUgPT4ge1xuICAgICAgY29uc3QgYmFza2V0RW50cnkgPSB0aGlzLl9lbnRyaWVzJC52YWx1ZS5maW5kKGJlID0+IGJlLmlkID09PSBlbnRyeVRvUmVtb3ZlLmlkKTtcbiAgICAgIGlmICghYmFza2V0RW50cnkgfHwgIWVudHJ5VG9SZW1vdmUucXR5KSB7XG4gICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmluYWxDb3VudCA9IGJhc2tldEVudHJ5LnF1YW50aXR5IC0gZW50cnlUb1JlbW92ZS5xdHk7XG4gICAgICBpZiAoZmluYWxDb3VudCA+PSAxKSB7XG4gICAgICAgIGJhc2tldEVudHJ5LnF1YW50aXR5ID0gZmluYWxDb3VudDtcbiAgICAgICAgcmV0dXJuIGJhc2tldEVudHJ5LnNhdmUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJhc2tldEVudHJ5LnF1YW50aXR5ID0gMTtcbiAgICAgICAgYmFza2V0RW50cnkuZ3JvY2VyaWVzRW50cnkuc3RhdHVzID0gJ2RlbGV0ZWQnO1xuICAgICAgICByZXR1cm4gZm9ya0pvaW4oW2Jhc2tldEVudHJ5LnNhdmUoKSwgYmFza2V0RW50cnkuZ3JvY2VyaWVzRW50cnkuc2F2ZSgpXSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZm9ya0pvaW4oc2F2ZU9ic2VydmFibGVzKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubGlzdHNTZXJ2aWNlLnJlZnJlc2hDdXJyZW50TGlzdCgpKSxcbiAgICAgIHRha2UoMSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUHJldmlldygpOiBPYnNlcnZhYmxlPEJhc2tldFByZXZpZXdMaW5lW10+IHtcbiAgICB0aGlzLmJhc2tldCQucGlwZShcbiAgICAgIHNraXBXaGlsZShiID0+ICFiKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmxvYWRSZWNpcGVzKCkpLFxuICAgICAgc3dpdGNoTWFwKHJlY2lwZXMgPT4ge1xuICAgICAgICBjb25zdCBiYXNrZXQ6IEJhc2tldCA9IHRoaXMuYmFza2V0JC52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hCYXNrZXRFbnRyaWVzKGJhc2tldCkucGlwZShcbiAgICAgICAgICBtYXAoZW50cmllcyA9PiB7XG4gICAgICAgICAgICBjb25zdCBsaW5lRW50cmllcyA9IHRoaXMuZ3JvdXBCYXNrZXRFbnRyaWVzKHJlY2lwZXMsIGVudHJpZXMpO1xuICAgICAgICAgICAgY29uc3QgbGluZXMgPSB0aGlzLnJlY2lwZXNBbmRMaW5lRW50cmllc1RvQmFza2V0UHJldmlld0xpbmUocmVjaXBlcywgbGluZUVudHJpZXMpO1xuICAgICAgICAgICAgdGhpcy5iYXNrZXRQcmV2aWV3JC5uZXh0KGxpbmVzKTtcbiAgICAgICAgICAgIHRoaXMuYmFza2V0U3RhdHMkLm5leHQodGhpcy5idWlsZFN0YXRzKGxpbmVzKSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKTtcblxuICAgIHJldHVybiB0aGlzLmJhc2tldFByZXZpZXckO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaEJhc2tldEVudHJpZXMoYmFza2V0OiBCYXNrZXQpOiBPYnNlcnZhYmxlPEJhc2tldEVudHJ5W10+IHtcbiAgICBpZiAoIWJhc2tldCB8fCAhYmFza2V0LmNvbXBsZXRpb24gfHwgYmFza2V0LmNvbXBsZXRpb24udG90YWwgPCAxKSB7XG4gICAgICB0aGlzLl9lbnRyaWVzJC5uZXh0KFtdKTtcbiAgICAgIHJldHVybiB0aGlzLl9lbnRyaWVzJDtcbiAgICB9XG5cbiAgICBjb25zdCBwYWdlc0NvdW50ID0gTWF0aC5jZWlsKGJhc2tldC5jb21wbGV0aW9uLnRvdGFsIC8gQmFza2V0c1NlcnZpY2UuZW50cmllc1BlclBhZ2VzKTtcbiAgICByZXR1cm4gZm9ya0pvaW4oQXJyYXkuYXBwbHkobnVsbCwgQXJyYXkocGFnZXNDb3VudCkpLm1hcCgodiwgaSkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hCYXNrZXRFbnRyaWVzUGFnZShiYXNrZXQsIGkgKyAxKTtcbiAgICB9KSkucGlwZShcbiAgICAgIG1hcCgoY29sbGVjdGlvbnM6IERvY3VtZW50Q29sbGVjdGlvbjxCYXNrZXRFbnRyeT5bXSkgPT4ge1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gZmxhdHRlbihjb2xsZWN0aW9ucy5tYXAoY29sID0+IGNvbC5kYXRhKSk7XG4gICAgICAgIGVudHJpZXMuZm9yRWFjaChlID0+IGUuc2V0SXRlbXNTZWxlY3Rpb24oKSk7XG4gICAgICAgIHRoaXMuX2VudHJpZXMkLm5leHQoZW50cmllcyk7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnRyaWVzJC52YWx1ZTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRTdGF0cyhsaW5lczogQmFza2V0UHJldmlld0xpbmVbXSk6IEJhc2tldFN0YXRzIHtcbiAgICBjb25zdCBlbnRyaWVzRm91bmQ6IEJhc2tldEVudHJ5W10gPSB1bmlvbkJ5KC4uLiBsaW5lcy5tYXAobGluZSA9PiBsaW5lLmVudHJpZXMuZm91bmQpLCAnaWQnKTtcblxuICAgIGNvbnN0IHRvdGFsUHJpY2UgPSBlbnRyaWVzRm91bmQucmVkdWNlKCh0b3RhbCAsIGVudHJ5KSA9PiB7XG4gICAgICBjb25zdCBpdGVtID0gZW50cnkuYXR0cmlidXRlc1snYmFza2V0LWVudHJpZXMtaXRlbXMnXS5maW5kKGkgPT4gaS5pdGVtX2lkID09PSBlbnRyeS5hdHRyaWJ1dGVzWydzZWxlY3RlZC1pdGVtLWlkJ10pO1xuICAgICAgdG90YWwgKz0gIChlbnRyeS5hdHRyaWJ1dGVzLnF1YW50aXR5IHx8IDApICogcGFyc2VGbG9hdChpdGVtWyd1bml0LXByaWNlJ10pO1xuICAgICAgcmV0dXJuIHRvdGFsO1xuICAgIH0sIDAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICByZWNpcGVzQ291bnQ6IGxpbmVzLmxlbmd0aCxcbiAgICAgIGVudHJpZXNDb3VudDogZW50cmllc0ZvdW5kLmxlbmd0aCxcbiAgICAgIHRvdGFsUHJpY2VcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaEJhc2tldEVudHJpZXNQYWdlKGJhc2tldDogQmFza2V0LCBwYWdlOiBudW1iZXIpIHtcbiAgICBsZXQgdXJsID0gW2UubWlhbUFQSSwgJ2FwaS92MS9iYXNrZXRzJywgYmFza2V0LmlkLCAnYmFza2V0LWVudHJpZXMnXS5qb2luKCcvJyk7XG4gICAgdXJsID0gYCR7dXJsfT9pbmNsdWRlPWdyb2Nlcmllcy1lbnRyeSxpdGVtcyZwYWdlW251bWJlcl09JHtwYWdlfSZwYWdlW3NpemVdPSR7QmFza2V0c1NlcnZpY2UuZW50cmllc1BlclBhZ2VzfWA7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnBpcGUoXG4gICAgICBza2lwV2hpbGUoKHJlc3A6IERvY3VtZW50Q29sbGVjdGlvbjxCYXNrZXRFbnRyeT4pID0+IHJlc3AuaXNfbG9hZGluZyksXG4gICAgICBtYXAoKHJlc3A6IERvY3VtZW50Q29sbGVjdGlvbjxCYXNrZXRFbnRyeT4pID0+IHtcbiAgICAgICAgY29uc3QgYmFza2V0RW50cmllcyA9IHRoaXMuYmFza2V0RW50cmllc1NlcnZpY2UubmV3Q29sbGVjdGlvbigpO1xuICAgICAgICBiYXNrZXRFbnRyaWVzLmZpbGwocmVzcCk7XG4gICAgICAgIHJldHVybiBiYXNrZXRFbnRyaWVzO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZWNpcGVzQW5kTGluZUVudHJpZXNUb0Jhc2tldFByZXZpZXdMaW5lKHJlY2lwZXM6IFJlY2lwZVtdLCBsaW5lRW50cmllczogTGluZUVudHJpZXNbXSk6IEJhc2tldFByZXZpZXdMaW5lW10ge1xuICAgIHJldHVybiByZWNpcGVzLm1hcCgocmVjaXBlLCBpZHgpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW1zQ291bnQgPSBsaW5lRW50cmllc1tpZHhdLmZvdW5kLmxlbmd0aDtcbiAgICAgIGxldCByZWNpcGVQcmljZSA9IDAuMDtcbiAgICAgIGNvbnN0IGd1ZXN0cyA9IHJlY2lwZS5tb2RpZmllZEd1ZXN0cyB8fCBwYXJzZUludChyZWNpcGUuZ3Vlc3RzLCAxMCk7XG5cbiAgICAgIGxpbmVFbnRyaWVzW2lkeF0uZm91bmQuZm9yRWFjaChlbnRyeSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGVudHJ5LmF0dHJpYnV0ZXNbJ2Jhc2tldC1lbnRyaWVzLWl0ZW1zJ10uZmluZChpdGVtID0+IHtcbiAgICAgICAgICByZXR1cm4gaXRlbS5pdGVtX2lkID09PSBlbnRyeS5hdHRyaWJ1dGVzWydzZWxlY3RlZC1pdGVtLWlkJ107XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBxdHkgPSBlbnRyeS5hdHRyaWJ1dGVzLnF1YW50aXR5O1xuICAgICAgICBjb25zdCB1bml0UHJpY2UgPSBwYXJzZUZsb2F0KHNlbGVjdGVkSXRlbVsndW5pdC1wcmljZSddKTtcbiAgICAgICAgY29uc3QgbnVtYmVyT2ZSZWNpcGVzRm9yRW50cnkgPSBlbnRyeS5hdHRyaWJ1dGVzWydyZWNpcGUtaWRzJ10ubGVuZ3RoIHx8IDE7XG5cbiAgICAgICAgcmVjaXBlUHJpY2UgKz0gKHF0eSAqIHVuaXRQcmljZSkgLyBudW1iZXJPZlJlY2lwZXNGb3JFbnRyeTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcHJpY2VQZXJHdWVzdCA9IHJlY2lwZVByaWNlIC8gZ3Vlc3RzO1xuXG4gICAgICByZXR1cm4gQmFza2V0UHJldmlld0xpbmUuZnJvbVJlY2lwZShyZWNpcGUsIGl0ZW1zQ291bnQsIHByaWNlUGVyR3Vlc3QsIHJlY2lwZVByaWNlLCBsaW5lRW50cmllc1tpZHhdKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ3JvdXBCYXNrZXRFbnRyaWVzKHJlY2lwZXM6IFJlY2lwZVtdLCBlbnRyaWVzOiBCYXNrZXRFbnRyeVtdKTogTGluZUVudHJpZXNbXSB7XG4gICAgcmV0dXJuIHJlY2lwZXMubWFwKHJlY2lwZSA9PiB7XG4gICAgICBjb25zdCBsaW5lRW50cmllcyA9IHsgZm91bmQ6IFtdLCBub3RGb3VuZDogW10sIG9mdGVuRGVsZXRlZDogW10sIHJlbW92ZWQ6IFtdIH0gYXMgTGluZUVudHJpZXM7XG4gICAgICBlbnRyaWVzXG4gICAgICAgIC5maWx0ZXIoZW50cnkgPT4gZW50cnkuYXR0cmlidXRlc1sncmVjaXBlLWlkcyddLmluY2x1ZGVzKHBhcnNlSW50KHJlY2lwZS5pZCwgMTApKSlcbiAgICAgICAgLmZvckVhY2goZW50cnkgPT4ge1xuICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZSA9IGVudHJ5LmF0dHJpYnV0ZXNbJ3NlbGVjdGVkLWl0ZW0taWQnXTtcbiAgICAgICAgICBpZiAoYXZhaWxhYmxlKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGVudHJ5LmF0dHJpYnV0ZXNbJ2dyb2Nlcmllcy1lbnRyeS1zdGF0dXMnXSkge1xuICAgICAgICAgICAgICBjYXNlICdvZnRlbl9kZWxldGVkJzoge1xuICAgICAgICAgICAgICAgIGxpbmVFbnRyaWVzLm9mdGVuRGVsZXRlZC5wdXNoKGVudHJ5KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjYXNlICdkZWxldGVkJzoge1xuICAgICAgICAgICAgICAgIGxpbmVFbnRyaWVzLnJlbW92ZWQucHVzaChlbnRyeSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGxpbmVFbnRyaWVzLmZvdW5kLnB1c2goZW50cnkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxpbmVFbnRyaWVzLm5vdEZvdW5kLnB1c2goZW50cnkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICByZXR1cm4gbGluZUVudHJpZXM7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fc2VydmljZXMvYmFza2V0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBd0MsTUFBTSxhQUFhLENBQUM7QUFDNUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLE9BQU8sRUFBYyxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsSUFBSSxDQUFDLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQWUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0s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SUFBSSxTQUFTLEVBQUU7b0JBQ2IsUUFBUSxLQUFLLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLEVBQUU7d0JBQ2xELEtBQUssZUFBZSxDQUFDLENBQUM7NEJBQ3BCLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUNyQyxNQUFNO3lCQUNQO3dCQUNELEtBQUssU0FBUyxDQUFDLENBQUM7NEJBQ2QsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQ2hDLE1BQU07eUJBQ1A7d0JBQ0QsT0FBTyxDQUFDLENBQUM7NEJBQ1AsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQzlCLE1BQU07eUJBQ1A7cUJBQ0Y7aUJBQ0Y7cUJBQU07b0JBQ0wsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2xDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBblBNLDhCQUFlLEdBQUcsRUFBRSxDQUFDOzRFQURqQixjQUFjO3NEQUFkLGNBQWMsV0FBZCxjQUFjLG1CQUZiLE1BQU07a0RBRVAsY0FBYztjQUgxQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZXJ2aWNlLCBEb2N1bWVudENvbGxlY3Rpb24sIERvY3VtZW50UmVzb3VyY2UgfSBmcm9tICduZ3gtanNvbmFwaSc7XG5pbXBvcnQgeyBCYXNrZXQgfSBmcm9tICcuLi9fbW9kZWxzL2Jhc2tldCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZvcmtKb2luLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRhcCwgbWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGVudmlyb25tZW50IGFzIGUgfSBmcm9tICcuLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgQmFza2V0RW50cmllc1NlcnZpY2UgfSBmcm9tICcuL2Jhc2tldC1lbnRyaWVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JvY2VyaWVzTGlzdHNTZXJ2aWNlIH0gZnJvbSAnLi9ncm9jZXJpZXMtbGlzdHMuc2VydmljZSc7XG5pbXBvcnQgeyBQb2ludE9mU2FsZXNTZXJ2aWNlIH0gZnJvbSAnLi9wb2ludC1vZi1zYWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2tldFByZXZpZXdMaW5lLCBMaW5lRW50cmllcyB9IGZyb20gJy4uL19tb2RlbHMvYmFza2V0LXByZXZpZXctbGluZSc7XG5pbXBvcnQgeyBSZWNpcGVzU2VydmljZSB9IGZyb20gJy4vcmVjaXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZSB9IGZyb20gJy4uL19tb2RlbHMvcmVjaXBlJztcbmltcG9ydCB7IEdyb2Nlcmllc0VudHJpZXNTZXJ2aWNlIH0gZnJvbSAnLi9ncm9jZXJpZXMtZW50cmllcy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2tldEVudHJ5IH0gZnJvbSAnLi4vX21vZGVscy9iYXNrZXQtZW50cnknO1xuaW1wb3J0IHsgdW5pb25CeSwgZmxhdHRlbiB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBHcm9jZXJpZXNFbnRyeSB9IGZyb20gJy4uL19tb2RlbHMvZ3JvY2VyaWVzLWVudHJ5JztcblxuZXhwb3J0IGludGVyZmFjZSBCYXNrZXRTdGF0cyB7XG4gIHRvdGFsUHJpY2U6IG51bWJlcjtcbiAgcmVjaXBlc0NvdW50OiBudW1iZXI7XG4gIGVudHJpZXNDb3VudDogbnVtYmVyO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCYXNrZXRzU2VydmljZSBleHRlbmRzIFNlcnZpY2U8QmFza2V0PiB7XG4gIHN0YXRpYyBlbnRyaWVzUGVyUGFnZXMgPSAzMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBiYXNrZXRFbnRyaWVzU2VydmljZTogQmFza2V0RW50cmllc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsaXN0c1NlcnZpY2U6IEdyb2Nlcmllc0xpc3RzU2VydmljZSxcbiAgICBwcml2YXRlIGdyb2Nlcmllc0VudHJpZXNTZXJ2aWNlOiBHcm9jZXJpZXNFbnRyaWVzU2VydmljZSxcbiAgICBwcml2YXRlIHBvc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWNpcGVzU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yZWdpc3RlcigpO1xuICAgIHRoaXMubG9hZEJhc2tldCgpLnN1YnNjcmliZSgpO1xuICAgIHRoaXMubG9hZFByZXZpZXcoKTtcbiAgfVxuXG4gIHJlc291cmNlID0gQmFza2V0O1xuICB0eXBlID0gJ2Jhc2tldHMnO1xuICBiYXNrZXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCYXNrZXQ+KG51bGwpO1xuICBiYXNrZXRQcmV2aWV3JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QmFza2V0UHJldmlld0xpbmVbXT4obnVsbCk7XG4gIGJhc2tldFN0YXRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QmFza2V0U3RhdHM+KHsgdG90YWxQcmljZTogMCwgcmVjaXBlc0NvdW50OiAwLCBlbnRyaWVzQ291bnQ6IDAgfSk7XG5cbiAgcHJpdmF0ZSBfZW50cmllcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJhc2tldEVudHJ5W10+KFtdKTtcblxuICAvLyBGZXRjaCByZWxhdGVkIGJhc2tldHMsIGZpbHRlcmluZyBvbiBhIHBvaW50IG9mIHNhbGVcbiAgZmV0Y2hGb3JMaXN0QW5kUG9zKGxpc3RJZDogc3RyaW5nLCBwb3NJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxCYXNrZXQ+IHtcbiAgICBpZiAoIWxpc3RJZCB8fCAhcG9zSWQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG4gICAgbGV0IHVybCA9IFtlLm1pYW1BUEksICdhcGkvdjEvZ3JvY2VyaWVzLWxpc3RzJywgbGlzdElkLCAnYmFza2V0cyddLmpvaW4oJy8nKTtcbiAgICB1cmwgPSBgJHt1cmx9P2ZpbHRlcltwb2ludF9vZl9zYWxlX2lkXT0ke3Bvc0lkfWA7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnBpcGUoXG4gICAgICBza2lwV2hpbGUoKHJlc3A6IERvY3VtZW50Q29sbGVjdGlvbjxCYXNrZXQ+KSA9PiByZXNwLmlzX2xvYWRpbmcpLFxuICAgICAgbWFwKChyZXNwOiBEb2N1bWVudENvbGxlY3Rpb248QmFza2V0PikgPT4ge1xuICAgICAgICBjb25zdCBiYXNrZXRzID0gdGhpcy5uZXdDb2xsZWN0aW9uKCk7XG4gICAgICAgIGJhc2tldHMuZmlsbChyZXNwKTtcbiAgICAgICAgcmV0dXJuIGJhc2tldHMuZGF0YVswXTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGxvYWRCYXNrZXQoKTogT2JzZXJ2YWJsZTxCYXNrZXQ+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5saXN0c1NlcnZpY2UubGlzdCQsIHRoaXMucG9zU2VydmljZS5wb3MkXSkucGlwZShcbiAgICAgIHNraXBXaGlsZShyZXN1bHRzID0+ICAhcmVzdWx0c1swXSB8fCAhcmVzdWx0c1sxXSksXG4gICAgICBzd2l0Y2hNYXAocmVzdWx0cyA9PiB0aGlzLmZldGNoRm9yTGlzdEFuZFBvcyhyZXN1bHRzWzBdLmlkLCByZXN1bHRzWzFdLmlkKSksXG4gICAgICB0YXAoYmFza2V0ID0+IHRoaXMuYmFza2V0JC5uZXh0KGJhc2tldCkpXG4gICAgKTtcbiAgfVxuXG4gIC8vIFNldCBiYXNrZXQgYXMgY29uZmlybWVkLCBhbmQgcmV0dXJucyBvbmx5IG9uY2UgdGhlIG5ldyBjdXJyZW50IGxpc3QgaXMgcmV0dXJuZWRcbiAgY29uZmlybUJhc2tldCgpOiBPYnNlcnZhYmxlPEJhc2tldD4ge1xuICAgIGxldCBjb25maXJtZWRCYXNrZXQ6IEJhc2tldDtcbiAgICByZXR1cm4gdGhpcy5iYXNrZXQkLnBpcGUoXG4gICAgICBza2lwV2hpbGUoYiA9PiAhYiksXG4gICAgICB0YWtlKDEpLFxuICAgICAgc3dpdGNoTWFwKGJhc2tldCA9PiB7XG4gICAgICAgIGJhc2tldC5hdHRyaWJ1dGVzLmNvbmZpcm1lZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBiYXNrZXQuc2F2ZSgpO1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKHJlc3A6IERvY3VtZW50UmVzb3VyY2U8QmFza2V0PikgPT4ge1xuICAgICAgICBjb25maXJtZWRCYXNrZXQgPSB0aGlzLm5ldygpO1xuICAgICAgICBjb25maXJtZWRCYXNrZXQuZmlsbChyZXNwKTtcbiAgICAgICAgY29uc3QgdG90YWwgPSBjb25maXJtZWRCYXNrZXQudG90YWxQcmljZTtcbiAgICAgICAgY29uc29sZS5sb2coJ1tNaWFtXSBzZW5kIHB1c2ggYW5hbHl0aWNzIGV2ZW50IGlmID4gMDonLCB0b3RhbCwgY29uZmlybWVkQmFza2V0KTtcbiAgICAgICAgaWYgKHRvdGFsID4gMCkge1xuICAgICAgICAgIC8vIFNlbmQgdG90YWwgaW4gY2VudHNcbiAgICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KCdwdXNoLWJhc2tldCcsIG51bGwsICh0b3RhbCAqIDEwMCkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNldCBiYXNrZXQgYXMgdW5kZWZpbmVkIGFzIGl0IGJlY2F1c2UgaW5jb25zaXN0ZW50IHdoaWxlIHdlIHJlc2V0IHRoZSBsaXN0LiB0aGVuIHdhaXQgZm9yIG5ldyBvbmVcbiAgICAgICAgdGhpcy5iYXNrZXQkLm5leHQodW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcy5saXN0c1NlcnZpY2UucmVzZXRMaXN0KCk7XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmJhc2tldCRcbiAgICAgIH1cbiAgICAgICksXG4gICAgICBza2lwV2hpbGUoKGIpID0+ICFiKSxcbiAgICAgIG1hcCgoKSA9PiBjb25maXJtZWRCYXNrZXQpXG4gICAgKTtcbiAgfVxuXG4gIGJhc2tldEVudHJpZXMoKTogT2JzZXJ2YWJsZTxCYXNrZXRFbnRyeVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudHJpZXMkO1xuICB9XG5cbiAgYWN0aXZlQmFza2V0RW50cmllcygpOiBPYnNlcnZhYmxlPEJhc2tldEVudHJ5W10+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNrZXRFbnRyaWVzKCkucGlwZShcbiAgICAgIG1hcCgoZW50cmllczogQmFza2V0RW50cnlbXSkgPT4gZW50cmllcy5maWx0ZXIoZW50cnkgPT4gZW50cnkuZ3JvY2VyaWVzRW50cnlTdGF0dXMgPT09ICdhY3RpdmUnKSlcbiAgICApO1xuICB9XG5cbiAgLy8gRGVjcmVhc2UgcXVhbnRpdHkgb24gYSBsaXN0IG9mIGJhc2tldCBlbnRyaWVzXG4gIC8vIElmIHRoZSBxdWFudGl0eSBnb2VzIGJlbG93IDEsIHRoZSBjb3JyZXNwb25kaW5nIGdyb2NlcmllcyBlbnRyeSdzIHN0YXR1cyBnZXRzIGRlbGV0ZWRcbiAgLy8gUmVsb2FkIGJhc2tldCBhZnRlciBhbGwgb2JqZWN0cyBhcmUgc2F2ZWRcbiAgcmVtb3ZlQmFza2V0RW50cmllcyhlbnRyaWVzVG9SZW1vdmU6IHsgaWQ6IHN0cmluZywgcXR5OiBudW1iZXIgfVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAoIXRoaXMuX2VudHJpZXMkLnZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2F2ZU9ic2VydmFibGVzOiBPYnNlcnZhYmxlPEdyb2Nlcmllc0VudHJ5fEJhc2tldEVudHJ5PltdID0gZW50cmllc1RvUmVtb3ZlLm1hcChlbnRyeVRvUmVtb3ZlID0+IHtcbiAgICAgIGNvbnN0IGJhc2tldEVudHJ5ID0gdGhpcy5fZW50cmllcyQudmFsdWUuZmluZChiZSA9PiBiZS5pZCA9PT0gZW50cnlUb1JlbW92ZS5pZCk7XG4gICAgICBpZiAoIWJhc2tldEVudHJ5IHx8ICFlbnRyeVRvUmVtb3ZlLnF0eSkge1xuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpbmFsQ291bnQgPSBiYXNrZXRFbnRyeS5xdWFudGl0eSAtIGVudHJ5VG9SZW1vdmUucXR5O1xuICAgICAgaWYgKGZpbmFsQ291bnQgPj0gMSkge1xuICAgICAgICBiYXNrZXRFbnRyeS5xdWFudGl0eSA9IGZpbmFsQ291bnQ7XG4gICAgICAgIHJldHVybiBiYXNrZXRFbnRyeS5zYXZlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBiYXNrZXRFbnRyeS5xdWFudGl0eSA9IDE7XG4gICAgICAgIGJhc2tldEVudHJ5Lmdyb2Nlcmllc0VudHJ5LnN0YXR1cyA9ICdkZWxldGVkJztcbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKFtiYXNrZXRFbnRyeS5zYXZlKCksIGJhc2tldEVudHJ5Lmdyb2Nlcmllc0VudHJ5LnNhdmUoKV0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZvcmtKb2luKHNhdmVPYnNlcnZhYmxlcykucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmxpc3RzU2VydmljZS5yZWZyZXNoQ3VycmVudExpc3QoKSksXG4gICAgICB0YWtlKDEpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFByZXZpZXcoKTogT2JzZXJ2YWJsZTxCYXNrZXRQcmV2aWV3TGluZVtdPiB7XG4gICAgdGhpcy5iYXNrZXQkLnBpcGUoXG4gICAgICBza2lwV2hpbGUoYiA9PiAhYiksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5yZWNpcGVzU2VydmljZS5sb2FkUmVjaXBlcygpKSxcbiAgICAgIHN3aXRjaE1hcChyZWNpcGVzID0+IHtcbiAgICAgICAgY29uc3QgYmFza2V0OiBCYXNrZXQgPSB0aGlzLmJhc2tldCQudmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzLmZldGNoQmFza2V0RW50cmllcyhiYXNrZXQpLnBpcGUoXG4gICAgICAgICAgbWFwKGVudHJpZXMgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGluZUVudHJpZXMgPSB0aGlzLmdyb3VwQmFza2V0RW50cmllcyhyZWNpcGVzLCBlbnRyaWVzKTtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gdGhpcy5yZWNpcGVzQW5kTGluZUVudHJpZXNUb0Jhc2tldFByZXZpZXdMaW5lKHJlY2lwZXMsIGxpbmVFbnRyaWVzKTtcbiAgICAgICAgICAgIHRoaXMuYmFza2V0UHJldmlldyQubmV4dChsaW5lcyk7XG4gICAgICAgICAgICB0aGlzLmJhc2tldFN0YXRzJC5uZXh0KHRoaXMuYnVpbGRTdGF0cyhsaW5lcykpO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKCk7XG5cbiAgICByZXR1cm4gdGhpcy5iYXNrZXRQcmV2aWV3JDtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hCYXNrZXRFbnRyaWVzKGJhc2tldDogQmFza2V0KTogT2JzZXJ2YWJsZTxCYXNrZXRFbnRyeVtdPiB7XG4gICAgaWYgKCFiYXNrZXQgfHwgIWJhc2tldC5jb21wbGV0aW9uIHx8IGJhc2tldC5jb21wbGV0aW9uLnRvdGFsIDwgMSkge1xuICAgICAgdGhpcy5fZW50cmllcyQubmV4dChbXSk7XG4gICAgICByZXR1cm4gdGhpcy5fZW50cmllcyQ7XG4gICAgfVxuXG4gICAgY29uc3QgcGFnZXNDb3VudCA9IE1hdGguY2VpbChiYXNrZXQuY29tcGxldGlvbi50b3RhbCAvIEJhc2tldHNTZXJ2aWNlLmVudHJpZXNQZXJQYWdlcyk7XG4gICAgcmV0dXJuIGZvcmtKb2luKEFycmF5LmFwcGx5KG51bGwsIEFycmF5KHBhZ2VzQ291bnQpKS5tYXAoKHYsIGkpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmZldGNoQmFza2V0RW50cmllc1BhZ2UoYmFza2V0LCBpICsgMSk7XG4gICAgfSkpLnBpcGUoXG4gICAgICBtYXAoKGNvbGxlY3Rpb25zOiBEb2N1bWVudENvbGxlY3Rpb248QmFza2V0RW50cnk+W10pID0+IHtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IGZsYXR0ZW4oY29sbGVjdGlvbnMubWFwKGNvbCA9PiBjb2wuZGF0YSkpO1xuICAgICAgICBlbnRyaWVzLmZvckVhY2goZSA9PiBlLnNldEl0ZW1zU2VsZWN0aW9uKCkpO1xuICAgICAgICB0aGlzLl9lbnRyaWVzJC5uZXh0KGVudHJpZXMpO1xuICAgICAgICByZXR1cm4gdGhpcy5fZW50cmllcyQudmFsdWU7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkU3RhdHMobGluZXM6IEJhc2tldFByZXZpZXdMaW5lW10pOiBCYXNrZXRTdGF0cyB7XG4gICAgY29uc3QgZW50cmllc0ZvdW5kOiBCYXNrZXRFbnRyeVtdID0gdW5pb25CeSguLi4gbGluZXMubWFwKGxpbmUgPT4gbGluZS5lbnRyaWVzLmZvdW5kKSwgJ2lkJyk7XG5cbiAgICBjb25zdCB0b3RhbFByaWNlID0gZW50cmllc0ZvdW5kLnJlZHVjZSgodG90YWwgLCBlbnRyeSkgPT4ge1xuICAgICAgY29uc3QgaXRlbSA9IGVudHJ5LmF0dHJpYnV0ZXNbJ2Jhc2tldC1lbnRyaWVzLWl0ZW1zJ10uZmluZChpID0+IGkuaXRlbV9pZCA9PT0gZW50cnkuYXR0cmlidXRlc1snc2VsZWN0ZWQtaXRlbS1pZCddKTtcbiAgICAgIHRvdGFsICs9ICAoZW50cnkuYXR0cmlidXRlcy5xdWFudGl0eSB8fCAwKSAqIHBhcnNlRmxvYXQoaXRlbVsndW5pdC1wcmljZSddKTtcbiAgICAgIHJldHVybiB0b3RhbDtcbiAgICB9LCAwICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVjaXBlc0NvdW50OiBsaW5lcy5sZW5ndGgsXG4gICAgICBlbnRyaWVzQ291bnQ6IGVudHJpZXNGb3VuZC5sZW5ndGgsXG4gICAgICB0b3RhbFByaWNlXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hCYXNrZXRFbnRyaWVzUGFnZShiYXNrZXQ6IEJhc2tldCwgcGFnZTogbnVtYmVyKSB7XG4gICAgbGV0IHVybCA9IFtlLm1pYW1BUEksICdhcGkvdjEvYmFza2V0cycsIGJhc2tldC5pZCwgJ2Jhc2tldC1lbnRyaWVzJ10uam9pbignLycpO1xuICAgIHVybCA9IGAke3VybH0/aW5jbHVkZT1ncm9jZXJpZXMtZW50cnksaXRlbXMmcGFnZVtudW1iZXJdPSR7cGFnZX0mcGFnZVtzaXplXT0ke0Jhc2tldHNTZXJ2aWNlLmVudHJpZXNQZXJQYWdlc31gO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsKS5waXBlKFxuICAgICAgc2tpcFdoaWxlKChyZXNwOiBEb2N1bWVudENvbGxlY3Rpb248QmFza2V0RW50cnk+KSA9PiByZXNwLmlzX2xvYWRpbmcpLFxuICAgICAgbWFwKChyZXNwOiBEb2N1bWVudENvbGxlY3Rpb248QmFza2V0RW50cnk+KSA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2tldEVudHJpZXMgPSB0aGlzLmJhc2tldEVudHJpZXNTZXJ2aWNlLm5ld0NvbGxlY3Rpb24oKTtcbiAgICAgICAgYmFza2V0RW50cmllcy5maWxsKHJlc3ApO1xuICAgICAgICByZXR1cm4gYmFza2V0RW50cmllcztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVjaXBlc0FuZExpbmVFbnRyaWVzVG9CYXNrZXRQcmV2aWV3TGluZShyZWNpcGVzOiBSZWNpcGVbXSwgbGluZUVudHJpZXM6IExpbmVFbnRyaWVzW10pOiBCYXNrZXRQcmV2aWV3TGluZVtdIHtcbiAgICByZXR1cm4gcmVjaXBlcy5tYXAoKHJlY2lwZSwgaWR4KSA9PiB7XG4gICAgICBjb25zdCBpdGVtc0NvdW50ID0gbGluZUVudHJpZXNbaWR4XS5mb3VuZC5sZW5ndGg7XG4gICAgICBsZXQgcmVjaXBlUHJpY2UgPSAwLjA7XG4gICAgICBjb25zdCBndWVzdHMgPSByZWNpcGUubW9kaWZpZWRHdWVzdHMgfHwgcGFyc2VJbnQocmVjaXBlLmd1ZXN0cywgMTApO1xuXG4gICAgICBsaW5lRW50cmllc1tpZHhdLmZvdW5kLmZvckVhY2goZW50cnkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBlbnRyeS5hdHRyaWJ1dGVzWydiYXNrZXQtZW50cmllcy1pdGVtcyddLmZpbmQoaXRlbSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW0uaXRlbV9pZCA9PT0gZW50cnkuYXR0cmlidXRlc1snc2VsZWN0ZWQtaXRlbS1pZCddO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcXR5ID0gZW50cnkuYXR0cmlidXRlcy5xdWFudGl0eTtcbiAgICAgICAgY29uc3QgdW5pdFByaWNlID0gcGFyc2VGbG9hdChzZWxlY3RlZEl0ZW1bJ3VuaXQtcHJpY2UnXSk7XG4gICAgICAgIGNvbnN0IG51bWJlck9mUmVjaXBlc0ZvckVudHJ5ID0gZW50cnkuYXR0cmlidXRlc1sncmVjaXBlLWlkcyddLmxlbmd0aCB8fCAxO1xuXG4gICAgICAgIHJlY2lwZVByaWNlICs9IChxdHkgKiB1bml0UHJpY2UpIC8gbnVtYmVyT2ZSZWNpcGVzRm9yRW50cnk7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHByaWNlUGVyR3Vlc3QgPSByZWNpcGVQcmljZSAvIGd1ZXN0cztcblxuICAgICAgcmV0dXJuIEJhc2tldFByZXZpZXdMaW5lLmZyb21SZWNpcGUocmVjaXBlLCBpdGVtc0NvdW50LCBwcmljZVBlckd1ZXN0LCByZWNpcGVQcmljZSwgbGluZUVudHJpZXNbaWR4XSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdyb3VwQmFza2V0RW50cmllcyhyZWNpcGVzOiBSZWNpcGVbXSwgZW50cmllczogQmFza2V0RW50cnlbXSk6IExpbmVFbnRyaWVzW10ge1xuICAgIHJldHVybiByZWNpcGVzLm1hcChyZWNpcGUgPT4ge1xuICAgICAgY29uc3QgbGluZUVudHJpZXMgPSB7IGZvdW5kOiBbXSwgbm90Rm91bmQ6IFtdLCBvZnRlbkRlbGV0ZWQ6IFtdLCByZW1vdmVkOiBbXSB9IGFzIExpbmVFbnRyaWVzO1xuICAgICAgZW50cmllc1xuICAgICAgICAuZmlsdGVyKGVudHJ5ID0+IGVudHJ5LmF0dHJpYnV0ZXNbJ3JlY2lwZS1pZHMnXS5pbmNsdWRlcyhwYXJzZUludChyZWNpcGUuaWQsIDEwKSkpXG4gICAgICAgIC5mb3JFYWNoKGVudHJ5ID0+IHtcbiAgICAgICAgICBjb25zdCBhdmFpbGFibGUgPSBlbnRyeS5hdHRyaWJ1dGVzWydzZWxlY3RlZC1pdGVtLWlkJ107XG4gICAgICAgICAgaWYgKGF2YWlsYWJsZSkge1xuICAgICAgICAgICAgc3dpdGNoIChlbnRyeS5hdHRyaWJ1dGVzWydncm9jZXJpZXMtZW50cnktc3RhdHVzJ10pIHtcbiAgICAgICAgICAgICAgY2FzZSAnb2Z0ZW5fZGVsZXRlZCc6IHtcbiAgICAgICAgICAgICAgICBsaW5lRW50cmllcy5vZnRlbkRlbGV0ZWQucHVzaChlbnRyeSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY2FzZSAnZGVsZXRlZCc6IHtcbiAgICAgICAgICAgICAgICBsaW5lRW50cmllcy5yZW1vdmVkLnB1c2goZW50cnkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICBsaW5lRW50cmllcy5mb3VuZC5wdXNoKGVudHJ5KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaW5lRW50cmllcy5ub3RGb3VuZC5wdXNoKGVudHJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpbmVFbnRyaWVzO1xuICAgIH0pO1xuICB9XG59XG4iXX0=