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
@@ -0,0 +1,333 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewEncapsulation } from '@angular/core';
2
+ import { combineLatest } from 'rxjs';
3
+ import { take, tap } from 'rxjs/operators';
4
+ import { BasketEntry, Ingredient } from '../../_models';
5
+ import { AnalyticsService, BasketsService, ItemsService, RecipesService } from '../../_services';
6
+ import { RecipeDetailsService } from '../../_services/recipe-details.service';
7
+ import { EventTracerComponent } from '../abstracts/event-tracer.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../_services";
10
+ import * as i2 from "../../_services/recipe-details.service";
11
+ import * as i3 from "@angular/common";
12
+ import * as i4 from "../counter-input/counter-input.component";
13
+ import * as i5 from "../../_utils/pipes/capitalize-first-letter/capitalize-first-letter.pipe";
14
+ function ProductCardComponent_div_0_div_10_ng_container_20_button_4_Template(rf, ctx) { if (rf & 1) {
15
+ const _r10 = i0.ɵɵgetCurrentView();
16
+ i0.ɵɵelementStart(0, "button", 26);
17
+ i0.ɵɵlistener("click", function ProductCardComponent_div_0_div_10_ng_container_20_button_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(4); return ctx_r9.addToBasket(); });
18
+ i0.ɵɵpipe(1, "async");
19
+ i0.ɵɵelement(2, "img", 27);
20
+ i0.ɵɵelementEnd();
21
+ } if (rf & 2) {
22
+ const ctx_r7 = i0.ɵɵnextContext(4);
23
+ i0.ɵɵproperty("disabled", i0.ɵɵpipeBind1(1, 1, ctx_r7.recipeDetailsService.allIngredientsToBasketLoading$));
24
+ } }
25
+ function ProductCardComponent_div_0_div_10_ng_container_20_button_5_Template(rf, ctx) { if (rf & 1) {
26
+ i0.ɵɵelementStart(0, "button", 28);
27
+ i0.ɵɵelement(1, "div", 29);
28
+ i0.ɵɵelementEnd();
29
+ } }
30
+ function ProductCardComponent_div_0_div_10_ng_container_20_Template(rf, ctx) { if (rf & 1) {
31
+ const _r12 = i0.ɵɵgetCurrentView();
32
+ i0.ɵɵelementContainerStart(0);
33
+ i0.ɵɵelementStart(1, "button", 22);
34
+ i0.ɵɵlistener("click", function ProductCardComponent_div_0_div_10_ng_container_20_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(3); return ctx_r11.ignoreProduct(); });
35
+ i0.ɵɵelementStart(2, "span", 23);
36
+ i0.ɵɵtext(3, "Ignorer ce produit");
37
+ i0.ɵɵelementEnd();
38
+ i0.ɵɵelementEnd();
39
+ i0.ɵɵtemplate(4, ProductCardComponent_div_0_div_10_ng_container_20_button_4_Template, 3, 3, "button", 24);
40
+ i0.ɵɵtemplate(5, ProductCardComponent_div_0_div_10_ng_container_20_button_5_Template, 2, 0, "button", 25);
41
+ i0.ɵɵelementContainerEnd();
42
+ } if (rf & 2) {
43
+ const ctx_r5 = i0.ɵɵnextContext(3);
44
+ i0.ɵɵadvance(4);
45
+ i0.ɵɵproperty("ngIf", !ctx_r5.loadingAddToBasket);
46
+ i0.ɵɵadvance(1);
47
+ i0.ɵɵproperty("ngIf", ctx_r5.loadingAddToBasket);
48
+ } }
49
+ function ProductCardComponent_div_0_div_10_ng_container_21_Template(rf, ctx) { if (rf & 1) {
50
+ const _r14 = i0.ɵɵgetCurrentView();
51
+ i0.ɵɵelementContainerStart(0);
52
+ i0.ɵɵelementStart(1, "ng-miam-counter-input", 30);
53
+ i0.ɵɵlistener("valueChange", function ProductCardComponent_div_0_div_10_ng_container_21_Template_ng_miam_counter_input_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(3); return ctx_r13.counterChanged($event); });
54
+ i0.ɵɵelementEnd();
55
+ i0.ɵɵelementContainerEnd();
56
+ } if (rf & 2) {
57
+ const ctx_r6 = i0.ɵɵnextContext(3);
58
+ i0.ɵɵadvance(1);
59
+ i0.ɵɵproperty("value", ctx_r6.basketEntry.quantity)("minusLoading", ctx_r6.counterMinusLoading);
60
+ } }
61
+ function ProductCardComponent_div_0_div_10_Template(rf, ctx) { if (rf & 1) {
62
+ const _r16 = i0.ɵɵgetCurrentView();
63
+ i0.ɵɵelementStart(0, "div", 8);
64
+ i0.ɵɵelementStart(1, "div", 9);
65
+ i0.ɵɵelementStart(2, "div", 10);
66
+ i0.ɵɵelement(3, "img", 11);
67
+ i0.ɵɵelementEnd();
68
+ i0.ɵɵelementStart(4, "div", 12);
69
+ i0.ɵɵelementStart(5, "span", 13);
70
+ i0.ɵɵtext(6);
71
+ i0.ɵɵelementEnd();
72
+ i0.ɵɵelementStart(7, "span", 14);
73
+ i0.ɵɵtext(8);
74
+ i0.ɵɵelementEnd();
75
+ i0.ɵɵelementStart(9, "div", 15);
76
+ i0.ɵɵelementStart(10, "div", 16);
77
+ i0.ɵɵtext(11);
78
+ i0.ɵɵelementEnd();
79
+ i0.ɵɵelementEnd();
80
+ i0.ɵɵelementStart(12, "a", 17);
81
+ i0.ɵɵlistener("click", function ProductCardComponent_div_0_div_10_Template_a_click_12_listener() { i0.ɵɵrestoreView(_r16); const ctx_r15 = i0.ɵɵnextContext(2); return ctx_r15.replaceProduct(false); });
82
+ i0.ɵɵelementStart(13, "span");
83
+ i0.ɵɵtext(14, "Remplacer");
84
+ i0.ɵɵelementEnd();
85
+ i0.ɵɵelementEnd();
86
+ i0.ɵɵelementEnd();
87
+ i0.ɵɵelementEnd();
88
+ i0.ɵɵelementStart(15, "div", 18);
89
+ i0.ɵɵelementStart(16, "span", 19);
90
+ i0.ɵɵtext(17);
91
+ i0.ɵɵpipe(18, "currency");
92
+ i0.ɵɵelementEnd();
93
+ i0.ɵɵelementStart(19, "div", 20);
94
+ i0.ɵɵtemplate(20, ProductCardComponent_div_0_div_10_ng_container_20_Template, 6, 2, "ng-container", 21);
95
+ i0.ɵɵtemplate(21, ProductCardComponent_div_0_div_10_ng_container_21_Template, 2, 2, "ng-container", 21);
96
+ i0.ɵɵelementEnd();
97
+ i0.ɵɵelementEnd();
98
+ i0.ɵɵelementEnd();
99
+ } if (rf & 2) {
100
+ const ctx_r1 = i0.ɵɵnextContext(2);
101
+ i0.ɵɵadvance(3);
102
+ i0.ɵɵproperty("src", ctx_r1.basketEntry.selectedItem.attributes.image, i0.ɵɵsanitizeUrl);
103
+ i0.ɵɵadvance(3);
104
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.basketEntry.selectedItem.attributes.brand, " ");
105
+ i0.ɵɵadvance(2);
106
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.basketEntry.selectedItem.attributes.name, " ");
107
+ i0.ɵɵadvance(3);
108
+ i0.ɵɵtextInterpolate2("", ctx_r1.basketEntry.selectedItem.capacityVolume, " ", ctx_r1.basketEntry.selectedItem.capacityUnit, " ");
109
+ i0.ɵɵadvance(6);
110
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(18, 8, ctx_r1.updatedPrice, ctx_r1.basketEntry.selectedItem.attributes.currency), " ");
111
+ i0.ɵɵadvance(3);
112
+ i0.ɵɵproperty("ngIf", ctx_r1.basketEntry.status === "initial");
113
+ i0.ɵɵadvance(1);
114
+ i0.ɵɵproperty("ngIf", ctx_r1.basketEntry.status === "active");
115
+ } }
116
+ function ProductCardComponent_div_0_ng_template_11_ng_container_1_Template(rf, ctx) { if (rf & 1) {
117
+ const _r20 = i0.ɵɵgetCurrentView();
118
+ i0.ɵɵelementContainerStart(0);
119
+ i0.ɵɵelementStart(1, "span", 32);
120
+ i0.ɵɵtext(2, " Cet ingr\u00E9dient ne sera pas ajout\u00E9 \u00E0 votre panier ");
121
+ i0.ɵɵelementEnd();
122
+ i0.ɵɵelementStart(3, "button", 33);
123
+ i0.ɵɵlistener("click", function ProductCardComponent_div_0_ng_template_11_ng_container_1_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(3); return ctx_r19.replaceProduct(true); });
124
+ i0.ɵɵelementStart(4, "span");
125
+ i0.ɵɵtext(5, "Choisir un produit");
126
+ i0.ɵɵelementEnd();
127
+ i0.ɵɵelementEnd();
128
+ i0.ɵɵelementContainerEnd();
129
+ } }
130
+ function ProductCardComponent_div_0_ng_template_11_ng_container_2_Template(rf, ctx) { if (rf & 1) {
131
+ i0.ɵɵelementContainerStart(0);
132
+ i0.ɵɵelementStart(1, "span", 32);
133
+ i0.ɵɵtext(2, " Cet ingr\u00E9dient n\u2019est pas disponible ");
134
+ i0.ɵɵelementEnd();
135
+ i0.ɵɵelementContainerEnd();
136
+ } }
137
+ function ProductCardComponent_div_0_ng_template_11_Template(rf, ctx) { if (rf & 1) {
138
+ i0.ɵɵelementStart(0, "div", 31);
139
+ i0.ɵɵtemplate(1, ProductCardComponent_div_0_ng_template_11_ng_container_1_Template, 6, 0, "ng-container", 21);
140
+ i0.ɵɵtemplate(2, ProductCardComponent_div_0_ng_template_11_ng_container_2_Template, 3, 0, "ng-container", 21);
141
+ i0.ɵɵelementEnd();
142
+ } if (rf & 2) {
143
+ const ctx_r3 = i0.ɵɵnextContext(2);
144
+ i0.ɵɵadvance(1);
145
+ i0.ɵɵproperty("ngIf", ctx_r3.basketEntry.status === "ignored" || ctx_r3.basketEntry.status === "deleted" || ctx_r3.basketEntry.status === "often_deleted");
146
+ i0.ɵɵadvance(1);
147
+ i0.ɵɵproperty("ngIf", ctx_r3.basketEntry.status === "unavailable");
148
+ } }
149
+ function ProductCardComponent_div_0_div_13_Template(rf, ctx) { if (rf & 1) {
150
+ i0.ɵɵelementStart(0, "div", 34);
151
+ i0.ɵɵelementStart(1, "span", 35);
152
+ i0.ɵɵtext(2);
153
+ i0.ɵɵelementEnd();
154
+ i0.ɵɵelementEnd();
155
+ } if (rf & 2) {
156
+ const ctx_r4 = i0.ɵɵnextContext(2);
157
+ i0.ɵɵadvance(2);
158
+ i0.ɵɵtextInterpolate1(" Calcul\u00E9 pour ", ctx_r4.recipesIncludingIngredient, " repas ");
159
+ } }
160
+ const _c0 = function (a0, a1) { return { "added": a0, "disabled": a1 }; };
161
+ const _c1 = function (a0) { return { "miam-product-card__disabled-text": a0 }; };
162
+ function ProductCardComponent_div_0_Template(rf, ctx) { if (rf & 1) {
163
+ i0.ɵɵelementStart(0, "div", 1);
164
+ i0.ɵɵelementStart(1, "div", 2);
165
+ i0.ɵɵelementStart(2, "span", 3);
166
+ i0.ɵɵtext(3);
167
+ i0.ɵɵpipe(4, "capitalizeFirstLetter");
168
+ i0.ɵɵelementEnd();
169
+ i0.ɵɵelementStart(5, "span", 4);
170
+ i0.ɵɵelementStart(6, "span");
171
+ i0.ɵɵtext(7);
172
+ i0.ɵɵelementEnd();
173
+ i0.ɵɵelementStart(8, "span");
174
+ i0.ɵɵtext(9);
175
+ i0.ɵɵelementEnd();
176
+ i0.ɵɵelementEnd();
177
+ i0.ɵɵelementEnd();
178
+ i0.ɵɵtemplate(10, ProductCardComponent_div_0_div_10_Template, 22, 11, "div", 5);
179
+ i0.ɵɵtemplate(11, ProductCardComponent_div_0_ng_template_11_Template, 3, 2, "ng-template", null, 6, i0.ɵɵtemplateRefExtractor);
180
+ i0.ɵɵtemplate(13, ProductCardComponent_div_0_div_13_Template, 3, 1, "div", 7);
181
+ i0.ɵɵelementEnd();
182
+ } if (rf & 2) {
183
+ const _r2 = i0.ɵɵreference(12);
184
+ const ctx_r0 = i0.ɵɵnextContext();
185
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(12, _c0, ctx_r0.basketEntry.status === "active", ctx_r0.basketEntry.status === "ignored" || ctx_r0.basketEntry.status === "deleted" || ctx_r0.basketEntry.status === "often_deleted" || ctx_r0.basketEntry.status === "unavailable"));
186
+ i0.ɵɵadvance(1);
187
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(15, _c0, ctx_r0.basketEntry.status === "active", ctx_r0.basketEntry.status === "ignored" || ctx_r0.basketEntry.status === "deleted" || ctx_r0.basketEntry.status === "often_deleted" || ctx_r0.basketEntry.status === "unavailable"));
188
+ i0.ɵɵadvance(1);
189
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(18, _c1, ctx_r0.basketEntry.status === "ignored" || ctx_r0.basketEntry.status === "deleted" || ctx_r0.basketEntry.status === "often_deleted" || ctx_r0.basketEntry.status === "unavailable"));
190
+ i0.ɵɵadvance(1);
191
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 10, ctx_r0.basketEntry.name), " ");
192
+ i0.ɵɵadvance(2);
193
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(20, _c1, ctx_r0.basketEntry.status === "ignored" || ctx_r0.basketEntry.status === "deleted" || ctx_r0.basketEntry.status === "often_deleted" || ctx_r0.basketEntry.status === "unavailable"));
194
+ i0.ɵɵadvance(2);
195
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.modifiedIngQty, " ");
196
+ i0.ɵɵadvance(2);
197
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.ingredient.attributes.unit, " ");
198
+ i0.ɵɵadvance(1);
199
+ i0.ɵɵproperty("ngIf", ctx_r0.basketEntry.status === "initial" || ctx_r0.basketEntry.status === "active")("ngIfElse", _r2);
200
+ i0.ɵɵadvance(3);
201
+ i0.ɵɵproperty("ngIf", ctx_r0.recipesIncludingIngredient > 1);
202
+ } }
203
+ export class ProductCardComponent extends EventTracerComponent {
204
+ constructor(cdr, basketsService, recipeDetailsService, recipesService, analyticsService, itemsService) {
205
+ super(analyticsService);
206
+ this.cdr = cdr;
207
+ this.basketsService = basketsService;
208
+ this.recipeDetailsService = recipeDetailsService;
209
+ this.recipesService = recipesService;
210
+ this.analyticsService = analyticsService;
211
+ this.itemsService = itemsService;
212
+ this.subscriptions = [];
213
+ this.recipesIncludingIngredient = 0;
214
+ this.loading = false;
215
+ this.loadingAddToBasket = false;
216
+ this.counterMinusLoading = false;
217
+ this.disabled = false;
218
+ this.updatedPrice = '';
219
+ }
220
+ ngOnInit() {
221
+ this.subscriptions.push(this.loadOnRecipesActions(), this.loadOnIngredientsRemoval(), this.recipesService.displayedRecipeChanged$.subscribe(() => {
222
+ var _a, _b;
223
+ const recipe = (_a = this.recipesService.displayedRecipe$.value) === null || _a === void 0 ? void 0 : _a.recipe;
224
+ this.modifiedIngQty = (_b = recipe === null || recipe === void 0 ? void 0 : recipe.modifiedIngredients.find(i => i.name === this.ingredient.attributes.name)) === null || _b === void 0 ? void 0 : _b.qty;
225
+ this.cdr.detectChanges();
226
+ }));
227
+ }
228
+ ngOnChanges(changes) {
229
+ this.updatePriceForItem();
230
+ this.getProductCardState();
231
+ this.recipesIncludingIngredient = this.isInXRecipes();
232
+ this.loadingAddToBasket = false;
233
+ if (changes.ingredient) {
234
+ this.modifiedIngQty = +this.ingredient.quantity;
235
+ }
236
+ }
237
+ ngOnDestroy() {
238
+ var _a;
239
+ (_a = this.subscriptions) === null || _a === void 0 ? void 0 : _a.forEach(sub => sub.unsubscribe());
240
+ }
241
+ updatePriceForItem() {
242
+ if (this.basketEntry.selectedItem) {
243
+ this.subscriptions.push(this.itemsService.getPriceForItem(this.basketEntry.selectedItem.id).pipe(tap(response => {
244
+ this.updatedPrice = response.price;
245
+ })).subscribe(() => {
246
+ this.cdr.detectChanges();
247
+ }));
248
+ }
249
+ }
250
+ getProductCardState() {
251
+ if (!['often_deleted', 'deleted', 'ignored'].includes(this.basketEntry.status)) {
252
+ const { id, selectedItem, recipesIds } = this.basketEntry;
253
+ if (id === '-1') {
254
+ this.basketEntry.status = selectedItem ? 'initial' : 'unavailable';
255
+ }
256
+ else {
257
+ const isRecipeActive = recipesIds.includes(+this.recipeDetailsService.recipe.id);
258
+ this.basketEntry.status = isRecipeActive ? 'active' : 'initial';
259
+ }
260
+ }
261
+ }
262
+ counterChanged(newCount) {
263
+ if (newCount === 0) {
264
+ this.recipeDetailsService.ingredientRemoved(this.ingredient, this.eventTrace());
265
+ this.cdr.detectChanges();
266
+ }
267
+ else {
268
+ this.recipeDetailsService.updateProductQuantity(this.basketEntry, newCount, this.eventTrace());
269
+ }
270
+ }
271
+ addToBasket() {
272
+ this.loadingAddToBasket = true;
273
+ const recipe = this.recipeDetailsService.recipe;
274
+ this.subscriptions.push(this.basketsService.recipeIsInBasket(recipe.id).pipe(take(1)).subscribe(recipeIsInBasket => {
275
+ if (!recipeIsInBasket) {
276
+ this.basketsService.addRecipesToBasket([recipe.id], recipe.modifiedGuests, this.eventTrace(), false);
277
+ }
278
+ this.basketsService.addIngredientsToBasket(recipe.id, [{ ingredientId: this.ingredient.id, entry: this.basketEntry }], this.eventTrace());
279
+ }));
280
+ }
281
+ ignoreProduct() {
282
+ this.basketEntry.status = 'ignored';
283
+ }
284
+ replaceProduct(ignoreSelected) {
285
+ this.recipeDetailsService.replaceBasketEntry(this.basketEntry, ignoreSelected);
286
+ }
287
+ isInXRecipes() {
288
+ if (this.basketEntry.status !== 'active') {
289
+ return 1;
290
+ }
291
+ return this.basketEntry.recipesIds.length;
292
+ }
293
+ currentPath() {
294
+ return '';
295
+ }
296
+ loadOnRecipesActions() {
297
+ return combineLatest([
298
+ this.basketsService.recipesWillBeAdded(),
299
+ this.basketsService.recipesWillBeRemoved(),
300
+ this.basketsService.recipesWillBeUpdated()
301
+ ]).subscribe(res => {
302
+ this.disabled = res.some(isAdding => isAdding);
303
+ this.loading = res[0];
304
+ });
305
+ }
306
+ loadOnIngredientsRemoval() {
307
+ return this.basketsService.ingredientWillBeRemoved(this.ingredient.id).subscribe(isLoading => {
308
+ this.counterMinusLoading = isLoading;
309
+ this.cdr.detectChanges();
310
+ });
311
+ }
312
+ }
313
+ ProductCardComponent.ɵfac = function ProductCardComponent_Factory(t) { return new (t || ProductCardComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.BasketsService), i0.ɵɵdirectiveInject(i2.RecipeDetailsService), i0.ɵɵdirectiveInject(i1.RecipesService), i0.ɵɵdirectiveInject(i1.AnalyticsService), i0.ɵɵdirectiveInject(i1.ItemsService)); };
314
+ ProductCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ProductCardComponent, selectors: [["ng-miam-product-card"]], inputs: { basketEntry: "basketEntry", ingredient: "ingredient" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["class", "miam-product-card__container", 3, "ngClass", 4, "ngIf"], [1, "miam-product-card__container", 3, "ngClass"], [1, "miam-product-card__header", 3, "ngClass"], [1, "miam-product-card__header-name", "miam-ds-text", "size-l", "weight-xxl", 3, "ngClass"], [1, "miam-ds-text", "size-s", "weight-l", 3, "ngClass"], ["class", "miam-product-card__content", 4, "ngIf", "ngIfElse"], ["disabledProduct", ""], ["class", "miam-product-card__footer", 4, "ngIf"], [1, "miam-product-card__content"], [1, "miam-product-card__selected-product"], [1, "miam-product-card__picture-column"], ["alt", "product picture", 1, "miam-product-card__picture", 3, "src"], [1, "miam-product-card__info-column"], [1, "miam-ds-text", "size-xs", "weight-xl", "miam-product-card__details", "product-brand"], [1, "miam-ds-text", "size-xs", "miam-product-card__details", "product-fullname"], [1, "miam-product-card__badges"], [1, "miam-ds-badge"], [1, "miam-ds-link", 3, "click"], [1, "miam-product-card__lower-action"], [1, "miam-product-card__price", "miam-ds-text", "size-l", "weight-xxl"], [1, "miam-product-card__cta"], [4, "ngIf"], [1, "miam-ds-button", "ghost", "small", 3, "click"], [1, "miam-product-card__disabled-text"], ["class", "miam-ds-button square primary", 3, "disabled", "click", 4, "ngIf"], ["class", "miam-ds-button miam-product-card__loading-button square primary", 4, "ngIf"], [1, "miam-ds-button", "square", "primary", 3, "disabled", "click"], ["alt", "basket icon", "src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/Basket.svg"], [1, "miam-ds-button", "miam-product-card__loading-button", "square", "primary"], [1, "miam-ds-loader"], ["minRange", "0", 3, "value", "minusLoading", "valueChange"], [1, "miam-product-card__disabled-content"], [1, "miam-ds-text", "miam-product-card__disabled-text"], [1, "miam-ds-button", "ghost", 3, "click"], [1, "miam-product-card__footer"], [1, "miam-ds-text", "size-xs", "weight-xl", "light-text"]], template: function ProductCardComponent_Template(rf, ctx) { if (rf & 1) {
315
+ i0.ɵɵtemplate(0, ProductCardComponent_div_0_Template, 14, 22, "div", 0);
316
+ } if (rf & 2) {
317
+ i0.ɵɵproperty("ngIf", ctx.basketEntry);
318
+ } }, directives: [i3.NgIf, i3.NgClass, i4.CounterInputComponent], pipes: [i5.CapitalizeFirstLetterPipe, i3.CurrencyPipe, i3.AsyncPipe], styles: [".miam-product-card__container{background:var(--miam-ds-color-primary-text,#fff);border:1px solid var(--miam-ds-color-primary-100,#e4eaec);border-radius:8px;box-sizing:border-box;display:flex;flex-direction:column;height:100%;overflow:hidden;transition:all .3s}.miam-product-card__container.added{background:var(--miam-ds-color-primary-text,#fff);border:1px solid var(--miam-ds-color-primary,#24748f)}.miam-product-card__container .miam-product-card__header{align-items:center;background:var(--miam-ds-color-primary-100,#e4eaec);color:var(--miam-ds-color-neutral-black,#1f3543);display:flex;justify-content:space-between;padding:8px;transition:all .3s}.miam-product-card__container .miam-product-card__header.added{background:var(--miam-ds-color-primary,#24748f);color:var(--core-background-background-primary,#fff)}.miam-product-card__container .miam-product-card__header.disabled{background:var(--miam-ds-color-neutral-200,#d9dde1)}.miam-product-card__container .miam-product-card__content{display:flex;flex-direction:column;height:100%;padding:8px 12px}@media (max-width:1023px){.miam-product-card__container .miam-product-card__content{padding:12px}}.miam-product-card__container .miam-product-card__content .miam-product-card__selected-product{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center}@media (max-width:1023px){.miam-product-card__container .miam-product-card__content .miam-product-card__selected-product{align-items:flex-start;flex-direction:row;gap:16px;justify-content:flex-start}}.miam-product-card__container .miam-product-card__content .miam-product-card__selected-product .miam-product-card__picture{height:72px;width:72px}.miam-product-card__container .miam-product-card__content .miam-product-card__selected-product .miam-product-card__info-column{align-items:center;display:flex;flex-direction:column;justify-content:center}@media (max-width:1023px){.miam-product-card__container .miam-product-card__content .miam-product-card__selected-product .miam-product-card__info-column{align-items:flex-start}}.miam-product-card__container .miam-product-card__content .miam-product-card__selected-product .miam-product-card__info-column .miam-product-card__details{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--miam-ds-color-neutral-black,#1f3543);display:-webkit-box;font-size:12px!important;overflow:hidden;text-overflow:ellipsis}.miam-product-card__container .miam-product-card__content .miam-product-card__selected-product .miam-product-card__info-column .miam-product-card__details.product-brand{text-transform:uppercase}@media screen{.miam-product-card__container .miam-product-card__content .miam-product-card__selected-product .miam-product-card__info-column .miam-product-card__details.product-fullname{height:36px}}.miam-product-card__container .miam-product-card__content .miam-product-card__selected-product .miam-product-card__info-column .miam-product-card__link{font-size:14px}.miam-product-card__container .miam-product-card__content .miam-product-card__selected-product .miam-product-card__badges{display:flex;gap:8px;margin:8px 0}.miam-product-card__container .miam-product-card__content .miam-product-card__selected-product .miam-product-card__badges .miam-product-card__badge-text{color:var(--miam-ds-color-neutral-black,#1f3543);font-size:12px}.miam-product-card__container .miam-product-card__content .miam-product-card__lower-action{align-items:center;display:flex;gap:8px;justify-content:space-between}.miam-product-card__container .miam-product-card__content .miam-product-card__lower-action .miam-product-card__cta{align-items:center;display:flex;gap:8px}.miam-product-card__container .miam-product-card__content .miam-product-card__lower-action .miam-product-card__cta .miam-product-card__loading-button{padding:14px}@media (max-width:1024px){.miam-product-card__container .miam-product-card__content .miam-product-card__lower-action .miam-product-card__cta .miam-ds-button.primary:hover{background-color:var(--miam-ds-color-primary)}}.miam-product-card__container .miam-product-card__content .miam-product-card__lower-action .miam-product-card__price{color:var(--miam-ds-color-primary,#24748f)}.miam-product-card__container .miam-product-card__disabled-content{align-items:center;background:var(--miam-ds-color-neutral-200,#d9dde1);display:flex;flex-direction:column;gap:12px;height:100%;justify-content:center;padding:12px;text-align:center}.miam-product-card__container .miam-product-card__disabled-text{align-items:center;color:var(--miam-ds-color-neutral-black,#1f3543);display:flex;opacity:.65}.miam-product-card__container .miam-product-card__footer{align-items:center;background:var(--miam-ds-color-primary-50,#f0f3f4);display:flex;flex-direction:column;padding:8px}.miam-product-card__container .miam-product-card__footer .light-text{color:var(--miam-ds-color-neutral-black,#1f3543);opacity:.5}"], encapsulation: 2, changeDetection: 0 });
319
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ProductCardComponent, [{
320
+ type: Component,
321
+ args: [{
322
+ selector: 'ng-miam-product-card',
323
+ templateUrl: './product-card.component.html',
324
+ styleUrls: ['./product-card.component.scss'],
325
+ encapsulation: ViewEncapsulation.None,
326
+ changeDetection: ChangeDetectionStrategy.OnPush
327
+ }]
328
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.BasketsService }, { type: i2.RecipeDetailsService }, { type: i1.RecipesService }, { type: i1.AnalyticsService }, { type: i1.ItemsService }]; }, { basketEntry: [{
329
+ type: Input
330
+ }], ingredient: [{
331
+ type: Input
332
+ }] }); })();
333
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvYnVpbGRzL21pYW0vbmctbWlhbS1zZGsvcHJvamVjdHMvbmctbWlhbS9zcmMvIiwic291cmNlcyI6WyJsaWIvX2NvbXBvbmVudHMvcHJvZHVjdC1jYXJkL3Byb2R1Y3QtY2FyZC5jb21wb25lbnQudHMiLCJsaWIvX2NvbXBvbmVudHMvcHJvZHVjdC1jYXJkL3Byb2R1Y3QtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUtMLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQWEsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7SUNnRWpFLGtDQUVFO0lBRndFLDJOQUF1Qjs7SUFFL0YsMEJBRUY7SUFBQSxpQkFBUzs7O0lBSEQsMkdBQTBFOzs7SUFJbEYsa0NBQ0U7SUFBQSwwQkFBa0M7SUFDcEMsaUJBQVM7Ozs7SUFYWCw2QkFDRTtJQUFBLGtDQUNFO0lBRHlDLHNOQUF5QjtJQUNsRSxnQ0FBK0M7SUFBQSxrQ0FBa0I7SUFBQSxpQkFBTztJQUMxRSxpQkFBUztJQUNULHlHQUVFO0lBR0YseUdBQ0U7SUFFSiwwQkFBZTs7O0lBUkwsZUFB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QUM7UUFDeEIsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FDOUUsU0FBUyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDOzt3RkE3SVUsb0JBQW9CO3lEQUFwQixvQkFBb0I7UUN4QmpDLHVFQVNFOztRQUZBLHNDQUFtQjs7a0REaUJSLG9CQUFvQjtjQVBoQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsV0FBVyxFQUFFLCtCQUErQjtnQkFDNUMsU0FBUyxFQUFFLENBQUMsK0JBQStCLENBQUM7Z0JBQzVDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDsyTkFFVSxXQUFXO2tCQUFuQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFza2V0RW50cnksIEluZ3JlZGllbnQgfSBmcm9tICcuLi8uLi9fbW9kZWxzJztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UsIEJhc2tldHNTZXJ2aWNlLCBJdGVtc1NlcnZpY2UsIFJlY2lwZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IFJlY2lwZURldGFpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL3JlY2lwZS1kZXRhaWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXZlbnRUcmFjZXJDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdHMvZXZlbnQtdHJhY2VyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tcHJvZHVjdC1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2R1Y3QtY2FyZC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0Q2FyZENvbXBvbmVudCBleHRlbmRzIEV2ZW50VHJhY2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGJhc2tldEVudHJ5ITogQmFza2V0RW50cnk7XG4gIEBJbnB1dCgpIGluZ3JlZGllbnQhOiBJbmdyZWRpZW50O1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcmVjaXBlc0luY2x1ZGluZ0luZ3JlZGllbnQgPSAwO1xuICBtb2RpZmllZEluZ1F0eTogbnVtYmVyO1xuXG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgbG9hZGluZ0FkZFRvQmFza2V0ID0gZmFsc2U7XG4gIGNvdW50ZXJNaW51c0xvYWRpbmcgPSBmYWxzZTtcbiAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgdXBkYXRlZFByaWNlID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgYmFza2V0c1NlcnZpY2U6IEJhc2tldHNTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWNpcGVEZXRhaWxzU2VydmljZTogUmVjaXBlRGV0YWlsc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWNpcGVzU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBpdGVtc1NlcnZpY2U6IEl0ZW1zU2VydmljZSkge1xuICAgIHN1cGVyKGFuYWx5dGljc1NlcnZpY2UpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmxvYWRPblJlY2lwZXNBY3Rpb25zKCksXG4gICAgICB0aGlzLmxvYWRPbkluZ3JlZGllbnRzUmVtb3ZhbCgpLFxuICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5kaXNwbGF5ZWRSZWNpcGVDaGFuZ2VkJC5zdWJzY3JpYmUoICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVjaXBlID0gdGhpcy5yZWNpcGVzU2VydmljZS5kaXNwbGF5ZWRSZWNpcGUkLnZhbHVlPy5yZWNpcGU7XG4gICAgICAgIHRoaXMubW9kaWZpZWRJbmdRdHkgPSByZWNpcGU/Lm1vZGlmaWVkSW5ncmVkaWVudHMuZmluZChpID0+IGkubmFtZSA9PT0gdGhpcy5pbmdyZWRpZW50LmF0dHJpYnV0ZXMubmFtZSk/LnF0eTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlUHJpY2VGb3JJdGVtKCk7XG4gICAgdGhpcy5nZXRQcm9kdWN0Q2FyZFN0YXRlKCk7XG4gICAgdGhpcy5yZWNpcGVzSW5jbHVkaW5nSW5ncmVkaWVudCA9IHRoaXMuaXNJblhSZWNpcGVzKCk7XG4gICAgdGhpcy5sb2FkaW5nQWRkVG9CYXNrZXQgPSBmYWxzZTtcbiAgICBpZiAoY2hhbmdlcy5pbmdyZWRpZW50KSB7XG4gICAgICB0aGlzLm1vZGlmaWVkSW5nUXR5ID0gK3RoaXMuaW5ncmVkaWVudC5xdWFudGl0eTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnM/LmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHVwZGF0ZVByaWNlRm9ySXRlbSgpOiB2b2lke1xuICAgIGlmICh0aGlzLmJhc2tldEVudHJ5LnNlbGVjdGVkSXRlbSkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgIHRoaXMuaXRlbXNTZXJ2aWNlLmdldFByaWNlRm9ySXRlbSh0aGlzLmJhc2tldEVudHJ5LnNlbGVjdGVkSXRlbS5pZCkucGlwZShcbiAgICAgICAgICB0YXAocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVkUHJpY2UgPSByZXNwb25zZS5wcmljZTtcbiAgICAgICAgICB9KVxuICAgICAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBnZXRQcm9kdWN0Q2FyZFN0YXRlKCk6IHZvaWQge1xuICAgIGlmICghWydvZnRlbl9kZWxldGVkJywgJ2RlbGV0ZWQnLCAnaWdub3JlZCddLmluY2x1ZGVzKHRoaXMuYmFza2V0RW50cnkuc3RhdHVzKSkge1xuICAgICAgY29uc3QgeyBpZCwgc2VsZWN0ZWRJdGVtLCByZWNpcGVzSWRzIH0gPSB0aGlzLmJhc2tldEVudHJ5O1xuICAgICAgaWYgKGlkID09PSAnLTEnKSB7XG4gICAgICAgIHRoaXMuYmFza2V0RW50cnkuc3RhdHVzID0gc2VsZWN0ZWRJdGVtID8gJ2luaXRpYWwnIDogJ3VuYXZhaWxhYmxlJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGlzUmVjaXBlQWN0aXZlID0gcmVjaXBlc0lkcy5pbmNsdWRlcygrdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUuaWQpO1xuICAgICAgICB0aGlzLmJhc2tldEVudHJ5LnN0YXR1cyA9IGlzUmVjaXBlQWN0aXZlID8gJ2FjdGl2ZScgOiAnaW5pdGlhbCc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY291bnRlckNoYW5nZWQobmV3Q291bnQ6IG51bWJlcik6IHZvaWQge1xuICAgIGlmIChuZXdDb3VudCA9PT0gMCkge1xuICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50UmVtb3ZlZCh0aGlzLmluZ3JlZGllbnQsIHRoaXMuZXZlbnRUcmFjZSgpKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVQcm9kdWN0UXVhbnRpdHkodGhpcy5iYXNrZXRFbnRyeSwgbmV3Q291bnQsIHRoaXMuZXZlbnRUcmFjZSgpKTtcbiAgICB9XG4gIH1cblxuICBhZGRUb0Jhc2tldCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmdBZGRUb0Jhc2tldCA9IHRydWU7XG4gICAgY29uc3QgcmVjaXBlID0gdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGU7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlY2lwZUlzSW5CYXNrZXQocmVjaXBlLmlkKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShyZWNpcGVJc0luQmFza2V0ID0+IHtcbiAgICAgICAgaWYgKCFyZWNpcGVJc0luQmFza2V0KSB7XG4gICAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5hZGRSZWNpcGVzVG9CYXNrZXQoW3JlY2lwZS5pZF0sIHJlY2lwZS5tb2RpZmllZEd1ZXN0cywgdGhpcy5ldmVudFRyYWNlKCksIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLmFkZEluZ3JlZGllbnRzVG9CYXNrZXQoXG4gICAgICAgICAgcmVjaXBlLmlkLFxuICAgICAgICAgIFt7IGluZ3JlZGllbnRJZDogdGhpcy5pbmdyZWRpZW50LmlkLCBlbnRyeTogdGhpcy5iYXNrZXRFbnRyeSB9XSxcbiAgICAgICAgICB0aGlzLmV2ZW50VHJhY2UoKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgaWdub3JlUHJvZHVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLmJhc2tldEVudHJ5LnN0YXR1cyA9ICdpZ25vcmVkJztcbiAgfVxuXG4gIHJlcGxhY2VQcm9kdWN0KGlnbm9yZVNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZXBsYWNlQmFza2V0RW50cnkodGhpcy5iYXNrZXRFbnRyeSwgaWdub3JlU2VsZWN0ZWQpO1xuICB9XG5cbiAgaXNJblhSZWNpcGVzKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuYmFza2V0RW50cnkuc3RhdHVzICE9PSAnYWN0aXZlJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmJhc2tldEVudHJ5LnJlY2lwZXNJZHMubGVuZ3RoO1xuICB9XG5cbiAgY3VycmVudFBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwcml2YXRlIGxvYWRPblJlY2lwZXNBY3Rpb25zKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVzV2lsbEJlQWRkZWQoKSxcbiAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlc1dpbGxCZVJlbW92ZWQoKSxcbiAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlc1dpbGxCZVVwZGF0ZWQoKVxuICAgIF0pLnN1YnNjcmliZShcbiAgICAgIHJlcyA9PiB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSByZXMuc29tZShpc0FkZGluZyA9PiBpc0FkZGluZyk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHJlc1swXTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkT25JbmdyZWRpZW50c1JlbW92YWwoKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5iYXNrZXRzU2VydmljZS5pbmdyZWRpZW50V2lsbEJlUmVtb3ZlZCh0aGlzLmluZ3JlZGllbnQuaWQpLnN1YnNjcmliZShcbiAgICAgIGlzTG9hZGluZyA9PiB7XG4gICAgICAgIHRoaXMuY291bnRlck1pbnVzTG9hZGluZyA9IGlzTG9hZGluZztcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgICk7XG4gIH1cbn1cbiIsIjwhLS0gUFJPRFVDVCBDQVJEIC0tPlxuPGRpdlxuICBjbGFzcz1cIm1pYW0tcHJvZHVjdC1jYXJkX19jb250YWluZXJcIlxuICBbbmdDbGFzc109XCJ7XG4gICdhZGRlZCc6IGJhc2tldEVudHJ5LnN0YXR1cyA9PT0gJ2FjdGl2ZScsXG4gICdkaXNhYmxlZCc6IGJhc2tldEVudHJ5LnN0YXR1cyA9PT0gJ2lnbm9yZWQnIHx8IGJhc2tldEVudHJ5LnN0YXR1cyA9PT0gJ2RlbGV0ZWQnIFxuICAgICAgICAgICAgICB8fCBiYXNrZXRFbnRyeS5zdGF0dXMgPT09ICdvZnRlbl9kZWxldGVkJyB8fCBiYXNrZXRFbnRyeS5zdGF0dXMgPT09ICd1bmF2YWlsYWJsZSdcbiAgfVwiXG4gICpuZ0lmPVwiYmFza2V0RW50cnlcIlxuPlxuICA8IS0tIEhFQURFUiAtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwibWlhbS1wcm9kdWN0LWNhcmRfX2hlYWRlclwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICdhZGRlZCc6IGJhc2tldEVudHJ5LnN0YXR1cyA9PT0gJ2FjdGl2ZScsXG4gICAgJ2Rpc2FibGVkJzogYmFza2V0RW50cnkuc3RhdHVzID09PSAnaWdub3JlZCcgfHwgYmFza2V0RW50cnkuc3RhdHVzID09PSAnZGVsZXRlZCcgXG4gICAgICAgICAgICAgICAgfHwgYmFza2V0RW50cnkuc3RhdHVzID09PSAnb2Z0ZW5fZGVsZXRlZCcgfHwgYmFza2V0RW50cnkuc3RhdHVzID09PSAndW5hdmFpbGFibGUnXG4gICAgfVwiXG4gID5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJtaWFtLXByb2R1Y3QtY2FyZF9faGVhZGVyLW5hbWUgbWlhbS1kcy10ZXh0IHNpemUtbCB3ZWlnaHQteHhsXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsnbWlhbS1wcm9kdWN0LWNhcmRfX2Rpc2FibGVkLXRleHQnOiBiYXNrZXRFbnRyeS5zdGF0dXMgPT09ICdpZ25vcmVkJyB8fCBiYXNrZXRFbnRyeS5zdGF0dXMgPT09ICdkZWxldGVkJyBcbiAgICAgICAgICAgICAgICAgIHx8IGJhc2tldEVudHJ5LnN0YXR1cyA9PT0gJ29mdGVuX2RlbGV0ZWQnIHx8IGJhc2tldEVudHJ5LnN0YXR1cyA9PT0gJ3VuYXZhaWxhYmxlJ31cIlxuICAgID5cbiAgICAgIHt7IGJhc2tldEVudHJ5Lm5hbWUgfCBjYXBpdGFsaXplRmlyc3RMZXR0ZXIgfX1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwibWlhbS1kcy10ZXh0IHNpemUtcyB3ZWlnaHQtbFwiXG4gICAgICBbbmdDbGFzc109XCJ7J21pYW0tcHJvZHVjdC1jYXJkX19kaXNhYmxlZC10ZXh0JzogYmFza2V0RW50cnkuc3RhdHVzID09PSAnaWdub3JlZCcgfHwgYmFza2V0RW50cnkuc3RhdHVzID09PSAnZGVsZXRlZCcgXG4gICAgICAgICAgICAgICAgICB8fCBiYXNrZXRFbnRyeS5zdGF0dXMgPT09ICdvZnRlbl9kZWxldGVkJyB8fCBiYXNrZXRFbnRyeS5zdGF0dXMgPT09ICd1bmF2YWlsYWJsZSd9XCJcbiAgICA+XG4gICAgICA8c3Bhbj5cbiAgICAgICAge3sgbW9kaWZpZWRJbmdRdHkgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuPlxuICAgICAgICB7eyBpbmdyZWRpZW50LmF0dHJpYnV0ZXMudW5pdCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDwhLS0gQ09OVEVOVCAtLT5cbiAgPGRpdiAqbmdJZj1cImJhc2tldEVudHJ5LnN0YXR1cyA9PT0gJ2luaXRpYWwnIHx8IGJhc2tldEVudHJ5LnN0YXR1cyA9PT0gJ2FjdGl2ZSc7IGVsc2UgZGlzYWJsZWRQcm9kdWN0XCJcbiAgICAgICBjbGFzcz1cIm1pYW0tcHJvZHVjdC1jYXJkX19jb250ZW50XCI+XG4gICAgPCEtLSBQUk9EVUNUIElORk8gLS0+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcHJvZHVjdC1jYXJkX19zZWxlY3RlZC1wcm9kdWN0XCI+XG4gICAgICA8IS0tIFBJQ1RVUkUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1wcm9kdWN0LWNhcmRfX3BpY3R1cmUtY29sdW1uXCI+XG4gICAgICAgIDxpbWcgY2xhc3M9XCJtaWFtLXByb2R1Y3QtY2FyZF9fcGljdHVyZVwiIGFsdD1cInByb2R1Y3QgcGljdHVyZVwiIFtzcmNdPVwiYmFza2V0RW50cnkuc2VsZWN0ZWRJdGVtLmF0dHJpYnV0ZXMuaW1hZ2VcIj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBJTkZPIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcHJvZHVjdC1jYXJkX19pbmZvLWNvbHVtblwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tZHMtdGV4dCBzaXplLXhzIHdlaWdodC14bCBtaWFtLXByb2R1Y3QtY2FyZF9fZGV0YWlscyBwcm9kdWN0LWJyYW5kXCI+XG4gICAgICAgICAge3sgYmFza2V0RW50cnkuc2VsZWN0ZWRJdGVtLmF0dHJpYnV0ZXMuYnJhbmQgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tZHMtdGV4dCBzaXplLXhzIG1pYW0tcHJvZHVjdC1jYXJkX19kZXRhaWxzIHByb2R1Y3QtZnVsbG5hbWVcIj5cbiAgICAgICAgICB7eyBiYXNrZXRFbnRyeS5zZWxlY3RlZEl0ZW0uYXR0cmlidXRlcy5uYW1lIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcHJvZHVjdC1jYXJkX19iYWRnZXNcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtYmFkZ2VcIj57eyBiYXNrZXRFbnRyeS5zZWxlY3RlZEl0ZW0uY2FwYWNpdHlWb2x1bWUgfX0ge3sgYmFza2V0RW50cnkuc2VsZWN0ZWRJdGVtLmNhcGFjaXR5VW5pdCB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGFcbiAgICAgICAgICAoY2xpY2spPVwicmVwbGFjZVByb2R1Y3QoZmFsc2UpXCJcbiAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtbGlua1wiXG4gICAgICAgID5cbiAgICAgICAgICA8c3Bhbj5SZW1wbGFjZXI8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXByb2R1Y3QtY2FyZF9fbG93ZXItYWN0aW9uXCI+XG4gICAgICA8IS0tIFBSSUNFIC0tPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXByb2R1Y3QtY2FyZF9fcHJpY2UgbWlhbS1kcy10ZXh0IHNpemUtbCB3ZWlnaHQteHhsXCI+XG4gICAgICAgIHt7IHVwZGF0ZWRQcmljZSB8IGN1cnJlbmN5OiBiYXNrZXRFbnRyeS5zZWxlY3RlZEl0ZW0uYXR0cmlidXRlcy5jdXJyZW5jeSB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPCEtLSBDVEEgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1wcm9kdWN0LWNhcmRfX2N0YVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYmFza2V0RW50cnkuc3RhdHVzID09PSAnaW5pdGlhbCdcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWlhbS1kcy1idXR0b24gZ2hvc3Qgc21hbGxcIiAoY2xpY2spPVwiaWdub3JlUHJvZHVjdCgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcHJvZHVjdC1jYXJkX19kaXNhYmxlZC10ZXh0XCI+SWdub3JlciBjZSBwcm9kdWl0PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhbG9hZGluZ0FkZFRvQmFza2V0XCIgY2xhc3M9XCJtaWFtLWRzLWJ1dHRvbiBzcXVhcmUgcHJpbWFyeVwiIChjbGljayk9XCJhZGRUb0Jhc2tldCgpXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIocmVjaXBlRGV0YWlsc1NlcnZpY2UuYWxsSW5ncmVkaWVudHNUb0Jhc2tldExvYWRpbmckIHwgYXN5bmMpXCI+XG4gICAgICAgICAgICA8aW1nIGFsdD1cImJhc2tldCBpY29uXCJcbiAgICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9CYXNrZXQuc3ZnXCIvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJsb2FkaW5nQWRkVG9CYXNrZXRcIiBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIG1pYW0tcHJvZHVjdC1jYXJkX19sb2FkaW5nLWJ1dHRvbiBzcXVhcmUgcHJpbWFyeVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tZHMtbG9hZGVyXCI+PC9kaXY+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYmFza2V0RW50cnkuc3RhdHVzID09PSAnYWN0aXZlJ1wiPlxuICAgICAgICAgIDxuZy1taWFtLWNvdW50ZXItaW5wdXQgbWluUmFuZ2U9XCIwXCIgW3ZhbHVlXT1cImJhc2tldEVudHJ5LnF1YW50aXR5XCIgW21pbnVzTG9hZGluZ109XCJjb3VudGVyTWludXNMb2FkaW5nXCIgKHZhbHVlQ2hhbmdlKT1cImNvdW50ZXJDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgICA8L25nLW1pYW0tY291bnRlci1pbnB1dD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gSUdOT1JFRCBPUiBVTkFWQUlMQUJMRSBQUk9EVUNUIENBUkQgQ09OVEVOVCAtLT5cbiAgPG5nLXRlbXBsYXRlICNkaXNhYmxlZFByb2R1Y3Q+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcHJvZHVjdC1jYXJkX19kaXNhYmxlZC1jb250ZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYmFza2V0RW50cnkuc3RhdHVzID09PSAnaWdub3JlZCcgfHwgYmFza2V0RW50cnkuc3RhdHVzID09PSAnZGVsZXRlZCcgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJhc2tldEVudHJ5LnN0YXR1cyA9PT0gJ29mdGVuX2RlbGV0ZWQnXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tZHMtdGV4dCBtaWFtLXByb2R1Y3QtY2FyZF9fZGlzYWJsZWQtdGV4dFwiPlxuICAgICAgICBDZXQgaW5ncsOpZGllbnQgbmUgc2VyYSBwYXMgYWpvdXTDqSDDoCB2b3RyZSBwYW5pZXJcbiAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIGdob3N0XCIgKGNsaWNrKT1cInJlcGxhY2VQcm9kdWN0KHRydWUpXCI+XG4gICAgICAgICAgPHNwYW4+Q2hvaXNpciB1biBwcm9kdWl0PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJhc2tldEVudHJ5LnN0YXR1cyA9PT0gJ3VuYXZhaWxhYmxlJ1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLWRzLXRleHQgbWlhbS1wcm9kdWN0LWNhcmRfX2Rpc2FibGVkLXRleHRcIj5cbiAgICAgICAgQ2V0IGluZ3LDqWRpZW50IG7igJllc3QgcGFzIGRpc3BvbmlibGVcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuICA8IS0tIEZPT1RFUiAtLT5cbiAgPGRpdlxuICAgICpuZ0lmPVwicmVjaXBlc0luY2x1ZGluZ0luZ3JlZGllbnQgPiAxXCJcbiAgICBjbGFzcz1cIm1pYW0tcHJvZHVjdC1jYXJkX19mb290ZXJcIj5cbiAgICA8c3BhbiBjbGFzcz1cIm1pYW0tZHMtdGV4dCBzaXplLXhzIHdlaWdodC14bCBsaWdodC10ZXh0XCI+XG4gICAgICBDYWxjdWzDqSBwb3VyIHt7IHJlY2lwZXNJbmNsdWRpbmdJbmdyZWRpZW50IH19IHJlcGFzXG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,155 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewEncapsulation } from '@angular/core';
2
+ import { ContextService } from '../../_services';
3
+ import { RecipeDetailsService } from '../../_services/recipe-details.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../_services";
6
+ import * as i2 from "../../_services/recipe-details.service";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "../product-card/product-card.component";
9
+ import * as i5 from "../accordion/accordion.component";
10
+ function ProductsPickerComponent_div_5_Template(rf, ctx) { if (rf & 1) {
11
+ i0.ɵɵelement(0, "div", 10);
12
+ } }
13
+ function ProductsPickerComponent_div_7_ng_miam_product_card_1_Template(rf, ctx) { if (rf & 1) {
14
+ i0.ɵɵelement(0, "ng-miam-product-card", 13);
15
+ } if (rf & 2) {
16
+ const product_r5 = ctx.$implicit;
17
+ i0.ɵɵproperty("basketEntry", product_r5.basketEntry)("ingredient", product_r5.ingredient);
18
+ } }
19
+ function ProductsPickerComponent_div_7_Template(rf, ctx) { if (rf & 1) {
20
+ i0.ɵɵelementStart(0, "div", 11);
21
+ i0.ɵɵtemplate(1, ProductsPickerComponent_div_7_ng_miam_product_card_1_Template, 1, 2, "ng-miam-product-card", 12);
22
+ i0.ɵɵelementEnd();
23
+ } if (rf & 2) {
24
+ const ctx_r1 = i0.ɵɵnextContext();
25
+ i0.ɵɵadvance(1);
26
+ i0.ɵɵproperty("ngForOf", ctx_r1.recipeDetailsService.productsByCategory.toPickProducts)("ngForTrackBy", ctx_r1.trackByFn);
27
+ } }
28
+ function ProductsPickerComponent_div_9_ng_miam_product_card_7_Template(rf, ctx) { if (rf & 1) {
29
+ i0.ɵɵelement(0, "ng-miam-product-card", 13);
30
+ } if (rf & 2) {
31
+ const product_r7 = ctx.$implicit;
32
+ i0.ɵɵproperty("basketEntry", product_r7.basketEntry)("ingredient", product_r7.ingredient);
33
+ } }
34
+ function ProductsPickerComponent_div_9_Template(rf, ctx) { if (rf & 1) {
35
+ i0.ɵɵelementStart(0, "div");
36
+ i0.ɵɵelementStart(1, "ng-miam-accordion", 14);
37
+ i0.ɵɵelementStart(2, "ng-miam-accordion-title");
38
+ i0.ɵɵelementStart(3, "span", 2);
39
+ i0.ɵɵtext(4, " D\u00E9j\u00E0 dans le placard ");
40
+ i0.ɵɵelementEnd();
41
+ i0.ɵɵelementEnd();
42
+ i0.ɵɵelementStart(5, "ng-miam-accordion-content");
43
+ i0.ɵɵelementStart(6, "div", 11);
44
+ i0.ɵɵtemplate(7, ProductsPickerComponent_div_9_ng_miam_product_card_7_Template, 1, 2, "ng-miam-product-card", 12);
45
+ i0.ɵɵelementEnd();
46
+ i0.ɵɵelementEnd();
47
+ i0.ɵɵelementEnd();
48
+ i0.ɵɵelementEnd();
49
+ } if (rf & 2) {
50
+ const ctx_r2 = i0.ɵɵnextContext();
51
+ i0.ɵɵadvance(1);
52
+ i0.ɵɵproperty("isCollapsed", false);
53
+ i0.ɵɵadvance(6);
54
+ i0.ɵɵproperty("ngForOf", ctx_r2.recipeDetailsService.productsByCategory.oftenIgnoredProducts)("ngForTrackBy", ctx_r2.trackByFn);
55
+ } }
56
+ function ProductsPickerComponent_div_10_ng_miam_product_card_6_Template(rf, ctx) { if (rf & 1) {
57
+ i0.ɵɵelement(0, "ng-miam-product-card", 13);
58
+ } if (rf & 2) {
59
+ const product_r9 = ctx.$implicit;
60
+ i0.ɵɵproperty("basketEntry", product_r9.basketEntry)("ingredient", product_r9.ingredient);
61
+ } }
62
+ function ProductsPickerComponent_div_10_Template(rf, ctx) { if (rf & 1) {
63
+ i0.ɵɵelementStart(0, "div");
64
+ i0.ɵɵelementStart(1, "ng-miam-accordion", 14);
65
+ i0.ɵɵelementStart(2, "ng-miam-accordion-title");
66
+ i0.ɵɵtext(3, " Articles indisponibles ");
67
+ i0.ɵɵelementEnd();
68
+ i0.ɵɵelementStart(4, "ng-miam-accordion-content");
69
+ i0.ɵɵelementStart(5, "div", 11);
70
+ i0.ɵɵtemplate(6, ProductsPickerComponent_div_10_ng_miam_product_card_6_Template, 1, 2, "ng-miam-product-card", 12);
71
+ i0.ɵɵelementEnd();
72
+ i0.ɵɵelementEnd();
73
+ i0.ɵɵelementEnd();
74
+ i0.ɵɵelementEnd();
75
+ } if (rf & 2) {
76
+ const ctx_r3 = i0.ɵɵnextContext();
77
+ i0.ɵɵadvance(1);
78
+ i0.ɵɵproperty("isCollapsed", true);
79
+ i0.ɵɵadvance(5);
80
+ i0.ɵɵproperty("ngForOf", ctx_r3.recipeDetailsService.productsByCategory.unavailableProducts)("ngForTrackBy", ctx_r3.trackByFn);
81
+ } }
82
+ export class ProductsPickerComponent {
83
+ constructor(contextService, recipeDetailsService, cdr) {
84
+ this.contextService = contextService;
85
+ this.recipeDetailsService = recipeDetailsService;
86
+ this.cdr = cdr;
87
+ this.subscriptions = [];
88
+ }
89
+ ngOnInit() {
90
+ this.listenToProducts();
91
+ this.subscriptions.push(this.recipeDetailsService.productsLoading$.subscribe(() => {
92
+ this.cdr.detectChanges();
93
+ }));
94
+ }
95
+ ngOnDestroy() {
96
+ var _a;
97
+ (_a = this.subscriptions) === null || _a === void 0 ? void 0 : _a.forEach(sub => sub.unsubscribe());
98
+ }
99
+ listenToProducts() {
100
+ this.subscriptions.push(this.recipeDetailsService.productsByCategory$.subscribe(() => this.cdr.detectChanges()));
101
+ }
102
+ trackByFn(index, item) {
103
+ var _a;
104
+ return item.basketEntry.id + item.basketEntry.status + (((_a = item.basketEntry.selectedItem) === null || _a === void 0 ? void 0 : _a.id) || '');
105
+ }
106
+ }
107
+ ProductsPickerComponent.ɵfac = function ProductsPickerComponent_Factory(t) { return new (t || ProductsPickerComponent)(i0.ɵɵdirectiveInject(i1.ContextService), i0.ɵɵdirectiveInject(i2.RecipeDetailsService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
108
+ ProductsPickerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ProductsPickerComponent, selectors: [["ng-miam-products-picker"]], decls: 15, vars: 10, consts: [[1, "miam-products-picker__container"], [1, "miam-products-picker__header"], [1, "miam-ds-text", "weight-xxl"], [1, "miam-products-picker__header-text"], ["class", " miam-ds-loader miam-products-picker__loader", 4, "ngIf"], ["class", "miam-products-picker__list", 4, "ngIf"], [4, "ngIf"], [1, "miam-products-picker__more"], [1, "miam-products-picker__more-anchor", 3, "href"], [1, "miam-ds-button", "secondary"], [1, "miam-ds-loader", "miam-products-picker__loader"], [1, "miam-products-picker__list"], ["class", "miam-products-picker__items", 3, "basketEntry", "ingredient", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "miam-products-picker__items", 3, "basketEntry", "ingredient"], [3, "isCollapsed"]], template: function ProductsPickerComponent_Template(rf, ctx) { if (rf & 1) {
109
+ i0.ɵɵelementStart(0, "div", 0);
110
+ i0.ɵɵelementStart(1, "div", 1);
111
+ i0.ɵɵelementStart(2, "div", 2);
112
+ i0.ɵɵelementStart(3, "span", 3);
113
+ i0.ɵɵtext(4);
114
+ i0.ɵɵelementEnd();
115
+ i0.ɵɵelementEnd();
116
+ i0.ɵɵelementEnd();
117
+ i0.ɵɵtemplate(5, ProductsPickerComponent_div_5_Template, 1, 0, "div", 4);
118
+ i0.ɵɵpipe(6, "async");
119
+ i0.ɵɵtemplate(7, ProductsPickerComponent_div_7_Template, 2, 2, "div", 5);
120
+ i0.ɵɵpipe(8, "async");
121
+ i0.ɵɵtemplate(9, ProductsPickerComponent_div_9_Template, 8, 3, "div", 6);
122
+ i0.ɵɵtemplate(10, ProductsPickerComponent_div_10_Template, 7, 3, "div", 6);
123
+ i0.ɵɵelementStart(11, "div", 7);
124
+ i0.ɵɵelementStart(12, "a", 8);
125
+ i0.ɵɵelementStart(13, "button", 9);
126
+ i0.ɵɵtext(14, " Voir plus d'id\u00E9es repas ");
127
+ i0.ɵɵelementEnd();
128
+ i0.ɵɵelementEnd();
129
+ i0.ɵɵelementEnd();
130
+ i0.ɵɵelementEnd();
131
+ } if (rf & 2) {
132
+ i0.ɵɵadvance(4);
133
+ i0.ɵɵtextInterpolate1("", ctx.recipeDetailsService.totalProducts, " ingr\u00E9dients");
134
+ i0.ɵɵadvance(1);
135
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(6, 6, ctx.recipeDetailsService.productsLoading$));
136
+ i0.ɵɵadvance(2);
137
+ i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(8, 8, ctx.recipeDetailsService.productsLoading$));
138
+ i0.ɵɵadvance(2);
139
+ i0.ɵɵproperty("ngIf", ctx.recipeDetailsService.productsByCategory.oftenIgnoredProducts.length > 0);
140
+ i0.ɵɵadvance(1);
141
+ i0.ɵɵproperty("ngIf", ctx.recipeDetailsService.productsByCategory.unavailableProducts.length > 0);
142
+ i0.ɵɵadvance(2);
143
+ i0.ɵɵproperty("href", ctx.contextService.catalogUrl, i0.ɵɵsanitizeUrl);
144
+ } }, directives: [i3.NgIf, i3.NgForOf, i4.ProductCardComponent, i5.AccordionComponent, i5.AccordionTitleDirective, i5.AccordionContentDirective], pipes: [i3.AsyncPipe], styles: [".miam-products-picker__container{display:flex;flex-direction:column;gap:16px;padding:16px}.miam-products-picker__container .miam-products-picker__loader{background-position-x:20px;background-size:20px 20px;height:40px;margin:0 auto;width:40px}.miam-products-picker__container .miam-products-picker__header{align-items:center;display:flex;justify-content:space-between}.miam-products-picker__container .miam-products-picker__header .miam-products-picker__header-text{color:var(--miam-ds-color-neutral-black,#1f3543);font-size:16px;line-height:150%}@media (min-width:1024px){.miam-products-picker__container .miam-products-picker__header .miam-products-picker__header-text{font-size:20px;line-height:120%}}.miam-products-picker__container .miam-products-picker__list{display:grid;grid-gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.miam-products-picker__container .miam-products-picker__more{display:flex;justify-content:center}.miam-products-picker__container .miam-products-picker__more .miam-products-picker__more-anchor{text-decoration:inherit}"], encapsulation: 2, changeDetection: 0 });
145
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ProductsPickerComponent, [{
146
+ type: Component,
147
+ args: [{
148
+ selector: 'ng-miam-products-picker',
149
+ templateUrl: './products-picker.component.html',
150
+ styleUrls: ['./products-picker.component.scss'],
151
+ encapsulation: ViewEncapsulation.None,
152
+ changeDetection: ChangeDetectionStrategy.OnPush
153
+ }]
154
+ }], function () { return [{ type: i1.ContextService }, { type: i2.RecipeDetailsService }, { type: i0.ChangeDetectorRef }]; }, null); })();
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdHMtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvYnVpbGRzL21pYW0vbmctbWlhbS1zZGsvcHJvamVjdHMvbmctbWlhbS9zcmMvIiwic291cmNlcyI6WyJsaWIvX2NvbXBvbmVudHMvcHJvZHVjdHMtcGlja2VyL3Byb2R1Y3RzLXBpY2tlci5jb21wb25lbnQudHMiLCJsaWIvX2NvbXBvbmVudHMvcHJvZHVjdHMtcGlja2VyL3Byb2R1Y3RzLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBR1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQVcsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7SUNLckYsMEJBQXNIOzs7SUFHcEgsMkNBTXVCOzs7SUFIckIsb0RBQW1DLHFDQUFBOzs7SUFKdkMsK0JBQ0U7SUFBQSxpSEFNQTtJQUNGLGlCQUFNOzs7SUFORixlQUFrRztJQUFsRyx1RkFBa0csa0NBQUE7OztJQWlCOUYsMkNBTXVCOzs7SUFIckIsb0RBQW1DLHFDQUFBOzs7SUFaN0MsMkJBQ0U7SUFBQSw2Q0FDRTtJQUFBLCtDQUNFO0lBQUEsK0JBQ0U7SUFBQSxnREFDRjtJQUFBLGlCQUFPO0lBQ1QsaUJBQTBCO0lBQzFCLGlEQUNFO0lBQUEsK0JBQ0U7SUFBQSxpSEFNQTtJQUNGLGlCQUFNO0lBQ1IsaUJBQTRCO0lBQzlCLGlCQUFvQjtJQUN0QixpQkFBTTs7O0lBbEJlLGVBQXFCO0lBQXJCLG1DQUFxQjtJQVNoQyxlQUF3RztJQUF4Ryw2RkFBd0csa0NBQUE7OztJQWtCMUcsMkNBTXVCOzs7SUFIckIsb0RBQW1DLHFDQUFBOzs7SUFWN0MsMkJBQ0U7SUFBQSw2Q0FDRTtJQUFBLCtDQUNFO0lBQUEsd0NBQ0Y7SUFBQSxpQkFBMEI7SUFDMUIsaURBQ0U7SUFBQSwrQkFDRTtJQUFBLGtIQU1BO0lBQ0YsaUJBQU07SUFDUixpQkFBNEI7SUFDOUIsaUJBQW9CO0lBQ3RCLGlCQUFNOzs7SUFoQmUsZUFBb0I7SUFBcEIsa0NBQW9CO0lBTy9CLGVBQXVHO0lBQXZHLDRGQUF1RyxrQ0FBQTs7QURwQ25ILE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFBbUIsY0FBOEIsRUFBUyxvQkFBMEMsRUFBVSxHQUFzQjtRQUFqSCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBUyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFGNUgsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBRzNDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXOztRQUNULE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxFQUFFO0lBQ3hELENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNuRixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFhOztRQUNwQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsT0FBQSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksMENBQUUsRUFBRSxLQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25HLENBQUM7OzhGQTNCVSx1QkFBdUI7NERBQXZCLHVCQUF1QjtRQ25CcEMsOEJBQ0U7UUFDQSw4QkFDRTtRQUFBLDhCQUNFO1FBQUEsK0JBQWdEO1FBQUEsWUFBb0Q7UUFBQSxpQkFBTztRQUM3RyxpQkFBTTtRQVFSLGlCQUFNO1FBQ04sd0VBQWdIOztRQUVoSCx3RUFDRTs7UUFTRix3RUFDRTtRQW9CRiwwRUFDRTtRQWtCRiwrQkFDRTtRQUFBLDZCQUNFO1FBQUEsa0NBQ0U7UUFBQSwrQ0FDRjtRQUFBLGlCQUFTO1FBQ1gsaUJBQUk7UUFDTixpQkFBTTtRQUNSLGlCQUFNOztRQXJFZ0QsZUFBb0Q7UUFBcEQsc0ZBQW9EO1FBVW5HLGVBQXFEO1FBQXJELHNGQUFxRDtRQUVyRCxlQUF3RDtRQUF4RCx1RkFBd0Q7UUFVeEQsZUFBK0U7UUFBL0Usa0dBQStFO1FBcUIvRSxlQUE4RTtRQUE5RSxpR0FBOEU7UUFvQnBDLGVBQWtDO1FBQWxDLHNFQUFrQzs7a0REaER0RSx1QkFBdUI7Y0FQbkMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFdBQVcsRUFBRSxrQ0FBa0M7Z0JBQy9DLFNBQVMsRUFBRSxDQUFDLGtDQUFrQyxDQUFDO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgUHJvZHVjdCwgUmVjaXBlRGV0YWlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvcmVjaXBlLWRldGFpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1wcm9kdWN0cy1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdHMtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZHVjdHMtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RzUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IocHVibGljIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSwgcHVibGljIHJlY2lwZURldGFpbHNTZXJ2aWNlOiBSZWNpcGVEZXRhaWxzU2VydmljZSwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvUHJvZHVjdHMoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucHJvZHVjdHNMb2FkaW5nJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnM/LmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGxpc3RlblRvUHJvZHVjdHMoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wcm9kdWN0c0J5Q2F0ZWdvcnkkLnN1YnNjcmliZSgoKSA9PlxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gICAgKSk7XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogUHJvZHVjdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0uYmFza2V0RW50cnkuaWQgKyBpdGVtLmJhc2tldEVudHJ5LnN0YXR1cyArIChpdGVtLmJhc2tldEVudHJ5LnNlbGVjdGVkSXRlbT8uaWQgfHwgJycpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWlhbS1wcm9kdWN0cy1waWNrZXJfX2NvbnRhaW5lclwiPlxuICA8IS0tIE5VTUJFUiBJTkdSRURJRU5UICsgUFJPRFVDVCBUWVBFIFNFTEVDVE9SIC0tPlxuICA8ZGl2IGNsYXNzPVwibWlhbS1wcm9kdWN0cy1waWNrZXJfX2hlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLWRzLXRleHQgd2VpZ2h0LXh4bFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXByb2R1Y3RzLXBpY2tlcl9faGVhZGVyLXRleHRcIj57eyByZWNpcGVEZXRhaWxzU2VydmljZS50b3RhbFByb2R1Y3RzIH19IGluZ3LDqWRpZW50czwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJtaWFtLWRzLWRyb3Bkb3duXCI+XG4gICAgIDxzZWxlY3Q+XG4gICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHByb2R1Y3RzVHlwZU9wdGlvblwiPlxuICAgICAgICAge3sgb3B0aW9uIH19XG4gICAgICAgPC9vcHRpb24+XG4gICAgIDwvc2VsZWN0PlxuICAgPC9kaXY+IC0tPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnByb2R1Y3RzTG9hZGluZyQgfCBhc3luY1wiIGNsYXNzPVwiIG1pYW0tZHMtbG9hZGVyIG1pYW0tcHJvZHVjdHMtcGlja2VyX19sb2FkZXJcIj48L2Rpdj5cbiAgPCEtLSBQUk9EVUNUUyBDQVJEIExJU1QgLS0+XG4gIDxkaXYgKm5nSWY9XCIhKHJlY2lwZURldGFpbHNTZXJ2aWNlLnByb2R1Y3RzTG9hZGluZyQgfCBhc3luYylcIiBjbGFzcz1cIm1pYW0tcHJvZHVjdHMtcGlja2VyX19saXN0XCI+XG4gICAgPG5nLW1pYW0tcHJvZHVjdC1jYXJkXG4gICAgICAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiByZWNpcGVEZXRhaWxzU2VydmljZS5wcm9kdWN0c0J5Q2F0ZWdvcnkudG9QaWNrUHJvZHVjdHM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gICAgICBjbGFzcz1cIm1pYW0tcHJvZHVjdHMtcGlja2VyX19pdGVtc1wiXG4gICAgICBbYmFza2V0RW50cnldPVwicHJvZHVjdC5iYXNrZXRFbnRyeVwiXG4gICAgICBbaW5ncmVkaWVudF09XCJwcm9kdWN0LmluZ3JlZGllbnRcIlxuICAgID5cbiAgICA8L25nLW1pYW0tcHJvZHVjdC1jYXJkPlxuICA8L2Rpdj5cbiAgPCEtLSBPRlRFTiBERUxFVEVEIFBST0RVQ1RTIC0tPlxuICA8ZGl2ICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucHJvZHVjdHNCeUNhdGVnb3J5Lm9mdGVuSWdub3JlZFByb2R1Y3RzLmxlbmd0aCA+IDBcIj5cbiAgICA8bmctbWlhbS1hY2NvcmRpb24gW2lzQ29sbGFwc2VkXT1cImZhbHNlXCI+XG4gICAgICA8bmctbWlhbS1hY2NvcmRpb24tdGl0bGU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1kcy10ZXh0IHdlaWdodC14eGxcIj5cbiAgICAgICAgICBEw6lqw6AgZGFucyBsZSBwbGFjYXJkXG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctbWlhbS1hY2NvcmRpb24tdGl0bGU+XG4gICAgICA8bmctbWlhbS1hY2NvcmRpb24tY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcHJvZHVjdHMtcGlja2VyX19saXN0XCI+XG4gICAgICAgICAgPG5nLW1pYW0tcHJvZHVjdC1jYXJkXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiByZWNpcGVEZXRhaWxzU2VydmljZS5wcm9kdWN0c0J5Q2F0ZWdvcnkub2Z0ZW5JZ25vcmVkUHJvZHVjdHM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcHJvZHVjdHMtcGlja2VyX19pdGVtc1wiXG4gICAgICAgICAgICBbYmFza2V0RW50cnldPVwicHJvZHVjdC5iYXNrZXRFbnRyeVwiXG4gICAgICAgICAgICBbaW5ncmVkaWVudF09XCJwcm9kdWN0LmluZ3JlZGllbnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L25nLW1pYW0tcHJvZHVjdC1jYXJkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctbWlhbS1hY2NvcmRpb24tY29udGVudD5cbiAgICA8L25nLW1pYW0tYWNjb3JkaW9uPlxuICA8L2Rpdj5cbiAgPCEtLSBVTkFWQUlMQUJMRSBQUk9EVUNUUyAtLT5cbiAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnByb2R1Y3RzQnlDYXRlZ29yeS51bmF2YWlsYWJsZVByb2R1Y3RzLmxlbmd0aCA+IDBcIj5cbiAgICA8bmctbWlhbS1hY2NvcmRpb24gW2lzQ29sbGFwc2VkXT1cInRydWVcIj5cbiAgICAgIDxuZy1taWFtLWFjY29yZGlvbi10aXRsZT5cbiAgICAgICAgQXJ0aWNsZXMgaW5kaXNwb25pYmxlc1xuICAgICAgPC9uZy1taWFtLWFjY29yZGlvbi10aXRsZT5cbiAgICAgIDxuZy1taWFtLWFjY29yZGlvbi1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1wcm9kdWN0cy1waWNrZXJfX2xpc3RcIj5cbiAgICAgICAgICA8bmctbWlhbS1wcm9kdWN0LWNhcmRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwcm9kdWN0IG9mIHJlY2lwZURldGFpbHNTZXJ2aWNlLnByb2R1Y3RzQnlDYXRlZ29yeS51bmF2YWlsYWJsZVByb2R1Y3RzOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXByb2R1Y3RzLXBpY2tlcl9faXRlbXNcIlxuICAgICAgICAgICAgW2Jhc2tldEVudHJ5XT1cInByb2R1Y3QuYmFza2V0RW50cnlcIlxuICAgICAgICAgICAgW2luZ3JlZGllbnRdPVwicHJvZHVjdC5pbmdyZWRpZW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9uZy1taWFtLXByb2R1Y3QtY2FyZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLW1pYW0tYWNjb3JkaW9uLWNvbnRlbnQ+XG4gICAgPC9uZy1taWFtLWFjY29yZGlvbj5cbiAgPC9kaXY+XG4gIDwhLS0gTU9SRSBSRUNJUEUgSURFQVMgLS0+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXByb2R1Y3RzLXBpY2tlcl9fbW9yZVwiPlxuICAgIDxhIGNsYXNzPVwibWlhbS1wcm9kdWN0cy1waWNrZXJfX21vcmUtYW5jaG9yXCIgW2hyZWZdPVwiY29udGV4dFNlcnZpY2UuY2F0YWxvZ1VybFwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIHNlY29uZGFyeVwiPlxuICAgICAgICBWb2lyIHBsdXMgZCdpZMOpZXMgcmVwYXNcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -62,7 +62,7 @@ ProgressTrackerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ProgressTrackerC
62
62
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c2, ctx.value > ctx.max));
63
63
  i0.ɵɵadvance(1);
