ng-miam 3.7.2 → 3.9.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 (70) hide show
  1. package/bundles/ng-miam.umd.js +2183 -1668
  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/addon-link/addon-link.component.js +14 -11
  6. package/esm2015/lib/_components/counter-input/counter-input.component.js +1 -8
  7. package/esm2015/lib/_components/icon/icon.component.js +605 -406
  8. package/esm2015/lib/_components/like-button/like-button.component.js +1 -1
  9. package/esm2015/lib/_components/recipe-filters/recipe-filters.component.js +7 -6
  10. package/esm2015/lib/_components/recipe-pricing/recipe-pricing.component.js +9 -4
  11. package/esm2015/lib/_services/baskets.service.js +7 -3
  12. package/esm2015/lib/_services/context.service.js +14 -1
  13. package/esm2015/lib/_services/groceries-lists.service.js +6 -3
  14. package/esm2015/lib/_services/recipes.service.js +7 -3
  15. package/esm2015/lib/_types/icon.enum.js +5 -2
  16. package/esm2015/lib/_web-components/basket-preview/basket-preview-line/basket-preview-line.component.js +3 -3
  17. package/esm2015/lib/_web-components/catalog-recipe-card/catalog-recipe-card.component.js +3 -3
  18. package/esm2015/lib/_web-components/drawer/drawer.component.js +9 -8
  19. package/esm2015/lib/_web-components/index.js +3 -4
  20. package/esm2015/lib/_web-components/list-scan/basket-preview/basket-preview.component.js +57 -52
  21. package/esm2015/lib/_web-components/list-scan/files-inputs/files-inputs.component.js +142 -0
  22. package/esm2015/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.js +47 -53
  23. package/esm2015/lib/_web-components/list-scan/list-scan.component.js +56 -27
  24. package/esm2015/lib/_web-components/list-scan/list-scan.module.js +13 -6
  25. package/esm2015/lib/_web-components/modal/index.js +3 -0
  26. package/esm2015/lib/_web-components/modal/modal.component.js +18 -15
  27. package/esm2015/lib/_web-components/modal/modal.module.js +43 -0
  28. package/esm2015/lib/_web-components/order-button/order-button.component.js +1 -1
  29. package/esm2015/lib/_web-components/recipe-card/recipe-card.component.js +5 -5
  30. package/esm2015/lib/_web-components/recipe-details/index.js +7 -0
  31. package/esm2015/lib/_web-components/{recipe-addon → recipe-details/recipe-addon}/recipe-addon.component.js +5 -5
  32. package/esm2015/lib/_web-components/recipe-details/recipe-details-infos/recipe-details-infos.component.js +248 -0
  33. package/esm2015/lib/_web-components/recipe-details/recipe-details-ingredients/recipe-details-ingredients.component.js +108 -0
  34. package/esm2015/lib/_web-components/recipe-details/recipe-details-steps/recipe-details-steps.component.js +101 -0
  35. package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +179 -619
  36. package/esm2015/lib/_web-components/recipe-details/recipe-details.module.js +86 -0
  37. package/esm2015/lib/_web-components/recipe-form/recipe-form.component.js +2 -2
  38. package/esm2015/lib/_web-components/recipe-helper/recipe-helper.component.js +7 -6
  39. package/esm2015/lib/_web-components/recipe-modal/recipe-modal.component.js +22 -38
  40. package/esm2015/lib/_web-components/web-components.module.js +60 -65
  41. package/fesm2015/ng-miam.js +1892 -1420
  42. package/fesm2015/ng-miam.js.map +1 -1
  43. package/lib/_components/counter-input/counter-input.component.d.ts +0 -1
  44. package/lib/_components/recipe-filters/recipe-filters.component.d.ts +3 -2
  45. package/lib/_components/recipe-pricing/recipe-pricing.component.d.ts +2 -1
  46. package/lib/_services/baskets.service.d.ts +1 -0
  47. package/lib/_services/context.service.d.ts +6 -0
  48. package/lib/_services/groceries-lists.service.d.ts +1 -1
  49. package/lib/_types/icon.enum.d.ts +5 -2
  50. package/lib/_web-components/drawer/drawer.component.d.ts +3 -2
  51. package/lib/_web-components/index.d.ts +2 -3
  52. package/lib/_web-components/list-scan/basket-preview/basket-preview.component.d.ts +2 -2
  53. package/lib/_web-components/list-scan/files-inputs/files-inputs.component.d.ts +21 -0
  54. package/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.d.ts +1 -2
  55. package/lib/_web-components/list-scan/list-scan.component.d.ts +5 -2
  56. package/lib/_web-components/list-scan/list-scan.module.d.ts +8 -6
  57. package/lib/_web-components/modal/index.d.ts +2 -0
  58. package/lib/_web-components/modal/modal.component.d.ts +3 -1
  59. package/lib/_web-components/modal/modal.module.d.ts +11 -0
  60. package/lib/_web-components/recipe-details/index.d.ts +6 -0
  61. package/lib/_web-components/{recipe-addon → recipe-details/recipe-addon}/recipe-addon.component.d.ts +2 -2
  62. package/lib/_web-components/recipe-details/recipe-details-infos/recipe-details-infos.component.d.ts +24 -0
  63. package/lib/_web-components/recipe-details/recipe-details-ingredients/recipe-details-ingredients.component.d.ts +18 -0
  64. package/lib/_web-components/recipe-details/recipe-details-steps/recipe-details-steps.component.d.ts +16 -0
  65. package/lib/_web-components/recipe-details/recipe-details.component.d.ts +16 -23
  66. package/lib/_web-components/recipe-details/recipe-details.module.d.ts +18 -0
  67. package/lib/_web-components/recipe-helper/recipe-helper.component.d.ts +3 -2
  68. package/lib/_web-components/recipe-modal/recipe-modal.component.d.ts +0 -3
  69. package/lib/_web-components/web-components.module.d.ts +38 -39
  70. package/package.json +1 -1
@@ -1,672 +1,261 @@
1
1
  import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, ChangeDetectorRef, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';
2
2
  import { Recipe } from '../../_models/recipe';
3
3
  import { Icon } from '../../_types/icon.enum';
4
- import { ContextService, GroceriesListsService, PointOfSalesService, RecipeEventsService, UserService } from '../../_services';
5
- import { BehaviorSubject, forkJoin } from 'rxjs';
6
- import { stopEventPropagation } from '../../_utils';
4
+ import { ContextService, GroceriesListsService, PointOfSalesService, RecipeEventsService, RecipesService, UserService } from '../../_services';
5
+ import { forkJoin } from 'rxjs';
7
6
  import { take } from 'rxjs/operators';
8
7
  import { MediaMatcher } from '@angular/cdk/layout';
9
8
  import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/cdk/layout";
11
- import * as i2 from "../../_services";
9
+ import * as i1 from "../../_services";
10
+ import * as i2 from "@angular/cdk/layout";
12
11
  import * as i3 from "@angular/common";
13
12
  import * as i4 from "../../_components/icon/icon.component";
14
- import * as i5 from "@angular/youtube-player";
15
- import * as i6 from "../../_components/like-button/like-button.component";
16
- import * as i7 from "../../_components/recipe-pricing/recipe-pricing.component";
17
- import * as i8 from "../loader/loader.component";
18
- import * as i9 from "../../_components/addon-link/addon-link.component";
19
- import * as i10 from "../../_components/counter-input/counter-input.component";
20
- import * as i11 from "../recipe-addon/recipe-addon.component";
21
- import * as i12 from "../../_utils/pipes/capitalize-first-letter/capitalize-first-letter.pipe";
22
- import * as i13 from "../../_utils/pipes/readable-float-number/readable-float-number.pipe";
13
+ import * as i5 from "./recipe-details-ingredients/recipe-details-ingredients.component";
14
+ import * as i6 from "./recipe-details-steps/recipe-details-steps.component";
15
+ import * as i7 from "../../_components/addon-link/addon-link.component";
16
+ import * as i8 from "@angular/youtube-player";
17
+ import * as i9 from "../../_components/like-button/like-button.component";
18
+ import * as i10 from "./recipe-details-infos/recipe-details-infos.component";
19
+ import * as i11 from "../../_components/recipe-pricing/recipe-pricing.component";
20
+ import * as i12 from "../loader/loader.component";
21
+ import * as i13 from "./recipe-addon/recipe-addon.component";
23
22
  const _c0 = ["topContainerImg"];
