ng-miam 6.4.13 → 7.0.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 (208) hide show
  1. package/bundles/ng-miam.umd.js +8539 -10855
  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/event-tracer.component.js +3 -2
  6. package/esm2015/lib/_components/accordion/accordion.component.js +75 -0
  7. package/esm2015/lib/_components/components.module.js +27 -21
  8. package/esm2015/lib/_components/counter-input/counter-input.component.js +86 -76
  9. package/esm2015/lib/_components/icon/icon.component.js +1 -1
  10. package/esm2015/lib/_components/index.js +5 -5
  11. package/esm2015/lib/_components/like-button/like-button.component.js +1 -1
  12. package/esm2015/lib/_components/list-input/list-input.component.js +5 -5
  13. package/esm2015/lib/_components/loader/loader.component.js +1 -1
  14. package/esm2015/lib/_components/meals-planner-link/meals-planner-link.component.js +3 -3
  15. package/esm2015/lib/_components/modal/modal.component.js +155 -137
  16. package/esm2015/lib/_components/product-card/product-card.component.js +333 -0
  17. package/esm2015/lib/_components/products-picker/products-picker.component.js +155 -0
  18. package/esm2015/lib/_components/progress-tracker/progress-tracker.component.js +1 -1
  19. package/esm2015/lib/_components/recipe-filters/recipe-filters.component.js +166 -217
  20. package/esm2015/lib/_components/recipe-pricing/recipe-pricing.component.js +55 -35
  21. package/esm2015/lib/_components/slider-tabs/slider-tabs.component.js +84 -0
  22. package/esm2015/lib/_components/sponsor-blocks/sponsor-image-and-text-block/sponsor-image-and-text-block.component.js +1 -1
  23. package/esm2015/lib/_components/sponsor-blocks/sponsor-text-and-image-block/sponsor-text-and-image-block.component.js +1 -1
  24. package/esm2015/lib/_components/tabs/tabs.component.js +48 -88
  25. package/esm2015/lib/_components/toaster/toaster.component.js +48 -84
  26. package/esm2015/lib/_components/tooltipable-content/tooltipable-content.component.js +1 -1
  27. package/esm2015/lib/_models/basket-entry.js +33 -49
  28. package/esm2015/lib/_models/basket-preview-line.js +5 -5
  29. package/esm2015/lib/_models/basket.js +15 -12
  30. package/esm2015/lib/_models/item.js +2 -2
  31. package/esm2015/lib/_models/recipe.js +2 -15
  32. package/esm2015/lib/_models/user.js +1 -1
  33. package/esm2015/lib/_services/analytics.service.js +24 -5
  34. package/esm2015/lib/_services/baskets-synchronizing/baskets-comparator.service.js +1 -10
  35. package/esm2015/lib/_services/baskets-synchronizing/baskets-synchronizer.service.js +15 -15
  36. package/esm2015/lib/_services/baskets.service.js +478 -60
  37. package/esm2015/lib/_services/context.service.js +22 -35
  38. package/esm2015/lib/_services/index.js +3 -5
  39. package/esm2015/lib/_services/interceptor.service.js +2 -2
  40. package/esm2015/lib/_services/items.service.js +27 -4
  41. package/esm2015/lib/_services/recipe-details.service.js +198 -0
  42. package/esm2015/lib/_services/recipe-likes.service.js +1 -1
  43. package/esm2015/lib/_services/recipes.service.js +24 -53
  44. package/esm2015/lib/_services/scrolling.service.js +17 -0
  45. package/esm2015/lib/_services/toaster.service.js +4 -5
  46. package/esm2015/lib/_services/user.service.js +2 -2
  47. package/esm2015/lib/_types/basket-action-type.enum.js +11 -0
  48. package/esm2015/lib/_types/basket-action.js +2 -0
  49. package/esm2015/lib/_types/basket-stats.js +2 -0
  50. package/esm2015/lib/_types/builded/miam-interface.js +1 -1
  51. package/esm2015/lib/_types/event-trace.js +5 -0
  52. package/esm2015/lib/_types/items-comparator.js +1 -10
  53. package/esm2015/lib/_types/recipe-filters.js +1 -1
  54. package/esm2015/lib/_types/toaster.js +1 -1
  55. package/esm2015/lib/_utils/directives/index.js +2 -1
  56. package/esm2015/lib/_utils/directives/reach-top.directive.js +33 -0
  57. package/esm2015/lib/_utils/pipes/readable-float-number/readable-float-number.pipe.js +8 -2
  58. package/esm2015/lib/_utils/utils.module.js +12 -8
  59. package/esm2015/lib/_web-components/basket-preview/basket-preview-block/basket-preview-block.component.js +140 -118
  60. package/esm2015/lib/_web-components/basket-preview/basket-preview-disabled/basket-preview-disabled.component.js +2 -2
  61. package/esm2015/lib/_web-components/basket-preview/basket-preview-line/basket-preview-line.component.js +125 -444
  62. package/esm2015/lib/_web-components/basket-preview/replace-item/replace-item.component.js +211 -108
  63. package/esm2015/lib/_web-components/index.js +1 -4
  64. package/esm2015/lib/_web-components/list-scan/basket-preview/basket-preview.component.js +11 -14
  65. package/esm2015/lib/_web-components/list-scan/files-inputs/files-inputs.component.js +13 -13
  66. package/esm2015/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.js +6 -6
  67. package/esm2015/lib/_web-components/list-scan/list-scan.component.js +10 -10
  68. package/esm2015/lib/_web-components/list-scan/overlay-button/overlay-button.component.js +23 -11
  69. package/esm2015/lib/_web-components/meals-planner/meals-planner-basket-confirmation/meals-planner-basket-confirmation.component.js +1 -1
  70. package/esm2015/lib/_web-components/meals-planner/meals-planner-catalog/meals-planner-catalog.component.js +1 -1
  71. package/esm2015/lib/_web-components/meals-planner/meals-planner-form/meals-planner-form.component.js +7 -7
  72. package/esm2015/lib/_web-components/meals-planner/meals-planner-result/meals-planner-result.component.js +5 -5
  73. package/esm2015/lib/_web-components/meals-planner/meals-planner.component.js +16 -20
  74. package/esm2015/lib/_web-components/planner-side-menu/planner-side-menu.component.js +4 -53
  75. package/esm2015/lib/_web-components/recipe-cards/add-recipe-card/add-recipe-card.component.js +1 -1
  76. package/esm2015/lib/_web-components/recipe-cards/index.js +1 -3
  77. package/esm2015/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.js +326 -404
  78. package/esm2015/lib/_web-components/recipe-cards/recipe-card-cta/recipe-card-cta.component.js +50 -146
  79. package/esm2015/lib/_web-components/recipe-cards/recipe-cards.module.js +3 -15
  80. package/esm2015/lib/_web-components/recipe-catalog/catalog-article-card/catalog-article-card.component.js +1 -1
  81. package/esm2015/lib/_web-components/recipe-catalog/catalog-category/catalog-category.component.js +35 -29
  82. package/esm2015/lib/_web-components/recipe-catalog/catalog-header/catalog-header.component.js +1 -1
  83. package/esm2015/lib/_web-components/recipe-catalog/catalog-list/catalog-list.component.js +27 -31
  84. package/esm2015/lib/_web-components/recipe-catalog/recipe-catalog.component.js +98 -100
  85. package/esm2015/lib/_web-components/recipe-creation/recipe-form/recipe-form.component.js +2 -2
  86. package/esm2015/lib/_web-components/recipe-creation/recipe-stepper/recipe-stepper.component.js +7 -7
  87. package/esm2015/lib/_web-components/recipe-creation/tags-creator/tags-creator.component.js +4 -4
  88. package/esm2015/lib/_web-components/recipe-creation/tags-selector/tags-selector.component.js +8 -8
  89. package/esm2015/lib/_web-components/recipe-details/recipe-addon/recipe-addon.component.js +7 -3
  90. package/esm2015/lib/_web-components/recipe-details/recipe-details-infos/recipe-details-infos.component.js +57 -358
  91. package/esm2015/lib/_web-components/recipe-details/recipe-details-ingredients/recipe-details-ingredients.component.js +59 -122
  92. package/esm2015/lib/_web-components/recipe-details/recipe-details-steps/recipe-details-steps.component.js +51 -72
  93. package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +313 -363
  94. package/esm2015/lib/_web-components/recipe-details/recipe-details.module.js +8 -4
  95. package/esm2015/lib/_web-components/recipe-details/sponsor-storytelling/sponsor-storytelling.component.js +1 -1
  96. package/esm2015/lib/_web-components/recipe-helper/recipe-helper.component.js +89 -113
  97. package/esm2015/lib/_web-components/recipe-modal/recipe-modal.component.js +78 -69
  98. package/esm2015/lib/_web-components/recipe-tags/recipe-tags.component.js +5 -5
  99. package/esm2015/lib/_web-components/toaster-stack/toaster-stack.component.js +8 -4
  100. package/esm2015/lib/_web-components/web-components.module.js +3 -19
  101. package/esm2015/lib/ng-miam.module.js +5 -7
  102. package/fesm2015/ng-miam.js +5165 -6973
  103. package/fesm2015/ng-miam.js.map +1 -1
  104. package/lib/_components/abstracts/event-tracer.component.d.ts +2 -1
  105. package/lib/_components/accordion/accordion.component.d.ts +23 -0
  106. package/lib/_components/components.module.d.ts +38 -36
  107. package/lib/_components/counter-input/counter-input.component.d.ts +12 -14
  108. package/lib/_components/index.d.ts +4 -4
  109. package/lib/_components/modal/modal.component.d.ts +18 -18
  110. package/lib/_components/product-card/product-card.component.d.ts +40 -0
  111. package/lib/_components/products-picker/products-picker.component.d.ts +17 -0
  112. package/lib/_components/recipe-pricing/recipe-pricing.component.d.ts +12 -8
  113. package/lib/_components/slider-tabs/slider-tabs.component.d.ts +16 -0
  114. package/lib/_components/tabs/tabs.component.d.ts +11 -11
  115. package/lib/_components/toaster/toaster.component.d.ts +4 -2
  116. package/lib/_models/basket-entry.d.ts +16 -20
  117. package/lib/_models/basket-preview-line.d.ts +1 -0
  118. package/lib/_models/basket.d.ts +12 -5
  119. package/lib/_models/item.d.ts +1 -1
  120. package/lib/_models/recipe.d.ts +0 -5
  121. package/lib/_models/user.d.ts +0 -1
  122. package/lib/_services/analytics.service.d.ts +8 -22
  123. package/lib/_services/baskets-synchronizing/baskets-comparator.service.d.ts +0 -5
  124. package/lib/_services/baskets-synchronizing/baskets-synchronizer.service.d.ts +3 -6
  125. package/lib/_services/baskets.service.d.ts +137 -18
  126. package/lib/_services/context.service.d.ts +2 -4
  127. package/lib/_services/index.d.ts +2 -4
  128. package/lib/_services/items.service.d.ts +9 -2
  129. package/lib/_services/recipe-details.service.d.ts +84 -0
  130. package/lib/_services/recipe-likes.service.d.ts +2 -1
  131. package/lib/_services/recipes.service.d.ts +10 -14
  132. package/lib/_services/scrolling.service.d.ts +8 -0
  133. package/lib/_services/toaster.service.d.ts +1 -1
  134. package/lib/_types/basket-action-type.enum.d.ts +9 -0
  135. package/lib/_types/basket-action.d.ts +14 -0
  136. package/lib/_types/basket-stats.d.ts +5 -0
  137. package/lib/_types/builded/miam-interface.d.ts +16 -25
  138. package/lib/_types/event-trace.d.ts +22 -0
  139. package/lib/_types/items-comparator.d.ts +0 -5
  140. package/lib/_types/recipe-filters.d.ts +0 -2
  141. package/lib/_types/toaster.d.ts +1 -1
  142. package/lib/_utils/directives/index.d.ts +1 -0
  143. package/lib/_utils/directives/reach-top.directive.d.ts +13 -0
  144. package/lib/_utils/pipes/readable-float-number/readable-float-number.pipe.d.ts +1 -1
  145. package/lib/_utils/utils.module.d.ts +2 -2
  146. package/lib/_web-components/basket-preview/basket-preview-block/basket-preview-block.component.d.ts +9 -8
  147. package/lib/_web-components/basket-preview/basket-preview-line/basket-preview-line.component.d.ts +11 -9
  148. package/lib/_web-components/basket-preview/replace-item/replace-item.component.d.ts +27 -20
  149. package/lib/_web-components/index.d.ts +0 -3
  150. package/lib/_web-components/list-scan/basket-preview/basket-preview.component.d.ts +1 -2
  151. package/lib/_web-components/list-scan/files-inputs/files-inputs.component.d.ts +6 -5
  152. package/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.d.ts +3 -3
  153. package/lib/_web-components/list-scan/list-scan.component.d.ts +3 -3
  154. package/lib/_web-components/list-scan/overlay-button/overlay-button.component.d.ts +8 -6
  155. package/lib/_web-components/meals-planner/meals-planner.component.d.ts +2 -3
  156. package/lib/_web-components/recipe-cards/index.d.ts +0 -2
  157. package/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.d.ts +58 -17
  158. package/lib/_web-components/recipe-cards/recipe-card-cta/recipe-card-cta.component.d.ts +5 -12
  159. package/lib/_web-components/recipe-cards/recipe-cards.module.d.ts +7 -9
  160. package/lib/_web-components/recipe-catalog/catalog-category/catalog-category.component.d.ts +8 -6
  161. package/lib/_web-components/recipe-catalog/catalog-list/catalog-list.component.d.ts +7 -4
  162. package/lib/_web-components/recipe-catalog/recipe-catalog.component.d.ts +2 -3
  163. package/lib/_web-components/recipe-details/recipe-addon/recipe-addon.component.d.ts +5 -2
  164. package/lib/_web-components/recipe-details/recipe-details-infos/recipe-details-infos.component.d.ts +6 -18
  165. package/lib/_web-components/recipe-details/recipe-details-ingredients/recipe-details-ingredients.component.d.ts +6 -13
  166. package/lib/_web-components/recipe-details/recipe-details-steps/recipe-details-steps.component.d.ts +2 -10
  167. package/lib/_web-components/recipe-details/recipe-details.component.d.ts +29 -36
  168. package/lib/_web-components/recipe-details/recipe-details.module.d.ts +2 -1
  169. package/lib/_web-components/recipe-helper/recipe-helper.component.d.ts +2 -6
  170. package/lib/_web-components/recipe-modal/recipe-modal.component.d.ts +11 -9
  171. package/lib/_web-components/toaster-stack/toaster-stack.component.d.ts +5 -2
  172. package/lib/_web-components/web-components.module.d.ts +23 -29
  173. package/miam-style.css +1 -1
  174. package/package.json +1 -1
  175. package/esm2015/lib/_components/abstracts/abstract-recipe-card.component.js +0 -130
  176. package/esm2015/lib/_components/skeleton/skeleton.component.js +0 -70
  177. package/esm2015/lib/_components/tabs/tab-body.component.js +0 -30
  178. package/esm2015/lib/_components/tabs/tab-item.component.js +0 -36
  179. package/esm2015/lib/_components/tabs/tab-label.component.js +0 -30
  180. package/esm2015/lib/_models/groceries-entry.js +0 -42
  181. package/esm2015/lib/_models/groceries-list.js +0 -36
  182. package/esm2015/lib/_services/counter.service.js +0 -20
  183. package/esm2015/lib/_services/groceries-entries.service.js +0 -21
  184. package/esm2015/lib/_services/groceries-lists.service.js +0 -240
  185. package/esm2015/lib/_services/recipe-events.service.js +0 -63
  186. package/esm2015/lib/_types/skeleton.enum.js +0 -7
  187. package/esm2015/lib/_web-components/drawer/drawer.component.js +0 -273
  188. package/esm2015/lib/_web-components/pos-card/pos-card.component.js +0 -207
  189. package/esm2015/lib/_web-components/pos-selection/pos-selection.component.js +0 -283
  190. package/esm2015/lib/_web-components/recipe-cards/catalog-recipe-card/catalog-recipe-card.component.js +0 -632
  191. package/esm2015/lib/_web-components/recipe-cards/suggestion-card/suggestion-card.component.js +0 -144
  192. package/lib/_components/abstracts/abstract-recipe-card.component.d.ts +0 -49
  193. package/lib/_components/skeleton/skeleton.component.d.ts +0 -11
  194. package/lib/_components/tabs/tab-body.component.d.ts +0 -8
  195. package/lib/_components/tabs/tab-item.component.d.ts +0 -11
  196. package/lib/_components/tabs/tab-label.component.d.ts +0 -8
  197. package/lib/_models/groceries-entry.d.ts +0 -20
  198. package/lib/_models/groceries-list.d.ts +0 -30
  199. package/lib/_services/counter.service.d.ts +0 -10
  200. package/lib/_services/groceries-entries.service.d.ts +0 -10
  201. package/lib/_services/groceries-lists.service.d.ts +0 -68
  202. package/lib/_services/recipe-events.service.d.ts +0 -23
  203. package/lib/_types/skeleton.enum.d.ts +0 -5
  204. package/lib/_web-components/drawer/drawer.component.d.ts +0 -37
  205. package/lib/_web-components/pos-card/pos-card.component.d.ts +0 -24
  206. package/lib/_web-components/pos-selection/pos-selection.component.d.ts +0 -38
  207. package/lib/_web-components/recipe-cards/catalog-recipe-card/catalog-recipe-card.component.d.ts +0 -49
  208. package/lib/_web-components/recipe-cards/suggestion-card/suggestion-card.component.d.ts +0 -42