64
64
  i0.ɵɵtextInterpolate2("", ctx.roundedValue, " ", ctx.unit, "");
65
- } }, directives: [i1.NgIf, i1.NgClass, i1.NgStyle, i2.TooltipableContentComponent], styles: [".miam-progress-tracker{display:flex;flex-direction:column;width:100%}.miam-progress-tracker .miam-progress-tracker__label{font-size:16px;font-weight:900;line-height:24px;margin-bottom:16px}.miam-progress-tracker .miam-progress-tracker__content{align-items:center;display:flex;flex-direction:row;justify-content:flex-start}.miam-progress-tracker .miam-progress-tracker__content .miam-progress-tracker__tracker{background-color:var(--m-progress-tracker-background-color);border-radius:8px;height:8px;position:relative;width:100%}.miam-progress-tracker .miam-progress-tracker__content .miam-progress-tracker__tracker:not(.full){overflow:hidden}.miam-progress-tracker .miam-progress-tracker__content .miam-progress-tracker__tracker.full{background-color:transparent}.miam-progress-tracker .miam-progress-tracker__content .miam-progress-tracker__tracker .miam-progress-tracker__tracker-bar{background-color:var(--m-progress-tracker-color);border-radius:8px 0 0 8px;height:105%;transition:width .5s ease-in-out}.miam-progress-tracker .miam-progress-tracker__content .miam-progress-tracker__tracker .miam-progress-tracker__tracker-danger{background-color:var(--m-progress-tracker-danger-color);border-radius:0 8px 8px 0;height:105%;position:absolute;right:0;top:0}.miam-progress-tracker .miam-progress-tracker__content .miam-progress-tracker__value{color:var(--m-color-primary);font-size:16px;font-weight:900;line-height:24px;margin-left:16px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.miam-progress-tracker .miam-progress-tracker__content .miam-progress-tracker__value.danger{color:var(--m-color-danger-text)}"], encapsulation: 2, changeDetection: 0 });
65
+ } }, directives: [i1.NgIf, i1.NgClass, i1.NgStyle, i2.TooltipableContentComponent], styles: [".miam-progress-tracker{display:flex;flex-direction:column;width:100%}.miam-progress-tracker .miam-progress-tracker__label{font-size:16px;font-weight:900;line-height:24px;margin-bottom:16px}.miam-progress-tracker .miam-progress-tracker__content{align-items:center;display:flex;flex-direction:row;justify-content:flex-start}.miam-progress-tracker .miam-progress-tracker__content .miam-progress-tracker__tracker{background-color:var(--m-progress-tracker-background-color);border-radius:8px;height:8px;position:relative;width:100%}.miam-progress-tracker .miam-progress-tracker__content .miam-progress-tracker__tracker:not(.full){overflow:hidden}.miam-progress-tracker .miam-progress-tracker__content .miam-progress-tracker__tracker.full{background-color:transparent}.miam-progress-tracker .miam-progress-tracker__content .miam-progress-tracker__tracker .miam-progress-tracker__tracker-bar{background-color:var(--m-progress-tracker-color);border-radius:8px 0 0 8px;height:105%;transition:width .5s ease-in-out}.miam-progress-tracker .miam-progress-tracker__content .miam-progress-tracker__tracker .miam-progress-tracker__tracker-danger{background-color:var(--m-progress-tracker-danger-color);border-radius:0 8px 8px 0;height:105%;position:absolute;right:0;top:0}.miam-progress-tracker .miam-progress-tracker__content .miam-progress-tracker__value{color:var(--m-color-primary);font-size:16px;font-weight:900;line-height:24px;margin-left:16px;min-width:-moz-fit-content;min-width:fit-content}.miam-progress-tracker .miam-progress-tracker__content .miam-progress-tracker__value.danger{color:var(--m-color-danger-text)}"], encapsulation: 2, changeDetection: 0 });
66
66
  /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ProgressTrackerComponent, [{
67
67
  type: Component,
68
68
  args: [{