24
- const _c1 = ["mainContainer"];
25
- function RecipeDetailsComponent_div_0_img_6_Template(rf, ctx) { if (rf & 1) {
26
- i0.ɵɵelement(0, "img", 40);
27
- } if (rf & 2) {
28
- const ctx_r5 = i0.ɵɵnextContext(2);
29
- i0.ɵɵproperty("src", ctx_r5.recipe == null ? null : ctx_r5.recipe.attributes["media-url"], i0.ɵɵsanitizeUrl);
23
+ function RecipeDetailsComponent_div_0_img_4_Template(rf, ctx) { if (rf & 1) {
24
+ i0.ɵɵelement(0, "img", 34);
30
25
  } }
31
- function RecipeDetailsComponent_div_0_div_7_Template(rf, ctx) { if (rf & 1) {
32
- i0.ɵɵelement(0, "div", 41);
26
+ function RecipeDetailsComponent_div_0_ng_template_5_Template(rf, ctx) { if (rf & 1) {
27
+ i0.ɵɵelement(0, "img", 35);
33
28
  } }
34
- function RecipeDetailsComponent_div_0_youtube_player_8_Template(rf, ctx) { if (rf & 1) {
35
- i0.ɵɵelement(0, "youtube-player", 42);
29
+ function RecipeDetailsComponent_div_0_span_7_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵelementStart(0, "span", 36);
31
+ i0.ɵɵtext(1);
32
+ i0.ɵɵelementEnd();
36
33
  } if (rf & 2) {
37
34
  const ctx_r7 = i0.ɵɵnextContext(2);
38
- i0.ɵɵproperty("videoId", ctx_r7.recipe.videoId)("width", ctx_r7.playerWidth)("height", ctx_r7.playerHeight);
35
+ i0.ɵɵadvance(1);
36
+ i0.ɵɵtextInterpolate1(" ", ctx_r7.recipe == null ? null : ctx_r7.recipe.attributes["title"], " ");
39
37
  } }
40
- function RecipeDetailsComponent_div_0_ng_container_9_div_1_Template(rf, ctx) { if (rf & 1) {
41
- i0.ɵɵelementStart(0, "div", 44);
42
- i0.ɵɵtext(1, "D\u00E9j\u00E0 ajout\u00E9e");
38
+ function RecipeDetailsComponent_div_0_ng_miam_addon_link_14_Template(rf, ctx) { if (rf & 1) {
39
+ const _r20 = i0.ɵɵgetCurrentView();
40
+ i0.ɵɵelementStart(0, "ng-miam-addon-link", 37);
41
+ i0.ɵɵlistener("showAddon", function RecipeDetailsComponent_div_0_ng_miam_addon_link_14_Template_ng_miam_addon_link_showAddon_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(2); return ctx_r19.toggleAddon(); });
43
42
  i0.ɵɵelementEnd();
44
- } }
45
- function RecipeDetailsComponent_div_0_ng_container_9_Template(rf, ctx) { if (rf & 1) {
46
- i0.ɵɵelementContainerStart(0);
47
- i0.ɵɵtemplate(1, RecipeDetailsComponent_div_0_ng_container_9_div_1_Template, 2, 0, "div", 43);
48
- i0.ɵɵpipe(2, "async");
49
- i0.ɵɵelementContainerEnd();
50
43
  } if (rf & 2) {
51
44
  const ctx_r8 = i0.ɵɵnextContext(2);
52
- i0.ɵɵadvance(1);
53
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(2, 1, ctx_r8.groceriesListsService.recipeIsInList(ctx_r8.recipe == null ? null : ctx_r8.recipe.id)));
54
- } }
55
- function RecipeDetailsComponent_div_0_ng_miam_like_button_11_Template(rf, ctx) { if (rf & 1) {
56
- i0.ɵɵelement(0, "ng-miam-like-button", 45);
57
- } if (rf & 2) {
58
- const ctx_r9 = i0.ɵɵnextContext(2);
59
- i0.ɵɵproperty("recipe", ctx_r9.recipe)("width", 26)("height", 26);
45
+ i0.ɵɵproperty("recipe", ctx_r8.recipe);
60
46
  } }
61
- function RecipeDetailsComponent_div_0_img_15_Template(rf, ctx) { if (rf & 1) {
62
- i0.ɵɵelement(0, "img", 46);
47
+ const _c1 = function (a0, a1) { return { "sponsor": a0, "tags": a1 }; };
48
+ function RecipeDetailsComponent_div_0_img_17_Template(rf, ctx) { if (rf & 1) {
49
+ i0.ɵɵelement(0, "img", 38);
63
50
  } if (rf & 2) {
64
51
  const ctx_r10 = i0.ɵɵnextContext(2);
65
- i0.ɵɵpropertyInterpolate("src", ctx_r10.recipe.filigraneLogoUrl, i0.ɵɵsanitizeUrl);
52
+ i0.ɵɵproperty("src", ctx_r10.recipe == null ? null : ctx_r10.recipe.attributes["media-url"], i0.ɵɵsanitizeUrl)("ngClass", i0.ɵɵpureFunction2(2, _c1, (ctx_r10.recipe == null ? null : ctx_r10.recipe.sponsors == null ? null : ctx_r10.recipe.sponsors.length) > 0, ctx_r10.displayTags && ctx_r10.recipe.relationships.tags.data.length > 0));
66
53
  } }
67
- function RecipeDetailsComponent_div_0_div_22_Template(rf, ctx) { if (rf & 1) {
68
- i0.ɵɵelementStart(0, "div", 47);
69
- i0.ɵɵelementStart(1, "span");
70
- i0.ɵɵtext(2, "Pr\u00E9paration");
71
- i0.ɵɵelementEnd();
72
- i0.ɵɵelementStart(3, "div", 48);
73
- i0.ɵɵelement(4, "ng-miam-icon", 49);
74
- i0.ɵɵelementStart(5, "span");
75
- i0.ɵɵtext(6);
76
- i0.ɵɵelementEnd();
77
- i0.ɵɵelementEnd();
78
- i0.ɵɵelementEnd();
54
+ function RecipeDetailsComponent_div_0_youtube_player_18_Template(rf, ctx) { if (rf & 1) {
55
+ i0.ɵɵelement(0, "youtube-player", 39);
79
56
  } if (rf & 2) {
80
57
  const ctx_r11 = i0.ɵɵnextContext(2);
81
- i0.ɵɵadvance(4);
82
- i0.ɵɵproperty("width", 24)("height", 24)("iconName", ctx_r11.icon.Preparation);
83
- i0.ɵɵadvance(2);
84
- i0.ɵɵtextInterpolate(ctx_r11.recipe == null ? null : ctx_r11.recipe.preparationTime);
58
+ i0.ɵɵproperty("videoId", ctx_r11.recipe.videoId)("width", ctx_r11.playerWidth)("height", ctx_r11.playerHeight);
85
59
  } }
86
- function RecipeDetailsComponent_div_0_div_23_Template(rf, ctx) { if (rf & 1) {
87
- i0.ɵɵelementStart(0, "div", 47);
88
- i0.ɵɵelementStart(1, "span");
89
- i0.ɵɵtext(2, "Cuisson");
90
- i0.ɵɵelementEnd();
91
- i0.ɵɵelementStart(3, "div", 48);
92
- i0.ɵɵelement(4, "ng-miam-icon", 49);
93
- i0.ɵɵelementStart(5, "span");
94
- i0.ɵɵtext(6);
95
- i0.ɵɵelementEnd();
96
- i0.ɵɵelementEnd();
97
- i0.ɵɵelementEnd();
60
+ function RecipeDetailsComponent_div_0_ng_miam_like_button_21_Template(rf, ctx) { if (rf & 1) {
61
+ i0.ɵɵelement(0, "ng-miam-like-button", 40);
98
62
  } if (rf & 2) {
99
63
  const ctx_r12 = i0.ɵɵnextContext(2);
100
- i0.ɵɵadvance(4);
101
- i0.ɵɵproperty("width", 24)("height", 24)("iconName", ctx_r12.icon.Hot);
102
- i0.ɵɵadvance(2);
103
- i0.ɵɵtextInterpolate(ctx_r12.recipe == null ? null : ctx_r12.recipe.cookingTime);
64
+ i0.ɵɵproperty("recipe", ctx_r12.recipe)("width", 24)("height", 24);
104
65
  } }
105
- function RecipeDetailsComponent_div_0_div_24_Template(rf, ctx) { if (rf & 1) {
106
- i0.ɵɵelementStart(0, "div", 47);
107
- i0.ɵɵelementStart(1, "span");
108
- i0.ɵɵtext(2, "Repos");
109
- i0.ɵɵelementEnd();
110
- i0.ɵɵelementStart(3, "div", 48);
111
- i0.ɵɵelement(4, "ng-miam-icon", 49);
112
- i0.ɵɵelementStart(5, "span");
113
- i0.ɵɵtext(6);
114
- i0.ɵɵelementEnd();
115
- i0.ɵɵelementEnd();
116
- i0.ɵɵelementEnd();
66
+ function RecipeDetailsComponent_div_0_ng_miam_recipe_details_infos_26_Template(rf, ctx) { if (rf & 1) {
67
+ i0.ɵɵelement(0, "ng-miam-recipe-details-infos", 41);
117
68
  } if (rf & 2) {
118
69
  const ctx_r13 = i0.ɵɵnextContext(2);
119
- i0.ɵɵadvance(4);
120
- i0.ɵɵproperty("width", 24)("height", 24)("iconName", ctx_r13.icon.Wait);
121
- i0.ɵɵadvance(2);
122
- i0.ɵɵtextInterpolate(ctx_r13.recipe == null ? null : ctx_r13.recipe.restingTime);
70
+ i0.ɵɵproperty("recipe", ctx_r13.recipe)("displayTags", ctx_r13.displayTags)("displayTagsIcons", ctx_r13.displayTagsIcons);
123
71
  } }
124
- function RecipeDetailsComponent_div_0_ng_container_34_Template(rf, ctx) { if (rf & 1) {
125
- i0.ɵɵelementContainerStart(0);
126
- i0.ɵɵelement(1, "ng-miam-icon", 50);
127
- i0.ɵɵelementContainerEnd();
72
+ function RecipeDetailsComponent_div_0_div_29_Template(rf, ctx) { if (rf & 1) {
73
+ i0.ɵɵelementStart(0, "div", 42);
74
+ i0.ɵɵtext(1);
75
+ i0.ɵɵelementEnd();
128
76
  } if (rf & 2) {
129
77
  const ctx_r14 = i0.ɵɵnextContext(2);
130
78
  i0.ɵɵadvance(1);
131
- i0.ɵɵproperty("width", 56)("height", 16)("iconName", ctx_r14.icon.DifficultyLow);
79
+ i0.ɵɵtextInterpolate1(" ", ctx_r14.recipe == null ? null : ctx_r14.recipe.attributes["title"], " ");
132
80
  } }
133
- function RecipeDetailsComponent_div_0_ng_container_35_Template(rf, ctx) { if (rf & 1) {
134
- i0.ɵɵelementContainerStart(0);
135
- i0.ɵɵelement(1, "ng-miam-icon", 50);
136
- i0.ɵɵelementContainerEnd();
81
+ function RecipeDetailsComponent_div_0_div_30_Template(rf, ctx) { if (rf & 1) {
82
+ i0.ɵɵelementStart(0, "div", 43);
83
+ i0.ɵɵtext(1);
84
+ i0.ɵɵelementEnd();
137
85
  } if (rf & 2) {
138
86
  const ctx_r15 = i0.ɵɵnextContext(2);
139
87
  i0.ɵɵadvance(1);
140
- i0.ɵɵproperty("width", 56)("height", 16)("iconName", ctx_r15.icon.DifficultyMedium);
88
+ i0.ɵɵtextInterpolate1(" ", ctx_r15.recipe == null ? null : ctx_r15.recipe.attributes.description, " ");
141
89
  } }
142
- function RecipeDetailsComponent_div_0_ng_container_36_Template(rf, ctx) { if (rf & 1) {
143
- i0.ɵɵelementContainerStart(0);
144
- i0.ɵɵelement(1, "ng-miam-icon", 50);
145
- i0.ɵɵelementContainerEnd();
90
+ function RecipeDetailsComponent_div_0_ng_miam_recipe_details_infos_31_Template(rf, ctx) { if (rf & 1) {
91
+ i0.ɵɵelement(0, "ng-miam-recipe-details-infos", 41);
146
92
  } if (rf & 2) {
147
93
  const ctx_r16 = i0.ɵɵnextContext(2);
148
- i0.ɵɵadvance(1);
149
- i0.ɵɵproperty("width", 56)("height", 16)("iconName", ctx_r16.icon.DifficultyHight);
150
- } }
151
- function RecipeDetailsComponent_div_0_ng_container_37_Template(rf, ctx) { if (rf & 1) {
152
- i0.ɵɵelementContainer(0);
94
+ i0.ɵɵproperty("recipe", ctx_r16.recipe)("displayTags", ctx_r16.displayTags)("displayTagsIcons", ctx_r16.displayTagsIcons);
153
95
  } }
154
- function RecipeDetailsComponent_div_0_div_48_Template(rf, ctx) { if (rf & 1) {
155
- i0.ɵɵelementStart(0, "div", 51);
156
- i0.ɵɵelement(1, "ng-miam-recipe-pricing", 52);
157
- i0.ɵɵelementEnd();
158
- } if (rf & 2) {
159
- const ctx_r18 = i0.ɵɵnextContext(2);
160
- i0.ɵɵadvance(1);
161
- i0.ɵɵproperty("recipe", ctx_r18.recipe)("serves", ctx_r18.recipe == null ? null : ctx_r18.recipe.modifiedGuests);
162
- } }
163
- function RecipeDetailsComponent_div_0_button_49_ng_miam_icon_5_Template(rf, ctx) { if (rf & 1) {
164
- i0.ɵɵelement(0, "ng-miam-icon", 56);
165
- i0.ɵɵpipe(1, "async");
96
+ function RecipeDetailsComponent_div_0_ng_miam_recipe_pricing_36_Template(rf, ctx) { if (rf & 1) {
97
+ i0.ɵɵelement(0, "ng-miam-recipe-pricing", 44);
166
98
  } if (rf & 2) {
167
- const ctx_r28 = i0.ɵɵnextContext(3);
168
- i0.ɵɵproperty("width", 24)("height", 24)("iconName", i0.ɵɵpipeBind1(1, 3, ctx_r28.groceriesListsService.recipeIsInList(ctx_r28.recipe == null ? null : ctx_r28.recipe.id)) ? ctx_r28.icon.CheckList : ctx_r28.icon.Cart);
99
+ const ctx_r17 = i0.ɵɵnextContext(2);
100
+ i0.ɵɵproperty("recipe", ctx_r17.recipe)("serves", ctx_r17.recipe == null ? null : ctx_r17.recipe.modifiedGuests);
169
101
  } }
170
- function RecipeDetailsComponent_div_0_button_49_ng_template_6_Template(rf, ctx) { if (rf & 1) {
171
- i0.ɵɵelement(0, "ng-miam-loader");
172
- } }
173
- const _c2 = function (a0, a1) { return { "in-basket": a0, "loading": a1 }; };
174
- function RecipeDetailsComponent_div_0_button_49_Template(rf, ctx) { if (rf & 1) {
175
- const _r32 = i0.ɵɵgetCurrentView();
176
- i0.ɵɵelementStart(0, "button", 53);
177
- i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_button_49_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(2); return ctx_r31.clickPrimary(); });
178
- i0.ɵɵpipe(1, "async");
179
- i0.ɵɵelementStart(2, "span");
180
- i0.ɵɵtext(3);
181
- i0.ɵɵpipe(4, "async");
182
- i0.ɵɵelementEnd();
183
- i0.ɵɵtemplate(5, RecipeDetailsComponent_div_0_button_49_ng_miam_icon_5_Template, 2, 5, "ng-miam-icon", 54);
184
- i0.ɵɵtemplate(6, RecipeDetailsComponent_div_0_button_49_ng_template_6_Template, 1, 0, "ng-template", null, 55, i0.ɵɵtemplateRefExtractor);
185
- i0.ɵɵelementEnd();
186
- } if (rf & 2) {
187
- const _r29 = i0.ɵɵreference(7);
188
- const ctx_r19 = i0.ɵɵnextContext(2);
189
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(8, _c2, i0.ɵɵpipeBind1(1, 4, ctx_r19.groceriesListsService.recipeIsInList(ctx_r19.recipe == null ? null : ctx_r19.recipe.id)), ctx_r19.addButtonLoading));
190
- i0.ɵɵadvance(3);
191
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 6, ctx_r19.groceriesListsService.recipeIsInList(ctx_r19.recipe == null ? null : ctx_r19.recipe.id)) ? "Voir le d\u00E9tail" : "S\u00E9lectionner ce repas", " ");
192
- i0.ɵɵadvance(2);
193
- i0.ɵɵproperty("ngIf", !ctx_r19.addButtonLoading)("ngIfElse", _r29);
194
- } }
195
- function RecipeDetailsComponent_div_0_div_51_div_1_img_1_Template(rf, ctx) { if (rf & 1) {
196
- i0.ɵɵelement(0, "img", 62);
197
- } if (rf & 2) {
198
- const tag_r34 = i0.ɵɵnextContext().$implicit;
199
- i0.ɵɵproperty("src", tag_r34.attributes.icon, i0.ɵɵsanitizeUrl);
200
- } }
201
- function RecipeDetailsComponent_div_0_div_51_div_1_Template(rf, ctx) { if (rf & 1) {
202
- i0.ɵɵelementStart(0, "div", 59);
203
- i0.ɵɵtemplate(1, RecipeDetailsComponent_div_0_div_51_div_1_img_1_Template, 1, 1, "img", 60);
204
- i0.ɵɵelementStart(2, "span", 61);
205
- i0.ɵɵtext(3);
206
- i0.ɵɵelementEnd();
207
- i0.ɵɵelementEnd();
208
- } if (rf & 2) {
209
- const tag_r34 = ctx.$implicit;
210
- const ctx_r33 = i0.ɵɵnextContext(3);
211
- i0.ɵɵadvance(1);
212
- i0.ɵɵproperty("ngIf", ctx_r33.displayTagsIcons);
213
- i0.ɵɵadvance(2);
214
- i0.ɵɵtextInterpolate1(" ", tag_r34.name, " ");
215
- } }
216
- function RecipeDetailsComponent_div_0_div_51_Template(rf, ctx) { if (rf & 1) {
217
- i0.ɵɵelementStart(0, "div", 57);
218
- i0.ɵɵtemplate(1, RecipeDetailsComponent_div_0_div_51_div_1_Template, 4, 2, "div", 58);
219
- i0.ɵɵelementEnd();
220
- } if (rf & 2) {
221
- const ctx_r20 = i0.ɵɵnextContext(2);
222
- i0.ɵɵadvance(1);
223
- i0.ɵɵproperty("ngForOf", ctx_r20.recipe.relationships.tags.data);
224
- } }
225
- function RecipeDetailsComponent_div_0_ng_miam_addon_link_53_Template(rf, ctx) { if (rf & 1) {
226
- const _r38 = i0.ɵɵgetCurrentView();
227
- i0.ɵɵelementStart(0, "ng-miam-addon-link", 63);
228
- i0.ɵɵlistener("showAddon", function RecipeDetailsComponent_div_0_ng_miam_addon_link_53_Template_ng_miam_addon_link_showAddon_0_listener() { i0.ɵɵrestoreView(_r38); const ctx_r37 = i0.ɵɵnextContext(2); return ctx_r37.toggleAddon(); });
229
- i0.ɵɵelementEnd();
230
- } if (rf & 2) {
231
- const ctx_r21 = i0.ɵɵnextContext(2);
232
- i0.ɵɵproperty("recipe", ctx_r21.recipe);
233
- } }
234
- function RecipeDetailsComponent_div_0_div_54_div_12_div_1_Template(rf, ctx) { if (rf & 1) {
235
- i0.ɵɵelementStart(0, "div");
236
- i0.ɵɵelement(1, "img", 78);
237
- i0.ɵɵelementEnd();
238
- } if (rf & 2) {
239
- const ingredient_r41 = i0.ɵɵnextContext().$implicit;
240
- const ctx_r43 = i0.ɵɵnextContext(3);
241
- i0.ɵɵadvance(1);
242
- i0.ɵɵproperty("src", ctx_r43.ingredientPicture(ingredient_r41), i0.ɵɵsanitizeUrl);
243
- } }
244
- const _c3 = function (a0) { return { "checked": a0 }; };
245
- function RecipeDetailsComponent_div_0_div_54_div_12_Template(rf, ctx) { if (rf & 1) {
246
- i0.ɵɵelementStart(0, "div", 77);
247
- i0.ɵɵtemplate(1, RecipeDetailsComponent_div_0_div_54_div_12_div_1_Template, 2, 1, "div", 11);
248
- i0.ɵɵelementStart(2, "div");
249
- i0.ɵɵtext(3);
250
- i0.ɵɵpipe(4, "capitalizeFirstLetter");
251
- i0.ɵɵelementEnd();
252
- i0.ɵɵelementStart(5, "div", 71);
253
- i0.ɵɵtext(6);
254
- i0.ɵɵpipe(7, "readableFloatNumber");
255
- i0.ɵɵelementEnd();
256
- i0.ɵɵelementEnd();
257
- } if (rf & 2) {
258
- const ingredient_r41 = ctx.$implicit;
259
- const i_r42 = ctx.index;
260
- const ctx_r39 = i0.ɵɵnextContext(3);
261
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c3, ctx_r39.ingredientsChecked[i_r42]));
262
- i0.ɵɵadvance(1);
263
- i0.ɵɵproperty("ngIf", ctx_r39.ingredientsPictures);
264
- i0.ɵɵadvance(2);
265
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 4, ingredient_r41.name), "");
266
- i0.ɵɵadvance(3);
267
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(7, 6, ingredient_r41.qty, ingredient_r41.unit), "");
268
- } }
269
- function RecipeDetailsComponent_div_0_div_54_div_17_ng_miam_icon_6_Template(rf, ctx) { if (rf & 1) {
270
- i0.ɵɵelement(0, "ng-miam-icon", 83);
271
- } if (rf & 2) {
272
- const ctx_r47 = i0.ɵɵnextContext(4);
273
- i0.ɵɵproperty("height", 16)("width", 16)("iconName", ctx_r47.icon.CheckCircleFill);
274
- } }
275
- function RecipeDetailsComponent_div_0_div_54_div_17_Template(rf, ctx) { if (rf & 1) {
276
- const _r49 = i0.ɵɵgetCurrentView();
277
- i0.ɵɵelementStart(0, "div", 79);
278
- i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_div_54_div_17_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r49); const i_r46 = ctx.index; const ctx_r48 = i0.ɵɵnextContext(3); return ctx_r48.changeActiveStep(i_r46); });
279
- i0.ɵɵelementStart(1, "div", 80);
280
- i0.ɵɵelementStart(2, "strong");
281
- i0.ɵɵtext(3);
282
- i0.ɵɵelementEnd();
283
- i0.ɵɵelementEnd();
284
- i0.ɵɵelementStart(4, "div", 81);
285
- i0.ɵɵtext(5);
286
- i0.ɵɵelementEnd();
287
- i0.ɵɵtemplate(6, RecipeDetailsComponent_div_0_div_54_div_17_ng_miam_icon_6_Template, 1, 3, "ng-miam-icon", 82);
288
- i0.ɵɵelementEnd();
289
- } if (rf & 2) {
290
- const step_r45 = ctx.$implicit;
291
- const i_r46 = ctx.index;
292
- const ctx_r40 = i0.ɵɵnextContext(3);
293
- i0.ɵɵclassProp("active", i_r46 === ctx_r40.activeStep)("miam-recipe-details__panel__done", i_r46 < ctx_r40.activeStep);
294
- i0.ɵɵadvance(3);
295
- i0.ɵɵtextInterpolate(i_r46 + 1);
296
- i0.ɵɵadvance(2);
297
- i0.ɵɵtextInterpolate(step_r45 == null ? null : step_r45.attributes == null ? null : step_r45.attributes.description);
298
- i0.ɵɵadvance(1);
299
- i0.ɵɵproperty("ngIf", i_r46 <= ctx_r40.activeStep);
300
- } }
301
- function RecipeDetailsComponent_div_0_div_54_Template(rf, ctx) { if (rf & 1) {
302
- const _r51 = i0.ɵɵgetCurrentView();
303
- i0.ɵɵelementStart(0, "div", 64);
304
- i0.ɵɵelementStart(1, "div", 65);
305
- i0.ɵɵelementStart(2, "div", 66);
306
- i0.ɵɵtext(3, " Ingr\u00E9dients ");
307
- i0.ɵɵelementEnd();
308
- i0.ɵɵelementStart(4, "div", 67);
309
- i0.ɵɵelementStart(5, "div", 68);
310
- i0.ɵɵelementStart(6, "ng-miam-counter-input", 69);
311
- i0.ɵɵlistener("counterChange", function RecipeDetailsComponent_div_0_div_54_Template_ng_miam_counter_input_counterChange_6_listener($event) { i0.ɵɵrestoreView(_r51); const ctx_r50 = i0.ɵɵnextContext(2); return ctx_r50.updateGuests($event); });
312
- i0.ɵɵelementEnd();
313
- i0.ɵɵelementStart(7, "span", 70);
314
- i0.ɵɵtext(8);
315
- i0.ɵɵelementEnd();
316
- i0.ɵɵelementEnd();
317
- i0.ɵɵelementStart(9, "span", 71);
318
- i0.ɵɵtext(10, "Quantit\u00E9");
319
- i0.ɵɵelementEnd();
320
- i0.ɵɵelementEnd();
321
- i0.ɵɵelementStart(11, "div", 72);
322
- i0.ɵɵtemplate(12, RecipeDetailsComponent_div_0_div_54_div_12_Template, 8, 11, "div", 73);
323
- i0.ɵɵelementEnd();
324
- i0.ɵɵelementEnd();
325
- i0.ɵɵelementStart(13, "div", 74);
326
- i0.ɵɵelementStart(14, "div", 66);
327
- i0.ɵɵtext(15, " Pr\u00E9paration ");
328
- i0.ɵɵelementEnd();
329
- i0.ɵɵelementStart(16, "div", 75);
330
- i0.ɵɵtemplate(17, RecipeDetailsComponent_div_0_div_54_div_17_Template, 7, 7, "div", 76);
331
- i0.ɵɵelementEnd();
332
- i0.ɵɵelementEnd();
333
- i0.ɵɵelementEnd();
102
+ function RecipeDetailsComponent_div_0_div_37_div_2_ng_miam_icon_4_Template(rf, ctx) { if (rf & 1) {
103
+ i0.ɵɵelement(0, "ng-miam-icon", 50);
334
104
  } if (rf & 2) {
335
- const ctx_r22 = i0.ɵɵnextContext(2);
336
- i0.ɵɵadvance(6);
337
- i0.ɵɵproperty("counter", (ctx_r22.recipe == null ? null : ctx_r22.recipe.modifiedGuests) || ctx_r22.recipe.guests);
338
- i0.ɵɵadvance(2);
339
- i0.ɵɵtextInterpolate1("Pour ", ctx_r22.recipe == null ? null : ctx_r22.recipe.modifiedGuests, " personnes");
340
- i0.ɵɵadvance(4);
341
- i0.ɵɵproperty("ngForOf", ctx_r22.recipe == null ? null : ctx_r22.recipe.modifiedIngredients);
342
- i0.ɵɵadvance(5);
343
- i0.ɵɵproperty("ngForOf", ctx_r22.steps);
105
+ const ctx_r24 = i0.ɵɵnextContext(4);
106
+ i0.ɵɵproperty("width", 24)("height", 24)("iconName", ctx_r24.icon.Cart);
344
107
  } }
345
- function RecipeDetailsComponent_div_0_ng_template_55_ng_container_7_div_9_Template(rf, ctx) { if (rf & 1) {
346
- i0.ɵɵelementStart(0, "div", 77);
347
- i0.ɵɵelementStart(1, "div");
108
+ function RecipeDetailsComponent_div_0_div_37_div_2_Template(rf, ctx) { if (rf & 1) {
109
+ i0.ɵɵelementStart(0, "div", 48);
110
+ i0.ɵɵelementStart(1, "span");
348
111
  i0.ɵɵtext(2);
349
- i0.ɵɵpipe(3, "capitalizeFirstLetter");
350
- i0.ɵɵelementEnd();
351
- i0.ɵɵelementStart(4, "div", 71);
352
- i0.ɵɵtext(5);
353
- i0.ɵɵpipe(6, "readableFloatNumber");
354
- i0.ɵɵelementEnd();
355
- i0.ɵɵelementEnd();
356
- } if (rf & 2) {
357
- const ingredient_r57 = ctx.$implicit;
358
- const i_r58 = ctx.index;
359
- const ctx_r56 = i0.ɵɵnextContext(4);
360
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c3, ctx_r56.ingredientsChecked[i_r58]));
361
- i0.ɵɵadvance(2);
362
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 3, ingredient_r57.name), "");
363
- i0.ɵɵadvance(3);
364
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(6, 5, ingredient_r57.qty, ingredient_r57.unit), "");
365
- } }
366
- function RecipeDetailsComponent_div_0_ng_template_55_ng_container_7_Template(rf, ctx) { if (rf & 1) {
367
- const _r60 = i0.ɵɵgetCurrentView();
368
- i0.ɵɵelementContainerStart(0);
369
- i0.ɵɵelementStart(1, "div", 67);
370
- i0.ɵɵelementStart(2, "div", 68);
371
- i0.ɵɵelementStart(3, "ng-miam-counter-input", 69);
372
- i0.ɵɵlistener("counterChange", function RecipeDetailsComponent_div_0_ng_template_55_ng_container_7_Template_ng_miam_counter_input_counterChange_3_listener($event) { i0.ɵɵrestoreView(_r60); const ctx_r59 = i0.ɵɵnextContext(3); return ctx_r59.updateGuests($event); });
373
- i0.ɵɵelementEnd();
374
- i0.ɵɵelementStart(4, "span", 70);
375
- i0.ɵɵtext(5);
376
- i0.ɵɵelementEnd();
377
- i0.ɵɵelementEnd();
378
- i0.ɵɵelementStart(6, "span", 71);
379
- i0.ɵɵtext(7, "Quantit\u00E9");
380
- i0.ɵɵelementEnd();
381
- i0.ɵɵelementEnd();
382
- i0.ɵɵelementStart(8, "div", 72);
383
- i0.ɵɵtemplate(9, RecipeDetailsComponent_div_0_ng_template_55_ng_container_7_div_9_Template, 7, 10, "div", 73);
384
- i0.ɵɵelementEnd();
385
- i0.ɵɵelementContainerEnd();
386
- } if (rf & 2) {
387
- const ctx_r53 = i0.ɵɵnextContext(3);
388
- i0.ɵɵadvance(3);
389
- i0.ɵɵproperty("counter", ctx_r53.recipe == null ? null : ctx_r53.recipe.modifiedGuests);
390
- i0.ɵɵadvance(2);
391
- i0.ɵɵtextInterpolate1("Pour ", ctx_r53.recipe == null ? null : ctx_r53.recipe.modifiedGuests, " personnes");
392
- i0.ɵɵadvance(4);
393
- i0.ɵɵproperty("ngForOf", ctx_r53.recipe == null ? null : ctx_r53.recipe.modifiedIngredients);
394
- } }
395
- function RecipeDetailsComponent_div_0_ng_template_55_ng_template_8_div_1_ng_miam_icon_6_Template(rf, ctx) { if (rf & 1) {
396
- i0.ɵɵelement(0, "ng-miam-icon", 83);
397
- } if (rf & 2) {
398
- const ctx_r64 = i0.ɵɵnextContext(5);
399
- i0.ɵɵproperty("height", 16)("width", 16)("iconName", ctx_r64.icon.CheckCircleFill);
400
- } }
401
- function RecipeDetailsComponent_div_0_ng_template_55_ng_template_8_div_1_Template(rf, ctx) { if (rf & 1) {
402
- const _r66 = i0.ɵɵgetCurrentView();
403
- i0.ɵɵelementStart(0, "div", 79);
404
- i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_ng_template_55_ng_template_8_div_1_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r66); const i_r63 = ctx.index; const ctx_r65 = i0.ɵɵnextContext(4); return ctx_r65.changeActiveStep(i_r63); });
405
- i0.ɵɵelementStart(1, "div", 80);
406
- i0.ɵɵelementStart(2, "strong");
407
- i0.ɵɵtext(3);
408
- i0.ɵɵelementEnd();
409
- i0.ɵɵelementEnd();
410
- i0.ɵɵelementStart(4, "div", 81);
411
- i0.ɵɵtext(5);
112
+ i0.ɵɵpipe(3, "async");
412
113
  i0.ɵɵelementEnd();
413
- i0.ɵɵtemplate(6, RecipeDetailsComponent_div_0_ng_template_55_ng_template_8_div_1_ng_miam_icon_6_Template, 1, 3, "ng-miam-icon", 82);
114
+ i0.ɵɵtemplate(4, RecipeDetailsComponent_div_0_div_37_div_2_ng_miam_icon_4_Template, 1, 3, "ng-miam-icon", 49);
115
+ i0.ɵɵpipe(5, "async");
414
116
  i0.ɵɵelementEnd();
415
117
  } if (rf & 2) {
416
- const step_r62 = ctx.$implicit;
417
- const i_r63 = ctx.index;
418
- const ctx_r61 = i0.ɵɵnextContext(4);
419
- i0.ɵɵclassProp("active", i_r63 === ctx_r61.activeStep)("miam-recipe-details__panel__done", i_r63 < ctx_r61.activeStep);
420
- i0.ɵɵadvance(3);
421
- i0.ɵɵtextInterpolate(i_r63 + 1);
118
+ const ctx_r21 = i0.ɵɵnextContext(3);
422
119
  i0.ɵɵadvance(2);
423
- i0.ɵɵtextInterpolate(step_r62 == null ? null : step_r62.attributes == null ? null : step_r62.attributes.description);
424
- i0.ɵɵadvance(1);
425
- i0.ɵɵproperty("ngIf", i_r63 <= ctx_r61.activeStep);
426
- } }
427
- function RecipeDetailsComponent_div_0_ng_template_55_ng_template_8_Template(rf, ctx) { if (rf & 1) {
428
- i0.ɵɵelementStart(0, "div", 75);
429
- i0.ɵɵtemplate(1, RecipeDetailsComponent_div_0_ng_template_55_ng_template_8_div_1_Template, 7, 7, "div", 76);
430
- i0.ɵɵelementEnd();
431
- } if (rf & 2) {
432
- const ctx_r55 = i0.ɵɵnextContext(3);
433
- i0.ɵɵadvance(1);
434
- i0.ɵɵproperty("ngForOf", ctx_r55.steps);
435
- } }
436
- const _c4 = function (a0) { return { "active": a0 }; };
437
- function RecipeDetailsComponent_div_0_ng_template_55_Template(rf, ctx) { if (rf & 1) {
438
- const _r68 = i0.ɵɵgetCurrentView();
439
- i0.ɵɵelementStart(0, "div", 84, 85);
440
- i0.ɵɵelementStart(2, "div", 86);
441
- i0.ɵɵelementStart(3, "button", 87);
442
- i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_ng_template_55_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r68); const _r52 = i0.ɵɵreference(1); const ctx_r67 = i0.ɵɵnextContext(2); ctx_r67.toggleShowIngredient(true); return _r52.scrollIntoView(); });
443
- i0.ɵɵtext(4, "Ingredients");
444
- i0.ɵɵelementEnd();
445
- i0.ɵɵelementStart(5, "button", 87);
446
- i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_ng_template_55_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r68); const _r52 = i0.ɵɵreference(1); const ctx_r69 = i0.ɵɵnextContext(2); ctx_r69.toggleShowIngredient(false); return _r52.scrollIntoView(); });
447
- i0.ɵɵtext(6, "Pr\u00E9paration");
448
- i0.ɵɵelementEnd();
449
- i0.ɵɵelementEnd();
450
- i0.ɵɵtemplate(7, RecipeDetailsComponent_div_0_ng_template_55_ng_container_7_Template, 10, 3, "ng-container", 88);
451
- i0.ɵɵtemplate(8, RecipeDetailsComponent_div_0_ng_template_55_ng_template_8_Template, 2, 1, "ng-template", null, 89, i0.ɵɵtemplateRefExtractor);
452
- i0.ɵɵelementEnd();
453
- } if (rf & 2) {
454
- const _r54 = i0.ɵɵreference(9);
455
- const ctx_r24 = i0.ɵɵnextContext(2);
456
- i0.ɵɵadvance(3);
457
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c4, ctx_r24.showIngredient));
120
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, ctx_r21.groceriesListsService.recipeIsInList(ctx_r21.recipe == null ? null : ctx_r21.recipe.id)) ? "Voir les produits" : "Ajouter les ingr\u00E9dients", " ");
458
121
  i0.ɵɵadvance(2);