@@ -1,9 +1,8 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewEncapsulation } from '@angular/core';
2
- import { combineLatest, of } from 'rxjs';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';
2
+ import { BehaviorSubject, combineLatest, of } from 'rxjs';
3
3
  import { map, skipWhile, switchMap, tap } from 'rxjs/operators';
4
- import { Recipe } from '../../_models';
5
4
  import { RecipePricing } from '../../_models/recipe-pricing';
6
- import { BasketsService, GroceriesListsService, PointOfSalesService, RecipesService, SuppliersService } from '../../_services';
5
+ import { BasketsService, PointOfSalesService, RecipesService, ScrollingService, SuppliersService } from '../../_services';
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "../../_services";
9
8
  import * as i2 from "@angular/common";
@@ -34,8 +33,8 @@ function RecipePricingComponent_div_0_div_10_Template(rf, ctx) { if (rf & 1) {
34
33
  i0.ɵɵproperty("ngIf", ctx_r1.guestsText !== "par-personne");
35
34
  } }
36
35
  function RecipePricingComponent_div_0_ng_template_11_Template(rf, ctx) { if (rf & 1) {
37
- i0.ɵɵelementStart(0, "div", 8);
38
- i0.ɵɵi18n(1, 11);
36
+ i0.ɵɵelementStart(0, "div", 11);
37
+ i0.ɵɵi18n(1, 12);
39
38
  i0.ɵɵelementEnd();
40
39
  } }
41
40
  function RecipePricingComponent_div_0_Template(rf, ctx) { if (rf & 1) {
@@ -79,34 +78,54 @@ function RecipePricingComponent_div_0_Template(rf, ctx) { if (rf & 1) {
79
78
  i0.ɵɵadvance(2);
80
79
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 7, ctx_r0.currency), " ");
81
80
  i0.ɵɵadvance(2);
82
- i0.ɵɵproperty("ngIf", ctx_r0.guestsText)("ngIfElse", _r2);
81
+ i0.ɵɵproperty("ngIf", ctx_r0.guestsText == null ? null : ctx_r0.guestsText.length)("ngIfElse", _r2);
83
82
  i0.ɵɵadvance(7);
84
83
  i0.ɵɵtextInterpolate(ctx_r0.total);
85
84
  i0.ɵɵadvance(2);
86
85
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(20, 9, ctx_r0.currency));
87
86
  } }
