ng-miam 3.2.2 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/bundles/ng-miam.umd.js +7452 -5975
  2. package/bundles/ng-miam.umd.js.map +1 -1
  3. package/bundles/ng-miam.umd.min.js +2 -2
  4. package/bundles/ng-miam.umd.min.js.map +1 -1
  5. package/esm2015/lib/_components/abstracts/abstract-recipe-card.component.js +1 -1
  6. package/esm2015/lib/_components/icon/icon.component.js +65 -6
  7. package/esm2015/lib/_components/recipe-filters/recipe-filters.component.js +94 -40
  8. package/esm2015/lib/_components/recipe-type-chooser/recipe-type-chooser.component.js +23 -30
  9. package/esm2015/lib/_components/text-input/text-input.component.js +6 -4
  10. package/esm2015/lib/_models/article.js +43 -0
  11. package/esm2015/lib/_models/basket.js +2 -2
  12. package/esm2015/lib/_models/groceries-entry.js +23 -2
  13. package/esm2015/lib/_models/groceries-list.js +5 -2
  14. package/esm2015/lib/_models/index.js +4 -1
  15. package/esm2015/lib/_models/package.js +14 -3
  16. package/esm2015/lib/_models/recipe.js +4 -1
  17. package/esm2015/lib/_models/user.js +10 -1
  18. package/esm2015/lib/_services/analytics.service.js +7 -1
  19. package/esm2015/lib/_services/articles.service.js +21 -0
  20. package/esm2015/lib/_services/baskets.service.js +7 -3
  21. package/esm2015/lib/_services/context.service.js +15 -1
  22. package/esm2015/lib/_services/groceries-lists.service.js +23 -6
  23. package/esm2015/lib/_services/index.js +3 -1
  24. package/esm2015/lib/_services/ingredients.service.js +2 -2
  25. package/esm2015/lib/_services/interceptor.service.js +2 -3
  26. package/esm2015/lib/_services/package.service.js +32 -9
  27. package/esm2015/lib/_services/recipe-events.service.js +2 -2
  28. package/esm2015/lib/_services/recipe-likes.service.js +6 -2
  29. package/esm2015/lib/_services/recipe-share.service.js +2 -2
  30. package/esm2015/lib/_services/recipes.service.js +2 -2
  31. package/esm2015/lib/_services/suppliers.service.js +2 -2
  32. package/esm2015/lib/_services/toastr.service.js +52 -0
  33. package/esm2015/lib/_services/user.service.js +64 -21
  34. package/esm2015/lib/_types/icon.enum.js +22 -18
  35. package/esm2015/lib/_web-components/{basket-preview-block → basket-preview/basket-preview-block}/basket-preview-block.component.js +15 -15
  36. package/esm2015/lib/_web-components/{basket-preview-disabled → basket-preview/basket-preview-disabled}/basket-preview-disabled.component.js +3 -3
  37. package/esm2015/lib/_web-components/{basket-preview-line → basket-preview/basket-preview-line}/basket-preview-line.component.js +22 -19
  38. package/esm2015/lib/_web-components/basket-preview/basket-preview.module.js +78 -0
  39. package/esm2015/lib/_web-components/basket-preview/index.js +7 -0
  40. package/esm2015/lib/_web-components/{replace-item → basket-preview/replace-item}/replace-item.component.js +8 -8
  41. package/esm2015/lib/_web-components/catalog-article-card/catalog-article-card.component.js +71 -0
  42. package/esm2015/lib/_web-components/catalog-category/catalog-category.component.js +134 -92
  43. package/esm2015/lib/_web-components/catalog-header/catalog-header.component.js +51 -34
  44. package/esm2015/lib/_web-components/catalog-list/catalog-list.component.js +106 -61
  45. package/esm2015/lib/_web-components/catalog-recipe-card/catalog-recipe-card.component.js +65 -52
  46. package/esm2015/lib/_web-components/drawer/drawer.component.js +1 -1
  47. package/esm2015/lib/_web-components/favorite-page/favorite-page.component.js +8 -6
  48. package/esm2015/lib/_web-components/index.js +5 -6
  49. package/esm2015/lib/_web-components/list-scan/basket-preview/basket-preview.component.js +145 -0
  50. package/esm2015/lib/_web-components/list-scan/index.js +3 -0
  51. package/esm2015/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.js +150 -0
  52. package/esm2015/lib/_web-components/list-scan/list-scan.component.js +87 -0
  53. package/esm2015/lib/_web-components/list-scan/list-scan.module.js +60 -0
  54. package/esm2015/lib/_web-components/list-scan/overlay-button/overlay-button.component.js +104 -0
  55. package/esm2015/lib/_web-components/loader/index.js +3 -0
  56. package/esm2015/lib/_web-components/loader/loader.module.js +39 -0
  57. package/esm2015/lib/_web-components/personal-recipes/personal-recipes.component.js +7 -5
  58. package/esm2015/lib/_web-components/recipe-card/recipe-card.component.js +73 -58
  59. package/esm2015/lib/_web-components/recipe-catalog/recipe-catalog.component.js +152 -92
  60. package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +307 -270
  61. package/esm2015/lib/_web-components/recipe-modal/recipe-modal.component.js +1 -1
  62. package/esm2015/lib/_web-components/recipe-stepper/recipe-stepper.component.js +1 -1
  63. package/esm2015/lib/_web-components/recipes-history/recipes-history.component.js +1 -1
  64. package/esm2015/lib/_web-components/suggestion-card/suggestion-card.component.js +3 -6
  65. package/esm2015/lib/_web-components/web-components.module.js +35 -65
  66. package/esm2015/lib/environments/environment.js +6 -0
  67. package/esm2015/lib/ng-miam.module.js +4 -4
  68. package/fesm2015/ng-miam.js +6540 -5287
  69. package/fesm2015/ng-miam.js.map +1 -1
  70. package/lib/_components/abstracts/abstract-recipe-card.component.d.ts +1 -1
  71. package/lib/_components/recipe-filters/recipe-filters.component.d.ts +14 -4
  72. package/lib/_components/recipe-type-chooser/recipe-type-chooser.component.d.ts +2 -2
  73. package/lib/_components/text-input/text-input.component.d.ts +2 -1
  74. package/lib/_models/article.d.ts +23 -0
  75. package/lib/_models/basket.d.ts +1 -2
  76. package/lib/_models/groceries-entry.d.ts +8 -1
  77. package/lib/_models/groceries-list.d.ts +4 -3
  78. package/lib/_models/index.d.ts +3 -0
  79. package/lib/_models/package.d.ts +10 -3
  80. package/lib/_models/recipe.d.ts +1 -0
  81. package/lib/_models/user.d.ts +16 -1
  82. package/lib/_services/articles.service.d.ts +10 -0
  83. package/lib/_services/context.service.d.ts +12 -6
  84. package/lib/_services/groceries-lists.service.d.ts +4 -1
  85. package/lib/_services/index.d.ts +2 -0
  86. package/lib/_services/package.service.d.ts +6 -1
  87. package/lib/_services/toastr.service.d.ts +10 -0
  88. package/lib/_services/user.service.d.ts +12 -6
  89. package/lib/_types/icon.enum.d.ts +21 -17
  90. package/lib/_web-components/{basket-preview-block → basket-preview/basket-preview-block}/basket-preview-block.component.d.ts +6 -6
  91. package/lib/_web-components/{basket-preview-disabled → basket-preview/basket-preview-disabled}/basket-preview-disabled.component.d.ts +2 -2
  92. package/lib/_web-components/{basket-preview-line → basket-preview/basket-preview-line}/basket-preview-line.component.d.ts +7 -7
  93. package/lib/_web-components/basket-preview/basket-preview.module.d.ts +16 -0
  94. package/lib/_web-components/basket-preview/index.d.ts +5 -0
  95. package/lib/_web-components/{replace-item → basket-preview/replace-item}/replace-item.component.d.ts +5 -5
  96. package/lib/_web-components/catalog-article-card/catalog-article-card.component.d.ts +8 -0
  97. package/lib/_web-components/catalog-category/catalog-category.component.d.ts +12 -7
  98. package/lib/_web-components/catalog-header/catalog-header.component.d.ts +5 -2
  99. package/lib/_web-components/catalog-list/catalog-list.component.d.ts +13 -6
  100. package/lib/_web-components/catalog-recipe-card/catalog-recipe-card.component.d.ts +1 -0
  101. package/lib/_web-components/favorite-page/favorite-page.component.d.ts +0 -1
  102. package/lib/_web-components/index.d.ts +4 -5
  103. package/lib/_web-components/list-scan/basket-preview/basket-preview.component.d.ts +25 -0
  104. package/lib/_web-components/list-scan/index.d.ts +2 -0
  105. package/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.d.ts +22 -0
  106. package/lib/_web-components/list-scan/list-scan.component.d.ts +17 -0
  107. package/lib/_web-components/list-scan/list-scan.module.d.ts +16 -0
  108. package/lib/_web-components/list-scan/overlay-button/overlay-button.component.d.ts +19 -0
  109. package/lib/_web-components/loader/index.d.ts +2 -0
  110. package/lib/_web-components/loader/loader.module.d.ts +10 -0
  111. package/lib/_web-components/personal-recipes/personal-recipes.component.d.ts +0 -1
  112. package/lib/_web-components/recipe-card/recipe-card.component.d.ts +1 -0
  113. package/lib/_web-components/recipe-catalog/recipe-catalog.component.d.ts +13 -4
  114. package/lib/_web-components/recipe-details/recipe-details.component.d.ts +8 -3
  115. package/lib/_web-components/suggestion-card/suggestion-card.component.d.ts +0 -1
  116. package/lib/_web-components/web-components.module.d.ts +38 -65
  117. package/lib/{environment.d.ts → environments/environment.d.ts} +1 -1
  118. package/miam-style.css +1 -1
  119. package/package.json +1 -1
  120. package/esm2015/lib/environment.js +0 -8