459
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c4, !ctx_r24.showIngredient));
460
- i0.ɵɵadvance(2);
461
- i0.ɵɵproperty("ngIf", ctx_r24.showIngredient)("ngIfElse", _r54);
462
- } }
463
- function RecipeDetailsComponent_div_0_div_59_Template(rf, ctx) { if (rf & 1) {
464
- i0.ɵɵelementStart(0, "div", 51);
465
- i0.ɵɵelement(1, "ng-miam-recipe-pricing", 52);
466
- i0.ɵɵelementEnd();
467
- } if (rf & 2) {
468
- const ctx_r25 = i0.ɵɵnextContext(2);
469
- i0.ɵɵadvance(1);
470
- i0.ɵɵproperty("recipe", ctx_r25.recipe)("serves", ctx_r25.recipe == null ? null : ctx_r25.recipe.modifiedGuests);
471
- } }
472
- function RecipeDetailsComponent_div_0_button_60_ng_miam_icon_5_Template(rf, ctx) { if (rf & 1) {
473
- i0.ɵɵelement(0, "ng-miam-icon", 56);
474
- i0.ɵɵpipe(1, "async");
475
- } if (rf & 2) {
476
- const ctx_r70 = i0.ɵɵnextContext(3);
477
- i0.ɵɵproperty("width", 24)("height", 24)("iconName", i0.ɵɵpipeBind1(1, 3, ctx_r70.groceriesListsService.recipeIsInList(ctx_r70.recipe == null ? null : ctx_r70.recipe.id)) ? ctx_r70.icon.CheckList : ctx_r70.icon.Cart);
122
+ i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(5, 4, ctx_r21.groceriesListsService.recipeIsInList(ctx_r21.recipe == null ? null : ctx_r21.recipe.id)));
478
123
  } }
479
- function RecipeDetailsComponent_div_0_button_60_ng_template_6_Template(rf, ctx) { if (rf & 1) {
124
+ function RecipeDetailsComponent_div_0_div_37_ng_template_3_Template(rf, ctx) { if (rf & 1) {
480
125
  i0.ɵɵelement(0, "ng-miam-loader");
481
126
  } }
482
- function RecipeDetailsComponent_div_0_button_60_Template(rf, ctx) { if (rf & 1) {
483
- const _r74 = i0.ɵɵgetCurrentView();
484
- i0.ɵɵelementStart(0, "button", 53);
485
- i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_button_60_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r74); const ctx_r73 = i0.ɵɵnextContext(2); return ctx_r73.clickPrimary(); });
127
+ const _c2 = function (a0, a1) { return { "in-basket": a0, "loading": a1 }; };
128
+ function RecipeDetailsComponent_div_0_div_37_Template(rf, ctx) { if (rf & 1) {
129
+ const _r26 = i0.ɵɵgetCurrentView();
130
+ i0.ɵɵelementStart(0, "div", 45);
131
+ i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_div_37_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(2); return ctx_r25.clickPrimary(); });
486
132
  i0.ɵɵpipe(1, "async");
487
- i0.ɵɵelementStart(2, "span");
488
- i0.ɵɵtext(3);
489
- i0.ɵɵpipe(4, "async");
490
- i0.ɵɵelementEnd();
491
- i0.ɵɵtemplate(5, RecipeDetailsComponent_div_0_button_60_ng_miam_icon_5_Template, 2, 5, "ng-miam-icon", 54);
492
- i0.ɵɵtemplate(6, RecipeDetailsComponent_div_0_button_60_ng_template_6_Template, 1, 0, "ng-template", null, 55, i0.ɵɵtemplateRefExtractor);
133
+ i0.ɵɵtemplate(2, RecipeDetailsComponent_div_0_div_37_div_2_Template, 6, 6, "div", 46);
134
+ i0.ɵɵtemplate(3, RecipeDetailsComponent_div_0_div_37_ng_template_3_Template, 1, 0, "ng-template", null, 47, i0.ɵɵtemplateRefExtractor);
493
135
  i0.ɵɵelementEnd();
494
136
  } if (rf & 2) {
495
- const _r71 = i0.ɵɵreference(7);
496
- const ctx_r26 = i0.ɵɵnextContext(2);
497
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(8, _c2, i0.ɵɵpipeBind1(1, 4, ctx_r26.groceriesListsService.recipeIsInList(ctx_r26.recipe == null ? null : ctx_r26.recipe.id)), ctx_r26.addButtonLoading));
498
- i0.ɵɵadvance(3);
499
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 6, ctx_r26.groceriesListsService.recipeIsInList(ctx_r26.recipe == null ? null : ctx_r26.recipe.id)) ? "Voir le d\u00E9tail" : "S\u00E9lectionner ce repas", " ");
137
+ const _r22 = i0.ɵɵreference(4);
138
+ const ctx_r18 = i0.ɵɵnextContext(2);
139
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(5, _c2, i0.ɵɵpipeBind1(1, 3, ctx_r18.groceriesListsService.recipeIsInList(ctx_r18.recipe == null ? null : ctx_r18.recipe.id)), ctx_r18.addButtonLoading));
500
140
  i0.ɵɵadvance(2);
501
- i0.ɵɵproperty("ngIf", !ctx_r26.addButtonLoading)("ngIfElse", _r71);
141
+ i0.ɵɵproperty("ngIf", !ctx_r18.addButtonLoading)("ngIfElse", _r22);
502
142
  } }
503
143
  function RecipeDetailsComponent_div_0_Template(rf, ctx) { if (rf & 1) {
504
- const _r76 = i0.ɵɵgetCurrentView();
144
+ const _r28 = i0.ɵɵgetCurrentView();
505
145
  i0.ɵɵelementStart(0, "div", 2, 3);
506
146
  i0.ɵɵelementStart(2, "div", 4);
507
147
  i0.ɵɵelementStart(3, "div", 5);
508
- i0.ɵɵelementStart(4, "div", 6, 7);
509
- i0.ɵɵtemplate(6, RecipeDetailsComponent_div_0_img_6_Template, 1, 1, "img", 8);
510
- i0.ɵɵtemplate(7, RecipeDetailsComponent_div_0_div_7_Template, 1, 0, "div", 9);
511
- i0.ɵɵtemplate(8, RecipeDetailsComponent_div_0_youtube_player_8_Template, 1, 3, "youtube-player", 10);
512
- i0.ɵɵtemplate(9, RecipeDetailsComponent_div_0_ng_container_9_Template, 3, 3, "ng-container", 11);
513
- i0.ɵɵelementStart(10, "div", 12);
514
- i0.ɵɵtemplate(11, RecipeDetailsComponent_div_0_ng_miam_like_button_11_Template, 1, 3, "ng-miam-like-button", 13);
515
- i0.ɵɵpipe(12, "async");
516
- i0.ɵɵelement(13, "ng-miam-icon", 14);
517
- i0.ɵɵelement(14, "ng-miam-icon", 14);
148
+ i0.ɵɵtemplate(4, RecipeDetailsComponent_div_0_img_4_Template, 1, 0, "img", 6);
149
+ i0.ɵɵtemplate(5, RecipeDetailsComponent_div_0_ng_template_5_Template, 1, 0, "ng-template", null, 7, i0.ɵɵtemplateRefExtractor);
518
150
  i0.ɵɵelementEnd();
519
- i0.ɵɵtemplate(15, RecipeDetailsComponent_div_0_img_15_Template, 1, 1, "img", 15);
151
+ i0.ɵɵtemplate(7, RecipeDetailsComponent_div_0_span_7_Template, 2, 1, "span", 8);
152
+ i0.ɵɵelementStart(8, "a", 9);
153
+ i0.ɵɵtext(9, " Voir plus d'id\u00E9es repas ");
520
154
  i0.ɵɵelementEnd();
521
- i0.ɵɵelementStart(16, "div", 16);
522
- i0.ɵɵelementStart(17, "div", 17);
523
- i0.ɵɵelement(18, "ng-miam-icon", 18);
524
- i0.ɵɵelementStart(19, "span");
525
- i0.ɵɵtext(20);
526
155
  i0.ɵɵelementEnd();
156
+ i0.ɵɵelementStart(10, "div", 10);
157
+ i0.ɵɵelementStart(11, "div", 11);
158
+ i0.ɵɵelementStart(12, "div", 12);
159
+ i0.ɵɵelementStart(13, "div", 13);
160
+ i0.ɵɵtemplate(14, RecipeDetailsComponent_div_0_ng_miam_addon_link_14_Template, 1, 1, "ng-miam-addon-link", 14);
527
161
  i0.ɵɵelementEnd();
528
- i0.ɵɵelementStart(21, "div", 19);
529
- i0.ɵɵtemplate(22, RecipeDetailsComponent_div_0_div_22_Template, 7, 4, "div", 20);
530
- i0.ɵɵtemplate(23, RecipeDetailsComponent_div_0_div_23_Template, 7, 4, "div", 20);
531
- i0.ɵɵtemplate(24, RecipeDetailsComponent_div_0_div_24_Template, 7, 4, "div", 20);
162
+ i0.ɵɵelementStart(15, "div", 15, 16);
163
+ i0.ɵɵtemplate(17, RecipeDetailsComponent_div_0_img_17_Template, 1, 5, "img", 17);
164
+ i0.ɵɵtemplate(18, RecipeDetailsComponent_div_0_youtube_player_18_Template, 1, 3, "youtube-player", 18);
532
165
  i0.ɵɵelementEnd();
166
+ i0.ɵɵelementStart(19, "div", 19);
167
+ i0.ɵɵelementStart(20, "div", 20);
168
+ i0.ɵɵtemplate(21, RecipeDetailsComponent_div_0_ng_miam_like_button_21_Template, 1, 3, "ng-miam-like-button", 21);
169
+ i0.ɵɵpipe(22, "async");
170
+ i0.ɵɵelementStart(23, "ng-miam-icon", 22);
171
+ i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_Template_ng_miam_icon_click_23_listener() { i0.ɵɵrestoreView(_r28); const ctx_r27 = i0.ɵɵnextContext(); return ctx_r27.print(); });
533
172
  i0.ɵɵelementEnd();
534
173
  i0.ɵɵelementEnd();
535
- i0.ɵɵelementStart(25, "div", 21);
536
- i0.ɵɵelementStart(26, "div", 22);
537
- i0.ɵɵelementStart(27, "span", 23);
538
- i0.ɵɵtext(28);
539
- i0.ɵɵpipe(29, "titlecase");
174
+ i0.ɵɵelementStart(24, "div", 20);
175
+ i0.ɵɵelementStart(25, "ng-miam-icon", 23);
176
+ i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_Template_ng_miam_icon_click_25_listener() { i0.ɵɵrestoreView(_r28); const ctx_r29 = i0.ɵɵnextContext(); return ctx_r29.toggleHelper(); });
540
177
  i0.ɵɵelementEnd();
541
- i0.ɵɵelementStart(30, "span", 24);
542
- i0.ɵɵtext(31);
543
178
  i0.ɵɵelementEnd();
544
- i0.ɵɵelementStart(32, "div", 25);
545
- i0.ɵɵelementContainerStart(33, 26);
546
- i0.ɵɵtemplate(34, RecipeDetailsComponent_div_0_ng_container_34_Template, 2, 3, "ng-container", 27);
547
- i0.ɵɵtemplate(35, RecipeDetailsComponent_div_0_ng_container_35_Template, 2, 3, "ng-container", 27);
548
- i0.ɵɵtemplate(36, RecipeDetailsComponent_div_0_ng_container_36_Template, 2, 3, "ng-container", 27);
549
- i0.ɵɵtemplate(37, RecipeDetailsComponent_div_0_ng_container_37_Template, 1, 0, "ng-container", 28);
550
- i0.ɵɵelementContainerEnd();
551
- i0.ɵɵelementStart(38, "span");
552
- i0.ɵɵtext(39);
553
- i0.ɵɵpipe(40, "titlecase");
554
179
  i0.ɵɵelementEnd();
180
+ i0.ɵɵtemplate(26, RecipeDetailsComponent_div_0_ng_miam_recipe_details_infos_26_Template, 1, 3, "ng-miam-recipe-details-infos", 24);
555
181
  i0.ɵɵelementEnd();
556
- i0.ɵɵelementStart(41, "div", 29);
557
- i0.ɵɵtext(42);
558
- i0.ɵɵelementStart(43, "div", 30);
559
- i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_Template_div_click_43_listener() { i0.ɵɵrestoreView(_r76); const ctx_r75 = i0.ɵɵnextContext(); return ctx_r75.print(); });
560
- i0.ɵɵelement(44, "ng-miam-icon", 14);
561
- i0.ɵɵelementStart(45, "span");
562
- i0.ɵɵtext(46, " Imprimer la recette ");
563
182
  i0.ɵɵelementEnd();
183
+ i0.ɵɵelementStart(27, "div", 25);
184
+ i0.ɵɵelementStart(28, "div");
185
+ i0.ɵɵtemplate(29, RecipeDetailsComponent_div_0_div_29_Template, 2, 1, "div", 26);
564
186
  i0.ɵɵelementEnd();
187
+ i0.ɵɵtemplate(30, RecipeDetailsComponent_div_0_div_30_Template, 2, 1, "div", 27);
188
+ i0.ɵɵtemplate(31, RecipeDetailsComponent_div_0_ng_miam_recipe_details_infos_31_Template, 1, 3, "ng-miam-recipe-details-infos", 24);
189
+ i0.ɵɵelementStart(32, "ng-miam-recipe-details-ingredients", 28);
190
+ i0.ɵɵlistener("recipeChanged", function RecipeDetailsComponent_div_0_Template_ng_miam_recipe_details_ingredients_recipeChanged_32_listener() { i0.ɵɵrestoreView(_r28); const ctx_r30 = i0.ɵɵnextContext(); return ctx_r30.recipeChanged.emit(); });
565
191
  i0.ɵɵelementEnd();
192
+ i0.ɵɵelement(33, "ng-miam-recipe-details-steps", 29);
566
193
  i0.ɵɵelementEnd();
567
- i0.ɵɵelementStart(47, "div", 31);
568
- i0.ɵɵtemplate(48, RecipeDetailsComponent_div_0_div_48_Template, 2, 2, "div", 32);
569
- i0.ɵɵtemplate(49, RecipeDetailsComponent_div_0_button_49_Template, 8, 11, "button", 33);
194
+ i0.ɵɵelementStart(34, "div", 30);
195
+ i0.ɵɵelementStart(35, "div", 31);
196
+ i0.ɵɵtemplate(36, RecipeDetailsComponent_div_0_ng_miam_recipe_pricing_36_Template, 1, 2, "ng-miam-recipe-pricing", 32);
570
197
  i0.ɵɵelementEnd();
571
- i0.ɵɵelementEnd();
572
- i0.ɵɵelementEnd();
573
- i0.ɵɵelement(50, "div", 34);
574
- i0.ɵɵtemplate(51, RecipeDetailsComponent_div_0_div_51_Template, 2, 1, "div", 35);
575
- i0.ɵɵelementStart(52, "div");
576
- i0.ɵɵtemplate(53, RecipeDetailsComponent_div_0_ng_miam_addon_link_53_Template, 1, 1, "ng-miam-addon-link", 36);
577
- i0.ɵɵelementEnd();
578
- i0.ɵɵtemplate(54, RecipeDetailsComponent_div_0_div_54_Template, 18, 4, "div", 37);
579
- i0.ɵɵtemplate(55, RecipeDetailsComponent_div_0_ng_template_55_Template, 10, 8, "ng-template", null, 38, i0.ɵɵtemplateRefExtractor);
580
- i0.ɵɵelementStart(57, "div", 39);
581
- i0.ɵɵelementStart(58, "div", 31);
582
- i0.ɵɵtemplate(59, RecipeDetailsComponent_div_0_div_59_Template, 2, 2, "div", 32);
583
- i0.ɵɵtemplate(60, RecipeDetailsComponent_div_0_button_60_Template, 8, 11, "button", 33);
198
+ i0.ɵɵtemplate(37, RecipeDetailsComponent_div_0_div_37_Template, 5, 8, "div", 33);
584
199
  i0.ɵɵelementEnd();
585
200
  i0.ɵɵelementEnd();
586
201
  i0.ɵɵelementEnd();
587
202
  } if (rf & 2) {
588
- const _r23 = i0.ɵɵreference(56);
203
+ const _r5 = i0.ɵɵreference(6);
589
204
  const ctx_r0 = i0.ɵɵnextContext();
590
- i0.ɵɵadvance(6);
591
- i0.ɵɵproperty("ngIf", !ctx_r0.showVideo);
592
- i0.ɵɵadvance(1);
205
+ i0.ɵɵadvance(4);
206
+ i0.ɵɵproperty("ngIf", !ctx_r0.isMobile)("ngIfElse", _r5);
207
+ i0.ɵɵadvance(3);
208
+ i0.ɵɵproperty("ngIf", !ctx_r0.isMobile || ctx_r0.titleInHeader);
209
+ i0.ɵɵadvance(7);
210
+ i0.ɵɵproperty("ngIf", (ctx_r0.recipe == null ? null : ctx_r0.recipe.sponsors == null ? null : ctx_r0.recipe.sponsors.length) > 0 || ctx_r0.recipe.informationalSentence);
211
+ i0.ɵɵadvance(3);
593
212
  i0.ɵɵproperty("ngIf", !ctx_r0.showVideo);
594
213
  i0.ɵɵadvance(1);
595
214
  i0.ɵɵproperty("ngIf", ctx_r0.showVideo && ctx_r0.playerWidth);
596
- i0.ɵɵadvance(1);
597
- i0.ɵɵproperty("ngIf", ctx_r0.recipe && ctx_r0.displayAddedOnPicture);
598
- i0.ɵɵadvance(2);
599
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(12, 38, ctx_r0.userService.isLogged$));
600
- i0.ɵɵadvance(2);
601
- i0.ɵɵproperty("width", 26)("height", 26)("iconName", ctx_r0.icon.Calendar);
602
- i0.ɵɵadvance(1);
603
- i0.ɵɵproperty("width", 26)("height", 26)("iconName", ctx_r0.icon.Share);
604
- i0.ɵɵadvance(1);
605
- i0.ɵɵproperty("ngIf", ctx_r0.recipe.filigraneLogoUrl);
606
215
  i0.ɵɵadvance(3);
607
- i0.ɵɵproperty("width", 32)("height", 32)("iconName", ctx_r0.icon.Time);
216
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(22, 22, ctx_r0.userService.isLogged$));
608
217
  i0.ɵɵadvance(2);
609
- i0.ɵɵtextInterpolate1("Temps total : ", ctx_r0.recipe == null ? null : ctx_r0.recipe.totalTime, "");
218
+ i0.ɵɵproperty("width", 24)("height", 24)("iconName", ctx_r0.icon.Print);
610
219
  i0.ɵɵadvance(2);
611
- i0.ɵɵproperty("ngIf", (ctx_r0.recipe == null ? null : ctx_r0.recipe.preparationTime) !== "-");
612
- i0.ɵɵadvance(1);
613
- i0.ɵɵproperty("ngIf", (ctx_r0.recipe == null ? null : ctx_r0.recipe.cookingTime) !== "-");
220
+ i0.ɵɵproperty("width", 40)("height", 40)("iconName", ctx_r0.icon.Help);
614
221
  i0.ɵɵadvance(1);
615
- i0.ɵɵproperty("ngIf", (ctx_r0.recipe == null ? null : ctx_r0.recipe.restingTime) !== "-");
616
- i0.ɵɵadvance(4);
617
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(29, 40, ctx_r0.recipe == null ? null : ctx_r0.recipe.recipeType == null ? null : ctx_r0.recipe.recipeType.attributes == null ? null : ctx_r0.recipe.recipeType.attributes.name));
222
+ i0.ɵɵproperty("ngIf", !ctx_r0.isMobile);
618
223
  i0.ɵɵadvance(3);
619
- i0.ɵɵtextInterpolate(ctx_r0.recipe == null ? null : ctx_r0.recipe.attributes["title"]);
620
- i0.ɵɵadvance(2);
621
- i0.ɵɵproperty("ngSwitch", ctx_r0.recipe == null ? null : ctx_r0.recipe.difficultyLabel);
224
+ i0.ɵɵproperty("ngIf", ctx_r0.isMobile);
622
225
  i0.ɵɵadvance(1);