88
87
  export class RecipePricingComponent {
89
- constructor(recipesService, supplierService, posService, list, cdr, basketsService) {
88
+ constructor(recipesService, supplierService, posService, cdr, basketsService, element, scrollService) {
90
89
  this.recipesService = recipesService;
91
90
  this.supplierService = supplierService;
92
91
  this.posService = posService;
93
- this.list = list;
94
92
  this.cdr = cdr;
95
93
  this.basketsService = basketsService;
94
+ this.element = element;
95
+ this.scrollService = scrollService;
96
96
  this.loading = true;
97
97
  this.currency = this.supplierService.supplier$.pipe(skipWhile(supplier => supplier == null), map(supplier => supplier.currency));
98
98
  this.subscriptions = [];
99
+ this.guests$ = new BehaviorSubject(0);
100
+ this.isInView$ = new BehaviorSubject(false);
99
101
  }
100
102
  ngOnInit() {
101
- this.subscriptions.push(this.initPricing().subscribe());
103
+ this.subscriptions.push(this.initPricingFromBasketChanges().subscribe(), this.initPricingFromGuestsAndViewPort(), this.scrollService.scroll$.subscribe(() => {
104
+ if (this.isInViewport() && !this.isInView$.value) {
105
+ this.isInView$.next(this.isInViewport());
106
+ }
107
+ }));
108
+ this.isInView$.next(this.isInViewport());
102
109
  }
103
110
  ngOnChanges(changes) {
111
+ if (changes.serves) {
112
+ this.guests$.next(this.serves);
113
+ }
114
+ }
115
+ ngOnDestroy() {
116
+ this.subscriptions.forEach(s => s.unsubscribe());
117
+ if (this.onChangesSubscription) {
118
+ this.onChangesSubscription.unsubscribe();
119
+ }
120
+ }
121
+ initPricingFromGuestsAndViewPort() {
104
122
  // If the recipe is in basket, we ignore the change => pricing will be updated when the new basket preview is ready
105
123
  // After the shallow copy with events of the recipe, ngOnChanges is called again because the recipe object is different
106
124
  // So if changes contains only a recipe and no serves, we also avoid re-fetching
107
- this.list.recipeIsInList(this.recipe.id).subscribe(recipeIsInList => {
108
- if (!recipeIsInList && changes.serves) {
125
+ return combineLatest([this.basketsService.recipeIsInBasket(this.recipeId), this.isInView$, this.guests$]).subscribe(results => {
126
+ if (!results[0] && this.isInViewport()) {
109
127
  this.loading = true;
128
+ this.cdr.detectChanges();
110
129
  if (this.onChangesSubscription) {
111
130
  this.onChangesSubscription.unsubscribe();
112
131
  }
@@ -114,18 +133,14 @@ export class RecipePricingComponent {
114
133
  }
115
134
  });
116
135
  }
117
- ngOnDestroy() {
118
- this.subscriptions.forEach(s => s.unsubscribe());
119
- if (this.onChangesSubscription) {
120
- this.onChangesSubscription.unsubscribe();
121
- }
122
- }
123
136
  // Will execute every time the pos is changed or the basket preview is recalculated
124
- initPricing() {
125
- return combineLatest([this.posService.pos$, this.basketsService.basketPreview$, this.basketsService.basket$]).pipe(skipWhile(results => !results[0] || !results[1] || !results[2]), switchMap(results => {
137
+ initPricingFromBasketChanges() {
138
+ return combineLatest([
139
+ this.posService.pos$, this.basketsService.basketPreview$, this.basketsService.basket$, this.isInView$
140
+ ]).pipe(skipWhile(results => !results[0] || !results[1] || !results[2] || !results[3]), switchMap(results => {
126
141
  this.pos = results[0];
127
142
  this.pricebookKey = results[2].pricebookKey;
128
- const recipeLine = results[1].find(l => { var _a, _b, _c; return l.isRecipe && ((_a = l.id) === null || _a === void 0 ? void 0 : _a.toString()) === ((_c = (_b = this.recipe) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.toString()); });
143
+ const recipeLine = results[1].find(l => { var _a, _b; return l.isRecipe && ((_a = l.id) === null || _a === void 0 ? void 0 : _a.toString()) === ((_b = this.recipeId) === null || _b === void 0 ? void 0 : _b.toString()); });
129
144
  if (!!recipeLine) {
130
145
  // First, we check the basket preview : if it contains the recipe, we build the pricing from it
131
146
  return this.extractPricing(recipeLine);
@@ -142,10 +157,10 @@ export class RecipePricingComponent {
142
157
  }));
143
158
  }
144
159
  fetchPricing() {
145
- if (!this.recipe || !this.pos || !this.serves) {
160
+ if (!this.recipeId || !this.pos || !this.serves) {
146
161
  return of(null);
147
162
  }
148
- return this.recipesService.getPricing(this.recipe.id, this.pos.id, this.pricebookKey, this.serves).pipe(skipWhile(result => result.price === 0), tap((result) => {
163
+ return this.recipesService.getPricing(this.recipeId, this.pos.id, this.pricebookKey, this.serves).pipe(skipWhile(result => result.price === 0), tap((result) => {
149
164
  this.pricing = result;
150
165
  this.format();
151
166
  this.loading = false;
@@ -169,31 +184,36 @@ export class RecipePricingComponent {
169
184
  this.decimalPart = values.length === 2 ? values[1] : '00';
170
185
  this.total = this.pricing.price.toFixed(2);
171
186
  }
187
+ isInViewport() {
188
+ const rect = this.element.nativeElement.getBoundingClientRect();
189
+ return (rect.top >= 0 &&
190
+ rect.bottom <= (window.innerHeight || document.documentElement.clientHeight));
191
+ }
172
192
  }
173
- RecipePricingComponent.ɵfac = function RecipePricingComponent_Factory(t) { return new (t || RecipePricingComponent)(i0.ɵɵdirectiveInject(i1.RecipesService), i0.ɵɵdirectiveInject(i1.SuppliersService), i0.ɵɵdirectiveInject(i1.PointOfSalesService), i0.ɵɵdirectiveInject(i1.GroceriesListsService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.BasketsService)); };
174
- RecipePricingComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipePricingComponent, selectors: [["ng-miam-recipe-pricing"]], inputs: { recipe: "recipe", serves: "serves", guestsText: "guestsText" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: function () { var i18n_0; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
193
+ RecipePricingComponent.ɵfac = function RecipePricingComponent_Factory(t) { return new (t || RecipePricingComponent)(i0.ɵɵdirectiveInject(i1.RecipesService), i0.ɵɵdirectiveInject(i1.SuppliersService), i0.ɵɵdirectiveInject(i1.PointOfSalesService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.BasketsService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.ScrollingService)); };
194
+ RecipePricingComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipePricingComponent, selectors: [["ng-miam-recipe-pricing"]], inputs: { recipeId: "recipeId", serves: "serves", guestsText: "guestsText" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: function () { var i18n_0; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
175
195
  const MSG_EXTERNAL_8418532136889699301$$LIB__COMPONENTS_RECIPE_PRICING_RECIPE_PRICING_COMPONENT_TS__1 = goog.getMsg("Soit");
176
196
  i18n_0 = MSG_EXTERNAL_8418532136889699301$$LIB__COMPONENTS_RECIPE_PRICING_RECIPE_PRICING_COMPONENT_TS__1;
177
197
  }
178
198
  else {
179
199
  i18n_0 = $localize `:␟a46e2443e6b0e54d02427631e80b76a326ee6fb3␟8418532136889699301:Soit`;
180
200
  } var i18n_2; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
181
- const MSG_EXTERNAL_5657671347285939095$$LIB__COMPONENTS_RECIPE_PRICING_RECIPE_PRICING_COMPONENT_TS____3 = goog.getMsg("par personne");
182
- i18n_2 = MSG_EXTERNAL_5657671347285939095$$LIB__COMPONENTS_RECIPE_PRICING_RECIPE_PRICING_COMPONENT_TS____3;
201
+ const MSG_EXTERNAL_435913562251126057$$LIB__COMPONENTS_RECIPE_PRICING_RECIPE_PRICING_COMPONENT_TS____3 = goog.getMsg("/personne");
202
+ i18n_2 = MSG_EXTERNAL_435913562251126057$$LIB__COMPONENTS_RECIPE_PRICING_RECIPE_PRICING_COMPONENT_TS____3;
183
203
  }
184
204
  else {
185
- i18n_2 = $localize `:␟c4f618e037c63635845c6a72efa23f359ae59f265657671347285939095:par personne`;
205
+ i18n_2 = $localize `:␟a42043c93efe6e7c1206218147891026d3496f33435913562251126057:/personne`;
186
206
  } var i18n_4; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
187
- const MSG_EXTERNAL_3609428164226989899$$LIB__COMPONENTS_RECIPE_PRICING_RECIPE_PRICING_COMPONENT_TS___5 = goog.getMsg("par pers.");
188
- i18n_4 = MSG_EXTERNAL_3609428164226989899$$LIB__COMPONENTS_RECIPE_PRICING_RECIPE_PRICING_COMPONENT_TS___5;
207
+ const MSG_EXTERNAL_8969810584578915685$$LIB__COMPONENTS_RECIPE_PRICING_RECIPE_PRICING_COMPONENT_TS___5 = goog.getMsg("/pers.");
208
+ i18n_4 = MSG_EXTERNAL_8969810584578915685$$LIB__COMPONENTS_RECIPE_PRICING_RECIPE_PRICING_COMPONENT_TS___5;
189
209
  }
190
210
  else {
191
- i18n_4 = $localize `:␟5f3d908eb9e18ed6e7d5647d4483cb32ec9f28f23609428164226989899:par pers.`;
192
- } return [["class", "miam-recipe-pricing", 4, "ngIf"], [1, "miam-recipe-pricing"], [1, "miam-recipe-pricing__wrapper"], [1, "miam-recipe-pricing__wrapper__price"], ["class", "miam-recipe-pricing__wrapper__subline", 4, "ngIf", "ngIfElse"], ["defaultGuestsText", ""], [1, "miam-recipe-pricing__total"], i18n_0, [1, "miam-recipe-pricing__wrapper__subline"], [4, "ngIf"], i18n_2, i18n_4]; }, template: function RecipePricingComponent_Template(rf, ctx) { if (rf & 1) {
211
+ i18n_4 = $localize `:␟d1284fc0cb4f023efce4ec7e899c9ae8ab78d0d38969810584578915685:/pers.`;
212
+ } return [["class", "miam-recipe-pricing", 4, "ngIf"], [1, "miam-recipe-pricing"], [1, "miam-recipe-pricing__wrapper"], [1, "miam-recipe-pricing__wrapper__price", "miam-ds-text", "size-l", "weight-xxl"], ["class", "miam-recipe-pricing__wrapper__subline miam-ds-text size-xs weight-m", 4, "ngIf", "ngIfElse"], ["defaultGuestsText", ""], [1, "miam-recipe-pricing__total"], i18n_0, [1, "miam-recipe-pricing__wrapper__subline", "miam-ds-text", "size-xs", "weight-m"], [4, "ngIf"], i18n_2, [1, "miam-recipe-pricing__wrapper__subline", "miam-ds-text", "size-m", "weight-m"], i18n_4]; }, template: function RecipePricingComponent_Template(rf, ctx) { if (rf & 1) {
193
213
  i0.ɵɵtemplate(0, RecipePricingComponent_div_0_Template, 21, 11, "div", 0);
194
214
  } if (rf & 2) {
195
215
  i0.ɵɵproperty("ngIf", !ctx.loading);
196
- } }, directives: [i2.NgIf], pipes: [i2.AsyncPipe], styles: [".miam-recipe-pricing,.miam-recipe-pricing .miam-recipe-pricing__wrapper{align-items:center;display:flex;flex-direction:column}.miam-recipe-pricing .miam-recipe-pricing__wrapper .miam-recipe-pricing__wrapper__price{font-size:18px;font-weight:700}.miam-recipe-pricing .miam-recipe-pricing__wrapper .miam-recipe-pricing__wrapper__subline{color:grey;font-size:12px}.miam-recipe-pricing .miam-recipe-pricing__total{color:var(--m-color-grey04);display:none;font-size:12px;font-weight:400;line-height:16px}.miam-recipe-pricing .miam-recipe-pricing__total span{margin-right:4px}"], encapsulation: 2, changeDetection: 0 });
216
+ } }, directives: [i2.NgIf], pipes: [i2.AsyncPipe], styles: [".miam-recipe-pricing{align-items:center;display:flex;flex-direction:column}.miam-recipe-pricing .miam-recipe-pricing__wrapper{align-items:flex-start;display:flex;flex-flow:row wrap}.miam-recipe-pricing .miam-recipe-pricing__wrapper .miam-recipe-pricing__wrapper__price{color:var(--miam-ds-color-primary,#24748f)}.miam-recipe-pricing .miam-recipe-pricing__wrapper .miam-recipe-pricing__wrapper__subline{color:var(--miam-ds-color-neutral-400)}.miam-recipe-pricing .miam-recipe-pricing__total{color:var(--m-color-grey04);display:none;font-size:12px;font-weight:400;line-height:16px}.miam-recipe-pricing .miam-recipe-pricing__total span{margin-right:4px}"], encapsulation: 2, changeDetection: 0 });
197
217
  /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(RecipePricingComponent, [{
198
218
  type: Component,
199
219
  args: [{
@@ -203,11 +223,11 @@ RecipePricingComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipePricingCompo
203
223
  encapsulation: ViewEncapsulation.None,
204
224
  changeDetection: ChangeDetectionStrategy.OnPush
205
225
  }]
206
- }], function () { return [{ type: i1.RecipesService }, { type: i1.SuppliersService }, { type: i1.PointOfSalesService }, { type: i1.GroceriesListsService }, { type: i0.ChangeDetectorRef }, { type: i1.BasketsService }]; }, { recipe: [{
226
+ }], function () { return [{ type: i1.RecipesService }, { type: i1.SuppliersService }, { type: i1.PointOfSalesService }, { type: i0.ChangeDetectorRef }, { type: i1.BasketsService }, { type: i0.ElementRef }, { type: i1.ScrollingService }]; }, { recipeId: [{
207
227
  type: Input
208
228
  }], serves: [{
209
229
  type: Input
210
230
  }], guestsText: [{
211
231
  type: Input
212
232
  }] }); })();
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLXByaWNpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fY29tcG9uZW50cy9yZWNpcGUtcHJpY2luZy9yZWNpcGUtcHJpY2luZy5jb21wb25lbnQudHMiLCJsaWIvX2NvbXBvbmVudHMvcmVjaXBlLXByaWNpbmcvcmVjaXBlLXByaWNpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQ25FLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFrQyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0lDRXpILDRCQUFpRDtJQUFqRCxnQkFBaUQ7SUFBWSxpQkFBTzs7O0lBQ3BFLDRCQUE0QztJQUFBLFlBQWdCO0lBQUEsaUJBQU87OztJQUF2QixlQUFnQjtJQUFoQix1Q0FBZ0I7OztJQUY5RCw4QkFDRTtJQUFBLHNGQUFpRDtJQUNqRCxzRkFBNEM7SUFDOUMsaUJBQU07OztJQUZFLGVBQXFDO0lBQXJDLDJEQUFxQztJQUNyQyxlQUFxQztJQUFyQywyREFBcUM7OztJQUczQyw4QkFBd0Q7SUFBeEQsZ0JBQXdEO0lBQVMsaUJB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QztJQUVPLE1BQU07UUFDWixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzFELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7OzRGQWpIVSxzQkFBc0I7MkRBQXRCLHNCQUFzQjs7Ozs7aUJDQ3BCLFVBQUEscUVBQUk7Ozs7OztpQkFSb0MsVUFBQSw2RUFBWTs7Ozs7O2lCQUlMLFVBQUEsMEVBQVM7O1FBWnZFLHlFQUNFOztRQUQrQixtQ0FBZ0I7O2tERGVwQyxzQkFBc0I7Y0FQbEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLFdBQVcsRUFBRSxpQ0FBaUM7Z0JBQzlDLFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO2dCQUM5QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7bU9BRVUsTUFBTTtrQkFBZCxLQUFLO1lBQ0csTUFBTTtrQkFBZCxLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhc2tldFByZXZpZXdMaW5lLCBQb2ludE9mU2FsZSwgUmVjaXBlIH0gZnJvbSAnLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBSZWNpcGVQcmljaW5nIH0gZnJvbSAnLi4vLi4vX21vZGVscy9yZWNpcGUtcHJpY2luZyc7XG5pbXBvcnQgeyBCYXNrZXRzU2VydmljZSwgR3JvY2VyaWVzTGlzdHNTZXJ2aWNlLCBQb2ludE9mU2FsZXNTZXJ2aWNlLCBSZWNpcGVzU2VydmljZSwgU3VwcGxpZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tcmVjaXBlLXByaWNpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjaXBlLXByaWNpbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNpcGUtcHJpY2luZy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSZWNpcGVQcmljaW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHJlY2lwZTogUmVjaXBlO1xuICBASW5wdXQoKSBzZXJ2ZXM6IG51bWJlcjtcbiAgQElucHV0KCkgZ3Vlc3RzVGV4dDtcbiAgcHJpY2luZzogUmVjaXBlUHJpY2luZztcbiAgbG9hZGluZyA9IHRydWU7XG4gIGludGVnZXJQYXJ0OiBzdHJpbmc7XG4gIGRlY2ltYWxQYXJ0OiBzdHJpbmc7XG4gIHRvdGFsOiBzdHJpbmc7XG4gIGN1cnJlbmN5ID0gdGhpcy5zdXBwbGllclNlcnZpY2Uuc3VwcGxpZXIkLnBpcGUoXG4gICAgc2tpcFdoaWxlKCBzdXBwbGllciA9PiBzdXBwbGllciA9PSBudWxsKSxcbiAgICBtYXAoc3VwcGxpZXIgPT4gc3VwcGxpZXIuY3VycmVuY3kpXG4gICk7XG5cblxuICBwcml2YXRlIHBvczogUG9pbnRPZlNhbGU7XG4gIHByaXZhdGUgcHJpY2Vib29rS2V5OiBzdHJpbmc7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBvbkNoYW5nZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIHN1cHBsaWVyU2VydmljZTogU3VwcGxpZXJzU2VydmljZSxcbiAgICBwcml2YXRlIHBvc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsaXN0OiBHcm9jZXJpZXNMaXN0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgYmFza2V0c1NlcnZpY2U6IEJhc2tldHNTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmluaXRQcmljaW5nKCkuc3Vic2NyaWJlKClcbiAgICApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIElmIHRoZSByZWNpcGUgaXMgaW4gYmFza2V0LCB3ZSBpZ25vcmUgdGhlIGNoYW5nZSA9PiBwcmljaW5nIHdpbGwgYmUgdXBkYXRlZCB3aGVuIHRoZSBuZXcgYmFza2V0IHByZXZpZXcgaXMgcmVhZHlcbiAgICAvLyBBZnRlciB0aGUgc2hhbGxvdyBjb3B5IHdpdGggZXZlbnRzIG9mIHRoZSByZWNpcGUsIG5nT25DaGFuZ2VzIGlzIGNhbGxlZCBhZ2FpbiBiZWNhdXNlIHRoZSByZWNpcGUgb2JqZWN0IGlzIGRpZmZlcmVudFxuICAgIC8vIFNvIGlmIGNoYW5nZXMgY29udGFpbnMgb25seSBhIHJlY2lwZSBhbmQgbm8gc2VydmVzLCB3ZSBhbHNvIGF2b2lkIHJlLWZldGNoaW5nXG4gICAgdGhpcy5saXN0LnJlY2lwZUlzSW5MaXN0KHRoaXMucmVjaXBlLmlkKS5zdWJzY3JpYmUocmVjaXBlSXNJbkxpc3QgPT4ge1xuICAgICAgaWYgKCFyZWNpcGVJc0luTGlzdCAmJiBjaGFuZ2VzLnNlcnZlcykge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5vbkNoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25DaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5mZXRjaFByaWNpbmcoKS5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICBpZiAodGhpcy5vbkNoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMub25DaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gV2lsbCBleGVjdXRlIGV2ZXJ5IHRpbWUgdGhlIHBvcyBpcyBjaGFuZ2VkIG9yIHRoZSBiYXNrZXQgcHJldmlldyBpcyByZWNhbGN1bGF0ZWRcbiAgcHJpdmF0ZSBpbml0UHJpY2luZygpOiBPYnNlcnZhYmxlPFJlY2lwZVByaWNpbmc+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5wb3NTZXJ2aWNlLnBvcyQsIHRoaXMuYmFza2V0c1NlcnZpY2UuYmFza2V0UHJldmlldyQsIHRoaXMuYmFza2V0c1NlcnZpY2UuYmFza2V0JF0pLnBpcGUoXG4gICAgICBza2lwV2hpbGUocmVzdWx0cyA9PiAhcmVzdWx0c1swXSB8fCAhcmVzdWx0c1sxXSB8fCAhcmVzdWx0c1syXSksXG4gICAgICBzd2l0Y2hNYXAocmVzdWx0cyA9PiB7XG4gICAgICAgIHRoaXMucG9zID0gcmVzdWx0c1swXTtcbiAgICAgICAgdGhpcy5wcmljZWJvb2tLZXkgPSByZXN1bHRzWzJdLnByaWNlYm9va0tleTtcbiAgICAgICAgY29uc3QgcmVjaXBlTGluZSA9IHJlc3VsdHNbMV0uZmluZChsID0+IGwuaXNSZWNpcGUgJiYgbC5pZD8udG9TdHJpbmcoKSA9PT0gdGhpcy5yZWNpcGU/LmlkPy50b1N0cmluZygpKTtcbiAgICAgICAgaWYgKCEhcmVjaXBlTGluZSkge1xuICAgICAgICAgIC8vIEZpcnN0LCB3ZSBjaGVjayB0aGUgYmFza2V0IHByZXZpZXcgOiBpZiBpdCBjb250YWlucyB0aGUgcmVjaXBlLCB3ZSBidWlsZCB0aGUgcHJpY2luZyBmcm9tIGl0XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdFByaWNpbmcocmVjaXBlTGluZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSWYgd2UgYWxyZWFkeSBoYXZlIGEgcHJpY2luZywgcmV0dXJuIGl0LCBubyByZWFzb24gdG8gcmUtZmV0Y2ggaXRcbiAgICAgICAgICBpZiAodGhpcy5wcmljaW5nKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1hdCgpO1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMucHJpY2luZyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIE90aGVyd2lzZSwgd2UgZmV0Y2ggdGhlIHJlY2lwZSBwcmljaW5nIGZyb20gdGhlIEFQSVxuICAgICAgICAgIHJldHVybiB0aGlzLmZldGNoUHJpY2luZygpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoUHJpY2luZygpOiBPYnNlcnZhYmxlPFJlY2lwZVByaWNpbmc+IHtcbiAgICBpZiAoIXRoaXMucmVjaXBlIHx8ICF0aGlzLnBvcyB8fCAhdGhpcy5zZXJ2ZXMpIHtcbiAgICAgIHJldHVybiAob2YobnVsbCkgYXMgT2JzZXJ2YWJsZTxSZWNpcGVQcmljaW5nPik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmdldFByaWNpbmcodGhpcy5yZWNpcGUuaWQsIHRoaXMucG9zLmlkLCB0aGlzLnByaWNlYm9va0tleSwgdGhpcy5zZXJ2ZXMpLnBpcGUoXG4gICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5wcmljZSA9PT0gMCksXG4gICAgICB0YXAoKHJlc3VsdDogUmVjaXBlUHJpY2luZykgPT4ge1xuICAgICAgICB0aGlzLnByaWNpbmcgPSByZXN1bHQ7XG4gICAgICAgIHRoaXMuZm9ybWF0KCk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RQcmljaW5nKHJlY2lwZUxpbmU6IEJhc2tldFByZXZpZXdMaW5lKTogT2JzZXJ2YWJsZTxSZWNpcGVQcmljaW5nPiB7XG4gICAgdGhpcy5wcmljaW5nID0gbmV3IFJlY2lwZVByaWNpbmcoe1xuICAgICAgcHJpY2U6IHBhcnNlRmxvYXQocmVjaXBlTGluZS5wcmljZSksXG4gICAgICBzZXJ2ZXM6IHJlY2lwZUxpbmUuY291bnQsXG4gICAgICBwcmljZV9wZXJfc2VydmU6IHBhcnNlRmxvYXQocmVjaXBlTGluZS5wcmljZSkgLyByZWNpcGVMaW5lLmNvdW50XG4gICAgfSk7XG4gICAgdGhpcy5mb3JtYXQoKTtcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcmV0dXJuIG9mKHRoaXMucHJpY2luZyk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdCgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnByaWNpbmcucHJpY2VfcGVyX3NlcnZlLnRvRml4ZWQoMikudG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICAgIHRoaXMuaW50ZWdlclBhcnQgPSB2YWx1ZXNbMF07XG4gICAgdGhpcy5kZWNpbWFsUGFydCA9IHZhbHVlcy5sZW5ndGggPT09IDIgPyB2YWx1ZXNbMV0gOiAnMDAnO1xuICAgIHRoaXMudG90YWwgPSB0aGlzLnByaWNpbmcucHJpY2UudG9GaXhlZCgyKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtcHJpY2luZ1wiICpuZ0lmPVwiIWxvYWRpbmdcIj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXByaWNpbmdfX3dyYXBwZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtcHJpY2luZ19fd3JhcHBlcl9fcHJpY2VcIj5cbiAgICAgIDxzcGFuPnt7IGludGVnZXJQYXJ0IH19LDwvc3Bhbj5cbiAgICAgIDxzcGFuPnt7IGRlY2ltYWxQYXJ0IH19PC9zcGFuPlxuICAgICAgPHNwYW4+IHt7Y3VycmVuY3kgfCBhc3luYyB9fSA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXByaWNpbmdfX3dyYXBwZXJfX3N1YmxpbmVcIiAqbmdJZj1cImd1ZXN0c1RleHQgZWxzZSBkZWZhdWx0R3Vlc3RzVGV4dFwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCJndWVzdHNUZXh0ID09PSAncGFyLXBlcnNvbm5lJ1wiIGkxOG4+cGFyIHBlcnNvbm5lPC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJndWVzdHNUZXh0ICE9PSAncGFyLXBlcnNvbm5lJ1wiPnt7IGd1ZXN0c1RleHQgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0R3Vlc3RzVGV4dD5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1wcmljaW5nX193cmFwcGVyX19zdWJsaW5lXCIgaTE4bj5wYXIgcGVycy48L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXByaWNpbmdfX3RvdGFsXCI+XG4gICAgPHNwYW4gaTE4bj5Tb2l0PC9zcGFuPlxuICAgIDxzcGFuPnt7IHRvdGFsIH19PC9zcGFuPlxuICAgIDxzcGFuPnt7Y3VycmVuY3kgfCBhc3luYyB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLXByaWNpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fY29tcG9uZW50cy9yZWNpcGUtcHJpY2luZy9yZWNpcGUtcHJpY2luZy5jb21wb25lbnQudHMiLCJsaWIvX2NvbXBvbmVudHMvcmVjaXBlLXByaWNpbmcvcmVjaXBlLXByaWNpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUMvRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7SUNHcEgsNEJBQWlEO0lBQWpELGdCQUFpRDtJQUFTLGlCQUFPOzs7SUFDakUsNEJBQTRDO0lBQUEsWUFBZ0I7SUFBQSxpQkFBTzs7O0lBQXZCLGVBQWdCO0lBQWhCLHVDQUFnQjs7O0lBSDlELDhCQUVFO0lBQUEsc0ZBQWlEO0lBQ2pELHNGQUE0QztJQUM5QyxpQkFBTTs7O0lBRkUsZUFBcUM7SUFBckMsMkRBQXFDO0lBQ3JDLGVBQXFDO0lBQXJDLDJEQUFxQzs7O0lBRzNDLCtCQUFxRjtJQUFyRixnQkFBcUY7SUFBTSxpQkFBTTs7O0lBYnZHLDhCQUNFO0lBQUEs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QU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMxRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sWUFBWTtRQUNsQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2hFLE9BQU8sQ0FDTCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDYixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUM3RSxDQUFDO0lBQ0osQ0FBQzs7NEZBNUlVLHNCQUFzQjsyREFBdEIsc0JBQXNCOzs7OztpQkNFcEIsVUFBQSxxRUFBSTs7Ozs7O2lCQVJvQyxVQUFBLHlFQUFTOzs7Ozs7aUJBSTJCLFVBQUEsdUVBQU07O1FBYmpHLHlFQUNFOztRQUQrQixtQ0FBZ0I7O2tERGVwQyxzQkFBc0I7Y0FQbEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLFdBQVcsRUFBRSxpQ0FBaUM7Z0JBQzlDLFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO2dCQUM5QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7dVBBRVUsUUFBUTtrQkFBaEIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUNHLFVBQVU7a0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhc2tldFByZXZpZXdMaW5lLCBQb2ludE9mU2FsZSB9IGZyb20gJy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgUmVjaXBlUHJpY2luZyB9IGZyb20gJy4uLy4uL19tb2RlbHMvcmVjaXBlLXByaWNpbmcnO1xuaW1wb3J0IHsgQmFza2V0c1NlcnZpY2UsIFBvaW50T2ZTYWxlc1NlcnZpY2UsIFJlY2lwZXNTZXJ2aWNlLCBTY3JvbGxpbmdTZXJ2aWNlLCBTdXBwbGllcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtcHJpY2luZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtcHJpY2luZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1wcmljaW5nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlY2lwZVByaWNpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcmVjaXBlSWQ6IHN0cmluZztcbiAgQElucHV0KCkgc2VydmVzOiBudW1iZXI7XG4gIEBJbnB1dCgpIGd1ZXN0c1RleHQ7XG4gIHByaWNpbmc6IFJlY2lwZVByaWNpbmc7XG4gIGxvYWRpbmcgPSB0cnVlO1xuICBpbnRlZ2VyUGFydDogc3RyaW5nO1xuICBkZWNpbWFsUGFydDogc3RyaW5nO1xuICB0b3RhbDogc3RyaW5nO1xuICBjdXJyZW5jeSA9IHRoaXMuc3VwcGxpZXJTZXJ2aWNlLnN1cHBsaWVyJC5waXBlKFxuICAgIHNraXBXaGlsZSggc3VwcGxpZXIgPT4gc3VwcGxpZXIgPT0gbnVsbCksXG4gICAgbWFwKHN1cHBsaWVyID0+IHN1cHBsaWVyLmN1cnJlbmN5KVxuICApO1xuXG5cbiAgcHJpdmF0ZSBwb3M6IFBvaW50T2ZTYWxlO1xuICBwcml2YXRlIHByaWNlYm9va0tleTogc3RyaW5nO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgb25DaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZ3Vlc3RzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHJpdmF0ZSBpc0luVmlldyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIHN1cHBsaWVyU2VydmljZTogU3VwcGxpZXJzU2VydmljZSxcbiAgICBwcml2YXRlIHBvc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgYmFza2V0c1NlcnZpY2U6IEJhc2tldHNTZXJ2aWNlLFxuICAgIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIHNjcm9sbFNlcnZpY2U6IFNjcm9sbGluZ1NlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuaW5pdFByaWNpbmdGcm9tQmFza2V0Q2hhbmdlcygpLnN1YnNjcmliZSgpLFxuICAgICAgdGhpcy5pbml0UHJpY2luZ0Zyb21HdWVzdHNBbmRWaWV3UG9ydCgpLFxuICAgICAgdGhpcy5zY3JvbGxTZXJ2aWNlLnNjcm9sbCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNJblZpZXdwb3J0KCkgJiYgIXRoaXMuaXNJblZpZXckLnZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5pc0luVmlldyQubmV4dCh0aGlzLmlzSW5WaWV3cG9ydCgpKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuaXNJblZpZXckLm5leHQodGhpcy5pc0luVmlld3BvcnQoKSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuc2VydmVzKSB7XG4gICAgICB0aGlzLmd1ZXN0cyQubmV4dCh0aGlzLnNlcnZlcyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgIGlmICh0aGlzLm9uQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5vbkNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRQcmljaW5nRnJvbUd1ZXN0c0FuZFZpZXdQb3J0KCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgLy8gSWYgdGhlIHJlY2lwZSBpcyBpbiBiYXNrZXQsIHdlIGlnbm9yZSB0aGUgY2hhbmdlID0+IHByaWNpbmcgd2lsbCBiZSB1cGRhdGVkIHdoZW4gdGhlIG5ldyBiYXNrZXQgcHJldmlldyBpcyByZWFkeVxuICAgIC8vIEFmdGVyIHRoZSBzaGFsbG93IGNvcHkgd2l0aCBldmVudHMgb2YgdGhlIHJlY2lwZSwgbmdPbkNoYW5nZXMgaXMgY2FsbGVkIGFnYWluIGJlY2F1c2UgdGhlIHJlY2lwZSBvYmplY3QgaXMgZGlmZmVyZW50XG4gICAgLy8gU28gaWYgY2hhbmdlcyBjb250YWlucyBvbmx5IGEgcmVjaXBlIGFuZCBubyBzZXJ2ZXMsIHdlIGFsc28gYXZvaWQgcmUtZmV0Y2hpbmdcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVJc0luQmFza2V0KHRoaXMucmVjaXBlSWQpLCB0aGlzLmlzSW5WaWV3JCwgdGhpcy5ndWVzdHMkXSkuc3Vic2NyaWJlKHJlc3VsdHMgPT4ge1xuICAgICAgaWYgKCFyZXN1bHRzWzBdICYmIHRoaXMuaXNJblZpZXdwb3J0KCkpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBpZiAodGhpcy5vbkNoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25DaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5mZXRjaFByaWNpbmcoKS5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIFdpbGwgZXhlY3V0ZSBldmVyeSB0aW1lIHRoZSBwb3MgaXMgY2hhbmdlZCBvciB0aGUgYmFza2V0IHByZXZpZXcgaXMgcmVjYWxjdWxhdGVkXG4gIHByaXZhdGUgaW5pdFByaWNpbmdGcm9tQmFza2V0Q2hhbmdlcygpOiBPYnNlcnZhYmxlPFJlY2lwZVByaWNpbmc+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnBvc1NlcnZpY2UucG9zJCwgdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRQcmV2aWV3JCwgdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXQkLCB0aGlzLmlzSW5WaWV3JFxuICAgIF0pLnBpcGUoXG4gICAgICBza2lwV2hpbGUocmVzdWx0cyA9PiAhcmVzdWx0c1swXSB8fCAhcmVzdWx0c1sxXSB8fCAhcmVzdWx0c1syXSB8fCAhcmVzdWx0c1szXSksXG4gICAgICBzd2l0Y2hNYXAocmVzdWx0cyA9PiB7XG4gICAgICAgIHRoaXMucG9zID0gcmVzdWx0c1swXTtcbiAgICAgICAgdGhpcy5wcmljZWJvb2tLZXkgPSByZXN1bHRzWzJdLnByaWNlYm9va0tleTtcbiAgICAgICAgY29uc3QgcmVjaXBlTGluZSA9IHJlc3VsdHNbMV0uZmluZChsID0+IGwuaXNSZWNpcGUgJiYgbC5pZD8udG9TdHJpbmcoKSA9PT0gdGhpcy5yZWNpcGVJZD8udG9TdHJpbmcoKSk7XG4gICAgICAgIGlmICghIXJlY2lwZUxpbmUpIHtcbiAgICAgICAgICAvLyBGaXJzdCwgd2UgY2hlY2sgdGhlIGJhc2tldCBwcmV2aWV3IDogaWYgaXQgY29udGFpbnMgdGhlIHJlY2lwZSwgd2UgYnVpbGQgdGhlIHByaWNpbmcgZnJvbSBpdFxuICAgICAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RQcmljaW5nKHJlY2lwZUxpbmUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIHdlIGFscmVhZHkgaGF2ZSBhIHByaWNpbmcsIHJldHVybiBpdCwgbm8gcmVhc29uIHRvIHJlLWZldGNoIGl0XG4gICAgICAgICAgaWYgKHRoaXMucHJpY2luZykge1xuICAgICAgICAgICAgdGhpcy5mb3JtYXQoKTtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLnByaWNpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBPdGhlcndpc2UsIHdlIGZldGNoIHRoZSByZWNpcGUgcHJpY2luZyBmcm9tIHRoZSBBUElcbiAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFByaWNpbmcoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaFByaWNpbmcoKTogT2JzZXJ2YWJsZTxSZWNpcGVQcmljaW5nPiB7XG4gICAgaWYgKCF0aGlzLnJlY2lwZUlkIHx8ICF0aGlzLnBvcyB8fCAhdGhpcy5zZXJ2ZXMpIHtcbiAgICAgIHJldHVybiAob2YobnVsbCkgYXMgT2JzZXJ2YWJsZTxSZWNpcGVQcmljaW5nPik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmdldFByaWNpbmcodGhpcy5yZWNpcGVJZCwgdGhpcy5wb3MuaWQsIHRoaXMucHJpY2Vib29rS2V5LCB0aGlzLnNlcnZlcykucGlwZShcbiAgICAgIHNraXBXaGlsZShyZXN1bHQgPT4gcmVzdWx0LnByaWNlID09PSAwKSxcbiAgICAgIHRhcCgocmVzdWx0OiBSZWNpcGVQcmljaW5nKSA9PiB7XG4gICAgICAgIHRoaXMucHJpY2luZyA9IHJlc3VsdDtcbiAgICAgICAgdGhpcy5mb3JtYXQoKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdFByaWNpbmcocmVjaXBlTGluZTogQmFza2V0UHJldmlld0xpbmUpOiBPYnNlcnZhYmxlPFJlY2lwZVByaWNpbmc+IHtcbiAgICB0aGlzLnByaWNpbmcgPSBuZXcgUmVjaXBlUHJpY2luZyh7XG4gICAgICBwcmljZTogcGFyc2VGbG9hdChyZWNpcGVMaW5lLnByaWNlKSxcbiAgICAgIHNlcnZlczogcmVjaXBlTGluZS5jb3VudCxcbiAgICAgIHByaWNlX3Blcl9zZXJ2ZTogcGFyc2VGbG9hdChyZWNpcGVMaW5lLnByaWNlKSAvIHJlY2lwZUxpbmUuY291bnRcbiAgICB9KTtcbiAgICB0aGlzLmZvcm1hdCgpO1xuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICByZXR1cm4gb2YodGhpcy5wcmljaW5nKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0KCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMucHJpY2luZy5wcmljZV9wZXJfc2VydmUudG9GaXhlZCgyKS50b1N0cmluZygpLnNwbGl0KCcuJyk7XG4gICAgdGhpcy5pbnRlZ2VyUGFydCA9IHZhbHVlc1swXTtcbiAgICB0aGlzLmRlY2ltYWxQYXJ0ID0gdmFsdWVzLmxlbmd0aCA9PT0gMiA/IHZhbHVlc1sxXSA6ICcwMCc7XG4gICAgdGhpcy50b3RhbCA9IHRoaXMucHJpY2luZy5wcmljZS50b0ZpeGVkKDIpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0luVmlld3BvcnQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHJldHVybiAoXG4gICAgICByZWN0LnRvcCA+PSAwICYmXG4gICAgICByZWN0LmJvdHRvbSA8PSAod2luZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXByaWNpbmdcIiAqbmdJZj1cIiFsb2FkaW5nXCI+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1wcmljaW5nX193cmFwcGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXByaWNpbmdfX3dyYXBwZXJfX3ByaWNlIG1pYW0tZHMtdGV4dCBzaXplLWwgd2VpZ2h0LXh4bFwiPlxuICAgICAgPHNwYW4+e3sgaW50ZWdlclBhcnQgfX0sPC9zcGFuPlxuICAgICAgPHNwYW4+e3sgZGVjaW1hbFBhcnQgfX08L3NwYW4+XG4gICAgICA8c3Bhbj4ge3sgY3VycmVuY3kgfCBhc3luYyB9fSA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXByaWNpbmdfX3dyYXBwZXJfX3N1YmxpbmUgbWlhbS1kcy10ZXh0IHNpemUteHMgd2VpZ2h0LW1cIlxuICAgICAgKm5nSWY9XCJndWVzdHNUZXh0Py5sZW5ndGggZWxzZSBkZWZhdWx0R3Vlc3RzVGV4dFwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCJndWVzdHNUZXh0ID09PSAncGFyLXBlcnNvbm5lJ1wiIGkxOG4+L3BlcnNvbm5lPC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJndWVzdHNUZXh0ICE9PSAncGFyLXBlcnNvbm5lJ1wiPnt7IGd1ZXN0c1RleHQgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0R3Vlc3RzVGV4dD5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1wcmljaW5nX193cmFwcGVyX19zdWJsaW5lIG1pYW0tZHMtdGV4dCBzaXplLW0gd2VpZ2h0LW1cIiBpMThuPi9wZXJzLjwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtcHJpY2luZ19fdG90YWxcIj5cbiAgICA8c3BhbiBpMThuPlNvaXQ8L3NwYW4+XG4gICAgPHNwYW4+e3sgdG90YWwgfX08L3NwYW4+XG4gICAgPHNwYW4+e3tjdXJyZW5jeSB8IGFzeW5jIH19PC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,84 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ const _c0 = ["background"];
5
+ const _c1 = function (a0) { return { "active": a0 }; };
6
+ function SliderTabsComponent_button_1_Template(rf, ctx) { if (rf & 1) {
7
+ const _r5 = i0.ɵɵgetCurrentView();
8
+ i0.ɵɵelementStart(0, "button", 4);
9
+ i0.ɵɵlistener("click", function SliderTabsComponent_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const i_r3 = ctx.index; const ctx_r4 = i0.ɵɵnextContext(); return ctx_r4.selectTab(i_r3); });
10
+ i0.ɵɵelementStart(1, "span", 5);
11
+ i0.ɵɵtext(2);
12
+ i0.ɵɵelementEnd();
13
+ i0.ɵɵelementEnd();
14
+ } if (rf & 2) {
15
+ const tab_r2 = ctx.$implicit;
16
+ const i_r3 = ctx.index;
17
+ const ctx_r0 = i0.ɵɵnextContext();
18
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c1, i_r3 === ctx_r0.selectedTabIndex));
19
+ i0.ɵɵadvance(2);
20
+ i0.ɵɵtextInterpolate(tab_r2);
21
+ } }
22
+ export class SliderTabsComponent {
23
+ constructor(cdr) {
24
+ this.cdr = cdr;
25
+ this.selectedTabIndex = 0;
26
+ this.selectedTabIndexChange = new EventEmitter();
27
+ }
28
+ ngOnChanges() {
29
+ this.selectTab(this.selectedTabIndex);
30
+ }
31
+ ngAfterViewInit() {
32
+ this.selectTab(this.selectedTabIndex);
33
+ }
34
+ selectTab(tabIndex) {
35
+ this.selectedTabIndex = tabIndex;
36
+ this.selectedTabIndexChange.emit(this.selectedTabIndex);
37
+ this.repositionBackground();
38
+ }
39
+ repositionBackground() {
40
+ var _a;
41
+ if ((_a = this.background) === null || _a === void 0 ? void 0 : _a.nativeElement) {
42
+ this.background.nativeElement.style.width = 'calc(' + 100 / this.tabs.length + '% - ' + (8 / this.tabs.length) + 'px)';
43
+ const padding = this.selectedTabIndex * (8 / this.tabs.length) + 'px';
44
+ const marginLeft = (100 / this.tabs.length) * this.selectedTabIndex + '%';
45
+ this.background.nativeElement.style['margin-left'] = 'calc(' + marginLeft + ' - ' + padding + ')';
46
+ this.cdr.detectChanges();
47
+ }
48
+ }
49
+ }
50
+ SliderTabsComponent.ɵfac = function SliderTabsComponent_Factory(t) { return new (t || SliderTabsComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
51
+ SliderTabsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: SliderTabsComponent, selectors: [["ng-miam-slider-tabs"]], viewQuery: function SliderTabsComponent_Query(rf, ctx) { if (rf & 1) {
52
+ i0.ɵɵviewQuery(_c0, true);
53
+ } if (rf & 2) {
54
+ var _t;
55
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.background = _t.first);
56
+ } }, inputs: { tabs: "tabs", selectedTabIndex: "selectedTabIndex" }, outputs: { selectedTabIndexChange: "selectedTabIndexChange" }, features: [i0.ɵɵNgOnChangesFeature], decls: 4, vars: 1, consts: [[1, "miam-ds-slider-tabs"], ["class", "miam-ds-slider-tab", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], [1, "miam-ds-slider-tab__background"], ["background", ""], [1, "miam-ds-slider-tab", 3, "ngClass", "click"], [1, "miam-ds-slider-tab__text", "miam-ds-text", "weight-l"]], template: function SliderTabsComponent_Template(rf, ctx) { if (rf & 1) {
57
+ i0.ɵɵelementStart(0, "div", 0);
58
+ i0.ɵɵtemplate(1, SliderTabsComponent_button_1_Template, 3, 4, "button", 1);
59
+ i0.ɵɵelement(2, "div", 2, 3);
60
+ i0.ɵɵelementEnd();
61
+ } if (rf & 2) {
62
+ i0.ɵɵadvance(1);
63
+ i0.ɵɵproperty("ngForOf", ctx.tabs);
64
+ } }, directives: [i1.NgForOf, i1.NgClass], styles: [".miam-ds-slider-tabs{align-self:stretch;background-color:var(--miam-ds-color-background-primary-hover);border-radius:100px;height:48px;padding:4px;position:relative}.miam-ds-slider-tabs,.miam-ds-slider-tabs .miam-ds-slider-tab{align-items:center;box-sizing:border-box;display:flex;justify-content:center}.miam-ds-slider-tabs .miam-ds-slider-tab{background-color:transparent;border:unset;border-radius:100px;cursor:pointer;flex:1 0 0;gap:8px;padding:12px 16px;z-index:1}.miam-ds-slider-tabs .miam-ds-slider-tab .miam-ds-slider-tab__text{color:var(--miam-ds-color-neutral-black);line-height:100%;transition:all .3s ease-in-out}.miam-ds-slider-tabs .miam-ds-slider-tab.active .miam-ds-slider-tab__text{color:var(--miam-ds-color-primary-text)}.miam-ds-slider-tabs .miam-ds-slider-tab__background{background-color:var(--miam-ds-color-primary);border-radius:100px;bottom:4px;left:4px;position:absolute;right:4px;top:4px;transition:margin-left .3s ease-in-out;width:100%;z-index:0}"], encapsulation: 2, changeDetection: 0 });
65
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(SliderTabsComponent, [{
66
+ type: Component,
67
+ args: [{
68
+ selector: 'ng-miam-slider-tabs',
69
+ templateUrl: './slider-tabs.component.html',
70
+ styleUrls: ['./slider-tabs.component.scss'],
71
+ encapsulation: ViewEncapsulation.None,
72
+ changeDetection: ChangeDetectionStrategy.OnPush
73
+ }]
74
+ }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { tabs: [{
75
+ type: Input
76
+ }], selectedTabIndex: [{
77
+ type: Input
78
+ }], selectedTabIndexChange: [{
79
+ type: Output
80
+ }], background: [{
81
+ type: ViewChild,
82
+ args: ['background', { static: false }]
83
+ }] }); })();
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fY29tcG9uZW50cy9zbGlkZXItdGFicy9zbGlkZXItdGFicy5jb21wb25lbnQudHMiLCJsaWIvX2NvbXBvbmVudHMvc2xpZGVyLXRhYnMvc2xpZGVyLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0lDWHJCLGlDQUlFO0lBSHdDLHFOQUFzQjtJQUc5RCwrQkFBNkQ7SUFBQSxZQUFTO0lBQUEsaUJBQU87SUFDL0UsaUJBQVM7Ozs7O0lBRlAsc0ZBQThDO0lBQ2UsZUFBUztJQUFULDRCQUFTOztBRGdCMUUsTUFBTSxPQUFPLG1CQUFtQjtJQU85QixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUxqQyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDcEIsMkJBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUs5RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxTQUFTLENBQUMsUUFBZ0I7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxvQkFBb0I7O1FBQ2xCLFVBQUksSUFBSSxDQUFDLFVBQVUsMENBQUUsYUFBYSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDdkgsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3RFLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztZQUMxRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsT0FBTyxHQUFHLFVBQVUsR0FBRyxLQUFLLEdBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQztZQUNsRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7c0ZBaENVLG1CQUFtQjt3REFBbkIsbUJBQW1COzs7Ozs7UUNyQmhDLDhCQUNFO1FBQUEsMEVBSUU7UUFFRiw0QkFBOEQ7UUFDaEUsaUJBQU07O1FBTkYsZUFBdUM7UUFBdkMsa0NBQXVDOztrRERtQjlCLG1CQUFtQjtjQVAvQixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsV0FBVyxFQUFFLDhCQUE4QjtnQkFDM0MsU0FBUyxFQUFFLENBQUMsOEJBQThCLENBQUM7Z0JBQzNDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDtvRUFFVSxJQUFJO2tCQUFaLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDSSxzQkFBc0I7a0JBQS9CLE1BQU07WUFFbUMsVUFBVTtrQkFBbkQsU0FBUzttQkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLXNsaWRlci10YWJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlci10YWJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2xpZGVyLXRhYnMuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2xpZGVyVGFic0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHRhYnM6IHN0cmluZ1tdO1xuICBASW5wdXQoKSBzZWxlY3RlZFRhYkluZGV4ID0gMDtcbiAgQE91dHB1dCgpIHNlbGVjdGVkVGFiSW5kZXhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBAVmlld0NoaWxkKCdiYWNrZ3JvdW5kJywge3N0YXRpYzogZmFsc2V9KSBiYWNrZ3JvdW5kOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0VGFiKHRoaXMuc2VsZWN0ZWRUYWJJbmRleCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RUYWIodGhpcy5zZWxlY3RlZFRhYkluZGV4KTtcbiAgfVxuXG4gIHNlbGVjdFRhYih0YWJJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFRhYkluZGV4ID0gdGFiSW5kZXg7XG4gICAgdGhpcy5zZWxlY3RlZFRhYkluZGV4Q2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFRhYkluZGV4KTtcbiAgICB0aGlzLnJlcG9zaXRpb25CYWNrZ3JvdW5kKCk7XG4gIH1cblxuICByZXBvc2l0aW9uQmFja2dyb3VuZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5iYWNrZ3JvdW5kPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLmJhY2tncm91bmQubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9ICdjYWxjKCcgKyAxMDAgLyB0aGlzLnRhYnMubGVuZ3RoICsgJyUgLSAnICsgKDggLyB0aGlzLnRhYnMubGVuZ3RoKSArICdweCknO1xuICAgICAgY29uc3QgcGFkZGluZyA9IHRoaXMuc2VsZWN0ZWRUYWJJbmRleCAqICg4IC8gdGhpcy50YWJzLmxlbmd0aCkgKyAncHgnO1xuICAgICAgY29uc3QgbWFyZ2luTGVmdCA9ICgxMDAgLyB0aGlzLnRhYnMubGVuZ3RoKSAqIHRoaXMuc2VsZWN0ZWRUYWJJbmRleCArICclJztcbiAgICAgIHRoaXMuYmFja2dyb3VuZC5uYXRpdmVFbGVtZW50LnN0eWxlWydtYXJnaW4tbGVmdCddID0gJ2NhbGMoJyArIG1hcmdpbkxlZnQgKyAnIC0gJyArIHBhZGRpbmcgKyAnKSc7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWlhbS1kcy1zbGlkZXItdGFic1wiPlxuICA8YnV0dG9uXG4gICAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzLCBsZXQgaSA9IGluZGV4XCIgKGNsaWNrKT1cInNlbGVjdFRhYihpKVwiXG4gICAgY2xhc3M9XCJtaWFtLWRzLXNsaWRlci10YWJcIlxuICAgIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogaSA9PT0gc2VsZWN0ZWRUYWJJbmRleH1cIj5cbiAgICA8c3BhbiBjbGFzcz1cIm1pYW0tZHMtc2xpZGVyLXRhYl9fdGV4dCBtaWFtLWRzLXRleHQgd2VpZ2h0LWxcIj57eyB0YWIgfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8ZGl2ICNiYWNrZ3JvdW5kIGNsYXNzPVwibWlhbS1kcy1zbGlkZXItdGFiX19iYWNrZ3JvdW5kXCI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -21,7 +21,7 @@ SponsorImageAndTextBlockComponent.ɵcmp = i0.ɵɵdefineComponent({ type: Sponsor
21
21
  i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(3, _c0, ctx.sponsorBlock.backgroundColor || "#FFFFFF", ctx.sponsorBlock.fontSize || 16, ctx.sponsorBlock.fontColor || "#000000"));
22
22
  i0.ɵɵadvance(1);
23
23
  i0.ɵɵtextInterpolate1(" ", ctx.sponsorBlock.content, " ");
24
- } }, directives: [i1.NgStyle], styles: [".sponsor-image-and-text-block[_ngcontent-%COMP%]{align-items:center;aspect-ratio:21/9;display:flex;justify-content:center;width:100%}.sponsor-image-and-text-block[_ngcontent-%COMP%] .sponsor-image-and-text-block__image[_ngcontent-%COMP%]{-o-object-fit:cover;height:100%;object-fit:cover;width:60%}.sponsor-image-and-text-block[_ngcontent-%COMP%] .sponsor-image-and-text-block__text[_ngcontent-%COMP%]{background-color:#fff;box-sizing:border-box;font-size:16px;line-height:150%;margin-left:-10%;max-height:75%;max-width:50%;overflow:hidden;padding:12px;right:0;text-align:center;text-overflow:ellipsis;width:50%}@media (max-width:1023px){.sponsor-image-and-text-block[_ngcontent-%COMP%]{align-items:center;display:flex;flex-direction:column;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%}.sponsor-image-and-text-block[_ngcontent-%COMP%] .sponsor-image-and-text-block__image[_ngcontent-%COMP%]{-o-object-fit:cover;aspect-ratio:4/3;object-fit:cover;width:100%}.sponsor-image-and-text-block[_ngcontent-%COMP%] .sponsor-image-and-text-block__text[_ngcontent-%COMP%]{font-size:16px;line-height:150%;margin-left:unset;max-height:unset;max-width:100%;padding:12px;text-align:justify;width:100%}}"] });
24
+ } }, directives: [i1.NgStyle], styles: [".sponsor-image-and-text-block[_ngcontent-%COMP%]{align-items:center;aspect-ratio:21/9;display:flex;justify-content:center;width:100%}.sponsor-image-and-text-block[_ngcontent-%COMP%] .sponsor-image-and-text-block__image[_ngcontent-%COMP%]{-o-object-fit:cover;height:100%;object-fit:cover;width:60%}.sponsor-image-and-text-block[_ngcontent-%COMP%] .sponsor-image-and-text-block__text[_ngcontent-%COMP%]{background-color:#fff;box-sizing:border-box;font-size:16px;line-height:150%;margin-left:-10%;max-height:75%;max-width:50%;overflow:hidden;padding:12px;right:0;text-align:center;text-overflow:ellipsis;width:50%}@media (max-width:1023px){.sponsor-image-and-text-block[_ngcontent-%COMP%]{align-items:center;display:flex;flex-direction:column;height:-moz-fit-content;height:fit-content;width:100%}.sponsor-image-and-text-block[_ngcontent-%COMP%] .sponsor-image-and-text-block__image[_ngcontent-%COMP%]{-o-object-fit:cover;aspect-ratio:4/3;object-fit:cover;width:100%}.sponsor-image-and-text-block[_ngcontent-%COMP%] .sponsor-image-and-text-block__text[_ngcontent-%COMP%]{font-size:16px;line-height:150%;margin-left:unset;max-height:unset;max-width:100%;padding:12px;text-align:justify;width:100%}}"] });
25
25
  /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(SponsorImageAndTextBlockComponent, [{
26
26
  type: Component,
27
27
  args: [{
@@ -21,7 +21,7 @@ SponsorTextAndImageBlockComponent.ɵcmp = i0.ɵɵdefineComponent({ type: Sponsor
21
21
  i0.ɵɵtextInterpolate1(" ", ctx.sponsorBlock.content, " ");
22
22
  i0.ɵɵadvance(1);
23
23
  i0.ɵɵproperty("src", ctx.sponsorBlock.pictureUrl, i0.ɵɵsanitizeUrl);
24
- } }, directives: [i1.NgStyle], styles: [".sponsor-text-and-image-block[_ngcontent-%COMP%]{align-items:center;aspect-ratio:21/9;display:flex;justify-content:center;width:100%}.sponsor-text-and-image-block[_ngcontent-%COMP%] .sponsor-text-and-image-block__text[_ngcontent-%COMP%]{background-color:#fff;box-sizing:border-box;font-size:16px;line-height:150%;max-height:75%;max-width:50%;overflow:hidden;padding:12px;right:0;text-align:center;text-overflow:ellipsis;width:50%;z-index:2}.sponsor-text-and-image-block[_ngcontent-%COMP%] .sponsor-text-and-image-block__image[_ngcontent-%COMP%]{-o-object-fit:cover;height:100%;margin-left:-10%;object-fit:cover;width:60%;z-index:1}@media (max-width:1023px){.sponsor-text-and-image-block[_ngcontent-%COMP%]{align-items:center;display:flex;flex-direction:column;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%}.sponsor-text-and-image-block[_ngcontent-%COMP%] .sponsor-text-and-image-block__text[_ngcontent-%COMP%]{font-size:16px;line-height:150%;max-width:100%;padding:12px;text-align:justify;width:100%}.sponsor-text-and-image-block[_ngcontent-%COMP%] .sponsor-text-and-image-block__image[_ngcontent-%COMP%]{-o-object-fit:cover;aspect-ratio:4/3;margin-left:unset;object-fit:cover;width:100%}}"] });
24
+ } }, directives: [i1.NgStyle], styles: [".sponsor-text-and-image-block[_ngcontent-%COMP%]{align-items:center;aspect-ratio:21/9;display:flex;justify-content:center;width:100%}.sponsor-text-and-image-block[_ngcontent-%COMP%] .sponsor-text-and-image-block__text[_ngcontent-%COMP%]{background-color:#fff;box-sizing:border-box;font-size:16px;line-height:150%;max-height:75%;max-width:50%;overflow:hidden;padding:12px;right:0;text-align:center;text-overflow:ellipsis;width:50%;z-index:2}.sponsor-text-and-image-block[_ngcontent-%COMP%] .sponsor-text-and-image-block__image[_ngcontent-%COMP%]{-o-object-fit:cover;height:100%;margin-left:-10%;object-fit:cover;width:60%;z-index:1}@media (max-width:1023px){.sponsor-text-and-image-block[_ngcontent-%COMP%]{align-items:center;display:flex;flex-direction:column;height:-moz-fit-content;height:fit-content;width:100%}.sponsor-text-and-image-block[_ngcontent-%COMP%] .sponsor-text-and-image-block__text[_ngcontent-%COMP%]{font-size:16px;line-height:150%;max-width:100%;padding:12px;text-align:justify;width:100%}.sponsor-text-and-image-block[_ngcontent-%COMP%] .sponsor-text-and-image-block__image[_ngcontent-%COMP%]{-o-object-fit:cover;aspect-ratio:4/3;margin-left:unset;object-fit:cover;width:100%}}"] });
25
25
  /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(SponsorTextAndImageBlockComponent, [{
26
26
  type: Component,
27
27
  args: [{
@@ -1,117 +1,77 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, QueryList, ViewEncapsulation } from '@angular/core';
2
- import { startWith, map } from 'rxjs/operators';
3
- import { TabItemComponent } from './tab-item.component';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
4
2
  import * as i0 from "@angular/core";
5
3
  import * as i1 from "@angular/common";
6
- function TabsComponent_div_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
7
- i0.ɵɵelementContainer(0);
8
- } }
9
- function TabsComponent_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
10
- i0.ɵɵelementContainerStart(0);
11
- i0.ɵɵtemplate(1, TabsComponent_div_1_ng_container_1_ng_container_1_Template, 1, 0, "ng-container", 5);
12
- i0.ɵɵelementContainerEnd();
13
- } if (rf & 2) {
14
- const item_r2 = i0.ɵɵnextContext().$implicit;
15
- i0.ɵɵadvance(1);
16
- i0.ɵɵproperty("ngTemplateOutlet", item_r2.labelComponent.labelContent);
17
- } }
18
- function TabsComponent_div_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
19
- i0.ɵɵelementContainerStart(0);
20
- i0.ɵɵtext(1);
21
- i0.ɵɵelementContainerEnd();
22
- } if (rf & 2) {
23
- const item_r2 = i0.ɵɵnextContext().$implicit;
24
- i0.ɵɵadvance(1);
25
- i0.ɵɵtextInterpolate1(" ", item_r2.label, " ");
26
- } }
27
- function TabsComponent_div_1_Template(rf, ctx) { if (rf & 1) {
28
- const _r9 = i0.ɵɵgetCurrentView();
29
- i0.ɵɵelementStart(0, "div", 4);
30
- i0.ɵɵlistener("click", function TabsComponent_div_1_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r9); const item_r2 = ctx.$implicit; const ctx_r8 = i0.ɵɵnextContext(); return ctx_r8.selectTab(item_r2); });
31
- i0.ɵɵtemplate(1, TabsComponent_div_1_ng_container_1_Template, 2, 1, "ng-container", 3);
32
- i0.ɵɵtemplate(2, TabsComponent_div_1_ng_container_2_Template, 2, 1, "ng-container", 3);
4
+ const _c0 = ["underline"];
5
+ function TabsComponent_button_0_Template(rf, ctx) { if (rf & 1) {
6
+ const _r5 = i0.ɵɵgetCurrentView();
7
+ i0.ɵɵelementStart(0, "button", 3);
8
+ i0.ɵɵlistener("click", function TabsComponent_button_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const i_r3 = ctx.index; const ctx_r4 = i0.ɵɵnextContext(); return ctx_r4.selectTab(i_r3); });
9
+ i0.ɵɵelementStart(1, "span", 4);
10
+ i0.ɵɵtext(2);
11
+ i0.ɵɵelementEnd();
33
12
  i0.ɵɵelementEnd();
34
13
  } if (rf & 2) {
35
- const item_r2 = ctx.$implicit;
14
+ const tab_r2 = ctx.$implicit;
15
+ const i_r3 = ctx.index;
36
16
  const ctx_r0 = i0.ɵɵnextContext();
37
- i0.ɵɵclassProp("active", ctx_r0.activeTabItem === item_r2);
38
- i0.ɵɵadvance(1);
39
- i0.ɵɵproperty("ngIf", item_r2.labelComponent);
40
- i0.ɵɵadvance(1);
41
- i0.ɵɵproperty("ngIf", !item_r2.labelComponent);
42
- } }
43
- function TabsComponent_ng_container_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
44
- i0.ɵɵelementContainer(0);
45
- } }
46
- function TabsComponent_ng_container_4_Template(rf, ctx) { if (rf & 1) {
47
- i0.ɵɵelementContainerStart(0);
48
- i0.ɵɵtemplate(1, TabsComponent_ng_container_4_ng_container_1_Template, 1, 0, "ng-container", 5);
49
- i0.ɵɵelementContainerEnd();
50
- } if (rf & 2) {
51
- const ctx_r1 = i0.ɵɵnextContext();
52
- i0.ɵɵadvance(1);
53
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.activeTabItem.bodyComponent.bodyContent);
17
+ i0.ɵɵclassProp("active", i_r3 === ctx_r0.selectedTabIndex);
18
+ i0.ɵɵadvance(2);
19
+ i0.ɵɵtextInterpolate(tab_r2);
54
20
  } }
