ng-miam 6.4.13 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/ng-miam.umd.js +8539 -10855
- package/bundles/ng-miam.umd.js.map +1 -1
- package/bundles/ng-miam.umd.min.js +2 -2
- package/bundles/ng-miam.umd.min.js.map +1 -1
- package/esm2015/lib/_components/abstracts/event-tracer.component.js +3 -2
- package/esm2015/lib/_components/accordion/accordion.component.js +75 -0
- package/esm2015/lib/_components/components.module.js +27 -21
- package/esm2015/lib/_components/counter-input/counter-input.component.js +86 -76
- package/esm2015/lib/_components/icon/icon.component.js +1 -1
- package/esm2015/lib/_components/index.js +5 -5
- package/esm2015/lib/_components/like-button/like-button.component.js +1 -1
- package/esm2015/lib/_components/list-input/list-input.component.js +5 -5
- package/esm2015/lib/_components/loader/loader.component.js +1 -1
- package/esm2015/lib/_components/meals-planner-link/meals-planner-link.component.js +3 -3
- package/esm2015/lib/_components/modal/modal.component.js +155 -137
- package/esm2015/lib/_components/product-card/product-card.component.js +333 -0
- package/esm2015/lib/_components/products-picker/products-picker.component.js +155 -0
- package/esm2015/lib/_components/progress-tracker/progress-tracker.component.js +1 -1
- package/esm2015/lib/_components/recipe-filters/recipe-filters.component.js +166 -217
- package/esm2015/lib/_components/recipe-pricing/recipe-pricing.component.js +55 -35
- package/esm2015/lib/_components/slider-tabs/slider-tabs.component.js +84 -0
- package/esm2015/lib/_components/sponsor-blocks/sponsor-image-and-text-block/sponsor-image-and-text-block.component.js +1 -1
- package/esm2015/lib/_components/sponsor-blocks/sponsor-text-and-image-block/sponsor-text-and-image-block.component.js +1 -1
- package/esm2015/lib/_components/tabs/tabs.component.js +48 -88
- package/esm2015/lib/_components/toaster/toaster.component.js +48 -84
- package/esm2015/lib/_components/tooltipable-content/tooltipable-content.component.js +1 -1
- package/esm2015/lib/_models/basket-entry.js +33 -49
- package/esm2015/lib/_models/basket-preview-line.js +5 -5
- package/esm2015/lib/_models/basket.js +15 -12
- package/esm2015/lib/_models/item.js +2 -2
- package/esm2015/lib/_models/recipe.js +2 -15
- package/esm2015/lib/_models/user.js +1 -1
- package/esm2015/lib/_services/analytics.service.js +24 -5
- package/esm2015/lib/_services/baskets-synchronizing/baskets-comparator.service.js +1 -10
- package/esm2015/lib/_services/baskets-synchronizing/baskets-synchronizer.service.js +15 -15
- package/esm2015/lib/_services/baskets.service.js +478 -60
- package/esm2015/lib/_services/context.service.js +22 -35
- package/esm2015/lib/_services/index.js +3 -5
- package/esm2015/lib/_services/interceptor.service.js +2 -2
- package/esm2015/lib/_services/items.service.js +27 -4
- package/esm2015/lib/_services/recipe-details.service.js +198 -0
- package/esm2015/lib/_services/recipe-likes.service.js +1 -1
- package/esm2015/lib/_services/recipes.service.js +24 -53
- package/esm2015/lib/_services/scrolling.service.js +17 -0
- package/esm2015/lib/_services/toaster.service.js +4 -5
- package/esm2015/lib/_services/user.service.js +2 -2
- package/esm2015/lib/_types/basket-action-type.enum.js +11 -0
- package/esm2015/lib/_types/basket-action.js +2 -0
- package/esm2015/lib/_types/basket-stats.js +2 -0
- package/esm2015/lib/_types/builded/miam-interface.js +1 -1
- package/esm2015/lib/_types/event-trace.js +5 -0
- package/esm2015/lib/_types/items-comparator.js +1 -10
- package/esm2015/lib/_types/recipe-filters.js +1 -1
- package/esm2015/lib/_types/toaster.js +1 -1
- package/esm2015/lib/_utils/directives/index.js +2 -1
- package/esm2015/lib/_utils/directives/reach-top.directive.js +33 -0
- package/esm2015/lib/_utils/pipes/readable-float-number/readable-float-number.pipe.js +8 -2
- package/esm2015/lib/_utils/utils.module.js +12 -8
- package/esm2015/lib/_web-components/basket-preview/basket-preview-block/basket-preview-block.component.js +140 -118
- package/esm2015/lib/_web-components/basket-preview/basket-preview-disabled/basket-preview-disabled.component.js +2 -2
- package/esm2015/lib/_web-components/basket-preview/basket-preview-line/basket-preview-line.component.js +125 -444
- package/esm2015/lib/_web-components/basket-preview/replace-item/replace-item.component.js +211 -108
- package/esm2015/lib/_web-components/index.js +1 -4
- package/esm2015/lib/_web-components/list-scan/basket-preview/basket-preview.component.js +11 -14
- package/esm2015/lib/_web-components/list-scan/files-inputs/files-inputs.component.js +13 -13
- package/esm2015/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.js +6 -6
- package/esm2015/lib/_web-components/list-scan/list-scan.component.js +10 -10
- package/esm2015/lib/_web-components/list-scan/overlay-button/overlay-button.component.js +23 -11
- package/esm2015/lib/_web-components/meals-planner/meals-planner-basket-confirmation/meals-planner-basket-confirmation.component.js +1 -1
- package/esm2015/lib/_web-components/meals-planner/meals-planner-catalog/meals-planner-catalog.component.js +1 -1
- package/esm2015/lib/_web-components/meals-planner/meals-planner-form/meals-planner-form.component.js +7 -7
- package/esm2015/lib/_web-components/meals-planner/meals-planner-result/meals-planner-result.component.js +5 -5
- package/esm2015/lib/_web-components/meals-planner/meals-planner.component.js +16 -20
- package/esm2015/lib/_web-components/planner-side-menu/planner-side-menu.component.js +4 -53
- package/esm2015/lib/_web-components/recipe-cards/add-recipe-card/add-recipe-card.component.js +1 -1
- package/esm2015/lib/_web-components/recipe-cards/index.js +1 -3
- package/esm2015/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.js +326 -404
- package/esm2015/lib/_web-components/recipe-cards/recipe-card-cta/recipe-card-cta.component.js +50 -146
- package/esm2015/lib/_web-components/recipe-cards/recipe-cards.module.js +3 -15
- package/esm2015/lib/_web-components/recipe-catalog/catalog-article-card/catalog-article-card.component.js +1 -1
- package/esm2015/lib/_web-components/recipe-catalog/catalog-category/catalog-category.component.js +35 -29
- package/esm2015/lib/_web-components/recipe-catalog/catalog-header/catalog-header.component.js +1 -1
- package/esm2015/lib/_web-components/recipe-catalog/catalog-list/catalog-list.component.js +27 -31
- package/esm2015/lib/_web-components/recipe-catalog/recipe-catalog.component.js +98 -100
- package/esm2015/lib/_web-components/recipe-creation/recipe-form/recipe-form.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-creation/recipe-stepper/recipe-stepper.component.js +7 -7
- package/esm2015/lib/_web-components/recipe-creation/tags-creator/tags-creator.component.js +4 -4
- package/esm2015/lib/_web-components/recipe-creation/tags-selector/tags-selector.component.js +8 -8
- package/esm2015/lib/_web-components/recipe-details/recipe-addon/recipe-addon.component.js +7 -3
- package/esm2015/lib/_web-components/recipe-details/recipe-details-infos/recipe-details-infos.component.js +57 -358
- package/esm2015/lib/_web-components/recipe-details/recipe-details-ingredients/recipe-details-ingredients.component.js +59 -122
- package/esm2015/lib/_web-components/recipe-details/recipe-details-steps/recipe-details-steps.component.js +51 -72
- package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +313 -363
- package/esm2015/lib/_web-components/recipe-details/recipe-details.module.js +8 -4
- package/esm2015/lib/_web-components/recipe-details/sponsor-storytelling/sponsor-storytelling.component.js +1 -1
- package/esm2015/lib/_web-components/recipe-helper/recipe-helper.component.js +89 -113
- package/esm2015/lib/_web-components/recipe-modal/recipe-modal.component.js +78 -69
- package/esm2015/lib/_web-components/recipe-tags/recipe-tags.component.js +5 -5
- package/esm2015/lib/_web-components/toaster-stack/toaster-stack.component.js +8 -4
- package/esm2015/lib/_web-components/web-components.module.js +3 -19
- package/esm2015/lib/ng-miam.module.js +5 -7
- package/fesm2015/ng-miam.js +5165 -6973
- package/fesm2015/ng-miam.js.map +1 -1
- package/lib/_components/abstracts/event-tracer.component.d.ts +2 -1
- package/lib/_components/accordion/accordion.component.d.ts +23 -0
- package/lib/_components/components.module.d.ts +38 -36
- package/lib/_components/counter-input/counter-input.component.d.ts +12 -14
- package/lib/_components/index.d.ts +4 -4
- package/lib/_components/modal/modal.component.d.ts +18 -18
- package/lib/_components/product-card/product-card.component.d.ts +40 -0
- package/lib/_components/products-picker/products-picker.component.d.ts +17 -0
- package/lib/_components/recipe-pricing/recipe-pricing.component.d.ts +12 -8
- package/lib/_components/slider-tabs/slider-tabs.component.d.ts +16 -0
- package/lib/_components/tabs/tabs.component.d.ts +11 -11
- package/lib/_components/toaster/toaster.component.d.ts +4 -2
- package/lib/_models/basket-entry.d.ts +16 -20
- package/lib/_models/basket-preview-line.d.ts +1 -0
- package/lib/_models/basket.d.ts +12 -5
- package/lib/_models/item.d.ts +1 -1
- package/lib/_models/recipe.d.ts +0 -5
- package/lib/_models/user.d.ts +0 -1
- package/lib/_services/analytics.service.d.ts +8 -22
- package/lib/_services/baskets-synchronizing/baskets-comparator.service.d.ts +0 -5
- package/lib/_services/baskets-synchronizing/baskets-synchronizer.service.d.ts +3 -6
- package/lib/_services/baskets.service.d.ts +137 -18
- package/lib/_services/context.service.d.ts +2 -4
- package/lib/_services/index.d.ts +2 -4
- package/lib/_services/items.service.d.ts +9 -2
- package/lib/_services/recipe-details.service.d.ts +84 -0
- package/lib/_services/recipe-likes.service.d.ts +2 -1
- package/lib/_services/recipes.service.d.ts +10 -14
- package/lib/_services/scrolling.service.d.ts +8 -0
- package/lib/_services/toaster.service.d.ts +1 -1
- package/lib/_types/basket-action-type.enum.d.ts +9 -0
- package/lib/_types/basket-action.d.ts +14 -0
- package/lib/_types/basket-stats.d.ts +5 -0
- package/lib/_types/builded/miam-interface.d.ts +16 -25
- package/lib/_types/event-trace.d.ts +22 -0
- package/lib/_types/items-comparator.d.ts +0 -5
- package/lib/_types/recipe-filters.d.ts +0 -2
- package/lib/_types/toaster.d.ts +1 -1
- package/lib/_utils/directives/index.d.ts +1 -0
- package/lib/_utils/directives/reach-top.directive.d.ts +13 -0
- package/lib/_utils/pipes/readable-float-number/readable-float-number.pipe.d.ts +1 -1
- package/lib/_utils/utils.module.d.ts +2 -2
- package/lib/_web-components/basket-preview/basket-preview-block/basket-preview-block.component.d.ts +9 -8
- package/lib/_web-components/basket-preview/basket-preview-line/basket-preview-line.component.d.ts +11 -9
- package/lib/_web-components/basket-preview/replace-item/replace-item.component.d.ts +27 -20
- package/lib/_web-components/index.d.ts +0 -3
- package/lib/_web-components/list-scan/basket-preview/basket-preview.component.d.ts +1 -2
- package/lib/_web-components/list-scan/files-inputs/files-inputs.component.d.ts +6 -5
- package/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.d.ts +3 -3
- package/lib/_web-components/list-scan/list-scan.component.d.ts +3 -3
- package/lib/_web-components/list-scan/overlay-button/overlay-button.component.d.ts +8 -6
- package/lib/_web-components/meals-planner/meals-planner.component.d.ts +2 -3
- package/lib/_web-components/recipe-cards/index.d.ts +0 -2
- package/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.d.ts +58 -17
- package/lib/_web-components/recipe-cards/recipe-card-cta/recipe-card-cta.component.d.ts +5 -12
- package/lib/_web-components/recipe-cards/recipe-cards.module.d.ts +7 -9
- package/lib/_web-components/recipe-catalog/catalog-category/catalog-category.component.d.ts +8 -6
- package/lib/_web-components/recipe-catalog/catalog-list/catalog-list.component.d.ts +7 -4
- package/lib/_web-components/recipe-catalog/recipe-catalog.component.d.ts +2 -3
- package/lib/_web-components/recipe-details/recipe-addon/recipe-addon.component.d.ts +5 -2
- package/lib/_web-components/recipe-details/recipe-details-infos/recipe-details-infos.component.d.ts +6 -18
- package/lib/_web-components/recipe-details/recipe-details-ingredients/recipe-details-ingredients.component.d.ts +6 -13
- package/lib/_web-components/recipe-details/recipe-details-steps/recipe-details-steps.component.d.ts +2 -10
- package/lib/_web-components/recipe-details/recipe-details.component.d.ts +29 -36
- package/lib/_web-components/recipe-details/recipe-details.module.d.ts +2 -1
- package/lib/_web-components/recipe-helper/recipe-helper.component.d.ts +2 -6
- package/lib/_web-components/recipe-modal/recipe-modal.component.d.ts +11 -9
- package/lib/_web-components/toaster-stack/toaster-stack.component.d.ts +5 -2
- package/lib/_web-components/web-components.module.d.ts +23 -29
- package/miam-style.css +1 -1
- package/package.json +1 -1
- package/esm2015/lib/_components/abstracts/abstract-recipe-card.component.js +0 -130
- package/esm2015/lib/_components/skeleton/skeleton.component.js +0 -70
- package/esm2015/lib/_components/tabs/tab-body.component.js +0 -30
- package/esm2015/lib/_components/tabs/tab-item.component.js +0 -36
- package/esm2015/lib/_components/tabs/tab-label.component.js +0 -30
- package/esm2015/lib/_models/groceries-entry.js +0 -42
- package/esm2015/lib/_models/groceries-list.js +0 -36
- package/esm2015/lib/_services/counter.service.js +0 -20
- package/esm2015/lib/_services/groceries-entries.service.js +0 -21
- package/esm2015/lib/_services/groceries-lists.service.js +0 -240
- package/esm2015/lib/_services/recipe-events.service.js +0 -63
- package/esm2015/lib/_types/skeleton.enum.js +0 -7
- package/esm2015/lib/_web-components/drawer/drawer.component.js +0 -273
- package/esm2015/lib/_web-components/pos-card/pos-card.component.js +0 -207
- package/esm2015/lib/_web-components/pos-selection/pos-selection.component.js +0 -283
- package/esm2015/lib/_web-components/recipe-cards/catalog-recipe-card/catalog-recipe-card.component.js +0 -632
- package/esm2015/lib/_web-components/recipe-cards/suggestion-card/suggestion-card.component.js +0 -144
- package/lib/_components/abstracts/abstract-recipe-card.component.d.ts +0 -49
- package/lib/_components/skeleton/skeleton.component.d.ts +0 -11
- package/lib/_components/tabs/tab-body.component.d.ts +0 -8
- package/lib/_components/tabs/tab-item.component.d.ts +0 -11
- package/lib/_components/tabs/tab-label.component.d.ts +0 -8
- package/lib/_models/groceries-entry.d.ts +0 -20
- package/lib/_models/groceries-list.d.ts +0 -30
- package/lib/_services/counter.service.d.ts +0 -10
- package/lib/_services/groceries-entries.service.d.ts +0 -10
- package/lib/_services/groceries-lists.service.d.ts +0 -68
- package/lib/_services/recipe-events.service.d.ts +0 -23
- package/lib/_types/skeleton.enum.d.ts +0 -5
- package/lib/_web-components/drawer/drawer.component.d.ts +0 -37
- package/lib/_web-components/pos-card/pos-card.component.d.ts +0 -24
- package/lib/_web-components/pos-selection/pos-selection.component.d.ts +0 -38
- package/lib/_web-components/recipe-cards/catalog-recipe-card/catalog-recipe-card.component.d.ts +0 -49
- package/lib/_web-components/recipe-cards/suggestion-card/suggestion-card.component.d.ts +0 -42
|
@@ -1,311 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BasketPreviewLine } from '../../../_models/basket-preview-line';
|
|
3
|
-
import { BehaviorSubject, forkJoin } from 'rxjs';
|
|
4
|
-
import { GroceriesListsService } from '../../../_services/groceries-lists.service';
|
|
5
|
-
import { BasketsService, ContextService, PointOfSalesService, RecipesService, UserService, SuppliersService } from '../../../_services';
|
|
6
|
-
import { switchMap, take } from 'rxjs/operators';
|
|
7
|
-
import { AnalyticsService } from '../../../_services/analytics.service';
|
|
8
|
-
import { Icon } from '../../../_types/icon.enum';
|
|
9
|
-
import { stopEventPropagation } from '../../../_utils/event.utils';
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
10
2
|
import remove from 'lodash-es/remove';
|
|
3
|
+
import { BasketPreviewLine } from '../../../_models';
|
|
4
|
+
import { BehaviorSubject, combineLatest, forkJoin } from 'rxjs';
|
|
5
|
+
import { AnalyticsService, BasketsService, ContextService, PointOfSalesService, RecipesService, SuppliersService, UserService } from '../../../_services';
|
|
6
|
+
import { map, skipWhile, switchMap, take } from 'rxjs/operators';
|
|
7
|
+
import { Icon } from '../../../_types/icon.enum';
|
|
8
|
+
import { stopEventPropagation } from '../../../_utils';
|
|
11
9
|
import { EventTracerComponent } from '../../../_components/abstracts/event-tracer.component';
|
|
12
|
-
import { map, skipWhile } from 'rxjs/operators';
|
|
13
10
|
import * as i0 from "@angular/core";
|
|
14
11
|
import * as i1 from "../../../_services";
|
|
15
|
-
import * as i2 from "../../../
|
|
16
|
-
import * as i3 from "
|
|
17
|
-
import * as i4 from "
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
import * as i7 from "../../../_components/loader/loader.component";
|
|
21
|
-
import * as i8 from "../../../_components/recipe-pricing/recipe-pricing.component";
|
|
22
|
-
import * as i9 from "../basket-preview-disabled/basket-preview-disabled.component";
|
|
23
|
-
import * as i10 from "../../../_utils/pipes/capitalize-first-letter/capitalize-first-letter.pipe";
|
|
24
|
-
function BasketPreviewLineComponent_div_3_ng_miam_icon_1_Template(rf, ctx) { if (rf & 1) {
|
|
25
|
-
i0.ɵɵelement(0, "ng-miam-icon", 28);
|
|
26
|
-
} if (rf & 2) {
|
|
27
|
-
const ctx_r15 = i0.ɵɵnextContext(2);
|
|
28
|
-
i0.ɵɵproperty("iconName", ctx_r15.icon.Trash);
|
|
29
|
-
} }
|
|
30
|
-
function BasketPreviewLineComponent_div_3_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
31
|
-
i0.ɵɵelementStart(0, "div", 29);
|
|
32
|
-
i0.ɵɵelement(1, "ng-miam-loader");
|
|
33
|
-
i0.ɵɵelementEnd();
|
|
34
|
-
} }
|
|
35
|
-
function BasketPreviewLineComponent_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
36
|
-
const _r19 = i0.ɵɵgetCurrentView();
|
|
37
|
-
i0.ɵɵelementStart(0, "div", 25);
|
|
38
|
-
i0.ɵɵlistener("click", function BasketPreviewLineComponent_div_3_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(); return ctx_r18.removeLine($event); });
|
|
39
|
-
i0.ɵɵtemplate(1, BasketPreviewLineComponent_div_3_ng_miam_icon_1_Template, 1, 1, "ng-miam-icon", 26);
|
|
40
|
-
i0.ɵɵtemplate(2, BasketPreviewLineComponent_div_3_ng_template_2_Template, 2, 0, "ng-template", null, 27, i0.ɵɵtemplateRefExtractor);
|
|
41
|
-
i0.ɵɵelementEnd();
|
|
42
|
-
} if (rf & 2) {
|
|
43
|
-
const _r16 = i0.ɵɵreference(3);
|
|
44
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
45
|
-
i0.ɵɵadvance(1);
|
|
46
|
-
i0.ɵɵproperty("ngIf", !ctx_r0.removing)("ngIfElse", _r16);
|
|
47
|
-
} }
|
|
48
|
-
function BasketPreviewLineComponent_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
49
|
-
i0.ɵɵelementStart(0, "div", 30);
|
|
50
|
-
i0.ɵɵelementStart(1, "span");
|
|
51
|
-
i0.ɵɵi18n(2, 31);
|
|
52
|
-
i0.ɵɵelementEnd();
|
|
53
|
-
i0.ɵɵelementEnd();
|
|
54
|
-
} }
|
|
55
|
-
function BasketPreviewLineComponent_div_13_Template(rf, ctx) { if (rf & 1) {
|
|
56
|
-
i0.ɵɵelementStart(0, "div");
|
|
57
|
-
i0.ɵɵtext(1);
|
|
58
|
-
i0.ɵɵelementEnd();
|
|
59
|
-
} if (rf & 2) {
|
|
60
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
61
|
-
i0.ɵɵadvance(1);
|
|
62
|
-
i0.ɵɵtextInterpolate(ctx_r2.line.description[0]);
|
|
63
|
-
} }
|
|
64
|
-
function BasketPreviewLineComponent_div_14_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
65
|
-
i0.ɵɵelementStart(0, "span", 34);
|
|
66
|
-
i0.ɵɵtext(1);
|
|
67
|
-
i0.ɵɵelementEnd();
|
|
68
|
-
} if (rf & 2) {
|
|
69
|
-
const d_r21 = ctx.$implicit;
|
|
70
|
-
i0.ɵɵadvance(1);
|
|
71
|
-
i0.ɵɵtextInterpolate(d_r21);
|
|
72
|
-
} }
|
|
73
|
-
function BasketPreviewLineComponent_div_14_Template(rf, ctx) { if (rf & 1) {
|
|
74
|
-
i0.ɵɵelementStart(0, "div");
|
|
75
|
-
i0.ɵɵtemplate(1, BasketPreviewLineComponent_div_14_span_1_Template, 2, 1, "span", 32);
|
|
76
|
-
i0.ɵɵelementStart(2, "span");
|
|
77
|
-
i0.ɵɵtext(3);
|
|
78
|
-
i0.ɵɵpipe(4, "async");
|
|
79
|
-
i0.ɵɵelementEnd();
|
|
80
|
-
i0.ɵɵelementStart(5, "span");
|
|
81
|
-
i0.ɵɵtext(6, " /");
|
|
82
|
-
i0.ɵɵelementEnd();
|
|
83
|
-
i0.ɵɵelementStart(7, "span");
|
|
84
|
-
i0.ɵɵi18n(8, 33);
|
|
85
|
-
i0.ɵɵelementEnd();
|
|
86
|
-
i0.ɵɵelementEnd();
|
|
87
|
-
} if (rf & 2) {
|
|
88
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
|
89
|
-
i0.ɵɵadvance(1);
|
|
90
|
-
i0.ɵɵproperty("ngForOf", ctx_r3.line.description.slice(1, ctx_r3.line.description.length));
|
|
91
|
-
i0.ɵɵadvance(2);
|
|
92
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 2, ctx_r3.currency));
|
|
93
|
-
} }
|
|
94
|
-
function BasketPreviewLineComponent_div_16_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
95
|
-
i0.ɵɵelementStart(0, "span");
|
|
96
|
-
i0.ɵɵi18n(1, 36);
|
|
97
|
-
i0.ɵɵelementEnd();
|
|
98
|
-
} }
|
|
99
|
-
function BasketPreviewLineComponent_div_16_span_2_Template(rf, ctx) { if (rf & 1) {
|
|
100
|
-
i0.ɵɵelementStart(0, "span");
|
|
101
|
-
i0.ɵɵi18n(1, 37);
|
|
102
|
-
i0.ɵɵelementEnd();
|
|
103
|
-
} }
|
|
104
|
-
const _c8 = function (a0) { return { "expanded": a0 }; };
|
|
105
|
-
function BasketPreviewLineComponent_div_16_Template(rf, ctx) { if (rf & 1) {
|
|
106
|
-
i0.ɵɵelementStart(0, "div", 35);
|
|
107
|
-
i0.ɵɵtemplate(1, BasketPreviewLineComponent_div_16_span_1_Template, 2, 0, "span", 10);
|
|
108
|
-
i0.ɵɵtemplate(2, BasketPreviewLineComponent_div_16_span_2_Template, 2, 0, "span", 10);
|
|
109
|
-
i0.ɵɵelementEnd();
|
|
110
|
-
} if (rf & 2) {
|
|
111
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
|
112
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c8, ctx_r4.expanded));
|
|
113
|
-
i0.ɵɵadvance(1);
|
|
114
|
-
i0.ɵɵproperty("ngIf", ctx_r4.expanded);
|
|
115
|
-
i0.ɵɵadvance(1);
|
|
116
|
-
i0.ɵɵproperty("ngIf", !ctx_r4.expanded);
|
|
117
|
-
} }
|
|
118
|
-
function BasketPreviewLineComponent_div_17_Template(rf, ctx) { if (rf & 1) {
|
|
119
|
-
i0.ɵɵelementStart(0, "div", 38);
|
|
120
|
-
i0.ɵɵi18n(1, 39);
|
|
121
|
-
i0.ɵɵelementEnd();
|
|
122
|
-
} }
|
|
123
|
-
const _c13 = function (a0) { return { "disable": a0 }; };
|
|
124
|
-
function BasketPreviewLineComponent_div_18_Template(rf, ctx) { if (rf & 1) {
|
|
125
|
-
const _r25 = i0.ɵɵgetCurrentView();
|
|
126
|
-
i0.ɵɵelementStart(0, "div", 40);
|
|
127
|
-
i0.ɵɵlistener("click", function BasketPreviewLineComponent_div_18_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r25); const ctx_r24 = i0.ɵɵnextContext(); return ctx_r24.changeProduct(ctx_r24.line); });
|
|
128
|
-
i0.ɵɵelementStart(1, "a", 41);
|
|
129
|
-
i0.ɵɵi18n(2, 42);
|
|
130
|
-
i0.ɵɵelementEnd();
|
|
131
|
-
i0.ɵɵelementEnd();
|
|
132
|
-
} if (rf & 2) {
|
|
133
|
-
const ctx_r6 = i0.ɵɵnextContext();
|
|
134
|
-
i0.ɵɵadvance(1);
|
|
135
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(1, _c13, ctx_r6.disableItemSelector));
|
|
136
|
-
} }
|
|
137
|
-
function BasketPreviewLineComponent_div_19_span_2_Template(rf, ctx) { if (rf & 1) {
|
|
138
|
-
i0.ɵɵelementStart(0, "span");
|
|
139
|
-
i0.ɵɵtext(1);
|
|
140
|
-
i0.ɵɵelementEnd();
|
|
141
|
-
} if (rf & 2) {
|
|
142
|
-
const word_r27 = ctx.$implicit;
|
|
143
|
-
i0.ɵɵadvance(1);
|
|
144
|
-
i0.ɵɵtextInterpolate(word_r27);
|
|
145
|
-
} }
|
|
146
|
-
function BasketPreviewLineComponent_div_19_Template(rf, ctx) { if (rf & 1) {
|
|
147
|
-
i0.ɵɵelementStart(0, "div", 43);
|
|
148
|
-
i0.ɵɵelementStart(1, "div", 44);
|
|
149
|
-
i0.ɵɵtemplate(2, BasketPreviewLineComponent_div_19_span_2_Template, 2, 1, "span", 45);
|
|
150
|
-
i0.ɵɵelementEnd();
|
|
151
|
-
i0.ɵɵelementEnd();
|
|
152
|
-
} if (rf & 2) {
|
|
153
|
-
const ctx_r7 = i0.ɵɵnextContext();
|
|
154
|
-
i0.ɵɵadvance(2);
|
|
155
|
-
i0.ɵɵproperty("ngForOf", ctx_r7.line.inlineTag.split(" "));
|
|
156
|
-
} }
|
|
157
|
-
function BasketPreviewLineComponent_div_21_Template(rf, ctx) { if (rf & 1) {
|
|
158
|
-
i0.ɵɵelementStart(0, "div", 46);
|
|
159
|
-
i0.ɵɵelementStart(1, "span");
|
|
160
|
-
i0.ɵɵtext(2);
|
|
161
|
-
i0.ɵɵelementEnd();
|
|
162
|
-
i0.ɵɵelementStart(3, "span");
|
|
163
|
-
i0.ɵɵtext(4);
|
|
164
|
-
i0.ɵɵelementEnd();
|
|
165
|
-
i0.ɵɵelementStart(5, "span");
|
|
166
|
-
i0.ɵɵtext(6);
|
|
167
|
-
i0.ɵɵpipe(7, "async");
|
|
168
|
-
i0.ɵɵelementEnd();
|
|
169
|
-
i0.ɵɵelementEnd();
|
|
170
|
-
} if (rf & 2) {
|
|
171
|
-
const ctx_r8 = i0.ɵɵnextContext();
|
|
172
|
-
i0.ɵɵadvance(2);
|
|
173
|
-
i0.ɵɵtextInterpolate1("", ctx_r8.priceIntegerPart(), ",");
|
|
174
|
-
i0.ɵɵadvance(2);
|
|
175
|
-
i0.ɵɵtextInterpolate(ctx_r8.priceDecimalPart());
|
|
176
|
-
i0.ɵɵadvance(2);
|
|
177
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(7, 3, ctx_r8.currency), "");
|
|
178
|
-
} }
|
|
179
|
-
const _c14 = function () { return ["title"]; };
|
|
180
|
-
const _c15 = function (a0) { return { recipes: a0 }; };
|
|
181
|
-
const _c16 = function (a0) { return { fields: a0 }; };
|
|
182
|
-
function BasketPreviewLineComponent_ng_template_22_Template(rf, ctx) { if (rf & 1) {
|
|
183
|
-
i0.ɵɵelement(0, "ng-miam-recipe-pricing", 47);
|
|
184
|
-
i0.ɵɵpipe(1, "async");
|
|
185
|
-
} if (rf & 2) {
|
|
186
|
-
const ctx_r10 = i0.ɵɵnextContext();
|
|
187
|
-
i0.ɵɵproperty("recipe", i0.ɵɵpipeBind1(1, 2, ctx_r10.recipesService.get(ctx_r10.line.id, i0.ɵɵpureFunction1(7, _c16, i0.ɵɵpureFunction1(5, _c15, i0.ɵɵpureFunction0(4, _c14))))))("serves", ctx_r10.line.count);
|
|
12
|
+
import * as i2 from "../../../_components/recipe-pricing/recipe-pricing.component";
|
|
13
|
+
import * as i3 from "@angular/common";
|
|
14
|
+
import * as i4 from "../../../_utils/pipes/capitalize-first-letter/capitalize-first-letter.pipe";
|
|
15
|
+
function BasketPreviewLineComponent_img_22_Template(rf, ctx) { if (rf & 1) {
|
|
16
|
+
i0.ɵɵelement(0, "img", 20);
|
|
188
17
|
} }
|
|
189
|
-
function
|
|
190
|
-
i0.ɵɵ
|
|
191
|
-
i0.ɵɵi18n(1, 49);
|
|
192
|
-
i0.ɵɵelementEnd();
|
|
18
|
+
function BasketPreviewLineComponent_ng_template_23_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
+
i0.ɵɵelement(0, "div", 21);
|
|
193
20
|
} }
|
|
194
|
-
function
|
|
195
|
-
i0.ɵɵelementStart(0, "span");
|
|
196
|
-
i0.ɵɵi18n(1, 51);
|
|
197
|
-
i0.ɵɵelementEnd();
|
|
198
|
-
} }
|
|
199
|
-
function BasketPreviewLineComponent_div_27_span_2_Template(rf, ctx) { if (rf & 1) {
|
|
200
|
-
i0.ɵɵelementStart(0, "span");
|
|
201
|
-
i0.ɵɵi18n(1, 52);
|
|
202
|
-
i0.ɵɵelementEnd();
|
|
203
|
-
} }
|
|
204
|
-
function BasketPreviewLineComponent_div_27_Template(rf, ctx) { if (rf & 1) {
|
|
205
|
-
i0.ɵɵelementStart(0, "div", 50);
|
|
206
|
-
i0.ɵɵtemplate(1, BasketPreviewLineComponent_div_27_span_1_Template, 2, 0, "span", 10);
|
|
207
|
-
i0.ɵɵtemplate(2, BasketPreviewLineComponent_div_27_span_2_Template, 2, 0, "span", 10);
|
|
208
|
-
i0.ɵɵelementEnd();
|
|
209
|
-
} if (rf & 2) {
|
|
210
|
-
const ctx_r12 = i0.ɵɵnextContext();
|
|
211
|
-
i0.ɵɵadvance(1);
|
|
212
|
-
i0.ɵɵproperty("ngIf", ctx_r12.line.count > 1);
|
|
213
|
-
i0.ɵɵadvance(1);
|
|
214
|
-
i0.ɵɵproperty("ngIf", !(ctx_r12.line.count > 1));
|
|
215
|
-
} }
|
|
216
|
-
function BasketPreviewLineComponent_div_28_Template(rf, ctx) { if (rf & 1) {
|
|
217
|
-
const _r31 = i0.ɵɵgetCurrentView();
|
|
218
|
-
i0.ɵɵelementStart(0, "div", 53);
|
|
219
|
-
i0.ɵɵelementStart(1, "button", 54);
|
|
220
|
-
i0.ɵɵlistener("click", function BasketPreviewLineComponent_div_28_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r30 = i0.ɵɵnextContext(); return ctx_r30.toggleRecipeDisplay($event, true); });
|
|
221
|
-
i0.ɵɵelement(2, "ng-miam-icon", 55);
|
|
222
|
-
i0.ɵɵelementEnd();
|
|
223
|
-
i0.ɵɵelementEnd();
|
|
224
|
-
} if (rf & 2) {
|
|
225
|
-
const ctx_r13 = i0.ɵɵnextContext();
|
|
226
|
-
i0.ɵɵadvance(2);
|
|
227
|
-
i0.ɵɵproperty("width", 24)("height", 24)("iconName", ctx_r13.icon.Cart);
|
|
228
|
-
} }
|
|
229
|
-
function BasketPreviewLineComponent_div_29_div_1_ng_miam_basket_preview_line_1_Template(rf, ctx) { if (rf & 1) {
|
|
230
|
-
const _r41 = i0.ɵɵgetCurrentView();
|
|
231
|
-
i0.ɵɵelementStart(0, "ng-miam-basket-preview-line", 63);
|
|
232
|
-
i0.ɵɵlistener("removed", function BasketPreviewLineComponent_div_29_div_1_ng_miam_basket_preview_line_1_Template_ng_miam_basket_preview_line_removed_0_listener($event) { i0.ɵɵrestoreView(_r41); const ctx_r40 = i0.ɵɵnextContext(3); return ctx_r40.deleteEntry($event.record); })("replaceItem", function BasketPreviewLineComponent_div_29_div_1_ng_miam_basket_preview_line_1_Template_ng_miam_basket_preview_line_replaceItem_0_listener() { i0.ɵɵrestoreView(_r41); const ctx_r42 = i0.ɵɵnextContext(3); return ctx_r42.replaceItem.emit(ctx_r42.line); });
|
|
233
|
-
i0.ɵɵelementEnd();
|
|
234
|
-
} if (rf & 2) {
|
|
235
|
-
const entryLine_r39 = ctx.$implicit;
|
|
236
|
-
const ctx_r35 = i0.ɵɵnextContext(3);
|
|
237
|
-
i0.ɵɵproperty("line", entryLine_r39)("sponsorised", ctx_r35.isEntrySponsorised[entryLine_r39.id])("displayItemsUnitaryPrice", ctx_r35.displayItemsUnitaryPrice)("originTrace", ctx_r35.eventTrace())("blockStates", ctx_r35.blockStates);
|
|
238
|
-
} }
|
|
239
|
-
function BasketPreviewLineComponent_div_29_div_1_ng_miam_basket_preview_disabled_3_Template(rf, ctx) { if (rf & 1) {
|
|
240
|
-
i0.ɵɵelement(0, "ng-miam-basket-preview-disabled", 64);
|
|
241
|
-
} if (rf & 2) {
|
|
242
|
-
const ctx_r36 = i0.ɵɵnextContext(3);
|
|
243
|
-
i0.ɵɵproperty("entries", ctx_r36.line.entries.notFound)("alwaysExpanded", ctx_r36.itemsAlwaysExpanded);
|
|
244
|
-
} }
|
|
245
|
-
function BasketPreviewLineComponent_div_29_div_1_ng_miam_basket_preview_disabled_4_Template(rf, ctx) { if (rf & 1) {
|
|
246
|
-
const _r44 = i0.ɵɵgetCurrentView();
|
|
247
|
-
i0.ɵɵelementStart(0, "ng-miam-basket-preview-disabled", 65);
|
|
248
|
-
i0.ɵɵlistener("entryAdded", function BasketPreviewLineComponent_div_29_div_1_ng_miam_basket_preview_disabled_4_Template_ng_miam_basket_preview_disabled_entryAdded_0_listener($event) { i0.ɵɵrestoreView(_r44); const ctx_r43 = i0.ɵɵnextContext(3); return ctx_r43.addEntry($event); });
|
|
249
|
-
i0.ɵɵelementEnd();
|
|
250
|
-
} if (rf & 2) {
|
|
251
|
-
const ctx_r37 = i0.ɵɵnextContext(3);
|
|
252
|
-
i0.ɵɵproperty("entries", ctx_r37.line.entries.oftenDeleted)("alwaysExpanded", ctx_r37.itemsAlwaysExpanded);
|
|
253
|
-
} }
|
|
254
|
-
function BasketPreviewLineComponent_div_29_div_1_ng_miam_basket_preview_disabled_5_Template(rf, ctx) { if (rf & 1) {
|
|
255
|
-
const _r46 = i0.ɵɵgetCurrentView();
|
|
256
|
-
i0.ɵɵelementStart(0, "ng-miam-basket-preview-disabled", 66);
|
|
257
|
-
i0.ɵɵlistener("entryAdded", function BasketPreviewLineComponent_div_29_div_1_ng_miam_basket_preview_disabled_5_Template_ng_miam_basket_preview_disabled_entryAdded_0_listener($event) { i0.ɵɵrestoreView(_r46); const ctx_r45 = i0.ɵɵnextContext(3); return ctx_r45.addEntry($event); });
|
|
258
|
-
i0.ɵɵelementEnd();
|
|
259
|
-
} if (rf & 2) {
|
|
260
|
-
const ctx_r38 = i0.ɵɵnextContext(3);
|
|
261
|
-
i0.ɵɵproperty("entries", ctx_r38.line.entries.removed)("alwaysExpanded", ctx_r38.itemsAlwaysExpanded)("reduced", true);
|
|
262
|
-
} }
|
|
263
|
-
function BasketPreviewLineComponent_div_29_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
264
|
-
i0.ɵɵelementStart(0, "div");
|
|
265
|
-
i0.ɵɵtemplate(1, BasketPreviewLineComponent_div_29_div_1_ng_miam_basket_preview_line_1_Template, 1, 5, "ng-miam-basket-preview-line", 59);
|
|
266
|
-
i0.ɵɵpipe(2, "async");
|
|
267
|
-
i0.ɵɵtemplate(3, BasketPreviewLineComponent_div_29_div_1_ng_miam_basket_preview_disabled_3_Template, 1, 2, "ng-miam-basket-preview-disabled", 60);
|
|
268
|
-
i0.ɵɵtemplate(4, BasketPreviewLineComponent_div_29_div_1_ng_miam_basket_preview_disabled_4_Template, 1, 2, "ng-miam-basket-preview-disabled", 61);
|
|
269
|
-
i0.ɵɵtemplate(5, BasketPreviewLineComponent_div_29_div_1_ng_miam_basket_preview_disabled_5_Template, 1, 3, "ng-miam-basket-preview-disabled", 62);
|
|
270
|
-
i0.ɵɵelementEnd();
|
|
271
|
-
} if (rf & 2) {
|
|
272
|
-
const ctx_r32 = i0.ɵɵnextContext(2);
|
|
273
|
-
i0.ɵɵadvance(1);
|
|
274
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 4, ctx_r32.entriesLines$));
|
|
275
|
-
i0.ɵɵadvance(2);
|
|
276
|
-
i0.ɵɵproperty("ngIf", ctx_r32.line.entries.notFound.length > 0);
|
|
277
|
-
i0.ɵɵadvance(1);
|
|
278
|
-
i0.ɵɵproperty("ngIf", ctx_r32.line.entries.oftenDeleted.length > 0);
|
|
279
|
-
i0.ɵɵadvance(1);
|
|
280
|
-
i0.ɵɵproperty("ngIf", ctx_r32.line.entries.removed.length > 0);
|
|
281
|
-
} }
|
|
282
|
-
function BasketPreviewLineComponent_div_29_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
283
|
-
i0.ɵɵelementStart(0, "div", 67);
|
|
284
|
-
i0.ɵɵelement(1, "ng-miam-loader");
|
|
285
|
-
i0.ɵɵelementStart(2, "div");
|
|
286
|
-
i0.ɵɵi18n(3, 68);
|
|
287
|
-
i0.ɵɵelementEnd();
|
|
288
|
-
i0.ɵɵelementEnd();
|
|
289
|
-
} }
|
|
290
|
-
function BasketPreviewLineComponent_div_29_Template(rf, ctx) { if (rf & 1) {
|
|
291
|
-
i0.ɵɵelementStart(0, "div", 56);
|
|
292
|
-
i0.ɵɵtemplate(1, BasketPreviewLineComponent_div_29_div_1_Template, 6, 6, "div", 57);
|
|
293
|
-
i0.ɵɵtemplate(2, BasketPreviewLineComponent_div_29_ng_template_2_Template, 4, 0, "ng-template", null, 58, i0.ɵɵtemplateRefExtractor);
|
|
294
|
-
i0.ɵɵelementEnd();
|
|
295
|
-
} if (rf & 2) {
|
|
296
|
-
const _r33 = i0.ɵɵreference(3);
|
|
297
|
-
const ctx_r14 = i0.ɵɵnextContext();
|
|
298
|
-
i0.ɵɵadvance(1);
|
|
299
|
-
i0.ɵɵproperty("ngIf", !ctx_r14.loading)("ngIfElse", _r33);
|
|
300
|
-
} }
|
|
301
|
-
const _c25 = function (a0, a1, a2) { return { clickable: a0, expanded: a1, elevate: a2 }; };
|
|
302
|
-
const _c26 = function (a0) { return { "with-inline-tag": a0 }; };
|
|
21
|
+
const _c4 = function (a0) { return { "disabled": a0 }; };
|
|
303
22
|
export class BasketPreviewLineComponent extends EventTracerComponent {
|
|
304
|
-
constructor(cdr, recipesService,
|
|
23
|
+
constructor(cdr, recipesService, basketsService, analyticsService, posService, userService, contextService, elementRef, supplierService) {
|
|
305
24
|
super(analyticsService);
|
|
306
25
|
this.cdr = cdr;
|
|
307
26
|
this.recipesService = recipesService;
|
|
308
|
-
this.listsService = listsService;
|
|
309
27
|
this.basketsService = basketsService;
|
|
310
28
|
this.analyticsService = analyticsService;
|
|
311
29
|
this.posService = posService;
|
|
@@ -326,6 +44,8 @@ export class BasketPreviewLineComponent extends EventTracerComponent {
|
|
|
326
44
|
this.expanded = false;
|
|
327
45
|
this.loading = true;
|
|
328
46
|
this.disableItemSelector = false;
|
|
47
|
+
this.disableCounter = false;
|
|
48
|
+
this.disableRemove = false;
|
|
329
49
|
this.selectItem = false;
|
|
330
50
|
this.icon = Icon;
|
|
331
51
|
this.removing = false;
|
|
@@ -335,6 +55,9 @@ export class BasketPreviewLineComponent extends EventTracerComponent {
|
|
|
335
55
|
}
|
|
336
56
|
// TODO: can we remove the condition on uniqueLine?
|
|
337
57
|
ngOnInit() {
|
|
58
|
+
this.initRemoveLoading();
|
|
59
|
+
this.initRecipeIsBeingModifiedCheck();
|
|
60
|
+
this.initBasketIsBeingUpdated();
|
|
338
61
|
if (this.uniqueLine) {
|
|
339
62
|
this.expanded = true;
|
|
340
63
|
this.buildEntriesLines();
|
|
@@ -343,11 +66,13 @@ export class BasketPreviewLineComponent extends EventTracerComponent {
|
|
|
343
66
|
ngOnDestroy() {
|
|
344
67
|
this.subscriptions.forEach((sub) => sub.unsubscribe());
|
|
345
68
|
}
|
|
346
|
-
currentPath() {
|
|
69
|
+
currentPath() {
|
|
70
|
+
return '';
|
|
71
|
+
}
|
|
347
72
|
currentProps() {
|
|
348
73
|
var _a, _b;
|
|
349
|
-
if ((_b = (_a = this.line) === null || _a === void 0 ? void 0 : _a.record) === null || _b === void 0 ? void 0 : _b.
|
|
350
|
-
return { entry_name: this.line.record.
|
|
74
|
+
if ((_b = (_a = this.line) === null || _a === void 0 ? void 0 : _a.record) === null || _b === void 0 ? void 0 : _b.name) {
|
|
75
|
+
return { entry_name: this.line.record.name };
|
|
351
76
|
}
|
|
352
77
|
return {};
|
|
353
78
|
}
|
|
@@ -369,7 +94,6 @@ export class BasketPreviewLineComponent extends EventTracerComponent {
|
|
|
369
94
|
return;
|
|
370
95
|
}
|
|
371
96
|
this.line.record.attributes.quantity = count;
|
|
372
|
-
this.line.record.updateTotalPrice();
|
|
373
97
|
this.sendEvent(this.analyticsService.EVENT_ENTRY_CHANGE_QUANTITY);
|
|
374
98
|
this.subscriptions.push(this.line.record.save().pipe(switchMap(() => this.basketsService.reloadBasket())).subscribe());
|
|
375
99
|
}
|
|
@@ -388,16 +112,15 @@ export class BasketPreviewLineComponent extends EventTracerComponent {
|
|
|
388
112
|
}
|
|
389
113
|
}
|
|
390
114
|
deleteEntry(entry) {
|
|
391
|
-
Object.assign(this.props(), { entry_name: entry.
|
|
115
|
+
Object.assign(this.props(), { entry_name: entry.name });
|
|
392
116
|
this.sendEvent(this.analyticsService.EVENT_ENTRY_DELETE);
|
|
393
117
|
// Remove entry from line entries array
|
|
394
118
|
// TODO: handle other than found
|
|
395
119
|
remove(this.line.entries.found, e => e.id === entry.id);
|
|
396
120
|
this.buildEntriesLines();
|
|
397
|
-
//
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
this.subscriptions.push(gEntry.save().pipe(switchMap(() => this.basketsService.reloadBasket())).subscribe());
|
|
121
|
+
// Update be status to "deleted" and reload basket
|
|
122
|
+
entry.status = 'deleted';
|
|
123
|
+
this.subscriptions.push(entry.save().pipe(switchMap(() => this.basketsService.reloadBasket())).subscribe());
|
|
401
124
|
}
|
|
402
125
|
changeProduct(line) {
|
|
403
126
|
var _a;
|
|
@@ -407,10 +130,10 @@ export class BasketPreviewLineComponent extends EventTracerComponent {
|
|
|
407
130
|
this.replaceItem.emit(line);
|
|
408
131
|
}
|
|
409
132
|
// TODO: removed - never called ?
|
|
410
|
-
productChosen(
|
|
133
|
+
productChosen(basketEntryId) {
|
|
411
134
|
var _a;
|
|
412
135
|
this.selectItem = false;
|
|
413
|
-
if (
|
|
136
|
+
if (basketEntryId) {
|
|
414
137
|
this.disableItemSelector = true;
|
|
415
138
|
}
|
|
416
139
|
(_a = this.blockStates) === null || _a === void 0 ? void 0 : _a.next({ currentOpenLine: null, overlayOpen: false, lineComponent: null });
|
|
@@ -424,21 +147,16 @@ export class BasketPreviewLineComponent extends EventTracerComponent {
|
|
|
424
147
|
...this.line.entries.oftenDeleted,
|
|
425
148
|
...this.line.entries.removed
|
|
426
149
|
];
|
|
427
|
-
entries.map((entry) => {
|
|
428
|
-
entry.setItemsSelection();
|
|
429
|
-
entry.updateTotalPrice();
|
|
430
|
-
});
|
|
431
150
|
this.entriesLines$.next(entries
|
|
432
151
|
.filter(entry => this.line.entries.found.map(e => e.id).includes(entry.id))
|
|
433
152
|
.map(entry => BasketPreviewLine.fromBasketEntry(entry)));
|
|
434
153
|
this.subscriptions.push(this.initSponsorisedEntries());
|
|
435
154
|
}
|
|
436
155
|
addEntry(entry) {
|
|
437
|
-
Object.assign(this.props(), { entry_name: entry.
|
|
156
|
+
Object.assign(this.props(), { entry_name: entry.name });
|
|
438
157
|
this.sendEvent(this.analyticsService.EVENT_ENTRY_ADD);
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
this.subscriptions.push(gEntry.save().pipe(switchMap(() => this.basketsService.reloadBasket())).subscribe());
|
|
158
|
+
entry.status = 'active';
|
|
159
|
+
this.subscriptions.push(entry.save().pipe(switchMap(() => this.basketsService.reloadBasket())).subscribe());
|
|
442
160
|
}
|
|
443
161
|
trackByItemId(index, line) {
|
|
444
162
|
return line ? line.record['selected-item-id'] + '-' + line.record.attributes.quantity : null;
|
|
@@ -448,7 +166,7 @@ export class BasketPreviewLineComponent extends EventTracerComponent {
|
|
|
448
166
|
return;
|
|
449
167
|
}
|
|
450
168
|
if (addRecipe) {
|
|
451
|
-
forkJoin([
|
|
169
|
+
this.subscriptions.push(forkJoin([
|
|
452
170
|
this.userService.isLogged$.asObservable().pipe(take(1)),
|
|
453
171
|
this.posService.posWasInitialized().pipe(take(1))
|
|
454
172
|
]).subscribe(res => {
|
|
@@ -456,7 +174,7 @@ export class BasketPreviewLineComponent extends EventTracerComponent {
|
|
|
456
174
|
if (isHookOk) {
|
|
457
175
|
this.addRecipeActionOK();
|
|
458
176
|
}
|
|
459
|
-
});
|
|
177
|
+
}));
|
|
460
178
|
}
|
|
461
179
|
else {
|
|
462
180
|
this.recipesService.display(this.line.id, { guests: this.line.count, helpButtonAllowed: false }, this.eventTrace());
|
|
@@ -465,12 +183,10 @@ export class BasketPreviewLineComponent extends EventTracerComponent {
|
|
|
465
183
|
}
|
|
466
184
|
addRecipeActionOK() {
|
|
467
185
|
const newProps = Object.assign(this.props(), { recipe_id: this.line.id });
|
|
468
|
-
this.
|
|
469
|
-
.subscribe());
|
|
186
|
+
this.basketsService.addRecipesToBasket([this.line.id], this.line.count, { originPath: this.path(), props: newProps });
|
|
470
187
|
this.recipesService.display(this.line.id, { guests: this.line.count, previewMode: true }, this.eventTrace());
|
|
471
188
|
}
|
|
472
189
|
removeLine(event) {
|
|
473
|
-
this.removing = true;
|
|
474
190
|
this.cdr.detectChanges();
|
|
475
191
|
stopEventPropagation(event);
|
|
476
192
|
this.removed.emit(this.line);
|
|
@@ -485,6 +201,40 @@ export class BasketPreviewLineComponent extends EventTracerComponent {
|
|
|
485
201
|
const values = (_a = this.priceToDisplay()) === null || _a === void 0 ? void 0 : _a.toString().split('.');
|
|
486
202
|
return (values === null || values === void 0 ? void 0 : values.length) === 2 ? values[1] : '00';
|
|
487
203
|
}
|
|
204
|
+
initRemoveLoading() {
|
|
205
|
+
this.subscriptions.push(this.basketsService.recipeWillBeRemoved(this.line.id).pipe(skipWhile(isRemoving => isRemoving === this.removing)).subscribe(isRemoving => {
|
|
206
|
+
this.removing = isRemoving;
|
|
207
|
+
this.cdr.detectChanges();
|
|
208
|
+
}));
|
|
209
|
+
}
|
|
210
|
+
initRecipeIsBeingModifiedCheck() {
|
|
211
|
+
let recipeIsUpdating = false;
|
|
212
|
+
if (this.line.isRecipe) {
|
|
213
|
+
this.subscriptions.push(combineLatest([this.basketsService.recipeIsBeingRemoved(this.line.id), this.basketsService.recipeIsBeingUpdated(this.line.id)])
|
|
214
|
+
.pipe(map(res => res[0] || res[1]), skipWhile(isUpdating => isUpdating !== recipeIsUpdating)).subscribe(isUpdating => {
|
|
215
|
+
recipeIsUpdating = isUpdating;
|
|
216
|
+
this.disableCounter = isUpdating;
|
|
217
|
+
this.disableRemove = isUpdating;
|
|
218
|
+
this.cdr.detectChanges();
|
|
219
|
+
}));
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
initBasketIsBeingUpdated() {
|
|
223
|
+
let basketIsUpdating = false;
|
|
224
|
+
this.subscriptions.push(combineLatest([
|
|
225
|
+
this.basketsService.recipesWillBeAdded(),
|
|
226
|
+
this.basketsService.recipesWillBeRemoved(),
|
|
227
|
+
this.basketsService.recipesWillBeUpdated()
|
|
228
|
+
]).pipe(map(res => res[0] || res[1] || res[2]), skipWhile(isUpdating => isUpdating !== basketIsUpdating)).subscribe(isUpdating => {
|
|
229
|
+
basketIsUpdating = isUpdating;
|
|
230
|
+
this.disableItemSelector = isUpdating;
|
|
231
|
+
if (!this.line.isRecipe) {
|
|
232
|
+
this.disableCounter = isUpdating;
|
|
233
|
+
this.disableRemove = isUpdating;
|
|
234
|
+
}
|
|
235
|
+
this.cdr.detectChanges();
|
|
236
|
+
}));
|
|
237
|
+
}
|
|
488
238
|
priceToDisplay() {
|
|
489
239
|
if (this.line.isRecipe || !this.displayItemsUnitaryPrice || this.line.price === null) {
|
|
490
240
|
return this.line.price;
|
|
@@ -503,163 +253,94 @@ export class BasketPreviewLineComponent extends EventTracerComponent {
|
|
|
503
253
|
ingredients = recipe.relationships.ingredients.data;
|
|
504
254
|
const entriesLines = this.entriesLines$.value;
|
|
505
255
|
entriesLines.forEach(entryLine => {
|
|
506
|
-
|
|
507
|
-
return ing.attributes['forced-eans'].some(ean => ean === entryLine.record.selectedItem.attributes.ean);
|
|
508
|
-
});
|
|
509
|
-
this.isEntrySponsorised[entryLine.id] = sponsorised;
|
|
256
|
+
this.isEntrySponsorised[entryLine.id] = ingredients.some(ing => ing.attributes['forced-eans'].some(ean => ean === entryLine.record.selectedItem.attributes.ean));
|
|
510
257
|
});
|
|
511
258
|
this.loading = false;
|
|
512
259
|
this.cdr.detectChanges();
|
|
513
260
|
});
|
|
514
261
|
}
|
|
515
262
|
}
|
|
516
|
-
BasketPreviewLineComponent.ɵfac = function BasketPreviewLineComponent_Factory(t) { return new (t || BasketPreviewLineComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.RecipesService), i0.ɵɵdirectiveInject(
|
|
517
|
-
BasketPreviewLineComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BasketPreviewLineComponent, selectors: [["ng-miam-basket-preview-line"]], inputs: { line: "line", uniqueLine: "uniqueLine", blockStates: "blockStates", displayTotalPricing: "displayTotalPricing", recipesAlwaysExpanded: "recipesAlwaysExpanded", itemsAlwaysExpanded: "itemsAlwaysExpanded", displayItemsUnitaryPrice: "displayItemsUnitaryPrice", sponsorised: "sponsorised" }, outputs: { removed: "removed", countChanged: "countChanged", replaceItem: "replaceItem", showRecipe: "showRecipe" }, features: [i0.ɵɵInheritDefinitionFeature], decls:
|
|
518
|
-
const
|
|
519
|
-
i18n_0 =
|
|
263
|
+
BasketPreviewLineComponent.ɵfac = function BasketPreviewLineComponent_Factory(t) { return new (t || BasketPreviewLineComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.RecipesService), i0.ɵɵdirectiveInject(i1.BasketsService), i0.ɵɵdirectiveInject(i1.AnalyticsService), i0.ɵɵdirectiveInject(i1.PointOfSalesService), i0.ɵɵdirectiveInject(i1.UserService), i0.ɵɵdirectiveInject(i1.ContextService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.SuppliersService)); };
|
|
264
|
+
BasketPreviewLineComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BasketPreviewLineComponent, selectors: [["ng-miam-basket-preview-line"]], inputs: { line: "line", uniqueLine: "uniqueLine", blockStates: "blockStates", displayTotalPricing: "displayTotalPricing", recipesAlwaysExpanded: "recipesAlwaysExpanded", itemsAlwaysExpanded: "itemsAlwaysExpanded", displayItemsUnitaryPrice: "displayItemsUnitaryPrice", sponsorised: "sponsorised" }, outputs: { removed: "removed", countChanged: "countChanged", replaceItem: "replaceItem", showRecipe: "showRecipe" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 29, vars: 14, consts: function () { var i18n_0; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
265
|
+
const MSG_EXTERNAL_1112144680738962826$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS_1 = goog.getMsg("produits");
|
|
266
|
+
i18n_0 = MSG_EXTERNAL_1112144680738962826$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS_1;
|
|
520
267
|
}
|
|
521
268
|
else {
|
|
522
|
-
i18n_0 = $localize `:␟
|
|
269
|
+
i18n_0 = $localize `:␟2571d7fbaeed8646df6ee852fb5d94185b0efd88␟1112144680738962826:produits`;
|
|
523
270
|
} var i18n_2; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
524
|
-
const
|
|
525
|
-
i18n_2 =
|
|
526
|
-
}
|
|
527
|
-
else {
|
|
528
|
-
i18n_2 = $localize `:␟464df96417b29e18e7c92bd6bbe85ec8ae81101a␟943969525955903510: personne `;
|
|
529
|
-
} var i18n_4; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
530
|
-
const MSG_EXTERNAL_7216398619205393425$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS___5 = goog.getMsg("Masquer le d\u00E9tail");
|
|
531
|
-
i18n_4 = MSG_EXTERNAL_7216398619205393425$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS___5;
|
|
532
|
-
}
|
|
533
|
-
else {
|
|
534
|
-
i18n_4 = $localize `:␟4785d2ed6aa646690f46eb4fe02a1916a39cdbb8␟7216398619205393425:Masquer le détail`;
|
|
535
|
-
} var i18n_6; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
536
|
-
const MSG_EXTERNAL_1356308905753232069$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS___7 = goog.getMsg("Voir le d\u00E9tail");
|
|
537
|
-
i18n_6 = MSG_EXTERNAL_1356308905753232069$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS___7;
|
|
538
|
-
}
|
|
539
|
-
else {
|
|
540
|
-
i18n_6 = $localize `:␟1afb0c360aa8eb58699c70b4f81b79db9b304633␟1356308905753232069:Voir le détail`;
|
|
541
|
-
} var i18n_9; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
542
|
-
const MSG_EXTERNAL_3422645121321619499$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS__10 = goog.getMsg(" Voir la recette ");
|
|
543
|
-
i18n_9 = MSG_EXTERNAL_3422645121321619499$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS__10;
|
|
544
|
-
}
|
|
545
|
-
else {
|
|
546
|
-
i18n_9 = $localize `:␟34e23f58b49b30b043bb800b0929fb73a63b2949␟3422645121321619499: Voir la recette `;
|
|
547
|
-
} var i18n_11; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
548
|
-
const MSG_EXTERNAL_2014297263214357463$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS__12 = goog.getMsg("Changer d'article");
|
|
549
|
-
i18n_11 = MSG_EXTERNAL_2014297263214357463$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS__12;
|
|
550
|
-
}
|
|
551
|
-
else {
|
|
552
|
-
i18n_11 = $localize `:␟c0482d798065c40279036142ef812ebf3942d280␟2014297263214357463:Changer d'article`;
|
|
553
|
-
} var i18n_17; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
554
|
-
const MSG_EXTERNAL_6410345110451741598$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS__18 = goog.getMsg("pour");
|
|
555
|
-
i18n_17 = MSG_EXTERNAL_6410345110451741598$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS__18;
|
|
556
|
-
}
|
|
557
|
-
else {
|
|
558
|
-
i18n_17 = $localize `:␟1987d6d2d7b60e267f6d65eb3c4cdb5c975d5f54␟6410345110451741598:pour`;
|
|
559
|
-
} var i18n_19; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
560
|
-
const MSG_EXTERNAL_3397501349112812891$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS___20 = goog.getMsg("personnes");
|
|
561
|
-
i18n_19 = MSG_EXTERNAL_3397501349112812891$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS___20;
|
|
562
|
-
}
|
|
563
|
-
else {
|
|
564
|
-
i18n_19 = $localize `:␟63e53fe349a9d568182157b18cf3140aca246d62␟3397501349112812891:personnes`;
|
|
565
|
-
} var i18n_21; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
566
|
-
const MSG_EXTERNAL_2884439310873584392$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS___22 = goog.getMsg("personne");
|
|
567
|
-
i18n_21 = MSG_EXTERNAL_2884439310873584392$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS___22;
|
|
271
|
+
const MSG_EXTERNAL_6749102764655247912$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS_3 = goog.getMsg("Voir les produits");
|
|
272
|
+
i18n_2 = MSG_EXTERNAL_6749102764655247912$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS_3;
|
|
568
273
|
}
|
|
569
274
|
else {
|
|
570
|
-
|
|
571
|
-
}
|
|
572
|
-
const MSG_EXTERNAL_8327069019640670106$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS___24 = goog.getMsg("Calcul des ingr\u00E9dients...");
|
|
573
|
-
i18n_23 = MSG_EXTERNAL_8327069019640670106$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_LINE_BASKET_PREVIEW_LINE_COMPONENT_TS___24;
|
|
574
|
-
}
|
|
575
|
-
else {
|
|
576
|
-
i18n_23 = $localize `:␟1eacd4f46056d28691469ea02279e20c0642e699␟8327069019640670106:Calcul des ingrédients...`;
|
|
577
|
-
} return [[1, "miam-basket-preview-line", 3, "id", "ngClass", "click"], [1, "miam-basket-preview-line__item"], [1, "miam-basket-preview-line__item__left"], ["class", "miam-basket-preview-line__item__remove", 3, "click", 4, "ngIf"], [1, "miam-basket-preview-line__item__picture"], [3, "src", "click"], [1, "miam-basket-preview-line__item__details", 3, "ngClass"], ["class", "miam-basket-preview-line__item__sponsorised", 4, "ngIf"], [1, "miam-basket-preview-line__item__title", 3, "click"], [1, "miam-basket-preview-line__item__description"], [4, "ngIf"], [1, "miam-basket-preview-line__item__actions"], ["class", "miam-basket-preview-line__item__showDetails", 3, "ngClass", 4, "ngIf"], ["class", "miam-basket-preview-line__item__showDetails", 4, "ngIf"], ["class", "miam-basket-preview-line__item__change", 3, "click", 4, "ngIf"], ["class", "miam-basket-preview-line__item__inlineTag__container", 4, "ngIf"], [1, "miam-basket-preview-line__item__right"], ["class", "miam-basket-preview-line__item__price", 4, "ngIf", "ngIfElse"], ["pricePerguest", ""], [1, "miam-basket-preview-line__item__count"], ["class", "miam-basket-preview-line__item__count__for", 4, "ngIf"], [3, "counter", "minRange", "counterChange"], ["class", "miam-basket-preview-line__item__count__people", 4, "ngIf"], ["class", "miam-basket-preview-line__add__button", 4, "ngIf"], ["class", "miam-basket-preview-lines", 4, "ngIf"], [1, "miam-basket-preview-line__item__remove", 3, "click"], ["height", "24", "width", "24", "primaryColor", "var(--m-color-grey-text-dark)", 3, "iconName", 4, "ngIf", "ngIfElse"], ["addLoader", ""], ["height", "24", "width", "24", "primaryColor", "var(--m-color-grey-text-dark)", 3, "iconName"], [1, "icon-container"], [1, "miam-basket-preview-line__item__sponsorised"], i18n_0, ["class", "miam-basket-preview-line__item__description__part", 4, "ngFor", "ngForOf"], i18n_2, [1, "miam-basket-preview-line__item__description__part"], [1, "miam-basket-preview-line__item__showDetails", 3, "ngClass"], i18n_4, i18n_6, [1, "miam-basket-preview-line__item__showDetails"], i18n_9, [1, "miam-basket-preview-line__item__change", 3, "click"], [1, "miam-basket-preview-line__item__change__link", 3, "ngClass"], i18n_11, [1, "miam-basket-preview-line__item__inlineTag__container"], [1, "miam-basket-preview-line__item__inlineTag"], [4, "ngFor", "ngForOf"], [1, "miam-basket-preview-line__item__price"], [3, "recipe", "serves"], [1, "miam-basket-preview-line__item__count__for"], i18n_17, [1, "miam-basket-preview-line__item__count__people"], i18n_19, i18n_21, [1, "miam-basket-preview-line__add__button"], [1, "m-button-primary", 3, "click"], ["primaryColor", "#fff", 3, "width", "height", "iconName"], [1, "miam-basket-preview-lines"], [4, "ngIf", "ngIfElse"], ["loader", ""], [3, "line", "sponsorised", "displayItemsUnitaryPrice", "originTrace", "blockStates", "removed", "replaceItem", 4, "ngFor", "ngForOf"], ["mode", "unavailable", 3, "entries", "alwaysExpanded", 4, "ngIf"], ["mode", "oftenDeleted", 3, "entries", "alwaysExpanded", "entryAdded", 4, "ngIf"], ["mode", "removed", 3, "entries", "alwaysExpanded", "reduced", "entryAdded", 4, "ngIf"], [3, "line", "sponsorised", "displayItemsUnitaryPrice", "originTrace", "blockStates", "removed", "replaceItem"], ["mode", "unavailable", 3, "entries", "alwaysExpanded"], ["mode", "oftenDeleted", 3, "entries", "alwaysExpanded", "entryAdded"], ["mode", "removed", 3, "entries", "alwaysExpanded", "reduced", "entryAdded"], [1, "miam-basket-preview-line__loader-container"], i18n_23]; }, template: function BasketPreviewLineComponent_Template(rf, ctx) { if (rf & 1) {
|
|
275
|
+
i18n_2 = $localize `:␟d68184b8cb73679ad3ecea9935d57f739bea4871␟6749102764655247912:Voir les produits`;
|
|
276
|
+
} return [[1, "miam-basket-preview-line", 3, "id"], [1, "miam-basket-preview-line__left"], [1, "miam-basket-preview-line__picture"], [3, "src", "click"], [1, "miam-basket-preview-line__counter"], [1, "miam-ds-text", "weight-xxl", "size-m"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/recipe-counter.svg", "alt", "people"], [1, "miam-basket-preview-line__right"], [1, "miam-basket-preview-line__top"], [1, "miam-basket-preview-line__infos"], [1, "miam-basket-preview-line__title", "miam-ds-text", "weight-xxl", "size-m", 3, "click"], [1, "miam-basket-preview-line__product-count", "miam-ds-text", "weight-l", "size-s"], i18n_0, [3, "recipeId", "serves"], [1, "miam-basket-preview-line__remove", "miam-ds-button", "ghost", 3, "ngClass", "click"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/trash.svg", "alt", "remove recipe", 4, "ngIf", "ngIfElse"], ["removeLoader", ""], [1, "miam-basket-preview-line__link", "miam-ds-button", "ghost", 3, "click"], i18n_2, ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/arrow-right.svg", "alt", "arrow right"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/trash.svg", "alt", "remove recipe"], [1, "miam-ds-loader"]]; }, template: function BasketPreviewLineComponent_Template(rf, ctx) { if (rf & 1) {
|
|
578
277
|
i0.ɵɵelementStart(0, "div", 0);
|
|
579
|
-
i0.ɵɵlistener("click", function BasketPreviewLineComponent_Template_div_click_0_listener($event) { return ctx.line.displayMode ? ctx.toggleRecipeDisplay($event) : ctx.toggleExpanded($event); });
|
|
580
278
|
i0.ɵɵelementStart(1, "div", 1);
|
|
581
279
|
i0.ɵɵelementStart(2, "div", 2);
|
|
582
|
-
i0.ɵɵ
|
|
280
|
+
i0.ɵɵelementStart(3, "img", 3);
|
|
281
|
+
i0.ɵɵlistener("click", function BasketPreviewLineComponent_Template_img_click_3_listener($event) { return ctx.toggleRecipeDisplay($event); });
|
|
282
|
+
i0.ɵɵelementEnd();
|
|
283
|
+
i0.ɵɵelementEnd();
|
|
583
284
|
i0.ɵɵelementStart(4, "div", 4);
|
|
584
|
-
i0.ɵɵelementStart(5, "
|
|
585
|
-
i0.ɵɵ
|
|
285
|
+
i0.ɵɵelementStart(5, "span", 5);
|
|
286
|
+
i0.ɵɵtext(6);
|
|
586
287
|
i0.ɵɵelementEnd();
|
|
288
|
+
i0.ɵɵelement(7, "img", 6);
|
|
587
289
|
i0.ɵɵelementEnd();
|
|
588
|
-
i0.ɵɵelementStart(6, "div", 6);
|
|
589
|
-
i0.ɵɵtemplate(7, BasketPreviewLineComponent_div_7_Template, 3, 0, "div", 7);
|
|
590
|
-
i0.ɵɵelementStart(8, "div", 8);
|
|
591
|
-
i0.ɵɵlistener("click", function BasketPreviewLineComponent_Template_div_click_8_listener($event) { return ctx.toggleRecipeDisplay($event); });
|
|
592
|
-
i0.ɵɵelementStart(9, "strong");
|
|
593
|
-
i0.ɵɵtext(10);
|
|
594
|
-
i0.ɵɵpipe(11, "capitalizeFirstLetter");
|
|
595
290
|
i0.ɵɵelementEnd();
|
|
291
|
+
i0.ɵɵelementStart(8, "div", 7);
|
|
292
|
+
i0.ɵɵelementStart(9, "div", 8);
|
|
293
|
+
i0.ɵɵelementStart(10, "div", 9);
|
|
294
|
+
i0.ɵɵelementStart(11, "div", 10);
|
|
295
|
+
i0.ɵɵlistener("click", function BasketPreviewLineComponent_Template_div_click_11_listener($event) { return ctx.toggleRecipeDisplay($event); });
|
|
296
|
+
i0.ɵɵelementStart(12, "span");
|
|
297
|
+
i0.ɵɵtext(13);
|
|
298
|
+
i0.ɵɵpipe(14, "capitalizeFirstLetter");
|
|
596
299
|
i0.ɵɵelementEnd();
|
|
597
|
-
i0.ɵɵelementStart(12, "div", 9);
|
|
598
|
-
i0.ɵɵtemplate(13, BasketPreviewLineComponent_div_13_Template, 2, 1, "div", 10);
|
|
599
|
-
i0.ɵɵtemplate(14, BasketPreviewLineComponent_div_14_Template, 9, 4, "div", 10);
|
|
600
300
|
i0.ɵɵelementEnd();
|
|
601
301
|
i0.ɵɵelementStart(15, "div", 11);
|
|
602
|
-
i0.ɵɵ
|
|
603
|
-
i0.ɵɵ
|
|
604
|
-
i0.ɵɵtemplate(18, BasketPreviewLineComponent_div_18_Template, 3, 3, "div", 14);
|
|
605
|
-
i0.ɵɵtemplate(19, BasketPreviewLineComponent_div_19_Template, 3, 1, "div", 15);
|
|
302
|
+
i0.ɵɵelementStart(16, "span");
|
|
303
|
+
i0.ɵɵtext(17);
|
|
606
304
|
i0.ɵɵelementEnd();
|
|
305
|
+
i0.ɵɵelementStart(18, "span");
|
|
306
|
+
i0.ɵɵi18n(19, 12);
|
|
607
307
|
i0.ɵɵelementEnd();
|
|
608
308
|
i0.ɵɵelementEnd();
|
|
609
|
-
i0.ɵɵ
|
|
610
|
-
i0.ɵɵtemplate(21, BasketPreviewLineComponent_div_21_Template, 8, 5, "div", 17);
|
|
611
|
-
i0.ɵɵtemplate(22, BasketPreviewLineComponent_ng_template_22_Template, 2, 9, "ng-template", null, 18, i0.ɵɵtemplateRefExtractor);
|
|
612
|
-
i0.ɵɵelementStart(24, "div", 19);
|
|
613
|
-
i0.ɵɵtemplate(25, BasketPreviewLineComponent_div_25_Template, 2, 0, "div", 20);
|
|
614
|
-
i0.ɵɵelementStart(26, "ng-miam-counter-input", 21);
|
|
615
|
-
i0.ɵɵlistener("counterChange", function BasketPreviewLineComponent_Template_ng_miam_counter_input_counterChange_26_listener($event) { return ctx.changeCount($event); });
|
|
309
|
+
i0.ɵɵelement(20, "ng-miam-recipe-pricing", 13);
|
|
616
310
|
i0.ɵɵelementEnd();
|
|
617
|
-
i0.ɵɵ
|
|
311
|
+
i0.ɵɵelementStart(21, "button", 14);
|
|
312
|
+
i0.ɵɵlistener("click", function BasketPreviewLineComponent_Template_button_click_21_listener($event) { return ctx.removeLine($event); });
|
|
313
|
+
i0.ɵɵtemplate(22, BasketPreviewLineComponent_img_22_Template, 1, 0, "img", 15);
|
|
314
|
+
i0.ɵɵtemplate(23, BasketPreviewLineComponent_ng_template_23_Template, 1, 0, "ng-template", null, 16, i0.ɵɵtemplateRefExtractor);
|
|
618
315
|
i0.ɵɵelementEnd();
|
|
619
|
-
i0.ɵɵ
|
|
316
|
+
i0.ɵɵelementEnd();
|
|
317
|
+
i0.ɵɵelementStart(25, "button", 17);
|
|
318
|
+
i0.ɵɵlistener("click", function BasketPreviewLineComponent_Template_button_click_25_listener($event) { return ctx.toggleRecipeDisplay($event); });
|
|
319
|
+
i0.ɵɵelementStart(26, "span");
|
|
320
|
+
i0.ɵɵi18n(27, 18);
|
|
321
|
+
i0.ɵɵelementEnd();
|
|
322
|
+
i0.ɵɵelement(28, "img", 19);
|
|
620
323
|
i0.ɵɵelementEnd();
|
|
621
324
|
i0.ɵɵelementEnd();
|
|
622
325
|
i0.ɵɵelementEnd();
|
|
623
|
-
i0.ɵɵtemplate(29, BasketPreviewLineComponent_div_29_Template, 4, 2, "div", 24);
|
|
624
326
|
} if (rf & 2) {
|
|
625
|
-
const
|
|
327
|
+
const _r1 = i0.ɵɵreference(24);
|
|
626
328
|
i0.ɵɵpropertyInterpolate("id", ctx.line.id);
|
|
627
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(23, _c25, ctx.line.hasEntries() || ctx.line.displayMode, ctx.expanded, ctx.selectItem));
|
|
628
329
|
i0.ɵɵadvance(3);
|
|
629
|
-
i0.ɵɵproperty("ngIf", !ctx.uniqueLine && !ctx.line.displayMode);
|
|
630
|
-
i0.ɵɵadvance(2);
|
|
631
330
|
i0.ɵɵproperty("src", ctx.line.picture, i0.ɵɵsanitizeUrl);
|
|
632
|
-
i0.ɵɵadvance(1);
|
|
633
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(27, _c26, ctx.line.inlineTag));
|
|
634
|
-
i0.ɵɵadvance(1);
|
|
635
|
-
i0.ɵɵproperty("ngIf", ctx.sponsorised);
|
|
636
331
|
i0.ɵɵadvance(3);
|
|
637
|
-
i0.ɵɵtextInterpolate(
|
|
638
|
-
i0.ɵɵadvance(
|
|
639
|
-
i0.ɵɵ
|
|
640
|
-
i0.ɵɵadvance(1);
|
|
641
|
-
i0.ɵɵproperty("ngIf", ctx.line.description.length > 1);
|
|
642
|
-
i0.ɵɵadvance(2);
|
|
643
|
-
i0.ɵɵproperty("ngIf", ctx.line.hasEntries() && !ctx.uniqueLine);
|
|
644
|
-
i0.ɵɵadvance(1);
|
|
645
|
-
i0.ɵɵproperty("ngIf", ctx.line.displayMode);
|
|
646
|
-
i0.ɵɵadvance(1);
|
|
647
|
-
i0.ɵɵproperty("ngIf", !ctx.line.isRecipe && (ctx.line == null ? null : ctx.line.record == null ? null : ctx.line.record.candidateItems == null ? null : ctx.line.record.candidateItems.length) > 0);
|
|
648
|
-
i0.ɵɵadvance(1);
|
|
649
|
-
i0.ɵɵproperty("ngIf", ctx.line.inlineTag);
|
|
650
|
-
i0.ɵɵadvance(2);
|
|
651
|
-
i0.ɵɵproperty("ngIf", ctx.displayTotalPricing || !ctx.line.isRecipe)("ngIfElse", _r9);
|
|
332
|
+
i0.ɵɵtextInterpolate(ctx.line.count);
|
|
333
|
+
i0.ɵɵadvance(7);
|
|
334
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(14, 10, ctx.line.title));
|
|
652
335
|
i0.ɵɵadvance(4);
|
|
653
|
-
i0.ɵɵ
|
|
654
|
-
i0.ɵɵadvance(
|
|
655
|
-
i0.ɵɵproperty("
|
|
656
|
-
i0.ɵɵadvance(1);
|
|
657
|
-
i0.ɵɵproperty("ngIf", ctx.line.isRecipe);
|
|
336
|
+
i0.ɵɵtextInterpolate(ctx.line.entries.found.length);
|
|
337
|
+
i0.ɵɵadvance(3);
|
|
338
|
+
i0.ɵɵproperty("recipeId", ctx.line.id)("serves", ctx.line.count);
|
|
658
339
|
i0.ɵɵadvance(1);
|
|
659
|
-
i0.ɵɵproperty("
|
|
340
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(12, _c4, ctx.disableRemove));
|
|
660
341
|
i0.ɵɵadvance(1);
|
|
661
|
-
i0.ɵɵproperty("ngIf", ctx.
|
|
662
|
-
} }, directives: [i4.NgClass, i4.NgIf, i5.CounterInputComponent, i6.IconComponent, i7.LoaderComponent, i4.NgForOf, i8.RecipePricingComponent, BasketPreviewLineComponent, i9.BasketPreviewDisabledComponent], pipes: [i10.CapitalizeFirstLetterPipe, i4.AsyncPipe], styles: [":root{--price-color:var(--miam-price-color,green);--tag-color:var(--miam-tag-color,#fcecce)}.miam-basket-preview-line{-webkit-tap-highlight-color:transparent;overflow:hidden;padding-left:10px}.miam-basket-preview-line.clickable{border:1px solid var(--m-color-grey);border-radius:4px;box-shadow:none;cursor:pointer;margin-bottom:6px;transition:var(--m-default-transition)}.miam-basket-preview-line.elevate{position:relative;z-index:var(--m-z-index-modal)}.miam-basket-preview-line.expanded{background:#fff;border-color:var(--m-color-grey);box-shadow:var(--m-shadow-small);margin-bottom:15px;margin-top:10px;position:relative}.miam-basket-preview-line .miam-basket-preview-line__item{display:flex;justify-content:space-between;padding:16px 0}.miam-basket-preview-line .miam-basket-preview-line__item.clickable{cursor:pointer}.miam-basket-preview-line .miam-basket-preview-line__item.clickable.expanded{padding-bottom:0}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left{align-items:center;display:flex;width:100%}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove{align-self:center;margin:0 30px 0 15px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove .icon-container{background-color:var(--m-color-grey);border-radius:12.5px;height:25px!important;padding:6px;width:25px!important}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove .icon-container .miam-loader,.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove .icon-container svg{border-top-color:var(--m-color-grey-text);color:var(--m-color-grey-text);cursor:pointer;height:13px;width:13px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture{margin-right:25px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture img{-o-object-fit:cover;border-radius:var(--m-border-radius);height:100px;object-fit:cover;width:130px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details{width:100%}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__sponsorised{align-items:center;background-color:var(--m-color-grey);border-radius:100px;display:flex;font-size:14px;font-weight:500;justify-content:center;line-height:150%;margin-bottom:8px;padding:4px 12px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__title{display:inline-block;font-size:var(--m-font-size-medium)}@media (min-width:1022px){.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__title:hover{color:var(--m-color-primary);text-decoration:underline}}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__title:first-letter{text-transform:capitalize}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__description{font-size:var(--m-font-size-small);font-weight:400}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__description .miam-basket-preview-line__item__description__part{margin-right:4px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions{display:flex;flex-direction:row}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__showDetails{color:var(--m-color-grey-text);cursor:pointer;margin:2px 30px 0 0;text-decoration:underline;transition:var(--m-default-transition);width:-webkit-max-content;width:-moz-max-content;width:max-content}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__change .miam-basket-preview-line__item__change__link{color:var(--m-color-grey-text);cursor:pointer;margin:2px 30px 0 0;text-decoration:underline;transition:var(--m-default-transition)}@media (min-width:1022px){.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__change .miam-basket-preview-line__item__change__link:hover{color:var(--m-color-primary)}}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__change .miam-basket-preview-line__item__change__link.disable{color:var(--m-color-grey-text);pointer-events:none}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__inlineTag{align-items:center;background-color:var(--tag-color);border-radius:100px;display:flex;font-size:var(--m-font-size-small);height:22px;padding:1px 16px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__inlineTag span:not(:last-child){margin-right:4px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right{align-items:center;display:flex;justify-content:flex-end;max-width:330px;position:relative;width:100%}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__price{color:var(--price-color);font-size:var(--m-font-size-large);font-weight:700;margin:0 20px;white-space:nowrap}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right ng-miam-recipe-pricing{width:100%}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count{font-size:var(--m-font-size-small);text-align:center}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count .miam-basket-preview-line__item__count__for,.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count .miam-basket-preview-line__item__count__people{color:var(--m-color-slate);font-weight:700;margin-bottom:2px;padding-left:20px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__add__button{margin:0 20px}@media (min-width:1022px){.miam-basket-preview-line .miam-basket-preview-line__item:hover .miam-basket-preview-line__item__left .miam-basket-preview-line__item__showDetails{color:var(--m-color-primary)}}.miam-basket-preview-lines{border-left:1px solid var(--m-color-grey);margin-bottom:20px;margin-left:20px;overflow:hidden}.miam-basket-preview-lines .miam-basket-preview-line{border-top:1px solid var(--m-color-grey)}.miam-basket-preview-lines .miam-basket-preview-line.expanded{border-top:1px solid var(--m-color-primary)}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item{border-top:none;padding:12px 0 15px}@media (min-width:1022px){.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__title:hover{color:var(--m-color-black);text-decoration:none}}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture,.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove{margin-right:15px}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture img{-o-object-fit:cover;border-radius:var(--m-border-radius);height:50px;object-fit:cover;width:50px}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right{margin-top:-16px}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__price{color:var(--m-color-grey-text);font-size:16px}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count ng-miam-counter-input .miam-counter-input__icon{display:none}.miam-basket-preview-lines .miam-basket-preview-line__loader-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:10px}@media (max-width:1022px){.miam-basket-preview-line .miam-basket-preview-line__item{flex-direction:column;height:204px;padding:0 0 52px;position:relative}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left{height:92px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove{bottom:58px;margin:0;position:absolute;right:18px;z-index:1}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture{height:152px;position:absolute;top:16px;width:33%}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture img{height:100%;width:100%}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details{padding:8px 0 0 40%}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__title{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions{bottom:8px;left:0;position:absolute}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__inlineTag{height:auto;padding:1px;text-align:center}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right{align-items:flex-start;flex-direction:column-reverse;justify-content:flex-start;padding-left:38%}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__price{margin:0}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count{margin:16px 0}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count .miam-basket-preview-line__item__count__for,.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count .miam-basket-preview-line__item__count__people{display:none}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item{flex-direction:column;height:auto;padding:0;position:relative}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left{height:auto}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove{bottom:unset;margin-right:15px;position:relative;right:unset}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture{height:72px;position:relative;top:unset;width:72px}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture img{-o-object-fit:cover;border-radius:var(--m-border-radius);height:72px;object-fit:cover;width:72px}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details{padding:0}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__actions{bottom:unset;flex-direction:column;gap:8px;position:relative}}@media (max-width:1022px) and (min-width:1023px){.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__inlineTag__container{width:100%}}@media (max-width:1022px){.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__inlineTag__container .miam-basket-preview-line__item__inlineTag{padding:4px 16px}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right{flex-direction:row;margin:16px 0}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__price{margin:0 16px 0 0}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count{margin:0}}"], encapsulation: 2, changeDetection: 0 });
|
|
342
|
+
i0.ɵɵproperty("ngIf", !ctx.removing)("ngIfElse", _r1);
|
|
343
|
+
} }, directives: [i2.RecipePricingComponent, i3.NgClass, i3.NgIf], pipes: [i4.CapitalizeFirstLetterPipe], styles: [".miam-basket-preview-line{align-items:flex-start;align-self:stretch;background:var(--surface-primary,#fff);border:1px solid var(--border-primary,#d6e1ec);border-radius:12px;display:flex;gap:16px;padding:12px}.miam-basket-preview-line .miam-basket-preview-line__left{height:144px;position:relative;width:144px}.miam-basket-preview-line .miam-basket-preview-line__left .miam-basket-preview-line__picture{border-radius:12px;cursor:pointer;height:100%;width:100%}.miam-basket-preview-line .miam-basket-preview-line__left .miam-basket-preview-line__picture img{-o-object-fit:cover;border-radius:12px;height:100%;object-fit:cover;width:100%}.miam-basket-preview-line .miam-basket-preview-line__left .miam-basket-preview-line__counter{align-items:center;background:var(--miam-ds-color-neutral-white,#fff);border-radius:100px;bottom:8px;color:var(--miam-color-neutral-black);display:flex;gap:4px;height:-moz-fit-content;height:fit-content;padding:4px 8px;position:absolute;right:8px}.miam-basket-preview-line .miam-basket-preview-line__left .miam-basket-preview-line__counter span{line-height:100%}.miam-basket-preview-line .miam-basket-preview-line__left .miam-basket-preview-line__counter img{height:16px;width:16px}.miam-basket-preview-line .miam-basket-preview-line__right{align-items:flex-end;align-self:stretch;display:flex;flex:1 0 0;flex-direction:column;gap:8px}.miam-basket-preview-line .miam-basket-preview-line__right .miam-basket-preview-line__top{align-items:flex-start;align-self:stretch;display:flex;flex:1 0 0;gap:16px}.miam-basket-preview-line .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos{align-items:flex-start;display:flex;flex:1 0 0;flex-direction:column;gap:4px}.miam-basket-preview-line .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos .miam-basket-preview-line__title{-webkit-box-orient:vertical;-webkit-line-clamp:2;align-self:stretch;color:var(--miam-ds-color-neutral-black,#02182b);cursor:pointer;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.miam-basket-preview-line .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos .miam-basket-preview-line__product-count{color:var(--text-subtle,rgba(31,53,67,.5));display:flex;gap:4px}.miam-basket-preview-line .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos .miam-recipe-pricing .miam-recipe-pricing__wrapper{align-items:flex-end;gap:4px}.miam-basket-preview-line .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos .miam-recipe-pricing .miam-recipe-pricing__wrapper .miam-recipe-pricing__wrapper__subline{font-size:12px}.miam-basket-preview-line .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__remove .miam-loader,.miam-basket-preview-line .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__remove img{height:24px;width:24px}.miam-basket-preview-line .miam-basket-preview-line__right .miam-basket-preview-line__link{gap:8px;padding:4px 16px}"], encapsulation: 2, changeDetection: 0 });
|
|
663
344
|
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(BasketPreviewLineComponent, [{
|
|
664
345
|
type: Component,
|
|
665
346
|
args: [{
|
|
@@ -669,7 +350,7 @@ BasketPreviewLineComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BasketPreviewL
|
|
|
669
350
|
encapsulation: ViewEncapsulation.None,
|
|
670
351
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
671
352
|
}]
|
|
672
|
-
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.RecipesService }, { type:
|
|
353
|
+
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.RecipesService }, { type: i1.BasketsService }, { type: i1.AnalyticsService }, { type: i1.PointOfSalesService }, { type: i1.UserService }, { type: i1.ContextService }, { type: i0.ElementRef }, { type: i1.SuppliersService }]; }, { line: [{
|
|
673
354
|
type: Input
|
|
674
355
|
}], uniqueLine: [{
|
|
675
356
|
type: Input
|
|
@@ -694,4 +375,4 @@ BasketPreviewLineComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BasketPreviewL
|
|
|
694
375
|
}], showRecipe: [{
|
|
695
376
|
type: Output
|
|
696
377
|
}] }); })();
|
|
697
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0LXByZXZpZXctbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL193ZWItY29tcG9uZW50cy9iYXNrZXQtcHJldmlldy9iYXNrZXQtcHJldmlldy1saW5lL2Jhc2tldC1wcmV2aWV3LWxpbmUuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9iYXNrZXQtcHJldmlldy9iYXNrZXQtcHJldmlldy1saW5lL2Jhc2tldC1wcmV2aWV3LWxpbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixpQkFBaUIsRUFFakIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUVqQixVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRS9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4SSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBb0IsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxNQUFNLE1BQU0s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QUV4QyxlQUFxQjtRQUFyQix3Q0FBcUI7UUFLdkIsZUFBd0I7UUFBeEIsMkNBQXdCO1FBU0ksZUFBZ0I7UUFBaEIsbUNBQWdCO2tKRG5EMUMsMEJBQTBCO2tEQUExQiwwQkFBMEI7Y0FQdEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSw2QkFBNkI7Z0JBQ3ZDLFdBQVcsRUFBRSxzQ0FBc0M7Z0JBQ25ELFNBQVMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2dCQUNuRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7a1ZBRVUsSUFBSTtrQkFBWixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyxxQkFBcUI7a0JBQTdCLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyx3QkFBd0I7a0JBQWhDLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0ksT0FBTztrQkFBaEIsTUFBTTtZQUNHLFlBQVk7a0JBQXJCLE1BQU07WUFDRyxXQUFXO2tCQUFwQixNQUFNO1lBQ0csVUFBVTtrQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgT25EZXN0cm95LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIE9uSW5pdCxcbiAgRWxlbWVudFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2tldFByZXZpZXdMaW5lIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscy9iYXNrZXQtcHJldmlldy1saW5lJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZm9ya0pvaW4sIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFza2V0RW50cnkgfSBmcm9tICcuLi8uLi8uLi9fbW9kZWxzL2Jhc2tldC1lbnRyeSc7XG5pbXBvcnQgeyBHcm9jZXJpZXNMaXN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMvZ3JvY2VyaWVzLWxpc3RzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFza2V0c1NlcnZpY2UsIENvbnRleHRTZXJ2aWNlLCBQb2ludE9mU2FsZXNTZXJ2aWNlLCBSZWNpcGVzU2VydmljZSwgVXNlclNlcnZpY2UsIFN1cHBsaWVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSwgQ3VzdG9tUHJvcGVydGllcyB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcy9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBzdG9wRXZlbnRQcm9wYWdhdGlvbiB9IGZyb20gJy4uLy4uLy4uL191dGlscy9ldmVudC51dGlscyc7XG5pbXBvcnQgcmVtb3ZlIGZyb20gJ2xvZGFzaC1lcy9yZW1vdmUnO1xuaW1wb3J0IHsgRXZlbnRUcmFjZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fY29tcG9uZW50cy9hYnN0cmFjdHMvZXZlbnQtdHJhY2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBtYXAsIHNraXBXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElQYXJhbXMgfSBmcm9tICduZ3gtanNvbmFwaS9pbnRlcmZhY2VzL3BhcmFtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tYmFza2V0LXByZXZpZXctbGluZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9iYXNrZXQtcHJldmlldy1saW5lLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmFza2V0LXByZXZpZXctbGluZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCYXNrZXRQcmV2aWV3TGluZUNvbXBvbmVudCBleHRlbmRzIEV2ZW50VHJhY2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBsaW5lOiBCYXNrZXRQcmV2aWV3TGluZTtcbiAgQElucHV0KCkgdW5pcXVlTGluZTogYm9vbGVhbjtcbiAgQElucHV0KCkgYmxvY2tTdGF0ZXM6IEJlaGF2aW9yU3ViamVjdDx7IGN1cnJlbnRPcGVuTGluZTogc3RyaW5nLCBvdmVybGF5T3BlbjogYm9vbGVhbiwgbGluZUNvbXBvbmVudDogQmFza2V0UHJldmlld0xpbmVDb21wb25lbnQgfT47XG4gIEBJbnB1dCgpIGRpc3BsYXlUb3RhbFByaWNpbmcgPSB0cnVlO1xuICBASW5wdXQoKSByZWNpcGVzQWx3YXlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaXRlbXNBbHdheXNFeHBhbmRlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5SXRlbXNVbml0YXJ5UHJpY2UgPSBmYWxzZTtcbiAgQElucHV0KCkgc3BvbnNvcmlzZWQgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEJhc2tldFByZXZpZXdMaW5lPigpO1xuICBAT3V0cHV0KCkgY291bnRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxCYXNrZXRQcmV2aWV3TGluZT4oKTtcbiAgQE91dHB1dCgpIHJlcGxhY2VJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxCYXNrZXRQcmV2aWV3TGluZT4oKTtcbiAgQE91dHB1dCgpIHNob3dSZWNpcGUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaWQ6IHN0cmluZywgZ3Vlc3RzOiBudW1iZXIgfT4oKTtcblxuICBlbnRyaWVzTGluZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCYXNrZXRQcmV2aWV3TGluZVtdPihudWxsKTtcbiAgZXhwYW5kZWQgPSBmYWxzZTtcbiAgbG9hZGluZyA9IHRydWU7XG4gIGRpc2FibGVJdGVtU2VsZWN0b3IgPSBmYWxzZTtcbiAgc2VsZWN0SXRlbSA9IGZhbHNlO1xuICBpY29uID0gSWNvbjtcbiAgcmVtb3ZpbmcgPSBmYWxzZTtcbiAgaXNFbnRyeVNwb25zb3Jpc2VkOiB7IFtlbnRyeUlkOiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgY3VycmVuY3kgPSB0aGlzLnN1cHBsaWVyU2VydmljZS5zdXBwbGllciQucGlwZShcbiAgICBza2lwV2hpbGUoIHN1cHBsaWVyID0+IHN1cHBsaWVyID09IG51bGwpLFxuICAgIG1hcChzdXBwbGllciA9PiBzdXBwbGllci5jdXJyZW5jeSlcbiAgKTtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIGxpc3RzU2VydmljZTogR3JvY2VyaWVzTGlzdHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFza2V0c1NlcnZpY2U6IEJhc2tldHNTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBwb3NTZXJ2aWNlOiBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgc3VwcGxpZXJTZXJ2aWNlOiBTdXBwbGllcnNTZXJ2aWNlLFxuICApIHsgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7IH1cblxuICAvLyBUT0RPOiBjYW4gd2UgcmVtb3ZlIHRoZSBjb25kaXRpb24gb24gdW5pcXVlTGluZT9cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMudW5pcXVlTGluZSkge1xuICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7XG4gICAgICB0aGlzLmJ1aWxkRW50cmllc0xpbmVzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YjogU3Vic2NyaXB0aW9uKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBjdXJyZW50UGF0aCgpOiBzdHJpbmcgeyByZXR1cm4gJyc7IH1cblxuICBwcm90ZWN0ZWQgY3VycmVudFByb3BzKCk6IEN1c3RvbVByb3BlcnRpZXMge1xuICAgIGlmICh0aGlzLmxpbmU/LnJlY29yZD8uZW50cnlOYW1lKSB7XG4gICAgICByZXR1cm4geyBlbnRyeV9uYW1lOiB0aGlzLmxpbmUucmVjb3JkLmVudHJ5TmFtZSB9O1xuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjaGFuZ2VDb3VudChjb3VudDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMubGluZS5jb3VudCA9PT0gY291bnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmxpbmUuY291bnQgPSBjb3VudDtcbiAgICBpZiAodGhpcy5saW5lLmhhc0VudHJpZXMoKSB8fCB0aGlzLmxpbmUuZGlzcGxheU1vZGUpIHtcbiAgICAgIHRoaXMuY291bnRDaGFuZ2VkLmVtaXQodGhpcy5saW5lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYW5kbGVTdWJsaW5lQ291bnRDaGFuZ2UoY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVN1YmxpbmVDb3VudENoYW5nZShjb3VudDogbnVtYmVyKSB7XG4gICAgaWYgKGNvdW50ID09PSAwKSB7XG4gICAgICB0aGlzLnJlbW92ZWQuZW1pdCh0aGlzLmxpbmUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmxpbmUucmVjb3JkLmF0dHJpYnV0ZXMucXVhbnRpdHkgPSBjb3VudDtcbiAgICB0aGlzLmxpbmUucmVjb3JkLnVwZGF0ZVRvdGFsUHJpY2UoKTtcbiAgICB0aGlzLnNlbmRFdmVudCh0aGlzLmFuYWx5dGljc1NlcnZpY2UuRVZFTlRfRU5UUllfQ0hBTkdFX1FVQU5USVRZKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxpbmUucmVjb3JkLnNhdmUoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuYmFza2V0c1NlcnZpY2UucmVsb2FkQmFza2V0KCkpXG4gICAgKS5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICB0b2dnbGVFeHBhbmRlZChldmVudCkge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmxpbmUuaGFzRW50cmllcygpIHx8XG4gICAgICB0aGlzLnVuaXF1ZUxpbmUgfHxcbiAgICAgIGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50LmNsYXNzTmFtZSA9PT0gJ2lucHV0LWNvbnRhaW5lcicgfHxcbiAgICAgIGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50LmNsYXNzTmFtZSA9PT0gJ3JlbW92ZScgfHxcbiAgICAgIGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50Lm5vZGVOYW1lID09PSAnc3ZnJ1xuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZXhwYW5kZWQgPSB0aGlzLnJlY2lwZXNBbHdheXNFeHBhbmRlZCA/IHRydWUgOiAhdGhpcy5leHBhbmRlZDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgaWYgKCF0aGlzLmVudHJpZXNMaW5lcyQudmFsdWUpIHtcbiAgICAgIHRoaXMuYnVpbGRFbnRyaWVzTGluZXMoKTtcbiAgICB9XG4gIH1cblxuICBkZWxldGVFbnRyeShlbnRyeTogQmFza2V0RW50cnkpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMucHJvcHMoKSwgeyBlbnRyeV9uYW1lOiBlbnRyeS5lbnRyeU5hbWUgfSk7XG4gICAgdGhpcy5zZW5kRXZlbnQodGhpcy5hbmFseXRpY3NTZXJ2aWNlLkVWRU5UX0VOVFJZX0RFTEVURSk7XG4gICAgLy8gUmVtb3ZlIGVudHJ5IGZyb20gbGluZSBlbnRyaWVzIGFycmF5XG4gICAgLy8gVE9ETzogaGFuZGxlIG90aGVyIHRoYW4gZm91bmRcbiAgICByZW1vdmUodGhpcy5saW5lLmVudHJpZXMuZm91bmQsIGUgPT4gZS5pZCA9PT0gZW50cnkuaWQpO1xuICAgIHRoaXMuYnVpbGRFbnRyaWVzTGluZXMoKTtcblxuICAgIC8vIFJlbW92ZSByZWxhdGVkIGdyb2NlcmllcyBlbnRyeSAodXBkYXRlIHN0YXR1cyB0byBcImRlbGV0ZWRcIikgYW5kIHJlbG9hZCBsaXN0XG4gICAgY29uc3QgZ0VudHJ5ID0gZW50cnkucmVsYXRpb25zaGlwc1snZ3JvY2VyaWVzLWVudHJ5J10uZGF0YTtcbiAgICBnRW50cnkuYXR0cmlidXRlcy5zdGF0dXMgPSAnZGVsZXRlZCc7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZ0VudHJ5LnNhdmUoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuYmFza2V0c1NlcnZpY2UucmVsb2FkQmFza2V0KCkpXG4gICAgKS5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBjaGFuZ2VQcm9kdWN0KGxpbmU6IEJhc2tldFByZXZpZXdMaW5lKSB7XG4gICAgdGhpcy5ibG9ja1N0YXRlcz8ubmV4dCh7IGN1cnJlbnRPcGVuTGluZTogbGluZS5pZCwgb3ZlcmxheU9wZW46IHRydWUsIGxpbmVDb21wb25lbnQ6IHRoaXMgfSk7XG4gICAgdGhpcy5zZWxlY3RJdGVtID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5yZXBsYWNlSXRlbS5lbWl0KGxpbmUpO1xuICB9XG5cbiAgLy8gVE9ETzogcmVtb3ZlZCAtIG5ldmVyIGNhbGxlZCA/XG4gIHByb2R1Y3RDaG9zZW4obGluZT86IEJhc2tldFByZXZpZXdMaW5lKSB7XG4gICAgdGhpcy5zZWxlY3RJdGVtID0gZmFsc2U7XG4gICAgaWYgKGxpbmUpIHsgdGhpcy5kaXNhYmxlSXRlbVNlbGVjdG9yID0gdHJ1ZTsgfVxuICAgIHRoaXMuYmxvY2tTdGF0ZXM/Lm5leHQoeyBjdXJyZW50T3BlbkxpbmU6IG51bGwsIG92ZXJsYXlPcGVuOiBmYWxzZSwgbGluZUNvbXBvbmVudDogbnVsbCB9KTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoZmFsc2UpO1xuICB9XG5cbiAgYnVpbGRFbnRyaWVzTGluZXMoKSB7XG4gICAgY29uc3QgZW50cmllcyA9IFtcbiAgICAgIC4uLnRoaXMubGluZS5lbnRyaWVzLmZvdW5kLFxuICAgICAgLi4udGhpcy5saW5lLmVudHJpZXMubm90Rm91bmQsXG4gICAgICAuLi50aGlzLmxpbmUuZW50cmllcy5vZnRlbkRlbGV0ZWQsXG4gICAgICAuLi50aGlzLmxpbmUuZW50cmllcy5yZW1vdmVkXTtcbiAgICBlbnRyaWVzLm1hcCgoZW50cnk6IEJhc2tldEVudHJ5KSA9PiB7XG4gICAgICBlbnRyeS5zZXRJdGVtc1NlbGVjdGlvbigpO1xuICAgICAgZW50cnkudXBkYXRlVG90YWxQcmljZSgpO1xuICAgIH0pO1xuICAgIHRoaXMuZW50cmllc0xpbmVzJC5uZXh0KFxuICAgICAgZW50cmllc1xuICAgICAgICAuZmlsdGVyKGVudHJ5ID0+IHRoaXMubGluZS5lbnRyaWVzLmZvdW5kLm1hcChlID0+IGUuaWQpLmluY2x1ZGVzKGVudHJ5LmlkKSlcbiAgICAgICAgLm1hcChlbnRyeSA9PiBCYXNrZXRQcmV2aWV3TGluZS5mcm9tQmFza2V0RW50cnkoZW50cnkpKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5pbml0U3BvbnNvcmlzZWRFbnRyaWVzKCkpO1xuICB9XG5cbiAgYWRkRW50cnkoZW50cnk6IEJhc2tldEVudHJ5KSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnByb3BzKCksIHsgZW50cnlfbmFtZTogZW50cnkuZW50cnlOYW1lIH0pO1xuICAgIHRoaXMuc2VuZEV2ZW50KHRoaXMuYW5hbHl0aWNzU2VydmljZS5FVkVOVF9FTlRSWV9BREQpO1xuICAgIGNvbnN0IGdFbnRyeSA9IGVudHJ5LnJlbGF0aW9uc2hpcHNbJ2dyb2Nlcmllcy1lbnRyeSddLmRhdGE7XG4gICAgZ0VudHJ5LmF0dHJpYnV0ZXMuc3RhdHVzID0gJ2FjdGl2ZSc7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZ0VudHJ5LnNhdmUoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuYmFza2V0c1NlcnZpY2UucmVsb2FkQmFza2V0KCkpXG4gICAgKS5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICB0cmFja0J5SXRlbUlkKGluZGV4OiBudW1iZXIsIGxpbmU6IEJhc2tldFByZXZpZXdMaW5lKSB7XG4gICAgcmV0dXJuIGxpbmUgPyBsaW5lLnJlY29yZFsnc2VsZWN0ZWQtaXRlbS1pZCddICsgJy0nICsgbGluZS5yZWNvcmQuYXR0cmlidXRlcy5xdWFudGl0eSA6IG51bGw7XG4gIH1cblxuICB0b2dnbGVSZWNpcGVEaXNwbGF5KGV2ZW50LCBhZGRSZWNpcGUgPSBmYWxzZSkge1xuICAgIGlmICghdGhpcy5saW5lLmlzUmVjaXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChhZGRSZWNpcGUpIHtcbiAgICAgIGZvcmtKb2luKFtcbiAgICAgICAgdGhpcy51c2VyU2VydmljZS5pc0xvZ2dlZCQuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlKDEpKSxcbiAgICAgICAgdGhpcy5wb3NTZXJ2aWNlLnBvc1dhc0luaXRpYWxpemVkKCkucGlwZSh0YWtlKDEpKVxuICAgICAgXSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIGNvbnN0IGlzSG9va09rID0gdGhpcy5jb250ZXh0U2VydmljZS5ob29rQ2FsbGJhY2socmVzWzBdLCByZXNbMV0pO1xuICAgICAgICBpZiAoaXNIb29rT2spIHtcbiAgICAgICAgICB0aGlzLmFkZFJlY2lwZUFjdGlvbk9LKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmRpc3BsYXkodGhpcy5saW5lLmlkLCB7Z3Vlc3RzOiB0aGlzLmxpbmUuY291bnQsIGhlbHBCdXR0b25BbGxvd2VkOiBmYWxzZX0sIHRoaXMuZXZlbnRUcmFjZSgpKTtcbiAgICB9XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBhZGRSZWNpcGVBY3Rpb25PSygpIHtcbiAgICBjb25zdCBuZXdQcm9wcyA9IE9iamVjdC5hc3NpZ24odGhpcy5wcm9wcygpLCB7IHJlY2lwZV9pZDogdGhpcy5saW5lLmlkIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5saXN0c1NlcnZpY2UuYXBwZW5kUmVjaXBlVG9MaXN0KHRoaXMubGluZS5pZCwgdGhpcy5saW5lLmNvdW50LCB7IG9yaWdpblBhdGg6IHRoaXMucGF0aCgpLCBwcm9wczogbmV3UHJvcHMgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpXG4gICAgKTtcbiAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmRpc3BsYXkodGhpcy5saW5lLmlkLCB7Z3Vlc3RzOiB0aGlzLmxpbmUuY291bnQsIHByZXZpZXdNb2RlOiB0cnVlfSwgdGhpcy5ldmVudFRyYWNlKCkpO1xuICB9XG5cbiAgcmVtb3ZlTGluZShldmVudCkge1xuICAgIHRoaXMucmVtb3ZpbmcgPSB0cnVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICBzdG9wRXZlbnRQcm9wYWdhdGlvbihldmVudCk7XG4gICAgdGhpcy5yZW1vdmVkLmVtaXQodGhpcy5saW5lKTtcbiAgfVxuXG4gIHByaWNlSW50ZWdlclBhcnQoKXtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnByaWNlVG9EaXNwbGF5KCk/LnRvU3RyaW5nKCkuc3BsaXQoJy4nKTtcbiAgICByZXR1cm4gdmFsdWVzPy5sZW5ndGggPiAwID8gdmFsdWVzWzBdIDogJzAnO1xuICB9XG5cbiAgcHJpY2VEZWNpbWFsUGFydCgpe1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMucHJpY2VUb0Rpc3BsYXkoKT8udG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICAgIHJldHVybiB2YWx1ZXM/Lmxlbmd0aCA9PT0gMiA/IHZhbHVlc1sxXSA6ICcwMCc7XG4gIH1cblxuICBwcml2YXRlIHByaWNlVG9EaXNwbGF5KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubGluZS5pc1JlY2lwZSB8fCAhdGhpcy5kaXNwbGF5SXRlbXNVbml0YXJ5UHJpY2UgfHwgdGhpcy5saW5lLnByaWNlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5saW5lLnByaWNlO1xuICAgIH1cbiAgICBjb25zdCBiZUl0ZW0gPSAgdGhpcy5saW5lLnJlY29yZC5hdHRyaWJ1dGVzWydiYXNrZXQtZW50cmllcy1pdGVtcyddLmZpbmQoaSA9PiBpLml0ZW1faWQgPT09IHRoaXMubGluZS5yZWNvcmQuYXR0cmlidXRlc1snc2VsZWN0ZWQtaXRlbS1pZCddKTtcbiAgICAvLyBiZUl0ZW0gY2FuIGJlIG51bGwgYWZ0ZXIgcmVwbGFjaW5nIGFuIGl0ZW0sIGJlZm9yZSB0aGUgdmlldyBpcyByZWxvYWRlZCB3aXRoIHRoZSBuZXcgaXRlbVxuICAgIHJldHVybiBiZUl0ZW0gPyBwYXJzZUZsb2F0KGJlSXRlbVsndW5pdC1wcmljZSddKS50b0ZpeGVkKDIpIDogJzAuMDAnO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U3BvbnNvcmlzZWRFbnRyaWVzKCkge1xuICAgIGNvbnN0IHBhcmFtczogSVBhcmFtcyA9IHtcbiAgICAgIGluY2x1ZGU6IFsnaW5ncmVkaWVudHMnXSxcbiAgICAgIGZpZWxkczogeyByZWNpcGVzOiBbJ2luZ3JlZGllbnRzJ10sIGluZ3JlZGllbnRzOiBbJ2ZvcmNlZC1lYW5zJ10gfVxuICAgIH1cbiAgICBsZXQgaW5ncmVkaWVudHMgPSBbXTtcbiAgICByZXR1cm4gdGhpcy5yZWNpcGVzU2VydmljZS5nZXQodGhpcy5saW5lLmlkLCBwYXJhbXMpLnBpcGUoc2tpcFdoaWxlKHJlcyA9PiByZXMuaXNfbG9hZGluZykpLnN1YnNjcmliZShyZWNpcGUgPT4ge1xuICAgICAgaW5ncmVkaWVudHMgPSByZWNpcGUucmVsYXRpb25zaGlwcy5pbmdyZWRpZW50cy5kYXRhO1xuICAgICAgY29uc3QgZW50cmllc0xpbmVzID0gdGhpcy5lbnRyaWVzTGluZXMkLnZhbHVlO1xuICAgICAgZW50cmllc0xpbmVzLmZvckVhY2goZW50cnlMaW5lID0+IHtcbiAgICAgICAgY29uc3Qgc3BvbnNvcmlzZWQgPSBpbmdyZWRpZW50cy5zb21lKGluZyA9PiB7XG4gICAgICAgICAgcmV0dXJuIGluZy5hdHRyaWJ1dGVzWydmb3JjZWQtZWFucyddLnNvbWUoZWFuID0+IGVhbiA9PT0gZW50cnlMaW5lLnJlY29yZC5zZWxlY3RlZEl0ZW0uYXR0cmlidXRlcy5lYW4pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pc0VudHJ5U3BvbnNvcmlzZWRbZW50cnlMaW5lLmlkXSA9IHNwb25zb3Jpc2VkO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdlxuICBpZD1cInt7bGluZS5pZH19XCJcbiAgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVcIlxuICBbbmdDbGFzc109XCJ7Y2xpY2thYmxlOiBsaW5lLmhhc0VudHJpZXMoKSB8fCBsaW5lLmRpc3BsYXlNb2RlLCBleHBhbmRlZDogZXhwYW5kZWQsIGVsZXZhdGUgOiBzZWxlY3RJdGVtfVwiXG4gIChjbGljayk9XCJsaW5lLmRpc3BsYXlNb2RlID8gdG9nZ2xlUmVjaXBlRGlzcGxheSgkZXZlbnQpIDogdG9nZ2xlRXhwYW5kZWQoJGV2ZW50KVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1cIj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19sZWZ0XCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIXVuaXF1ZUxpbmUgJiYgIWxpbmUuZGlzcGxheU1vZGVcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fcmVtb3ZlXCIgKGNsaWNrKT1cInJlbW92ZUxpbmUoJGV2ZW50KVwiPlxuICAgICAgICA8bmctbWlhbS1pY29uICpuZ0lmPVwiIXJlbW92aW5nIGVsc2UgYWRkTG9hZGVyXCIgW2ljb25OYW1lXT0naWNvbi5UcmFzaCcgaGVpZ2h0PScyNCcgd2lkdGg9JzI0JyBwcmltYXJ5Q29sb3I9J3ZhcigtLW0tY29sb3ItZ3JleS10ZXh0LWRhcmspJz48L25nLW1pYW0taWNvbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhZGRMb2FkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1sb2FkZXI+PC9uZy1taWFtLWxvYWRlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fcGljdHVyZVwiPlxuICAgICAgICA8aW1nIChjbGljayk9XCJ0b2dnbGVSZWNpcGVEaXNwbGF5KCRldmVudClcIiBbc3JjXT1cImxpbmUucGljdHVyZVwiPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19kZXRhaWxzXCIgW25nQ2xhc3NdPVwieyd3aXRoLWlubGluZS10YWcnOiBsaW5lLmlubGluZVRhZ31cIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInNwb25zb3Jpc2VkXCIgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX3Nwb25zb3Jpc2VkXCI+XG4gICAgICAgICAgPHNwYW4gaTE4bj5TcG9uc29yaXPDqTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKGNsaWNrKT1cInRvZ2dsZVJlY2lwZURpc3BsYXkoJGV2ZW50KVwiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX190aXRsZVwiPlxuICAgICAgICAgIDxzdHJvbmc+e3sgbGluZS50aXRsZSB8IGNhcGl0YWxpemVGaXJzdExldHRlciB9fTwvc3Ryb25nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibGluZS5kZXNjcmlwdGlvbi5sZW5ndGggPiAwXCIgPnt7IGxpbmUuZGVzY3JpcHRpb25bMF0gfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2ICAqbmdJZj1cImxpbmUuZGVzY3JpcHRpb24ubGVuZ3RoID4gMVwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGQgb2YgbGluZS5kZXNjcmlwdGlvbi5zbGljZSgxLCBsaW5lLmRlc2NyaXB0aW9uLmxlbmd0aClcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fZGVzY3JpcHRpb25fX3BhcnRcIj57eyBkIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3tjdXJyZW5jeSB8IGFzeW5jIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+IC88L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBpMThuPiBwZXJzb25uZSA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19hY3Rpb25zXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIihsaW5lLmhhc0VudHJpZXMoKSAmJiAhdW5pcXVlTGluZSlcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fc2hvd0RldGFpbHNcIlxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydleHBhbmRlZCc6IGV4cGFuZGVkfVwiPlxuICAgICAgICAgICAgPHNwYW4gaTE4biAqbmdJZj1cImV4cGFuZGVkXCI+TWFzcXVlciBsZSBkw6l0YWlsPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gaTE4biAqbmdJZj1cIiFleHBhbmRlZFwiPlZvaXIgbGUgZMOpdGFpbDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGkxOG4gKm5nSWY9XCJsaW5lLmRpc3BsYXlNb2RlXCIgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX3Nob3dEZXRhaWxzXCI+XG4gICAgICAgICAgICBWb2lyIGxhIHJlY2V0dGVcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWxpbmUuaXNSZWNpcGUgJiYgbGluZT8ucmVjb3JkPy5jYW5kaWRhdGVJdGVtcz8ubGVuZ3RoID4gMFwiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19jaGFuZ2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVByb2R1Y3QobGluZSlcIj5cbiAgICAgICAgICAgIDxhIGkxOG4gW25nQ2xhc3NdPVwieydkaXNhYmxlJzogZGlzYWJsZUl0ZW1TZWxlY3Rvcn1cIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fY2hhbmdlX19saW5rXCI+Q2hhbmdlciBkJ2FydGljbGU8L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImxpbmUuaW5saW5lVGFnXCIgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2lubGluZVRhZ19fY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19pbmxpbmVUYWdcIj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IHdvcmQgb2YgbGluZS5pbmxpbmVUYWcuc3BsaXQoJyAnKVwiPnt7IHdvcmQgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19yaWdodFwiPlxuICAgICAgPGRpdiAqbmdJZj1cImRpc3BsYXlUb3RhbFByaWNpbmcgfHwgIWxpbmUuaXNSZWNpcGUgZWxzZSBwcmljZVBlcmd1ZXN0XCIgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX3ByaWNlXCI+XG4gICAgICAgIDxzcGFuPnt7IHByaWNlSW50ZWdlclBhcnQoKSB9fSw8L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7IHByaWNlRGVjaW1hbFBhcnQoKSB9fTwvc3Bhbj4gICBcbiAgICAgICAgPHNwYW4+IHt7Y3VycmVuY3kgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNwcmljZVBlcmd1ZXN0PlxuICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJpY2luZyBbcmVjaXBlXT1cInJlY2lwZXNTZXJ2aWNlLmdldChsaW5lLmlkLCB7IGZpZWxkczogeyByZWNpcGVzOiBbJ3RpdGxlJ10gfSB9KSB8IGFzeW5jXCIgW3NlcnZlc109XCJsaW5lLmNvdW50XCI+PC9uZy1taWFtLXJlY2lwZS1wcmljaW5nPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2NvdW50XCI+XG4gICAgICAgIDxkaXYgaTE4biAqbmdJZj1cImxpbmUuaXNSZWNpcGVcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fY291bnRfX2ZvclwiPnBvdXI8L2Rpdj5cbiAgICAgICAgPG5nLW1pYW0tY291bnRlci1pbnB1dCBbY291bnRlcl09XCJsaW5lLmNvdW50XCIgKGNvdW50ZXJDaGFuZ2UpPVwiY2hhbmdlQ291bnQoJGV2ZW50KVwiIFttaW5SYW5nZV09XCJsaW5lLmlzUmVjaXBlID8gMSA6IDBcIj5cbiAgICAgICAgPC9uZy1taWFtLWNvdW50ZXItaW5wdXQ+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJsaW5lLmlzUmVjaXBlXCIgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2NvdW50X19wZW9wbGVcIj5cbiAgICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwibGluZS5jb3VudCA+IDFcIj5wZXJzb25uZXM8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gaTE4biAqbmdJZj1cIiEobGluZS5jb3VudCA+IDEpXCI+cGVyc29ubmU8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwibGluZS5kaXNwbGF5TW9kZVwiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19hZGRfX2J1dHRvblwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibS1idXR0b24tcHJpbWFyeVwiIChjbGljayk9XCJ0b2dnbGVSZWNpcGVEaXNwbGF5KCRldmVudCwgdHJ1ZSlcIj5cbiAgICAgICAgICA8bmctbWlhbS1pY29uIFt3aWR0aF09XCIyNFwiIFtoZWlnaHRdPVwiMjRcIiBwcmltYXJ5Q29sb3I9JyNmZmYnIFtpY29uTmFtZV09XCJpY29uLkNhcnRcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZXNcIiAqbmdJZj1cImV4cGFuZGVkXCI+XG4gIDxkaXYgKm5nSWY9XCIhbG9hZGluZyBlbHNlIGxvYWRlclwiPlxuICAgIDxuZy1taWFtLWJhc2tldC1wcmV2aWV3LWxpbmUgKm5nRm9yPVwibGV0IGVudHJ5TGluZSBvZiBlbnRyaWVzTGluZXMkIHwgYXN5bmNcIiBcbiAgICAgIFtsaW5lXT1cImVudHJ5TGluZVwiXG4gICAgICBbc3BvbnNvcmlzZWRdPVwiaXNFbnRyeVNwb25zb3Jpc2VkW2VudHJ5TGluZS5pZF1cIlxuICAgICAgW2Rpc3BsYXlJdGVtc1VuaXRhcnlQcmljZV09XCJkaXNwbGF5SXRlbXNVbml0YXJ5UHJpY2VcIlxuICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2UoKVwiXG4gICAgICAocmVtb3ZlZCk9XCJkZWxldGVFbnRyeSgkZXZlbnQucmVjb3JkKVwiXG4gICAgICAocmVwbGFjZUl0ZW0pPSdyZXBsYWNlSXRlbS5lbWl0KGxpbmUpJ1xuICAgICAgW2Jsb2NrU3RhdGVzXT0nYmxvY2tTdGF0ZXMnPlxuICAgIDwvbmctbWlhbS1iYXNrZXQtcHJldmlldy1saW5lPlxuICAgIDxuZy1taWFtLWJhc2tldC1wcmV2aWV3LWRpc2FibGVkICpuZ0lmPVwibGluZS5lbnRyaWVzLm5vdEZvdW5kLmxlbmd0aCA+IDBcIlxuICAgICAgW2VudHJpZXNdPVwibGluZS5lbnRyaWVzLm5vdEZvdW5kXCJcbiAgICAgIFthbHdheXNFeHBhbmRlZF09XCJpdGVtc0Fsd2F5c0V4cGFuZGVkXCJcbiAgICAgIG1vZGU9XCJ1bmF2YWlsYWJsZVwiPlxuICAgIDwvbmctbWlhbS1iYXNrZXQtcHJldmlldy1kaXNhYmxlZD5cbiAgICA8bmctbWlhbS1iYXNrZXQtcHJldmlldy1kaXNhYmxlZCAqbmdJZj1cImxpbmUuZW50cmllcy5vZnRlbkRlbGV0ZWQubGVuZ3RoID4gMFwiIFxuICAgICAgW2VudHJpZXNdPVwibGluZS5lbnRyaWVzLm9mdGVuRGVsZXRlZFwiIFxuICAgICAgW2Fsd2F5c0V4cGFuZGVkXT1cIml0ZW1zQWx3YXlzRXhwYW5kZWRcIlxuICAgICAgbW9kZT1cIm9mdGVuRGVsZXRlZFwiXG4gICAgICAoZW50cnlBZGRlZCk9XCJhZGRFbnRyeSgkZXZlbnQpXCI+XG4gICAgPC9uZy1taWFtLWJhc2tldC1wcmV2aWV3LWRpc2FibGVkPlxuICAgIDxuZy1taWFtLWJhc2tldC1wcmV2aWV3LWRpc2FibGVkICpuZ0lmPVwibGluZS5lbnRyaWVzLnJlbW92ZWQubGVuZ3RoID4gMFwiXG4gICAgICBbZW50cmllc109XCJsaW5lLmVudHJpZXMucmVtb3ZlZFwiXG4gICAgICBbYWx3YXlzRXhwYW5kZWRdPVwiaXRlbXNBbHdheXNFeHBhbmRlZFwiXG4gICAgICBtb2RlPVwicmVtb3ZlZFwiXG4gICAgICBbcmVkdWNlZF09XCJ0cnVlXCJcbiAgICAgIChlbnRyeUFkZGVkKT1cImFkZEVudHJ5KCRldmVudClcIj5cbiAgICA8L25nLW1pYW0tYmFza2V0LXByZXZpZXctZGlzYWJsZWQ+XG4gIDwvZGl2PlxuICA8bmctdGVtcGxhdGUgI2xvYWRlcj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19sb2FkZXItY29udGFpbmVyXCIgPlxuICAgICAgPG5nLW1pYW0tbG9hZGVyPjwvbmctbWlhbS1sb2FkZXI+XG4gICAgICA8ZGl2IGkxOG4+Q2FsY3VsIGRlcyBpbmdyw6lkaWVudHMuLi48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PiJdfQ==
|
|
378
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0LXByZXZpZXctbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL193ZWItY29tcG9uZW50cy9iYXNrZXQtcHJldmlldy9iYXNrZXQtcHJldmlldy1saW5lL2Jhc2tldC1wcmV2aWV3LWxpbmUuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9iYXNrZXQtcHJldmlldy9iYXNrZXQtcHJldmlldy1saW5lL2Jhc2tldC1wcmV2aWV3LWxpbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxNQUFNLE1BQU0sa0JBQWtCLENBQUM7QUFDdEMsT0FBTyxFQUFlLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsV0FBVyxFQUNaLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1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QixLQUFLO1lBQ0ksT0FBTztrQkFBaEIsTUFBTTtZQUNHLFlBQVk7a0JBQXJCLE1BQU07WUFDRyxXQUFXO2tCQUFwQixNQUFNO1lBQ0csVUFBVTtrQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCByZW1vdmUgZnJvbSAnbG9kYXNoLWVzL3JlbW92ZSc7XG5pbXBvcnQgeyBCYXNrZXRFbnRyeSwgQmFza2V0UHJldmlld0xpbmUgfSBmcm9tICcuLi8uLi8uLi9fbW9kZWxzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZm9ya0pvaW4sIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQW5hbHl0aWNzU2VydmljZSxcbiAgQmFza2V0c1NlcnZpY2UsXG4gIENvbnRleHRTZXJ2aWNlLFxuICBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICBSZWNpcGVzU2VydmljZSxcbiAgU3VwcGxpZXJzU2VydmljZSxcbiAgVXNlclNlcnZpY2Vcbn0gZnJvbSAnLi4vLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IG1hcCwgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBzdG9wRXZlbnRQcm9wYWdhdGlvbiB9IGZyb20gJy4uLy4uLy4uL191dGlscyc7XG5pbXBvcnQgeyBFdmVudFRyYWNlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19jb21wb25lbnRzL2Fic3RyYWN0cy9ldmVudC10cmFjZXIuY29tcG9uZW50JztcbmltcG9ydCB7IElQYXJhbXMgfSBmcm9tICduZ3gtanNvbmFwaS9pbnRlcmZhY2VzL3BhcmFtcyc7XG5pbXBvcnQgeyBDdXN0b21Qcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2V2ZW50LXRyYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1iYXNrZXQtcHJldmlldy1saW5lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jhc2tldC1wcmV2aWV3LWxpbmUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYXNrZXQtcHJldmlldy1saW5lLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhc2tldFByZXZpZXdMaW5lQ29tcG9uZW50IGV4dGVuZHMgRXZlbnRUcmFjZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGxpbmU6IEJhc2tldFByZXZpZXdMaW5lO1xuICBASW5wdXQoKSB1bmlxdWVMaW5lOiBib29sZWFuO1xuICBASW5wdXQoKSBibG9ja1N0YXRlczogQmVoYXZpb3JTdWJqZWN0PHsgY3VycmVudE9wZW5MaW5lOiBzdHJpbmcsIG92ZXJsYXlPcGVuOiBib29sZWFuLCBsaW5lQ29tcG9uZW50OiBCYXNrZXRQcmV2aWV3TGluZUNvbXBvbmVudCB9PjtcbiAgQElucHV0KCkgZGlzcGxheVRvdGFsUHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIHJlY2lwZXNBbHdheXNFeHBhbmRlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpdGVtc0Fsd2F5c0V4cGFuZGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc3BsYXlJdGVtc1VuaXRhcnlQcmljZSA9IGZhbHNlO1xuICBASW5wdXQoKSBzcG9uc29yaXNlZCA9IGZhbHNlO1xuICBAT3V0cHV0KCkgcmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QmFza2V0UHJldmlld0xpbmU+KCk7XG4gIEBPdXRwdXQoKSBjb3VudENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEJhc2tldFByZXZpZXdMaW5lPigpO1xuICBAT3V0cHV0KCkgcmVwbGFjZUl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPEJhc2tldFByZXZpZXdMaW5lPigpO1xuICBAT3V0cHV0KCkgc2hvd1JlY2lwZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpZDogc3RyaW5nLCBndWVzdHM6IG51bWJlciB9PigpO1xuXG4gIGVudHJpZXNMaW5lcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJhc2tldFByZXZpZXdMaW5lW10+KG51bGwpO1xuICBleHBhbmRlZCA9IGZhbHNlO1xuICBsb2FkaW5nID0gdHJ1ZTtcbiAgZGlzYWJsZUl0ZW1TZWxlY3RvciA9IGZhbHNlO1xuICBkaXNhYmxlQ291bnRlciA9IGZhbHNlO1xuICBkaXNhYmxlUmVtb3ZlID0gZmFsc2U7XG4gIHNlbGVjdEl0ZW0gPSBmYWxzZTtcbiAgaWNvbiA9IEljb247XG4gIHJlbW92aW5nID0gZmFsc2U7XG4gIGlzRW50cnlTcG9uc29yaXNlZDogeyBbZW50cnlJZDogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gIGN1cnJlbmN5ID0gdGhpcy5zdXBwbGllclNlcnZpY2Uuc3VwcGxpZXIkLnBpcGUoXG4gICAgc2tpcFdoaWxlKHN1cHBsaWVyID0+IHN1cHBsaWVyID09IG51bGwpLFxuICAgIG1hcChzdXBwbGllciA9PiBzdXBwbGllci5jdXJyZW5jeSlcbiAgKTtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2tldHNTZXJ2aWNlOiBCYXNrZXRzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcG9zU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIHN1cHBsaWVyU2VydmljZTogU3VwcGxpZXJzU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gIH1cblxuICAvLyBUT0RPOiBjYW4gd2UgcmVtb3ZlIHRoZSBjb25kaXRpb24gb24gdW5pcXVlTGluZT9cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0UmVtb3ZlTG9hZGluZygpO1xuICAgIHRoaXMuaW5pdFJlY2lwZUlzQmVpbmdNb2RpZmllZENoZWNrKCk7XG4gICAgdGhpcy5pbml0QmFza2V0SXNCZWluZ1VwZGF0ZWQoKTtcbiAgICBpZiAodGhpcy51bmlxdWVMaW5lKSB7XG4gICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuYnVpbGRFbnRyaWVzTGluZXMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViOiBTdWJzY3JpcHRpb24pID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRQcm9wcygpOiBDdXN0b21Qcm9wZXJ0aWVzIHtcbiAgICBpZiAodGhpcy5saW5lPy5yZWNvcmQ/Lm5hbWUpIHtcbiAgICAgIHJldHVybiB7ZW50cnlfbmFtZTogdGhpcy5saW5lLnJlY29yZC5uYW1lfTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY2hhbmdlQ291bnQoY291bnQ6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmxpbmUuY291bnQgPT09IGNvdW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5saW5lLmNvdW50ID0gY291bnQ7XG4gICAgaWYgKHRoaXMubGluZS5oYXNFbnRyaWVzKCkgfHwgdGhpcy5saW5lLmRpc3BsYXlNb2RlKSB7XG4gICAgICB0aGlzLmNvdW50Q2hhbmdlZC5lbWl0KHRoaXMubGluZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFuZGxlU3VibGluZUNvdW50Q2hhbmdlKGNvdW50KTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTdWJsaW5lQ291bnRDaGFuZ2UoY291bnQ6IG51bWJlcikge1xuICAgIGlmIChjb3VudCA9PT0gMCkge1xuICAgICAgdGhpcy5yZW1vdmVkLmVtaXQodGhpcy5saW5lKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5saW5lLnJlY29yZC5hdHRyaWJ1dGVzLnF1YW50aXR5ID0gY291bnQ7XG4gICAgdGhpcy5zZW5kRXZlbnQodGhpcy5hbmFseXRpY3NTZXJ2aWNlLkVWRU5UX0VOVFJZX0NIQU5HRV9RVUFOVElUWSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5saW5lLnJlY29yZC5zYXZlKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlbG9hZEJhc2tldCgpKVxuICAgICkuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgdG9nZ2xlRXhwYW5kZWQoZXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5saW5lLmhhc0VudHJpZXMoKSB8fFxuICAgICAgdGhpcy51bmlxdWVMaW5lIHx8XG4gICAgICBldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5jbGFzc05hbWUgPT09ICdpbnB1dC1jb250YWluZXInIHx8XG4gICAgICBldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5jbGFzc05hbWUgPT09ICdyZW1vdmUnIHx8XG4gICAgICBldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5ub2RlTmFtZSA9PT0gJ3N2ZydcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmV4cGFuZGVkID0gdGhpcy5yZWNpcGVzQWx3YXlzRXhwYW5kZWQgPyB0cnVlIDogIXRoaXMuZXhwYW5kZWQ7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIGlmICghdGhpcy5lbnRyaWVzTGluZXMkLnZhbHVlKSB7XG4gICAgICB0aGlzLmJ1aWxkRW50cmllc0xpbmVzKCk7XG4gICAgfVxuICB9XG5cbiAgZGVsZXRlRW50cnkoZW50cnk6IEJhc2tldEVudHJ5KSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnByb3BzKCksIHtlbnRyeV9uYW1lOiBlbnRyeS5uYW1lfSk7XG4gICAgdGhpcy5zZW5kRXZlbnQodGhpcy5hbmFseXRpY3NTZXJ2aWNlLkVWRU5UX0VOVFJZX0RFTEVURSk7XG4gICAgLy8gUmVtb3ZlIGVudHJ5IGZyb20gbGluZSBlbnRyaWVzIGFycmF5XG4gICAgLy8gVE9ETzogaGFuZGxlIG90aGVyIHRoYW4gZm91bmRcbiAgICByZW1vdmUodGhpcy5saW5lLmVudHJpZXMuZm91bmQsIGUgPT4gZS5pZCA9PT0gZW50cnkuaWQpO1xuICAgIHRoaXMuYnVpbGRFbnRyaWVzTGluZXMoKTtcblxuICAgIC8vIFVwZGF0ZSBiZSBzdGF0dXMgdG8gXCJkZWxldGVkXCIgYW5kIHJlbG9hZCBiYXNrZXRcbiAgICBlbnRyeS5zdGF0dXMgPSAnZGVsZXRlZCc7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZW50cnkuc2F2ZSgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5iYXNrZXRzU2VydmljZS5yZWxvYWRCYXNrZXQoKSlcbiAgICApLnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGNoYW5nZVByb2R1Y3QobGluZTogQmFza2V0UHJldmlld0xpbmUpIHtcbiAgICB0aGlzLmJsb2NrU3RhdGVzPy5uZXh0KHtjdXJyZW50T3BlbkxpbmU6IGxpbmUuaWQsIG92ZXJsYXlPcGVuOiB0cnVlLCBsaW5lQ29tcG9uZW50OiB0aGlzfSk7XG4gICAgdGhpcy5zZWxlY3RJdGVtID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5yZXBsYWNlSXRlbS5lbWl0KGxpbmUpO1xuICB9XG5cbiAgLy8gVE9ETzogcmVtb3ZlZCAtIG5ldmVyIGNhbGxlZCA/XG4gIHByb2R1Y3RDaG9zZW4oYmFza2V0RW50cnlJZD86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0SXRlbSA9IGZhbHNlO1xuICAgIGlmIChiYXNrZXRFbnRyeUlkKSB7XG4gICAgICB0aGlzLmRpc2FibGVJdGVtU2VsZWN0b3IgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmJsb2NrU3RhdGVzPy5uZXh0KHtjdXJyZW50T3BlbkxpbmU6IG51bGwsIG92ZXJsYXlPcGVuOiBmYWxzZSwgbGluZUNvbXBvbmVudDogbnVsbH0pO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyhmYWxzZSk7XG4gIH1cblxuICBidWlsZEVudHJpZXNMaW5lcygpIHtcbiAgICBjb25zdCBlbnRyaWVzID0gW1xuICAgICAgLi4udGhpcy5saW5lLmVudHJpZXMuZm91bmQsXG4gICAgICAuLi50aGlzLmxpbmUuZW50cmllcy5ub3RGb3VuZCxcbiAgICAgIC4uLnRoaXMubGluZS5lbnRyaWVzLm9mdGVuRGVsZXRlZCxcbiAgICAgIC4uLnRoaXMubGluZS5lbnRyaWVzLnJlbW92ZWRdO1xuICAgIHRoaXMuZW50cmllc0xpbmVzJC5uZXh0KFxuICAgICAgZW50cmllc1xuICAgICAgICAuZmlsdGVyKGVudHJ5ID0+IHRoaXMubGluZS5lbnRyaWVzLmZvdW5kLm1hcChlID0+IGUuaWQpLmluY2x1ZGVzKGVudHJ5LmlkKSlcbiAgICAgICAgLm1hcChlbnRyeSA9PiBCYXNrZXRQcmV2aWV3TGluZS5mcm9tQmFza2V0RW50cnkoZW50cnkpKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5pbml0U3BvbnNvcmlzZWRFbnRyaWVzKCkpO1xuICB9XG5cbiAgYWRkRW50cnkoZW50cnk6IEJhc2tldEVudHJ5KSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnByb3BzKCksIHtlbnRyeV9uYW1lOiBlbnRyeS5uYW1lfSk7XG4gICAgdGhpcy5zZW5kRXZlbnQodGhpcy5hbmFseXRpY3NTZXJ2aWNlLkVWRU5UX0VOVFJZX0FERCk7XG4gICAgZW50cnkuc3RhdHVzID0gJ2FjdGl2ZSc7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZW50cnkuc2F2ZSgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5iYXNrZXRzU2VydmljZS5yZWxvYWRCYXNrZXQoKSlcbiAgICApLnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHRyYWNrQnlJdGVtSWQoaW5kZXg6IG51bWJlciwgbGluZTogQmFza2V0UHJldmlld0xpbmUpIHtcbiAgICByZXR1cm4gbGluZSA/IGxpbmUucmVjb3JkWydzZWxlY3RlZC1pdGVtLWlkJ10gKyAnLScgKyBsaW5lLnJlY29yZC5hdHRyaWJ1dGVzLnF1YW50aXR5IDogbnVsbDtcbiAgfVxuXG4gIHRvZ2dsZVJlY2lwZURpc3BsYXkoZXZlbnQsIGFkZFJlY2lwZSA9IGZhbHNlKSB7XG4gICAgaWYgKCF0aGlzLmxpbmUuaXNSZWNpcGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGFkZFJlY2lwZSkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgIGZvcmtKb2luKFtcbiAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmlzTG9nZ2VkJC5hc09ic2VydmFibGUoKS5waXBlKHRha2UoMSkpLFxuICAgICAgICAgIHRoaXMucG9zU2VydmljZS5wb3NXYXNJbml0aWFsaXplZCgpLnBpcGUodGFrZSgxKSlcbiAgICAgICAgXSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgY29uc3QgaXNIb29rT2sgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmhvb2tDYWxsYmFjayhyZXNbMF0sIHJlc1sxXSk7XG4gICAgICAgICAgaWYgKGlzSG9va09rKSB7XG4gICAgICAgICAgICB0aGlzLmFkZFJlY2lwZUFjdGlvbk9LKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5kaXNwbGF5KHRoaXMubGluZS5pZCwge2d1ZXN0czogdGhpcy5saW5lLmNvdW50LCBoZWxwQnV0dG9uQWxsb3dlZDogZmFsc2V9LCB0aGlzLmV2ZW50VHJhY2UoKSk7XG4gICAgfVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgYWRkUmVjaXBlQWN0aW9uT0soKSB7XG4gICAgY29uc3QgbmV3UHJvcHMgPSBPYmplY3QuYXNzaWduKHRoaXMucHJvcHMoKSwge3JlY2lwZV9pZDogdGhpcy5saW5lLmlkfSk7XG4gICAgdGhpcy5iYXNrZXRzU2VydmljZS5hZGRSZWNpcGVzVG9CYXNrZXQoW3RoaXMubGluZS5pZF0sIHRoaXMubGluZS5jb3VudCwge29yaWdpblBhdGg6IHRoaXMucGF0aCgpLCBwcm9wczogbmV3UHJvcHN9KTtcbiAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmRpc3BsYXkodGhpcy5saW5lLmlkLCB7Z3Vlc3RzOiB0aGlzLmxpbmUuY291bnQsIHByZXZpZXdNb2RlOiB0cnVlfSwgdGhpcy5ldmVudFRyYWNlKCkpO1xuICB9XG5cbiAgcmVtb3ZlTGluZShldmVudCkge1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICBzdG9wRXZlbnRQcm9wYWdhdGlvbihldmVudCk7XG4gICAgdGhpcy5yZW1vdmVkLmVtaXQodGhpcy5saW5lKTtcbiAgfVxuXG4gIHByaWNlSW50ZWdlclBhcnQoKSB7XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5wcmljZVRvRGlzcGxheSgpPy50b1N0cmluZygpLnNwbGl0KCcuJyk7XG4gICAgcmV0dXJuIHZhbHVlcz8ubGVuZ3RoID4gMCA/IHZhbHVlc1swXSA6ICcwJztcbiAgfVxuXG4gIHByaWNlRGVjaW1hbFBhcnQoKSB7XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5wcmljZVRvRGlzcGxheSgpPy50b1N0cmluZygpLnNwbGl0KCcuJyk7XG4gICAgcmV0dXJuIHZhbHVlcz8ubGVuZ3RoID09PSAyID8gdmFsdWVzWzFdIDogJzAwJztcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFJlbW92ZUxvYWRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlY2lwZVdpbGxCZVJlbW92ZWQodGhpcy5saW5lLmlkKS5waXBlKFxuICAgICAgICBza2lwV2hpbGUoaXNSZW1vdmluZyA9PiBpc1JlbW92aW5nID09PSB0aGlzLnJlbW92aW5nKVxuICAgICAgKS5zdWJzY3JpYmUoaXNSZW1vdmluZyA9PiB7XG4gICAgICAgIHRoaXMucmVtb3ZpbmcgPSBpc1JlbW92aW5nO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGluaXRSZWNpcGVJc0JlaW5nTW9kaWZpZWRDaGVjaygpOiB2b2lkIHtcbiAgICBsZXQgcmVjaXBlSXNVcGRhdGluZyA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmxpbmUuaXNSZWNpcGUpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmJhc2tldHNTZXJ2aWNlLnJlY2lwZUlzQmVpbmdSZW1vdmVkKHRoaXMubGluZS5pZCksIHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlSXNCZWluZ1VwZGF0ZWQodGhpcy5saW5lLmlkKV0pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzID0+IHJlc1swXSB8fCByZXNbMV0pLFxuICAgICAgICAgICAgc2tpcFdoaWxlKGlzVXBkYXRpbmcgPT4gaXNVcGRhdGluZyAhPT0gcmVjaXBlSXNVcGRhdGluZylcbiAgICAgICAgICApLnN1YnNjcmliZShpc1VwZGF0aW5nID0+IHtcbiAgICAgICAgICByZWNpcGVJc1VwZGF0aW5nID0gaXNVcGRhdGluZztcbiAgICAgICAgICB0aGlzLmRpc2FibGVDb3VudGVyID0gaXNVcGRhdGluZztcbiAgICAgICAgICB0aGlzLmRpc2FibGVSZW1vdmUgPSBpc1VwZGF0aW5nO1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0QmFza2V0SXNCZWluZ1VwZGF0ZWQoKTogdm9pZCB7XG4gICAgbGV0IGJhc2tldElzVXBkYXRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlY2lwZXNXaWxsQmVBZGRlZCgpLFxuICAgICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlY2lwZXNXaWxsQmVSZW1vdmVkKCksXG4gICAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlc1dpbGxCZVVwZGF0ZWQoKVxuICAgICAgXSkucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiByZXNbMF0gfHwgcmVzWzFdIHx8IHJlc1syXSksXG4gICAgICAgIHNraXBXaGlsZShpc1VwZGF0aW5nID0+IGlzVXBkYXRpbmcgIT09IGJhc2tldElzVXBkYXRpbmcpXG4gICAgICApLnN1YnNjcmliZShpc1VwZGF0aW5nID0+IHtcbiAgICAgICAgYmFza2V0SXNVcGRhdGluZyA9IGlzVXBkYXRpbmc7XG4gICAgICAgIHRoaXMuZGlzYWJsZUl0ZW1TZWxlY3RvciA9IGlzVXBkYXRpbmc7XG4gICAgICAgIGlmICghdGhpcy5saW5lLmlzUmVjaXBlKSB7XG4gICAgICAgICAgdGhpcy5kaXNhYmxlQ291bnRlciA9IGlzVXBkYXRpbmc7XG4gICAgICAgICAgdGhpcy5kaXNhYmxlUmVtb3ZlID0gaXNVcGRhdGluZztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHByaWNlVG9EaXNwbGF5KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubGluZS5pc1JlY2lwZSB8fCAhdGhpcy5kaXNwbGF5SXRlbXNVbml0YXJ5UHJpY2UgfHwgdGhpcy5saW5lLnByaWNlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5saW5lLnByaWNlO1xuICAgIH1cbiAgICBjb25zdCBiZUl0ZW0gPSB0aGlzLmxpbmUucmVjb3JkLmF0dHJpYnV0ZXNbJ2Jhc2tldC1lbnRyaWVzLWl0ZW1zJ10uZmluZChpID0+IGkuaXRlbV9pZCA9PT0gdGhpcy5saW5lLnJlY29yZC5hdHRyaWJ1dGVzWydzZWxlY3RlZC1pdGVtLWlkJ10pO1xuICAgIC8vIGJlSXRlbSBjYW4gYmUgbnVsbCBhZnRlciByZXBsYWNpbmcgYW4gaXRlbSwgYmVmb3JlIHRoZSB2aWV3IGlzIHJlbG9hZGVkIHdpdGggdGhlIG5ldyBpdGVtXG4gICAgcmV0dXJuIGJlSXRlbSA/IHBhcnNlRmxvYXQoYmVJdGVtWyd1bml0LXByaWNlJ10pLnRvRml4ZWQoMikgOiAnMC4wMCc7XG4gIH1cblxuICBwcml2YXRlIGluaXRTcG9uc29yaXNlZEVudHJpZXMoKSB7XG4gICAgY29uc3QgcGFyYW1zOiBJUGFyYW1zID0ge1xuICAgICAgaW5jbHVkZTogWydpbmdyZWRpZW50cyddLFxuICAgICAgZmllbGRzOiB7cmVjaXBlczogWydpbmdyZWRpZW50cyddLCBpbmdyZWRpZW50czogWydmb3JjZWQtZWFucyddfVxuICAgIH07XG4gICAgbGV0IGluZ3JlZGllbnRzID0gW107XG4gICAgcmV0dXJuIHRoaXMucmVjaXBlc1NlcnZpY2UuZ2V0KHRoaXMubGluZS5pZCwgcGFyYW1zKS5waXBlKHNraXBXaGlsZShyZXMgPT4gcmVzLmlzX2xvYWRpbmcpKS5zdWJzY3JpYmUocmVjaXBlID0+IHtcbiAgICAgIGluZ3JlZGllbnRzID0gcmVjaXBlLnJlbGF0aW9uc2hpcHMuaW5ncmVkaWVudHMuZGF0YTtcbiAgICAgIGNvbnN0IGVudHJpZXNMaW5lcyA9IHRoaXMuZW50cmllc0xpbmVzJC52YWx1ZTtcbiAgICAgIGVudHJpZXNMaW5lcy5mb3JFYWNoKGVudHJ5TGluZSA9PiB7XG4gICAgICAgIHRoaXMuaXNFbnRyeVNwb25zb3Jpc2VkW2VudHJ5TGluZS5pZF0gPSBpbmdyZWRpZW50cy5zb21lKGluZyA9PlxuICAgICAgICAgIGluZy5hdHRyaWJ1dGVzWydmb3JjZWQtZWFucyddLnNvbWUoZWFuID0+IGVhbiA9PT0gZW50cnlMaW5lLnJlY29yZC5zZWxlY3RlZEl0ZW0uYXR0cmlidXRlcy5lYW4pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lXCIgaWQ9XCJ7e2xpbmUuaWR9fVwiPlxuICA8IS0tIExFRlQgQkxPQ0sgLS0+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2xlZnRcIj5cbiAgICA8IS0tIFBJQ1RVUkUgLS0+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fcGljdHVyZVwiPlxuICAgICAgPGltZyBbc3JjXT1cImxpbmUucGljdHVyZVwiIChjbGljayk9XCJ0b2dnbGVSZWNpcGVEaXNwbGF5KCRldmVudClcIj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIENPVU5URVIgLS0+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fY291bnRlclwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLWRzLXRleHQgd2VpZ2h0LXh4bCBzaXplLW1cIj57e2xpbmUuY291bnR9fTwvc3Bhbj5cbiAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9yZWNpcGUtY291bnRlci5zdmdcIiBhbHQ9XCJwZW9wbGVcIj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gUklHSFQgQkxPQ0sgLS0+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX3JpZ2h0XCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fdG9wXCI+XG4gICAgICA8IS0tIElORk9TIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faW5mb3NcIj5cbiAgICAgICAgPCEtLSBUSVRMRSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fdGl0bGUgbWlhbS1kcy10ZXh0IHdlaWdodC14eGwgc2l6ZS1tXCIgKGNsaWNrKT1cInRvZ2dsZVJlY2lwZURpc3BsYXkoJGV2ZW50KVwiPlxuICAgICAgICAgIDxzcGFuPnt7IGxpbmUudGl0bGUgfCBjYXBpdGFsaXplRmlyc3RMZXR0ZXIgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIFBST0RVQ1QgQ09VTlQgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX3Byb2R1Y3QtY291bnQgbWlhbS1kcy10ZXh0IHdlaWdodC1sIHNpemUtc1wiPlxuICAgICAgICAgIDxzcGFuPnt7bGluZS5lbnRyaWVzLmZvdW5kLmxlbmd0aH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGkxOG4+cHJvZHVpdHM8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIFBSSUNFIC0tPlxuICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJpY2luZyBbcmVjaXBlSWRdPVwibGluZS5pZFwiIFtzZXJ2ZXNdPVwibGluZS5jb3VudFwiPjwvbmctbWlhbS1yZWNpcGUtcHJpY2luZz5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBSRU1PVkUgLS0+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19yZW1vdmUgbWlhbS1kcy1idXR0b24gZ2hvc3RcIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzogZGlzYWJsZVJlbW92ZX1cIiAoY2xpY2spPVwicmVtb3ZlTGluZSgkZXZlbnQpXCI+XG4gICAgICAgIDxpbWcgKm5nSWY9XCIhcmVtb3ZpbmcgZWxzZSByZW1vdmVMb2FkZXJcIiBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL3RyYXNoLnN2Z1wiIGFsdD1cInJlbW92ZSByZWNpcGVcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNyZW1vdmVMb2FkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tZHMtbG9hZGVyXCI+PC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIExJTksgLS0+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fbGluayBtaWFtLWRzLWJ1dHRvbiBnaG9zdFwiIChjbGljayk9XCJ0b2dnbGVSZWNpcGVEaXNwbGF5KCRldmVudClcIj5cbiAgICAgIDxzcGFuIGkxOG4+Vm9pciBsZXMgcHJvZHVpdHM8L3NwYW4+XG4gICAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvYXJyb3ctcmlnaHQuc3ZnXCIgYWx0PVwiYXJyb3cgcmlnaHRcIj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSA8ZGl2XG4gIGlkPVwie3tsaW5lLmlkfX1cIlxuICBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZVwiXG4gIFtuZ0NsYXNzXT1cIntjbGlja2FibGU6IGxpbmUuaGFzRW50cmllcygpIHx8IGxpbmUuZGlzcGxheU1vZGUsIGV4cGFuZGVkOiBleHBhbmRlZCwgZWxldmF0ZSA6IHNlbGVjdEl0ZW19XCJcbiAgKGNsaWNrKT1cImxpbmUuZGlzcGxheU1vZGUgPyB0b2dnbGVSZWNpcGVEaXNwbGF5KCRldmVudCkgOiB0b2dnbGVFeHBhbmRlZCgkZXZlbnQpXCJcbj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2xlZnRcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhdW5pcXVlTGluZSAmJiAhbGluZS5kaXNwbGF5TW9kZVwiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19yZW1vdmVcIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzogZGlzYWJsZVJlbW92ZX1cIiAoY2xpY2spPVwicmVtb3ZlTGluZSgkZXZlbnQpXCI+XG4gICAgICAgIDxuZy1taWFtLWljb24gKm5nSWY9XCIhcmVtb3ZpbmcgZWxzZSByZW1vdmVMb2FkZXJcIiBbaWNvbk5hbWVdPSdpY29uLlRyYXNoJyBoZWlnaHQ9JzI0JyB3aWR0aD0nMjQnIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1ncmV5LXRleHQtZGFyayknPjwvbmctbWlhbS1pY29uPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3JlbW92ZUxvYWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWxvYWRlcj48L25nLW1pYW0tbG9hZGVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19waWN0dXJlXCI+XG4gICAgICAgIDxpbWcgKGNsaWNrKT1cInRvZ2dsZVJlY2lwZURpc3BsYXkoJGV2ZW50KVwiIFtzcmNdPVwibGluZS5waWN0dXJlXCI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2RldGFpbHNcIiBbbmdDbGFzc109XCJ7J3dpdGgtaW5saW5lLXRhZyc6IGxpbmUuaW5saW5lVGFnfVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwic3BvbnNvcmlzZWRcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fc3BvbnNvcmlzZWRcIj5cbiAgICAgICAgICA8c3BhbiBpMThuPlNwb25zb3Jpc8OpPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAoY2xpY2spPVwidG9nZ2xlUmVjaXBlRGlzcGxheSgkZXZlbnQpXCIgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX3RpdGxlXCI+XG4gICAgICAgICAgPHN0cm9uZz57eyBsaW5lLnRpdGxlIHwgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyIH19PC9zdHJvbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19kZXNjcmlwdGlvblwiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJsaW5lLmRlc2NyaXB0aW9uLmxlbmd0aCA+IDBcIiA+e3sgbGluZS5kZXNjcmlwdGlvblswXSB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgICpuZ0lmPVwibGluZS5kZXNjcmlwdGlvbi5sZW5ndGggPiAxXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgZCBvZiBsaW5lLmRlc2NyaXB0aW9uLnNsaWNlKDEsIGxpbmUuZGVzY3JpcHRpb24ubGVuZ3RoKVwiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19kZXNjcmlwdGlvbl9fcGFydFwiPnt7IGQgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57e2N1cnJlbmN5IHwgYXN5bmMgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj4gLzwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGkxOG4+IHBlcnNvbm5lIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2FjdGlvbnNcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKGxpbmUuaGFzRW50cmllcygpICYmICF1bmlxdWVMaW5lKVwiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19zaG93RGV0YWlsc1wiXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2V4cGFuZGVkJzogZXhwYW5kZWR9XCI+XG4gICAgICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwiZXhwYW5kZWRcIj5NYXNxdWVyIGxlIGTDqXRhaWw8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwiIWV4cGFuZGVkXCI+Vm9pciBsZSBkw6l0YWlsPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgaTE4biAqbmdJZj1cImxpbmUuZGlzcGxheU1vZGVcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fc2hvd0RldGFpbHNcIj5cbiAgICAgICAgICAgIFZvaXIgbGEgcmVjZXR0ZVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbGluZS5pc1JlY2lwZSAmJiBsaW5lPy5yZWNvcmQ/LmNhbmRpZGF0ZUl0ZW1zPy5sZW5ndGggPiAwXCIgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2NoYW5nZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlUHJvZHVjdChsaW5lKVwiPlxuICAgICAgICAgICAgPGEgaTE4biBbbmdDbGFzc109XCJ7J2Rpc2FibGUnOiBkaXNhYmxlSXRlbVNlbGVjdG9yfVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19jaGFuZ2VfX2xpbmtcIj5DaGFuZ2VyIGQnYXJ0aWNsZTwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibGluZS5pbmxpbmVUYWdcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9faW5saW5lVGFnX19jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2lubGluZVRhZ1wiPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgd29yZCBvZiBsaW5lLmlubGluZVRhZy5zcGxpdCgnICcpXCI+e3sgd29yZCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX3JpZ2h0XCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZGlzcGxheVRvdGFsUHJpY2luZyB8fCAhbGluZS5pc1JlY2lwZSBlbHNlIHByaWNlUGVyZ3Vlc3RcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fcHJpY2VcIj5cbiAgICAgICAgPHNwYW4+e3sgcHJpY2VJbnRlZ2VyUGFydCgpIH19LDwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3sgcHJpY2VEZWNpbWFsUGFydCgpIH19PC9zcGFuPlxuICAgICAgICA8c3Bhbj4ge3tjdXJyZW5jeSB8IGFzeW5jIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgI3ByaWNlUGVyZ3Vlc3Q+XG4gICAgICAgIDxuZy1taWFtLXJlY2lwZS1wcmljaW5nIFtyZWNpcGVJZF09XCJsaW5lLmlkXCIgW3NlcnZlc109XCJsaW5lLmNvdW50XCI+PC9uZy1taWFtLXJlY2lwZS1wcmljaW5nPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2NvdW50XCI+XG4gICAgICAgIDxkaXYgaTE4biAqbmdJZj1cImxpbmUuaXNSZWNpcGVcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fY291bnRfX2ZvclwiPnBvdXI8L2Rpdj5cbiAgICAgICAgPG5nLW1pYW0tY291bnRlci1pbnB1dCBbdmFsdWVdPVwibGluZS5jb3VudFwiICh2YWx1ZUNoYW5nZSk9XCJjaGFuZ2VDb3VudCgkZXZlbnQpXCIgW21pblJhbmdlXT1cImxpbmUuaXNSZWNpcGUgPyAxIDogMFwiIFtkaXNhYmxlXT1cImRpc2FibGVDb3VudGVyXCI+XG4gICAgICAgIDwvbmctbWlhbS1jb3VudGVyLWlucHV0PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibGluZS5pc1JlY2lwZVwiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19jb3VudF9fcGVvcGxlXCI+XG4gICAgICAgICAgPHNwYW4gaTE4biAqbmdJZj1cImxpbmUuY291bnQgPiAxXCI+cGVyc29ubmVzPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGkxOG4gKm5nSWY9XCIhKGxpbmUuY291bnQgPiAxKVwiPnBlcnNvbm5lPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImxpbmUuZGlzcGxheU1vZGVcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fYWRkX19idXR0b25cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm0tYnV0dG9uLXByaW1hcnlcIiAoY2xpY2spPVwidG9nZ2xlUmVjaXBlRGlzcGxheSgkZXZlbnQsIHRydWUpXCI+XG4gICAgICAgICAgPG5nLW1pYW0taWNvbiBbd2lkdGhdPVwiMjRcIiBbaGVpZ2h0XT1cIjI0XCIgcHJpbWFyeUNvbG9yPScjZmZmJyBbaWNvbk5hbWVdPVwiaWNvbi5DYXJ0XCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVzXCIgKm5nSWY9XCJleHBhbmRlZFwiPlxuICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgZWxzZSBsb2FkZXJcIj5cbiAgICA8bmctbWlhbS1iYXNrZXQtcHJldmlldy1saW5lICpuZ0Zvcj1cImxldCBlbnRyeUxpbmUgb2YgZW50cmllc0xpbmVzJCB8IGFzeW5jXCJcbiAgICAgIFtsaW5lXT1cImVudHJ5TGluZVwiXG4gICAgICBbc3BvbnNvcmlzZWRdPVwiaXNFbnRyeVNwb25zb3Jpc2VkW2VudHJ5TGluZS5pZF1cIlxuICAgICAgW2Rpc3BsYXlJdGVtc1VuaXRhcnlQcmljZV09XCJkaXNwbGF5SXRlbXNVbml0YXJ5UHJpY2VcIlxuICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2UoKVwiXG4gICAgICAocmVtb3ZlZCk9XCJkZWxldGVFbnRyeSgkZXZlbnQucmVjb3JkKVwiXG4gICAgICAocmVwbGFjZUl0ZW0pPSdyZXBsYWNlSXRlbS5lbWl0KGxpbmUpJ1xuICAgICAgW2Jsb2NrU3RhdGVzXT0nYmxvY2tTdGF0ZXMnPlxuICAgIDwvbmctbWlhbS1iYXNrZXQtcHJldmlldy1saW5lPlxuICAgIDxuZy1taWFtLWJhc2tldC1wcmV2aWV3LWRpc2FibGVkICpuZ0lmPVwibGluZS5lbnRyaWVzLm5vdEZvdW5kLmxlbmd0aCA+IDBcIlxuICAgICAgW2VudHJpZXNdPVwibGluZS5lbnRyaWVzLm5vdEZvdW5kXCJcbiAgICAgIFthbHdheXNFeHBhbmRlZF09XCJpdGVtc0Fsd2F5c0V4cGFuZGVkXCJcbiAgICAgIG1vZGU9XCJ1bmF2YWlsYWJsZVwiPlxuICAgIDwvbmctbWlhbS1iYXNrZXQtcHJldmlldy1kaXNhYmxlZD5cbiAgICA8bmctbWlhbS1iYXNrZXQtcHJldmlldy1kaXNhYmxlZCAqbmdJZj1cImxpbmUuZW50cmllcy5vZnRlbkRlbGV0ZWQubGVuZ3RoID4gMFwiXG4gICAgICBbZW50cmllc109XCJsaW5lLmVudHJpZXMub2Z0ZW5EZWxldGVkXCJcbiAgICAgIFthbHdheXNFeHBhbmRlZF09XCJpdGVtc0Fsd2F5c0V4cGFuZGVkXCJcbiAgICAgIG1vZGU9XCJvZnRlbkRlbGV0ZWRcIlxuICAgICAgKGVudHJ5QWRkZWQpPVwiYWRkRW50cnkoJGV2ZW50KVwiPlxuICAgIDwvbmctbWlhbS1iYXNrZXQtcHJldmlldy1kaXNhYmxlZD5cbiAgICA8bmctbWlhbS1iYXNrZXQtcHJldmlldy1kaXNhYmxlZCAqbmdJZj1cImxpbmUuZW50cmllcy5yZW1vdmVkLmxlbmd0aCA+IDBcIlxuICAgICAgW2VudHJpZXNdPVwibGluZS5lbnRyaWVzLnJlbW92ZWRcIlxuICAgICAgW2Fsd2F5c0V4cGFuZGVkXT1cIml0ZW1zQWx3YXlzRXhwYW5kZWRcIlxuICAgICAgbW9kZT1cInJlbW92ZWRcIlxuICAgICAgW3JlZHVjZWRdPVwidHJ1ZVwiXG4gICAgICAoZW50cnlBZGRlZCk9XCJhZGRFbnRyeSgkZXZlbnQpXCI+XG4gICAgPC9uZy1taWFtLWJhc2tldC1wcmV2aWV3LWRpc2FibGVkPlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNsb2FkZXI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fbG9hZGVyLWNvbnRhaW5lclwiID5cbiAgICAgIDxuZy1taWFtLWxvYWRlcj48L25nLW1pYW0tbG9hZGVyPlxuICAgICAgPGRpdiBpMThuPkNhbGN1bCBkZXMgaW5ncsOpZGllbnRzLi4uPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj4gLS0+XG4iXX0=
|