623
- i0.ɵɵproperty("ngSwitchCase", "facile");
226
+ i0.ɵɵproperty("ngIf", ctx_r0.recipe == null ? null : ctx_r0.recipe.attributes.description);
624
227
  i0.ɵɵadvance(1);
625
- i0.ɵɵproperty("ngSwitchCase", "moyen");
228
+ i0.ɵɵproperty("ngIf", ctx_r0.isMobile);
626
229
  i0.ɵɵadvance(1);
627
- i0.ɵɵproperty("ngSwitchCase", "difficile");
628
- i0.ɵɵadvance(3);
629
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(40, 42, ctx_r0.recipe == null ? null : ctx_r0.recipe.difficultyLabel));
630
- i0.ɵɵadvance(3);
631
- i0.ɵɵtextInterpolate1(" ", ctx_r0.recipe == null ? null : ctx_r0.recipe.attributes["description"], " ");
632
- i0.ɵɵadvance(2);
633
- i0.ɵɵproperty("width", 20)("height", 20)("iconName", ctx_r0.icon.Print);
634
- i0.ɵɵadvance(4);
635
- i0.ɵɵproperty("ngIf", ctx_r0.recipe && ctx_r0.displayPricing);
230
+ i0.ɵɵproperty("recipe", ctx_r0.recipe)("ingredientsPictures", ctx_r0.ingredientsPictures);
636
231
  i0.ɵɵadvance(1);
637
- i0.ɵɵproperty("ngIf", ctx_r0.previewAllowed);
638
- i0.ɵɵadvance(2);
639
- i0.ɵɵproperty("ngIf", ctx_r0.displayTags);
640
- i0.ɵɵadvance(2);
641
- i0.ɵɵproperty("ngIf", (ctx_r0.recipe == null ? null : ctx_r0.recipe.sponsors == null ? null : ctx_r0.recipe.sponsors.length) > 0 || ctx_r0.recipe.informationalSentence);
642
- i0.ɵɵadvance(1);
643
- i0.ɵɵproperty("ngIf", !ctx_r0.isMobile)("ngIfElse", _r23);
644
- i0.ɵɵadvance(5);
232
+ i0.ɵɵproperty("recipe", ctx_r0.recipe);
233
+ i0.ɵɵadvance(3);
645
234
  i0.ɵɵproperty("ngIf", ctx_r0.recipe && ctx_r0.displayPricing);
646
235
  i0.ɵɵadvance(1);
647
236
  i0.ɵɵproperty("ngIf", ctx_r0.previewAllowed);
648
237
  } }
649
238
  function RecipeDetailsComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
650
- const _r78 = i0.ɵɵgetCurrentView();
651
- i0.ɵɵelementStart(0, "ng-miam-recipe-addon", 90);
652
- i0.ɵɵlistener("hideAddon", function RecipeDetailsComponent_ng_template_1_Template_ng_miam_recipe_addon_hideAddon_0_listener() { i0.ɵɵrestoreView(_r78); const ctx_r77 = i0.ɵɵnextContext(); return ctx_r77.toggleAddon(); });
239
+ const _r32 = i0.ɵɵgetCurrentView();
240
+ i0.ɵɵelementStart(0, "ng-miam-recipe-addon", 51);
241
+ i0.ɵɵlistener("hideAddon", function RecipeDetailsComponent_ng_template_1_Template_ng_miam_recipe_addon_hideAddon_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(); return ctx_r31.toggleAddon(); });
653
242
  i0.ɵɵelementEnd();
654
243
  } if (rf & 2) {
655
244
  const ctx_r2 = i0.ɵɵnextContext();
656
245
  i0.ɵɵproperty("recipe", ctx_r2.recipe);
657
246
  } }