55
21
  export class TabsComponent {
56
22
  constructor(cdr) {
57
23
  this.cdr = cdr;
24
+ this.selectedTabIndex = 0;
25
+ this.selectedTabIndexChange = new EventEmitter();
58
26
  }
59
- ngAfterContentInit() {
60
- this.tabItems$ = this.tabs.changes
61
- .pipe(startWith(this.tabs), // Here we pipe after tabs.changes has emitted his first change, so we have so set it's current
62
- // value as a starting value and then if there are changes they will be taken into account normally
63
- map(queryList => queryList.toArray()));
27
+ ngOnChanges() {
28
+ this.calculateUnderline();
64
29
  }
65
- ngAfterContentChecked() {
66
- // choose the default tab
67
- // we need to wait for a next VM turn,
68
- // because Tab item content, will not be initialized yet
69
- if (!this.activeTabItem) {
70
- Promise.resolve().then(() => {
71
- this.activeTabItem = this.tabs.first;
72
- this.cdr.detectChanges();
73
- });
74
- }
30
+ ngAfterViewInit() {
31
+ this.calculateUnderline();
32
+ }
33
+ selectTab(tabIndex) {
34
+ this.selectedTabIndex = tabIndex;
35
+ this.selectedTabIndexChange.emit(this.selectedTabIndex);
75
36
  }
76
- selectTab(tabItem) {
77
- if (this.activeTabItem === tabItem) {
78
- return;
37
+ calculateUnderline() {
38
+ var _a;
39
+ if ((_a = this.underline) === null || _a === void 0 ? void 0 : _a.nativeElement) {
40
+ this.underline.nativeElement.style.width = 100 / this.tabs.length + '%';
41
+ this.underline.nativeElement.style['margin-left'] = (100 / this.tabs.length) * this.selectedTabIndex + '%';
42
+ this.cdr.detectChanges();
79
43
  }
80
- this.activeTabItem = tabItem;
81
- this.cdr.detectChanges();
82
44
  }
83
45
  }
84
46
  TabsComponent.ɵfac = function TabsComponent_Factory(t) { return new (t || TabsComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
85
- TabsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: TabsComponent, selectors: [["ng-miam-tabs"]], contentQueries: function TabsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
86
- i0.ɵɵcontentQuery(dirIndex, TabItemComponent, false);
47
+ TabsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: TabsComponent, selectors: [["ng-miam-tabs"]], viewQuery: function TabsComponent_Query(rf, ctx) { if (rf & 1) {
48
+ i0.ɵɵviewQuery(_c0, true);
87
49
  } if (rf & 2) {
88
50
  var _t;
89
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabs = _t);
90
- } }, decls: 5, vars: 4, consts: [["id", "scrollbar-styled", 1, "tabs-header"], ["class", "tab-label", 3, "active", "click", 4, "ngFor", "ngForOf"], [1, "tabs-body"], [4, "ngIf"], [1, "tab-label", 3, "click"], [4, "ngTemplateOutlet"]], template: function TabsComponent_Template(rf, ctx) { if (rf & 1) {
91
- i0.ɵɵelementStart(0, "div", 0);
92
- i0.ɵɵtemplate(1, TabsComponent_div_1_Template, 3, 4, "div", 1);
93
- i0.ɵɵpipe(2, "async");
94
- i0.ɵɵelementEnd();
95
- i0.ɵɵelementStart(3, "div", 2);
96
- i0.ɵɵtemplate(4, TabsComponent_ng_container_4_Template, 2, 1, "ng-container", 3);
97
- i0.ɵɵelementEnd();
51
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.underline = _t.first);
52
+ } }, inputs: { tabs: "tabs", selectedTabIndex: "selectedTabIndex" }, outputs: { selectedTabIndexChange: "selectedTabIndexChange" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 1, consts: [["class", "miam-tabs__tab", 3, "active", "click", 4, "ngFor", "ngForOf"], [1, "miam-tabs__underline"], ["underline", ""], [1, "miam-tabs__tab", 3, "click"], [1, "miam-tabs__tab-text"]], template: function TabsComponent_Template(rf, ctx) { if (rf & 1) {
53
+ i0.ɵɵtemplate(0, TabsComponent_button_0_Template, 3, 3, "button", 0);
54
+ i0.ɵɵelement(1, "div", 1, 2);
98
55
  } if (rf & 2) {
99
- i0.ɵɵadvance(1);
100
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 2, ctx.tabItems$));
101
- i0.ɵɵadvance(3);
102
- i0.ɵɵproperty("ngIf", ctx.activeTabItem && ctx.activeTabItem.bodyComponent);
103
- } }, directives: [i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet], pipes: [i1.AsyncPipe], styles: [".tabs-header{color:var(--m-color-grey-text-dark);display:inline-flex;font-size:var(--m-font-size-large);font-weight:500;margin-bottom:12px;overflow-x:auto;padding:12px 0;white-space:nowrap;width:100%}.active{color:var(--m-color-primary)}.tab-label{margin:0 10px;padding-right:15px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}#scrollbar-styled::-webkit-scrollbar-track{background-color:var(--m-color-grey);border-radius:10px;box-shadow:inset 0 0 6px rgba(0,0,0,.2)}#scrollbar-styled::-webkit-scrollbar{background-color:var(--m-color-grey);height:10px}#scrollbar-styled::-webkit-scrollbar-thumb{background-image:-webkit-gradient(linear,left top,right top,color-stop(.05,var(--m-color-primary-dark)),color-stop(.2,var(--m-color-primary)),color-stop(.96,var(--m-color-primary-light)));border-radius:10px}"], encapsulation: 3, changeDetection: 0 });
56
+ i0.ɵɵproperty("ngForOf", ctx.tabs);
57
+ } }, directives: [i1.NgForOf], styles: ["ng-miam-tabs{align-items:flex-end;display:flex;justify-content:space-between;position:relative}ng-miam-tabs .miam-tabs__tab{align-items:center;background-color:transparent;border:0;border-bottom:2px solid var(--miam-ds-color-neutral-200,#d9dde1);display:flex;flex:1;justify-content:center;padding:12px 24px;position:relative}ng-miam-tabs .miam-tabs__tab .miam-tabs__tab-text{transition:all .2s}ng-miam-tabs .miam-tabs__tab.active .miam-tabs__tab-text{color:var(--miam-color-primary,#24748f);font-weight:900}ng-miam-tabs .miam-tabs__underline{background-color:var(--miam-color-primary,#24748f);bottom:0;height:2px;left:0;position:absolute;transition:margin-left .25s;width:100%}"], encapsulation: 2, changeDetection: 0 });
104
58
  /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(TabsComponent, [{
105
59
  type: Component,
106
60
  args: [{
107
61
  selector: 'ng-miam-tabs',
108
62
  templateUrl: './tabs.component.html',
109
63
  styleUrls: ['./tabs.component.scss'],
110
- encapsulation: ViewEncapsulation.ShadowDom,
64
+ encapsulation: ViewEncapsulation.None,
111
65
  changeDetection: ChangeDetectionStrategy.OnPush
112
66
  }]
113
67
  }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { tabs: [{
114
- type: ContentChildren,
115
- args: [TabItemComponent]
68
+ type: Input
69
+ }], selectedTabIndex: [{
70
+ type: Input
71
+ }], selectedTabIndexChange: [{
72
+ type: Output
73
+ }], underline: [{
74
+ type: ViewChild,
75
+ args: ['underline', { static: false }]
116
76
  }] }); })();
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL19jb21wb25lbnRzL3RhYnMvdGFicy5jb21wb25lbnQudHMiLCJsaWIvX2NvbXBvbmVudHMvdGFicy90YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBeUMsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFDcEgsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7SUNJbEQsd0JBQ2U7OztJQUZqQiw2QkFDRTtJQUFBLHFHQUNBO0lBQ0YsMEJBQWU7OztJQUZDLGVBQW9EO0lBQXBELHNFQUFvRDs7O0lBSXBFLDZCQUNFO0lBQUEsWUFDRjtJQUFBLDBCQUFlOzs7SUFEYixlQUNGO0lBREUsOENBQ0Y7Ozs7SUFiRiw4QkFNRTtJQUpBLG1OQUF5QjtJQUl6QixzRkFDRTtJQUlGLHNGQUNFO0lBRUosaUJBQU07Ozs7SUFYSiwwREFBdUM7SUFHekIsZUFBMkI7SUFBM0IsNkNBQTJCO0lBSzNCLGVBQTRCO0lBQTVCLDhDQUE0Qjs7O0lBTzFDLHdCQUNlOzs7SUFGakIsNkJBQ0U7SUFBQSwrRkFDQTtJQUNGLDBCQUFlOzs7SUFGQyxlQUEyRDtJQUEzRCxpRkFBMkQ7O0FETjdFLE1BQU0sT0FBTyxhQUFhO0lBT3hCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQzFDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87YUFDL0IsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQU0sK0ZBQStGO1FBQ3pILG1HQUFtRztRQUNuRyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIseUJBQXlCO1FBQ3pCLHNDQUFzQztRQUN0Qyx3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsT0FBeUI7UUFDakMsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLE9BQU8sRUFBRTtZQUNsQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OzBFQXBDVSxhQUFhO2tEQUFiLGFBQWE7b0NBQ1AsZ0JBQWdCOzs7OztRQ2RuQyw4QkFDRTtRQUFBLDhEQU1FOztRQVNKLGlCQUFNO1FBQ04sOEJBQ0U7UUFBQSxnRkFDRTtRQUdKLGlCQUFNOztRQWpCRixlQUFzQztRQUF0Qyw2REFBc0M7UUFhMUIsZUFBb0Q7UUFBcEQsMkVBQW9EOztrRERMdkQsYUFBYTtjQVB6QixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLFdBQVcsRUFBRSx1QkFBdUI7Z0JBQ3BDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUNwQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsU0FBUztnQkFDMUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7b0VBRW9DLElBQUk7a0JBQXRDLGVBQWU7bUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQWZ0ZXJDb250ZW50SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbixcbiAgUXVlcnlMaXN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUYWJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi90YWItaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLXRhYnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFicy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYnMuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uU2hhZG93RG9tLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG4gIEBDb250ZW50Q2hpbGRyZW4oVGFiSXRlbUNvbXBvbmVudCkgdGFiczogUXVlcnlMaXN0PFRhYkl0ZW1Db21wb25lbnQ+O1xuXG4gIHRhYkl0ZW1zJDogT2JzZXJ2YWJsZTxUYWJJdGVtQ29tcG9uZW50W10+O1xuICBhY3RpdmVUYWJJdGVtOiBUYWJJdGVtQ29tcG9uZW50OyAvLyBUaGUgVGFiSXRlbUNvbXBvbmVudCBjdXJyZW50bHkgZGlzcGxheWVkIGluIHRoZSB0ZW1wbGF0ZVxuXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJJdGVtcyQgPSB0aGlzLnRhYnMuY2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLnRhYnMpLCAgICAgLy8gSGVyZSB3ZSBwaXBlIGFmdGVyIHRhYnMuY2hhbmdlcyBoYXMgZW1pdHRlZCBoaXMgZmlyc3QgY2hhbmdlLCBzbyB3ZSBoYXZlIHNvIHNldCBpdCdzIGN1cnJlbnRcbiAgICAgICAgLy8gdmFsdWUgYXMgYSBzdGFydGluZyB2YWx1ZSBhbmQgdGhlbiBpZiB0aGVyZSBhcmUgY2hhbmdlcyB0aGV5IHdpbGwgYmUgdGFrZW4gaW50byBhY2NvdW50IG5vcm1hbGx5XG4gICAgICAgIG1hcChxdWVyeUxpc3QgPT4gcXVlcnlMaXN0LnRvQXJyYXkoKSkpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgIC8vIGNob29zZSB0aGUgZGVmYXVsdCB0YWJcbiAgICAvLyB3ZSBuZWVkIHRvIHdhaXQgZm9yIGEgbmV4dCBWTSB0dXJuLFxuICAgIC8vIGJlY2F1c2UgVGFiIGl0ZW0gY29udGVudCwgd2lsbCBub3QgYmUgaW5pdGlhbGl6ZWQgeWV0XG4gICAgaWYgKCF0aGlzLmFjdGl2ZVRhYkl0ZW0pIHtcbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmFjdGl2ZVRhYkl0ZW0gPSB0aGlzLnRhYnMuZmlyc3Q7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFRhYih0YWJJdGVtOiBUYWJJdGVtQ29tcG9uZW50KSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlVGFiSXRlbSA9PT0gdGFiSXRlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZVRhYkl0ZW0gPSB0YWJJdGVtO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhYnMtaGVhZGVyXCIgaWQ9XCJzY3JvbGxiYXItc3R5bGVkXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInRhYi1sYWJlbFwiXG4gICAgKGNsaWNrKT1cInNlbGVjdFRhYihpdGVtKVwiXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWJJdGVtID09PSBpdGVtXCJcbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0YWJJdGVtcyQgfCBhc3luY1wiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5sYWJlbENvbXBvbmVudFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW0ubGFiZWxDb21wb25lbnQubGFiZWxDb250ZW50XCI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5sYWJlbENvbXBvbmVudFwiPlxuICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInRhYnMtYm9keVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlVGFiSXRlbSAmJiBhY3RpdmVUYWJJdGVtLmJvZHlDb21wb25lbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aXZlVGFiSXRlbS5ib2R5Q29tcG9uZW50LmJvZHlDb250ZW50XCI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL19jb21wb25lbnRzL3RhYnMvdGFicy5jb21wb25lbnQudHMiLCJsaWIvX2NvbXBvbmVudHMvdGFicy90YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFBRSxVQUFVLEVBQ3JCLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7Ozs7OztJQ1Z2QixpQ0FJRTtJQUh3QywrTUFBc0I7SUFHOUQsK0JBQWtDO0lBQUEsWUFBUztJQUFBLGlCQUFPO0lBQ3BELGlCQUFTOzs7OztJQUZQLDBEQUF1QztJQUNMLGVBQVM7SUFBVCw0QkFBUzs7QURlN0MsTUFBTSxPQUFPLGFBQWE7SUFTeEIsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFOakMscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFNOUQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxTQUFTLENBQUMsUUFBZ0I7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxrQkFBa0I7O1FBQ2hCLFVBQUksSUFBSSxDQUFDLFNBQVMsMENBQUUsYUFBYSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztZQUN4RSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDO1lBQzNHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDOzswRUEvQlUsYUFBYTtrREFBYixhQUFhOzs7Ozs7UUNuQjFCLG9FQUlFO1FBRUYsNEJBQ007O1FBTkosa0NBQXVDOztrRERrQjVCLGFBQWE7Y0FQekIsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxjQUFjO2dCQUN4QixXQUFXLEVBQUUsdUJBQXVCO2dCQUNwQyxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDcEMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEO29FQUdVLElBQUk7a0JBQVosS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNJLHNCQUFzQjtrQkFBL0IsTUFBTTtZQUVrQyxTQUFTO2tCQUFqRCxTQUFTO21CQUFDLFdBQVcsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCwgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCwgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tdGFicycsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFicy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSB0YWJzOiBzdHJpbmdbXTtcbiAgQElucHV0KCkgc2VsZWN0ZWRUYWJJbmRleCA9IDA7XG4gIEBPdXRwdXQoKSBzZWxlY3RlZFRhYkluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQFZpZXdDaGlsZCgndW5kZXJsaW5lJywge3N0YXRpYzogZmFsc2V9KSB1bmRlcmxpbmU6IEVsZW1lbnRSZWY7XG5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuY2FsY3VsYXRlVW5kZXJsaW5lKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jYWxjdWxhdGVVbmRlcmxpbmUoKTtcbiAgfVxuXG4gIHNlbGVjdFRhYih0YWJJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFRhYkluZGV4ID0gdGFiSW5kZXg7XG4gICAgdGhpcy5zZWxlY3RlZFRhYkluZGV4Q2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFRhYkluZGV4KTtcbiAgfVxuXG4gIGNhbGN1bGF0ZVVuZGVybGluZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51bmRlcmxpbmU/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMudW5kZXJsaW5lLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSAxMDAgLyB0aGlzLnRhYnMubGVuZ3RoICsgJyUnO1xuICAgICAgdGhpcy51bmRlcmxpbmUubmF0aXZlRWxlbWVudC5zdHlsZVsnbWFyZ2luLWxlZnQnXSA9ICgxMDAgLyB0aGlzLnRhYnMubGVuZ3RoKSAqIHRoaXMuc2VsZWN0ZWRUYWJJbmRleCArICclJztcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzLCBsZXQgaSA9IGluZGV4XCIgKGNsaWNrKT1cInNlbGVjdFRhYihpKVwiXG4gIGNsYXNzPVwibWlhbS10YWJzX190YWJcIlxuICBbY2xhc3MuYWN0aXZlXT1cImkgPT09IHNlbGVjdGVkVGFiSW5kZXhcIj5cbiAgPHNwYW4gY2xhc3M9XCJtaWFtLXRhYnNfX3RhYi10ZXh0XCI+e3sgdGFiIH19PC9zcGFuPlxuPC9idXR0b24+XG48ZGl2ICN1bmRlcmxpbmUgY2xhc3M9XCJtaWFtLXRhYnNfX3VuZGVybGluZVwiPlxuPC9kaXY+XG4iXX0=