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,6 +1,5 @@
|
|
|
1
1
|
import { Component, Input, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, Output, EventEmitter, ViewChildren, QueryList } from '@angular/core';
|
|
2
2
|
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { GroceriesListsService } from '../../../_services/groceries-lists.service';
|
|
4
3
|
import { BasketsService } from '../../../_services/baskets.service';
|
|
5
4
|
import { skipWhile, tap, map, switchMap, take } from 'rxjs/operators';
|
|
6
5
|
import remove from 'lodash-es/remove';
|
|
@@ -12,113 +11,125 @@ import { MediaMatcher } from '@angular/cdk/layout';
|
|
|
12
11
|
import { AnalyticsService } from '../../../_services/analytics.service';
|
|
13
12
|
import { EventTracerComponent } from '../../../_components/abstracts/event-tracer.component';
|
|
14
13
|
import * as i0 from "@angular/core";
|
|
15
|
-
import * as i1 from "../../../_services/
|
|
16
|
-
import * as i2 from "../../../_services/
|
|
17
|
-
import * as i3 from "../../../_services/
|
|
18
|
-
import * as i4 from "
|
|
19
|
-
import * as i5 from "
|
|
20
|
-
import * as i6 from "
|
|
21
|
-
import * as i7 from "
|
|
22
|
-
import * as i8 from "../
|
|
23
|
-
import * as i9 from "
|
|
24
|
-
import * as i10 from "../../../_components/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
14
|
+
import * as i1 from "../../../_services/point-of-sales.service";
|
|
15
|
+
import * as i2 from "../../../_services/context.service";
|
|
16
|
+
import * as i3 from "../../../_services/baskets.service";
|
|
17
|
+
import * as i4 from "@angular/cdk/layout";
|
|
18
|
+
import * as i5 from "../../../_services/analytics.service";
|
|
19
|
+
import * as i6 from "@angular/common";
|
|
20
|
+
import * as i7 from "../basket-preview-line/basket-preview-line.component";
|
|
21
|
+
import * as i8 from "../replace-item/replace-item.component";
|
|
22
|
+
import * as i9 from "../../../_components/loader/loader.component";
|
|
23
|
+
import * as i10 from "../../../_components/cors-overlay/cors-overlay.component";
|
|
24
|
+
function BasketPreviewBlockComponent_div_2_ng_container_1_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
25
|
+
i0.ɵɵelementStart(0, "div", 13);
|
|
26
|
+
i0.ɵɵelementStart(1, "span");
|
|
27
|
+
i0.ɵɵi18n(2, 14);
|
|
28
|
+
i0.ɵɵelementEnd();
|
|
29
|
+
i0.ɵɵelementStart(3, "span", 15);
|
|
30
|
+
i0.ɵɵtext(4);
|
|
31
|
+
i0.ɵɵelementEnd();
|
|
32
|
+
i0.ɵɵelementStart(5, "span");
|
|
33
|
+
i0.ɵɵi18n(6, 16);
|
|
34
|
+
i0.ɵɵelementEnd();
|
|
35
|
+
i0.ɵɵelementEnd();
|
|
36
|
+
} if (rf & 2) {
|
|
37
|
+
const ctx_r7 = i0.ɵɵnextContext(3);
|
|
38
|
+
i0.ɵɵadvance(4);
|
|
39
|
+
i0.ɵɵtextInterpolate(ctx_r7.lines.length);
|
|
40
|
+
} }
|
|
41
|
+
const _c4 = function (a0) { return { "display": a0 }; };
|
|
42
|
+
function BasketPreviewBlockComponent_div_2_ng_container_1_ng_miam_basket_preview_line_3_Template(rf, ctx) { if (rf & 1) {
|
|
28
43
|
const _r14 = i0.ɵɵgetCurrentView();
|
|
29
|
-
i0.ɵɵelementStart(0, "ng-miam-basket-preview-line",
|
|
30
|
-
i0.ɵɵlistener("removed", function
|
|
44
|
+
i0.ɵɵelementStart(0, "ng-miam-basket-preview-line", 17);
|
|
45
|
+
i0.ɵɵlistener("removed", function BasketPreviewBlockComponent_div_2_ng_container_1_ng_miam_basket_preview_line_3_Template_ng_miam_basket_preview_line_removed_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(3); return ctx_r13.removeRecipe($event); })("countChanged", function BasketPreviewBlockComponent_div_2_ng_container_1_ng_miam_basket_preview_line_3_Template_ng_miam_basket_preview_line_countChanged_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r15 = i0.ɵɵnextContext(3); return ctx_r15.updateRecipe($event); })("replaceItem", function BasketPreviewBlockComponent_div_2_ng_container_1_ng_miam_basket_preview_line_3_Template_ng_miam_basket_preview_line_replaceItem_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r16 = i0.ɵɵnextContext(3); const _r0 = i0.ɵɵreference(1); return ctx_r16.scrolltop(_r0); });
|
|
31
46
|
i0.ɵɵelementEnd();
|
|
32
47
|
} if (rf & 2) {
|
|
33
48
|
const line_r12 = ctx.$implicit;
|
|
34
|
-
const
|
|
35
|
-
i0.ɵɵproperty("line", line_r12)("blockStates",
|
|
49
|
+
const ctx_r8 = i0.ɵɵnextContext(3);
|
|
50
|
+
i0.ɵɵproperty("line", line_r12)("blockStates", ctx_r8.blockStates)("recipesAlwaysExpanded", ctx_r8.recipesAlwaysExpanded)("itemsAlwaysExpanded", ctx_r8.itemsAlwaysExpanded)("displayItemsUnitaryPrice", ctx_r8.displayItemsUnitaryPrice)("originTrace", ctx_r8.eventTrace())("ngStyle", i0.ɵɵpureFunction1(7, _c4, (ctx_r8.blockStates == null ? null : ctx_r8.blockStates.value == null ? null : ctx_r8.blockStates.value.overlayOpen) ? "none" : "block"));
|
|
36
51
|
} }
|
|
37
|
-
function
|
|
52
|
+
function BasketPreviewBlockComponent_div_2_ng_container_1_ng_miam_replace_item_4_Template(rf, ctx) { if (rf & 1) {
|
|
38
53
|
const _r18 = i0.ɵɵgetCurrentView();
|
|
39
|
-
i0.ɵɵelementStart(0, "ng-miam-replace-item",
|
|
40
|
-
i0.ɵɵlistener("selected", function
|
|
54
|
+
i0.ɵɵelementStart(0, "ng-miam-replace-item", 18);
|
|
55
|
+
i0.ɵɵlistener("selected", function BasketPreviewBlockComponent_div_2_ng_container_1_ng_miam_replace_item_4_Template_ng_miam_replace_item_selected_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(3); return ctx_r17.blockStates == null ? null : ctx_r17.blockStates.value == null ? null : ctx_r17.blockStates.value.lineComponent.productChosen($event); });
|
|
41
56
|
i0.ɵɵelementEnd();
|
|
42
57
|
} if (rf & 2) {
|
|
43
|
-
const
|
|
44
|
-
i0.ɵɵproperty("
|
|
58
|
+
const ctx_r9 = i0.ɵɵnextContext(3);
|
|
59
|
+
i0.ɵɵproperty("basketEntry", ctx_r9.blockStates == null ? null : ctx_r9.blockStates.value == null ? null : ctx_r9.blockStates.value.lineComponent.line.record)("originTrace", ctx_r9.eventTrace());
|
|
45
60
|
} }
|
|
46
|
-
function
|
|
61
|
+
function BasketPreviewBlockComponent_div_2_ng_container_1_div_5_p_4_Template(rf, ctx) { if (rf & 1) {
|
|
47
62
|
i0.ɵɵelementStart(0, "p");
|
|
48
|
-
i0.ɵɵi18n(1,
|
|
63
|
+
i0.ɵɵi18n(1, 22);
|
|
49
64
|
i0.ɵɵelementEnd();
|
|
50
65
|
} }
|
|
51
|
-
function
|
|
52
|
-
i0.ɵɵelementStart(0, "div",
|
|
66
|
+
function BasketPreviewBlockComponent_div_2_ng_container_1_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
67
|
+
i0.ɵɵelementStart(0, "div", 19);
|
|
53
68
|
i0.ɵɵelementStart(1, "p");
|
|
54
69
|
i0.ɵɵelementStart(2, "b");
|
|
55
|
-
i0.ɵɵi18n(3,
|
|
70
|
+
i0.ɵɵi18n(3, 20);
|
|
56
71
|
i0.ɵɵelementEnd();
|
|
57
72
|
i0.ɵɵelementEnd();
|
|
58
|
-
i0.ɵɵtemplate(4,
|
|
73
|
+
i0.ɵɵtemplate(4, BasketPreviewBlockComponent_div_2_ng_container_1_div_5_p_4_Template, 2, 0, "p", 21);
|
|
59
74
|
i0.ɵɵelementEnd();
|
|
60
75
|
} if (rf & 2) {
|
|
61
|
-
const
|
|
76
|
+
const ctx_r10 = i0.ɵɵnextContext(3);
|
|
62
77
|
i0.ɵɵadvance(4);
|
|
63
|
-
i0.ɵɵproperty("ngIf",
|
|
78
|
+
i0.ɵɵproperty("ngIf", ctx_r10.showNotice);
|
|
64
79
|
} }
|
|
65
|
-
function
|
|
66
|
-
i0.ɵɵelementStart(0, "div", 9);
|
|
67
|
-
i0.ɵɵtemplate(1, BasketPreviewBlockComponent_div_2_ng_container_1_div_1_ng_miam_basket_preview_line_1_Template, 1, 9, "ng-miam-basket-preview-line", 10);
|
|
68
|
-
i0.ɵɵtemplate(2, BasketPreviewBlockComponent_div_2_ng_container_1_div_1_ng_miam_replace_item_2_Template, 1, 2, "ng-miam-replace-item", 11);
|
|
69
|
-
i0.ɵɵtemplate(3, BasketPreviewBlockComponent_div_2_ng_container_1_div_1_div_3_Template, 5, 1, "div", 12);
|
|
70
|
-
i0.ɵɵpipe(4, "async");
|
|
71
|
-
i0.ɵɵelementEnd();
|
|
72
|
-
} if (rf & 2) {
|
|
73
|
-
const ctx_r7 = i0.ɵɵnextContext(3);
|
|
74
|
-
i0.ɵɵadvance(1);
|
|
75
|
-
i0.ɵɵproperty("ngForOf", ctx_r7.lines);
|
|
76
|
-
i0.ɵɵadvance(1);
|
|
77
|
-
i0.ɵɵproperty("ngIf", ctx_r7.blockStates == null ? null : ctx_r7.blockStates.value == null ? null : ctx_r7.blockStates.value.overlayOpen);
|
|
78
|
-
i0.ɵɵadvance(1);
|
|
79
|
-
i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(4, 3, ctx_r7.loading) && (!ctx_r7.lines || ctx_r7.lines.length === 0));
|
|
80
|
-
} }
|
|
81
|
-
function BasketPreviewBlockComponent_div_2_ng_container_1_div_2_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
80
|
+
function BasketPreviewBlockComponent_div_2_ng_container_1_div_7_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
82
81
|
i0.ɵɵelementStart(0, "span");
|
|
83
|
-
i0.ɵɵi18n(1,
|
|
82
|
+
i0.ɵɵi18n(1, 24);
|
|
84
83
|
i0.ɵɵelementEnd();
|
|
85
84
|
} }
|
|
86
|
-
function
|
|
85
|
+
function BasketPreviewBlockComponent_div_2_ng_container_1_div_7_span_4_Template(rf, ctx) { if (rf & 1) {
|
|
87
86
|
i0.ɵɵelementStart(0, "span");
|
|
88
|
-
i0.ɵɵi18n(1,
|
|
87
|
+
i0.ɵɵi18n(1, 25);
|
|
89
88
|
i0.ɵɵelementEnd();
|
|
90
89
|
} }
|
|
91
|
-
function
|
|
92
|
-
i0.ɵɵelementStart(0, "div",
|
|
90
|
+
function BasketPreviewBlockComponent_div_2_ng_container_1_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
91
|
+
i0.ɵɵelementStart(0, "div", 23);
|
|
93
92
|
i0.ɵɵelement(1, "ng-miam-loader");
|
|
94
93
|
i0.ɵɵelementStart(2, "div");
|
|
95
|
-
i0.ɵɵtemplate(3,
|
|
96
|
-
i0.ɵɵtemplate(4,
|
|
94
|
+
i0.ɵɵtemplate(3, BasketPreviewBlockComponent_div_2_ng_container_1_div_7_span_3_Template, 2, 0, "span", 21);
|
|
95
|
+
i0.ɵɵtemplate(4, BasketPreviewBlockComponent_div_2_ng_container_1_div_7_span_4_Template, 2, 0, "span", 21);
|
|
97
96
|
i0.ɵɵelementEnd();
|
|
98
97
|
i0.ɵɵelementEnd();
|
|
99
98
|
} if (rf & 2) {
|
|
100
|
-
const
|
|
99
|
+
const ctx_r11 = i0.ɵɵnextContext(3);
|
|
101
100
|
i0.ɵɵadvance(3);
|
|
102
|
-
i0.ɵɵproperty("ngIf",
|
|
101
|
+
i0.ɵɵproperty("ngIf", ctx_r11.recipeId);
|
|
103
102
|
i0.ɵɵadvance(1);
|
|
104
|
-
i0.ɵɵproperty("ngIf", !
|
|
103
|
+
i0.ɵɵproperty("ngIf", !ctx_r11.recipeId);
|
|
105
104
|
} }
|
|
106
105
|
function BasketPreviewBlockComponent_div_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
107
106
|
i0.ɵɵelementContainerStart(0);
|
|
108
|
-
i0.ɵɵtemplate(1, BasketPreviewBlockComponent_div_2_ng_container_1_div_1_Template,
|
|
109
|
-
i0.ɵɵ
|
|
110
|
-
i0.ɵɵ
|
|
107
|
+
i0.ɵɵtemplate(1, BasketPreviewBlockComponent_div_2_ng_container_1_div_1_Template, 7, 1, "div", 7);
|
|
108
|
+
i0.ɵɵelementStart(2, "div", 8);
|
|
109
|
+
i0.ɵɵtemplate(3, BasketPreviewBlockComponent_div_2_ng_container_1_ng_miam_basket_preview_line_3_Template, 1, 9, "ng-miam-basket-preview-line", 9);
|
|
110
|
+
i0.ɵɵtemplate(4, BasketPreviewBlockComponent_div_2_ng_container_1_ng_miam_replace_item_4_Template, 1, 2, "ng-miam-replace-item", 10);
|
|
111
|
+
i0.ɵɵtemplate(5, BasketPreviewBlockComponent_div_2_ng_container_1_div_5_Template, 5, 1, "div", 11);
|
|
112
|
+
i0.ɵɵpipe(6, "async");
|
|
113
|
+
i0.ɵɵelementEnd();
|
|
114
|
+
i0.ɵɵtemplate(7, BasketPreviewBlockComponent_div_2_ng_container_1_div_7_Template, 5, 2, "div", 12);
|
|
115
|
+
i0.ɵɵpipe(8, "async");
|
|
111
116
|
i0.ɵɵelementContainerEnd();
|
|
112
117
|
} if (rf & 2) {
|
|
113
118
|
const ctx_r6 = i0.ɵɵnextContext(2);
|
|
114
119
|
i0.ɵɵadvance(1);
|
|
115
|
-
i0.ɵɵproperty("ngIf", ctx_r6.
|
|
120
|
+
i0.ɵɵproperty("ngIf", (ctx_r6.lines == null ? null : ctx_r6.lines.length) > 0);
|
|
121
|
+
i0.ɵɵadvance(2);
|
|
122
|
+
i0.ɵɵproperty("ngForOf", ctx_r6.lines);
|
|
116
123
|
i0.ɵɵadvance(1);
|
|
117
|
-
i0.ɵɵproperty("ngIf",
|
|
124
|
+
i0.ɵɵproperty("ngIf", ctx_r6.blockStates == null ? null : ctx_r6.blockStates.value == null ? null : ctx_r6.blockStates.value.overlayOpen);
|
|
125
|
+
i0.ɵɵadvance(1);
|
|
126
|
+
i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(6, 5, ctx_r6.loading) && (!ctx_r6.lines || ctx_r6.lines.length === 0));
|
|
127
|
+
i0.ɵɵadvance(2);
|
|
128
|
+
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(8, 7, ctx_r6.loading));
|
|
118
129
|
} }
|
|
119
130
|
function BasketPreviewBlockComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
120
131
|
i0.ɵɵelementStart(0, "div", 5);
|
|
121
|
-
i0.ɵɵtemplate(1, BasketPreviewBlockComponent_div_2_ng_container_1_Template,
|
|
132
|
+
i0.ɵɵtemplate(1, BasketPreviewBlockComponent_div_2_ng_container_1_Template, 9, 9, "ng-container", 6);
|
|
122
133
|
i0.ɵɵpipe(2, "async");
|
|
123
134
|
i0.ɵɵelementEnd();
|
|
124
135
|
} if (rf & 2) {
|
|
@@ -131,21 +142,20 @@ function BasketPreviewBlockComponent_ng_template_3_Template(rf, ctx) { if (rf &
|
|
|
131
142
|
i0.ɵɵelement(0, "ng-miam-cors-overlay");
|
|
132
143
|
} }
|
|
133
144
|
function BasketPreviewBlockComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
|
|
134
|
-
i0.ɵɵelementStart(0, "div",
|
|
145
|
+
i0.ɵɵelementStart(0, "div", 26);
|
|
135
146
|
i0.ɵɵelementStart(1, "span");
|
|
136
|
-
i0.ɵɵi18n(2,
|
|
147
|
+
i0.ɵɵi18n(2, 27);
|
|
137
148
|
i0.ɵɵelementEnd();
|
|
138
149
|
i0.ɵɵelement(3, "br");
|
|
139
150
|
i0.ɵɵelementStart(4, "span");
|
|
140
|
-
i0.ɵɵi18n(5,
|
|
151
|
+
i0.ɵɵi18n(5, 28);
|
|
141
152
|
i0.ɵɵelementEnd();
|
|
142
153
|
i0.ɵɵelementEnd();
|
|
143
154
|
} }
|
|
144
155
|
export class BasketPreviewBlockComponent extends EventTracerComponent {
|
|
145
|
-
constructor(cdr,
|
|
156
|
+
constructor(cdr, posService, contextService, basketsService, mediaMatcher, analyticsService) {
|
|
146
157
|
super(analyticsService);
|
|
147
158
|
this.cdr = cdr;
|
|
148
|
-
this.listsService = listsService;
|
|
149
159
|
this.posService = posService;
|
|
150
160
|
this.contextService = contextService;
|
|
151
161
|
this.basketsService = basketsService;
|
|
@@ -159,7 +169,6 @@ export class BasketPreviewBlockComponent extends EventTracerComponent {
|
|
|
159
169
|
this.statsUpdated = new EventEmitter();
|
|
160
170
|
this.guestCountChanged = new EventEmitter();
|
|
161
171
|
this.loading = new BehaviorSubject(true);
|
|
162
|
-
this.showLines = true;
|
|
163
172
|
this.corsIssues = false;
|
|
164
173
|
this.icon = Icon;
|
|
165
174
|
this.isMobile = false;
|
|
@@ -169,25 +178,13 @@ export class BasketPreviewBlockComponent extends EventTracerComponent {
|
|
|
169
178
|
}
|
|
170
179
|
ngOnInit() {
|
|
171
180
|
this.blockStates = new BehaviorSubject({ currentOpenLine: null, overlayOpen: false, lineComponent: null });
|
|
181
|
+
this.loadPreviewWhenBasketIsReady();
|
|
172
182
|
this.subscriptions = [
|
|
173
183
|
this.contextService.getCORSIssuesState().subscribe(res => {
|
|
174
184
|
this.corsIssues = res;
|
|
175
185
|
this.cdr.detectChanges();
|
|
176
186
|
}),
|
|
177
187
|
this.blockStates.subscribe(() => this.handelblockState()),
|
|
178
|
-
this.listsService.takeFirstList().pipe(switchMap(list => {
|
|
179
|
-
return this.basketsService.basketPreview$.pipe(
|
|
180
|
-
// skipWhile(preview => !preview || preview.length === 0 || preview.length !== list.recipeInfos.length),
|
|
181
|
-
skipWhile(preview => !preview || preview.length !== list.recipeInfos.length), map(previewLines => {
|
|
182
|
-
if (this.recipesIds.length === 0) {
|
|
183
|
-
return previewLines;
|
|
184
|
-
}
|
|
185
|
-
return previewLines.filter(line => this.recipesIds.includes(line.id));
|
|
186
|
-
}), tap(preview => this.refreshPreview([...preview].reverse())));
|
|
187
|
-
})).subscribe(() => {
|
|
188
|
-
this.loading.next(false);
|
|
189
|
-
this.cdr.detectChanges();
|
|
190
|
-
}),
|
|
191
188
|
this.basketsService.basketStats$.pipe(skipWhile(stats => !stats), tap(stats => this.statsUpdated.emit(stats))).subscribe(),
|
|
192
189
|
this.posService.isPosValid().subscribe(() => {
|
|
193
190
|
this.cdr.detectChanges();
|
|
@@ -214,13 +211,26 @@ export class BasketPreviewBlockComponent extends EventTracerComponent {
|
|
|
214
211
|
currentPath() {
|
|
215
212
|
return 'basket-preview';
|
|
216
213
|
}
|
|
217
|
-
|
|
218
|
-
this.
|
|
219
|
-
|
|
214
|
+
loadPreviewWhenBasketIsReady() {
|
|
215
|
+
this.subscriptions.push(
|
|
216
|
+
// If recipes are being added we wait for them before loading the preview
|
|
217
|
+
this.basketsService.recipesWillBeAdded().pipe(skipWhile(added => added), take(1)).pipe(switchMap(() => this.basketsService.waitForBasket), switchMap(basket => this.loadPreview(basket))).subscribe());
|
|
218
|
+
}
|
|
219
|
+
loadPreview(basket) {
|
|
220
|
+
return this.basketsService.basketPreview$.pipe(skipWhile(preview => !preview || preview.length !== basket.recipeInfos.length), map(previewLines => {
|
|
221
|
+
if (this.recipesIds.length === 0) {
|
|
222
|
+
return previewLines;
|
|
223
|
+
}
|
|
224
|
+
return previewLines.filter(line => this.recipesIds.includes(line.id));
|
|
225
|
+
}), tap(preview => {
|
|
226
|
+
this.refreshPreview(preview);
|
|
227
|
+
this.loading.next(false);
|
|
228
|
+
this.cdr.detectChanges();
|
|
229
|
+
}));
|
|
220
230
|
}
|
|
221
231
|
removeRecipe(line) {
|
|
222
|
-
this.
|
|
223
|
-
this.
|
|
232
|
+
this.basketsService.removeRecipesFromBasket([line.id], this.eventTrace());
|
|
233
|
+
this.basketsService.recipeWillBeRemoved(line.id).pipe(skipWhile(willBeRemoved => willBeRemoved), take(1)).subscribe(() => {
|
|
224
234
|
const recipeIndex = this.recipesIds.findIndex(recipeId => recipeId === line.id);
|
|
225
235
|
if (recipeIndex >= 0) {
|
|
226
236
|
this.recipesIds.splice(recipeIndex, 1);
|
|
@@ -228,7 +238,7 @@ export class BasketPreviewBlockComponent extends EventTracerComponent {
|
|
|
228
238
|
});
|
|
229
239
|
}
|
|
230
240
|
updateRecipe(line) {
|
|
231
|
-
this.
|
|
241
|
+
this.basketsService.updateRecipesInBasket([line.id], line.count, this.eventTrace());
|
|
232
242
|
this.guestCountChanged.emit(line.count);
|
|
233
243
|
}
|
|
234
244
|
closeOverlay() {
|
|
@@ -274,18 +284,18 @@ export class BasketPreviewBlockComponent extends EventTracerComponent {
|
|
|
274
284
|
Object.assign(existingLine, line);
|
|
275
285
|
// Mark basket lines component for check
|
|
276
286
|
const existingComp = this.lineComponents.find(comp => comp.line.id === line.id);
|
|
277
|
-
existingComp.cdr.markForCheck();
|
|
287
|
+
existingComp === null || existingComp === void 0 ? void 0 : existingComp.cdr.markForCheck();
|
|
278
288
|
// Force reload the basket entries if their quantities or selected items have changed
|
|
279
289
|
const entries = line.entries.found.sort(e => parseInt(e.id, 10));
|
|
280
290
|
const hash = entries.map(e => e.attributes['selected-item-id'] + '-' + e.attributes.quantity).join('/');
|
|
281
|
-
if (hash !== this.linesHashes[line.id] && existingComp.entriesLines$.value) {
|
|
291
|
+
if (hash !== this.linesHashes[line.id] && (existingComp === null || existingComp === void 0 ? void 0 : existingComp.entriesLines$.value)) {
|
|
282
292
|
existingComp.buildEntriesLines();
|
|
283
293
|
this.linesHashes[line.id] = hash;
|
|
284
294
|
}
|
|
285
295
|
}
|
|
286
296
|
else {
|
|
287
|
-
// Push the new line to the array
|
|
288
|
-
this.lines.
|
|
297
|
+
// Push the new line to the beggining of the array
|
|
298
|
+
this.lines.unshift(line);
|
|
289
299
|
}
|
|
290
300
|
});
|
|
291
301
|
// Remove deleted lines
|
|
@@ -303,7 +313,7 @@ export class BasketPreviewBlockComponent extends EventTracerComponent {
|
|
|
303
313
|
}
|
|
304
314
|
}
|
|
305
315
|
}
|
|
306
|
-
BasketPreviewBlockComponent.ɵfac = function BasketPreviewBlockComponent_Factory(t) { return new (t || BasketPreviewBlockComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.
|
|
316
|
+
BasketPreviewBlockComponent.ɵfac = function BasketPreviewBlockComponent_Factory(t) { return new (t || BasketPreviewBlockComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.PointOfSalesService), i0.ɵɵdirectiveInject(i2.ContextService), i0.ɵɵdirectiveInject(i3.BasketsService), i0.ɵɵdirectiveInject(i4.MediaMatcher), i0.ɵɵdirectiveInject(i5.AnalyticsService)); };
|
|
307
317
|
BasketPreviewBlockComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BasketPreviewBlockComponent, selectors: [["ng-miam-basket-preview-block"]], viewQuery: function BasketPreviewBlockComponent_Query(rf, ctx) { if (rf & 1) {
|
|
308
318
|
i0.ɵɵviewQuery(BasketPreviewLineComponent, true);
|
|
309
319
|
i0.ɵɵviewQuery(BasketPreviewLineComponent, true);
|
|
@@ -311,43 +321,55 @@ BasketPreviewBlockComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BasketPreview
|
|
|
311
321
|
var _t;
|
|
312
322
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.lineComponents = _t);
|
|
313
323
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.basketPreviewRecipeRows = _t);
|
|
314
|
-
} }, inputs: { recipeId: "recipeId", showNotice: "showNotice", recipesAlwaysExpanded: "recipesAlwaysExpanded", itemsAlwaysExpanded: "itemsAlwaysExpanded", displayItemsUnitaryPrice: "displayItemsUnitaryPrice", recipesIds: "recipesIds" }, outputs: { statsUpdated: "statsUpdated", guestCountChanged: "guestCountChanged", loading: "loading" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 7, vars: 2, consts: function () { var
|
|
315
|
-
const
|
|
316
|
-
|
|
324
|
+
} }, inputs: { recipeId: "recipeId", showNotice: "showNotice", recipesAlwaysExpanded: "recipesAlwaysExpanded", itemsAlwaysExpanded: "itemsAlwaysExpanded", displayItemsUnitaryPrice: "displayItemsUnitaryPrice", recipesIds: "recipesIds" }, outputs: { statsUpdated: "statsUpdated", guestCountChanged: "guestCountChanged", loading: "loading" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 7, vars: 2, consts: function () { var i18n_0; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
325
|
+
const MSG_EXTERNAL_4502109196981158790$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS____1 = goog.getMsg("Vous avez");
|
|
326
|
+
i18n_0 = MSG_EXTERNAL_4502109196981158790$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS____1;
|
|
317
327
|
}
|
|
318
328
|
else {
|
|
319
|
-
|
|
320
|
-
} var
|
|
321
|
-
const
|
|
322
|
-
|
|
329
|
+
i18n_0 = $localize `:␟1b003330a38ca49b68845074c5a1d3975e4bb546␟4502109196981158790:Vous avez`;
|
|
330
|
+
} var i18n_2; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
331
|
+
const MSG_EXTERNAL_9113580200567550319$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS____3 = goog.getMsg("repas dans votre panier");
|
|
332
|
+
i18n_2 = MSG_EXTERNAL_9113580200567550319$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS____3;
|
|
323
333
|
}
|
|
324
334
|
else {
|
|
325
|
-
|
|
335
|
+
i18n_2 = $localize `:␟b925ed1ff7370deb1c9d7c752727b9b3b9d032d2␟9113580200567550319:repas dans votre panier`;
|
|
326
336
|
} var i18n_5; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
327
|
-
const
|
|
328
|
-
i18n_5 =
|
|
337
|
+
const MSG_EXTERNAL_288551008191807939$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS____6 = goog.getMsg("Vous n'avez pas encore s\u00E9lectionn\u00E9 de repas.");
|
|
338
|
+
i18n_5 = MSG_EXTERNAL_288551008191807939$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS____6;
|
|
329
339
|
}
|
|
330
340
|
else {
|
|
331
|
-
i18n_5 = $localize `:␟
|
|
341
|
+
i18n_5 = $localize `:␟93545d51c80c9c31f09ed7ebf3bd9f3a7a8faac4␟288551008191807939:Vous n'avez pas encore sélectionné de repas.`;
|
|
332
342
|
} var i18n_7; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
333
|
-
const
|
|
334
|
-
i18n_7 =
|
|
343
|
+
const MSG_EXTERNAL_4236077440019410708$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS_____8 = goog.getMsg("Naviguez vers la page d'une recette, puis cliquez sur \"Commander les ingr\u00E9dients\".");
|
|
344
|
+
i18n_7 = MSG_EXTERNAL_4236077440019410708$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS_____8;
|
|
335
345
|
}
|
|
336
346
|
else {
|
|
337
|
-
i18n_7 = $localize `:␟
|
|
347
|
+
i18n_7 = $localize `:␟f2dbdf98d72d476636f801e65966528b783d1688␟4236077440019410708:Naviguez vers la page d'une recette, puis cliquez sur "Commander les ingrédients".`;
|
|
338
348
|
} var i18n_9; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
339
|
-
const
|
|
340
|
-
i18n_9 =
|
|
349
|
+
const MSG_EXTERNAL_5143648071312042408$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS_____10 = goog.getMsg("Chargement du repas...");
|
|
350
|
+
i18n_9 = MSG_EXTERNAL_5143648071312042408$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS_____10;
|
|
341
351
|
}
|
|
342
352
|
else {
|
|
343
|
-
i18n_9 = $localize `:␟
|
|
353
|
+
i18n_9 = $localize `:␟523c6748d32ce2079498ff4de01387f2d6515c44␟5143648071312042408:Chargement du repas...`;
|
|
344
354
|
} var i18n_11; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
345
|
-
const
|
|
346
|
-
i18n_11 =
|
|
355
|
+
const MSG_EXTERNAL_6011677334812397725$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS_____12 = goog.getMsg("Chargement des repas...");
|
|
356
|
+
i18n_11 = MSG_EXTERNAL_6011677334812397725$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS_____12;
|
|
357
|
+
}
|
|
358
|
+
else {
|
|
359
|
+
i18n_11 = $localize `:␟424117ab4a286734aad0d346b2d892aebddb5927␟6011677334812397725:Chargement des repas...`;
|
|
360
|
+
} var i18n_13; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
361
|
+
const MSG_EXTERNAL_4182983336835891106$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS__14 = goog.getMsg("D\u00E9sol\u00E9, ce magasin ne permet pas de s\u00E9lectionner des repas.");
|
|
362
|
+
i18n_13 = MSG_EXTERNAL_4182983336835891106$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS__14;
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
i18n_13 = $localize `:␟df6602bf298f29976aa1fc43e12e25e9a677a51d␟4182983336835891106:Désolé, ce magasin ne permet pas de sélectionner des repas.`;
|
|
366
|
+
} var i18n_15; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
367
|
+
const MSG_EXTERNAL_5055873666849956816$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS__16 = goog.getMsg("Veuillez s\u00E9lectionner un autre magasin");
|
|
368
|
+
i18n_15 = MSG_EXTERNAL_5055873666849956816$$LIB__WEB_COMPONENTS_BASKET_PREVIEW_BASKET_PREVIEW_BLOCK_BASKET_PREVIEW_BLOCK_COMPONENT_TS__16;
|
|
347
369
|
}
|
|
348
370
|
else {
|
|
349
|
-
|
|
350
|
-
} return [[1, "miam-basket-preview-block__anchor"], ["previewBlockTop", ""], ["class", "miam-basket-preview-block", 4, "ngIf", "ngIfElse"], ["cors", ""], ["noPos", ""], [1, "miam-basket-preview-block"], [4, "ngIf", "ngIfElse"], ["class", "miam-basket-preview-
|
|
371
|
+
i18n_15 = $localize `:␟bbc408c854684447d02f0dd5b027598d8d31ab18␟5055873666849956816:Veuillez sélectionner un autre magasin`;
|
|
372
|
+
} return [[1, "miam-basket-preview-block__anchor"], ["previewBlockTop", ""], ["class", "miam-basket-preview-block", 4, "ngIf", "ngIfElse"], ["cors", ""], ["noPos", ""], [1, "miam-basket-preview-block"], [4, "ngIf", "ngIfElse"], ["class", "miam-basket-preview-block__title miam-ds-text weight-xxl size-l", 4, "ngIf"], [1, "miam-basket-preview-block__lines"], [3, "line", "blockStates", "recipesAlwaysExpanded", "itemsAlwaysExpanded", "displayItemsUnitaryPrice", "originTrace", "ngStyle", "removed", "countChanged", "replaceItem", 4, "ngFor", "ngForOf"], [3, "basketEntry", "originTrace", "selected", 4, "ngIf"], ["class", "miam-basket-preview-block__lines__not-found", 4, "ngIf"], ["class", "miam-basket-preview-block__lines__loader", 4, "ngIf"], [1, "miam-basket-preview-block__title", "miam-ds-text", "weight-xxl", "size-l"], i18n_0, [1, "number"], i18n_2, [3, "line", "blockStates", "recipesAlwaysExpanded", "itemsAlwaysExpanded", "displayItemsUnitaryPrice", "originTrace", "ngStyle", "removed", "countChanged", "replaceItem"], [3, "basketEntry", "originTrace", "selected"], [1, "miam-basket-preview-block__lines__not-found"], i18n_5, [4, "ngIf"], i18n_7, [1, "miam-basket-preview-block__lines__loader"], i18n_9, i18n_11, [1, "miam-basket-preview-block__noPos"], i18n_13, i18n_15]; }, template: function BasketPreviewBlockComponent_Template(rf, ctx) { if (rf & 1) {
|
|
351
373
|
i0.ɵɵelement(0, "div", 0, 1);
|
|
352
374
|
i0.ɵɵtemplate(2, BasketPreviewBlockComponent_div_2_Template, 3, 4, "div", 2);
|
|
353
375
|
i0.ɵɵtemplate(3, BasketPreviewBlockComponent_ng_template_3_Template, 1, 0, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
|
|
@@ -356,7 +378,7 @@ BasketPreviewBlockComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BasketPreview
|
|
|
356
378
|
const _r2 = i0.ɵɵreference(4);
|
|
357
379
|
i0.ɵɵadvance(2);
|
|
358
380
|
i0.ɵɵproperty("ngIf", !ctx.corsIssues)("ngIfElse", _r2);
|
|
359
|
-
} }, directives: [
|
|
381
|
+
} }, directives: [i6.NgIf, i6.NgForOf, i7.BasketPreviewLineComponent, i6.NgStyle, i8.ReplaceItemComponent, i9.LoaderComponent, i10.CORSOverlayComponent], pipes: [i6.AsyncPipe], styles: [":host ::-webkit-scrollbar{cursor:-webkit-grab;height:7px;width:5px}:host ::-webkit-scrollbar-track{background:var(--m-color-grey)}:host ::-webkit-scrollbar-thumb{background:var(--m-color-primary);border-radius:5px}.miam-basket-preview-block{height:100%;position:relative}.miam-basket-preview-block .miam-basket-preview-block__title{padding:8px 0 24px}.miam-basket-preview-block .miam-basket-preview-block__title span.number{margin:0 6px}.miam-basket-preview-block .miam-basket-preview-block__recipe__link{-webkit-tap-highlight-color:transparent;color:var(--m-color-grey-text);cursor:pointer;position:absolute;right:300px;text-decoration:underline;top:60px;transition:var(--m-default-transition)}@media (min-width:1022px){.miam-basket-preview-block .miam-basket-preview-block__recipe__link:hover{color:var(--m-color-primary)}}.miam-basket-preview-block .miam-basket-preview-block__header{display:flex;justify-content:space-between;margin-bottom:0;padding-bottom:10px}.miam-basket-preview-block .miam-basket-preview-block__header .miam-basket-preview-block__header__actions{align-items:center;display:flex}.miam-basket-preview-block .miam-basket-preview-block__header .miam-basket-preview-block__header__actions .miam-basket-preview-block__header__empty-basket{margin-right:20px}.miam-basket-preview-block .miam-basket-preview-block__header .miam-basket-preview-block__header__actions .miam-basket-preview-block__header__empty-basket .fa-trash-alt{margin-right:8px;margin-top:-1px;width:13px}.miam-basket-preview-block .miam-basket-preview-block__header .miam-basket-preview-block__header__actions .miam-basket-preview-block__header__chevron{cursor:pointer;transition-duration:.5s}.miam-basket-preview-block .miam-basket-preview-block__header .miam-basket-preview-block__header__actions .miam-basket-preview-block__header__chevron svg{width:18px}.miam-basket-preview-block .miam-basket-preview-block__header .miam-basket-preview-block__header__actions .miam-basket-preview-block__chevron__down{transform:rotate(-180deg)}.miam-basket-preview-block .miam-basket-preview-block__lines{display:flex;flex-direction:column;gap:8px;transition:height .3s}.miam-basket-preview-block .miam-basket-preview-block__lines .miam-basket-preview-block__lines__not-found{margin-left:20px;margin-top:15px}.miam-basket-preview-block .miam-basket-preview-block__lines .miam-basket-preview-block__lines__loader,.miam-basket-preview-block .miam-basket-preview-block__lines__loader{align-items:center;display:flex;flex-direction:column;justify-content:center}.miam-basket-preview-block .miam-basket-preview-block__lines__loader{padding:10px}.miam-basket-preview-block .miam-basket-preview-block__noPos{font-size:17px}"], encapsulation: 2, changeDetection: 0 });
|
|
360
382
|
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(BasketPreviewBlockComponent, [{
|
|
361
383
|
type: Component,
|
|
362
384
|
args: [{
|
|
@@ -366,7 +388,7 @@ BasketPreviewBlockComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BasketPreview
|
|
|
366
388
|
encapsulation: ViewEncapsulation.None,
|
|
367
389
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
368
390
|
}]
|
|
369
|
-
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.
|
|
391
|
+
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.PointOfSalesService }, { type: i2.ContextService }, { type: i3.BasketsService }, { type: i4.MediaMatcher }, { type: i5.AnalyticsService }]; }, { recipeId: [{
|
|
370
392
|
type: Input
|
|
371
393
|
}], showNotice: [{
|
|
372
394
|
type: Input
|
|
@@ -391,4 +413,4 @@ BasketPreviewBlockComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BasketPreview
|
|
|
391
413
|
type: ViewChildren,
|
|
392
414
|
args: [BasketPreviewLineComponent]
|
|
393
415
|
}] }); })();
|
|
394
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0LXByZXZpZXctYmxvY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvYmFza2V0LXByZXZpZXcvYmFza2V0LXByZXZpZXctYmxvY2svYmFza2V0LXByZXZpZXctYmxvY2suY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9iYXNrZXQtcHJldmlldy9iYXNrZXQtcHJldmlldy1ibG9jay9iYXNrZXQtcHJldmlldy1ibG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBYSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUMvSCxZQUFZLEVBQTJDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0sb0NBQW9DLENBQUM7QUFFakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLE1BQU0sTUFBTSxrQkFBa0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8s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LFlBQVk7a0JBQXJCLE1BQU07WUFDRyxpQkFBaUI7a0JBQTFCLE1BQU07WUFDRyxPQUFPO2tCQUFoQixNQUFNO1lBRW1DLGNBQWM7a0JBQXZELFlBQVk7bUJBQUMsMEJBQTBCO1lBQ0UsdUJBQXVCO2tCQUFoRSxZQUFZO21CQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT25EZXN0cm95LCBWaWV3RW5jYXBzdWxhdGlvbiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlcixcbiAgVmlld0NoaWxkcmVuLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEFmdGVyVmlld0luaXQsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdyb2Nlcmllc0xpc3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcy9ncm9jZXJpZXMtbGlzdHMuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNrZXRzU2VydmljZSwgQmFza2V0U3RhdHMgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMvYmFza2V0cy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2tldFByZXZpZXdMaW5lIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscy9iYXNrZXQtcHJldmlldy1saW5lJztcbmltcG9ydCB7IHNraXBXaGlsZSwgdGFwLCBtYXAsIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCByZW1vdmUgZnJvbSAnbG9kYXNoLWVzL3JlbW92ZSc7XG5pbXBvcnQgeyBCYXNrZXRQcmV2aWV3TGluZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2tldC1wcmV2aWV3LWxpbmUvYmFza2V0LXByZXZpZXctbGluZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGVzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcy9wb2ludC1vZi1zYWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX3NlcnZpY2VzL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBNZWRpYU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UsIEN1c3RvbVByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMvYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXZlbnRUcmFjZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fY29tcG9uZW50cy9hYnN0cmFjdHMvZXZlbnQtdHJhY2VyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tYmFza2V0LXByZXZpZXctYmxvY2snLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFza2V0LXByZXZpZXctYmxvY2suY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYXNrZXQtcHJldmlldy1ibG9jay5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCYXNrZXRQcmV2aWV3QmxvY2tDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSByZWNpcGVJZDogc3RyaW5nO1xuICBASW5wdXQoKSBzaG93Tm90aWNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlY2lwZXNBbHdheXNFeHBhbmRlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpdGVtc0Fsd2F5c0V4cGFuZGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc3BsYXlJdGVtc1VuaXRhcnlQcmljZSA9IGZhbHNlO1xuICBASW5wdXQoKSByZWNpcGVzSWRzID0gW107XG4gIEBPdXRwdXQoKSBzdGF0c1VwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEJhc2tldFN0YXRzPigpO1xuICBAT3V0cHV0KCkgZ3Vlc3RDb3VudENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIGxvYWRpbmcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuXG4gIEBWaWV3Q2hpbGRyZW4oQmFza2V0UHJldmlld0xpbmVDb21wb25lbnQpIGxpbmVDb21wb25lbnRzOiBCYXNrZXRQcmV2aWV3TGluZUNvbXBvbmVudFtdO1xuICBAVmlld0NoaWxkcmVuKEJhc2tldFByZXZpZXdMaW5lQ29tcG9uZW50KSBiYXNrZXRQcmV2aWV3UmVjaXBlUm93czogUXVlcnlMaXN0PEJhc2tldFByZXZpZXdMaW5lQ29tcG9uZW50PjtcblxuICBwdWJsaWMgc2hvd0xpbmVzID0gdHJ1ZTtcbiAgcHVibGljIGxpbmVzOiBCYXNrZXRQcmV2aWV3TGluZVtdO1xuICBjb3JzSXNzdWVzID0gZmFsc2U7XG4gIGljb24gPSBJY29uO1xuICBpc01vYmlsZSA9IGZhbHNlO1xuXG4gIGJsb2NrU3RhdGVzOiBCZWhhdmlvclN1YmplY3Q8eyBjdXJyZW50T3BlbkxpbmU6IHN0cmluZzsgb3ZlcmxheU9wZW46IGJvb2xlYW47IGxpbmVDb21wb25lbnQ6IEJhc2tldFByZXZpZXdMaW5lQ29tcG9uZW50IH0+O1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IFtdO1xuICBwcml2YXRlIGxpbmVzSGFzaGVzID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBsaXN0c1NlcnZpY2U6IEdyb2Nlcmllc0xpc3RzU2VydmljZSxcbiAgICBwdWJsaWMgcG9zU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwdWJsaWMgYmFza2V0c1NlcnZpY2U6IEJhc2tldHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVkaWFNYXRjaGVyOiBNZWRpYU1hdGNoZXIsXG4gICAgcHJvdGVjdGVkIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5pc01vYmlsZSA9IHRoaXMubWVkaWFNYXRjaGVyLm1hdGNoTWVkaWEoJyhtYXgtd2lkdGg6IDEwMjNweCknKS5tYXRjaGVzO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5ibG9ja1N0YXRlcyA9IG5ldyBCZWhhdmlvclN1YmplY3QoeyBjdXJyZW50T3BlbkxpbmU6IG51bGwsIG92ZXJsYXlPcGVuOiBmYWxzZSwgbGluZUNvbXBvbmVudDogbnVsbCB9KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXG4gICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldENPUlNJc3N1ZXNTdGF0ZSgpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLmNvcnNJc3N1ZXMgPSByZXM7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pLFxuICAgICAgdGhpcy5ibG9ja1N0YXRlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oYW5kZWxibG9ja1N0YXRlKCkpLFxuICAgICAgdGhpcy5saXN0c1NlcnZpY2UudGFrZUZpcnN0TGlzdCgpLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChsaXN0ID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRQcmV2aWV3JC5waXBlKFxuICAgICAgICAgICAgLy8gc2tpcFdoaWxlKHByZXZpZXcgPT4gIXByZXZpZXcgfHwgcHJldmlldy5sZW5ndGggPT09IDAgfHwgcHJldmlldy5sZW5ndGggIT09IGxpc3QucmVjaXBlSW5mb3MubGVuZ3RoKSxcbiAgICAgICAgICAgIHNraXBXaGlsZShwcmV2aWV3ID0+ICFwcmV2aWV3IHx8IHByZXZpZXcubGVuZ3RoICE9PSBsaXN0LnJlY2lwZUluZm9zLmxlbmd0aCksXG4gICAgICAgICAgICBtYXAocHJldmlld0xpbmVzID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMucmVjaXBlc0lkcy5sZW5ndGggPT09IDApIHsgcmV0dXJuIHByZXZpZXdMaW5lczsgfVxuXG4gICAgICAgICAgICAgIHJldHVybiBwcmV2aWV3TGluZXMuZmlsdGVyKGxpbmUgPT4gdGhpcy5yZWNpcGVzSWRzLmluY2x1ZGVzKGxpbmUuaWQpKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKHByZXZpZXcgPT4gdGhpcy5yZWZyZXNoUHJldmlldyhbLi4ucHJldmlld10ucmV2ZXJzZSgpKSlcbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcubmV4dChmYWxzZSk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pLFxuICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRTdGF0cyQucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKHN0YXRzID0+ICFzdGF0cyksXG4gICAgICAgIHRhcChzdGF0cyA9PiB0aGlzLnN0YXRzVXBkYXRlZC5lbWl0KHN0YXRzKSlcbiAgICAgICkuc3Vic2NyaWJlKCksXG4gICAgICB0aGlzLnBvc1NlcnZpY2UuaXNQb3NWYWxpZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgXTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoT2JqZWN0LmtleXMoY2hhbmdlcykuaW5jbHVkZXMoJ3JlY2lwZUlkJykpIHtcbiAgICAgIHRoaXMubG9hZGluZy5uZXh0KHRydWUpO1xuICAgIH1cbiAgICB0aGlzLnBhZ2V2aWV3KCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICBpZiAodGhpcy5iYXNrZXRQcmV2aWV3UmVjaXBlUm93cyAmJiB0aGlzLnJlY2lwZUlkICl7XG4gICAgICB0aGlzLmZpbmRBbmRGb2N1c0N1cnJlbnRSZWNpcGUoIHRoaXMuYmFza2V0UHJldmlld1JlY2lwZVJvd3MudG9BcnJheSgpKTtcbiAgICB9XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmJhc2tldFByZXZpZXdSZWNpcGVSb3dzLmNoYW5nZXMuc3Vic2NyaWJlKChicHJyczogQmFza2V0UHJldmlld0xpbmVDb21wb25lbnRbXSkgPT4ge1xuICAgICAgICB0aGlzLmZpbmRBbmRGb2N1c0N1cnJlbnRSZWNpcGUoYnBycnMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YjogU3Vic2NyaXB0aW9uKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBjdXJyZW50UGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnYmFza2V0LXByZXZpZXcnO1xuICB9XG5cbiAgdG9nZ2xlTGluZXMoKSB7XG4gICAgdGhpcy5zaG93TGluZXMgPSAhdGhpcy5zaG93TGluZXM7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcmVtb3ZlUmVjaXBlKGxpbmU6IEJhc2tldFByZXZpZXdMaW5lKSB7XG4gICAgdGhpcy5saXN0c1NlcnZpY2UucmVtb3ZlUmVjaXBlRnJvbUxpc3QobGluZS5pZCwgdGhpcy5ldmVudFRyYWNlKCkpO1xuICAgIHRoaXMubGlzdHNTZXJ2aWNlLnJlY2lwZXNUb1JlbW92ZS5waXBlKFxuICAgICAgc2tpcFdoaWxlKHRvUmVtb3ZlID0+IHRvUmVtb3ZlLm1hcChpID0+IGkuaWQpLmluY2x1ZGVzKGxpbmUuaWQpKSxcbiAgICAgIHRha2UoMSlcbiAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCByZWNpcGVJbmRleCA9IHRoaXMucmVjaXBlc0lkcy5maW5kSW5kZXgocmVjaXBlSWQgPT4gcmVjaXBlSWQgPT09IGxpbmUuaWQpO1xuICAgICAgaWYgKHJlY2lwZUluZGV4ID49IDApIHtcbiAgICAgICAgdGhpcy5yZWNpcGVzSWRzLnNwbGljZShyZWNpcGVJbmRleCwgMSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVSZWNpcGUobGluZTogQmFza2V0UHJldmlld0xpbmUpIHtcbiAgICB0aGlzLmxpc3RzU2VydmljZS51cGRhdGVSZWNpcGVHdWVzdHMobGluZS5pZCwgbGluZS5jb3VudCwgdGhpcy5ldmVudFRyYWNlKCkpLnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZ3Vlc3RDb3VudENoYW5nZWQuZW1pdChsaW5lLmNvdW50KTtcbiAgfVxuXG4gIGNsb3NlT3ZlcmxheSgpIHtcbiAgICBpZiAodGhpcy5ibG9ja1N0YXRlcy5nZXRWYWx1ZSgpICYmIHRoaXMuYmxvY2tTdGF0ZXMuZ2V0VmFsdWUoKS5saW5lQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLmJsb2NrU3RhdGVzLnZhbHVlLmxpbmVDb21wb25lbnQucHJvZHVjdENob3NlbigpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRlbGJsb2NrU3RhdGUoKSB7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgc2Nyb2xsdG9wKGVsZW1lbnQ6IEVsZW1lbnQpe1xuICAgIC8vIHNjcm9sbCB0b3AgYmFzZSBvbiBtb2RhbCBjb250YWluZXJcbiAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgY29uc3QgbW9kYWxDb250YWluZXIgPSAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWlhbS13cmFwcGVyLXByZXZpZXcnKVswXTtcbiAgICAgIGlmIChtb2RhbENvbnRhaW5lcikge1xuICAgICAgICBtb2RhbENvbnRhaW5lci5zY3JvbGxUb3AgPSAwO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gc2Nyb2xsIGJhc2Ugb24gZ2xvYmFsIHdpbmRvd1xuICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjdXJyZW50UHJvcHMoKTogQ3VzdG9tUHJvcGVydGllcyB7XG4gICAgaWYgKHRoaXMucmVjaXBlSWQpIHsgcmV0dXJuIHsgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZUlkIH07IH1cbiAgICByZXR1cm4ge307XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hQcmV2aWV3KG5ld0xpbmVzOiBCYXNrZXRQcmV2aWV3TGluZVtdKSB7XG4gICAgaWYgKCF0aGlzLmxpbmVzKSB7XG4gICAgICAvLyBGaXJzdCBsb2FkXG4gICAgICB0aGlzLmxpbmVzID0gbmV3TGluZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5ld0xpbmVzSWRzID0gW107XG4gICAgICBuZXdMaW5lcy5mb3JFYWNoKChsaW5lOiBCYXNrZXRQcmV2aWV3TGluZSkgPT4ge1xuICAgICAgICBuZXdMaW5lc0lkcy5wdXNoKGxpbmUuaWQpO1xuICAgICAgICBjb25zdCBleGlzdGluZ0xpbmUgPSB0aGlzLmxpbmVzLmZpbmQobCA9PiBsLmlkID09PSBsaW5lLmlkKTtcbiAgICAgICAgaWYgKGV4aXN0aW5nTGluZSkge1xuICAgICAgICAgIC8vIFVwZGF0ZSBleGlzdGluZyBvYmplY3Qgd2l0aCBpdHMgbmV3IHZhbHVlc1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24oZXhpc3RpbmdMaW5lLCBsaW5lKTtcblxuICAgICAgICAgIC8vIE1hcmsgYmFza2V0IGxpbmVzIGNvbXBvbmVudCBmb3IgY2hlY2tcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0NvbXAgPSB0aGlzLmxpbmVDb21wb25lbnRzLmZpbmQoY29tcCA9PiBjb21wLmxpbmUuaWQgPT09IGxpbmUuaWQpO1xuICAgICAgICAgIGV4aXN0aW5nQ29tcC5jZHIubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgICAgICAvLyBGb3JjZSByZWxvYWQgdGhlIGJhc2tldCBlbnRyaWVzIGlmIHRoZWlyIHF1YW50aXRpZXMgb3Igc2VsZWN0ZWQgaXRlbXMgaGF2ZSBjaGFuZ2VkXG4gICAgICAgICAgY29uc3QgZW50cmllcyA9IGxpbmUuZW50cmllcy5mb3VuZC5zb3J0KGUgPT4gcGFyc2VJbnQoZS5pZCwgMTApKTtcbiAgICAgICAgICBjb25zdCBoYXNoID0gZW50cmllcy5tYXAoZSA9PiBlLmF0dHJpYnV0ZXNbJ3NlbGVjdGVkLWl0ZW0taWQnXSArICctJyArIGUuYXR0cmlidXRlcy5xdWFudGl0eSkuam9pbignLycpO1xuICAgICAgICAgIGlmIChoYXNoICE9PSB0aGlzLmxpbmVzSGFzaGVzW2xpbmUuaWRdICYmIGV4aXN0aW5nQ29tcC5lbnRyaWVzTGluZXMkLnZhbHVlKSB7XG4gICAgICAgICAgICBleGlzdGluZ0NvbXAuYnVpbGRFbnRyaWVzTGluZXMoKTtcbiAgICAgICAgICAgIHRoaXMubGluZXNIYXNoZXNbbGluZS5pZF0gPSBoYXNoO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBQdXNoIHRoZSBuZXcgbGluZSB0byB0aGUgYXJyYXlcbiAgICAgICAgICB0aGlzLmxpbmVzLnB1c2gobGluZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgLy8gUmVtb3ZlIGRlbGV0ZWQgbGluZXNcbiAgICAgIHJlbW92ZSh0aGlzLmxpbmVzLCBsID0+ICFuZXdMaW5lc0lkcy5pbmNsdWRlcyhsLmlkKSk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEFuZEZvY3VzQ3VycmVudFJlY2lwZShyZWNpcGVSb3dzOiBCYXNrZXRQcmV2aWV3TGluZUNvbXBvbmVudFtdKXtcblxuICAgIGNvbnN0IHJlY2lwZVJvd0VsZW1lbnQgPSByZWNpcGVSb3dzLmZpbmQoIGJwcnIgPT4gYnByci5saW5lLmlkID09PSB0aGlzLnJlY2lwZUlkKTtcbiAgICBpZiAocmVjaXBlUm93RWxlbWVudCkge1xuICAgICAgcmVjaXBlUm93RWxlbWVudC5leHBhbmRlZCA9IHRydWU7XG4gICAgICByZWNpcGVSb3dFbGVtZW50LmJ1aWxkRW50cmllc0xpbmVzKCk7XG4gICAgICByZWNpcGVSb3dFbGVtZW50LmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAocmVjaXBlUm93RWxlbWVudC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgRWxlbWVudCkuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgI3ByZXZpZXdCbG9ja1RvcCBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctYmxvY2tfX2FuY2hvclwiPjwvZGl2PlxuPGRpdiAqbmdJZj0nIWNvcnNJc3N1ZXMgZWxzZSBjb3JzJyBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctYmxvY2tcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihwb3NTZXJ2aWNlLmlzUG9zVmFsaWQoKSB8IGFzeW5jKSBlbHNlIG5vUG9zXCI+XG4gIFxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWJsb2NrX19saW5lc1wiICpuZ0lmPVwic2hvd0xpbmVzXCI+XG4gICAgICAgIDxuZy1taWFtLWJhc2tldC1wcmV2aWV3LWxpbmVcbiAgICAgICAgKm5nRm9yPVwibGV0IGxpbmUgb2YgbGluZXNcIlxuICAgICAgICBbbGluZV09XCJsaW5lXCJcbiAgICAgICAgW2Jsb2NrU3RhdGVzXT1cImJsb2NrU3RhdGVzXCJcbiAgICAgICAgW3JlY2lwZXNBbHdheXNFeHBhbmRlZF09XCJyZWNpcGVzQWx3YXlzRXhwYW5kZWRcIlxuICAgICAgICBbaXRlbXNBbHdheXNFeHBhbmRlZF09XCJpdGVtc0Fsd2F5c0V4cGFuZGVkXCJcbiAgICAgICAgW2Rpc3BsYXlJdGVtc1VuaXRhcnlQcmljZV09XCJkaXNwbGF5SXRlbXNVbml0YXJ5UHJpY2VcIlxuICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZSgpXCJcbiAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlUmVjaXBlKCRldmVudClcIlxuICAgICAgICAoY291bnRDaGFuZ2VkKT1cInVwZGF0ZVJlY2lwZSgkZXZlbnQpXCJcbiAgICAgICAgKHJlcGxhY2VJdGVtKT0nc2Nyb2xsdG9wKHByZXZpZXdCbG9ja1RvcCknXG4gICAgICAgIFtuZ1N0eWxlXT1cInsnZGlzcGxheSc6IGJsb2NrU3RhdGVzPy52YWx1ZT8ub3ZlcmxheU9wZW4gPyAnbm9uZScgOiAnYmxvY2snfSBcIlxuICAgICAgPjwvbmctbWlhbS1iYXNrZXQtcHJldmlldy1saW5lPlxuICAgICAgPG5nLW1pYW0tcmVwbGFjZS1pdGVtICpuZ0lmPVwiIGJsb2NrU3RhdGVzPy52YWx1ZT8ub3ZlcmxheU9wZW4gXCIgXG4gICAgICAgIFtsaW5lXT1cImJsb2NrU3RhdGVzPy52YWx1ZT8ubGluZUNvbXBvbmVudC5saW5lXCJcbiAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2UoKVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJibG9ja1N0YXRlcz8udmFsdWU/LmxpbmVDb21wb25lbnQucHJvZHVjdENob3NlbigkZXZlbnQpXCI+XG4gICAgICA8L25nLW1pYW0tcmVwbGFjZS1pdGVtPlxuICAgICAgPGRpdiAqbmdJZj1cIiEobG9hZGluZyB8IGFzeW5jKSAmJiAoIWxpbmVzIHx8IGxpbmVzLmxlbmd0aCA9PT0gMClcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctYmxvY2tfX2xpbmVzX19ub3QtZm91bmRcIj5cbiAgICAgICAgPHA+PGIgaTE4bj5Wb3VzIG4nYXZleiBwYXMgZW5jb3JlIHPDqWxlY3Rpb25uw6kgZGUgcmVwYXMuPC9iPjwvcD5cbiAgICAgICAgPHAgaTE4biAqbmdJZj1cInNob3dOb3RpY2VcIj5OYXZpZ3VleiB2ZXJzIGxhIHBhZ2UgZCd1bmUgcmVjZXR0ZSwgcHVpcyBjbGlxdWV6IHN1ciBcIkNvbW1hbmRlciBsZXMgaW5ncsOpZGllbnRzXCIuPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIFxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWJsb2NrX19saW5lc19fbG9hZGVyXCIgKm5nSWY9XCIobG9hZGluZyB8IGFzeW5jKVwiPlxuICAgICAgPG5nLW1pYW0tbG9hZGVyPjwvbmctbWlhbS1sb2FkZXI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwicmVjaXBlSWRcIj5DaGFyZ2VtZW50IGR1IHJlcGFzLi4uPC9zcGFuPlxuICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwiIXJlY2lwZUlkXCI+Q2hhcmdlbWVudCBkZXMgcmVwYXMuLi48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjY29ycz5cbjxuZy1taWFtLWNvcnMtb3ZlcmxheT48L25nLW1pYW0tY29ycy1vdmVybGF5PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbm9Qb3M+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWJsb2NrX19ub1Bvc1wiPlxuICAgIDxzcGFuIGkxOG4+RMOpc29sw6ksIGNlIG1hZ2FzaW4gbmUgcGVybWV0IHBhcyBkZSBzw6lsZWN0aW9ubmVyIGRlcyByZXBhcy48L3NwYW4+XG4gICAgPGJyPlxuICAgIDxzcGFuIGkxOG4+VmV1aWxsZXogc8OpbGVjdGlvbm5lciB1biBhdXRyZSBtYWdhc2luPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
416
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0LXByZXZpZXctYmxvY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvYmFza2V0LXByZXZpZXcvYmFza2V0LXByZXZpZXctYmxvY2svYmFza2V0LXByZXZpZXctYmxvY2suY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9iYXNrZXQtcHJldmlldy9iYXNrZXQtcHJldmlldy1ibG9jay9iYXNrZXQtcHJldmlldy1ibG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBYSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUMvSCxZQUFZLEVBQTJDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWdCLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLE1BQU0sTUFBTSxrQkFBa0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVB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QUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7ME5BRVUsUUFBUTtrQkFBaEIsS0FBSztZQUNHLFVBQVU7a0JBQWxCLEtBQUs7WUFDRyxxQkFBcUI7a0JBQTdCLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyx3QkFBd0I7a0JBQWhDLEtBQUs7WUFDRyxVQUFVO2tCQUFsQixLQUFLO1lBQ0ksWUFBWTtrQkFBckIsTUFBTTtZQUNHLGlCQUFpQjtrQkFBMUIsTUFBTTtZQUNHLE9BQU87a0JBQWhCLE1BQU07WUFFbUMsY0FBYztrQkFBdkQsWUFBWTttQkFBQywwQkFBMEI7WUFDRSx1QkFBdUI7a0JBQWhFLFlBQVk7bUJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPbkRlc3Ryb3ksIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyLFxuICBWaWV3Q2hpbGRyZW4sIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFza2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMvYmFza2V0cy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2tldFByZXZpZXdMaW5lIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscy9iYXNrZXQtcHJldmlldy1saW5lJztcbmltcG9ydCB7IHNraXBXaGlsZSwgdGFwLCBtYXAsIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCByZW1vdmUgZnJvbSAnbG9kYXNoLWVzL3JlbW92ZSc7XG5pbXBvcnQgeyBCYXNrZXRQcmV2aWV3TGluZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2tldC1wcmV2aWV3LWxpbmUvYmFza2V0LXByZXZpZXctbGluZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGVzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcy9wb2ludC1vZi1zYWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX3NlcnZpY2VzL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBNZWRpYU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMvYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXZlbnRUcmFjZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fY29tcG9uZW50cy9hYnN0cmFjdHMvZXZlbnQtdHJhY2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXNrZXQgfSBmcm9tICcuLi8uLi8uLi9fbW9kZWxzJztcbmltcG9ydCB7IEJhc2tldFN0YXRzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2Jhc2tldC1zdGF0cyc7XG5pbXBvcnQgeyBDdXN0b21Qcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2V2ZW50LXRyYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1iYXNrZXQtcHJldmlldy1ibG9jaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9iYXNrZXQtcHJldmlldy1ibG9jay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Jhc2tldC1wcmV2aWV3LWJsb2NrLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhc2tldFByZXZpZXdCbG9ja0NvbXBvbmVudCBleHRlbmRzIEV2ZW50VHJhY2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHJlY2lwZUlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNob3dOb3RpY2UgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVjaXBlc0Fsd2F5c0V4cGFuZGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGl0ZW1zQWx3YXlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzcGxheUl0ZW1zVW5pdGFyeVByaWNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlY2lwZXNJZHMgPSBbXTtcbiAgQE91dHB1dCgpIHN0YXRzVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QmFza2V0U3RhdHM+KCk7XG4gIEBPdXRwdXQoKSBndWVzdENvdW50Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgbG9hZGluZyA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG5cbiAgQFZpZXdDaGlsZHJlbihCYXNrZXRQcmV2aWV3TGluZUNvbXBvbmVudCkgbGluZUNvbXBvbmVudHM6IEJhc2tldFByZXZpZXdMaW5lQ29tcG9uZW50W107XG4gIEBWaWV3Q2hpbGRyZW4oQmFza2V0UHJldmlld0xpbmVDb21wb25lbnQpIGJhc2tldFByZXZpZXdSZWNpcGVSb3dzOiBRdWVyeUxpc3Q8QmFza2V0UHJldmlld0xpbmVDb21wb25lbnQ+O1xuXG4gIGxpbmVzOiBCYXNrZXRQcmV2aWV3TGluZVtdO1xuICBjb3JzSXNzdWVzID0gZmFsc2U7XG4gIGljb24gPSBJY29uO1xuICBpc01vYmlsZSA9IGZhbHNlO1xuXG4gIGJsb2NrU3RhdGVzOiBCZWhhdmlvclN1YmplY3Q8eyBjdXJyZW50T3BlbkxpbmU6IHN0cmluZzsgb3ZlcmxheU9wZW46IGJvb2xlYW47IGxpbmVDb21wb25lbnQ6IEJhc2tldFByZXZpZXdMaW5lQ29tcG9uZW50IH0+O1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IFtdO1xuICBwcml2YXRlIGxpbmVzSGFzaGVzID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBwb3NTZXJ2aWNlOiBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHB1YmxpYyBiYXNrZXRzU2VydmljZTogQmFza2V0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZWRpYU1hdGNoZXI6IE1lZGlhTWF0Y2hlcixcbiAgICBwcm90ZWN0ZWQgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZVxuICApIHtcbiAgICBzdXBlcihhbmFseXRpY3NTZXJ2aWNlKTtcbiAgICB0aGlzLmlzTW9iaWxlID0gdGhpcy5tZWRpYU1hdGNoZXIubWF0Y2hNZWRpYSgnKG1heC13aWR0aDogMTAyM3B4KScpLm1hdGNoZXM7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmJsb2NrU3RhdGVzID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7IGN1cnJlbnRPcGVuTGluZTogbnVsbCwgb3ZlcmxheU9wZW46IGZhbHNlLCBsaW5lQ29tcG9uZW50OiBudWxsIH0pO1xuICAgIHRoaXMubG9hZFByZXZpZXdXaGVuQmFza2V0SXNSZWFkeSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtcbiAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UuZ2V0Q09SU0lzc3Vlc1N0YXRlKCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuY29yc0lzc3VlcyA9IHJlcztcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSksXG4gICAgICB0aGlzLmJsb2NrU3RhdGVzLnN1YnNjcmliZSgoKSA9PiB0aGlzLmhhbmRlbGJsb2NrU3RhdGUoKSksXG4gICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLmJhc2tldFN0YXRzJC5waXBlKFxuICAgICAgICBza2lwV2hpbGUoc3RhdHMgPT4gIXN0YXRzKSxcbiAgICAgICAgdGFwKHN0YXRzID0+IHRoaXMuc3RhdHNVcGRhdGVkLmVtaXQoc3RhdHMpKVxuICAgICAgKS5zdWJzY3JpYmUoKSxcbiAgICAgIHRoaXMucG9zU2VydmljZS5pc1Bvc1ZhbGlkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgICBdO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChPYmplY3Qua2V5cyhjaGFuZ2VzKS5pbmNsdWRlcygncmVjaXBlSWQnKSkge1xuICAgICAgdGhpcy5sb2FkaW5nLm5leHQodHJ1ZSk7XG4gICAgfVxuICAgIHRoaXMucGFnZXZpZXcoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgIGlmICh0aGlzLmJhc2tldFByZXZpZXdSZWNpcGVSb3dzICYmIHRoaXMucmVjaXBlSWQgKXtcbiAgICAgIHRoaXMuZmluZEFuZEZvY3VzQ3VycmVudFJlY2lwZSggdGhpcy5iYXNrZXRQcmV2aWV3UmVjaXBlUm93cy50b0FycmF5KCkpO1xuICAgIH1cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuYmFza2V0UHJldmlld1JlY2lwZVJvd3MuY2hhbmdlcy5zdWJzY3JpYmUoKGJwcnJzOiBCYXNrZXRQcmV2aWV3TGluZUNvbXBvbmVudFtdKSA9PiB7XG4gICAgICAgIHRoaXMuZmluZEFuZEZvY3VzQ3VycmVudFJlY2lwZShicHJycyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViOiBTdWJzY3JpcHRpb24pID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdiYXNrZXQtcHJldmlldyc7XG4gIH1cblxuICBsb2FkUHJldmlld1doZW5CYXNrZXRJc1JlYWR5KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgLy8gSWYgcmVjaXBlcyBhcmUgYmVpbmcgYWRkZWQgd2Ugd2FpdCBmb3IgdGhlbSBiZWZvcmUgbG9hZGluZyB0aGUgcHJldmlld1xuICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVzV2lsbEJlQWRkZWQoKS5waXBlKFxuICAgICAgICBza2lwV2hpbGUoYWRkZWQgPT4gYWRkZWQpLFxuICAgICAgICB0YWtlKDEpXG4gICAgICApLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmJhc2tldHNTZXJ2aWNlLndhaXRGb3JCYXNrZXQpLFxuICAgICAgICBzd2l0Y2hNYXAoYmFza2V0ID0+IHRoaXMubG9hZFByZXZpZXcoYmFza2V0KSlcbiAgICAgICkuc3Vic2NyaWJlKClcbiAgICApO1xuICB9XG5cbiAgbG9hZFByZXZpZXcoYmFza2V0OiBCYXNrZXQpOiBPYnNlcnZhYmxlPEJhc2tldFByZXZpZXdMaW5lW10+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRQcmV2aWV3JC5waXBlKFxuICAgICAgc2tpcFdoaWxlKHByZXZpZXcgPT4gIXByZXZpZXcgfHwgcHJldmlldy5sZW5ndGggIT09IGJhc2tldC5yZWNpcGVJbmZvcy5sZW5ndGgpLFxuICAgICAgbWFwKHByZXZpZXdMaW5lcyA9PiB7XG4gICAgICAgIGlmICh0aGlzLnJlY2lwZXNJZHMubGVuZ3RoID09PSAwKSB7IHJldHVybiBwcmV2aWV3TGluZXM7IH1cblxuICAgICAgICByZXR1cm4gcHJldmlld0xpbmVzLmZpbHRlcihsaW5lID0+IHRoaXMucmVjaXBlc0lkcy5pbmNsdWRlcyhsaW5lLmlkKSk7XG4gICAgICB9KSxcbiAgICAgIHRhcChwcmV2aWV3ID0+IHtcbiAgICAgICAgdGhpcy5yZWZyZXNoUHJldmlldyhwcmV2aWV3KTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZW1vdmVSZWNpcGUobGluZTogQmFza2V0UHJldmlld0xpbmUpIHtcbiAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlbW92ZVJlY2lwZXNGcm9tQmFza2V0KFtsaW5lLmlkXSwgdGhpcy5ldmVudFRyYWNlKCkpO1xuICAgIHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlV2lsbEJlUmVtb3ZlZChsaW5lLmlkKS5waXBlKHNraXBXaGlsZSh3aWxsQmVSZW1vdmVkID0+IHdpbGxCZVJlbW92ZWQpLCB0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgcmVjaXBlSW5kZXggPSB0aGlzLnJlY2lwZXNJZHMuZmluZEluZGV4KHJlY2lwZUlkID0+IHJlY2lwZUlkID09PSBsaW5lLmlkKTtcbiAgICAgIGlmIChyZWNpcGVJbmRleCA+PSAwKSB7XG4gICAgICAgIHRoaXMucmVjaXBlc0lkcy5zcGxpY2UocmVjaXBlSW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlUmVjaXBlKGxpbmU6IEJhc2tldFByZXZpZXdMaW5lKSB7XG4gICAgdGhpcy5iYXNrZXRzU2VydmljZS51cGRhdGVSZWNpcGVzSW5CYXNrZXQoW2xpbmUuaWRdLCBsaW5lLmNvdW50LCB0aGlzLmV2ZW50VHJhY2UoKSk7XG4gICAgdGhpcy5ndWVzdENvdW50Q2hhbmdlZC5lbWl0KGxpbmUuY291bnQpO1xuICB9XG5cbiAgY2xvc2VPdmVybGF5KCkge1xuICAgIGlmICh0aGlzLmJsb2NrU3RhdGVzLmdldFZhbHVlKCkgJiYgdGhpcy5ibG9ja1N0YXRlcy5nZXRWYWx1ZSgpLmxpbmVDb21wb25lbnQpIHtcbiAgICAgIHRoaXMuYmxvY2tTdGF0ZXMudmFsdWUubGluZUNvbXBvbmVudC5wcm9kdWN0Q2hvc2VuKCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGVsYmxvY2tTdGF0ZSgpIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBzY3JvbGx0b3AoZWxlbWVudDogRWxlbWVudCl7XG4gICAgLy8gc2Nyb2xsIHRvcCBiYXNlIG9uIG1vZGFsIGNvbnRhaW5lclxuICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICBjb25zdCBtb2RhbENvbnRhaW5lciA9ICBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtaWFtLXdyYXBwZXItcHJldmlldycpWzBdO1xuICAgICAgaWYgKG1vZGFsQ29udGFpbmVyKSB7XG4gICAgICAgIG1vZGFsQ29udGFpbmVyLnNjcm9sbFRvcCA9IDA7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBzY3JvbGwgYmFzZSBvbiBnbG9iYWwgd2luZG93XG4gICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRQcm9wcygpOiBDdXN0b21Qcm9wZXJ0aWVzIHtcbiAgICBpZiAodGhpcy5yZWNpcGVJZCkgeyByZXR1cm4geyByZWNpcGVfaWQ6IHRoaXMucmVjaXBlSWQgfTsgfVxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaFByZXZpZXcobmV3TGluZXM6IEJhc2tldFByZXZpZXdMaW5lW10pIHtcbiAgICBpZiAoIXRoaXMubGluZXMpIHtcbiAgICAgIC8vIEZpcnN0IGxvYWRcbiAgICAgIHRoaXMubGluZXMgPSBuZXdMaW5lcztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbmV3TGluZXNJZHMgPSBbXTtcbiAgICAgIG5ld0xpbmVzLmZvckVhY2goKGxpbmU6IEJhc2tldFByZXZpZXdMaW5lKSA9PiB7XG4gICAgICAgIG5ld0xpbmVzSWRzLnB1c2gobGluZS5pZCk7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTGluZSA9IHRoaXMubGluZXMuZmluZChsID0+IGwuaWQgPT09IGxpbmUuaWQpO1xuICAgICAgICBpZiAoZXhpc3RpbmdMaW5lKSB7XG4gICAgICAgICAgLy8gVXBkYXRlIGV4aXN0aW5nIG9iamVjdCB3aXRoIGl0cyBuZXcgdmFsdWVzXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihleGlzdGluZ0xpbmUsIGxpbmUpO1xuXG4gICAgICAgICAgLy8gTWFyayBiYXNrZXQgbGluZXMgY29tcG9uZW50IGZvciBjaGVja1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nQ29tcCA9IHRoaXMubGluZUNvbXBvbmVudHMuZmluZChjb21wID0+IGNvbXAubGluZS5pZCA9PT0gbGluZS5pZCk7XG4gICAgICAgICAgZXhpc3RpbmdDb21wPy5jZHIubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgICAgICAvLyBGb3JjZSByZWxvYWQgdGhlIGJhc2tldCBlbnRyaWVzIGlmIHRoZWlyIHF1YW50aXRpZXMgb3Igc2VsZWN0ZWQgaXRlbXMgaGF2ZSBjaGFuZ2VkXG4gICAgICAgICAgY29uc3QgZW50cmllcyA9IGxpbmUuZW50cmllcy5mb3VuZC5zb3J0KGUgPT4gcGFyc2VJbnQoZS5pZCwgMTApKTtcbiAgICAgICAgICBjb25zdCBoYXNoID0gZW50cmllcy5tYXAoZSA9PiBlLmF0dHJpYnV0ZXNbJ3NlbGVjdGVkLWl0ZW0taWQnXSArICctJyArIGUuYXR0cmlidXRlcy5xdWFudGl0eSkuam9pbignLycpO1xuICAgICAgICAgIGlmIChoYXNoICE9PSB0aGlzLmxpbmVzSGFzaGVzW2xpbmUuaWRdICYmIGV4aXN0aW5nQ29tcD8uZW50cmllc0xpbmVzJC52YWx1ZSkge1xuICAgICAgICAgICAgZXhpc3RpbmdDb21wLmJ1aWxkRW50cmllc0xpbmVzKCk7XG4gICAgICAgICAgICB0aGlzLmxpbmVzSGFzaGVzW2xpbmUuaWRdID0gaGFzaDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gUHVzaCB0aGUgbmV3IGxpbmUgdG8gdGhlIGJlZ2dpbmluZyBvZiB0aGUgYXJyYXlcbiAgICAgICAgICB0aGlzLmxpbmVzLnVuc2hpZnQobGluZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgLy8gUmVtb3ZlIGRlbGV0ZWQgbGluZXNcbiAgICAgIHJlbW92ZSh0aGlzLmxpbmVzLCBsID0+ICFuZXdMaW5lc0lkcy5pbmNsdWRlcyhsLmlkKSk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEFuZEZvY3VzQ3VycmVudFJlY2lwZShyZWNpcGVSb3dzOiBCYXNrZXRQcmV2aWV3TGluZUNvbXBvbmVudFtdKXtcblxuICAgIGNvbnN0IHJlY2lwZVJvd0VsZW1lbnQgPSByZWNpcGVSb3dzLmZpbmQoIGJwcnIgPT4gYnByci5saW5lLmlkID09PSB0aGlzLnJlY2lwZUlkKTtcbiAgICBpZiAocmVjaXBlUm93RWxlbWVudCkge1xuICAgICAgcmVjaXBlUm93RWxlbWVudC5leHBhbmRlZCA9IHRydWU7XG4gICAgICByZWNpcGVSb3dFbGVtZW50LmJ1aWxkRW50cmllc0xpbmVzKCk7XG4gICAgICByZWNpcGVSb3dFbGVtZW50LmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAocmVjaXBlUm93RWxlbWVudC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgRWxlbWVudCkuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgI3ByZXZpZXdCbG9ja1RvcCBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctYmxvY2tfX2FuY2hvclwiPjwvZGl2PlxuPGRpdiAqbmdJZj0nIWNvcnNJc3N1ZXMgZWxzZSBjb3JzJyBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctYmxvY2tcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihwb3NTZXJ2aWNlLmlzUG9zVmFsaWQoKSB8IGFzeW5jKSBlbHNlIG5vUG9zXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctYmxvY2tfX3RpdGxlIG1pYW0tZHMtdGV4dCB3ZWlnaHQteHhsIHNpemUtbFwiICpuZ0lmPVwibGluZXM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgIDxzcGFuIGkxOG4+Vm91cyBhdmV6PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJudW1iZXJcIj57e2xpbmVzLmxlbmd0aH19PC9zcGFuPlxuICAgICAgPHNwYW4gaTE4bj5yZXBhcyBkYW5zIHZvdHJlIHBhbmllcjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1ibG9ja19fbGluZXNcIj5cbiAgICAgIDxuZy1taWFtLWJhc2tldC1wcmV2aWV3LWxpbmVcbiAgICAgICAgKm5nRm9yPVwibGV0IGxpbmUgb2YgbGluZXNcIlxuICAgICAgICBbbGluZV09XCJsaW5lXCJcbiAgICAgICAgW2Jsb2NrU3RhdGVzXT1cImJsb2NrU3RhdGVzXCJcbiAgICAgICAgW3JlY2lwZXNBbHdheXNFeHBhbmRlZF09XCJyZWNpcGVzQWx3YXlzRXhwYW5kZWRcIlxuICAgICAgICBbaXRlbXNBbHdheXNFeHBhbmRlZF09XCJpdGVtc0Fsd2F5c0V4cGFuZGVkXCJcbiAgICAgICAgW2Rpc3BsYXlJdGVtc1VuaXRhcnlQcmljZV09XCJkaXNwbGF5SXRlbXNVbml0YXJ5UHJpY2VcIlxuICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZSgpXCJcbiAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlUmVjaXBlKCRldmVudClcIlxuICAgICAgICAoY291bnRDaGFuZ2VkKT1cInVwZGF0ZVJlY2lwZSgkZXZlbnQpXCJcbiAgICAgICAgKHJlcGxhY2VJdGVtKT0nc2Nyb2xsdG9wKHByZXZpZXdCbG9ja1RvcCknXG4gICAgICAgIFtuZ1N0eWxlXT1cInsnZGlzcGxheSc6IGJsb2NrU3RhdGVzPy52YWx1ZT8ub3ZlcmxheU9wZW4gPyAnbm9uZScgOiAnYmxvY2snfSBcIlxuICAgICAgPjwvbmctbWlhbS1iYXNrZXQtcHJldmlldy1saW5lPlxuICAgICAgPG5nLW1pYW0tcmVwbGFjZS1pdGVtXG4gICAgICAgICpuZ0lmPVwiIGJsb2NrU3RhdGVzPy52YWx1ZT8ub3ZlcmxheU9wZW4gXCJcbiAgICAgICAgW2Jhc2tldEVudHJ5XT1cImJsb2NrU3RhdGVzPy52YWx1ZT8ubGluZUNvbXBvbmVudC5saW5lLnJlY29yZFwiXG4gICAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlKClcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwiYmxvY2tTdGF0ZXM/LnZhbHVlPy5saW5lQ29tcG9uZW50LnByb2R1Y3RDaG9zZW4oJGV2ZW50KVwiPlxuICAgICAgPC9uZy1taWFtLXJlcGxhY2UtaXRlbT5cbiAgICAgIDxkaXYgKm5nSWY9XCIhKGxvYWRpbmcgfCBhc3luYykgJiYgKCFsaW5lcyB8fCBsaW5lcy5sZW5ndGggPT09IDApXCIgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWJsb2NrX19saW5lc19fbm90LWZvdW5kXCI+XG4gICAgICAgIDxwPjxiIGkxOG4+Vm91cyBuJ2F2ZXogcGFzIGVuY29yZSBzw6lsZWN0aW9ubsOpIGRlIHJlcGFzLjwvYj48L3A+XG4gICAgICAgIDxwIGkxOG4gKm5nSWY9XCJzaG93Tm90aWNlXCI+TmF2aWd1ZXogdmVycyBsYSBwYWdlIGQndW5lIHJlY2V0dGUsIHB1aXMgY2xpcXVleiBzdXIgXCJDb21tYW5kZXIgbGVzIGluZ3LDqWRpZW50c1wiLjwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctYmxvY2tfX2xpbmVzX19sb2FkZXJcIiAqbmdJZj1cIihsb2FkaW5nIHwgYXN5bmMpXCI+XG4gICAgICA8bmctbWlhbS1sb2FkZXI+PC9uZy1taWFtLWxvYWRlcj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxzcGFuIGkxOG4gKm5nSWY9XCJyZWNpcGVJZFwiPkNoYXJnZW1lbnQgZHUgcmVwYXMuLi48L3NwYW4+XG4gICAgICAgIDxzcGFuIGkxOG4gKm5nSWY9XCIhcmVjaXBlSWRcIj5DaGFyZ2VtZW50IGRlcyByZXBhcy4uLjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNjb3JzPlxuPG5nLW1pYW0tY29ycy1vdmVybGF5PjwvbmctbWlhbS1jb3JzLW92ZXJsYXk+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNub1Bvcz5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctYmxvY2tfX25vUG9zXCI+XG4gICAgPHNwYW4gaTE4bj5Ew6lzb2zDqSwgY2UgbWFnYXNpbiBuZSBwZXJtZXQgcGFzIGRlIHPDqWxlY3Rpb25uZXIgZGVzIHJlcGFzLjwvc3Bhbj5cbiAgICA8YnI+XG4gICAgPHNwYW4gaTE4bj5WZXVpbGxleiBzw6lsZWN0aW9ubmVyIHVuIGF1dHJlIG1hZ2FzaW48L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|