658
247
  export class RecipeDetailsComponent {
659
- constructor(cdr, mediaMatcher, groceriesListsService, userService, posService, recipeEventsService, contextService) {
248
+ constructor(cdr, recipeService, groceriesListsService, userService, posService, recipeEventsService, mediaMatcher, contextService) {
660
249
  this.cdr = cdr;
661
- this.mediaMatcher = mediaMatcher;
250
+ this.recipeService = recipeService;
662
251
  this.groceriesListsService = groceriesListsService;
663
252
  this.userService = userService;
664
253
  this.posService = posService;
665
254
  this.recipeEventsService = recipeEventsService;
255
+ this.mediaMatcher = mediaMatcher;
666
256
  this.contextService = contextService;
667
257
  this.previewAllowed = true;
668
258
  this.ingredientsPictures = false;
669
- this.displayTags = false;
670
259
  this.displayTagsIcons = false;
671
260
  this.displayPricing = true;
672
261
  this.displayAddedOnPicture = true;
@@ -674,63 +263,57 @@ export class RecipeDetailsComponent {
674
263
  this.recipeChanged = new EventEmitter();
675
264
  this.recipeError = new EventEmitter();
676
265
  this.primaryButtonClicked$ = new EventEmitter();
677
- this.isMobile = false;
678
266
  this.tab = 0;
267
+ this.isMobile = false;
268
+ this.displayTags = false;
679
269
  this.showDetail = true;
680
- this.steps = [];
681
- this.activeStep = 0;
682
270
  this.icon = Icon;
683
- this.ingredientsChecked = {};
684
- this.showIngredient = true;
685
- this.closeIconhidden = new BehaviorSubject(false);
686
- this.scrollListenerInitialised = false;
687
271
  this.addButtonLoading = false;
272
+ this.titleInHeader = false;
688
273
  this.subscriptions = [];
689
274
  this.isMobile = this.mediaMatcher.matchMedia('(max-width: 1023px)').matches;
690
275
  }
691
276
  ngOnChanges() {
692
277
  var _a;
693
- // if forceIngredientsStepstoggle, use isMobile to toggle ingredients & steps in mobile mode, else
694
- // Use the value of forceIngredientsStepstoggle to force it to mobile (true) or desktop (false)
695
- if (this.forceIngredientsStepstoggle !== undefined) {
696
- this.isMobile = this.forceIngredientsStepstoggle;
278
+ if (this.forceDisplayTags !== undefined && this.forceDisplayTags !== this.displayTags) {
279
+ this.displayTags = this.forceDisplayTags;
280
+ }
281
+ else {
282
+ this.displayTags = this.contextService.tagsOnRecipesEnabled;
697
283
  }
698
284
  this.showVideo = false; // force reload video player
699
285
  this.cdr.detectChanges();
700
286
  this.showVideo = this.contextService.videoRecipesEnabled && ((_a = this.recipe) === null || _a === void 0 ? void 0 : _a.videoId);
701
- if (this.recipe) {
702
- this.steps = this.recipe.steps;
703
- this.activeStep = 0;
704
- this.cdr.detectChanges();
705
- }
706
287
  }
707
288
  ngAfterViewChecked() {
708
289
  var _a, _b;
709
290
  this.playerWidth = Math.min(640, (_b = (_a = this.topContainerImg) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.offsetWidth);
710
291
  this.playerHeight = this.playerWidth * 390 / 640;
711
- if (!this.scrollListenerInitialised) {
712
- this.initScrollListener();
713
- }
292
+ this.cdr.detectChanges();
293
+ setTimeout(() => {
294
+ this.initScrollListenerOnTitle();
295
+ });
714
296
  }
715
297
  /**
716
298
  * Init the listener on scroll so the modal can hide the close icon
717
299
  */
718
- initScrollListener() {
719
- if (this.mainContainer) {
720
- const intersectionObserver = new IntersectionObserver(([entry]) => {
721
- if (this.mainContainer.nativeElement.scrollTop > 300 !== this.closeIconhidden.value) {
722
- this.closeIconhidden.next(this.mainContainer.nativeElement.scrollTop > 300);
723
- }
724
- }, {
725
- threshold: [0, 0.33, 0.66, 1],
726
- root: this.mainContainer.nativeElement
727
- });
728
- intersectionObserver.observe(this.topContainerImg.nativeElement);
729
- this.scrollListenerInitialised = true;
300
+ initScrollListenerOnTitle() {
301
+ if (!this.title) {
302
+ this.title = document.getElementById('miam-recipe-details__title');
303
+ }
304
+ if (!this.content) {
305
+ this.content = document.getElementById('miam-recipe-details__content');
306
+ }
307
+ if (this.isMobile && !this.intersectionObserver && this.content && this.title) {
308
+ // For more precision on title scroll detection, we want to trigger an event each time the user scrolls 5% of the content
309
+ const threshold = [...Array(20).keys()].map(x => x / 20);
310
+ // Receive an event each time the title enters/leaves the viewport
311
+ this.intersectionObserver = new IntersectionObserver(([entry]) => { this.toggleTitleInHeader(); }, { threshold });
312
+ this.intersectionObserver.observe(this.content);
730
313
  }
731
314
  }
732
- changeActiveStep(index) {
733
- this.activeStep = index;
315
+ toggleTitleInHeader() {
316
+ this.titleInHeader = this.title.getBoundingClientRect().top <= 40;
734
317
  this.cdr.detectChanges();
735
318
  }
736
319
  /**
@@ -775,53 +358,35 @@ export class RecipeDetailsComponent {
775
358
  sessionStorage.setItem('_miam/cached-recipe', JSON.stringify(this.recipe));
776
359
  this.recipeError.emit();
777
360
  }
778
- updateGuests(guests) {
779
- this.recipe.modifiedGuests = guests;
780
- this.recipeChanged.emit();
781
- this.cdr.detectChanges();
782
- }
783
361
  print() {
784
362
  window.print();
785
363
  }
786
- openCalendar(event) {
787
- stopEventPropagation(event);
788
- // TODO implement
789
- }
790
- shareRecipe(event) {
791
- stopEventPropagation(event);
792
- // TODO implement
793
- }
794
364
  toggleAddon() {
795
365
  this.showDetail = !this.showDetail;
796
366
  this.cdr.detectChanges();
797
367
  }
798
- toggleShowIngredient(isShowed) {
799
- this.showIngredient = isShowed;
368
+ toggleHelper() {
369
+ this.recipeService.toggleHelper();
800
370
  this.cdr.detectChanges();
801
371
  }
802
372
  toggleButtonLoader(value) {
803
373
  this.addButtonLoading = value;
804
374
  this.cdr.detectChanges();
805
375
  }
806
- ingredientPicture(ingredient) {
807
- return ingredient.picture || this.contextService.defaultIngredientPicture;
808
- }
809
376
  }
810
- RecipeDetailsComponent.ɵfac = function RecipeDetailsComponent_Factory(t) { return new (t || RecipeDetailsComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.MediaMatcher), i0.ɵɵdirectiveInject(i2.GroceriesListsService), i0.ɵɵdirectiveInject(i2.UserService), i0.ɵɵdirectiveInject(i2.PointOfSalesService), i0.ɵɵdirectiveInject(i2.RecipeEventsService), i0.ɵɵdirectiveInject(i2.ContextService)); };
377
+ RecipeDetailsComponent.ɵfac = function RecipeDetailsComponent_Factory(t) { return new (t || RecipeDetailsComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.RecipesService), i0.ɵɵdirectiveInject(i1.GroceriesListsService), i0.ɵɵdirectiveInject(i1.UserService), i0.ɵɵdirectiveInject(i1.PointOfSalesService), i0.ɵɵdirectiveInject(i1.RecipeEventsService), i0.ɵɵdirectiveInject(i2.MediaMatcher), i0.ɵɵdirectiveInject(i1.ContextService)); };
811
378
  RecipeDetailsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeDetailsComponent, selectors: [["ng-miam-recipe-details"]], viewQuery: function RecipeDetailsComponent_Query(rf, ctx) { if (rf & 1) {
812
379
  i0.ɵɵviewQuery(_c0, true);
813
- i0.ɵɵviewQuery(_c1, true);
814
380
  } if (rf & 2) {
815
381
  var _t;
816
382
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.topContainerImg = _t.first);
817
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.mainContainer = _t.first);
818
- } }, inputs: { recipe: "recipe", forceIngredientsStepstoggle: "forceIngredientsStepstoggle", previewAllowed: "previewAllowed", ingredientsPictures: "ingredientsPictures", displayTags: "displayTags", displayTagsIcons: "displayTagsIcons", displayPricing: "displayPricing", displayAddedOnPicture: "displayAddedOnPicture" }, outputs: { recipeAdded: "recipeAdded", recipeChanged: "recipeChanged", recipeError: "recipeError" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 2, consts: [["class", "miam-recipe-details", 4, "ngIf", "ngIfElse"], ["addon", ""], [1, "miam-recipe-details"], ["mainContainer", ""], [1, "miam-recipe-details__top__container"], [1, "miam-recipe-details__top__left"], [1, "miam-recipe-details__top__container__img"], ["topContainerImg", ""], [3, "src", 4, "ngIf"], ["class", "miam-recipe-details__picture__gradient", 4, "ngIf"], [3, "videoId", "width", "height", 4, "ngIf"], [4, "ngIf"], [1, "miam-recipe-details__img__actions"], ["class", "miam-recipe-details__actions__icon miam-noPadding", 3, "recipe", "width", "height", 4, "ngIf"], ["primaryColor", "var(--m-color-primary)", 1, "miam-recipe-details__actions__icon", 3, "width", "height", "iconName"], ["class", "miam-recipe-details__picture__sponsor", 3, "src", 4, "ngIf"], [1, "miam-recipe-details__top__container__info"], [1, "miam-recipe-details__info__metrics", "miam-recipe-details__info__metrics__total"], ["primaryColor", "var(--m-color-primary)", 3, "width", "height", "iconName"], [1, "miam-recipe-details__info__times"], ["class", "miam-recipe-details__info__metrics", 4, "ngIf"], [1, "miam-recipe-details__top__container__infos"], [1, "miam-recipe-details__top__container__infos__top"], [1, "miam-recipe-details__infos__type"], [1, "miam-recipe-details__infos__title"], [1, "miam-recipe-details__infos__difficulty"], [3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], [1, "miam-recipe-details__infos__description"], [1, "miam-recipe-details__description__action", 3, "click"], [1, "miam-recipe-details__infos__price__wrapper"], ["class", "miam-recipe-details__infos__price", 4, "ngIf"], ["class", "miam-recipe-details__infos__action m-button-fab-primary", 3, "ngClass", "click", 4, "ngIf"], [1, "miam-recipe-details__mid__container"], ["class", "miam-recipe-details__tags__container", 4, "ngIf"], [3, "recipe", "showAddon", 4, "ngIf"], ["class", "miam-recipe-details__bottom__container", 4, "ngIf", "ngIfElse"], ["mobileContainer", ""], [1, "miam-recipe-details__bottom__container__action"], [3, "src"], [1, "miam-recipe-details__picture__gradient"], [3, "videoId", "width", "height"], ["class", "miam-recipe-details__picture__tag", 4, "ngIf"], [1, "miam-recipe-details__picture__tag"], [1, "miam-recipe-details__actions__icon", "miam-noPadding", 3, "recipe", "width", "height"], [1, "miam-recipe-details__picture__sponsor", 3, "src"], [1, "miam-recipe-details__info__metrics"], [1, "miam-recipe-details__metrics__row"], ["primaryColor", "var(--m-color-slate)", 3, "width", "height", "iconName"], [3, "width", "height", "iconName"], [1, "miam-recipe-details__infos__price"], [3, "recipe", "serves"], [1, "miam-recipe-details__infos__action", "m-button-fab-primary", 3, "ngClass", "click"], ["primaryColor", "#fff", 3, "width", "height", "iconName", 4, "ngIf", "ngIfElse"], ["addLoader", ""], ["primaryColor", "#fff", 3, "width", "height", "iconName"], [1, "miam-recipe-details__tags__container"], ["class", "miam-recipe-details__tag", 4, "ngFor", "ngForOf"], [1, "miam-recipe-details__tag"], ["class", "miam-recipe-details__tag__icon", 3, "src", 4, "ngIf"], [1, "miam-recipe-details__tag__name"], [1, "miam-recipe-details__tag__icon", 3, "src"], [3, "recipe", "showAddon"], [1, "miam-recipe-details__bottom__container"], [1, "miam-recipe-details__bottom__container__ingredients"], [1, "miam-recipe-details__bottom__container__header"], [1, "miam-recipe-details__ingredients__row"], [1, "miam-recipe-details__ingredients__counter"], [3, "counter", "counterChange"], [1, "miam-recipe-details__ingredients__counter__print"], [1, "miam-recipe-details__ingredients__row__qty"], [1, "miam-recipe-details__ingredients__list"], ["class", "miam-recipe-details__ingredients__row", 3, "ngClass", 4, "ngFor", "ngForOf"], [1, "miam-recipe-details__bottom__container__steps"], [1, "miam-recipe-details__steps__list"], ["class", "miam-recipe-details__steps__list__panel", 3, "active", "miam-recipe-details__panel__done", "click", 4, "ngFor", "ngForOf"], [1, "miam-recipe-details__ingredients__row", 3, "ngClass"], [1, "miam-recipe-details__ingredients__row__picture", 3, "src"], [1, "miam-recipe-details__steps__list__panel", 3, "click"], [1, "miam-recipe-details__panel__idx"], [1, "miam-recipe-details__panel__text"], ["class", "miam-recipe-details__panel__checkIcon", "primaryColor", "var(--m-color-secondary)", 3, "height", "width", "iconName", 4, "ngIf"], ["primaryColor", "var(--m-color-secondary)", 1, "miam-recipe-details__panel__checkIcon", 3, "height", "width", "iconName"], [1, "miam-recipe-details__mobile__container"], ["mobileContainerTop", ""], [1, "miam-recipe-details__mobile__header"], [1, "m-button-secondary", 3, "ngClass", "click"], [4, "ngIf", "ngIfElse"], ["stepsContainer", ""], [3, "recipe", "hideAddon"]], template: function RecipeDetailsComponent_Template(rf, ctx) { if (rf & 1) {
819
- i0.ɵɵtemplate(0, RecipeDetailsComponent_div_0_Template, 61, 44, "div", 0);
383
+ } }, inputs: { recipe: "recipe", previewAllowed: "previewAllowed", ingredientsPictures: "ingredientsPictures", forceDisplayTags: "forceDisplayTags", displayTagsIcons: "displayTagsIcons", displayPricing: "displayPricing", displayAddedOnPicture: "displayAddedOnPicture" }, outputs: { recipeAdded: "recipeAdded", recipeChanged: "recipeChanged", recipeError: "recipeError" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 2, consts: [["class", "miam-recipe-details", 4, "ngIf", "ngIfElse"], ["addon", ""], [1, "miam-recipe-details"], ["mainContainer", ""], [1, "miam-recipe-details__header"], [1, "miam-recipe-details__bookmark"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/recipe-details/recipe-details-bookmark.svg", 4, "ngIf", "ngIfElse"], ["stamp", ""], ["class", "miam-recipe-details__title", 4, "ngIf"], [1, "miam-recipe-details__header__link"], [1, "miam-recipe-details__container"], [1, "miam-recipe-details__summary"], [1, "miam-recipe-details__summary__container"], [1, "miam-recipe-details__sponsor"], [3, "recipe", "showAddon", 4, "ngIf"], [1, "miam-recipe-details__picture"], ["topContainerImg", ""], [3, "src", "ngClass", 4, "ngIf"], [3, "videoId", "width", "height", 4, "ngIf"], [1, "miam-recipe-details__actionbar"], [1, "miam-recipe-details__actionbar__group"], ["class", "miam-recipe-details__actions__icon", 3, "recipe", "width", "height", 4, "ngIf"], ["primaryColor", "var(--m-color-primary)", 1, "miam-recipe-details__actions__icon", 3, "width", "height", "iconName", "click"], ["primaryColor", "var(--m-color-grey02)", "secondaryColor", "var(--m-color-grey07)", 1, "miam-recipe-details__actions__icon", 3, "width", "height", "iconName", "click"], [3, "recipe", "displayTags", "displayTagsIcons", 4, "ngIf"], ["id", "miam-recipe-details__content", 1, "miam-recipe-details__content"], ["class", "miam-recipe-details__title", "id", "miam-recipe-details__title", 4, "ngIf"], ["class", "miam-recipe-details__content__description", 4, "ngIf"], [3, "recipe", "ingredientsPictures", "recipeChanged"], [3, "recipe"], [1, "miam-recipe-details__action__container"], [1, "miam-recipe-details__price"], ["guestsText", "par personne", 3, "recipe", "serves", 4, "ngIf"], ["class", "miam-recipe-details__addbasket", 3, "ngClass", "click", 4, "ngIf"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/recipe-details/recipe-details-bookmark.svg"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/recipe-details/recipe-details-stamp.svg"], [1, "miam-recipe-details__title"], [3, "recipe", "showAddon"], [3, "src", "ngClass"], [3, "videoId", "width", "height"], [1, "miam-recipe-details__actions__icon", 3, "recipe", "width", "height"], [3, "recipe", "displayTags", "displayTagsIcons"], ["id", "miam-recipe-details__title", 1, "miam-recipe-details__title"], [1, "miam-recipe-details__content__description"], ["guestsText", "par personne", 3, "recipe", "serves"], [1, "miam-recipe-details__addbasket", 3, "ngClass", "click"], ["class", "miam-recipe-details__addbasket__cta", 4, "ngIf", "ngIfElse"], ["addLoader", ""], [1, "miam-recipe-details__addbasket__cta"], ["primaryColor", "#fff", 3, "width", "height", "iconName", 4, "ngIf"], ["primaryColor", "#fff", 3, "width", "height", "iconName"], [3, "recipe", "hideAddon"]], template: function RecipeDetailsComponent_Template(rf, ctx) { if (rf & 1) {
384
+ i0.ɵɵtemplate(0, RecipeDetailsComponent_div_0_Template, 38, 24, "div", 0);
820
385
  i0.ɵɵtemplate(1, RecipeDetailsComponent_ng_template_1_Template, 1, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
821
386
  } if (rf & 2) {
822
387
  const _r1 = i0.ɵɵreference(2);
823
388
  i0.ɵɵproperty("ngIf", ctx.showDetail)("ngIfElse", _r1);
824
- } }, directives: [i3.NgIf, i4.IconComponent, i3.NgSwitch, i3.NgSwitchCase, i3.NgSwitchDefault, i5.YouTubePlayer, i6.LikeButtonComponent, i7.RecipePricingComponent, i3.NgClass, i8.LoaderComponent, i3.NgForOf, i9.AddonLinkComponent, i10.CounterInputComponent, i11.RecipeAddonComponent], pipes: [i3.AsyncPipe, i3.TitleCasePipe, i12.CapitalizeFirstLetterPipe, i13.ReadableFloatNumberPipe], styles: [".miam-recipe-details{border-radius:var(--m-border-radius);display:inline-flex;flex-direction:row;flex-wrap:wrap;height:calc(80vh - 80px);margin:40px 8px;min-width:calc(100% - 32px);padding:0 16px}.miam-recipe-details::-webkit-scrollbar-button{height:20px}.miam-recipe-details::-webkit-scrollbar-track{background:var(--m-color-grey)}.miam-recipe-details::-webkit-scrollbar{cursor:-webkit-grab;height:7px;width:5px}.miam-recipe-details::-webkit-scrollbar-thumb{background:var(--m-color-primary);border-radius:5px}.miam-recipe-details .miam-recipe-details__top__container{display:flex;justify-content:space-evenly}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img{align-items:center;border-radius:var(--m-border-radius);display:flex;height:400px;overflow:hidden;position:relative;width:370px}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img img{-o-object-fit:cover;-webkit-print-color-adjust:exact;display:block;height:100%;object-fit:cover;transform:translateX(-25%)}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img .miam-recipe-details__picture__gradient{background:linear-gradient(180deg,transparent 57.92%,rgba(0,0,0,.75) 100%,rgba(0,0,0,.75) 0);border-top-left-radius:var(--m-border-radius);border-top-right-radius:var(--m-border-radius);display:block;height:100%;position:absolute;top:0;width:100%}@media print{.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img .miam-recipe-details__picture__gradient{display:none}}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img .miam-recipe-details__picture__tag{background-color:var(--m-color-primary-light);border-radius:5px;bottom:16px;color:var(--m-color-primary);font-weight:500;left:16px;padding:8px;position:absolute;text-transform:uppercase}@media print{.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img .miam-recipe-details__picture__tag{display:none}}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img .miam-recipe-details__img__actions{display:flex;flex-direction:column;justify-content:space-evenly;position:absolute;right:16px;top:16px;z-index:var(--m-z-index-position-absolute-hight)}@media print{.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img .miam-recipe-details__img__actions{display:none}}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img .miam-recipe-details__img__actions .miam-recipe-details__actions__icon{-o-object-fit:contain;background-color:#fff;border-radius:var(--m-border-radius-circle);box-shadow:var(--m-shadow-small);margin:0 0 16px;object-fit:contain;padding:8px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img .miam-recipe-details__img__actions .miam-recipe-details__actions__icon.miam-noPadding{padding:0}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img .miam-recipe-details__picture__sponsor{-o-object-fit:contain;bottom:16px;height:auto;max-height:72px;max-width:96px;object-fit:contain;position:absolute;right:16px;transform:none;width:auto}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos{display:flex;flex:1 1;flex-direction:column;justify-content:space-between;margin-left:40px;padding:16px;position:relative}@media (max-width:1022px){.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__infos__price__wrapper{display:none}}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top{display:flex;flex-direction:column;position:relative}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__type{color:var(--m-color-black);font-size:14px;line-height:1.14;padding-bottom:16px;text-align:left}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__title{color:var(--m-color-secondary);font-size:32px;font-weight:700;line-height:1.1;text-align:left}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__difficulty{display:flex;padding:16px 0}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__difficulty ng-miam-icon{margin-right:8px}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__metrics{align-items:center;display:flex;flex-direction:column}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__metrics span{color:var(--m-color-black);font-size:14px;margin-left:12px}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__metrics .miam-recipe-details__metrics__row{display:flex}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__description{color:var(--m-color-grey-text-dark);display:flex;flex:1;flex-direction:column;font-size:17px;line-height:1.62;margin-bottom:24px;overflow-y:auto;text-align:left;word-break:break-word}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__description .miam-recipe-details__description__action{align-items:center;display:flex;margin-top:16px}@media print{.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__description .miam-recipe-details__description__action{display:none}}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__description .miam-recipe-details__description__action>*{cursor:pointer}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__description .miam-recipe-details__description__action>:hover{color:var(--m-color-primary);text-decoration:underline}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__description .miam-recipe-details__description__action ng-miam-icon{margin-right:10px}.miam-recipe-details .miam-recipe-details__infos__price__wrapper{align-items:flex-end;display:flex;flex-direction:column;height:100%;justify-content:flex-start;max-height:225px;padding-left:16px;position:relative}.miam-recipe-details .miam-recipe-details__infos__price__wrapper .miam-recipe-details__infos__price{margin-bottom:4px;padding:4px}.miam-recipe-details .miam-recipe-details__infos__price__wrapper .miam-recipe-details__infos__price .miam-recipe-pricing__wrapper{color:var(--m-color-primary);flex-direction:row}@media (max-width:1022px){.miam-recipe-details .miam-recipe-details__infos__price__wrapper .miam-recipe-details__infos__price .miam-recipe-pricing__wrapper{display:flex;flex-direction:column}}@media print{.miam-recipe-details .miam-recipe-details__infos__price__wrapper .miam-recipe-details__infos__price .miam-recipe-pricing__wrapper{display:none}}.miam-recipe-details .miam-recipe-details__infos__price__wrapper .miam-recipe-details__infos__price .miam-recipe-pricing__wrapper .miam-recipe-pricing__wrapper__price{font-size:20px}.miam-recipe-details .miam-recipe-details__infos__price__wrapper .miam-recipe-details__infos__price .miam-recipe-pricing__wrapper .miam-recipe-pricing__wrapper__subline{font-size:14px;margin-left:12px}.miam-recipe-details .miam-recipe-details__infos__price__wrapper .miam-recipe-details__infos__action{border-radius:20px;color:var(--m-color-white);font-size:16px;padding:8px 20px}@media print{.miam-recipe-details .miam-recipe-details__infos__price__wrapper .miam-recipe-details__infos__action{display:none}}@media (min-width:1022px){.miam-recipe-details .miam-recipe-details__infos__price__wrapper .miam-recipe-details__infos__action:hover{color:var(--m-color-primary)}}.miam-recipe-details .miam-recipe-details__infos__price__wrapper .miam-recipe-details__infos__action ng-miam-icon{margin-left:16px}.miam-recipe-details .miam-recipe-details__infos__price__wrapper .miam-recipe-details__infos__action .loader{border:var(--m-loader-thickness) solid transparent;border-top:var(--m-loader-thickness) solid var(--m-color-white);height:24px;width:24px}.miam-recipe-details .miam-recipe-details__top__container__info{align-items:center;display:flex;flex-direction:column;gap:24px;justify-content:center;padding:16px 0;width:370px}.miam-recipe-details .miam-recipe-details__top__container__info .miam-recipe-details__info__metrics{align-items:center;display:flex;justify-content:center}.miam-recipe-details .miam-recipe-details__top__container__info .miam-recipe-details__info__metrics span{color:var(--m-color-primary);font-size:19px;font-weight:700;margin-left:12px}.miam-recipe-details .miam-recipe-details__top__container__info .miam-recipe-details__info__times{align-items:center;display:flex;justify-content:space-evenly}.miam-recipe-details .miam-recipe-details__top__container__info .miam-recipe-details__info__times .miam-recipe-details__info__metrics{flex-direction:column;margin-right:24px}.miam-recipe-details .miam-recipe-details__top__container__info .miam-recipe-details__info__times .miam-recipe-details__info__metrics span{color:var(--m-color-black);font-size:13px;font-weight:400;line-height:16px;margin-left:4px}.miam-recipe-details .miam-recipe-details__top__container__info .miam-recipe-details__info__times .miam-recipe-details__info__metrics .miam-recipe-details__metrics__row{align-items:center;display:flex}.miam-recipe-details .miam-recipe-details__top__container__info .miam-recipe-details__info__times .miam-recipe-details__info__metrics .miam-recipe-details__metrics__row span{font-size:19px}.miam-recipe-details .miam-recipe-details__top__container__info .miam-recipe-details__info__times .miam-recipe-details__info__metrics{align-items:center;display:flex;justify-content:center;z-index:0}.miam-recipe-details .miam-recipe-details__top__container__info .miam-recipe-details__info__times .miam-recipe-details__info__metrics ng-miam-icon{display:flex;justify-content:center;margin-right:4px;min-height:32px}.miam-recipe-details .miam-recipe-details__top__container__info .miam-recipe-details__info__times .miam-recipe-details__info__metrics span{font-size:15px}.miam-recipe-details .miam-recipe-details__mid__container{border-bottom:1px dashed var(--m-color-primary);display:flex;padding-bottom:16px;width:100%}.miam-recipe-details .miam-recipe-details__tags__container{display:flex;flex-wrap:wrap;padding:20px;width:100%}.miam-recipe-details .miam-recipe-details__tags__container .miam-recipe-details__tag{background-color:var(--m-color-grey05);border-radius:var(--m-border-radius-pill);display:flex;margin:4px;padding:4px 8px}.miam-recipe-details .miam-recipe-details__tags__container .miam-recipe-details__tag .miam-recipe-details__tag__icon{height:16px;width:16px}.miam-recipe-details .miam-recipe-details__tags__container .miam-recipe-details__tag .miam-recipe-details__tag__name{font-size:16px}.miam-recipe-details .miam-recipe-details__bottom__container{display:flex;width:100%}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__bottom__container__header{border-bottom:1px solid var(--m-color-grey-text);color:var(--m-color-primary);display:block;font-size:20px;font-size:17px;font-weight:700;margin:24px 0;padding:16px 0 8px;position:relative}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__ingredients__counter{align-items:center;display:flex}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__ingredients__counter ng-miam-counter-input .miam-counter-input__icon{margin-right:16px}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__ingredients__counter .miam-recipe-details__ingredients__counter__print{display:none}@media print{.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__ingredients__counter ng-miam-counter-input{display:none}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__ingredients__counter .miam-recipe-details__ingredients__counter__print{display:block}}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__ingredients__list{flex:1 1;overflow-y:auto;padding-bottom:40px}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__ingredients__list::-webkit-scrollbar-track{background:var(--m-color-grey)}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__ingredients__list::-webkit-scrollbar{cursor:-webkit-grab;height:7px;width:5px}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__ingredients__list::-webkit-scrollbar-thumb{background:var(--m-color-primary);border-radius:5px}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__ingredients__row{color:var(--m-color-black);display:flex;font-size:14px;font-weight:700;height:40px;justify-content:space-between;padding-bottom:16px}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__ingredients__row .miam-recipe-details__ingredients__row__qty{color:var(--m-color-grey-text-dark);font-size:14px;font-weight:500;padding-right:10px}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__bottom__container__ingredients{display:flex;flex:1;flex-direction:column;padding:0 40px 0 0}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__bottom__container__steps{display:flex;flex:1;flex-direction:column}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__bottom__container__steps .miam-recipe-details__steps__list{flex:1 1;overflow-y:auto;padding-bottom:40px}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__bottom__container__steps .miam-recipe-details__steps__list::-webkit-scrollbar-track{background:var(--m-color-grey)}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__bottom__container__steps .miam-recipe-details__steps__list::-webkit-scrollbar{cursor:-webkit-grab;height:7px;width:5px}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__bottom__container__steps .miam-recipe-details__steps__list::-webkit-scrollbar-thumb{background:var(--m-color-primary);border-radius:5px}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__bottom__container__steps .miam-recipe-details__steps__list .miam-recipe-details__steps__list__panel{-webkit-tap-highlight-color:transparent;align-items:center;background-color:var(--m-color-primary-text);border-radius:var(--m-border-radius);cursor:pointer;display:flex;flex-direction:row;margin:0 16px 8px 0;text-align:left;transition:var(--m-default-transition)}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__bottom__container__steps .miam-recipe-details__steps__list .miam-recipe-details__steps__list__panel .miam-recipe-details__panel__idx{color:var(--m-color-secondary);flex:0 0 auto;font-size:20px;margin-right:20px}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__bottom__container__steps .miam-recipe-details__steps__list .miam-recipe-details__steps__list__panel .miam-recipe-details__panel__text{font-size:14px;word-break:break-word}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__bottom__container__steps .miam-recipe-details__steps__list .miam-recipe-details__steps__list__panel .miam-recipe-details__panel__checkIcon{flex:0 0 auto}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__bottom__container__steps .miam-recipe-details__steps__list .miam-recipe-details__steps__list__panel.miam-recipe-details__panel__done{background-color:var(--m-color-secondary-light)}.miam-recipe-details .miam-recipe-details__bottom__container .miam-recipe-details__bottom__container__steps .miam-recipe-details__steps__list .miam-recipe-details__steps__list__panel div{flex:1;margin:10px}.miam-recipe-details .miam-recipe-details__bottom__container__action{width:100%}@media print{.miam-recipe-details{height:unset}}@media (max-width:1022px){.miam-recipe-details{height:80vh;margin:0;min-width:100vw;overflow-y:auto;padding:0 0 80px}.miam-recipe-details .miam-recipe-details__infos__price__wrapper{align-items:center;background-color:var(--m-color-white);bottom:0;flex-direction:row;height:unset;justify-content:space-between;left:0;padding:4px 16px;position:fixed;right:0}.miam-recipe-details .miam-recipe-details__infos__price__wrapper .miam-recipe-pricing__wrapper{flex-direction:column}.miam-recipe-details .miam-recipe-details__infos__price__wrapper .miam-recipe-pricing__wrapper .miam-recipe-pricing__wrapper__subline{font-size:10px;margin-left:0}.miam-recipe-details .miam-recipe-details__infos__price__wrapper .miam-recipe-details__infos__action{padding:8px 10px}.miam-recipe-details .miam-recipe-details__top__container{flex-wrap:wrap}.miam-recipe-details .miam-recipe-details__top__container div .miam-recipe-details__top__left{position:-webkit-sticky;position:sticky;top:0;z-index:3}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__info__times{position:-webkit-sticky;position:sticky;top:0;z-index:1}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img{height:220px;position:-webkit-sticky;position:sticky;top:-5vh;width:100vw;z-index:3}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img img{height:unset;transform:none;width:100%}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img .miam-recipe-details__picture__tag{bottom:unset;left:16px;top:16px}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img .miam-recipe-details__img__actions{bottom:0;flex-direction:unset;left:8px;right:unset;top:unset}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__img .miam-recipe-details__img__actions .miam-recipe-details__actions__icon{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(0,0,0,.65);background-color:unset;box-shadow:none;margin:0 4px 8px}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos{flex:unset;margin-left:unset;padding:0 16px;width:100vw;z-index:0}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__type{display:none}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__title{font-size:24px}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__description{margin-bottom:16px}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__infos .miam-recipe-details__top__container__infos__top .miam-recipe-details__infos__description .miam-recipe-details__description__action{display:none}.miam-recipe-details .miam-recipe-details__top__container .miam-recipe-details__top__container__info{background-color:var(--m-color-white);width:unset;z-index:1}.miam-recipe-details .miam-recipe-details__mobile__container{display:flex;flex-direction:column;min-height:80vh;padding-bottom:50px;position:relative;width:100vw}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__mobile__header{background-color:var(--m-color-white);border-radius:32px 32px 0 0;display:flex;justify-content:space-evenly;padding:16px 0;position:-webkit-sticky;position:sticky;top:0;z-index:1}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__mobile__header button{margin-right:0}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__mobile__header button.active{background-color:var(--m-color-primary);color:var(--m-color-white)}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__ingredients__row{align-items:center;color:var(--m-color-black);display:flex;font-size:14px;font-weight:700;justify-content:space-between;padding-bottom:16px;padding-right:16px}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__ingredients__row div{width:100%}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__ingredients__row .miam-recipe-details__ingredients__row__qty{color:var(--m-color-grey-text-dark);font-size:14px;font-weight:500;margin-right:16px;padding-right:10px;text-align:end}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__ingredients__counter{display:flex;justify-content:space-between;padding:16px}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__ingredients__counter .miam-recipe-details__ingredients__counter__print{display:none}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__ingredients__list{display:flex;flex-direction:column}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__ingredients__list .miam-recipe-details__ingredients__row{display:flex;font-size:16px;justify-content:space-between;padding:0 16px 16px}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__steps__list .miam-recipe-details__steps__list__panel{-webkit-tap-highlight-color:transparent;align-items:center;align-items:flex-start;background-color:transparent;border-radius:var(--m-border-radius);cursor:pointer;display:flex;flex-direction:row;margin:0 8px 32px;padding:0;position:relative;text-align:left;transition:var(--m-default-transition)}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__steps__list .miam-recipe-details__steps__list__panel:not(:last-child):before{background-color:var(--m-color-grey);content:\"\";height:50%;left:29px;position:absolute;top:60px;width:1px}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__steps__list .miam-recipe-details__steps__list__panel.miam-recipe-details__panel__done{background-color:var(--miam-color-primary-light)}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__steps__list .miam-recipe-details__steps__list__panel .miam-recipe-details__panel__idx{align-items:center;background-color:var(--m-color-primary);border-radius:40px;color:#fff;display:flex;flex:0 0 auto;font-size:17px;font-weight:700;height:40px;justify-content:center;margin-right:20px;width:40px}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__steps__list .miam-recipe-details__steps__list__panel .miam-recipe-details__panel__text{font-size:14px}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__steps__list .miam-recipe-details__steps__list__panel .miam-recipe-details__panel__checkIcon{flex:0 0 auto}.miam-recipe-details .miam-recipe-details__mobile__container .miam-recipe-details__steps__list .miam-recipe-details__steps__list__panel div{flex:1;margin:10px}.miam-recipe-details .miam-recipe-details__bottom__container__action{background:var(--m-color-white);bottom:0;left:0;padding:0 16px;position:fixed;right:0;width:100vw;z-index:4}}"], encapsulation: 2, changeDetection: 0 });
389
+ } }, directives: [i3.NgIf, i4.IconComponent, i5.RecipeDetailsIngredientsComponent, i6.RecipeDetailsStepsComponent, i7.AddonLinkComponent, i3.NgClass, i8.YouTubePlayer, i9.LikeButtonComponent, i10.RecipeDetailsInfosComponent, i11.RecipePricingComponent, i12.LoaderComponent, i13.RecipeAddonComponent], pipes: [i3.AsyncPipe], styles: [".miam-recipe-details{display:flex;flex-direction:column;height:100vh;width:100%}.miam-recipe-details .miam-recipe-details__title{font-size:32px;font-weight:700;line-height:40px;margin-left:112px;max-width:calc(100% - 352px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.miam-recipe-details .miam-recipe-details__header{align-items:center;background-color:var(--m-color-white);box-shadow:0 1px 0 #e9e9e9;display:flex;flex-direction:row;height:80px;justify-content:space-between;position:relative;width:100%}.miam-recipe-details .miam-recipe-details__header .miam-recipe-details__bookmark{height:126px;left:20px;position:absolute;top:0;width:72px;z-index:1}@media (min-width:1023px){.miam-recipe-details .miam-recipe-details__header .miam-recipe-details__bookmark img{height:100%}}.miam-recipe-details .miam-recipe-details__header .miam-recipe-details__header__link{cursor:pointer;font-size:14px;line-height:20px;margin-right:64px}.miam-recipe-details .miam-recipe-details__container{display:flex;flex-direction:row;height:calc(100% - 80px);width:100%}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__summary{background-color:var(--m-color-primary-light);background-image:url(https://storage.googleapis.com/assets.miam.tech/generic/recipe-details/recipe-details-background-pattern.svg);border-right:1px solid #e9e9e9;display:flex;margin-bottom:80px;width:60%}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__summary .miam-recipe-details__summary__container{display:flex;flex-direction:column;width:100%}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__summary .miam-recipe-details__summary__container .miam-recipe-details__picture{height:auto;max-height:48vh;position:relative;width:100%}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__summary .miam-recipe-details__summary__container .miam-recipe-details__picture img{-o-object-fit:cover;height:100%;object-fit:cover;width:100%}@media (min-width:1023px){.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__summary .miam-recipe-details__summary__container .miam-recipe-details__picture img{max-height:calc(100vh - 396px)}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__summary .miam-recipe-details__summary__container .miam-recipe-details__picture img.sponsor{max-height:calc(100vh - 504px)}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__summary .miam-recipe-details__summary__container .miam-recipe-details__picture img.tags{max-height:calc(100vh - 476px)}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__summary .miam-recipe-details__summary__container .miam-recipe-details__picture img.sponsor.tags{max-height:calc(100vh - 584px)}}@media (min-width:1023px) and (max-height:816px){.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__summary .miam-recipe-details__summary__container .miam-recipe-details__picture img.sponsor.tags{max-height:232px}}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__summary .miam-recipe-details__summary__container .miam-recipe-details__actionbar{background-color:var(--m-color-white);display:flex;filter:drop-shadow(0 8px 28px rgba(0,0,0,.07));flex-direction:row;justify-content:space-between}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__summary .miam-recipe-details__summary__container .miam-recipe-details__actionbar .miam-recipe-details__actionbar__group{display:flex;flex-direction:row}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__summary .miam-recipe-details__summary__container .miam-recipe-details__actionbar .miam-recipe-details__actionbar__group .miam-recipe-details__actions__icon{-webkit-tap-highlight-color:transparent;align-items:center;cursor:pointer;display:flex;height:40px;justify-content:center;margin:8px 16px}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__content{background-color:var(--m-color-white);display:flex;flex-direction:column;height:100%;overflow-y:scroll;padding:24px 24px 0;width:40%}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__content .miam-recipe-details__content__description{color:var(--m-color-grey-text-dark);display:flex;flex-direction:column;font-size:16px;line-height:20px;margin-bottom:40px;text-align:left;word-break:break-word}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__content ng-miam-recipe-details-ingredients{margin-bottom:40px}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__action__container{background-color:var(--m-color-white);bottom:0;box-shadow:0 -1px 0 #e9e9e9,0 1px 0 #e9e9e9;display:flex;flex-direction:row;height:80px;left:0;position:absolute;right:40%}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__action__container .miam-recipe-details__price{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;position:relative;width:34%}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__action__container .miam-recipe-details__price .miam-recipe-pricing__wrapper{color:var(--m-color-primary);flex-direction:row}@media (max-width:1022px){.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__action__container .miam-recipe-details__price .miam-recipe-pricing__wrapper{display:flex;flex-direction:column}}@media print{.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__action__container .miam-recipe-details__price .miam-recipe-pricing__wrapper{display:none}}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__action__container .miam-recipe-details__price .miam-recipe-pricing__wrapper .miam-recipe-pricing__wrapper__price{font-size:20px}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__action__container .miam-recipe-details__price .miam-recipe-pricing__wrapper .miam-recipe-pricing__wrapper__subline{font-size:14px;margin-left:12px}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__action__container .miam-recipe-details__addbasket{align-items:center;background-color:var(--m-color-secondary);color:var(--m-color-white);cursor:pointer;display:flex;font-size:19px;font-weight:700;justify-content:center;width:66%}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__action__container .miam-recipe-details__addbasket .miam-recipe-details__addbasket__cta{display:flex;flex-direction:row}@media print{.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__action__container .miam-recipe-details__addbasket{display:none}}@media (min-width:1022px){.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__action__container .miam-recipe-details__addbasket:hover{background-color:var(--m-color-secondary-dark)}}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__action__container .miam-recipe-details__addbasket ng-miam-icon{margin-left:16px}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__action__container .miam-recipe-details__addbasket .loader{border:var(--m-loader-thickness) solid transparent;border-top:var(--m-loader-thickness) solid var(--m-color-white);height:24px;width:24px}@media print{.miam-recipe-details{height:unset!important}}@media (max-width:1023px){.miam-recipe-details .miam-recipe-details__header{height:48px}.miam-recipe-details .miam-recipe-details__header .miam-recipe-details__bookmark{left:16px;top:4px}.miam-recipe-details .miam-recipe-details__header .miam-recipe-details__title{font-size:16px;font-weight:900;line-height:20px;margin-left:64px;max-width:calc(100% - 112px)}.miam-recipe-details .miam-recipe-details__header .miam-recipe-details__header__link{display:none}.miam-recipe-details .miam-recipe-details__container{flex-direction:column;overflow-y:scroll}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__summary{height:100%;margin-bottom:8px;width:100%}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__summary .miam-recipe-details__summary__container .miam-recipe-details__actionbar{filter:unset}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__content{height:100%;overflow-y:unset;padding:0 24px;width:100%}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__content .miam-recipe-details__title{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;font-size:24px;line-height:28px;margin:0;max-width:unset;overflow:hidden;text-overflow:ellipsis;white-space:unset;width:100%}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__content .miam-recipe-details__content__description{margin:16px 0 0}.miam-recipe-details .miam-recipe-details__container .miam-recipe-details__action__container{right:0}}"], encapsulation: 2, changeDetection: 0 });
825
390
  /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(RecipeDetailsComponent, [{
826
391
  type: Component,
827
392
  args: [{
@@ -831,15 +396,13 @@ RecipeDetailsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeDetailsCompo
831
396
  encapsulation: ViewEncapsulation.None,
832
397
  changeDetection: ChangeDetectionStrategy.OnPush
833
398
  }]
834
- }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.MediaMatcher }, { type: i2.GroceriesListsService }, { type: i2.UserService }, { type: i2.PointOfSalesService }, { type: i2.RecipeEventsService }, { type: i2.ContextService }]; }, { recipe: [{
835
- type: Input
836
- }], forceIngredientsStepstoggle: [{
399
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.RecipesService }, { type: i1.GroceriesListsService }, { type: i1.UserService }, { type: i1.PointOfSalesService }, { type: i1.RecipeEventsService }, { type: i2.MediaMatcher }, { type: i1.ContextService }]; }, { recipe: [{
837
400
  type: Input
838
401
  }], previewAllowed: [{
839
402
  type: Input
840
403
  }], ingredientsPictures: [{
841
404
  type: Input
842
- }], displayTags: [{
405
+ }], forceDisplayTags: [{
843
406
  type: Input
844
407
  }], displayTagsIcons: [{
845
408
  type: Input
@@ -856,8 +419,5 @@ RecipeDetailsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeDetailsCompo
856
419
  }], topContainerImg: [{
857
420
  type: ViewChild,
858
421
  args: ['topContainerImg']
859
- }], mainContainer: [{
860
- type: ViewChild,
861
- args: ['mainContainer']
862
422
  }] }); })();
863
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWRldGFpbHMvcmVjaXBlLWRldGFpbHMuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtZGV0YWlscy9yZWNpcGUtZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsS0FBSyxFQUNMLGlCQUFpQixFQUNqQixNQUFNLEVBQ04sWUFBWSxFQUdaLFNBQVMsRUFDVCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ILE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDZjNDLDBCQUNBOzs7SUFEd0IsNEdBQXVDOzs7SUFDL0QsMEJBQTZFOzs7SUFDN0UscUNBS2tCOzs7SUFIaEIsK0NBQTBCLDZCQUFBLCtCQUFBOzs7SUFNMUIsK0JBQzRDO0lBQUEsMkNBQVk7SUFBQSxpQkFB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O1lBQ0csZ0JBQWdCO2tCQUF4QixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLHFCQUFxQjtrQkFBN0IsS0FBSztZQUNJLFdBQVc7a0JBQXBCLE1BQU07WUFDRyxhQUFhO2tCQUF0QixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQUd1QixlQUFlO2tCQUE1QyxTQUFTO21CQUFDLGlCQUFpQjtZQUNBLGFBQWE7a0JBQXhDLFNBQVM7bUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBJbnB1dCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPbkNoYW5nZXMsXG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlY2lwZSB9IGZyb20gJy4uLy4uL19tb2RlbHMvcmVjaXBlJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBHcm9jZXJpZXNMaXN0c1NlcnZpY2UsIFBvaW50T2ZTYWxlc1NlcnZpY2UsIFJlY2lwZUV2ZW50c1NlcnZpY2UsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZm9ya0pvaW4sIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RvcEV2ZW50UHJvcGFnYXRpb24gfSBmcm9tICcuLi8uLi9fdXRpbHMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1lZGlhTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgU2ltcGxpZmllZEluZ3JlZGllbnQgfSBmcm9tICcuLi8uLi9fbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlY2lwZURldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0NoZWNrZWQge1xuICBASW5wdXQoKSByZWNpcGU6IFJlY2lwZTtcbiAgQElucHV0KCkgZm9yY2VJbmdyZWRpZW50c1N0ZXBzdG9nZ2xlOiBib29sZWFuO1xuICBASW5wdXQoKSBwcmV2aWV3QWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGluZ3JlZGllbnRzUGljdHVyZXMgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzcGxheVRhZ3MgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzcGxheVRhZ3NJY29ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlBZGRlZE9uUGljdHVyZSA9IHRydWU7XG4gIEBPdXRwdXQoKSByZWNpcGVBZGRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcmVjaXBlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcmVjaXBlRXJyb3I6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcHJpbWFyeUJ1dHRvbkNsaWNrZWQkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RvcENvbnRhaW5lckltZycpIHRvcENvbnRhaW5lckltZzogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnbWFpbkNvbnRhaW5lcicpIG1haW5Db250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgaXNNb2JpbGUgPSBmYWxzZTtcbiAgdGFiID0gMDtcbiAgc2hvd0RldGFpbCA9IHRydWU7XG4gIHN0ZXBzOiBhbnlbXSA9IFtdO1xuICBhY3RpdmVTdGVwID0gMDtcbiAgaWNvbiA9IEljb247XG4gIGluZ3JlZGllbnRzQ2hlY2tlZCA9IHt9O1xuICBzaG93SW5ncmVkaWVudCA9IHRydWU7XG4gIGNsb3NlSWNvbmhpZGRlbiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwbGF5ZXJXaWR0aDtcbiAgcGxheWVySGVpZ2h0O1xuICBzaG93VmlkZW87XG4gIHNjcm9sbExpc3RlbmVySW5pdGlhbGlzZWQgPSBmYWxzZTtcbiAgYWRkQnV0dG9uTG9hZGluZyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBtZWRpYU1hdGNoZXI6IE1lZGlhTWF0Y2hlcixcbiAgICBwdWJsaWMgZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlOiBHcm9jZXJpZXNMaXN0c1NlcnZpY2UsXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcG9zU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZUV2ZW50c1NlcnZpY2U6IFJlY2lwZUV2ZW50c1NlcnZpY2UsXG4gICAgcHVibGljIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIHRoaXMuaXNNb2JpbGUgPSB0aGlzLm1lZGlhTWF0Y2hlci5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiAxMDIzcHgpJykubWF0Y2hlcztcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIC8vIGlmIGZvcmNlSW5ncmVkaWVudHNTdGVwc3RvZ2dsZSwgdXNlIGlzTW9iaWxlIHRvIHRvZ2dsZSBpbmdyZWRpZW50cyAmIHN0ZXBzIGluIG1vYmlsZSBtb2RlLCBlbHNlXG4gICAgLy8gVXNlIHRoZSB2YWx1ZSBvZiBmb3JjZUluZ3JlZGllbnRzU3RlcHN0b2dnbGUgdG8gZm9yY2UgaXQgdG8gbW9iaWxlICh0cnVlKSBvciBkZXNrdG9wIChmYWxzZSlcbiAgICBpZiAodGhpcy5mb3JjZUluZ3JlZGllbnRzU3RlcHN0b2dnbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5pc01vYmlsZSA9IHRoaXMuZm9yY2VJbmdyZWRpZW50c1N0ZXBzdG9nZ2xlO1xuICAgIH1cbiAgICB0aGlzLnNob3dWaWRlbyA9IGZhbHNlOyAvLyBmb3JjZSByZWxvYWQgdmlkZW8gcGxheWVyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuc2hvd1ZpZGVvID0gdGhpcy5jb250ZXh0U2VydmljZS52aWRlb1JlY2lwZXNFbmFibGVkICYmIHRoaXMucmVjaXBlPy52aWRlb0lkO1xuICAgIGlmICh0aGlzLnJlY2lwZSkge1xuICAgICAgdGhpcy5zdGVwcyA9IHRoaXMucmVjaXBlLnN0ZXBzO1xuICAgICAgdGhpcy5hY3RpdmVTdGVwID0gMDtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgdGhpcy5wbGF5ZXJXaWR0aCA9IE1hdGgubWluKDY0MCwgdGhpcy50b3BDb250YWluZXJJbWc/Lm5hdGl2ZUVsZW1lbnQ/Lm9mZnNldFdpZHRoKTtcbiAgICB0aGlzLnBsYXllckhlaWdodCA9IHRoaXMucGxheWVyV2lkdGggKiAzOTAgLyA2NDA7XG4gICAgaWYgKCF0aGlzLnNjcm9sbExpc3RlbmVySW5pdGlhbGlzZWQpIHtcbiAgICAgIHRoaXMuaW5pdFNjcm9sbExpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXQgdGhlIGxpc3RlbmVyIG9uIHNjcm9sbCBzbyB0aGUgbW9kYWwgY2FuIGhpZGUgdGhlIGNsb3NlIGljb25cbiAgICovXG4gIGluaXRTY3JvbGxMaXN0ZW5lcigpIHtcbiAgICBpZiAodGhpcy5tYWluQ29udGFpbmVyKSB7XG4gICAgICBjb25zdCBpbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoW2VudHJ5XSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tYWluQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID4gMzAwICE9PSB0aGlzLmNsb3NlSWNvbmhpZGRlbi52YWx1ZSkge1xuICAgICAgICAgIHRoaXMuY2xvc2VJY29uaGlkZGVuLm5leHQodGhpcy5tYWluQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID4gMzAwKSA7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRocmVzaG9sZDogWzAsIDAuMzMsIDAuNjYsIDFdLFxuICAgICAgICByb290OiB0aGlzLm1haW5Db250YWluZXIubmF0aXZlRWxlbWVudFxuICAgICAgfSk7XG4gICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMudG9wQ29udGFpbmVySW1nLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgdGhpcy5zY3JvbGxMaXN0ZW5lckluaXRpYWxpc2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VBY3RpdmVTdGVwKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmFjdGl2ZVN0ZXAgPSBpbmRleDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHJlY2lwZSB0byBsaXN0IG9uIHByaW1hcnkgYnV0dG9uIGNsaWNrIGFuZCBlbWl0IHRydWUgaWYgdGhlIHJlY2lwZSBpcyBhZGRlZCwgZmFsc2UgaWYgcmVjaXBlIGlzIG5vdCBhZGRlZFxuICAgKiBzbyBsaWIgdXNlcnMgY2FuIGRlY2lkZSB0aGF0IHByaW1hcnlCdXR0b25DbGlja2VkJC5lbWl0KGZhbHNlKSByZW1vdmVzIHRoZSByZWNpcGUgZm9yIGV4YW1wbGVcbiAgICovXG4gIGNsaWNrUHJpbWFyeSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYWRkQnV0dG9uTG9hZGluZykge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgIHRoaXMuZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLnJlY2lwZUlzSW5MaXN0KHRoaXMucmVjaXBlLmlkKS5zdWJzY3JpYmUocmVjaXBlSXNJbkxpc3QgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkUmVjaXBlKCk7XG4gICAgICAgICAgdGhpcy5wcmltYXJ5QnV0dG9uQ2xpY2tlZCQuZW1pdCghcmVjaXBlSXNJbkxpc3QpOyAvLyAhcmVjaXBlSXNJbkxpc3QgPSBhZGQgYWN0aW9uLCBzbyB3ZSBlbWl0IHRydWVcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgYWRkUmVjaXBlKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlQnV0dG9uTG9hZGVyKHRydWUpO1xuICAgIGZvcmtKb2luKFtcbiAgICAgIHRoaXMudXNlclNlcnZpY2UuaXNMb2dnZWQkLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZSgxKSksXG4gICAgICB0aGlzLnBvc1NlcnZpY2UuaXNQb3NWYWxpZCgpLnBpcGUodGFrZSgxKSlcbiAgICBdKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGNvbnN0IGlzSG9va09rID0gdGhpcy5jb250ZXh0U2VydmljZS5ob29rQ2FsbGJhY2socmVzWzBdLCByZXNbMV0pO1xuICAgICAgaWYgKGlzSG9va09rKSB7XG4gICAgICAgIHRoaXMuYWRkUmVjaXBlQWN0aW9uT0soKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkUmVjaXBlQWN0aW9uS08oKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFkZFJlY2lwZUFjdGlvbk9LKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5ncm9jZXJpZXNMaXN0c1NlcnZpY2UucmVjaXBlSXNJbkxpc3QodGhpcy5yZWNpcGUuaWQpLnN1YnNjcmliZShyZWNpcGVJc0luTGlzdCA9PiB7XG4gICAgICAgIGlmICghcmVjaXBlSXNJbkxpc3Qpe1xuICAgICAgICAgIHRoaXMucmVjaXBlRXZlbnRzU2VydmljZS5zZW5kRXZlbnQodGhpcy5yZWNpcGUsIHRoaXMucmVjaXBlRXZlbnRzU2VydmljZS5BQ1RJT05fQURERUQpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHRoaXMuZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLmFwcGVuZFJlY2lwZVRvTGlzdCh0aGlzLnJlY2lwZS5pZCwgdGhpcy5yZWNpcGUubW9kaWZpZWRHdWVzdHMsICdkZXRhaWxzJylcbiAgICAgIC5zdWJzY3JpYmUobCA9PiB7XG4gICAgICAgIHRoaXMudG9nZ2xlQnV0dG9uTG9hZGVyKGZhbHNlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnJlY2lwZUFkZGVkLmVtaXQoKTtcbiAgfVxuXG4gIGFkZFJlY2lwZUFjdGlvbktPKCk6IHZvaWQge1xuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ19taWFtL2NhY2hlZC1yZWNpcGUnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnJlY2lwZSkpO1xuICAgIHRoaXMucmVjaXBlRXJyb3IuZW1pdCgpO1xuICB9XG5cbiAgdXBkYXRlR3Vlc3RzKGd1ZXN0cykge1xuICAgIHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID0gZ3Vlc3RzO1xuICAgIHRoaXMucmVjaXBlQ2hhbmdlZC5lbWl0KCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpbnQoKSB7XG4gICAgd2luZG93LnByaW50KCk7XG4gIH1cblxuICBvcGVuQ2FsZW5kYXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgc3RvcEV2ZW50UHJvcGFnYXRpb24oZXZlbnQpO1xuICAgIC8vIFRPRE8gaW1wbGVtZW50XG4gIH1cblxuICBzaGFyZVJlY2lwZShldmVudDogRXZlbnQpIHtcbiAgICBzdG9wRXZlbnRQcm9wYWdhdGlvbihldmVudCk7XG4gICAgLy8gVE9ETyBpbXBsZW1lbnRcbiAgfVxuXG4gIHRvZ2dsZUFkZG9uKCl7XG4gICAgdGhpcy5zaG93RGV0YWlsID0gICF0aGlzLnNob3dEZXRhaWw7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdG9nZ2xlU2hvd0luZ3JlZGllbnQoaXNTaG93ZWQ6IGJvb2xlYW4pe1xuICAgIHRoaXMuc2hvd0luZ3JlZGllbnQgPSBpc1Nob3dlZDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB0b2dnbGVCdXR0b25Mb2FkZXIodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmFkZEJ1dHRvbkxvYWRpbmcgPSB2YWx1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuXG4gIGluZ3JlZGllbnRQaWN0dXJlKGluZ3JlZGllbnQ6IFNpbXBsaWZpZWRJbmdyZWRpZW50KTogc3RyaW5nIHtcbiAgICByZXR1cm4gaW5ncmVkaWVudC5waWN0dXJlIHx8IHRoaXMuY29udGV4dFNlcnZpY2UuZGVmYXVsdEluZ3JlZGllbnRQaWN0dXJlO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwic2hvd0RldGFpbCBlbHNlIGFkZG9uXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzXCIgI21haW5Db250YWluZXIgPlxuICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdG9wX19jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdG9wX19sZWZ0XCI+XG4gICAgICA8ZGl2ICN0b3BDb250YWluZXJJbWcgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX190b3BfX2NvbnRhaW5lcl9faW1nXCI+XG4gICAgICAgIDxpbWcgKm5nSWY9XCIhc2hvd1ZpZGVvXCIgW3NyY109XCJyZWNpcGU/LmF0dHJpYnV0ZXNbJ21lZGlhLXVybCddXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhc2hvd1ZpZGVvXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19waWN0dXJlX19ncmFkaWVudFwiPjwvZGl2PlxuICAgICAgICA8eW91dHViZS1wbGF5ZXJcbiAgICAgICAgICAqbmdJZj1cInNob3dWaWRlbyAmJiBwbGF5ZXJXaWR0aFwiXG4gICAgICAgICAgW3ZpZGVvSWRdPVwicmVjaXBlLnZpZGVvSWRcIlxuICAgICAgICAgIFt3aWR0aF09XCJwbGF5ZXJXaWR0aFwiXG4gICAgICAgICAgW2hlaWdodF09XCJwbGF5ZXJIZWlnaHRcIlxuICAgICAgICA+PC95b3V0dWJlLXBsYXllcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVjaXBlICYmIGRpc3BsYXlBZGRlZE9uUGljdHVyZVwiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIoZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLnJlY2lwZUlzSW5MaXN0KHJlY2lwZT8uaWQpIHwgYXN5bmMpXCJcbiAgICAgICAgICAgIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcGljdHVyZV9fdGFnXCI+RMOpasOgIGFqb3V0w6llPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faW1nX19hY3Rpb25zXCI+XG4gICAgICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b24gKm5nSWY9XCJ1c2VyU2VydmljZS5pc0xvZ2dlZCQgfCBhc3luY1wiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FjdGlvbnNfX2ljb24gbWlhbS1ub1BhZGRpbmdcIiBbcmVjaXBlXT0ncmVjaXBlJyBbd2lkdGhdPVwiMjZcIiBbaGVpZ2h0XT1cIjI2XCI+XG4gICAgICAgICAgPC9uZy1taWFtLWxpa2UtYnV0dG9uPlxuICAgICAgICAgIDxuZy1taWFtLWljb24gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19hY3Rpb25zX19pY29uXCIgW3dpZHRoXT1cIjI2XCIgW2hlaWdodF09XCIyNlwiIFtpY29uTmFtZV09XCJpY29uLkNhbGVuZGFyXCJcbiAgICAgICAgICAgIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1wcmltYXJ5KSc+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgPG5nLW1pYW0taWNvbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FjdGlvbnNfX2ljb25cIiBbd2lkdGhdPVwiMjZcIiBbaGVpZ2h0XT1cIjI2XCIgW2ljb25OYW1lXT1cImljb24uU2hhcmVcIlxuICAgICAgICAgICAgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXByaW1hcnkpJz48L25nLW1pYW0taWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpbWcgKm5nSWY9XCJyZWNpcGUuZmlsaWdyYW5lTG9nb1VybFwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcGljdHVyZV9fc3BvbnNvclwiIHNyYz1cInt7cmVjaXBlLmZpbGlncmFuZUxvZ29Vcmx9fVwiPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdG9wX19jb250YWluZXJfX2luZm9cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2luZm9fX21ldHJpY3MgbWlhbS1yZWNpcGUtZGV0YWlsc19faW5mb19fbWV0cmljc19fdG90YWxcIj5cbiAgICAgICAgICA8bmctbWlhbS1pY29uICBwcmltYXJ5Q29sb3I9J3ZhcigtLW0tY29sb3ItcHJpbWFyeSknIFt3aWR0aF09XCIzMlwiIFtoZWlnaHRdPVwiMzJcIiBbaWNvbk5hbWVdPVwiaWNvbi5UaW1lXCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgPHNwYW4+VGVtcHMgdG90YWwgOiB7eyByZWNpcGU/LnRvdGFsVGltZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmZvX190aW1lc1wiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGU/LnByZXBhcmF0aW9uVGltZSAhPT0gJy0nXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmZvX19tZXRyaWNzXCI+XG4gICAgICAgICAgICA8c3Bhbj5QcsOpcGFyYXRpb248L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fbWV0cmljc19fcm93XCI+XG4gICAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1zbGF0ZSknIFtpY29uTmFtZV09XCJpY29uLlByZXBhcmF0aW9uXCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IHJlY2lwZT8ucHJlcGFyYXRpb25UaW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZT8uY29va2luZ1RpbWUgIT09ICctJ1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faW5mb19fbWV0cmljc1wiPlxuICAgICAgICAgICAgPHNwYW4+Q3Vpc3Nvbjwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19tZXRyaWNzX19yb3dcIj5cbiAgICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbd2lkdGhdPVwiMjRcIiBbaGVpZ2h0XT1cIjI0XCIgIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1zbGF0ZSknIFtpY29uTmFtZV09XCJpY29uLkhvdFwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgICAgICA8c3Bhbj57eyByZWNpcGU/LmNvb2tpbmdUaW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZT8ucmVzdGluZ1RpbWUgIT09ICctJ1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faW5mb19fbWV0cmljc1wiPlxuICAgICAgICAgICAgPHNwYW4+UmVwb3M8L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fbWV0cmljc19fcm93XCI+XG4gICAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiICBwcmltYXJ5Q29sb3I9J3ZhcigtLW0tY29sb3Itc2xhdGUpJyBbaWNvbk5hbWVdPVwiaWNvbi5XYWl0XCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IHJlY2lwZT8ucmVzdGluZ1RpbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdG9wX19jb250YWluZXJfX2luZm9zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdG9wX19jb250YWluZXJfX2luZm9zX190b3BcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmZvc19fdHlwZVwiPnt7cmVjaXBlPy5yZWNpcGVUeXBlPy5hdHRyaWJ1dGVzPy5uYW1lIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2luZm9zX190aXRsZVwiPnt7cmVjaXBlPy5hdHRyaWJ1dGVzWyd0aXRsZSddfX08L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmZvc19fZGlmZmljdWx0eVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInJlY2lwZT8uZGlmZmljdWx0eUxhYmVsXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmFjaWxlJ1wiPlxuICAgICAgICAgICAgICA8bmctbWlhbS1pY29uIFt3aWR0aF09XCI1NlwiIFtoZWlnaHRdPVwiMTZcIiBbaWNvbk5hbWVdPVwiaWNvbi5EaWZmaWN1bHR5TG93XCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtb3llbidcIj5cbiAgICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbd2lkdGhdPVwiNTZcIiBbaGVpZ2h0XT1cIjE2XCIgW2ljb25OYW1lXT1cImljb24uRGlmZmljdWx0eU1lZGl1bVwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGlmZmljaWxlJ1wiPlxuICAgICAgICAgICAgICA8bmctbWlhbS1pY29uIFt3aWR0aF09XCI1NlwiIFtoZWlnaHRdPVwiMTZcIiBbaWNvbk5hbWVdPVwiaWNvbi5EaWZmaWN1bHR5SGlnaHRcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxzcGFuPnt7cmVjaXBlPy5kaWZmaWN1bHR5TGFiZWwgfCB0aXRsZWNhc2UgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faW5mb3NfX2Rlc2NyaXB0aW9uXCI+XG4gICAgICAgICAge3sgcmVjaXBlPy5hdHRyaWJ1dGVzWydkZXNjcmlwdGlvbiddIH19XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2Rlc2NyaXB0aW9uX19hY3Rpb25cIiAoY2xpY2spPVwicHJpbnQoKVwiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FjdGlvbnNfX2ljb25cIiBbd2lkdGhdPVwiMjBcIiBbaGVpZ2h0XT1cIjIwXCJcbiAgICAgICAgICAgICAgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXByaW1hcnkpJyBbaWNvbk5hbWVdPVwiaWNvbi5QcmludFwiPlxuICAgICAgICAgICAgPC9uZy1taWFtLWljb24+IDxzcGFuPiBJbXByaW1lciBsYSByZWNldHRlIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmZvc19fcHJpY2VfX3dyYXBwZXJcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZSAmJiBkaXNwbGF5UHJpY2luZ1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faW5mb3NfX3ByaWNlXCI+XG4gICAgICAgICAgPG5nLW1pYW0tcmVjaXBlLXByaWNpbmcgW3JlY2lwZV09XCJyZWNpcGVcIiBbc2VydmVzXT1cInJlY2lwZT8ubW9kaWZpZWRHdWVzdHNcIj48L25nLW1pYW0tcmVjaXBlLXByaWNpbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwicHJldmlld0FsbG93ZWRcIiAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmZvc19fYWN0aW9uIG0tYnV0dG9uLWZhYi1wcmltYXJ5XCIgKGNsaWNrKT1cImNsaWNrUHJpbWFyeSgpXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpbi1iYXNrZXQnOiAoZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLnJlY2lwZUlzSW5MaXN0KHJlY2lwZT8uaWQpIHwgYXN5bmMpLCAnbG9hZGluZyc6IGFkZEJ1dHRvbkxvYWRpbmd9XCI+XG4gICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICB7eyhncm9jZXJpZXNMaXN0c1NlcnZpY2UucmVjaXBlSXNJbkxpc3QocmVjaXBlPy5pZCkgfCBhc3luYykgPyAnVm9pciBsZSBkw6l0YWlsJyA6ICdTw6lsZWN0aW9ubmVyIGNlIHJlcGFzJ319XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxuZy1taWFtLWljb24gKm5nSWY9XCIhYWRkQnV0dG9uTG9hZGluZyBlbHNlIGFkZExvYWRlclwiIFt3aWR0aF09XCIyNFwiIFtoZWlnaHRdPVwiMjRcIiBwcmltYXJ5Q29sb3I9JyNmZmYnXG4gICAgICAgICAgICBbaWNvbk5hbWVdPVwiKGdyb2Nlcmllc0xpc3RzU2VydmljZS5yZWNpcGVJc0luTGlzdChyZWNpcGU/LmlkKSB8IGFzeW5jKSA/IGljb24uQ2hlY2tMaXN0IDogaWNvbi5DYXJ0XCI+XG4gICAgICAgICAgPC9uZy1taWFtLWljb24+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNhZGRMb2FkZXI+XG4gICAgICAgICAgICA8bmctbWlhbS1sb2FkZXI+PC9uZy1taWFtLWxvYWRlcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX21pZF9fY29udGFpbmVyXCI+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiZGlzcGxheVRhZ3NcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3RhZ3NfX2NvbnRhaW5lclwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IHRhZyBvZiByZWNpcGUucmVsYXRpb25zaGlwcy50YWdzLmRhdGFcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3RhZ1wiPlxuICAgICAgPGltZyAqbmdJZj1cImRpc3BsYXlUYWdzSWNvbnNcIiBbc3JjXT1cInRhZy5hdHRyaWJ1dGVzLmljb25cIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3RhZ19faWNvblwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX190YWdfX25hbWVcIj5cbiAgICAgICAge3t0YWcubmFtZX19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2PlxuICAgIDxuZy1taWFtLWFkZG9uLWxpbmsgKm5nSWY9XCJyZWNpcGU/LnNwb25zb3JzPy5sZW5ndGggPiAwIHx8IHJlY2lwZS5pbmZvcm1hdGlvbmFsU2VudGVuY2VcIlxuICAgICAgW3JlY2lwZV09J3JlY2lwZScgKHNob3dBZGRvbik9J3RvZ2dsZUFkZG9uKCknPjwvbmctbWlhbS1hZGRvbi1saW5rPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFpc01vYmlsZSBlbHNlIG1vYmlsZUNvbnRhaW5lclwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYm90dG9tX19jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYm90dG9tX19jb250YWluZXJfX2luZ3JlZGllbnRzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYm90dG9tX19jb250YWluZXJfX2hlYWRlclwiPlxuICAgICAgICBJbmdyw6lkaWVudHNcbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2luZ3JlZGllbnRzX19yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2luZ3JlZGllbnRzX19jb3VudGVyXCI+XG4gICAgICAgICAgPG5nLW1pYW0tY291bnRlci1pbnB1dCBbY291bnRlcl09XCJyZWNpcGU/Lm1vZGlmaWVkR3Vlc3RzIHx8IHJlY2lwZS5ndWVzdHNcIiAoY291bnRlckNoYW5nZSk9XCJ1cGRhdGVHdWVzdHMoJGV2ZW50KVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1jb3VudGVyLWlucHV0PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faW5ncmVkaWVudHNfX2NvdW50ZXJfX3ByaW50XCI+UG91ciB7e3JlY2lwZT8ubW9kaWZpZWRHdWVzdHN9fVxuICAgICAgICAgICAgcGVyc29ubmVzPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmdyZWRpZW50c19fcm93X19xdHlcIj5RdWFudGl0w6k8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmdyZWRpZW50c19fbGlzdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faW5ncmVkaWVudHNfX3Jvd1wiIFtuZ0NsYXNzXT1cInsnY2hlY2tlZCc6IGluZ3JlZGllbnRzQ2hlY2tlZFtpXX1cIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpbmdyZWRpZW50IG9mIHJlY2lwZT8ubW9kaWZpZWRJbmdyZWRpZW50cywgbGV0IGkgPSBpbmRleCBcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaW5ncmVkaWVudHNQaWN0dXJlc1wiPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2luZ3JlZGllbnRzX19yb3dfX3BpY3R1cmVcIiBbc3JjXT1cImluZ3JlZGllbnRQaWN0dXJlKGluZ3JlZGllbnQpXCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj4ge3sgaW5ncmVkaWVudC5uYW1lIHwgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faW5ncmVkaWVudHNfX3Jvd19fcXR5XCI+IHt7IGluZ3JlZGllbnQucXR5IHwgcmVhZGFibGVGbG9hdE51bWJlciA6XG4gICAgICAgICAgICBpbmdyZWRpZW50LnVuaXQgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYm90dG9tX19jb250YWluZXJfX3N0ZXBzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYm90dG9tX19jb250YWluZXJfX2hlYWRlclwiPlxuICAgICAgICBQcsOpcGFyYXRpb25cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3N0ZXBzX19saXN0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19zdGVwc19fbGlzdF9fcGFuZWxcIiAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwczsgbGV0IGkgPSBpbmRleDtcIlxuICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VBY3RpdmVTdGVwKGkpXCIgW2NsYXNzLmFjdGl2ZV09XCJpID09PSBhY3RpdmVTdGVwXCJcbiAgICAgICAgICBbY2xhc3MubWlhbS1yZWNpcGUtZGV0YWlsc19fcGFuZWxfX2RvbmVdPVwiaSA8IGFjdGl2ZVN0ZXBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcGFuZWxfX2lkeFwiPjxzdHJvbmc+e3sgaSArIDEgfX08L3N0cm9uZz48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcGFuZWxfX3RleHRcIj57e3N0ZXA/LmF0dHJpYnV0ZXM/LmRlc2NyaXB0aW9ufX08L2Rpdj5cbiAgICAgICAgICA8bmctbWlhbS1pY29uIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcGFuZWxfX2NoZWNrSWNvblwiICpuZ0lmPVwiaSA8PSBhY3RpdmVTdGVwXCIgW2hlaWdodF09JzE2JyBbd2lkdGhdPScxNidcbiAgICAgICAgICAgIFtpY29uTmFtZV09J2ljb24uQ2hlY2tDaXJjbGVGaWxsJyBwcmltYXJ5Q29sb3I9XCJ2YXIoLS1tLWNvbG9yLXNlY29uZGFyeSlcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAjbW9iaWxlQ29udGFpbmVyID5cbiAgICA8ZGl2ICNtb2JpbGVDb250YWluZXJUb3AgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19tb2JpbGVfX2NvbnRhaW5lclwiPlxuICAgICAgPGRpdiAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19tb2JpbGVfX2hlYWRlclwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibS1idXR0b24tc2Vjb25kYXJ5XCIgW25nQ2xhc3NdPVwieydhY3RpdmUnIDogc2hvd0luZ3JlZGllbnR9XCIgKGNsaWNrKT1cInRvZ2dsZVNob3dJbmdyZWRpZW50KHRydWUpOyBtb2JpbGVDb250YWluZXJUb3Auc2Nyb2xsSW50b1ZpZXcoKVwiPkluZ3JlZGllbnRzPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJtLWJ1dHRvbi1zZWNvbmRhcnlcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZScgOiAhc2hvd0luZ3JlZGllbnR9XCIgKGNsaWNrKT1cInRvZ2dsZVNob3dJbmdyZWRpZW50KGZhbHNlKTsgbW9iaWxlQ29udGFpbmVyVG9wLnNjcm9sbEludG9WaWV3KClcIj5QcsOpcGFyYXRpb248L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAgKm5nSWY9XCJzaG93SW5ncmVkaWVudCBlbHNlIHN0ZXBzQ29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2luZ3JlZGllbnRzX19yb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmdyZWRpZW50c19fY291bnRlclwiPlxuICAgICAgICAgICAgICA8bmctbWlhbS1jb3VudGVyLWlucHV0IFtjb3VudGVyXT1cInJlY2lwZT8ubW9kaWZpZWRHdWVzdHNcIiAoY291bnRlckNoYW5nZSk9XCJ1cGRhdGVHdWVzdHMoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8L25nLW1pYW0tY291bnRlci1pbnB1dD5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmdyZWRpZW50c19fY291bnRlcl9fcHJpbnRcIj5Qb3VyIHt7cmVjaXBlPy5tb2RpZmllZEd1ZXN0c319XG4gICAgICAgICAgICAgICAgcGVyc29ubmVzPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2luZ3JlZGllbnRzX19yb3dfX3F0eVwiPlF1YW50aXTDqTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faW5ncmVkaWVudHNfX2xpc3RcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmdyZWRpZW50c19fcm93XCIgW25nQ2xhc3NdPVwieydjaGVja2VkJzogaW5ncmVkaWVudHNDaGVja2VkW2ldfVwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpbmdyZWRpZW50IG9mIHJlY2lwZT8ubW9kaWZpZWRJbmdyZWRpZW50cywgbGV0IGkgPSBpbmRleCBcIj5cbiAgICAgICAgICAgICAgPGRpdj4ge3sgaW5ncmVkaWVudC5uYW1lIHwgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyfX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2luZ3JlZGllbnRzX19yb3dfX3F0eVwiPiB7eyBpbmdyZWRpZW50LnF0eSB8IHJlYWRhYmxlRmxvYXROdW1iZXIgOlxuICAgICAgICAgICAgICAgIGluZ3JlZGllbnQudW5pdCB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgPG5nLXRlbXBsYXRlICNzdGVwc0NvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19zdGVwc19fbGlzdFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fc3RlcHNfX2xpc3RfX3BhbmVsXCIgKm5nRm9yPVwibGV0IHN0ZXAgb2Ygc3RlcHM7IGxldCBpID0gaW5kZXg7XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlQWN0aXZlU3RlcChpKVwiIFtjbGFzcy5hY3RpdmVdPVwiaSA9PT0gYWN0aXZlU3RlcFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLm1pYW0tcmVjaXBlLWRldGFpbHNfX3BhbmVsX19kb25lXT1cImkgPCBhY3RpdmVTdGVwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3BhbmVsX19pZHhcIj48c3Ryb25nPnt7IGkgKyAxIH19PC9zdHJvbmc+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3BhbmVsX190ZXh0XCI+e3tzdGVwPy5hdHRyaWJ1dGVzPy5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3BhbmVsX19jaGVja0ljb25cIiAqbmdJZj1cImkgPD0gYWN0aXZlU3RlcFwiIFtoZWlnaHRdPScxNicgW3dpZHRoXT0nMTYnXG4gICAgICAgICAgICAgICAgICBbaWNvbk5hbWVdPSdpY29uLkNoZWNrQ2lyY2xlRmlsbCcgcHJpbWFyeUNvbG9yPVwidmFyKC0tbS1jb2xvci1zZWNvbmRhcnkpXCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19ib3R0b21fX2NvbnRhaW5lcl9fYWN0aW9uXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2luZm9zX19wcmljZV9fd3JhcHBlclwiPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZSAmJiBkaXNwbGF5UHJpY2luZ1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faW5mb3NfX3ByaWNlXCI+XG4gICAgICAgIDxuZy1taWFtLXJlY2lwZS1wcmljaW5nIFtyZWNpcGVdPVwicmVjaXBlXCIgW3NlcnZlc109XCJyZWNpcGU/Lm1vZGlmaWVkR3Vlc3RzXCI+PC9uZy1taWFtLXJlY2lwZS1wcmljaW5nPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uICpuZ0lmPVwicHJldmlld0FsbG93ZWRcIiAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmZvc19fYWN0aW9uIG0tYnV0dG9uLWZhYi1wcmltYXJ5XCIgKGNsaWNrKT1cImNsaWNrUHJpbWFyeSgpXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaW4tYmFza2V0JzogKGdyb2Nlcmllc0xpc3RzU2VydmljZS5yZWNpcGVJc0luTGlzdChyZWNpcGU/LmlkKSB8IGFzeW5jKSwgJ2xvYWRpbmcnOiBhZGRCdXR0b25Mb2FkaW5nfVwiPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICB7eyhncm9jZXJpZXNMaXN0c1NlcnZpY2UucmVjaXBlSXNJbkxpc3QocmVjaXBlPy5pZCkgfCBhc3luYykgPyAnVm9pciBsZSBkw6l0YWlsJyA6ICdTw6lsZWN0aW9ubmVyIGNlIHJlcGFzJ319XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPG5nLW1pYW0taWNvbiAqbmdJZj1cIiFhZGRCdXR0b25Mb2FkaW5nIGVsc2UgYWRkTG9hZGVyXCIgW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiIHByaW1hcnlDb2xvcj0nI2ZmZidcbiAgICAgICAgICBbaWNvbk5hbWVdPVwiKGdyb2Nlcmllc0xpc3RzU2VydmljZS5yZWNpcGVJc0luTGlzdChyZWNpcGU/LmlkKSB8IGFzeW5jKSA/IGljb24uQ2hlY2tMaXN0ICA6aWNvbi5DYXJ0XCI+XG4gICAgICAgIDwvbmctbWlhbS1pY29uPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2FkZExvYWRlcj5cbiAgICAgICAgICA8bmctbWlhbS1sb2FkZXI+PC9uZy1taWFtLWxvYWRlcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNhZGRvbj5cbiAgPG5nLW1pYW0tcmVjaXBlLWFkZG9uIFtyZWNpcGVdPSdyZWNpcGUnIChoaWRlQWRkb24pPVwidG9nZ2xlQWRkb24oKVwiPjwvbmctbWlhbS1yZWNpcGUtYWRkb24+XG48L25nLXRlbXBsYXRlPiJdfQ==
423
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWRldGFpbHMvcmVjaXBlLWRldGFpbHMuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtZGV0YWlscy9yZWNpcGUtZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsS0FBSyxFQUNMLGlCQUFpQixFQUNqQixNQUFNLEVBQ04sWUFBWSxFQUdaLFNBQVMsRUFDVCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvSSxPQUFPLEVBQUUsUUFBUSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztJQ2I3QywwQkFDQTs7O0lBQ0UsMEJBQ0Y7OztJQUdGLGdDQUNFO0lBQUEsWUFDRjtJQUFBLGlCQUFPOzs7SUFETCxlQUNGO0lBREUsaUdBQ0Y7Ozs7SUFhTSw4Q0FDcUU7SUFBakQseU9BQTJCO0lBQUMsaUJBQXFCOzs7SUFBbkUsc0NBQWlCOzs7O0lBSW5CLDBCQUlBOzs7SUFGRSw4R0FB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QUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLFdBQVcsRUFBRSxpQ0FBaUM7Z0JBQzlDLFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO2dCQUM5QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7MlJBRVUsTUFBTTtrQkFBZCxLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLG1CQUFtQjtrQkFBM0IsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxxQkFBcUI7a0JBQTdCLEtBQUs7WUFDSSxXQUFXO2tCQUFwQixNQUFNO1lBQ0csYUFBYTtrQkFBdEIsTUFBTTtZQUNHLFdBQVc7a0JBQXBCLE1BQU07WUFHdUIsZUFBZTtrQkFBNUMsU0FBUzttQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25DaGFuZ2VzLFxuICBBZnRlclZpZXdDaGVja2VkLFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWNpcGUgfSBmcm9tICcuLi8uLi9fbW9kZWxzL3JlY2lwZSc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSwgR3JvY2VyaWVzTGlzdHNTZXJ2aWNlLCBQb2ludE9mU2FsZXNTZXJ2aWNlLCBSZWNpcGVFdmVudHNTZXJ2aWNlLCBSZWNpcGVzU2VydmljZSwgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1lZGlhTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLXJlY2lwZS1kZXRhaWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY2lwZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVjaXBlLWRldGFpbHMuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUmVjaXBlRGV0YWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIEBJbnB1dCgpIHJlY2lwZTogUmVjaXBlO1xuICBASW5wdXQoKSBwcmV2aWV3QWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGluZ3JlZGllbnRzUGljdHVyZXMgPSBmYWxzZTtcbiAgQElucHV0KCkgZm9yY2VEaXNwbGF5VGFnczsgLy8gT3ZlcnJpZGUgZ2xvYmFsIHNldHRpbmcgaWYgbmVjZXNhcnlcbiAgQElucHV0KCkgZGlzcGxheVRhZ3NJY29ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlBZGRlZE9uUGljdHVyZSA9IHRydWU7XG4gIEBPdXRwdXQoKSByZWNpcGVBZGRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcmVjaXBlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcmVjaXBlRXJyb3I6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcHJpbWFyeUJ1dHRvbkNsaWNrZWQkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RvcENvbnRhaW5lckltZycpIHRvcENvbnRhaW5lckltZzogRWxlbWVudFJlZjtcblxuICB0YWIgPSAwO1xuICBpc01vYmlsZSA9IGZhbHNlO1xuICBkaXNwbGF5VGFncyA9IGZhbHNlO1xuICBzaG93RGV0YWlsID0gdHJ1ZTtcbiAgaWNvbiA9IEljb247XG4gIHBsYXllcldpZHRoO1xuICBwbGF5ZXJIZWlnaHQ7XG4gIHNob3dWaWRlbztcbiAgYWRkQnV0dG9uTG9hZGluZyA9IGZhbHNlO1xuICB0aXRsZUluSGVhZGVyID0gZmFsc2U7XG4gIHRpdGxlOiBIVE1MRWxlbWVudDtcbiAgY29udGVudDogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIHJlY2lwZVNlcnZpY2U6IFJlY2lwZXNTZXJ2aWNlLFxuICAgIHB1YmxpYyBncm9jZXJpZXNMaXN0c1NlcnZpY2U6IEdyb2Nlcmllc0xpc3RzU2VydmljZSxcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBwb3NTZXJ2aWNlOiBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjaXBlRXZlbnRzU2VydmljZTogUmVjaXBlRXZlbnRzU2VydmljZSxcbiAgICBwcml2YXRlIG1lZGlhTWF0Y2hlcjogTWVkaWFNYXRjaGVyLFxuICAgIHB1YmxpYyBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB0aGlzLmlzTW9iaWxlID0gdGhpcy5tZWRpYU1hdGNoZXIubWF0Y2hNZWRpYSgnKG1heC13aWR0aDogMTAyM3B4KScpLm1hdGNoZXM7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JjZURpc3BsYXlUYWdzICE9PSB1bmRlZmluZWQgJiYgdGhpcy5mb3JjZURpc3BsYXlUYWdzICE9PSB0aGlzLmRpc3BsYXlUYWdzKSB7XG4gICAgICB0aGlzLmRpc3BsYXlUYWdzID0gdGhpcy5mb3JjZURpc3BsYXlUYWdzO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuZGlzcGxheVRhZ3MgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnRhZ3NPblJlY2lwZXNFbmFibGVkO1xuICAgIH1cbiAgICB0aGlzLnNob3dWaWRlbyA9IGZhbHNlOyAvLyBmb3JjZSByZWxvYWQgdmlkZW8gcGxheWVyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuc2hvd1ZpZGVvID0gdGhpcy5jb250ZXh0U2VydmljZS52aWRlb1JlY2lwZXNFbmFibGVkICYmIHRoaXMucmVjaXBlPy52aWRlb0lkO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgIHRoaXMucGxheWVyV2lkdGggPSBNYXRoLm1pbig2NDAsIHRoaXMudG9wQ29udGFpbmVySW1nPy5uYXRpdmVFbGVtZW50Py5vZmZzZXRXaWR0aCk7XG4gICAgdGhpcy5wbGF5ZXJIZWlnaHQgPSB0aGlzLnBsYXllcldpZHRoICogMzkwIC8gNjQwO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaW5pdFNjcm9sbExpc3RlbmVyT25UaXRsZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXQgdGhlIGxpc3RlbmVyIG9uIHNjcm9sbCBzbyB0aGUgbW9kYWwgY2FuIGhpZGUgdGhlIGNsb3NlIGljb25cbiAgICovXG4gIGluaXRTY3JvbGxMaXN0ZW5lck9uVGl0bGUoKSB7XG4gICAgaWYgKCF0aGlzLnRpdGxlKSB7XG4gICAgICB0aGlzLnRpdGxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pYW0tcmVjaXBlLWRldGFpbHNfX3RpdGxlJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5jb250ZW50KSB7XG4gICAgICB0aGlzLmNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWlhbS1yZWNpcGUtZGV0YWlsc19fY29udGVudCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc01vYmlsZSAmJiAhdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlciAmJiB0aGlzLmNvbnRlbnQgJiYgdGhpcy50aXRsZSkge1xuICAgICAgLy8gRm9yIG1vcmUgcHJlY2lzaW9uIG9uIHRpdGxlIHNjcm9sbCBkZXRlY3Rpb24sIHdlIHdhbnQgdG8gdHJpZ2dlciBhbiBldmVudCBlYWNoIHRpbWUgdGhlIHVzZXIgc2Nyb2xscyA1JSBvZiB0aGUgY29udGVudFxuICAgICAgY29uc3QgdGhyZXNob2xkID0gWy4uLkFycmF5KDIwKS5rZXlzKCldLm1hcCh4ID0+IHggLyAyMClcbiAgICAgIC8vIFJlY2VpdmUgYW4gZXZlbnQgZWFjaCB0aW1lIHRoZSB0aXRsZSBlbnRlcnMvbGVhdmVzIHRoZSB2aWV3cG9ydFxuICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoW2VudHJ5XSkgPT4geyB0aGlzLnRvZ2dsZVRpdGxlSW5IZWFkZXIoKTsgfSxcbiAgICAgIHsgdGhyZXNob2xkIH0pO1xuICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuY29udGVudCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlVGl0bGVJbkhlYWRlcigpIHtcbiAgICB0aGlzLnRpdGxlSW5IZWFkZXIgPSB0aGlzLnRpdGxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCA8PSA0MDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHJlY2lwZSB0byBsaXN0IG9uIHByaW1hcnkgYnV0dG9uIGNsaWNrIGFuZCBlbWl0IHRydWUgaWYgdGhlIHJlY2lwZSBpcyBhZGRlZCwgZmFsc2UgaWYgcmVjaXBlIGlzIG5vdCBhZGRlZFxuICAgKiBzbyBsaWIgdXNlcnMgY2FuIGRlY2lkZSB0aGF0IHByaW1hcnlCdXR0b25DbGlja2VkJC5lbWl0KGZhbHNlKSByZW1vdmVzIHRoZSByZWNpcGUgZm9yIGV4YW1wbGVcbiAgICovXG4gIGNsaWNrUHJpbWFyeSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYWRkQnV0dG9uTG9hZGluZykge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgIHRoaXMuZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLnJlY2lwZUlzSW5MaXN0KHRoaXMucmVjaXBlLmlkKS5zdWJzY3JpYmUocmVjaXBlSXNJbkxpc3QgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkUmVjaXBlKCk7XG4gICAgICAgICAgdGhpcy5wcmltYXJ5QnV0dG9uQ2xpY2tlZCQuZW1pdCghcmVjaXBlSXNJbkxpc3QpOyAvLyAhcmVjaXBlSXNJbkxpc3QgPSBhZGQgYWN0aW9uLCBzbyB3ZSBlbWl0IHRydWVcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgYWRkUmVjaXBlKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlQnV0dG9uTG9hZGVyKHRydWUpO1xuICAgIGZvcmtKb2luKFtcbiAgICAgIHRoaXMudXNlclNlcnZpY2UuaXNMb2dnZWQkLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZSgxKSksXG4gICAgICB0aGlzLnBvc1NlcnZpY2UuaXNQb3NWYWxpZCgpLnBpcGUodGFrZSgxKSlcbiAgICBdKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGNvbnN0IGlzSG9va09rID0gdGhpcy5jb250ZXh0U2VydmljZS5ob29rQ2FsbGJhY2socmVzWzBdLCByZXNbMV0pO1xuICAgICAgaWYgKGlzSG9va09rKSB7XG4gICAgICAgIHRoaXMuYWRkUmVjaXBlQWN0aW9uT0soKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkUmVjaXBlQWN0aW9uS08oKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFkZFJlY2lwZUFjdGlvbk9LKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5ncm9jZXJpZXNMaXN0c1NlcnZpY2UucmVjaXBlSXNJbkxpc3QodGhpcy5yZWNpcGUuaWQpLnN1YnNjcmliZShyZWNpcGVJc0luTGlzdCA9PiB7XG4gICAgICAgIGlmICghcmVjaXBlSXNJbkxpc3Qpe1xuICAgICAgICAgIHRoaXMucmVjaXBlRXZlbnRzU2VydmljZS5zZW5kRXZlbnQodGhpcy5yZWNpcGUsIHRoaXMucmVjaXBlRXZlbnRzU2VydmljZS5BQ1RJT05fQURERUQpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHRoaXMuZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLmFwcGVuZFJlY2lwZVRvTGlzdCh0aGlzLnJlY2lwZS5pZCwgdGhpcy5yZWNpcGUubW9kaWZpZWRHdWVzdHMsICdkZXRhaWxzJylcbiAgICAgIC5zdWJzY3JpYmUobCA9PiB7XG4gICAgICAgIHRoaXMudG9nZ2xlQnV0dG9uTG9hZGVyKGZhbHNlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnJlY2lwZUFkZGVkLmVtaXQoKTtcbiAgfVxuXG4gIGFkZFJlY2lwZUFjdGlvbktPKCk6IHZvaWQge1xuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ19taWFtL2NhY2hlZC1yZWNpcGUnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnJlY2lwZSkpO1xuICAgIHRoaXMucmVjaXBlRXJyb3IuZW1pdCgpO1xuICB9XG5cbiAgcHJpbnQoKSB7XG4gICAgd2luZG93LnByaW50KCk7XG4gIH1cblxuICB0b2dnbGVBZGRvbigpe1xuICAgIHRoaXMuc2hvd0RldGFpbCA9ICAhdGhpcy5zaG93RGV0YWlsO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvZ2dsZUhlbHBlcigpIHtcbiAgICB0aGlzLnJlY2lwZVNlcnZpY2UudG9nZ2xlSGVscGVyKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdG9nZ2xlQnV0dG9uTG9hZGVyKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5hZGRCdXR0b25Mb2FkaW5nID0gdmFsdWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwic2hvd0RldGFpbCBlbHNlIGFkZG9uXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzXCIgI21haW5Db250YWluZXIgPlxuICA8IS0tIEhFQURFUiAtLT5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2hlYWRlclwiPlxuICAgIDwhLS0gQk9PS01BUksgLS0+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2Jvb2ttYXJrXCI+XG4gICAgICA8aW1nICpuZ0lmPVwiIWlzTW9iaWxlIGVsc2Ugc3RhbXBcIiBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL3JlY2lwZS1kZXRhaWxzL3JlY2lwZS1kZXRhaWxzLWJvb2ttYXJrLnN2Z1wiPlxuICAgICAgPG5nLXRlbXBsYXRlICNzdGFtcD5cbiAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL3JlY2lwZS1kZXRhaWxzL3JlY2lwZS1kZXRhaWxzLXN0YW1wLnN2Z1wiPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIFRJVExFIC0gREVTS1RPUCAtLT5cbiAgICA8c3BhbiAqbmdJZj1cIiFpc01vYmlsZSB8fCB0aXRsZUluSGVhZGVyXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX190aXRsZVwiPlxuICAgICAge3tyZWNpcGU/LmF0dHJpYnV0ZXNbJ3RpdGxlJ119fVxuICAgIDwvc3Bhbj5cbiAgICA8IS0tIEhFQURFUiBMSU5LIC0tPlxuICAgIDxhIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faGVhZGVyX19saW5rXCI+XG4gICAgICBWb2lyIHBsdXMgZCdpZMOpZXMgcmVwYXNcbiAgICA8L2E+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19jb250YWluZXJcIj5cbiAgICA8IS0tIExFRlQgUEFSVCAoVE9QIFBBUlQgT04gTU9CSUxFKSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fc3VtbWFyeVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3N1bW1hcnlfX2NvbnRhaW5lclwiPlxuICAgICAgICA8IS0tIFNQT05TT1IgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19zcG9uc29yXCI+XG4gICAgICAgICAgPG5nLW1pYW0tYWRkb24tbGluayAqbmdJZj1cInJlY2lwZT8uc3BvbnNvcnM/Lmxlbmd0aCA+IDAgfHwgcmVjaXBlLmluZm9ybWF0aW9uYWxTZW50ZW5jZVwiXG4gICAgICAgICAgICBbcmVjaXBlXT0ncmVjaXBlJyAoc2hvd0FkZG9uKT0ndG9nZ2xlQWRkb24oKSc+PC9uZy1taWFtLWFkZG9uLWxpbms+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIFBJQ1RVUkUgLyBWSURFTyAtLT5cbiAgICAgICAgPGRpdiAjdG9wQ29udGFpbmVySW1nIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcGljdHVyZVwiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICpuZ0lmPVwiIXNob3dWaWRlb1wiXG4gICAgICAgICAgICBbc3JjXT1cInJlY2lwZT8uYXR0cmlidXRlc1snbWVkaWEtdXJsJ11cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc3BvbnNvcic6IHJlY2lwZT8uc3BvbnNvcnM/Lmxlbmd0aCA+IDAsICd0YWdzJzogZGlzcGxheVRhZ3MgJiYgcmVjaXBlLnJlbGF0aW9uc2hpcHMudGFncy5kYXRhLmxlbmd0aCA+IDAgfVwiPlxuICAgICAgICAgIDx5b3V0dWJlLXBsYXllclxuICAgICAgICAgICAgKm5nSWY9XCJzaG93VmlkZW8gJiYgcGxheWVyV2lkdGhcIlxuICAgICAgICAgICAgW3ZpZGVvSWRdPVwicmVjaXBlLnZpZGVvSWRcIlxuICAgICAgICAgICAgW3dpZHRoXT1cInBsYXllcldpZHRoXCJcbiAgICAgICAgICAgIFtoZWlnaHRdPVwicGxheWVySGVpZ2h0XCJcbiAgICAgICAgICA+PC95b3V0dWJlLXBsYXllcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQUNUSU9OUyBJQ09OUyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FjdGlvbmJhclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19hY3Rpb25iYXJfX2dyb3VwXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1saWtlLWJ1dHRvbiAqbmdJZj1cInVzZXJTZXJ2aWNlLmlzTG9nZ2VkJCB8IGFzeW5jXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19hY3Rpb25zX19pY29uXCJcbiAgICAgICAgICAgICAgW3JlY2lwZV09J3JlY2lwZScgW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiPlxuICAgICAgICAgICAgPC9uZy1taWFtLWxpa2UtYnV0dG9uPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiAoY2xpY2spPVwicHJpbnQoKVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYWN0aW9uc19faWNvblwiIFt3aWR0aF09XCIyNFwiIFtoZWlnaHRdPVwiMjRcIlxuICAgICAgICAgICAgICBwcmltYXJ5Q29sb3I9J3ZhcigtLW0tY29sb3ItcHJpbWFyeSknIFtpY29uTmFtZV09XCJpY29uLlByaW50XCI+XG4gICAgICAgICAgICA8L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYWN0aW9uYmFyX19ncm91cFwiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FjdGlvbnNfX2ljb25cIiAoY2xpY2spPVwidG9nZ2xlSGVscGVyKClcIiBbd2lkdGhdPVwiNDBcIiBbaGVpZ2h0XT1cIjQwXCJcbiAgICAgICAgICAgICAgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLWdyZXkwMiknIHNlY29uZGFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLWdyZXkwNyknIFtpY29uTmFtZV09XCJpY29uLkhlbHBcIj5cbiAgICAgICAgICAgIDwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBUSU1FUywgRElGRklDVUxUWSAmIFRBR1MgLSBERVNLVE9QIC0tPlxuICAgICAgICA8bmctbWlhbS1yZWNpcGUtZGV0YWlscy1pbmZvc1xuICAgICAgICAgICpuZ0lmPVwiIWlzTW9iaWxlXCIgW3JlY2lwZV09XCJyZWNpcGVcIiBbZGlzcGxheVRhZ3NdPVwiZGlzcGxheVRhZ3NcIiBbZGlzcGxheVRhZ3NJY29uc109XCJkaXNwbGF5VGFnc0ljb25zXCI+XG4gICAgICAgIDwvbmctbWlhbS1yZWNpcGUtZGV0YWlscy1pbmZvcz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBSSUdIVCBQQVJUIChCT1RUT00gUEFSVCBPTiBNT0JJTEUpIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19jb250ZW50XCIgaWQ9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19jb250ZW50XCI+XG4gICAgICA8IS0tIFRJVExFIC0gTU9CSUxFIC0tPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImlzTW9iaWxlXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX190aXRsZVwiIGlkPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdGl0bGVcIj5cbiAgICAgICAgICB7e3JlY2lwZT8uYXR0cmlidXRlc1sndGl0bGUnXX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIERFU0NSSVBUSU9OIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZT8uYXR0cmlidXRlcy5kZXNjcmlwdGlvblwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fY29udGVudF9fZGVzY3JpcHRpb25cIj5cbiAgICAgICAge3sgcmVjaXBlPy5hdHRyaWJ1dGVzLmRlc2NyaXB0aW9uIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gVElNRVMsIERJRkZJQ1VMVFkgJiBUQUdTIC0gTU9CSUxFIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5mb3NcbiAgICAgICAgKm5nSWY9XCJpc01vYmlsZVwiIFtyZWNpcGVdPVwicmVjaXBlXCIgW2Rpc3BsYXlUYWdzXT1cImRpc3BsYXlUYWdzXCIgW2Rpc3BsYXlUYWdzSWNvbnNdPVwiZGlzcGxheVRhZ3NJY29uc1wiPlxuICAgICAgPC9uZy1taWFtLXJlY2lwZS1kZXRhaWxzLWluZm9zPlxuICAgICAgPCEtLSBJTkdSRURJRU5UUyAtLT5cbiAgICAgIDxuZy1taWFtLXJlY2lwZS1kZXRhaWxzLWluZ3JlZGllbnRzIFtyZWNpcGVdPVwicmVjaXBlXCIgW2luZ3JlZGllbnRzUGljdHVyZXNdPVwiaW5ncmVkaWVudHNQaWN0dXJlc1wiIChyZWNpcGVDaGFuZ2VkKT1cInJlY2lwZUNoYW5nZWQuZW1pdCgpXCI+PC9uZy1taWFtLXJlY2lwZS1kZXRhaWxzLWluZ3JlZGllbnRzPlxuICAgICAgPCEtLSBTVEVQUyAtLT5cbiAgICAgIDxuZy1taWFtLXJlY2lwZS1kZXRhaWxzLXN0ZXBzIFtyZWNpcGVdPVwicmVjaXBlXCI+PC9uZy1taWFtLXJlY2lwZS1kZXRhaWxzLXN0ZXBzPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBQUklDRSAmIFBSSU1BUlkgQ1RBIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19hY3Rpb25fX2NvbnRhaW5lclwiPlxuICAgICAgPCEtLSBQUklDRSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19wcmljZVwiPlxuICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJpY2luZ1xuICAgICAgICAgICpuZ0lmPVwicmVjaXBlICYmIGRpc3BsYXlQcmljaW5nXCIgW3JlY2lwZV09XCJyZWNpcGVcIiBbc2VydmVzXT1cInJlY2lwZT8ubW9kaWZpZWRHdWVzdHNcIiBndWVzdHNUZXh0PVwicGFyIHBlcnNvbm5lXCI+XG4gICAgICAgIDwvbmctbWlhbS1yZWNpcGUtcHJpY2luZz5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBQUklNQVJZIENUQSAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCJwcmV2aWV3QWxsb3dlZFwiICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZGJhc2tldFwiIChjbGljayk9XCJjbGlja1ByaW1hcnkoKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2luLWJhc2tldCc6IChncm9jZXJpZXNMaXN0c1NlcnZpY2UucmVjaXBlSXNJbkxpc3QocmVjaXBlPy5pZCkgfCBhc3luYyksICdsb2FkaW5nJzogYWRkQnV0dG9uTG9hZGluZ31cIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFhZGRCdXR0b25Mb2FkaW5nIGVsc2UgYWRkTG9hZGVyXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19hZGRiYXNrZXRfX2N0YVwiPlxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAge3soZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLnJlY2lwZUlzSW5MaXN0KHJlY2lwZT8uaWQpIHwgYXN5bmMpID8gJ1ZvaXIgbGVzIHByb2R1aXRzJyA6ICdBam91dGVyIGxlcyBpbmdyw6lkaWVudHMnfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPG5nLW1pYW0taWNvblxuICAgICAgICAgICAgKm5nSWY9XCIhKGdyb2Nlcmllc0xpc3RzU2VydmljZS5yZWNpcGVJc0luTGlzdChyZWNpcGU/LmlkKSB8IGFzeW5jKVwiIFt3aWR0aF09XCIyNFwiIFtoZWlnaHRdPVwiMjRcIiBwcmltYXJ5Q29sb3I9JyNmZmYnXG4gICAgICAgICAgICBbaWNvbk5hbWVdPVwiaWNvbi5DYXJ0XCI+XG4gICAgICAgICAgPC9uZy1taWFtLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2FkZExvYWRlcj5cbiAgICAgICAgICA8bmctbWlhbS1sb2FkZXI+PC9uZy1taWFtLWxvYWRlcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPCEtLSBBRERPTiAtLT5cbjxuZy10ZW1wbGF0ZSAjYWRkb24+XG4gIDxuZy1taWFtLXJlY2lwZS1hZGRvbiBbcmVjaXBlXT0ncmVjaXBlJyAoaGlkZUFkZG9uKT1cInRvZ2dsZUFkZG9uKClcIj48L25nLW1pYW0tcmVjaXBlLWFkZG9uPlxuPC9uZy10ZW1wbGF0ZT4iXX0=