@@ -0,0 +1,145 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import { switchMap } from 'rxjs/operators';
3
+ import { BasketPreviewLine } from '../../../_models';
4
+ import { BasketsService } from '../../../_services';
5
+ import { Icon } from '../../../_types/icon.enum';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../_services";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "../../../_components/icon/icon.component";
10
+ import * as i4 from "../../basket-preview/basket-preview-line/basket-preview-line.component";
11
+ import * as i5 from "../../basket-preview/replace-item/replace-item.component";
12
+ import * as i6 from "../../basket-preview/basket-preview-disabled/basket-preview-disabled.component";
13
+ function ListScanBasketPreviewComponent_div_0_Template(rf, ctx) { if (rf & 1) {
14
+ const _r4 = i0.ɵɵgetCurrentView();
15
+ i0.ɵɵelementStart(0, "div", 7);
16
+ i0.ɵɵlistener("click", function ListScanBasketPreviewComponent_div_0_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return ctx_r3.close(); });
17
+ i0.ɵɵelement(1, "ng-miam-icon", 8);
18
+ i0.ɵɵelementEnd();
19
+ } if (rf & 2) {
20
+ const ctx_r0 = i0.ɵɵnextContext();
21
+ i0.ɵɵadvance(1);
22
+ i0.ɵɵproperty("iconName", ctx_r0.icon.DrawerHorizontalCloseBar);
23
+ } }
24
+ function ListScanBasketPreviewComponent_div_4_ng_miam_basket_preview_line_1_Template(rf, ctx) { if (rf & 1) {
25
+ const _r9 = i0.ɵɵgetCurrentView();
26
+ i0.ɵɵelementStart(0, "ng-miam-basket-preview-line", 11);
27
+ i0.ɵɵlistener("removed", function ListScanBasketPreviewComponent_div_4_ng_miam_basket_preview_line_1_Template_ng_miam_basket_preview_line_removed_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(2); return ctx_r8.deleteEntry($event); })("replaceItem", function ListScanBasketPreviewComponent_div_4_ng_miam_basket_preview_line_1_Template_ng_miam_basket_preview_line_replaceItem_0_listener() { i0.ɵɵrestoreView(_r9); const line_r5 = i0.ɵɵnextContext().$implicit; const ctx_r10 = i0.ɵɵnextContext(); return ctx_r10.toggleReplacing(line_r5); });
28
+ i0.ɵɵelementEnd();
29
+ } if (rf & 2) {
30
+ const line_r5 = i0.ɵɵnextContext().$implicit;
31
+ i0.ɵɵproperty("line", line_r5);
32
+ } }
33
+ function ListScanBasketPreviewComponent_div_4_ng_miam_replace_item_2_Template(rf, ctx) { if (rf & 1) {
34
+ const _r15 = i0.ɵɵgetCurrentView();
35
+ i0.ɵɵelementStart(0, "ng-miam-replace-item", 12);
36
+ i0.ɵɵlistener("selected", function ListScanBasketPreviewComponent_div_4_ng_miam_replace_item_2_Template_ng_miam_replace_item_selected_0_listener() { i0.ɵɵrestoreView(_r15); const line_r5 = i0.ɵɵnextContext().$implicit; const ctx_r13 = i0.ɵɵnextContext(); return ctx_r13.toggleReplacing(line_r5); });
37
+ i0.ɵɵelementEnd();
38
+ } if (rf & 2) {
39
+ const line_r5 = i0.ɵɵnextContext().$implicit;
40
+ i0.ɵɵproperty("line", line_r5);
41
+ } }
42
+ function ListScanBasketPreviewComponent_div_4_Template(rf, ctx) { if (rf & 1) {
43
+ i0.ɵɵelementStart(0, "div");
44
+ i0.ɵɵtemplate(1, ListScanBasketPreviewComponent_div_4_ng_miam_basket_preview_line_1_Template, 1, 1, "ng-miam-basket-preview-line", 9);
45
+ i0.ɵɵtemplate(2, ListScanBasketPreviewComponent_div_4_ng_miam_replace_item_2_Template, 1, 1, "ng-miam-replace-item", 10);
46
+ i0.ɵɵelementEnd();
47
+ } if (rf & 2) {
48
+ const line_r5 = ctx.$implicit;
49
+ i0.ɵɵadvance(1);
50
+ i0.ɵɵproperty("ngIf", !line_r5.replacing);
51
+ i0.ɵɵadvance(1);
52
+ i0.ɵɵproperty("ngIf", line_r5.replacing);
53
+ } }
54
+ function ListScanBasketPreviewComponent_ng_miam_basket_preview_disabled_5_Template(rf, ctx) { if (rf & 1) {
55
+ i0.ɵɵelement(0, "ng-miam-basket-preview-disabled", 13);
56
+ } if (rf & 2) {
57
+ const ctx_r2 = i0.ɵɵnextContext();
58
+ i0.ɵɵproperty("entries", ctx_r2.unavailable);
59
+ } }
60
+ export class ListScanBasketPreviewComponent {
61
+ constructor(cdr, basketsService) {
62
+ this.cdr = cdr;
63
+ this.basketsService = basketsService;
64
+ this.entries = [];
65
+ this.closed = new EventEmitter();
66
+ this.icon = Icon;
67
+ this.lines = [];
68
+ this.unavailable = [];
69
+ this.subscriptions = [];
70
+ }
71
+ ngOnInit() {
72
+ const entriesIds = this.entries.map(e => e.id.toString());
73
+ this.subscriptions.push(this.basketsService.basketEntries().subscribe((basketEntries) => {
74
+ this.lines = basketEntries
75
+ .filter(be => entriesIds.includes(be.groceriesEntry.id) && be.groceriesEntryStatus === 'active' && be.selectedItem)
76
+ .map(be => BasketPreviewLine.fromBasketEntry(be));
77
+ this.unavailable = basketEntries
78
+ .filter(be => entriesIds.includes(be.groceriesEntry.id) && (be.groceriesEntryStatus !== 'active' || !be.selectedItem));
79
+ this.cdr.detectChanges();
80
+ }));
81
+ }
82
+ ngOnDestroy() {
83
+ this.subscriptions.forEach(s => s.unsubscribe());
84
+ }
85
+ close() {
86
+ this.closed.emit();
87
+ }
88
+ // Remove groceries entry from entries array, and line from lines array
89
+ deleteEntry(line) {
90
+ this.lines.splice(this.lines.indexOf(line), 1);
91
+ this.cdr.detectChanges();
92
+ const e = line.record.groceriesEntry;
93
+ this.entries.splice(this.entries.indexOf(e), 1);
94
+ this.subscriptions.push(e.delete().pipe(switchMap(() => this.basketsService.loadBasket())).subscribe());
95
+ }
96
+ toggleReplacing(line) {
97
+ // Recalculate basket entry price to avoid JS errors...
98
+ line.record.updateTotalPrice();
99
+ line['replacing'] = !line['replacing'];
100
+ this.cdr.detectChanges();
101
+ }
102
+ }
103
+ ListScanBasketPreviewComponent.ɵfac = function ListScanBasketPreviewComponent_Factory(t) { return new (t || ListScanBasketPreviewComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.BasketsService)); };
104
+ ListScanBasketPreviewComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ListScanBasketPreviewComponent, selectors: [["ng-miam-list-scan-basket-preview"]], inputs: { overlay: "overlay", entries: "entries" }, outputs: { closed: "closed" }, decls: 10, vars: 4, consts: [["class", "miam-list-scan__drawer-padding", 3, "click", 4, "ngIf"], [1, "miam-list-scan__drawer-content"], [4, "ngFor", "ngForOf"], [3, "entries", 4, "ngIf"], [1, "miam-list-scan__drawer-controls"], [1, "m-button-primary", 3, "click"], ["width", "24", "height", "24", 3, "iconName"], [1, "miam-list-scan__drawer-padding", 3, "click"], ["width", "64", "height", "1", 3, "iconName"], [3, "line", "removed", "replaceItem", 4, "ngIf"], [3, "line", "selected", 4, "ngIf"], [3, "line", "removed", "replaceItem"], [3, "line", "selected"], [3, "entries"]], template: function ListScanBasketPreviewComponent_Template(rf, ctx) { if (rf & 1) {
105
+ i0.ɵɵtemplate(0, ListScanBasketPreviewComponent_div_0_Template, 2, 1, "div", 0);
106
+ i0.ɵɵelementStart(1, "div", 1);
107
+ i0.ɵɵelementStart(2, "h3");
108
+ i0.ɵɵtext(3, "Produits ajout\u00E9s");
109
+ i0.ɵɵelementEnd();
110
+ i0.ɵɵtemplate(4, ListScanBasketPreviewComponent_div_4_Template, 3, 2, "div", 2);
111
+ i0.ɵɵtemplate(5, ListScanBasketPreviewComponent_ng_miam_basket_preview_disabled_5_Template, 1, 1, "ng-miam-basket-preview-disabled", 3);
112
+ i0.ɵɵelementEnd();
113
+ i0.ɵɵelementStart(6, "div", 4);
114
+ i0.ɵɵelementStart(7, "button", 5);
115
+ i0.ɵɵlistener("click", function ListScanBasketPreviewComponent_Template_button_click_7_listener() { return ctx.close(); });
116
+ i0.ɵɵelement(8, "ng-miam-icon", 6);
117
+ i0.ɵɵtext(9, " Continuer mes courses ");
118
+ i0.ɵɵelementEnd();
119
+ i0.ɵɵelementEnd();
120
+ } if (rf & 2) {
121
+ i0.ɵɵproperty("ngIf", ctx.overlay);
122
+ i0.ɵɵadvance(4);
123
+ i0.ɵɵproperty("ngForOf", ctx.lines);
124
+ i0.ɵɵadvance(1);
125
+ i0.ɵɵproperty("ngIf", ctx.unavailable.length > 0);
126
+ i0.ɵɵadvance(3);
127
+ i0.ɵɵproperty("iconName", ctx.icon.Cart);
128
+ } }, directives: [i2.NgIf, i2.NgForOf, i3.IconComponent, i4.BasketPreviewLineComponent, i5.ReplaceItemComponent, i6.BasketPreviewDisabledComponent], styles: [""], encapsulation: 2, changeDetection: 0 });
129
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ListScanBasketPreviewComponent, [{
130
+ type: Component,
131
+ args: [{
132
+ selector: 'ng-miam-list-scan-basket-preview',
133
+ templateUrl: './basket-preview.component.html',
134
+ styleUrls: ['./basket-preview.component.scss'],
135
+ encapsulation: ViewEncapsulation.None,
136
+ changeDetection: ChangeDetectionStrategy.OnPush
137
+ }]
138
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.BasketsService }]; }, { overlay: [{
139
+ type: Input
140
+ }], entries: [{
141
+ type: Input
142
+ }], closed: [{
143
+ type: Output
144
+ }] }); })();
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0LXByZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvbGlzdC1zY2FuL2Jhc2tldC1wcmV2aWV3L2Jhc2tldC1wcmV2aWV3LmNvbXBvbmVudC50cyIsImxpYi9fd2ViLWNvbXBvbmVudHMvbGlzdC1zY2FuL2Jhc2tldC1wcmV2aWV3L2Jhc2tldC1wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpKLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7O0lDTmpELDhCQUNFO0lBRDBELDBMQUFpQjtJQUMzRSxrQ0FBOEY7SUFDaEcsaUJBQU07OztJQURVLGVBQTBDO0lBQTFDLCtEQUEwQzs7OztJQUt0RCx1REFLK0I7SUFGN0IsdVFBQStCLGdUQUFBO0lBRWhDLGlCQUE4Qjs7O0lBSDdCLDhCQUFhOzs7O0lBSWYsZ0RBSXdCO0lBRHRCLDBTQUFrQztJQUNuQyxpQkFBdUI7OztJQUZ0Qiw4QkFBYTs7O0lBVGpCLDJCQUNFO0lBQUEscUlBS0M7SUFDRCx3SEFJQztJQUNILGlCQUFNOzs7SUFWRixlQUF1QjtJQUF2Qix5Q0FBdUI7SUFNdkIsZUFBc0I7SUFBdEIsd0NBQXNCOzs7SUFLMUIsc0RBQTBIOzs7SUFB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QUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OzRHQXJEVSw4QkFBOEI7bUVBQTlCLDhCQUE4QjtRQ2YzQywrRUFDRTtRQUVGLDhCQUNFO1FBQUEsMEJBQUk7UUFBQSxxQ0FBZ0I7UUFBQSxpQkFBSztRQUN6QiwrRUFDRTtRQVlGLHVJQUF3RjtRQUMxRixpQkFBTTtRQUNOLDhCQUNFO1FBQUEsaUNBQ0U7UUFEK0IsMkdBQVMsV0FBTyxJQUFDO1FBQ2hELGtDQUEyRTtRQUMzRSx1Q0FDRjtRQUFBLGlCQUFTO1FBQ1gsaUJBQU07O1FBekJELGtDQUFlO1FBS2IsZUFBMEI7UUFBMUIsbUNBQTBCO1FBYUUsZUFBOEI7UUFBOUIsaURBQThCO1FBSS9DLGVBQXNCO1FBQXRCLHdDQUFzQjs7a0REUDNCLDhCQUE4QjtjQVAxQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtDQUFrQztnQkFDNUMsV0FBVyxFQUFFLGlDQUFpQztnQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7Z0JBQzlDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDtpR0FFVSxPQUFPO2tCQUFmLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFDSSxNQUFNO2tCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFza2V0RW50cnksIEJhc2tldFByZXZpZXdMaW5lIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBHcm9jZXJpZXNFbnRyeSB9IGZyb20gJy4uLy4uLy4uL19tb2RlbHMvZ3JvY2VyaWVzLWVudHJ5JztcbmltcG9ydCB7IEJhc2tldHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1saXN0LXNjYW4tYmFza2V0LXByZXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFza2V0LXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYXNrZXQtcHJldmlldy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMaXN0U2NhbkJhc2tldFByZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG92ZXJsYXk7XG4gIEBJbnB1dCgpIGVudHJpZXM6IEdyb2Nlcmllc0VudHJ5W10gPSBbXTtcbiAgQE91dHB1dCgpIGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBpY29uID0gSWNvbjtcbiAgbGluZXM6IEJhc2tldFByZXZpZXdMaW5lW10gPSBbXTtcbiAgdW5hdmFpbGFibGU6IEJhc2tldEVudHJ5W10gPSBbXTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGJhc2tldHNTZXJ2aWNlOiBCYXNrZXRzU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGVudHJpZXNJZHMgPSB0aGlzLmVudHJpZXMubWFwKGUgPT4gZS5pZC50b1N0cmluZygpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmJhc2tldHNTZXJ2aWNlLmJhc2tldEVudHJpZXMoKS5zdWJzY3JpYmUoKGJhc2tldEVudHJpZXM6IEJhc2tldEVudHJ5W10pID0+IHtcbiAgICAgIHRoaXMubGluZXMgPSBiYXNrZXRFbnRyaWVzXG4gICAgICAgIC5maWx0ZXIoYmUgPT4gZW50cmllc0lkcy5pbmNsdWRlcyhiZS5ncm9jZXJpZXNFbnRyeS5pZCkgJiYgYmUuZ3JvY2VyaWVzRW50cnlTdGF0dXMgPT09ICdhY3RpdmUnICYmIGJlLnNlbGVjdGVkSXRlbSlcbiAgICAgICAgLm1hcChiZSA9PiBCYXNrZXRQcmV2aWV3TGluZS5mcm9tQmFza2V0RW50cnkoYmUpKTtcbiAgICAgIHRoaXMudW5hdmFpbGFibGUgPSBiYXNrZXRFbnRyaWVzXG4gICAgICAgIC5maWx0ZXIoYmUgPT4gZW50cmllc0lkcy5pbmNsdWRlcyhiZS5ncm9jZXJpZXNFbnRyeS5pZCkgJiYgKGJlLmdyb2Nlcmllc0VudHJ5U3RhdHVzICE9PSAnYWN0aXZlJyB8fCAhYmUuc2VsZWN0ZWRJdGVtKSk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICB9XG5cbiAgLy8gUmVtb3ZlIGdyb2NlcmllcyBlbnRyeSBmcm9tIGVudHJpZXMgYXJyYXksIGFuZCBsaW5lIGZyb20gbGluZXMgYXJyYXlcbiAgZGVsZXRlRW50cnkobGluZTogQmFza2V0UHJldmlld0xpbmUpIHtcbiAgICB0aGlzLmxpbmVzLnNwbGljZSh0aGlzLmxpbmVzLmluZGV4T2YobGluZSksIDEpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgIGNvbnN0IGUgPSBsaW5lLnJlY29yZC5ncm9jZXJpZXNFbnRyeTtcbiAgICB0aGlzLmVudHJpZXMuc3BsaWNlKHRoaXMuZW50cmllcy5pbmRleE9mKGUpLCAxKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIGUuZGVsZXRlKCkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuYmFza2V0c1NlcnZpY2UubG9hZEJhc2tldCgpKVxuICAgICAgKS5zdWJzY3JpYmUoKVxuICAgICk7XG4gIH1cblxuICB0b2dnbGVSZXBsYWNpbmcobGluZTogQmFza2V0UHJldmlld0xpbmUpIHtcbiAgICAvLyBSZWNhbGN1bGF0ZSBiYXNrZXQgZW50cnkgcHJpY2UgdG8gYXZvaWQgSlMgZXJyb3JzLi4uXG4gICAgbGluZS5yZWNvcmQudXBkYXRlVG90YWxQcmljZSgpO1xuICAgIGxpbmVbJ3JlcGxhY2luZyddID0gIWxpbmVbJ3JlcGxhY2luZyddO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIm92ZXJsYXlcIiBjbGFzcz1cIm1pYW0tbGlzdC1zY2FuX19kcmF3ZXItcGFkZGluZ1wiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gIDxuZy1taWFtLWljb24gW2ljb25OYW1lXT1cImljb24uRHJhd2VySG9yaXpvbnRhbENsb3NlQmFyXCIgd2lkdGg9XCI2NFwiIGhlaWdodD1cIjFcIj48L25nLW1pYW0taWNvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cIm1pYW0tbGlzdC1zY2FuX19kcmF3ZXItY29udGVudFwiPlxuICA8aDM+UHJvZHVpdHMgYWpvdXTDqXM8L2gzPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBsaW5lIG9mIGxpbmVzXCI+XG4gICAgPG5nLW1pYW0tYmFza2V0LXByZXZpZXctbGluZVxuICAgICAgKm5nSWY9XCIhbGluZS5yZXBsYWNpbmdcIlxuICAgICAgW2xpbmVdPVwibGluZVwiXG4gICAgICAocmVtb3ZlZCk9XCJkZWxldGVFbnRyeSgkZXZlbnQpXCJcbiAgICAgIChyZXBsYWNlSXRlbSk9XCJ0b2dnbGVSZXBsYWNpbmcobGluZSlcIlxuICAgID48L25nLW1pYW0tYmFza2V0LXByZXZpZXctbGluZT5cbiAgICA8bmctbWlhbS1yZXBsYWNlLWl0ZW1cbiAgICAgICpuZ0lmPVwibGluZS5yZXBsYWNpbmdcIlxuICAgICAgW2xpbmVdPVwibGluZVwiXG4gICAgICAoc2VsZWN0ZWQpPVwidG9nZ2xlUmVwbGFjaW5nKGxpbmUpXCJcbiAgICA+PC9uZy1taWFtLXJlcGxhY2UtaXRlbT5cbiAgPC9kaXY+XG4gIDxuZy1taWFtLWJhc2tldC1wcmV2aWV3LWRpc2FibGVkICpuZ0lmPVwidW5hdmFpbGFibGUubGVuZ3RoID4gMFwiIFtlbnRyaWVzXT1cInVuYXZhaWxhYmxlXCI+PC9uZy1taWFtLWJhc2tldC1wcmV2aWV3LWRpc2FibGVkPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibWlhbS1saXN0LXNjYW5fX2RyYXdlci1jb250cm9sc1wiPlxuICA8YnV0dG9uIGNsYXNzPVwibS1idXR0b24tcHJpbWFyeVwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgPG5nLW1pYW0taWNvbiBbaWNvbk5hbWVdPVwiaWNvbi5DYXJ0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PC9uZy1taWFtLWljb24+XG4gICAgQ29udGludWVyIG1lcyBjb3Vyc2VzXG4gIDwvYnV0dG9uPlxuPC9kaXY+Il19
@@ -0,0 +1,3 @@
1
+ export * from './list-scan.module';
2
+ export * from './list-scan.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL193ZWItY29tcG9uZW50cy9saXN0LXNjYW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saXN0LXNjYW4ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGlzdC1zY2FuLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,150 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import { forkJoin } from 'rxjs';
3
+ import { switchMap } from 'rxjs/operators';
4
+ import { BasketsService } from '../../../_services/baskets.service';
5
+ import { Icon } from '../../../_types/icon.enum';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../_services/baskets.service";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "../../../_components/icon/icon.component";
10
+ import * as i4 from "@angular/forms";
11
+ function ListScanIngredientsListComponent_div_0_Template(rf, ctx) { if (rf & 1) {
12
+ const _r3 = i0.ɵɵgetCurrentView();
13
+ i0.ɵɵelementStart(0, "div", 7);
14
+ i0.ɵɵlistener("click", function ListScanIngredientsListComponent_div_0_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return ctx_r2.cancel(); });
15
+ i0.ɵɵelement(1, "ng-miam-icon", 8);
16
+ i0.ɵɵelementEnd();
17
+ } if (rf & 2) {
18
+ const ctx_r0 = i0.ɵɵnextContext();
19
+ i0.ɵɵadvance(1);
20
+ i0.ɵɵproperty("iconName", ctx_r0.icon.DrawerHorizontalCloseBar);
21
+ } }
22
+ const _c0 = function (a0) { return { overlay: a0 }; };
23
+ function ListScanIngredientsListComponent_div_4_Template(rf, ctx) { if (rf & 1) {
24
+ const _r6 = i0.ɵɵgetCurrentView();
25
+ i0.ɵɵelementStart(0, "div", 9);
26
+ i0.ɵɵelementStart(1, "div", 10);
27
+ i0.ɵɵlistener("click", function ListScanIngredientsListComponent_div_4_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r6); const e_r4 = ctx.$implicit; const ctx_r5 = i0.ɵɵnextContext(); return ctx_r5.deleteEntry(e_r4); });
28
+ i0.ɵɵelement(2, "ng-miam-icon", 11);
29
+ i0.ɵɵelementEnd();
30
+ i0.ɵɵelementStart(3, "div");
31
+ i0.ɵɵelementStart(4, "div", 12);
32
+ i0.ɵɵtext(5, "Nom");
33
+ i0.ɵɵelementEnd();
34
+ i0.ɵɵelementStart(6, "input", 13);
35
+ i0.ɵɵlistener("ngModelChange", function ListScanIngredientsListComponent_div_4_Template_input_ngModelChange_6_listener($event) { i0.ɵɵrestoreView(_r6); const e_r4 = ctx.$implicit; return e_r4.name = $event; });
36
+ i0.ɵɵelementEnd();
37
+ i0.ɵɵelementEnd();
38
+ i0.ɵɵelementStart(7, "div");
39
+ i0.ɵɵelementStart(8, "div", 12);
40
+ i0.ɵɵtext(9, "Quantit\u00E9");
41
+ i0.ɵɵelementEnd();
42
+ i0.ɵɵelementStart(10, "input", 14);
43
+ i0.ɵɵlistener("ngModelChange", function ListScanIngredientsListComponent_div_4_Template_input_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r6); const e_r4 = ctx.$implicit; return e_r4.volume = $event; });
44
+ i0.ɵɵelementEnd();
45
+ i0.ɵɵelementEnd();
46
+ i0.ɵɵelementStart(11, "div");
47
+ i0.ɵɵelementStart(12, "div", 12);
48
+ i0.ɵɵtext(13, "Unit\u00E9");
49
+ i0.ɵɵelementEnd();
50
+ i0.ɵɵelementStart(14, "input", 13);
51
+ i0.ɵɵlistener("ngModelChange", function ListScanIngredientsListComponent_div_4_Template_input_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r6); const e_r4 = ctx.$implicit; return e_r4.unit = $event; });
52
+ i0.ɵɵelementEnd();
53
+ i0.ɵɵelementEnd();
54
+ i0.ɵɵelementEnd();
55
+ } if (rf & 2) {
56
+ const e_r4 = ctx.$implicit;
57
+ const ctx_r1 = i0.ɵɵnextContext();
58
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(5, _c0, ctx_r1.overlay));
59
+ i0.ɵɵadvance(2);
60
+ i0.ɵɵproperty("iconName", ctx_r1.icon.Trash);
61
+ i0.ɵɵadvance(4);
62
+ i0.ɵɵproperty("ngModel", e_r4.name);
63
+ i0.ɵɵadvance(4);
64
+ i0.ɵɵproperty("ngModel", e_r4.volume);
65
+ i0.ɵɵadvance(4);
66
+ i0.ɵɵproperty("ngModel", e_r4.unit);
67
+ } }
68
+ export class ListScanIngredientsListComponent {
69
+ constructor(cdr, basketsService) {
70
+ this.cdr = cdr;
71
+ this.basketsService = basketsService;
72
+ this.entries = [];
73
+ this.closed = new EventEmitter();
74
+ this.confirmed = new EventEmitter();
75
+ this.icon = Icon;
76
+ this.subscriptions = [];
77
+ }
78
+ ngOnDestroy() {
79
+ this.subscriptions.forEach(s => s.unsubscribe());
80
+ }
81
+ deleteEntry(e) {
82
+ this.entries.splice(this.entries.indexOf(e), 1);
83
+ this.cdr.detectChanges();
84
+ e.delete();
85
+ }
86
+ cancel() {
87
+ if (this.entries.length === 0) {
88
+ return this.closed.emit();
89
+ }
90
+ this.subscriptions.push(forkJoin(this.entries.map(e => e.delete())).pipe(
91
+ // Reload the basket to make sure the injector receives the update
92
+ switchMap(() => this.basketsService.loadBasket())).subscribe(() => this.closed.emit()));
93
+ }
94
+ // Save modified entries, reload basket, and move to next step
95
+ confirm() {
96
+ if (this.entries.length === 0) {
97
+ return this.closed.emit();
98
+ }
99
+ this.subscriptions.push(forkJoin(this.entries.map(e => {
100
+ e.status = 'active'; // force reactivation of entry in case the name has changed (and was unavailable before)
101
+ return e.save();
102
+ })).pipe(switchMap(() => this.basketsService.loadBasket())).subscribe(() => this.confirmed.emit()));
103
+ }
104
+ }
105
+ ListScanIngredientsListComponent.ɵfac = function ListScanIngredientsListComponent_Factory(t) { return new (t || ListScanIngredientsListComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.BasketsService)); };
106
+ ListScanIngredientsListComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ListScanIngredientsListComponent, selectors: [["ng-miam-list-scan-ingredients-list"]], inputs: { overlay: "overlay", entries: "entries" }, outputs: { closed: "closed", confirmed: "confirmed" }, decls: 11, vars: 3, consts: [["class", "miam-list-scan__drawer-padding", 3, "click", 4, "ngIf"], [1, "miam-list-scan__drawer-content"], ["class", "miam-list-scan__ingredients-list__entry", 3, "ngClass", 4, "ngFor", "ngForOf"], [1, "miam-list-scan__drawer-controls"], [1, "m-button-grey", 3, "click"], [1, "m-button-primary", 3, "click"], ["width", "24", "height", "24", 3, "iconName"], [1, "miam-list-scan__drawer-padding", 3, "click"], ["width", "64", "height", "1", 3, "iconName"], [1, "miam-list-scan__ingredients-list__entry", 3, "ngClass"], [3, "click"], ["primaryColor", "var(--m-color-grey-text)", 3, "iconName"], [1, "entry-label"], ["type", "text", 3, "ngModel", "ngModelChange"], ["type", "number", 3, "ngModel", "ngModelChange"]], template: function ListScanIngredientsListComponent_Template(rf, ctx) { if (rf & 1) {
107
+ i0.ɵɵtemplate(0, ListScanIngredientsListComponent_div_0_Template, 2, 1, "div", 0);
108
+ i0.ɵɵelementStart(1, "div", 1);
109
+ i0.ɵɵelementStart(2, "h3");
110
+ i0.ɵɵtext(3, "Ingr\u00E9dients scann\u00E9s");
111
+ i0.ɵɵelementEnd();
112
+ i0.ɵɵtemplate(4, ListScanIngredientsListComponent_div_4_Template, 15, 7, "div", 2);
113
+ i0.ɵɵelementEnd();
114
+ i0.ɵɵelementStart(5, "div", 3);
115
+ i0.ɵɵelementStart(6, "button", 4);
116
+ i0.ɵɵlistener("click", function ListScanIngredientsListComponent_Template_button_click_6_listener() { return ctx.cancel(); });
117
+ i0.ɵɵtext(7, "Annuler");
118
+ i0.ɵɵelementEnd();
119
+ i0.ɵɵelementStart(8, "button", 5);
120
+ i0.ɵɵlistener("click", function ListScanIngredientsListComponent_Template_button_click_8_listener() { return ctx.confirm(); });
121
+ i0.ɵɵelement(9, "ng-miam-icon", 6);
122
+ i0.ɵɵtext(10, " Mettre au panier ");
123
+ i0.ɵɵelementEnd();
124
+ i0.ɵɵelementEnd();
125
+ } if (rf & 2) {
126
+ i0.ɵɵproperty("ngIf", ctx.overlay);
127
+ i0.ɵɵadvance(4);
128
+ i0.ɵɵproperty("ngForOf", ctx.entries);
129
+ i0.ɵɵadvance(5);
130
+ i0.ɵɵproperty("iconName", ctx.icon.CartPlus);
131
+ } }, directives: [i2.NgIf, i2.NgForOf, i3.IconComponent, i2.NgClass, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgModel, i4.NumberValueAccessor], styles: [".miam-list-scan__drawer-content .miam-list-scan__ingredients-list__entry{display:flex;margin-bottom:8px;width:100%}.miam-list-scan__drawer-content .miam-list-scan__ingredients-list__entry>*{display:flex;flex:1;flex-direction:column}.miam-list-scan__drawer-content .miam-list-scan__ingredients-list__entry>:first-child{cursor:pointer;display:flex;justify-content:center;padding-top:12px}.miam-list-scan__drawer-content .miam-list-scan__ingredients-list__entry>:nth-child(2){flex:6;margin-right:8px}.miam-list-scan__drawer-content .miam-list-scan__ingredients-list__entry>:last-child{flex:2;margin-left:8px}.miam-list-scan__drawer-content .miam-list-scan__ingredients-list__entry>* .entry-label{font-size:11px}.miam-list-scan__drawer-content .miam-list-scan__ingredients-list__entry>* input{border:1px solid #d3d3d3;border-radius:4px;color:var(--m-color-grey-text-dark);padding:8px;width:100%}.miam-list-scan__drawer-content .miam-list-scan__ingredients-list__entry.overlay>:first-child{align-items:flex-start}"], encapsulation: 2, changeDetection: 0 });
132
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ListScanIngredientsListComponent, [{
133
+ type: Component,
134
+ args: [{
135
+ selector: 'ng-miam-list-scan-ingredients-list',
136
+ templateUrl: './ingredients-list.component.html',
137
+ styleUrls: ['./ingredients-list.component.scss'],
138
+ encapsulation: ViewEncapsulation.None,
139
+ changeDetection: ChangeDetectionStrategy.OnPush
140
+ }]
141
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.BasketsService }]; }, { overlay: [{
142
+ type: Input
143
+ }], entries: [{
144
+ type: Input
145
+ }], closed: [{
146
+ type: Output
147
+ }], confirmed: [{
148
+ type: Output
149
+ }] }); })();
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ncmVkaWVudHMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL193ZWItY29tcG9uZW50cy9saXN0LXNjYW4vaW5ncmVkaWVudHMtbGlzdC9pbmdyZWRpZW50cy1saXN0LmNvbXBvbmVudC50cyIsImxpYi9fd2ViLWNvbXBvbmVudHMvbGlzdC1zY2FuL2luZ3JlZGllbnRzLWxpc3QvaW5ncmVkaWVudHMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SixPQUFPLEVBQUUsUUFBUSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7SUNMakQsOEJBQ0U7SUFEMEQsNkxBQWtCO0lBQzVFLGtDQUE4RjtJQUNoRyxpQkFBTTs7O0lBRFUsZUFBMEM7SUFBMUMsK0RBQTBDOzs7OztJQUl4RCw4QkFDRTtJQUFBLCtCQUNFO0lBREcsa09BQXdCO0lBQzNCLG1DQUE2RjtJQUMvRixpQkFBTTtJQUNOLDJCQUNFO0lBQUEsK0JBQXlCO0lBQUEsbUJBQUc7SUFBQSxpQkFBTTtJQUNsQyxpQ0FDRjtJQURxQixpTkFBb0I7SUFBdkMsaUJBQ0Y7SUFBQSxpQkFBTTtJQUNOLDJCQUNFO0lBQUEsK0JBQXlCO0lBQUEsNkJBQVE7SUFBQSxpQkFBTTtJQUN2QyxrQ0FDRjtJQUR1QixvTkFBc0I7SUFB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QUFBLGlCQUFLO1FBQzVCLGtGQUNFO1FBZ0JKLGlCQUFNO1FBRU4sOEJBQ0U7UUFBQSxpQ0FBaUQ7UUFBbkIsNkdBQVMsWUFBUSxJQUFDO1FBQUMsdUJBQU87UUFBQSxpQkFBUztRQUNqRSxpQ0FDRTtRQUQrQiw2R0FBUyxhQUFTLElBQUM7UUFDbEQsa0NBQStFO1FBQy9FLG1DQUNGO1FBQUEsaUJBQVM7UUFDWCxpQkFBTTs7UUE5QkQsa0NBQWU7UUFLYixlQUF5QjtRQUF6QixxQ0FBeUI7UUFzQmQsZUFBMEI7UUFBMUIsNENBQTBCOztrRERiL0IsZ0NBQWdDO2NBUDVDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsb0NBQW9DO2dCQUM5QyxXQUFXLEVBQUUsbUNBQW1DO2dCQUNoRCxTQUFTLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQztnQkFDaEQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEO2lHQUVVLE9BQU87a0JBQWYsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUNJLE1BQU07a0JBQWYsTUFBTTtZQUNHLFNBQVM7a0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZvcmtKb2luLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEdyb2Nlcmllc0VudHJ5IH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscy9ncm9jZXJpZXMtZW50cnknO1xuaW1wb3J0IHsgQmFza2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMvYmFza2V0cy5zZXJ2aWNlJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1saXN0LXNjYW4taW5ncmVkaWVudHMtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmdyZWRpZW50cy1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5ncmVkaWVudHMtbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMaXN0U2NhbkluZ3JlZGllbnRzTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG92ZXJsYXk6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGVudHJpZXM6IEdyb2Nlcmllc0VudHJ5W10gPSBbXTtcbiAgQE91dHB1dCgpIGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgY29uZmlybWVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIGljb24gPSBJY29uO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgYmFza2V0c1NlcnZpY2U6IEJhc2tldHNTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgZGVsZXRlRW50cnkoZTogR3JvY2VyaWVzRW50cnkpIHtcbiAgICB0aGlzLmVudHJpZXMuc3BsaWNlKHRoaXMuZW50cmllcy5pbmRleE9mKGUpLCAxKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgZS5kZWxldGUoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICBpZiAodGhpcy5lbnRyaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgICB9XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIGZvcmtKb2luKHRoaXMuZW50cmllcy5tYXAoZSA9PiBlLmRlbGV0ZSgpKSkucGlwZShcbiAgICAgICAgLy8gUmVsb2FkIHRoZSBiYXNrZXQgdG8gbWFrZSBzdXJlIHRoZSBpbmplY3RvciByZWNlaXZlcyB0aGUgdXBkYXRlXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmJhc2tldHNTZXJ2aWNlLmxvYWRCYXNrZXQoKSlcbiAgICAgICkuc3Vic2NyaWJlKFxuICAgICAgICAoKSA9PiB0aGlzLmNsb3NlZC5lbWl0KClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLy8gU2F2ZSBtb2RpZmllZCBlbnRyaWVzLCByZWxvYWQgYmFza2V0LCBhbmQgbW92ZSB0byBuZXh0IHN0ZXBcbiAgY29uZmlybSgpIHtcbiAgICBpZiAodGhpcy5lbnRyaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgICB9XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIGZvcmtKb2luKHRoaXMuZW50cmllcy5tYXAoZSA9PiB7XG4gICAgICAgIGUuc3RhdHVzID0gJ2FjdGl2ZSc7IC8vIGZvcmNlIHJlYWN0aXZhdGlvbiBvZiBlbnRyeSBpbiBjYXNlIHRoZSBuYW1lIGhhcyBjaGFuZ2VkIChhbmQgd2FzIHVuYXZhaWxhYmxlIGJlZm9yZSlcbiAgICAgICAgcmV0dXJuIGUuc2F2ZSgpO1xuICAgICAgfSkpLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmJhc2tldHNTZXJ2aWNlLmxvYWRCYXNrZXQoKSlcbiAgICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMuY29uZmlybWVkLmVtaXQoKSlcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwib3ZlcmxheVwiIGNsYXNzPVwibWlhbS1saXN0LXNjYW5fX2RyYXdlci1wYWRkaW5nXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XG4gIDxuZy1taWFtLWljb24gW2ljb25OYW1lXT1cImljb24uRHJhd2VySG9yaXpvbnRhbENsb3NlQmFyXCIgd2lkdGg9XCI2NFwiIGhlaWdodD1cIjFcIj48L25nLW1pYW0taWNvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cIm1pYW0tbGlzdC1zY2FuX19kcmF3ZXItY29udGVudFwiPlxuICA8aDM+SW5ncsOpZGllbnRzIHNjYW5uw6lzPC9oMz5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgZSBvZiBlbnRyaWVzXCIgY2xhc3M9XCJtaWFtLWxpc3Qtc2Nhbl9faW5ncmVkaWVudHMtbGlzdF9fZW50cnlcIiBbbmdDbGFzc109XCJ7IG92ZXJsYXk6IG92ZXJsYXkgfVwiPlxuICAgIDxkaXYgKGNsaWNrKT1cImRlbGV0ZUVudHJ5KGUpXCI+XG4gICAgICA8bmctbWlhbS1pY29uIFtpY29uTmFtZV09XCJpY29uLlRyYXNoXCIgcHJpbWFyeUNvbG9yPVwidmFyKC0tbS1jb2xvci1ncmV5LXRleHQpXCI+PC9uZy1taWFtLWljb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlbnRyeS1sYWJlbFwiPk5vbTwvZGl2PlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJlLm5hbWVcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImVudHJ5LWxhYmVsXCI+UXVhbnRpdMOpPC9kaXY+XG4gICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwiZS52b2x1bWVcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImVudHJ5LWxhYmVsXCI+VW5pdMOpPC9kaXY+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImUudW5pdFwiPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibWlhbS1saXN0LXNjYW5fX2RyYXdlci1jb250cm9sc1wiPlxuICA8YnV0dG9uIGNsYXNzPVwibS1idXR0b24tZ3JleVwiIChjbGljayk9XCJjYW5jZWwoKVwiPkFubnVsZXI8L2J1dHRvbj5cbiAgPGJ1dHRvbiBjbGFzcz1cIm0tYnV0dG9uLXByaW1hcnlcIiAoY2xpY2spPVwiY29uZmlybSgpXCI+XG4gICAgPG5nLW1pYW0taWNvbiBbaWNvbk5hbWVdPVwiaWNvbi5DYXJ0UGx1c1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjwvbmctbWlhbS1pY29uPlxuICAgIE1ldHRyZSBhdSBwYW5pZXJcbiAgPC9idXR0b24+XG48L2Rpdj4iXX0=
@@ -0,0 +1,87 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "./overlay-button/overlay-button.component";
5
+ import * as i3 from "./ingredients-list/ingredients-list.component";
6
+ import * as i4 from "./basket-preview/basket-preview.component";
7
+ function ListScanComponent_ng_miam_list_scan_overlay_button_1_Template(rf, ctx) { if (rf & 1) {
8
+ const _r4 = i0.ɵɵgetCurrentView();
9
+ i0.ɵɵelementStart(0, "ng-miam-list-scan-overlay-button", 4);
10
+ i0.ɵɵlistener("entriesAdded", function ListScanComponent_ng_miam_list_scan_overlay_button_1_Template_ng_miam_list_scan_overlay_button_entriesAdded_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return ctx_r3.showIngredients($event); });
11
+ i0.ɵɵelementEnd();
12
+ } if (rf & 2) {
13
+ const ctx_r0 = i0.ɵɵnextContext();
14
+ i0.ɵɵproperty("overlay", ctx_r0.overlay);
15
+ } }
16
+ const _c0 = function (a0) { return { overlay: a0 }; };
17
+ function ListScanComponent_ng_miam_list_scan_ingredients_list_2_Template(rf, ctx) { if (rf & 1) {
18
+ const _r6 = i0.ɵɵgetCurrentView();
19
+ i0.ɵɵelementStart(0, "ng-miam-list-scan-ingredients-list", 5);
20
+ i0.ɵɵlistener("closed", function ListScanComponent_ng_miam_list_scan_ingredients_list_2_Template_ng_miam_list_scan_ingredients_list_closed_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(); return ctx_r5.hideIngredients(); })("confirmed", function ListScanComponent_ng_miam_list_scan_ingredients_list_2_Template_ng_miam_list_scan_ingredients_list_confirmed_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r7 = i0.ɵɵnextContext(); return ctx_r7.showBasketPreview(); });
21
+ i0.ɵɵelementEnd();
22
+ } if (rf & 2) {
23
+ const ctx_r1 = i0.ɵɵnextContext();
24
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, ctx_r1.overlay))("overlay", ctx_r1.overlay)("entries", ctx_r1.entries);
25
+ } }
26
+ function ListScanComponent_ng_miam_list_scan_basket_preview_3_Template(rf, ctx) { if (rf & 1) {
27
+ const _r9 = i0.ɵɵgetCurrentView();
28
+ i0.ɵɵelementStart(0, "ng-miam-list-scan-basket-preview", 6);
29
+ i0.ɵɵlistener("closed", function ListScanComponent_ng_miam_list_scan_basket_preview_3_Template_ng_miam_list_scan_basket_preview_closed_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(); return ctx_r8.hideBasketPreview(); });
30
+ i0.ɵɵelementEnd();
31
+ } if (rf & 2) {
32
+ const ctx_r2 = i0.ɵɵnextContext();
33
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, ctx_r2.overlay))("overlay", ctx_r2.overlay)("entries", ctx_r2.entries);
34
+ } }
35
+ export class ListScanComponent {
36
+ constructor(cdr) {
37
+ this.cdr = cdr;
38
+ this.overlay = true;
39
+ this.entries = [];
40
+ this.ingredientsShown = false;
41
+ this.basketPreviewShown = false;
42
+ }
43
+ showIngredients(newEntries) {
44
+ this.entries = newEntries;
45
+ this.ingredientsShown = true;
46
+ this.cdr.detectChanges();
47
+ }
48
+ hideIngredients() {
49
+ this.ingredientsShown = false;
50
+ this.cdr.detectChanges();
51
+ }
52
+ showBasketPreview() {
53
+ this.basketPreviewShown = true;
54
+ this.hideIngredients();
55
+ }
56
+ hideBasketPreview() {
57
+ this.basketPreviewShown = false;
58
+ this.cdr.detectChanges();
59
+ }
60
+ }
61
+ ListScanComponent.ɵfac = function ListScanComponent_Factory(t) { return new (t || ListScanComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
62
+ ListScanComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ListScanComponent, selectors: [["ng-miam-list-scan"]], inputs: { overlay: "overlay" }, decls: 4, vars: 3, consts: [[1, "miam-list-scan"], [3, "overlay", "entriesAdded", 4, "ngIf"], ["class", "miam-list-scan__drawer", 3, "ngClass", "overlay", "entries", "closed", "confirmed", 4, "ngIf"], ["class", "miam-list-scan__drawer", 3, "ngClass", "overlay", "entries", "closed", 4, "ngIf"], [3, "overlay", "entriesAdded"], [1, "miam-list-scan__drawer", 3, "ngClass", "overlay", "entries", "closed", "confirmed"], [1, "miam-list-scan__drawer", 3, "ngClass", "overlay", "entries", "closed"]], template: function ListScanComponent_Template(rf, ctx) { if (rf & 1) {
63
+ i0.ɵɵelementStart(0, "div", 0);
64
+ i0.ɵɵtemplate(1, ListScanComponent_ng_miam_list_scan_overlay_button_1_Template, 1, 1, "ng-miam-list-scan-overlay-button", 1);
65
+ i0.ɵɵtemplate(2, ListScanComponent_ng_miam_list_scan_ingredients_list_2_Template, 1, 5, "ng-miam-list-scan-ingredients-list", 2);
66
+ i0.ɵɵtemplate(3, ListScanComponent_ng_miam_list_scan_basket_preview_3_Template, 1, 5, "ng-miam-list-scan-basket-preview", 3);
67
+ i0.ɵɵelementEnd();
68
+ } if (rf & 2) {
69
+ i0.ɵɵadvance(1);
70
+ i0.ɵɵproperty("ngIf", !ctx.ingredientsShown && !ctx.basketPreviewShown);
71
+ i0.ɵɵadvance(1);
72
+ i0.ɵɵproperty("ngIf", ctx.ingredientsShown);
73
+ i0.ɵɵadvance(1);
74
+ i0.ɵɵproperty("ngIf", ctx.basketPreviewShown);
75
+ } }, directives: [i1.NgIf, i2.ListScanOverlayButtonComponent, i3.ListScanIngredientsListComponent, i1.NgClass, i4.ListScanBasketPreviewComponent], styles: [".miam-list-scan[_ngcontent-%COMP%] .miam-list-scan__drawer[_ngcontent-%COMP%]{border-top-left-radius:35px;border-top-right-radius:35px;position:relative;width:100%}.miam-list-scan[_ngcontent-%COMP%] .miam-list-scan__drawer.overlay[_ngcontent-%COMP%]{background-color:#fff;bottom:0;height:97%;left:0;position:fixed}.miam-list-scan[_ngcontent-%COMP%] .miam-list-scan__drawer[_ngcontent-%COMP%] .miam-list-scan__drawer-padding{align-items:flex-end;display:flex;height:22px;justify-content:center;padding-bottom:6px}.miam-list-scan[_ngcontent-%COMP%] .miam-list-scan__drawer[_ngcontent-%COMP%] .miam-list-scan__drawer-content{height:calc(100% - 71px);overflow-y:auto;padding:0 16px;width:100%}.miam-list-scan[_ngcontent-%COMP%] .miam-list-scan__drawer[_ngcontent-%COMP%] .miam-list-scan__drawer-controls{display:flex;width:100%}.miam-list-scan[_ngcontent-%COMP%] .miam-list-scan__drawer[_ngcontent-%COMP%] .miam-list-scan__drawer-controls>button{border:none;border-radius:0;flex:1;height:50px;padding:13px 8px}.miam-list-scan[_ngcontent-%COMP%] .miam-list-scan__drawer[_ngcontent-%COMP%] .miam-list-scan__drawer-controls>button:first-child{border-top:1px solid #d3d3d3}.miam-list-scan[_ngcontent-%COMP%] .miam-list-scan__drawer[_ngcontent-%COMP%] .miam-list-scan__drawer-controls ng-miam-icon{margin-left:0;margin-right:6px}"], changeDetection: 0 });
76
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ListScanComponent, [{
77
+ type: Component,
78
+ args: [{
79
+ selector: 'ng-miam-list-scan',
80
+ templateUrl: './list-scan.component.html',
81
+ styleUrls: ['./list-scan.component.scss'],
82
+ changeDetection: ChangeDetectionStrategy.OnPush
83
+ }]
84
+ }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { overlay: [{
85
+ type: Input
86
+ }] }); })();
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1zY2FuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvYnVpbGRzL21pYW0vbmctbWlhbS1zZGsvcHJvamVjdHMvbmctbWlhbS9zcmMvIiwic291cmNlcyI6WyJsaWIvX3dlYi1jb21wb25lbnRzL2xpc3Qtc2Nhbi9saXN0LXNjYW4uY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9saXN0LXNjYW4vbGlzdC1zY2FuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztJQ0MzRiwyREFDbUM7SUFEb0UsMlFBQXdDO0lBQy9JLGlCQUFtQzs7O0lBRGdELHdDQUFtQjs7Ozs7SUFHdEcsNkRBU3FDO0lBSG5DLHVQQUE0QixrUEFBQTtJQUc5QixpQkFBcUM7OztJQU5uQyxvRUFBZ0MsMkJBQUEsMkJBQUE7Ozs7SUFRbEMsMkRBUW1DO0lBRmpDLHFQQUE4QjtJQUVoQyxpQkFBbUM7OztJQUxqQyxvRUFBZ0MsMkJBQUEsMkJBQUE7O0FEVHBDLE1BQU0sT0FBTyxpQkFBaUI7SUFNNUIsWUFDVSxHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQU52QixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLFlBQU8sR0FBcUIsRUFBRSxDQUFDO1FBQy9CLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6Qix1QkFBa0IsR0FBRyxLQUFLLENBQUM7SUFJdkIsQ0FBQztJQUVMLGVBQWUsQ0FBQyxVQUE0QjtRQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztRQUMxQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7a0ZBN0JVLGlCQUFpQjtzREFBakIsaUJBQWlCO1FDVDlCLDhCQUNFO1FBQUEsNEhBQ0E7UUFFQSxnSUFTQTtRQUVBLDRIQVFBO1FBQ0YsaUJBQU07O1FBdkI4QixlQUFnRDtRQUFoRCx1RUFBZ0Q7UUFJaEYsZUFBd0I7UUFBeEIsMkNBQXdCO1FBV3hCLGVBQTBCO1FBQTFCLDZDQUEwQjs7a0REUGpCLGlCQUFpQjtjQU43QixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsV0FBVyxFQUFFLDRCQUE0QjtnQkFDekMsU0FBUyxFQUFFLENBQUMsNEJBQTRCLENBQUM7Z0JBQ3pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEO29FQUVVLE9BQU87a0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JvY2VyaWVzRW50cnkgfSBmcm9tICcuLi8uLi9fbW9kZWxzL2dyb2Nlcmllcy1lbnRyeSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tbGlzdC1zY2FuJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3Qtc2Nhbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpc3Qtc2Nhbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMaXN0U2NhbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG92ZXJsYXkgPSB0cnVlO1xuICBlbnRyaWVzOiBHcm9jZXJpZXNFbnRyeVtdID0gW107XG4gIGluZ3JlZGllbnRzU2hvd24gPSBmYWxzZTtcbiAgYmFza2V0UHJldmlld1Nob3duID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkgeyB9XG5cbiAgc2hvd0luZ3JlZGllbnRzKG5ld0VudHJpZXM6IEdyb2Nlcmllc0VudHJ5W10pIHtcbiAgICB0aGlzLmVudHJpZXMgPSBuZXdFbnRyaWVzO1xuICAgIHRoaXMuaW5ncmVkaWVudHNTaG93biA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgaGlkZUluZ3JlZGllbnRzKCkge1xuICAgIHRoaXMuaW5ncmVkaWVudHNTaG93biA9IGZhbHNlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHNob3dCYXNrZXRQcmV2aWV3KCkge1xuICAgIHRoaXMuYmFza2V0UHJldmlld1Nob3duID0gdHJ1ZTtcbiAgICB0aGlzLmhpZGVJbmdyZWRpZW50cygpO1xuICB9XG5cbiAgaGlkZUJhc2tldFByZXZpZXcoKSB7XG4gICAgdGhpcy5iYXNrZXRQcmV2aWV3U2hvd24gPSBmYWxzZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaWFtLWxpc3Qtc2NhblwiPlxuICA8bmctbWlhbS1saXN0LXNjYW4tb3ZlcmxheS1idXR0b24gKm5nSWY9XCIhaW5ncmVkaWVudHNTaG93biAmJiAhYmFza2V0UHJldmlld1Nob3duXCIgW292ZXJsYXldPVwib3ZlcmxheVwiIChlbnRyaWVzQWRkZWQpPVwic2hvd0luZ3JlZGllbnRzKCRldmVudClcIj5cbiAgPC9uZy1taWFtLWxpc3Qtc2Nhbi1vdmVybGF5LWJ1dHRvbj5cblxuICA8bmctbWlhbS1saXN0LXNjYW4taW5ncmVkaWVudHMtbGlzdFxuICAgICpuZ0lmPVwiaW5ncmVkaWVudHNTaG93blwiXG4gICAgY2xhc3M9XCJtaWFtLWxpc3Qtc2Nhbl9fZHJhd2VyXCJcbiAgICBbbmdDbGFzc109XCJ7IG92ZXJsYXk6IG92ZXJsYXkgfVwiXG4gICAgW292ZXJsYXldPVwib3ZlcmxheVwiXG4gICAgW2VudHJpZXNdPVwiZW50cmllc1wiXG4gICAgKGNsb3NlZCk9XCJoaWRlSW5ncmVkaWVudHMoKVwiXG4gICAgKGNvbmZpcm1lZCk9XCJzaG93QmFza2V0UHJldmlldygpXCJcbiAgPlxuICA8L25nLW1pYW0tbGlzdC1zY2FuLWluZ3JlZGllbnRzLWxpc3Q+XG5cbiAgPG5nLW1pYW0tbGlzdC1zY2FuLWJhc2tldC1wcmV2aWV3XG4gICAgKm5nSWY9XCJiYXNrZXRQcmV2aWV3U2hvd25cIlxuICAgIGNsYXNzPVwibWlhbS1saXN0LXNjYW5fX2RyYXdlclwiXG4gICAgW25nQ2xhc3NdPVwieyBvdmVybGF5OiBvdmVybGF5IH1cIlxuICAgIFtvdmVybGF5XT1cIm92ZXJsYXlcIlxuICAgIFtlbnRyaWVzXT1cImVudHJpZXNcIlxuICAgIChjbG9zZWQpPVwiaGlkZUJhc2tldFByZXZpZXcoKVwiXG4gID5cbiAgPC9uZy1taWFtLWxpc3Qtc2Nhbi1iYXNrZXQtcHJldmlldz5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,60 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Injector, NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { createCustomElement } from '@angular/elements';
5
+ import { ComponentsModule } from '../../_components';
6
+ import { ListScanComponent } from './list-scan.component';
7
+ import { ListScanBasketPreviewComponent } from './basket-preview/basket-preview.component';
8
+ import { ListScanIngredientsListComponent } from './ingredients-list/ingredients-list.component';
9
+ import { ListScanOverlayButtonComponent } from './overlay-button/overlay-button.component';
10
+ import { BasketPreviewModule } from '../basket-preview/basket-preview.module';
11
+ import { LoaderModule } from '../../_web-components/loader/loader.module';
12
+ import * as i0 from "@angular/core";
13
+ export class ListScanModule {
14
+ // Create custom elements so the WebComponents can be interpreted by the browser regardless of the js framework used
15
+ constructor(injector) {
16
+ // Avoid duplicate error
17
+ if (!customElements.get('webc-miam-list-scan')) {
18
+ const ngElement = createCustomElement(ListScanComponent, { injector });
19
+ customElements.define('webc-miam-list-scan', ngElement);
20
+ }
21
+ }
22
+ }
23
+ ListScanModule.ɵmod = i0.ɵɵdefineNgModule({ type: ListScanModule });
24
+ ListScanModule.ɵinj = i0.ɵɵdefineInjector({ factory: function ListScanModule_Factory(t) { return new (t || ListScanModule)(i0.ɵɵinject(i0.Injector)); }, imports: [[
25
+ CommonModule,
26
+ FormsModule,
27
+ ComponentsModule,
28
+ BasketPreviewModule,
29
+ LoaderModule
30
+ ]] });
31
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(ListScanModule, { declarations: [ListScanComponent,
32
+ ListScanOverlayButtonComponent,
33
+ ListScanIngredientsListComponent,
34
+ ListScanBasketPreviewComponent], imports: [CommonModule,
35
+ FormsModule,
36
+ ComponentsModule,
37
+ BasketPreviewModule,
38
+ LoaderModule], exports: [ListScanComponent] }); })();
39
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ListScanModule, [{
40
+ type: NgModule,
41
+ args: [{
42
+ imports: [
43
+ CommonModule,
44
+ FormsModule,
45
+ ComponentsModule,
46
+ BasketPreviewModule,
47
+ LoaderModule
48
+ ],
49
+ declarations: [
50
+ ListScanComponent,
51
+ ListScanOverlayButtonComponent,
52
+ ListScanIngredientsListComponent,
53
+ ListScanBasketPreviewComponent
54
+ ],
55
+ exports: [
56
+ ListScanComponent
57
+ ]
58
+ }]
59
+ }], function () { return [{ type: i0.Injector }]; }, null); })();
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1zY2FuLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIvYnVpbGRzL21pYW0vbmctbWlhbS1zZGsvcHJvamVjdHMvbmctbWlhbS9zcmMvIiwic291cmNlcyI6WyJsaWIvX3dlYi1jb21wb25lbnRzL2xpc3Qtc2Nhbi9saXN0LXNjYW4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDakcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQW9CMUUsTUFBTSxPQUFPLGNBQWM7SUFDekIsb0hBQW9IO0lBQ3BILFlBQ0UsUUFBa0I7UUFFbEIsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLEVBQUU7WUFDOUMsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLGNBQWMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDekQ7SUFDSCxDQUFDOztrREFWVSxjQUFjOzJHQUFkLGNBQWMsMENBakJoQjtZQUNQLFlBQVk7WUFDWixXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixZQUFZO1NBQ2I7d0ZBV1UsY0FBYyxtQkFUdkIsaUJBQWlCO1FBQ2pCLDhCQUE4QjtRQUM5QixnQ0FBZ0M7UUFDaEMsOEJBQThCLGFBVjlCLFlBQVk7UUFDWixXQUFXO1FBQ1gsZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixZQUFZLGFBU1osaUJBQWlCO2tEQUdSLGNBQWM7Y0FsQjFCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLGdCQUFnQjtvQkFDaEIsbUJBQW1CO29CQUNuQixZQUFZO2lCQUNiO2dCQUNELFlBQVksRUFBRTtvQkFDWixpQkFBaUI7b0JBQ2pCLDhCQUE4QjtvQkFDOUIsZ0NBQWdDO29CQUNoQyw4QkFBOEI7aUJBQy9CO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxpQkFBaUI7aUJBQ2xCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0b3IsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNyZWF0ZUN1c3RvbUVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9lbGVtZW50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgTGlzdFNjYW5Db21wb25lbnQgfSBmcm9tICcuL2xpc3Qtc2Nhbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdFNjYW5CYXNrZXRQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9iYXNrZXQtcHJldmlldy9iYXNrZXQtcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdFNjYW5JbmdyZWRpZW50c0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2luZ3JlZGllbnRzLWxpc3QvaW5ncmVkaWVudHMtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdFNjYW5PdmVybGF5QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5LWJ1dHRvbi9vdmVybGF5LWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFza2V0UHJldmlld01vZHVsZSB9IGZyb20gJy4uL2Jhc2tldC1wcmV2aWV3L2Jhc2tldC1wcmV2aWV3Lm1vZHVsZSc7XG5pbXBvcnQgeyBMb2FkZXJNb2R1bGUgfSBmcm9tICcuLi8uLi9fd2ViLWNvbXBvbmVudHMvbG9hZGVyL2xvYWRlci5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENvbXBvbmVudHNNb2R1bGUsXG4gICAgQmFza2V0UHJldmlld01vZHVsZSxcbiAgICBMb2FkZXJNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTGlzdFNjYW5Db21wb25lbnQsXG4gICAgTGlzdFNjYW5PdmVybGF5QnV0dG9uQ29tcG9uZW50LFxuICAgIExpc3RTY2FuSW5ncmVkaWVudHNMaXN0Q29tcG9uZW50LFxuICAgIExpc3RTY2FuQmFza2V0UHJldmlld0NvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTGlzdFNjYW5Db21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0U2Nhbk1vZHVsZSB7XG4gIC8vIENyZWF0ZSBjdXN0b20gZWxlbWVudHMgc28gdGhlIFdlYkNvbXBvbmVudHMgY2FuIGJlIGludGVycHJldGVkIGJ5IHRoZSBicm93c2VyIHJlZ2FyZGxlc3Mgb2YgdGhlIGpzIGZyYW1ld29yayB1c2VkXG4gIGNvbnN0cnVjdG9yKFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgKSB7XG4gICAgLy8gQXZvaWQgZHVwbGljYXRlIGVycm9yXG4gICAgaWYgKCFjdXN0b21FbGVtZW50cy5nZXQoJ3dlYmMtbWlhbS1saXN0LXNjYW4nKSkge1xuICAgICAgY29uc3QgbmdFbGVtZW50ID0gY3JlYXRlQ3VzdG9tRWxlbWVudChMaXN0U2NhbkNvbXBvbmVudCwgeyBpbmplY3RvciB9KTtcbiAgICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnd2ViYy1taWFtLWxpc3Qtc2NhbicsIG5nRWxlbWVudCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,104 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { GroceriesListsService } from '../../../_services';
3
+ import { Icon } from '../../../_types/icon.enum';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../_services";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "../../../_components/icon/icon.component";
8
+ import * as i4 from "../../loader/loader.component";
9
+ function ListScanOverlayButtonComponent_ng_miam_icon_3_Template(rf, ctx) { if (rf & 1) {
10
+ i0.ɵɵelement(0, "ng-miam-icon", 9);
11
+ } if (rf & 2) {
12
+ const ctx_r0 = i0.ɵɵnextContext();
13
+ i0.ɵɵproperty("iconName", ctx_r0.icon.ListScanner);
14
+ } }
15
+ const _c0 = function (a0) { return { reduced: a0 }; };
16
+ function ListScanOverlayButtonComponent_div_4_Template(rf, ctx) { if (rf & 1) {
17
+ i0.ɵɵelementStart(0, "div", 10);
18
+ i0.ɵɵtext(1, "Scanner ma liste de courses");
19
+ i0.ɵɵelementEnd();
20
+ } if (rf & 2) {
21
+ const ctx_r1 = i0.ɵɵnextContext();
22
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(1, _c0, ctx_r1.reduced == "true"));
23
+ } }
24
+ function ListScanOverlayButtonComponent_ng_miam_loader_5_Template(rf, ctx) { if (rf & 1) {
25
+ i0.ɵɵelement(0, "ng-miam-loader");
26
+ } }
27
+ const _c1 = function (a0) { return { overlay: a0 }; };
28
+ export class ListScanOverlayButtonComponent {
29
+ constructor(cdr, listsService) {
30
+ this.cdr = cdr;
31
+ this.listsService = listsService;
32
+ this.entriesAdded = new EventEmitter();
33
+ this.icon = Icon;
34
+ this.reduced = localStorage.getItem('_miam/listScanner/button-reduced') || 'false';
35
+ this.loading = false;
36
+ }
37
+ toggleReduce(value) {
38
+ this.reduced = value;
39
+ localStorage.setItem('_miam/listScanner/button-reduced', this.reduced);
40
+ this.cdr.detectChanges();
41
+ }
42
+ // Pushes a picture file and refreshes list
43
+ // Finally, triggers entries added event, returning all entries not related to any recipe
44
+ sendFile(event) {
45
+ const file = event.target.files.item(0);
46
+ if (!file) {
47
+ return;
48
+ }
49
+ this.loading = true;
50
+ this.cdr.detectChanges();
51
+ this.listsService.addEntriesFromPicture(file, ['groceries-entries']).subscribe(list => {
52
+ const addedEntries = list.entries.data.filter(entry => !entry.recipesIds || entry.recipesIds.length === 0);
53
+ this.loading = false;
54
+ this.entriesAdded.emit(addedEntries);
55
+ });
56
+ }
57
+ }
58
+ ListScanOverlayButtonComponent.ɵfac = function ListScanOverlayButtonComponent_Factory(t) { return new (t || ListScanOverlayButtonComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.GroceriesListsService)); };
59
+ ListScanOverlayButtonComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ListScanOverlayButtonComponent, selectors: [["ng-miam-list-scan-overlay-button"]], inputs: { overlay: "overlay" }, outputs: { entriesAdded: "entriesAdded" }, decls: 9, vars: 10, consts: [[1, "miam-list-scan__overlay-button", 3, "ngClass"], ["type", "file", "name", "file", "id", "file", "accept", "image/*", "capture", "environment", 1, "inputfile", 3, "disabled", "change"], ["for", "file", 1, "m-button", "m-button-primary", "miam-list-scan__overlay-button__label", 3, "click"], ["width", "24", 3, "iconName", 4, "ngIf"], ["class", "button-label", 3, "ngClass", 4, "ngIf"], [4, "ngIf"], [1, "miam-list-scan__overlay-button__reduce", 3, "ngClass", "click"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg"], ["d", "M9.91957 12L5.95977 8.0402L7.93967 6.0603L11.8995 10.0201L15.8593 6.0603L17.8392 8.0402L13.8794 12L17.8392 15.9598L15.8593 17.9397L11.8995 13.9799L7.93967 17.9397L5.95977 15.9598L9.91957 12Z", "fill", "#676767"], ["width", "24", 3, "iconName"], [1, "button-label", 3, "ngClass"]], template: function ListScanOverlayButtonComponent_Template(rf, ctx) { if (rf & 1) {
60
+ i0.ɵɵelementStart(0, "div", 0);
61
+ i0.ɵɵelementStart(1, "input", 1);
62
+ i0.ɵɵlistener("change", function ListScanOverlayButtonComponent_Template_input_change_1_listener($event) { return ctx.sendFile($event); });
63
+ i0.ɵɵelementEnd();
64
+ i0.ɵɵelementStart(2, "label", 2);
65
+ i0.ɵɵlistener("click", function ListScanOverlayButtonComponent_Template_label_click_2_listener() { return ctx.toggleReduce("false"); });
66
+ i0.ɵɵtemplate(3, ListScanOverlayButtonComponent_ng_miam_icon_3_Template, 1, 1, "ng-miam-icon", 3);
67
+ i0.ɵɵtemplate(4, ListScanOverlayButtonComponent_div_4_Template, 2, 3, "div", 4);
68
+ i0.ɵɵtemplate(5, ListScanOverlayButtonComponent_ng_miam_loader_5_Template, 1, 0, "ng-miam-loader", 5);
69
+ i0.ɵɵelementEnd();
70
+ i0.ɵɵelementStart(6, "div", 6);
71
+ i0.ɵɵlistener("click", function ListScanOverlayButtonComponent_Template_div_click_6_listener() { return ctx.toggleReduce("true"); });
72
+ i0.ɵɵnamespaceSVG();
73
+ i0.ɵɵelementStart(7, "svg", 7);
74
+ i0.ɵɵelement(8, "path", 8);
75
+ i0.ɵɵelementEnd();
76
+ i0.ɵɵelementEnd();
77
+ i0.ɵɵelementEnd();
78
+ } if (rf & 2) {
79
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c1, ctx.overlay));
80
+ i0.ɵɵadvance(1);
81
+ i0.ɵɵproperty("disabled", ctx.loading);
82
+ i0.ɵɵadvance(2);
83
+ i0.ɵɵproperty("ngIf", !ctx.loading);
84
+ i0.ɵɵadvance(1);
85
+ i0.ɵɵproperty("ngIf", !ctx.loading);
86
+ i0.ɵɵadvance(1);
87
+ i0.ɵɵproperty("ngIf", ctx.loading);
88
+ i0.ɵɵadvance(1);
89
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0, ctx.reduced == "true"));
90
+ } }, directives: [i2.NgClass, i2.NgIf, i3.IconComponent, i4.LoaderComponent], styles: [".miam-list-scan__overlay-button[_ngcontent-%COMP%]{display:inline-block;position:relative}.miam-list-scan__overlay-button.overlay[_ngcontent-%COMP%]{bottom:20px;position:fixed;right:20px}.miam-list-scan__overlay-button[_ngcontent-%COMP%] .inputfile[_ngcontent-%COMP%]{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.miam-list-scan__overlay-button[_ngcontent-%COMP%] .miam-list-scan__overlay-button__label[_ngcontent-%COMP%]{max-height:50px;min-width:0}.miam-list-scan__overlay-button[_ngcontent-%COMP%] .miam-list-scan__overlay-button__label[_ngcontent-%COMP%] ng-miam-icon[_ngcontent-%COMP%]{margin:0}.miam-list-scan__overlay-button[_ngcontent-%COMP%] .miam-list-scan__overlay-button__label[_ngcontent-%COMP%] .button-label[_ngcontent-%COMP%]{margin-left:10px}.miam-list-scan__overlay-button[_ngcontent-%COMP%] .miam-list-scan__overlay-button__label[_ngcontent-%COMP%] .button-label.reduced[_ngcontent-%COMP%]{display:none}.miam-list-scan__overlay-button[_ngcontent-%COMP%] .miam-list-scan__overlay-button__reduce[_ngcontent-%COMP%]{align-items:center;background-color:#fff;border-radius:12px;box-shadow:0 2px 5px rgba(0,0,0,.25);cursor:pointer;display:flex;font-size:16px;font-weight:700;height:24px;justify-content:center;position:absolute;right:-8px;top:-9px;width:24px}.miam-list-scan__overlay-button[_ngcontent-%COMP%] .miam-list-scan__overlay-button__reduce.reduced[_ngcontent-%COMP%]{display:none}"], changeDetection: 0 });
91
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ListScanOverlayButtonComponent, [{
92
+ type: Component,
93
+ args: [{
94
+ selector: 'ng-miam-list-scan-overlay-button',
95
+ templateUrl: './overlay-button.component.html',
96
+ styleUrls: ['./overlay-button.component.scss'],
97
+ changeDetection: ChangeDetectionStrategy.OnPush
98
+ }]
99
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.GroceriesListsService }]; }, { overlay: [{
100
+ type: Input
101
+ }], entriesAdded: [{
102
+ type: Output
103
+ }] }); })();
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvbGlzdC1zY2FuL292ZXJsYXktYnV0dG9uL292ZXJsYXktYnV0dG9uLmNvbXBvbmVudC50cyIsImxpYi9fd2ViLWNvbXBvbmVudHMvbGlzdC1zY2FuL292ZXJsYXktYnV0dG9uL292ZXJsYXktYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0lDQzdDLGtDQUF1Rjs7O0lBQXhELGtEQUE2Qjs7OztJQUM1RCwrQkFBc0Y7SUFBQSwyQ0FBMkI7SUFBQSxpQkFBTTs7O0lBQTVFLDhFQUEwQzs7O0lBRXJGLGlDQUFpRDs7O0FESXJELE1BQU0sT0FBTyw4QkFBOEI7SUFPekMsWUFDVSxHQUFzQixFQUN0QixZQUFtQztRQURuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUFQbkMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUM5RCxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osWUFBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsa0NBQWtDLENBQUMsSUFBSSxPQUFPLENBQUM7UUFDOUUsWUFBTyxHQUFHLEtBQUssQ0FBQztJQUtiLENBQUM7SUFFSixZQUFZLENBQUMsS0FBSztRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixZQUFZLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MseUZBQXlGO0lBQ3pGLFFBQVEsQ0FBQyxLQUFLO1FBQ1osTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQzVFLElBQUksQ0FBQyxFQUFFO1lBQ0wsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzNHLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7NEdBbENVLDhCQUE4QjttRUFBOUIsOEJBQThCO1FDWDNDLDhCQUNFO1FBQUEsZ0NBRUE7UUFGa0csa0hBQVUsb0JBQWdCLElBQUM7UUFBN0gsaUJBRUE7UUFBQSxnQ0FDRTtRQURnQiwwR0FBUyxpQkFBYSxPQUFPLENBQUMsSUFBQztRQUMvQyxpR0FBd0U7UUFDeEUsK0VBQXNGO1FBRXRGLHFHQUFnQztRQUNsQyxpQkFBUTtRQUVSLDhCQUNFO1FBRGtELHdHQUFTLGlCQUFhLE1BQU0sQ0FBQyxJQUFDO1FBQ2hGLG1CQUNFO1FBREYsOEJBQ0U7UUFBQSwwQkFDRjtRQUFBLGlCQUFNO1FBQ1IsaUJBQU07UUFDUixpQkFBTTs7UUFmc0MsaUVBQWdDO1FBQ29ELGVBQW9CO1FBQXBCLHNDQUFvQjtRQUdsSSxlQUFnQjtRQUFoQixtQ0FBZ0I7UUFDekIsZUFBZ0I7UUFBaEIsbUNBQWdCO1FBRUwsZUFBZTtRQUFmLGtDQUFlO1FBR2tELGVBQTBDO1FBQTFDLDJFQUEwQzs7a0REQ2xILDhCQUE4QjtjQU4xQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtDQUFrQztnQkFDNUMsV0FBVyxFQUFFLGlDQUFpQztnQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7Z0JBQzlDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEO3dHQUVVLE9BQU87a0JBQWYsS0FBSztZQUNJLFlBQVk7a0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHcm9jZXJpZXNFbnRyeSB9IGZyb20gJy4uLy4uLy4uL19tb2RlbHMvZ3JvY2VyaWVzLWVudHJ5JztcbmltcG9ydCB7IEdyb2Nlcmllc0xpc3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tbGlzdC1zY2FuLW92ZXJsYXktYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL292ZXJsYXktYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb3ZlcmxheS1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTGlzdFNjYW5PdmVybGF5QnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgb3ZlcmxheTogYm9vbGVhbjtcbiAgQE91dHB1dCgpIGVudHJpZXNBZGRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8R3JvY2VyaWVzRW50cnlbXT4oKTtcbiAgaWNvbiA9IEljb247XG4gIHJlZHVjZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnX21pYW0vbGlzdFNjYW5uZXIvYnV0dG9uLXJlZHVjZWQnKSB8fCAnZmFsc2UnO1xuICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgbGlzdHNTZXJ2aWNlOiBHcm9jZXJpZXNMaXN0c1NlcnZpY2VcbiAgKSB7fVxuXG4gIHRvZ2dsZVJlZHVjZSh2YWx1ZSkge1xuICAgIHRoaXMucmVkdWNlZCA9IHZhbHVlO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdfbWlhbS9saXN0U2Nhbm5lci9idXR0b24tcmVkdWNlZCcsIHRoaXMucmVkdWNlZCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gUHVzaGVzIGEgcGljdHVyZSBmaWxlIGFuZCByZWZyZXNoZXMgbGlzdFxuICAvLyBGaW5hbGx5LCB0cmlnZ2VycyBlbnRyaWVzIGFkZGVkIGV2ZW50LCByZXR1cm5pbmcgYWxsIGVudHJpZXMgbm90IHJlbGF0ZWQgdG8gYW55IHJlY2lwZVxuICBzZW5kRmlsZShldmVudCkge1xuICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXMuaXRlbSgwKTtcbiAgICBpZiAoIWZpbGUpIHsgcmV0dXJuOyB9XG5cbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgIHRoaXMubGlzdHNTZXJ2aWNlLmFkZEVudHJpZXNGcm9tUGljdHVyZShmaWxlLCBbJ2dyb2Nlcmllcy1lbnRyaWVzJ10pLnN1YnNjcmliZShcbiAgICAgIGxpc3QgPT4ge1xuICAgICAgICBjb25zdCBhZGRlZEVudHJpZXMgPSBsaXN0LmVudHJpZXMuZGF0YS5maWx0ZXIoZW50cnkgPT4gIWVudHJ5LnJlY2lwZXNJZHMgfHwgZW50cnkucmVjaXBlc0lkcy5sZW5ndGggPT09IDApO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lbnRyaWVzQWRkZWQuZW1pdChhZGRlZEVudHJpZXMpO1xuICAgICAgfVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaWFtLWxpc3Qtc2Nhbl9fb3ZlcmxheS1idXR0b25cIiBbbmdDbGFzc109XCJ7IG92ZXJsYXk6IG92ZXJsYXkgfVwiPlxuICA8aW5wdXQgdHlwZT1cImZpbGVcIiBuYW1lPVwiZmlsZVwiIGlkPVwiZmlsZVwiIGNsYXNzPVwiaW5wdXRmaWxlXCIgYWNjZXB0PVwiaW1hZ2UvKlwiIGNhcHR1cmU9XCJlbnZpcm9ubWVudFwiIChjaGFuZ2UpPVwic2VuZEZpbGUoJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgLz5cblxuICA8bGFiZWwgZm9yPVwiZmlsZVwiIChjbGljayk9XCJ0b2dnbGVSZWR1Y2UoJ2ZhbHNlJylcIiBjbGFzcz1cIm0tYnV0dG9uIG0tYnV0dG9uLXByaW1hcnkgbWlhbS1saXN0LXNjYW5fX292ZXJsYXktYnV0dG9uX19sYWJlbFwiPlxuICAgIDxuZy1taWFtLWljb24gKm5nSWY9XCIhbG9hZGluZ1wiIFtpY29uTmFtZV09XCJpY29uLkxpc3RTY2FubmVyXCIgd2lkdGg9XCIyNFwiPjwvbmctbWlhbS1pY29uPlxuICAgIDxkaXYgKm5nSWY9XCIhbG9hZGluZ1wiIGNsYXNzPVwiYnV0dG9uLWxhYmVsXCIgW25nQ2xhc3NdPVwieyByZWR1Y2VkOiByZWR1Y2VkID09ICd0cnVlJyB9XCI+U2Nhbm5lciBtYSBsaXN0ZSBkZSBjb3Vyc2VzPC9kaXY+XG5cbiAgICA8bmctbWlhbS1sb2FkZXIgKm5nSWY9XCJsb2FkaW5nXCI+PC9uZy1taWFtLWxvYWRlcj5cbiAgPC9sYWJlbD5cblxuICA8ZGl2IGNsYXNzPVwibWlhbS1saXN0LXNjYW5fX292ZXJsYXktYnV0dG9uX19yZWR1Y2VcIiAoY2xpY2spPVwidG9nZ2xlUmVkdWNlKCd0cnVlJylcIiBbbmdDbGFzc109XCJ7IHJlZHVjZWQ6IHJlZHVjZWQgPT0gJ3RydWUnIH1cIj5cbiAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNOS45MTk1NyAxMkw1Ljk1OTc3IDguMDQwMkw3LjkzOTY3IDYuMDYwM0wxMS44OTk1IDEwLjAyMDFMMTUuODU5MyA2LjA2MDNMMTcuODM5MiA4LjA0MDJMMTMuODc5NCAxMkwxNy44MzkyIDE1Ljk1OThMMTUuODU5MyAxNy45Mzk3TDExLjg5OTUgMTMuOTc5OUw3LjkzOTY3IDE3LjkzOTdMNS45NTk3NyAxNS45NTk4TDkuOTE5NTcgMTJaXCIgZmlsbD1cIiM2NzY3NjdcIi8+XG4gICAgPC9zdmc+ICAgICAgXG4gIDwvZGl2PlxuPC9kaXY+Il19