ng-miam 3.2.2 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/ng-miam.umd.js +7452 -5975
- 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/abstract-recipe-card.component.js +1 -1
- package/esm2015/lib/_components/icon/icon.component.js +65 -6
- package/esm2015/lib/_components/recipe-filters/recipe-filters.component.js +94 -40
- package/esm2015/lib/_components/recipe-type-chooser/recipe-type-chooser.component.js +23 -30
- package/esm2015/lib/_components/text-input/text-input.component.js +6 -4
- package/esm2015/lib/_models/article.js +43 -0
- package/esm2015/lib/_models/basket.js +2 -2
- package/esm2015/lib/_models/groceries-entry.js +23 -2
- package/esm2015/lib/_models/groceries-list.js +5 -2
- package/esm2015/lib/_models/index.js +4 -1
- package/esm2015/lib/_models/package.js +14 -3
- package/esm2015/lib/_models/recipe.js +4 -1
- package/esm2015/lib/_models/user.js +10 -1
- package/esm2015/lib/_services/analytics.service.js +7 -1
- package/esm2015/lib/_services/articles.service.js +21 -0
- package/esm2015/lib/_services/baskets.service.js +7 -3
- package/esm2015/lib/_services/context.service.js +15 -1
- package/esm2015/lib/_services/groceries-lists.service.js +23 -6
- package/esm2015/lib/_services/index.js +3 -1
- package/esm2015/lib/_services/ingredients.service.js +2 -2
- package/esm2015/lib/_services/interceptor.service.js +2 -3
- package/esm2015/lib/_services/package.service.js +32 -9
- package/esm2015/lib/_services/recipe-events.service.js +2 -2
- package/esm2015/lib/_services/recipe-likes.service.js +6 -2
- package/esm2015/lib/_services/recipe-share.service.js +2 -2
- package/esm2015/lib/_services/recipes.service.js +2 -2
- package/esm2015/lib/_services/suppliers.service.js +2 -2
- package/esm2015/lib/_services/toastr.service.js +52 -0
- package/esm2015/lib/_services/user.service.js +64 -21
- package/esm2015/lib/_types/icon.enum.js +22 -18
- package/esm2015/lib/_web-components/{basket-preview-block → basket-preview/basket-preview-block}/basket-preview-block.component.js +15 -15
- package/esm2015/lib/_web-components/{basket-preview-disabled → basket-preview/basket-preview-disabled}/basket-preview-disabled.component.js +3 -3
- package/esm2015/lib/_web-components/{basket-preview-line → basket-preview/basket-preview-line}/basket-preview-line.component.js +22 -19
- package/esm2015/lib/_web-components/basket-preview/basket-preview.module.js +78 -0
- package/esm2015/lib/_web-components/basket-preview/index.js +7 -0
- package/esm2015/lib/_web-components/{replace-item → basket-preview/replace-item}/replace-item.component.js +8 -8
- package/esm2015/lib/_web-components/catalog-article-card/catalog-article-card.component.js +71 -0
- package/esm2015/lib/_web-components/catalog-category/catalog-category.component.js +134 -92
- package/esm2015/lib/_web-components/catalog-header/catalog-header.component.js +51 -34
- package/esm2015/lib/_web-components/catalog-list/catalog-list.component.js +106 -61
- package/esm2015/lib/_web-components/catalog-recipe-card/catalog-recipe-card.component.js +65 -52
- package/esm2015/lib/_web-components/drawer/drawer.component.js +1 -1
- package/esm2015/lib/_web-components/favorite-page/favorite-page.component.js +8 -6
- package/esm2015/lib/_web-components/index.js +5 -6
- package/esm2015/lib/_web-components/list-scan/basket-preview/basket-preview.component.js +145 -0
- package/esm2015/lib/_web-components/list-scan/index.js +3 -0
- package/esm2015/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.js +150 -0
- package/esm2015/lib/_web-components/list-scan/list-scan.component.js +87 -0
- package/esm2015/lib/_web-components/list-scan/list-scan.module.js +60 -0
- package/esm2015/lib/_web-components/list-scan/overlay-button/overlay-button.component.js +104 -0
- package/esm2015/lib/_web-components/loader/index.js +3 -0
- package/esm2015/lib/_web-components/loader/loader.module.js +39 -0
- package/esm2015/lib/_web-components/personal-recipes/personal-recipes.component.js +7 -5
- package/esm2015/lib/_web-components/recipe-card/recipe-card.component.js +73 -58
- package/esm2015/lib/_web-components/recipe-catalog/recipe-catalog.component.js +152 -92
- package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +307 -270
- package/esm2015/lib/_web-components/recipe-modal/recipe-modal.component.js +1 -1
- package/esm2015/lib/_web-components/recipe-stepper/recipe-stepper.component.js +1 -1
- package/esm2015/lib/_web-components/recipes-history/recipes-history.component.js +1 -1
- package/esm2015/lib/_web-components/suggestion-card/suggestion-card.component.js +3 -6
- package/esm2015/lib/_web-components/web-components.module.js +35 -65
- package/esm2015/lib/environments/environment.js +6 -0
- package/esm2015/lib/ng-miam.module.js +4 -4
- package/fesm2015/ng-miam.js +6540 -5287
- package/fesm2015/ng-miam.js.map +1 -1
- package/lib/_components/abstracts/abstract-recipe-card.component.d.ts +1 -1
- package/lib/_components/recipe-filters/recipe-filters.component.d.ts +14 -4
- package/lib/_components/recipe-type-chooser/recipe-type-chooser.component.d.ts +2 -2
- package/lib/_components/text-input/text-input.component.d.ts +2 -1
- package/lib/_models/article.d.ts +23 -0
- package/lib/_models/basket.d.ts +1 -2
- package/lib/_models/groceries-entry.d.ts +8 -1
- package/lib/_models/groceries-list.d.ts +4 -3
- package/lib/_models/index.d.ts +3 -0
- package/lib/_models/package.d.ts +10 -3
- package/lib/_models/recipe.d.ts +1 -0
- package/lib/_models/user.d.ts +16 -1
- package/lib/_services/articles.service.d.ts +10 -0
- package/lib/_services/context.service.d.ts +12 -6
- package/lib/_services/groceries-lists.service.d.ts +4 -1
- package/lib/_services/index.d.ts +2 -0
- package/lib/_services/package.service.d.ts +6 -1
- package/lib/_services/toastr.service.d.ts +10 -0
- package/lib/_services/user.service.d.ts +12 -6
- package/lib/_types/icon.enum.d.ts +21 -17
- package/lib/_web-components/{basket-preview-block → basket-preview/basket-preview-block}/basket-preview-block.component.d.ts +6 -6
- package/lib/_web-components/{basket-preview-disabled → basket-preview/basket-preview-disabled}/basket-preview-disabled.component.d.ts +2 -2
- package/lib/_web-components/{basket-preview-line → basket-preview/basket-preview-line}/basket-preview-line.component.d.ts +7 -7
- package/lib/_web-components/basket-preview/basket-preview.module.d.ts +16 -0
- package/lib/_web-components/basket-preview/index.d.ts +5 -0
- package/lib/_web-components/{replace-item → basket-preview/replace-item}/replace-item.component.d.ts +5 -5
- package/lib/_web-components/catalog-article-card/catalog-article-card.component.d.ts +8 -0
- package/lib/_web-components/catalog-category/catalog-category.component.d.ts +12 -7
- package/lib/_web-components/catalog-header/catalog-header.component.d.ts +5 -2
- package/lib/_web-components/catalog-list/catalog-list.component.d.ts +13 -6
- package/lib/_web-components/catalog-recipe-card/catalog-recipe-card.component.d.ts +1 -0
- package/lib/_web-components/favorite-page/favorite-page.component.d.ts +0 -1
- package/lib/_web-components/index.d.ts +4 -5
- package/lib/_web-components/list-scan/basket-preview/basket-preview.component.d.ts +25 -0
- package/lib/_web-components/list-scan/index.d.ts +2 -0
- package/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.d.ts +22 -0
- package/lib/_web-components/list-scan/list-scan.component.d.ts +17 -0
- package/lib/_web-components/list-scan/list-scan.module.d.ts +16 -0
- package/lib/_web-components/list-scan/overlay-button/overlay-button.component.d.ts +19 -0
- package/lib/_web-components/loader/index.d.ts +2 -0
- package/lib/_web-components/loader/loader.module.d.ts +10 -0
- package/lib/_web-components/personal-recipes/personal-recipes.component.d.ts +0 -1
- package/lib/_web-components/recipe-card/recipe-card.component.d.ts +1 -0
- package/lib/_web-components/recipe-catalog/recipe-catalog.component.d.ts +13 -4
- package/lib/_web-components/recipe-details/recipe-details.component.d.ts +8 -3
- package/lib/_web-components/suggestion-card/suggestion-card.component.d.ts +0 -1
- package/lib/_web-components/web-components.module.d.ts +38 -65
- package/lib/{environment.d.ts → environments/environment.d.ts} +1 -1
- package/miam-style.css +1 -1
- package/package.json +1 -1
- package/esm2015/lib/environment.js +0 -8
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, ChangeDetectorRef, ElementRef, ViewChildren, QueryList } from '@angular/core';
|
|
2
|
-
import { skipWhile, take } from 'rxjs/operators';
|
|
2
|
+
import { skipWhile, switchMap, take, tap } from 'rxjs/operators';
|
|
3
3
|
import { CatalogCategoryComponent } from '../catalog-category/catalog-category.component';
|
|
4
|
-
import { RecipeTypeService, SponsorService, PackageService, SuppliersService, RecipesService } from '../../_services';
|
|
4
|
+
import { RecipeTypeService, SponsorService, PackageService, SuppliersService, RecipesService, UserService } from '../../_services';
|
|
5
5
|
import { Icon } from '../../_types/icon.enum';
|
|
6
6
|
import { CatalogHeaderComponent } from '../catalog-header/catalog-header.component';
|
|
7
|
-
import { forkJoin } from 'rxjs';
|
|
7
|
+
import { combineLatest, forkJoin } from 'rxjs';
|
|
8
8
|
import { MediaMatcher } from '@angular/cdk/layout';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "../../_services";
|
|
@@ -18,94 +18,115 @@ import * as i8 from "../../_components/icon/icon.component";
|
|
|
18
18
|
import * as i9 from "../recipe-stepper/recipe-stepper.component";
|
|
19
19
|
const _c0 = ["miamCatalogTopAnchor"];
|
|
20
20
|
function RecipeCatalogComponent_div_2_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
21
|
-
const
|
|
22
|
-
i0.ɵɵelementStart(0, "div",
|
|
23
|
-
i0.ɵɵelementStart(1, "
|
|
24
|
-
i0.ɵɵ
|
|
21
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
22
|
+
i0.ɵɵelementStart(0, "div", 12);
|
|
23
|
+
i0.ɵɵelementStart(1, "span");
|
|
24
|
+
i0.ɵɵtext(2, "Une petite question : Avez-vous des enfants ?");
|
|
25
|
+
i0.ɵɵelementEnd();
|
|
26
|
+
i0.ɵɵelementStart(3, "div", 13);
|
|
27
|
+
i0.ɵɵelementStart(4, "button", 14);
|
|
28
|
+
i0.ɵɵlistener("click", function RecipeCatalogComponent_div_2_div_4_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(2); return ctx_r9.setUserPreference("has_children", true); });
|
|
29
|
+
i0.ɵɵtext(5, "Oui");
|
|
30
|
+
i0.ɵɵelementEnd();
|
|
31
|
+
i0.ɵɵelementStart(6, "button", 14);
|
|
32
|
+
i0.ɵɵlistener("click", function RecipeCatalogComponent_div_2_div_4_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r10); const ctx_r11 = i0.ɵɵnextContext(2); return ctx_r11.setUserPreference("has_children", false); });
|
|
33
|
+
i0.ɵɵtext(7, "Non");
|
|
34
|
+
i0.ɵɵelementEnd();
|
|
35
|
+
i0.ɵɵelementEnd();
|
|
36
|
+
i0.ɵɵelementEnd();
|
|
37
|
+
} }
|
|
38
|
+
function RecipeCatalogComponent_div_2_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
40
|
+
i0.ɵɵelementStart(0, "div", 15);
|
|
41
|
+
i0.ɵɵelementStart(1, "ng-miam-catalog-list", 16);
|
|
42
|
+
i0.ɵɵlistener("retrievedRecipes", function RecipeCatalogComponent_div_2_div_5_Template_ng_miam_catalog_list_retrievedRecipes_1_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(2); return ctx_r12.changeHeaderImage($event); })("filterRemoved", function RecipeCatalogComponent_div_2_div_5_Template_ng_miam_catalog_list_filterRemoved_1_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r14 = i0.ɵɵnextContext(2); return ctx_r14.removeFilter($event); })("recipeActionTriggered", function RecipeCatalogComponent_div_2_div_5_Template_ng_miam_catalog_list_recipeActionTriggered_1_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r15 = i0.ɵɵnextContext(2); return ctx_r15.manageRecipeAction($event); });
|
|
25
43
|
i0.ɵɵelementEnd();
|
|
26
44
|
i0.ɵɵelementEnd();
|
|
27
45
|
} if (rf & 2) {
|
|
28
|
-
const
|
|
46
|
+
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
29
47
|
i0.ɵɵadvance(1);
|
|
30
|
-
i0.ɵɵproperty("filters",
|
|
48
|
+
i0.ɵɵproperty("filters", ctx_r5.filters)("randomMode", true);
|
|
31
49
|
} }
|
|
32
|
-
function
|
|
33
|
-
const
|
|
34
|
-
i0.ɵɵelementStart(0, "ng-miam-catalog-category",
|
|
35
|
-
i0.ɵɵlistener("displayList", function
|
|
50
|
+
function RecipeCatalogComponent_div_2_ng_template_6_div_0_ng_miam_catalog_category_1_Template(rf, ctx) { if (rf & 1) {
|
|
51
|
+
const _r20 = i0.ɵɵgetCurrentView();
|
|
52
|
+
i0.ɵɵelementStart(0, "ng-miam-catalog-category", 20);
|
|
53
|
+
i0.ɵɵlistener("displayList", function RecipeCatalogComponent_div_2_ng_template_6_div_0_ng_miam_catalog_category_1_Template_ng_miam_catalog_category_displayList_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(4); return ctx_r19.categoryTitleClicked($event); });
|
|
36
54
|
i0.ɵɵelementEnd();
|
|
37
55
|
} if (rf & 2) {
|
|
38
|
-
const
|
|
39
|
-
i0.ɵɵproperty("title",
|
|
56
|
+
const category_r18 = ctx.$implicit;
|
|
57
|
+
i0.ɵɵproperty("title", category_r18.title)("filters", category_r18.filters);
|
|
40
58
|
} }
|
|
41
|
-
function
|
|
42
|
-
i0.ɵɵelementStart(0, "div",
|
|
43
|
-
i0.ɵɵtemplate(1,
|
|
59
|
+
function RecipeCatalogComponent_div_2_ng_template_6_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
60
|
+
i0.ɵɵelementStart(0, "div", 18);
|
|
61
|
+
i0.ɵɵtemplate(1, RecipeCatalogComponent_div_2_ng_template_6_div_0_ng_miam_catalog_category_1_Template, 1, 2, "ng-miam-catalog-category", 19);
|
|
44
62
|
i0.ɵɵelementEnd();
|
|
45
63
|
} if (rf & 2) {
|
|
46
|
-
const
|
|
64
|
+
const ctx_r16 = i0.ɵɵnextContext(3);
|
|
47
65
|
i0.ɵɵadvance(1);
|
|
48
|
-
i0.ɵɵproperty("ngForOf",
|
|
66
|
+
i0.ɵɵproperty("ngForOf", ctx_r16.categories);
|
|
49
67
|
} }
|
|
50
|
-
function
|
|
51
|
-
i0.ɵɵtemplate(0,
|
|
68
|
+
function RecipeCatalogComponent_div_2_ng_template_6_Template(rf, ctx) { if (rf & 1) {
|
|
69
|
+
i0.ɵɵtemplate(0, RecipeCatalogComponent_div_2_ng_template_6_div_0_Template, 2, 1, "div", 17);
|
|
52
70
|
} if (rf & 2) {
|
|
53
|
-
const
|
|
54
|
-
i0.ɵɵproperty("ngIf",
|
|
71
|
+
const ctx_r7 = i0.ɵɵnextContext(2);
|
|
72
|
+
i0.ɵɵproperty("ngIf", ctx_r7.categories.length > 0);
|
|
55
73
|
} }
|
|
56
|
-
function
|
|
57
|
-
const
|
|
58
|
-
i0.ɵɵelementStart(0, "div",
|
|
59
|
-
i0.ɵɵlistener("click", function
|
|
60
|
-
i0.ɵɵelement(1, "ng-miam-icon",
|
|
74
|
+
function RecipeCatalogComponent_div_2_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
75
|
+
const _r22 = i0.ɵɵgetCurrentView();
|
|
76
|
+
i0.ɵɵelementStart(0, "div", 21);
|
|
77
|
+
i0.ɵɵlistener("click", function RecipeCatalogComponent_div_2_div_8_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r22); const ctx_r21 = i0.ɵɵnextContext(2); return ctx_r21.returnToTop(); });
|
|
78
|
+
i0.ɵɵelement(1, "ng-miam-icon", 22);
|
|
61
79
|
i0.ɵɵelementEnd();
|
|
62
80
|
} if (rf & 2) {
|
|
63
|
-
const
|
|
81
|
+
const ctx_r8 = i0.ɵɵnextContext(2);
|
|
64
82
|
i0.ɵɵadvance(1);
|
|
65
|
-
i0.ɵɵproperty("iconName",
|
|
83
|
+
i0.ɵɵproperty("iconName", ctx_r8.icon.ChevronDown);
|
|
66
84
|
} }
|
|
67
85
|
const _c1 = function (a0) { return { "filter-collapsed": a0 }; };
|
|
68
86
|
function RecipeCatalogComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
69
|
-
const
|
|
87
|
+
const _r24 = i0.ɵɵgetCurrentView();
|
|
70
88
|
i0.ɵɵelementStart(0, "div", 4);
|
|
71
|
-
i0.ɵɵlistener("scroll", function RecipeCatalogComponent_div_2_Template_div_scroll_0_listener() { i0.ɵɵrestoreView(
|
|
89
|
+
i0.ɵɵlistener("scroll", function RecipeCatalogComponent_div_2_Template_div_scroll_0_listener() { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(); return ctx_r23.displayReturnTopButton(); }, false, i0.ɵɵresolveWindow);
|
|
72
90
|
i0.ɵɵelementStart(1, "ng-miam-recipe-filters", 5);
|
|
73
|
-
i0.ɵɵlistener("filterReset", function RecipeCatalogComponent_div_2_Template_ng_miam_recipe_filters_filterReset_1_listener() { i0.ɵɵrestoreView(
|
|
91
|
+
i0.ɵɵlistener("filterReset", function RecipeCatalogComponent_div_2_Template_ng_miam_recipe_filters_filterReset_1_listener() { i0.ɵɵrestoreView(_r24); const ctx_r25 = i0.ɵɵnextContext(); return ctx_r25.resetFilters(); })("filterChanged", function RecipeCatalogComponent_div_2_Template_ng_miam_recipe_filters_filterChanged_1_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r26 = i0.ɵɵnextContext(); return ctx_r26.updateFilters($event); })("filterCollapsed", function RecipeCatalogComponent_div_2_Template_ng_miam_recipe_filters_filterCollapsed_1_listener() { i0.ɵɵrestoreView(_r24); const ctx_r27 = i0.ɵɵnextContext(); return ctx_r27.onFilterCollapsed(); })("preferencesChanged", function RecipeCatalogComponent_div_2_Template_ng_miam_recipe_filters_preferencesChanged_1_listener() { i0.ɵɵrestoreView(_r24); const ctx_r28 = i0.ɵɵnextContext(); return ctx_r28.reloadPackages(); });
|
|
74
92
|
i0.ɵɵelementEnd();
|
|
75
93
|
i0.ɵɵelementStart(2, "div", 6);
|
|
76
94
|
i0.ɵɵelementStart(3, "ng-miam-catalog-header", 7);
|
|
77
|
-
i0.ɵɵlistener("returnButtonPressed", function RecipeCatalogComponent_div_2_Template_ng_miam_catalog_header_returnButtonPressed_3_listener() { i0.ɵɵrestoreView(
|
|
95
|
+
i0.ɵɵlistener("returnButtonPressed", function RecipeCatalogComponent_div_2_Template_ng_miam_catalog_header_returnButtonPressed_3_listener() { i0.ɵɵrestoreView(_r24); const ctx_r29 = i0.ɵɵnextContext(); return ctx_r29.returnToHomePage(); })("searchStringChanged", function RecipeCatalogComponent_div_2_Template_ng_miam_catalog_header_searchStringChanged_3_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r30 = i0.ɵɵnextContext(); return ctx_r30.updateSearch($event); });
|
|
78
96
|
i0.ɵɵelementEnd();
|
|
79
|
-
i0.ɵɵtemplate(4, RecipeCatalogComponent_div_2_div_4_Template,
|
|
80
|
-
i0.ɵɵtemplate(5,
|
|
81
|
-
i0.ɵɵtemplate(
|
|
97
|
+
i0.ɵɵtemplate(4, RecipeCatalogComponent_div_2_div_4_Template, 8, 0, "div", 8);
|
|
98
|
+
i0.ɵɵtemplate(5, RecipeCatalogComponent_div_2_div_5_Template, 2, 2, "div", 9);
|
|
99
|
+
i0.ɵɵtemplate(6, RecipeCatalogComponent_div_2_ng_template_6_Template, 1, 1, "ng-template", null, 10, i0.ɵɵtemplateRefExtractor);
|
|
100
|
+
i0.ɵɵtemplate(8, RecipeCatalogComponent_div_2_div_8_Template, 2, 1, "div", 11);
|
|
82
101
|
i0.ɵɵelementEnd();
|
|
83
102
|
i0.ɵɵelementEnd();
|
|
84
103
|
} if (rf & 2) {
|
|
85
|
-
const
|
|
104
|
+
const _r6 = i0.ɵɵreference(7);
|
|
86
105
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
87
106
|
i0.ɵɵadvance(1);
|
|
88
107
|
i0.ɵɵproperty("filters", ctx_r1.filters)("mobileFixed", ctx_r1.returnTopButtonShouldBeDisplayed)("filterToRemove", ctx_r1.filterToRemove);
|
|
89
108
|
i0.ɵɵadvance(1);
|
|
90
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(
|
|
109
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c1, ctx_r1.isFilterCollapsed));
|
|
91
110
|
i0.ɵɵadvance(1);
|
|
92
111
|
i0.ɵɵproperty("displayReturnButton", !ctx_r1.displayHomePage)("forcedRecipe", ctx_r1.recipeInHeader)("title", ctx_r1.displayHomePage ? ctx_r1.homePageTitle : ctx_r1.filters.additionalFilters && ctx_r1.filters.additionalFilters.title !== "" ? ctx_r1.filters.additionalFilters.title : ctx_r1.titleInResearchMode);
|
|
93
112
|
i0.ɵɵadvance(1);
|
|
94
|
-
i0.ɵɵproperty("ngIf",
|
|
113
|
+
i0.ɵɵproperty("ngIf", ctx_r1.showUserFeedback);
|
|
114
|
+
i0.ɵɵadvance(1);
|
|
115
|
+
i0.ɵɵproperty("ngIf", !ctx_r1.displayHomePage)("ngIfElse", _r6);
|
|
95
116
|
i0.ɵɵadvance(3);
|
|
96
117
|
i0.ɵɵproperty("ngIf", ctx_r1.returnTopButtonShouldBeDisplayed);
|
|
97
118
|
} }
|
|
98
119
|
function RecipeCatalogComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
99
|
-
const
|
|
100
|
-
i0.ɵɵelementStart(0, "ng-miam-recipe-stepper",
|
|
101
|
-
i0.ɵɵlistener("recipeChange", function RecipeCatalogComponent_ng_template_3_Template_ng_miam_recipe_stepper_recipeChange_0_listener() { i0.ɵɵrestoreView(
|
|
120
|
+
const _r32 = i0.ɵɵgetCurrentView();
|
|
121
|
+
i0.ɵɵelementStart(0, "ng-miam-recipe-stepper", 23);
|
|
122
|
+
i0.ɵɵlistener("recipeChange", function RecipeCatalogComponent_ng_template_3_Template_ng_miam_recipe_stepper_recipeChange_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(); return ctx_r31.leaveCreatePage(); })("canceled", function RecipeCatalogComponent_ng_template_3_Template_ng_miam_recipe_stepper_canceled_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r33 = i0.ɵɵnextContext(); return ctx_r33.leaveCreatePage(); });
|
|
102
123
|
i0.ɵɵelementEnd();
|
|
103
124
|
} if (rf & 2) {
|
|
104
125
|
const ctx_r3 = i0.ɵɵnextContext();
|
|
105
126
|
i0.ɵɵproperty("recipe", ctx_r3.recipeToUpdate);
|
|
106
127
|
} }
|
|
107
128
|
export class RecipeCatalogComponent {
|
|
108
|
-
constructor(cdr, recipeTypesService, sponsorService, supplierService, packageService, recipesService, mediaMatcher) {
|
|
129
|
+
constructor(cdr, recipeTypesService, sponsorService, supplierService, packageService, recipesService, mediaMatcher, usersService) {
|
|
109
130
|
this.cdr = cdr;
|
|
110
131
|
this.recipeTypesService = recipeTypesService;
|
|
111
132
|
this.sponsorService = sponsorService;
|
|
@@ -113,6 +134,7 @@ export class RecipeCatalogComponent {
|
|
|
113
134
|
this.packageService = packageService;
|
|
114
135
|
this.recipesService = recipesService;
|
|
115
136
|
this.mediaMatcher = mediaMatcher;
|
|
137
|
+
this.usersService = usersService;
|
|
116
138
|
this.homePageTitle = 'Qu\'est-ce qui vous ferait plaisir ?';
|
|
117
139
|
this.titleInResearchMode = 'Résultats de recherche';
|
|
118
140
|
this.displayHomePage = true;
|
|
@@ -123,35 +145,39 @@ export class RecipeCatalogComponent {
|
|
|
123
145
|
this.creatingRecipe = false;
|
|
124
146
|
this.isMobile = false;
|
|
125
147
|
this.listIsEmpty = false;
|
|
148
|
+
this.showUserFeedback = false;
|
|
149
|
+
this.subscriptions = [];
|
|
126
150
|
this.isMobile = mediaMatcher.matchMedia('(max-width: 1022px)').matches;
|
|
127
151
|
this.isFilterCollapsed = this.isMobile;
|
|
128
152
|
}
|
|
129
153
|
ngOnInit() {
|
|
130
154
|
this.resetFilters();
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
this.
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
});
|
|
155
|
+
this.subscriptions = [
|
|
156
|
+
forkJoin([
|
|
157
|
+
this.recipeTypesService.getTypes().pipe(skipWhile(types => types.length === 0),
|
|
158
|
+
// recipeTypesService.getTypes() comes from a behavior subject, it does not emit the complete() function
|
|
159
|
+
// you absolutly need a take(1) or call complete yourself to trigger the forkjoin subscribe
|
|
160
|
+
take(1)),
|
|
161
|
+
this.supplierService.supplier$.asObservable().pipe(skipWhile(supp => supp === undefined || supp == null), take(1))
|
|
162
|
+
]).pipe(switchMap(res => {
|
|
163
|
+
this.supplierId = res[1].id;
|
|
164
|
+
return this.loadPackages();
|
|
165
|
+
})).subscribe(),
|
|
166
|
+
this.assessShowUserFeedback()
|
|
167
|
+
];
|
|
145
168
|
}
|
|
146
169
|
ngAfterViewInit() {
|
|
147
170
|
this.cdr.detectChanges();
|
|
148
171
|
}
|
|
172
|
+
ngOnDestroy() {
|
|
173
|
+
this.subscriptions.forEach(s => s.unsubscribe());
|
|
174
|
+
}
|
|
149
175
|
initCategories(packages) {
|
|
150
|
-
this.categories
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
176
|
+
this.categories = [{
|
|
177
|
+
key: 'suggestions',
|
|
178
|
+
title: 'Suggestions de la semaine',
|
|
179
|
+
filters: { suggested: true }
|
|
180
|
+
}];
|
|
155
181
|
packages.data.forEach(categoryPackage => {
|
|
156
182
|
this.categories.push({
|
|
157
183
|
key: categoryPackage.title,
|
|
@@ -159,34 +185,43 @@ export class RecipeCatalogComponent {
|
|
|
159
185
|
filters: { packages: categoryPackage.id }
|
|
160
186
|
});
|
|
161
187
|
});
|
|
162
|
-
this.
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
188
|
+
const startersType = this.recipeTypesService.getTypeByName('entrée');
|
|
189
|
+
if (startersType) {
|
|
190
|
+
this.categories.push({
|
|
191
|
+
key: 'entrees',
|
|
192
|
+
title: 'Entrées',
|
|
193
|
+
filters: { recipe_type_id: startersType.id }
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
const mainType = this.recipeTypesService.getTypeByName('plat principal');
|
|
197
|
+
if (mainType) {
|
|
198
|
+
this.categories.push({
|
|
199
|
+
key: 'plats',
|
|
200
|
+
title: 'Plats',
|
|
201
|
+
filters: { recipe_type_id: mainType.id }
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
const dessertType = this.recipeTypesService.getTypeByName('dessert');
|
|
205
|
+
if (dessertType) {
|
|
206
|
+
this.categories.push({
|
|
207
|
+
key: 'desserts',
|
|
208
|
+
title: 'Desserts',
|
|
209
|
+
filters: { recipe_type_id: dessertType.id }
|
|
210
|
+
});
|
|
211
|
+
}
|
|
177
212
|
}
|
|
178
213
|
selectCategoryFromUrl() {
|
|
179
214
|
const paramsString = window.location.search;
|
|
180
215
|
const paramsArray = new URLSearchParams(paramsString);
|
|
181
|
-
const
|
|
182
|
-
if (!
|
|
216
|
+
const selectedCategoryKey = paramsArray.get('catalogCategory');
|
|
217
|
+
if (!selectedCategoryKey) {
|
|
183
218
|
return;
|
|
184
219
|
}
|
|
185
|
-
const
|
|
186
|
-
if (!
|
|
220
|
+
const selectedCategory = this.categories.find((cat) => cat.key === selectedCategoryKey);
|
|
221
|
+
if (!selectedCategory) {
|
|
187
222
|
return;
|
|
188
223
|
}
|
|
189
|
-
this.categoryTitleClicked(
|
|
224
|
+
this.categoryTitleClicked(selectedCategory);
|
|
190
225
|
}
|
|
191
226
|
// Used on load to build the filters attribute, and on click on the link to reset the filters
|
|
192
227
|
resetFilters() {
|
|
@@ -325,9 +360,9 @@ export class RecipeCatalogComponent {
|
|
|
325
360
|
}
|
|
326
361
|
case 'DELETE': {
|
|
327
362
|
if (((_a = event.recipe) === null || _a === void 0 ? void 0 : _a.id) && ((_b = event.recipe.relationships['recipe-provider']) === null || _b === void 0 ? void 0 : _b.data.id) === 'personal') {
|
|
328
|
-
this.recipesService.delete(event.recipe.id).subscribe(() => {
|
|
363
|
+
this.subscriptions.push(this.recipesService.delete(event.recipe.id).subscribe(() => {
|
|
329
364
|
this.reloadList();
|
|
330
|
-
});
|
|
365
|
+
}));
|
|
331
366
|
}
|
|
332
367
|
break;
|
|
333
368
|
}
|
|
@@ -337,8 +372,33 @@ export class RecipeCatalogComponent {
|
|
|
337
372
|
this.listIsEmpty = recipes.length === 0;
|
|
338
373
|
this.cdr.detectChanges();
|
|
339
374
|
}
|
|
375
|
+
setUserPreference(pref, state) {
|
|
376
|
+
this.subscriptions.push(this.usersService.setPreference(pref, state).pipe(switchMap(() => this.loadPackages())).subscribe());
|
|
377
|
+
}
|
|
378
|
+
reloadPackages() {
|
|
379
|
+
this.subscriptions.push(this.loadPackages().subscribe());
|
|
380
|
+
}
|
|
381
|
+
loadPackages() {
|
|
382
|
+
return this.packageService.categories_for([this.supplierId]).pipe(skipWhile(packages => packages.is_loading), tap((packages) => {
|
|
383
|
+
this.initCategories(packages);
|
|
384
|
+
this.selectCategoryFromUrl();
|
|
385
|
+
this.cdr.detectChanges();
|
|
386
|
+
}));
|
|
387
|
+
}
|
|
388
|
+
// Show feedback block only if user is logged and the children preference is unknown
|
|
389
|
+
assessShowUserFeedback() {
|
|
390
|
+
return combineLatest([
|
|
391
|
+
this.usersService.isLogged$,
|
|
392
|
+
this.usersService.preferenceDefined('has_children')
|
|
393
|
+
]).subscribe(results => {
|
|
394
|
+
const logged = results[0];
|
|
395
|
+
const preferenceDefined = results[1];
|
|
396
|
+
this.showUserFeedback = logged && !preferenceDefined;
|
|
397
|
+
this.cdr.detectChanges();
|
|
398
|
+
});
|
|
399
|
+
}
|
|
340
400
|
}
|
|
341
|
-
RecipeCatalogComponent.ɵfac = function RecipeCatalogComponent_Factory(t) { return new (t || RecipeCatalogComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.RecipeTypeService), i0.ɵɵdirectiveInject(i1.SponsorService), i0.ɵɵdirectiveInject(i1.SuppliersService), i0.ɵɵdirectiveInject(i1.PackageService), i0.ɵɵdirectiveInject(i1.RecipesService), i0.ɵɵdirectiveInject(i2.MediaMatcher)); };
|
|
401
|
+
RecipeCatalogComponent.ɵfac = function RecipeCatalogComponent_Factory(t) { return new (t || RecipeCatalogComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.RecipeTypeService), i0.ɵɵdirectiveInject(i1.SponsorService), i0.ɵɵdirectiveInject(i1.SuppliersService), i0.ɵɵdirectiveInject(i1.PackageService), i0.ɵɵdirectiveInject(i1.RecipesService), i0.ɵɵdirectiveInject(i2.MediaMatcher), i0.ɵɵdirectiveInject(i1.UserService)); };
|
|
342
402
|
RecipeCatalogComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCatalogComponent, selectors: [["ng-miam-recipe-catalog"]], viewQuery: function RecipeCatalogComponent_Query(rf, ctx) { if (rf & 1) {
|
|
343
403
|
i0.ɵɵviewQuery(CatalogHeaderComponent, true);
|
|
344
404
|
i0.ɵɵviewQuery(_c0, true);
|
|
@@ -348,15 +408,15 @@ RecipeCatalogComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCatalogCompo
|
|
|
348
408
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.catalogHeader = _t.first);
|
|
349
409
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.topAnchor = _t.first);
|
|
350
410
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.categoriesComp = _t);
|
|
351
|
-
} }, decls: 5, vars: 2, consts: [[1, "miam-catalog-anchor"], ["miamCatalogTopAnchor", ""], ["class", "miam-recipe-catalog", 3, "scroll", 4, "ngIf", "ngIfElse"], ["creationPage", ""], [1, "miam-recipe-catalog", 3, "scroll"], [3, "filters", "mobileFixed", "filterToRemove", "filterReset", "filterChanged", "filterCollapsed"], [1, "miam-recipe-catalog__content", 3, "ngClass"], [3, "displayReturnButton", "forcedRecipe", "title", "returnButtonPressed", "searchStringChanged"], ["class", "miam-recipe-catalog__list", 4, "ngIf", "ngIfElse"], ["categoriesComponents", ""], ["class", "miam-recipe-catalog__returnTop", 3, "click", 4, "ngIf"], [1, "miam-recipe-catalog__list"], [3, "filters", "randomMode", "retrievedRecipes", "filterRemoved", "recipeActionTriggered"], ["class", "miam-recipe-catalog__categories", 4, "ngIf"], [1, "miam-recipe-catalog__categories"], [3, "title", "filters", "displayList", 4, "ngFor", "ngForOf"], [3, "title", "filters", "displayList"], [1, "miam-recipe-catalog__returnTop", 3, "click"], ["height", "32", "width", "32", "primaryColor", "var(--m-color-white)", 3, "iconName"], [3, "recipe", "recipeChange", "canceled"]], template: function RecipeCatalogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
411
|
+
} }, decls: 5, vars: 2, consts: [[1, "miam-catalog-anchor"], ["miamCatalogTopAnchor", ""], ["class", "miam-recipe-catalog", 3, "scroll", 4, "ngIf", "ngIfElse"], ["creationPage", ""], [1, "miam-recipe-catalog", 3, "scroll"], [3, "filters", "mobileFixed", "filterToRemove", "filterReset", "filterChanged", "filterCollapsed", "preferencesChanged"], [1, "miam-recipe-catalog__content", 3, "ngClass"], [3, "displayReturnButton", "forcedRecipe", "title", "returnButtonPressed", "searchStringChanged"], ["class", "miam-recipe-catalog__content__user-feedback", 4, "ngIf"], ["class", "miam-recipe-catalog__list", 4, "ngIf", "ngIfElse"], ["categoriesComponents", ""], ["class", "miam-recipe-catalog__returnTop", 3, "click", 4, "ngIf"], [1, "miam-recipe-catalog__content__user-feedback"], [1, "miam-recipe-catalog__content__user-feedback__actions"], [1, "m-button-grey", 3, "click"], [1, "miam-recipe-catalog__list"], [3, "filters", "randomMode", "retrievedRecipes", "filterRemoved", "recipeActionTriggered"], ["class", "miam-recipe-catalog__categories", 4, "ngIf"], [1, "miam-recipe-catalog__categories"], [3, "title", "filters", "displayList", 4, "ngFor", "ngForOf"], [3, "title", "filters", "displayList"], [1, "miam-recipe-catalog__returnTop", 3, "click"], ["height", "32", "width", "32", "primaryColor", "var(--m-color-white)", 3, "iconName"], [3, "recipe", "recipeChange", "canceled"]], template: function RecipeCatalogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
352
412
|
i0.ɵɵelement(0, "div", 0, 1);
|
|
353
|
-
i0.ɵɵtemplate(2, RecipeCatalogComponent_div_2_Template,
|
|
413
|
+
i0.ɵɵtemplate(2, RecipeCatalogComponent_div_2_Template, 9, 13, "div", 2);
|
|
354
414
|
i0.ɵɵtemplate(3, RecipeCatalogComponent_ng_template_3_Template, 1, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
|
|
355
415
|
} if (rf & 2) {
|
|
356
416
|
const _r2 = i0.ɵɵreference(4);
|
|
357
417
|
i0.ɵɵadvance(2);
|
|
358
418
|
i0.ɵɵproperty("ngIf", !ctx.creatingRecipe)("ngIfElse", _r2);
|
|
359
|
-
} }, directives: [i3.NgIf, i4.RecipeFiltersComponent, i3.NgClass, i5.CatalogHeaderComponent, i6.CatalogListComponent, i3.NgForOf, i7.CatalogCategoryComponent, i8.IconComponent, i9.RecipeStepperComponent], styles: [".miam-recipe-catalog{display:flex;justify-content:space-between;width:100%}.miam-recipe-catalog .miam-recipe-catalog__content{width:calc(100% - 216px)}.miam-recipe-catalog .miam-recipe-catalog__content.filter-collapsed{overflow-x:hidden;width:100%}.miam-recipe-catalog .miam-recipe-catalog__content .miam-recipe-catalog__categories{display:flex;flex-direction:column;margin-top:40px;width:100%}.miam-recipe-catalog .miam-recipe-catalog__content .miam-recipe-catalog__list{margin-top:40px;width:100%}.miam-recipe-catalog .miam-recipe-catalog__returnTop{-webkit-tap-highlight-color:transparent;background-color:var(--m-color-primary);border-radius:var(--m-border-radius-circle);bottom:24px;box-shadow:0 2px 10px -4px var(--m-color-grey-text-dark);cursor:pointer;padding:8px;position:fixed;right:56px;transform:rotate(-180deg);z-index:var(--m-z-index-position-absolute-high)}@media (max-width:1022px){.miam-recipe-catalog{max-width:100vw}.miam-recipe-catalog .miam-recipe-catalog__returnTop{bottom:72px;right:24px}.miam-recipe-catalog .miam-recipe-catalog__content{width:100%}.miam-recipe-catalog .miam-recipe-catalog__content .miam-recipe-catalog__categories,.miam-recipe-catalog .miam-recipe-catalog__content .miam-recipe-catalog__list{margin-top:
|
|
419
|
+
} }, directives: [i3.NgIf, i4.RecipeFiltersComponent, i3.NgClass, i5.CatalogHeaderComponent, i6.CatalogListComponent, i3.NgForOf, i7.CatalogCategoryComponent, i8.IconComponent, i9.RecipeStepperComponent], styles: [".miam-recipe-catalog{display:flex;justify-content:space-between;width:100%}.miam-recipe-catalog .miam-recipe-catalog__content{width:calc(100% - 216px)}.miam-recipe-catalog .miam-recipe-catalog__content.filter-collapsed{overflow-x:hidden;width:100%}.miam-recipe-catalog .miam-recipe-catalog__content .miam-recipe-catalog__content__user-feedback{align-items:center;background-color:var(--m-color-secondary);color:#fff;display:flex;font-size:18px;font-weight:700;justify-content:center;padding:8px}.miam-recipe-catalog .miam-recipe-catalog__content .miam-recipe-catalog__content__user-feedback>span{margin-right:16px}.miam-recipe-catalog .miam-recipe-catalog__content .miam-recipe-catalog__content__user-feedback .miam-recipe-catalog__content__user-feedback__actions{display:flex}.miam-recipe-catalog .miam-recipe-catalog__content .miam-recipe-catalog__content__user-feedback .miam-recipe-catalog__content__user-feedback__actions>.m-button-grey{margin-left:4px;min-width:80px;padding:12px 16px}.miam-recipe-catalog .miam-recipe-catalog__content .miam-recipe-catalog__categories{display:flex;flex-direction:column;margin-top:40px;width:100%}.miam-recipe-catalog .miam-recipe-catalog__content .miam-recipe-catalog__list{margin-top:40px;width:100%}.miam-recipe-catalog .miam-recipe-catalog__returnTop{-webkit-tap-highlight-color:transparent;background-color:var(--m-color-primary);border-radius:var(--m-border-radius-circle);bottom:24px;box-shadow:0 2px 10px -4px var(--m-color-grey-text-dark);cursor:pointer;padding:8px;position:fixed;right:56px;transform:rotate(-180deg);z-index:var(--m-z-index-position-absolute-high)}@media (max-width:1022px){.miam-recipe-catalog{max-width:100vw}.miam-recipe-catalog .miam-recipe-catalog__returnTop{bottom:72px;right:24px}.miam-recipe-catalog .miam-recipe-catalog__content{width:100%}.miam-recipe-catalog .miam-recipe-catalog__content .miam-recipe-catalog__content__user-feedback{margin-top:55px}.miam-recipe-catalog .miam-recipe-catalog__content .miam-recipe-catalog__categories,.miam-recipe-catalog .miam-recipe-catalog__content .miam-recipe-catalog__list{margin-top:60px}.miam-recipe-catalog .miam-recipe-catalog__content:not(.filter-collapsed){display:none}}"], encapsulation: 2, changeDetection: 0 });
|
|
360
420
|
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(RecipeCatalogComponent, [{
|
|
361
421
|
type: Component,
|
|
362
422
|
args: [{
|
|
@@ -366,7 +426,7 @@ RecipeCatalogComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCatalogCompo
|
|
|
366
426
|
encapsulation: ViewEncapsulation.None,
|
|
367
427
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
368
428
|
}]
|
|
369
|
-
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.RecipeTypeService }, { type: i1.SponsorService }, { type: i1.SuppliersService }, { type: i1.PackageService }, { type: i1.RecipesService }, { type: i2.MediaMatcher }]; }, { catalogHeader: [{
|
|
429
|
+
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.RecipeTypeService }, { type: i1.SponsorService }, { type: i1.SuppliersService }, { type: i1.PackageService }, { type: i1.RecipesService }, { type: i2.MediaMatcher }, { type: i1.UserService }]; }, { catalogHeader: [{
|
|
370
430
|
type: ViewChild,
|
|
371
431
|
args: [CatalogHeaderComponent]
|
|
372
432
|
}], topAnchor: [{
|
|
@@ -376,4 +436,4 @@ RecipeCatalogComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCatalogCompo
|
|
|
376
436
|
type: ViewChildren,
|
|
377
437
|
args: [CatalogCategoryComponent]
|
|
378
438
|
}] }); })();
|
|
379
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhdGFsb2cvcmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2F0YWxvZy9yZWNpcGUtY2F0YWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBaUIsaUJBQWlCLEVBQVUsVUFBVSxFQUM3SCxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFMUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztJQ1cvQywrQkFDRTtJQUFBLGdEQU11QjtJQUhyQix3UEFBOEMsa09BQUEsd1BBQUE7SUFHaEQsaUJBQXVCO0lBQ3pCLGlCQUFNOzs7SUFORixlQUFtQjtJQUFuQix3Q0FBbUIsb0JBQUE7Ozs7SUFVbkIsb0RBSzJCO0lBRHpCLGlTQUE0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RUFBRSxDQUFDO0lBQzNCLENBQUM7OzRGQXpRVSxzQkFBc0I7MkRBQXRCLHNCQUFzQjt1QkFDdEIsc0JBQXNCOzt1QkFHbkIsd0JBQXdCOzs7Ozs7O1FDeEJ4Qyw0QkFBNkQ7UUFDN0Qsd0VBQ0U7UUE2Q0Ysd0hBQ0U7OztRQS9DRyxlQUF5QztRQUF6QywwQ0FBeUMsaUJBQUE7O2tERG1CakMsc0JBQXNCO2NBUGxDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxXQUFXLEVBQUUsaUNBQWlDO2dCQUM5QyxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztnQkFDOUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEO3FQQUVvQyxhQUFhO2tCQUEvQyxTQUFTO21CQUFDLHNCQUFzQjtZQUNFLFNBQVM7a0JBQTNDLFNBQVM7bUJBQUMsc0JBQXNCO1lBRVEsY0FBYztrQkFBdEQsWUFBWTttQkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0LCBFbGVtZW50UmVmLFxuICBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2tpcFdoaWxlLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2F0YWxvZ0NhdGVnb3J5Q29tcG9uZW50IH0gZnJvbSAnLi4vY2F0YWxvZy1jYXRlZ29yeS9jYXRhbG9nLWNhdGVnb3J5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWNpcGUgfSBmcm9tICcuLi8uLi9fbW9kZWxzJztcbmltcG9ydCB7IFJlY2lwZVR5cGVTZXJ2aWNlLCBTcG9uc29yU2VydmljZSwgUGFja2FnZVNlcnZpY2UsIFN1cHBsaWVyc1NlcnZpY2UsIFJlY2lwZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IENhdGFsb2dIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9jYXRhbG9nLWhlYWRlci9jYXRhbG9nLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVjaXBlRmlsdGVyLCBSZWNpcGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vX3R5cGVzL3JlY2lwZS1maWx0ZXJzJztcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZWRpYU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLXJlY2lwZS1jYXRhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY2lwZS1jYXRhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUmVjaXBlQ2F0YWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoQ2F0YWxvZ0hlYWRlckNvbXBvbmVudCkgY2F0YWxvZ0hlYWRlcjogQ2F0YWxvZ0hlYWRlckNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnbWlhbUNhdGFsb2dUb3BBbmNob3InKSB0b3BBbmNob3I6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZHJlbihDYXRhbG9nQ2F0ZWdvcnlDb21wb25lbnQpICBjYXRlZ29yaWVzQ29tcCE6IFF1ZXJ5TGlzdDxDYXRhbG9nQ2F0ZWdvcnlDb21wb25lbnQ+O1xuXG5cbiAgZmlsdGVyczogUmVjaXBlRmlsdGVycztcbiAgaG9tZVBhZ2VUaXRsZSA9ICdRdVxcJ2VzdC1jZSBxdWkgdm91cyBmZXJhaXQgcGxhaXNpciA/JztcbiAgdGl0bGVJblJlc2VhcmNoTW9kZSA9ICdSw6lzdWx0YXRzIGRlIHJlY2hlcmNoZSc7XG4gIGRpc3BsYXlIb21lUGFnZSA9IHRydWU7XG4gIGlzRmlsdGVyQ29sbGFwc2VkID0gZmFsc2U7XG4gIHJldHVyblRvcEJ1dHRvblNob3VsZEJlRGlzcGxheWVkID0gZmFsc2U7XG4gIGljb24gPSBJY29uO1xuICBjYXRlZ29yaWVzID0gW107XG4gIHJlY2lwZUluSGVhZGVyOiBSZWNpcGU7XG4gIGNyZWF0aW5nUmVjaXBlID0gZmFsc2U7XG4gIHJlY2lwZVRvVXBkYXRlOiBSZWNpcGU7XG4gIGZpbHRlclRvUmVtb3ZlOiBzdHJpbmc7XG4gIGlzTW9iaWxlID0gZmFsc2U7XG4gIGxpc3RJc0VtcHR5ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIHJlY2lwZVR5cGVzU2VydmljZTogUmVjaXBlVHlwZVNlcnZpY2UsXG4gICAgcHVibGljIHNwb25zb3JTZXJ2aWNlOiBTcG9uc29yU2VydmljZSxcbiAgICBwdWJsaWMgc3VwcGxpZXJTZXJ2aWNlOiBTdXBwbGllcnNTZXJ2aWNlLFxuICAgIHB1YmxpYyBwYWNrYWdlU2VydmljZTogUGFja2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWNpcGVzU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgcHVibGljIG1lZGlhTWF0Y2hlcjogTWVkaWFNYXRjaGVyKSB7XG4gICAgdGhpcy5pc01vYmlsZSA9IG1lZGlhTWF0Y2hlci5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiAxMDIycHgpJykubWF0Y2hlcztcbiAgICB0aGlzLmlzRmlsdGVyQ29sbGFwc2VkID0gdGhpcy5pc01vYmlsZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG5cbiAgICBmb3JrSm9pbihbXG4gICAgICB0aGlzLnJlY2lwZVR5cGVzU2VydmljZS5nZXRUeXBlcygpLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZSh0eXBlcyA9PiB0eXBlcy5sZW5ndGggPT09IDApLFxuICAgICAgICAvLyByZWNpcGVUeXBlc1NlcnZpY2UuZ2V0VHlwZXMoKSBjb21lcyBmcm9tIGEgYmVoYXZpb3Igc3ViamVjdCwgaXQgZG9lcyBub3QgZW1pdCB0aGUgY29tcGxldGUoKSBmdW5jdGlvblxuICAgICAgICAvLyB5b3UgYWJzb2x1dGx5IG5lZWQgYSB0YWtlKDEpIG9yIGNhbGwgY29tcGxldGUgeW91cnNlbGYgdG8gdHJpZ2dlciB0aGUgZm9ya2pvaW4gc3Vic2NyaWJlXG4gICAgICAgIHRha2UoMSlcbiAgICAgICksXG4gICAgICB0aGlzLnN1cHBsaWVyU2VydmljZS5zdXBwbGllciQuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKHN1cHAgPT4gc3VwcCA9PT0gdW5kZWZpbmVkIHx8IHN1cHAgPT0gbnVsbCksXG4gICAgICAgIHRha2UoMSlcbiAgICAgIClcbiAgICBdKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgY29uc3Qgc3VwcGxpZXIgPSByZXNbMV07XG4gICAgICB0aGlzLnBhY2thZ2VTZXJ2aWNlLmNhdGVnb3JpZXNfZm9yKFtzdXBwbGllci5pZF0pLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZShwYWNrYWdlcyA9PiBwYWNrYWdlcy5pc19sb2FkaW5nKVxuICAgICAgKS5zdWJzY3JpYmUoKHBhY2thZ2VzKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdENhdGVnb3JpZXMocGFja2FnZXMpO1xuICAgICAgICB0aGlzLnNlbGVjdENhdGVnb3J5RnJvbVVybCgpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGluaXRDYXRlZ29yaWVzKHBhY2thZ2VzKSB7XG4gICAgdGhpcy5jYXRlZ29yaWVzLnB1c2goe1xuICAgICAga2V5OiAnc3VnZ2VzdGlvbnMnLFxuICAgICAgdGl0bGU6ICdTdWdnZXN0aW9ucyBkZSBsYSBzZW1haW5lJyxcbiAgICAgIGZpbHRlcnM6IHsgc3VnZ2VzdGVkOiB0cnVlIH1cbiAgICB9KTtcbiAgICBwYWNrYWdlcy5kYXRhLmZvckVhY2goY2F0ZWdvcnlQYWNrYWdlID0+IHtcbiAgICAgIHRoaXMuY2F0ZWdvcmllcy5wdXNoKHtcbiAgICAgICAga2V5OiBjYXRlZ29yeVBhY2thZ2UudGl0bGUsXG4gICAgICAgIHRpdGxlOiBjYXRlZ29yeVBhY2thZ2UudGl0bGUsXG4gICAgICAgIGZpbHRlcnM6IHsgcGFja2FnZXM6IGNhdGVnb3J5UGFja2FnZS5pZCB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLmNhdGVnb3JpZXMucHVzaCh7XG4gICAgICBrZXk6ICdlbnRyZWVzJyxcbiAgICAgIHRpdGxlOiAnRW50csOpZXMnLFxuICAgICAgZmlsdGVyczogeyByZWNpcGVfdHlwZV9pZDogdGhpcy5yZWNpcGVUeXBlc1NlcnZpY2UuZ2V0VHlwZUJ5TmFtZSgnZW50csOpZScpLmlkIH1cbiAgICB9KTtcbiAgICB0aGlzLmNhdGVnb3JpZXMucHVzaCh7XG4gICAgICBrZXk6ICdwbGF0cycsXG4gICAgICB0aXRsZTogJ1BsYXRzJyxcbiAgICAgIGZpbHRlcnM6IHsgcmVjaXBlX3R5cGVfaWQ6IHRoaXMucmVjaXBlVHlwZXNTZXJ2aWNlLmdldFR5cGVCeU5hbWUoJ3BsYXQgcHJpbmNpcGFsJykuaWQgfVxuICAgIH0pO1xuICAgIHRoaXMuY2F0ZWdvcmllcy5wdXNoKHtcbiAgICAgIGtleTogJ2Rlc3NlcnRzJyxcbiAgICAgIHRpdGxlOiAnRGVzc2VydHMnLFxuICAgICAgZmlsdGVyczogeyByZWNpcGVfdHlwZV9pZDogdGhpcy5yZWNpcGVUeXBlc1NlcnZpY2UuZ2V0VHlwZUJ5TmFtZSgnZGVzc2VydCcpLmlkIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNlbGVjdENhdGVnb3J5RnJvbVVybCgpIHtcbiAgICBjb25zdCBwYXJhbXNTdHJpbmcgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoO1xuICAgIGNvbnN0IHBhcmFtc0FycmF5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhwYXJhbXNTdHJpbmcpO1xuICAgIGNvbnN0IHNlbGVjdGVkX2NhdGVnb3J5X2tleSA9IHBhcmFtc0FycmF5LmdldCgnY2F0YWxvZ0NhdGVnb3J5Jyk7XG4gICAgaWYgKCFzZWxlY3RlZF9jYXRlZ29yeV9rZXkpe1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzZWxlY3RlZF9jYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcmllcy5maW5kKChjYXQpID0+IGNhdC5rZXkgPT09IHNlbGVjdGVkX2NhdGVnb3J5X2tleSk7XG4gICAgaWYgKCFzZWxlY3RlZF9jYXRlZ29yeSl7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2F0ZWdvcnlUaXRsZUNsaWNrZWQoc2VsZWN0ZWRfY2F0ZWdvcnkpO1xuICB9XG5cbiAgLy8gVXNlZCBvbiBsb2FkIHRvIGJ1aWxkIHRoZSBmaWx0ZXJzIGF0dHJpYnV0ZSwgYW5kIG9uIGNsaWNrIG9uIHRoZSBsaW5rIHRvIHJlc2V0IHRoZSBmaWx0ZXJzXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLmZpbHRlcnMgPSB7XG4gICAgICAvLyB0eXBlOiBbXG4gICAgICAvLyAgIHtuYW1lOiByZWNpcGVUeXBlc1NlcnZpY2UuZ2V0VHlwZSgxKS5pZCwgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnRW50csOpZXMnfSxcbiAgICAgIC8vICAge25hbWU6IHJlY2lwZVR5cGVzU2VydmljZS5nZXRUeXBlKDIpLmlkLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdQbGF0cyd9LFxuICAgICAgLy8gICB7bmFtZTogcmVjaXBlVHlwZXNTZXJ2aWNlLmdldFR5cGUoMykuaWQsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ0Rlc3NlcnRzJ31cbiAgICAgIC8vIF0sXG4gICAgICBkaWZmaWN1bHR5OiBbXG4gICAgICAgIHtuYW1lOiAnMScsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ0ZhY2lsZSd9LFxuICAgICAgICB7bmFtZTogJzInLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdNb3llbm5lJ30sXG4gICAgICAgIHtuYW1lOiAnMycsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ0RpZmZpY2lsZSd9XG4gICAgICBdLFxuICAgICAgY29zdDogW1xuICAgICAgICB7bmFtZTogJzAtNScsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ0JhcyAo4omIIOKJpCA14oKsKSd9LFxuICAgICAgICB7bmFtZTogJzUtMTAnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdNb3llbiAo4omIIDUtMTDigqwpICd9LFxuICAgICAgICB7bmFtZTogJzEwLTEwMDAnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICfDiWxldsOpICjiiYgg4omlIDEw4oKsKSAnfVxuICAgICAgICAvLyB3ZSBzZXQgYSBsaW1pdCBhdCAxMDAw4oKsIG1heCwgaWYgYSByZWNpcGUgY29zdCBtb3JlIHNob3VsZCBiZSBub24gc2Vuc2UgYW55d2F5XG4gICAgICBdLFxuICAgICAgdGltZTogW1xuICAgICAgICB7bmFtZTogJzE1JywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnMTVtJ30sXG4gICAgICAgIHtuYW1lOiAnMzAnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICczMG0nfSxcbiAgICAgICAge25hbWU6ICc2MCcsIHZhbHVlOiBmYWxzZSwgdGV4dDogJzFoJ30sXG4gICAgICAgIHtuYW1lOiAnMTIwJywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnMmgnfVxuICAgICAgXSxcbiAgICB9O1xuICAgIGlmICh0aGlzLmNhdGFsb2dIZWFkZXIpIHsgdGhpcy5jYXRhbG9nSGVhZGVyLnJlc2V0U2VhcmNoU3RyaW5nKCk7IH1cbiAgICB0aGlzLmZpbHRlcnMuc2VhcmNoID0gJyc7XG4gICAgdGhpcy5saXN0SXNFbXB0eSA9IGZhbHNlO1xuICAgIGlmICghdGhpcy5kaXNwbGF5SG9tZVBhZ2UpeyB0aGlzLnJldHVyblRvSG9tZVBhZ2UoKTsgfVxuICB9XG5cbiAgdXBkYXRlU2VhcmNoKHNlYXJjaDogc3RyaW5nKSB7XG4gICAgaWYgKHNlYXJjaCAhPT0gdGhpcy5maWx0ZXJzLnNlYXJjaCkge1xuICAgICAgdGhpcy5maWx0ZXJzLnNlYXJjaCA9IHNlYXJjaDtcbiAgICAgIHRoaXMucmVsb2FkTGlzdCgpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUZpbHRlcnMoZmlsdGVyczogUmVjaXBlRmlsdGVycykge1xuICAgIHRoaXMuZmlsdGVycyA9IHsgLi4uZmlsdGVycyB9OyAvLyBOZWNlc3NhcnkgdG8gdHJpZ2dlciB0aGUgbmdPbkNoYW5nZXNcbiAgICB0aGlzLmZpbHRlclRvUmVtb3ZlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMubGlzdElzRW1wdHkgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgdGhpcy5yZXR1cm5Ub1RvcCgpO1xuICAgIH1cbiAgICB0aGlzLnJlbG9hZExpc3QoKTtcbiAgfVxuXG4gIHJlbG9hZExpc3QoKSB7XG4gICAgLy8gSWYgdGhlcmUgYXJlIG5vIGZpbHRlcnMgbm9yIHNlYXJjaCwgcmV0dXJuIHRvIGhvbWUgcGFnZVxuICAgIGlmICh0aGlzLmFyZUZpbHRlcnNFbXB0eSgpKSB7IHRoaXMucmV0dXJuVG9Ib21lUGFnZSgpOyB9XG4gICAgZWxzZSB7IC8vIFJlbG9hZCB0aGUgbGlzdFxuICAgICAgdGhpcy5maWx0ZXJzID0geyAuLi50aGlzLmZpbHRlcnMgfTsgLy8gTmVjZXNzYXJ5IHRvIHRyaWdnZXIgdGhlIG5nT25DaGFuZ2VzXG4gICAgICB0aGlzLmRpc3BsYXlIb21lUGFnZSA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIGNhdGVnb3J5VGl0bGVDbGlja2VkKGV2ZW50OiB7dGl0bGU6IHN0cmluZywgZmlsdGVyczogYW55fSkge1xuICAgIHRoaXMucmV0dXJuVG9Ub3AoKTtcbiAgICB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMgPSB7IGZpbHRlcnM6IGV2ZW50LmZpbHRlcnMsIHRpdGxlOiBldmVudC50aXRsZSB9O1xuICAgIHRoaXMucmVsb2FkTGlzdCgpO1xuICB9XG5cbiAgYXJlRmlsdGVyc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRmllbGRFbXB0eSh0aGlzLmZpbHRlcnMuZGlmZmljdWx0eSkgJiYgdGhpcy5pc0ZpZWxkRW1wdHkodGhpcy5maWx0ZXJzLmNvc3QpICYmIHRoaXMuaXNGaWVsZEVtcHR5KHRoaXMuZmlsdGVycy50aW1lKVxuICAgICAgJiYgdGhpcy5maWx0ZXJzLnNlYXJjaCA9PT0gJycgJiYgIXRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycztcbiAgfVxuXG4gIGlzRmllbGRFbXB0eShmaWx0ZXI6IFJlY2lwZUZpbHRlcltdKSB7XG4gICAgZm9yIChjb25zdCBmIG9mIGZpbHRlcikge1xuICAgICAgaWYgKGYudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJlbW92ZUZpbHRlcihmaWx0ZXJUZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbHRlclRvUmVtb3ZlID0gZmlsdGVyVGV4dDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICByZXR1cm5Ub1RvcCgpIHtcbiAgICBpZiAodGhpcy50b3BBbmNob3IpIHtcbiAgICAgIHRoaXMudG9wQW5jaG9yLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICB9XG4gIH1cblxuICBkaXNwbGF5UmV0dXJuVG9wQnV0dG9uKCkge1xuICAgIHRoaXMucmV0dXJuVG9wQnV0dG9uU2hvdWxkQmVEaXNwbGF5ZWQgPSB0aGlzLnRvcEFuY2hvci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSA8IC00MDA7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgY2hhbmdlSGVhZGVySW1hZ2UocmVjaXBlczogUmVjaXBlW10pIHtcbiAgICBpZiAocmVjaXBlcy5sZW5ndGggPiAwICYmIHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycyAmJiAhdGhpcy5yZWNpcGVJbkhlYWRlcikge1xuICAgICAgdGhpcy5yZWNpcGVJbkhlYWRlciA9IHJlY2lwZXNbMF07XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuVG9Ib21lUGFnZSgpIHtcbiAgICB0aGlzLmRpc3BsYXlIb21lUGFnZSA9IHRydWU7XG4gICAgdGhpcy5yZWNpcGVJbkhlYWRlciA9IHVuZGVmaW5lZDsgLy8gRG9uJ3QgZm9yY2UgYSByZWNpcGUgaW4gaGVhZGVyIG9uIGhvbWVQYWdlXG4gICAgdGhpcy5yZXNldEZpbHRlcnMoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkZpbHRlckNvbGxhcHNlZCgpIHtcbiAgICB0aGlzLmlzRmlsdGVyQ29sbGFwc2VkID0gIXRoaXMuaXNGaWx0ZXJDb2xsYXBzZWQ7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIC8vIHRvIHRyaWdnZXIgYWZ0ZXIgdGhlIGRldGVjdENoYW5nZXMgYmVjYXVzZSB3ZSBuZWVkIHRvIGFscmVhZCBoYXZlIHRoZSBkaXNwbGF5IGNoYW5nZSB0byB1cGRhdGUgY2FyZHNcbiAgICB0aGlzLmNhdGVnb3JpZXNDb21wLmZvckVhY2goIGNhdCA9PiB7XG4gICAgICBjYXQudXBkYXRlV2lkdGgoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdvVG9DcmVhdGVQYWdlKHJlY2lwZSA9IG51bGwpIHtcbiAgICB0aGlzLmNyZWF0aW5nUmVjaXBlID0gdHJ1ZTtcbiAgICB0aGlzLnJlY2lwZVRvVXBkYXRlID0gcmVjaXBlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnJldHVyblRvVG9wKCk7XG4gIH1cblxuICBsZWF2ZUNyZWF0ZVBhZ2UoKSB7XG4gICAgdGhpcy5jcmVhdGluZ1JlY2lwZSA9IGZhbHNlO1xuICAgIHRoaXMucmVsb2FkTGlzdCgpO1xuICAgIHRoaXMucmV0dXJuVG9Ub3AoKTtcbiAgfVxuXG4gIG1hbmFnZVJlY2lwZUFjdGlvbihldmVudDoge2FjdGlvbjogc3RyaW5nLCByZWNpcGU6IFJlY2lwZX0pIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmFjdGlvbikge1xuICAgICAgY2FzZSAnQ1JFQVRFJzoge1xuICAgICAgICB0aGlzLmdvVG9DcmVhdGVQYWdlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlICdFRElUJzoge1xuICAgICAgICB0aGlzLmdvVG9DcmVhdGVQYWdlKGV2ZW50LnJlY2lwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlICdERUxFVEUnOiB7XG4gICAgICAgIGlmIChldmVudC5yZWNpcGU/LmlkICYmIGV2ZW50LnJlY2lwZS5yZWxhdGlvbnNoaXBzWydyZWNpcGUtcHJvdmlkZXInXT8uZGF0YS5pZCA9PT0gJ3BlcnNvbmFsJykge1xuICAgICAgICAgIHRoaXMucmVjaXBlc1NlcnZpY2UuZGVsZXRlKGV2ZW50LnJlY2lwZS5pZCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVsb2FkTGlzdCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzTGlzdEVtcHR5KHJlY2lwZXM6IFJlY2lwZVtdKSB7XG4gICAgdGhpcy5saXN0SXNFbXB0eSA9IHJlY2lwZXMubGVuZ3RoID09PSAwO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPGRpdiAjbWlhbUNhdGFsb2dUb3BBbmNob3IgY2xhc3M9XCJtaWFtLWNhdGFsb2ctYW5jaG9yXCI+PC9kaXY+XG48ZGl2ICpuZ0lmPVwiIWNyZWF0aW5nUmVjaXBlIGVsc2UgY3JlYXRpb25QYWdlXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nXCIgKHdpbmRvdzpzY3JvbGwpPVwiZGlzcGxheVJldHVyblRvcEJ1dHRvbigpXCI+XG4gIDxuZy1taWFtLXJlY2lwZS1maWx0ZXJzXG4gICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXG4gICAgW21vYmlsZUZpeGVkXT1cInJldHVyblRvcEJ1dHRvblNob3VsZEJlRGlzcGxheWVkXCJcbiAgICBbZmlsdGVyVG9SZW1vdmVdPVwiZmlsdGVyVG9SZW1vdmVcIlxuICAgIChmaWx0ZXJSZXNldCk9XCJyZXNldEZpbHRlcnMoKVwiXG4gICAgKGZpbHRlckNoYW5nZWQpPVwidXBkYXRlRmlsdGVycygkZXZlbnQpXCJcbiAgICAoZmlsdGVyQ29sbGFwc2VkKT1cIm9uRmlsdGVyQ29sbGFwc2VkKClcIj5cbiAgPC9uZy1taWFtLXJlY2lwZS1maWx0ZXJzPlxuXG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nX19jb250ZW50XCIgW25nQ2xhc3NdPVwieydmaWx0ZXItY29sbGFwc2VkJzogaXNGaWx0ZXJDb2xsYXBzZWR9XCI+XG4gICAgPG5nLW1pYW0tY2F0YWxvZy1oZWFkZXIgXG4gICAgICBbZGlzcGxheVJldHVybkJ1dHRvbl09XCIhZGlzcGxheUhvbWVQYWdlXCJcbiAgICAgIFtmb3JjZWRSZWNpcGVdPVwicmVjaXBlSW5IZWFkZXJcIlxuICAgICAgW3RpdGxlXT1cImRpc3BsYXlIb21lUGFnZSA/IGhvbWVQYWdlVGl0bGUgOiBcbiAgICAgICAgKGZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMgJiYgZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy50aXRsZSAhPT0gJycgPyBmaWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLnRpdGxlIDogdGl0bGVJblJlc2VhcmNoTW9kZSlcIlxuICAgICAgKHJldHVybkJ1dHRvblByZXNzZWQpPVwicmV0dXJuVG9Ib21lUGFnZSgpXCJcbiAgICAgIChzZWFyY2hTdHJpbmdDaGFuZ2VkKT1cInVwZGF0ZVNlYXJjaCgkZXZlbnQpXCI+XG4gICAgPC9uZy1taWFtLWNhdGFsb2ctaGVhZGVyPlxuXG4gICAgPGRpdiAqbmdJZj1cIiFkaXNwbGF5SG9tZVBhZ2UgZWxzZSBjYXRlZ29yaWVzQ29tcG9uZW50c1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fbGlzdFwiPlxuICAgICAgPG5nLW1pYW0tY2F0YWxvZy1saXN0XG4gICAgICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgICAgICBbcmFuZG9tTW9kZV09XCJ0cnVlXCJcbiAgICAgICAgKHJldHJpZXZlZFJlY2lwZXMpPVwiY2hhbmdlSGVhZGVySW1hZ2UoJGV2ZW50KVwiXG4gICAgICAgIChmaWx0ZXJSZW1vdmVkKT1cInJlbW92ZUZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgKHJlY2lwZUFjdGlvblRyaWdnZXJlZCk9XCJtYW5hZ2VSZWNpcGVBY3Rpb24oJGV2ZW50KVwiPlxuICAgICAgPC9uZy1taWFtLWNhdGFsb2ctbGlzdD5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjY2F0ZWdvcmllc0NvbXBvbmVudHM+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY2F0ZWdvcmllcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nX19jYXRlZ29yaWVzXCI+XG4gICAgICAgIDxuZy1taWFtLWNhdGFsb2ctY2F0ZWdvcnkgXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIGNhdGVnb3JpZXNcIiBcbiAgICAgICAgICBbdGl0bGVdPVwiY2F0ZWdvcnkudGl0bGVcIlxuICAgICAgICAgIFtmaWx0ZXJzXT1cImNhdGVnb3J5LmZpbHRlcnNcIiBcbiAgICAgICAgICAoZGlzcGxheUxpc3QpPVwiY2F0ZWdvcnlUaXRsZUNsaWNrZWQoJGV2ZW50KVwiPlxuICAgICAgICA8L25nLW1pYW0tY2F0YWxvZy1jYXRlZ29yeT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8ZGl2ICpuZ0lmPVwicmV0dXJuVG9wQnV0dG9uU2hvdWxkQmVEaXNwbGF5ZWRcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX3JldHVyblRvcFwiIChjbGljayk9XCJyZXR1cm5Ub1RvcCgpXCI+XG4gICAgICA8bmctbWlhbS1pY29uIGhlaWdodD0nMzInIHdpZHRoPSczMicgcHJpbWFyeUNvbG9yPVwidmFyKC0tbS1jb2xvci13aGl0ZSlcIiBbaWNvbk5hbWVdPVwiaWNvbi5DaGV2cm9uRG93blwiPjwvbmctbWlhbS1pY29uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNjcmVhdGlvblBhZ2U+XG4gIDxuZy1taWFtLXJlY2lwZS1zdGVwcGVyIFtyZWNpcGVdPVwicmVjaXBlVG9VcGRhdGVcIiAocmVjaXBlQ2hhbmdlKT1cImxlYXZlQ3JlYXRlUGFnZSgpXCIgKGNhbmNlbGVkKT1cImxlYXZlQ3JlYXRlUGFnZSgpXCI+PC9uZy1taWFtLXJlY2lwZS1zdGVwcGVyPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
439
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhdGFsb2cvcmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2F0YWxvZy9yZWNpcGUtY2F0YWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBaUIsaUJBQWlCLEVBQVUsVUFBVSxFQUM3SCxZQUFZLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBTyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUUxRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkksT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lDYy9DLCtCQUNFO0lBQUEsNEJBQU07SUFBQSw2REFBNkM7SUFBQSxpQkFBTztJQUMxRCwrQkFDRTtJQUFBLGtDQUFnRjtJQUFsRCxvTUFBMkIsY0FBYyxFQUFF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QXdCO2dCQUNsQyxXQUFXLEVBQUUsaUNBQWlDO2dCQUM5QyxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztnQkFDOUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEOytRQUVvQyxhQUFhO2tCQUEvQyxTQUFTO21CQUFDLHNCQUFzQjtZQUNFLFNBQVM7a0JBQTNDLFNBQVM7bUJBQUMsc0JBQXNCO1lBQ1EsY0FBYztrQkFBdEQsWUFBWTttQkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0LCBFbGVtZW50UmVmLFxuICBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIHNraXBXaGlsZSwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDYXRhbG9nQ2F0ZWdvcnlDb21wb25lbnQgfSBmcm9tICcuLi9jYXRhbG9nLWNhdGVnb3J5L2NhdGFsb2ctY2F0ZWdvcnkuY29tcG9uZW50JztcbmltcG9ydCB7IFJlY2lwZSB9IGZyb20gJy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgUmVjaXBlVHlwZVNlcnZpY2UsIFNwb25zb3JTZXJ2aWNlLCBQYWNrYWdlU2VydmljZSwgU3VwcGxpZXJzU2VydmljZSwgUmVjaXBlc1NlcnZpY2UsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IENhdGFsb2dIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9jYXRhbG9nLWhlYWRlci9jYXRhbG9nLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVjaXBlRmlsdGVyLCBSZWNpcGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vX3R5cGVzL3JlY2lwZS1maWx0ZXJzJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lZGlhTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgRG9jdW1lbnRDb2xsZWN0aW9uIH0gZnJvbSAnbmd4LWpzb25hcGknO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gJy4uLy4uL19tb2RlbHMvcGFja2FnZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tcmVjaXBlLWNhdGFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjaXBlLWNhdGFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNpcGUtY2F0YWxvZy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSZWNpcGVDYXRhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKENhdGFsb2dIZWFkZXJDb21wb25lbnQpIGNhdGFsb2dIZWFkZXI6IENhdGFsb2dIZWFkZXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ21pYW1DYXRhbG9nVG9wQW5jaG9yJykgdG9wQW5jaG9yOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkcmVuKENhdGFsb2dDYXRlZ29yeUNvbXBvbmVudCkgIGNhdGVnb3JpZXNDb21wITogUXVlcnlMaXN0PENhdGFsb2dDYXRlZ29yeUNvbXBvbmVudD47XG5cbiAgZmlsdGVyczogUmVjaXBlRmlsdGVycztcbiAgaG9tZVBhZ2VUaXRsZSA9ICdRdVxcJ2VzdC1jZSBxdWkgdm91cyBmZXJhaXQgcGxhaXNpciA/JztcbiAgdGl0bGVJblJlc2VhcmNoTW9kZSA9ICdSw6lzdWx0YXRzIGRlIHJlY2hlcmNoZSc7XG4gIGRpc3BsYXlIb21lUGFnZSA9IHRydWU7XG4gIGlzRmlsdGVyQ29sbGFwc2VkID0gZmFsc2U7XG4gIHJldHVyblRvcEJ1dHRvblNob3VsZEJlRGlzcGxheWVkID0gZmFsc2U7XG4gIGljb24gPSBJY29uO1xuICBjYXRlZ29yaWVzID0gW107XG4gIHJlY2lwZUluSGVhZGVyOiBSZWNpcGU7XG4gIGNyZWF0aW5nUmVjaXBlID0gZmFsc2U7XG4gIHJlY2lwZVRvVXBkYXRlOiBSZWNpcGU7XG4gIGZpbHRlclRvUmVtb3ZlOiBzdHJpbmc7XG4gIGlzTW9iaWxlID0gZmFsc2U7XG4gIGxpc3RJc0VtcHR5ID0gZmFsc2U7XG4gIHNob3dVc2VyRmVlZGJhY2sgPSBmYWxzZTtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgc3VwcGxpZXJJZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgcmVjaXBlVHlwZXNTZXJ2aWNlOiBSZWNpcGVUeXBlU2VydmljZSxcbiAgICBwdWJsaWMgc3BvbnNvclNlcnZpY2U6IFNwb25zb3JTZXJ2aWNlLFxuICAgIHB1YmxpYyBzdXBwbGllclNlcnZpY2U6IFN1cHBsaWVyc1NlcnZpY2UsXG4gICAgcHVibGljIHBhY2thZ2VTZXJ2aWNlOiBQYWNrYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwdWJsaWMgbWVkaWFNYXRjaGVyOiBNZWRpYU1hdGNoZXIsXG4gICAgcHVibGljIHVzZXJzU2VydmljZTogVXNlclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5pc01vYmlsZSA9IG1lZGlhTWF0Y2hlci5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiAxMDIycHgpJykubWF0Y2hlcztcbiAgICB0aGlzLmlzRmlsdGVyQ29sbGFwc2VkID0gdGhpcy5pc01vYmlsZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXG4gICAgICBmb3JrSm9pbihbXG4gICAgICAgIHRoaXMucmVjaXBlVHlwZXNTZXJ2aWNlLmdldFR5cGVzKCkucGlwZShcbiAgICAgICAgICBza2lwV2hpbGUodHlwZXMgPT4gdHlwZXMubGVuZ3RoID09PSAwKSxcbiAgICAgICAgICAvLyByZWNpcGVUeXBlc1NlcnZpY2UuZ2V0VHlwZXMoKSBjb21lcyBmcm9tIGEgYmVoYXZpb3Igc3ViamVjdCwgaXQgZG9lcyBub3QgZW1pdCB0aGUgY29tcGxldGUoKSBmdW5jdGlvblxuICAgICAgICAgIC8vIHlvdSBhYnNvbHV0bHkgbmVlZCBhIHRha2UoMSkgb3IgY2FsbCBjb21wbGV0ZSB5b3Vyc2VsZiB0byB0cmlnZ2VyIHRoZSBmb3Jram9pbiBzdWJzY3JpYmVcbiAgICAgICAgICB0YWtlKDEpXG4gICAgICAgICksXG4gICAgICAgIHRoaXMuc3VwcGxpZXJTZXJ2aWNlLnN1cHBsaWVyJC5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgICAgIHNraXBXaGlsZShzdXBwID0+IHN1cHAgPT09IHVuZGVmaW5lZCB8fCBzdXBwID09IG51bGwpLFxuICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgKVxuICAgICAgXSkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5zdXBwbGllcklkID0gcmVzWzFdLmlkO1xuICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRQYWNrYWdlcygpO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKSxcbiAgICAgIHRoaXMuYXNzZXNzU2hvd1VzZXJGZWVkYmFjaygpXG4gICAgXTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBpbml0Q2F0ZWdvcmllcyhwYWNrYWdlcykge1xuICAgIHRoaXMuY2F0ZWdvcmllcyA9IFt7XG4gICAgICBrZXk6ICdzdWdnZXN0aW9ucycsXG4gICAgICB0aXRsZTogJ1N1Z2dlc3Rpb25zIGRlIGxhIHNlbWFpbmUnLFxuICAgICAgZmlsdGVyczogeyBzdWdnZXN0ZWQ6IHRydWUgfVxuICAgIH1dO1xuICAgIHBhY2thZ2VzLmRhdGEuZm9yRWFjaChjYXRlZ29yeVBhY2thZ2UgPT4ge1xuICAgICAgdGhpcy5jYXRlZ29yaWVzLnB1c2goe1xuICAgICAgICBrZXk6IGNhdGVnb3J5UGFja2FnZS50aXRsZSxcbiAgICAgICAgdGl0bGU6IGNhdGVnb3J5UGFja2FnZS50aXRsZSxcbiAgICAgICAgZmlsdGVyczogeyBwYWNrYWdlczogY2F0ZWdvcnlQYWNrYWdlLmlkIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY29uc3Qgc3RhcnRlcnNUeXBlID0gdGhpcy5yZWNpcGVUeXBlc1NlcnZpY2UuZ2V0VHlwZUJ5TmFtZSgnZW50csOpZScpO1xuICAgIGlmIChzdGFydGVyc1R5cGUpIHtcbiAgICAgIHRoaXMuY2F0ZWdvcmllcy5wdXNoKHtcbiAgICAgICAga2V5OiAnZW50cmVlcycsXG4gICAgICAgIHRpdGxlOiAnRW50csOpZXMnLFxuICAgICAgICBmaWx0ZXJzOiB7IHJlY2lwZV90eXBlX2lkOiBzdGFydGVyc1R5cGUuaWQgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgbWFpblR5cGUgPSB0aGlzLnJlY2lwZVR5cGVzU2VydmljZS5nZXRUeXBlQnlOYW1lKCdwbGF0IHByaW5jaXBhbCcpO1xuICAgIGlmIChtYWluVHlwZSkge1xuICAgICAgdGhpcy5jYXRlZ29yaWVzLnB1c2goe1xuICAgICAgICBrZXk6ICdwbGF0cycsXG4gICAgICAgIHRpdGxlOiAnUGxhdHMnLFxuICAgICAgICBmaWx0ZXJzOiB7IHJlY2lwZV90eXBlX2lkOiBtYWluVHlwZS5pZCB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBkZXNzZXJ0VHlwZSA9IHRoaXMucmVjaXBlVHlwZXNTZXJ2aWNlLmdldFR5cGVCeU5hbWUoJ2Rlc3NlcnQnKTtcbiAgICBpZiAoZGVzc2VydFR5cGUpIHtcbiAgICAgIHRoaXMuY2F0ZWdvcmllcy5wdXNoKHtcbiAgICAgICAga2V5OiAnZGVzc2VydHMnLFxuICAgICAgICB0aXRsZTogJ0Rlc3NlcnRzJyxcbiAgICAgICAgZmlsdGVyczogeyByZWNpcGVfdHlwZV9pZDogZGVzc2VydFR5cGUuaWQgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0Q2F0ZWdvcnlGcm9tVXJsKCkge1xuICAgIGNvbnN0IHBhcmFtc1N0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2g7XG4gICAgY29uc3QgcGFyYW1zQXJyYXkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHBhcmFtc1N0cmluZyk7XG4gICAgY29uc3Qgc2VsZWN0ZWRDYXRlZ29yeUtleSA9IHBhcmFtc0FycmF5LmdldCgnY2F0YWxvZ0NhdGVnb3J5Jyk7XG4gICAgaWYgKCFzZWxlY3RlZENhdGVnb3J5S2V5KXtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc2VsZWN0ZWRDYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcmllcy5maW5kKChjYXQpID0+IGNhdC5rZXkgPT09IHNlbGVjdGVkQ2F0ZWdvcnlLZXkpO1xuICAgIGlmICghc2VsZWN0ZWRDYXRlZ29yeSl7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2F0ZWdvcnlUaXRsZUNsaWNrZWQoc2VsZWN0ZWRDYXRlZ29yeSk7XG4gIH1cblxuICAvLyBVc2VkIG9uIGxvYWQgdG8gYnVpbGQgdGhlIGZpbHRlcnMgYXR0cmlidXRlLCBhbmQgb24gY2xpY2sgb24gdGhlIGxpbmsgdG8gcmVzZXQgdGhlIGZpbHRlcnNcbiAgcmVzZXRGaWx0ZXJzKCkge1xuICAgIHRoaXMuZmlsdGVycyA9IHtcbiAgICAgIC8vIHR5cGU6IFtcbiAgICAgIC8vICAge25hbWU6IHJlY2lwZVR5cGVzU2VydmljZS5nZXRUeXBlKDEpLmlkLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdFbnRyw6llcyd9LFxuICAgICAgLy8gICB7bmFtZTogcmVjaXBlVHlwZXNTZXJ2aWNlLmdldFR5cGUoMikuaWQsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ1BsYXRzJ30sXG4gICAgICAvLyAgIHtuYW1lOiByZWNpcGVUeXBlc1NlcnZpY2UuZ2V0VHlwZSgzKS5pZCwgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnRGVzc2VydHMnfVxuICAgICAgLy8gXSxcbiAgICAgIGRpZmZpY3VsdHk6IFtcbiAgICAgICAge25hbWU6ICcxJywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnRmFjaWxlJ30sXG4gICAgICAgIHtuYW1lOiAnMicsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ01veWVubmUnfSxcbiAgICAgICAge25hbWU6ICczJywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnRGlmZmljaWxlJ31cbiAgICAgIF0sXG4gICAgICBjb3N0OiBbXG4gICAgICAgIHtuYW1lOiAnMC01JywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnQmFzICjiiYgg4omkIDXigqwpJ30sXG4gICAgICAgIHtuYW1lOiAnNS0xMCcsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ01veWVuICjiiYggNS0xMOKCrCkgJ30sXG4gICAgICAgIHtuYW1lOiAnMTAtMTAwMCcsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ8OJbGV2w6kgKOKJiCDiiaUgMTDigqwpICd9XG4gICAgICAgIC8vIHdlIHNldCBhIGxpbWl0IGF0IDEwMDDigqwgbWF4LCBpZiBhIHJlY2lwZSBjb3N0IG1vcmUgc2hvdWxkIGJlIG5vbiBzZW5zZSBhbnl3YXlcbiAgICAgIF0sXG4gICAgICB0aW1lOiBbXG4gICAgICAgIHtuYW1lOiAnMTUnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICcxNW0nfSxcbiAgICAgICAge25hbWU6ICczMCcsIHZhbHVlOiBmYWxzZSwgdGV4dDogJzMwbSd9LFxuICAgICAgICB7bmFtZTogJzYwJywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnMWgnfSxcbiAgICAgICAge25hbWU6ICcxMjAnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICcyaCd9XG4gICAgICBdLFxuICAgIH07XG4gICAgaWYgKHRoaXMuY2F0YWxvZ0hlYWRlcikgeyB0aGlzLmNhdGFsb2dIZWFkZXIucmVzZXRTZWFyY2hTdHJpbmcoKTsgfVxuICAgIHRoaXMuZmlsdGVycy5zZWFyY2ggPSAnJztcbiAgICB0aGlzLmxpc3RJc0VtcHR5ID0gZmFsc2U7XG4gICAgaWYgKCF0aGlzLmRpc3BsYXlIb21lUGFnZSl7IHRoaXMucmV0dXJuVG9Ib21lUGFnZSgpOyB9XG4gIH1cblxuICB1cGRhdGVTZWFyY2goc2VhcmNoOiBzdHJpbmcpIHtcbiAgICBpZiAoc2VhcmNoICE9PSB0aGlzLmZpbHRlcnMuc2VhcmNoKSB7XG4gICAgICB0aGlzLmZpbHRlcnMuc2VhcmNoID0gc2VhcmNoO1xuICAgICAgdGhpcy5yZWxvYWRMaXN0KCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlRmlsdGVycyhmaWx0ZXJzOiBSZWNpcGVGaWx0ZXJzKSB7XG4gICAgdGhpcy5maWx0ZXJzID0geyAuLi5maWx0ZXJzIH07IC8vIE5lY2Vzc2FyeSB0byB0cmlnZ2VyIHRoZSBuZ09uQ2hhbmdlc1xuICAgIHRoaXMuZmlsdGVyVG9SZW1vdmUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5saXN0SXNFbXB0eSA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICB0aGlzLnJldHVyblRvVG9wKCk7XG4gICAgfVxuICAgIHRoaXMucmVsb2FkTGlzdCgpO1xuICB9XG5cbiAgcmVsb2FkTGlzdCgpIHtcbiAgICAvLyBJZiB0aGVyZSBhcmUgbm8gZmlsdGVycyBub3Igc2VhcmNoLCByZXR1cm4gdG8gaG9tZSBwYWdlXG4gICAgaWYgKHRoaXMuYXJlRmlsdGVyc0VtcHR5KCkpIHsgdGhpcy5yZXR1cm5Ub0hvbWVQYWdlKCk7IH1cbiAgICBlbHNlIHsgLy8gUmVsb2FkIHRoZSBsaXN0XG4gICAgICB0aGlzLmZpbHRlcnMgPSB7IC4uLnRoaXMuZmlsdGVycyB9OyAvLyBOZWNlc3NhcnkgdG8gdHJpZ2dlciB0aGUgbmdPbkNoYW5nZXNcbiAgICAgIHRoaXMuZGlzcGxheUhvbWVQYWdlID0gZmFsc2U7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgY2F0ZWdvcnlUaXRsZUNsaWNrZWQoZXZlbnQ6IHt0aXRsZTogc3RyaW5nLCBmaWx0ZXJzOiBhbnl9KSB7XG4gICAgdGhpcy5yZXR1cm5Ub1RvcCgpO1xuICAgIHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycyA9IHsgZmlsdGVyczogZXZlbnQuZmlsdGVycywgdGl0bGU6IGV2ZW50LnRpdGxlIH07XG4gICAgdGhpcy5yZWxvYWRMaXN0KCk7XG4gIH1cblxuICBhcmVGaWx0ZXJzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNGaWVsZEVtcHR5KHRoaXMuZmlsdGVycy5kaWZmaWN1bHR5KSAmJiB0aGlzLmlzRmllbGRFbXB0eSh0aGlzLmZpbHRlcnMuY29zdCkgJiYgdGhpcy5pc0ZpZWxkRW1wdHkodGhpcy5maWx0ZXJzLnRpbWUpXG4gICAgICAmJiB0aGlzLmZpbHRlcnMuc2VhcmNoID09PSAnJyAmJiAhdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzPy5maWx0ZXJzO1xuICB9XG5cbiAgaXNGaWVsZEVtcHR5KGZpbHRlcjogUmVjaXBlRmlsdGVyW10pIHtcbiAgICBmb3IgKGNvbnN0IGYgb2YgZmlsdGVyKSB7XG4gICAgICBpZiAoZi52YWx1ZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmVtb3ZlRmlsdGVyKGZpbHRlclRleHQ6IHN0cmluZykge1xuICAgIHRoaXMuZmlsdGVyVG9SZW1vdmUgPSBmaWx0ZXJUZXh0O1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHJldHVyblRvVG9wKCkge1xuICAgIGlmICh0aGlzLnRvcEFuY2hvcikge1xuICAgICAgdGhpcy50b3BBbmNob3IubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xuICAgIH1cbiAgfVxuXG4gIGRpc3BsYXlSZXR1cm5Ub3BCdXR0b24oKSB7XG4gICAgdGhpcy5yZXR1cm5Ub3BCdXR0b25TaG91bGRCZURpc3BsYXllZCA9IHRoaXMudG9wQW5jaG9yLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tIDwgLTQwMDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBjaGFuZ2VIZWFkZXJJbWFnZShyZWNpcGVzOiBSZWNpcGVbXSkge1xuICAgIGlmIChyZWNpcGVzLmxlbmd0aCA+IDAgJiYgdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzPy5maWx0ZXJzICYmICF0aGlzLnJlY2lwZUluSGVhZGVyKSB7XG4gICAgICB0aGlzLnJlY2lwZUluSGVhZGVyID0gcmVjaXBlc1swXTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm5Ub0hvbWVQYWdlKCkge1xuICAgIHRoaXMuZGlzcGxheUhvbWVQYWdlID0gdHJ1ZTtcbiAgICB0aGlzLnJlY2lwZUluSGVhZGVyID0gdW5kZWZpbmVkOyAvLyBEb24ndCBmb3JjZSBhIHJlY2lwZSBpbiBoZWFkZXIgb24gaG9tZVBhZ2VcbiAgICB0aGlzLnJlc2V0RmlsdGVycygpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9uRmlsdGVyQ29sbGFwc2VkKCkge1xuICAgIHRoaXMuaXNGaWx0ZXJDb2xsYXBzZWQgPSAhdGhpcy5pc0ZpbHRlckNvbGxhcHNlZDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgLy8gdG8gdHJpZ2dlciBhZnRlciB0aGUgZGV0ZWN0Q2hhbmdlcyBiZWNhdXNlIHdlIG5lZWQgdG8gYWxyZWFkIGhhdmUgdGhlIGRpc3BsYXkgY2hhbmdlIHRvIHVwZGF0ZSBjYXJkc1xuICAgIHRoaXMuY2F0ZWdvcmllc0NvbXAuZm9yRWFjaCggY2F0ID0+IHtcbiAgICAgIGNhdC51cGRhdGVXaWR0aCgpO1xuICAgIH0pO1xuICB9XG5cbiAgZ29Ub0NyZWF0ZVBhZ2UocmVjaXBlID0gbnVsbCkge1xuICAgIHRoaXMuY3JlYXRpbmdSZWNpcGUgPSB0cnVlO1xuICAgIHRoaXMucmVjaXBlVG9VcGRhdGUgPSByZWNpcGU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMucmV0dXJuVG9Ub3AoKTtcbiAgfVxuXG4gIGxlYXZlQ3JlYXRlUGFnZSgpIHtcbiAgICB0aGlzLmNyZWF0aW5nUmVjaXBlID0gZmFsc2U7XG4gICAgdGhpcy5yZWxvYWRMaXN0KCk7XG4gICAgdGhpcy5yZXR1cm5Ub1RvcCgpO1xuICB9XG5cbiAgbWFuYWdlUmVjaXBlQWN0aW9uKGV2ZW50OiB7YWN0aW9uOiBzdHJpbmcsIHJlY2lwZTogUmVjaXBlfSkge1xuICAgIHN3aXRjaCAoZXZlbnQuYWN0aW9uKSB7XG4gICAgICBjYXNlICdDUkVBVEUnOiB7XG4gICAgICAgIHRoaXMuZ29Ub0NyZWF0ZVBhZ2UoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ0VESVQnOiB7XG4gICAgICAgIHRoaXMuZ29Ub0NyZWF0ZVBhZ2UoZXZlbnQucmVjaXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ0RFTEVURSc6IHtcbiAgICAgICAgaWYgKGV2ZW50LnJlY2lwZT8uaWQgJiYgZXZlbnQucmVjaXBlLnJlbGF0aW9uc2hpcHNbJ3JlY2lwZS1wcm92aWRlciddPy5kYXRhLmlkID09PSAncGVyc29uYWwnKSB7XG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmRlbGV0ZShldmVudC5yZWNpcGUuaWQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucmVsb2FkTGlzdCgpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzTGlzdEVtcHR5KHJlY2lwZXM6IFJlY2lwZVtdKSB7XG4gICAgdGhpcy5saXN0SXNFbXB0eSA9IHJlY2lwZXMubGVuZ3RoID09PSAwO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHNldFVzZXJQcmVmZXJlbmNlKHByZWYsIHN0YXRlKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnVzZXJzU2VydmljZS5zZXRQcmVmZXJlbmNlKHByZWYsIHN0YXRlKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5sb2FkUGFja2FnZXMoKSlcbiAgICAgICkuc3Vic2NyaWJlKClcbiAgICApO1xuICB9XG5cbiAgcmVsb2FkUGFja2FnZXMoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmxvYWRQYWNrYWdlcygpLnN1YnNjcmliZSgpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFBhY2thZ2VzKCk6IE9ic2VydmFibGU8RG9jdW1lbnRDb2xsZWN0aW9uPFBhY2thZ2U+PiB7XG4gICAgcmV0dXJuIHRoaXMucGFja2FnZVNlcnZpY2UuY2F0ZWdvcmllc19mb3IoW3RoaXMuc3VwcGxpZXJJZF0pLnBpcGUoXG4gICAgICBza2lwV2hpbGUocGFja2FnZXMgPT4gcGFja2FnZXMuaXNfbG9hZGluZyksXG4gICAgICB0YXAoKHBhY2thZ2VzOiBEb2N1bWVudENvbGxlY3Rpb248UGFja2FnZT4pID0+IHtcbiAgICAgICAgdGhpcy5pbml0Q2F0ZWdvcmllcyhwYWNrYWdlcyk7XG4gICAgICAgIHRoaXMuc2VsZWN0Q2F0ZWdvcnlGcm9tVXJsKCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8vIFNob3cgZmVlZGJhY2sgYmxvY2sgb25seSBpZiB1c2VyIGlzIGxvZ2dlZCBhbmQgdGhlIGNoaWxkcmVuIHByZWZlcmVuY2UgaXMgdW5rbm93blxuICBwcml2YXRlIGFzc2Vzc1Nob3dVc2VyRmVlZGJhY2soKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnVzZXJzU2VydmljZS5pc0xvZ2dlZCQsXG4gICAgICB0aGlzLnVzZXJzU2VydmljZS5wcmVmZXJlbmNlRGVmaW5lZCgnaGFzX2NoaWxkcmVuJylcbiAgICBdKS5zdWJzY3JpYmUocmVzdWx0cyA9PiB7XG4gICAgICBjb25zdCBsb2dnZWQgPSByZXN1bHRzWzBdO1xuICAgICAgY29uc3QgcHJlZmVyZW5jZURlZmluZWQgPSByZXN1bHRzWzFdO1xuICAgICAgdGhpcy5zaG93VXNlckZlZWRiYWNrID0gbG9nZ2VkICYmICFwcmVmZXJlbmNlRGVmaW5lZDtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiAjbWlhbUNhdGFsb2dUb3BBbmNob3IgY2xhc3M9XCJtaWFtLWNhdGFsb2ctYW5jaG9yXCI+PC9kaXY+XG48ZGl2ICpuZ0lmPVwiIWNyZWF0aW5nUmVjaXBlIGVsc2UgY3JlYXRpb25QYWdlXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nXCIgKHdpbmRvdzpzY3JvbGwpPVwiZGlzcGxheVJldHVyblRvcEJ1dHRvbigpXCI+XG5cbiAgPG5nLW1pYW0tcmVjaXBlLWZpbHRlcnNcbiAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcbiAgICBbbW9iaWxlRml4ZWRdPVwicmV0dXJuVG9wQnV0dG9uU2hvdWxkQmVEaXNwbGF5ZWRcIlxuICAgIFtmaWx0ZXJUb1JlbW92ZV09XCJmaWx0ZXJUb1JlbW92ZVwiXG4gICAgKGZpbHRlclJlc2V0KT1cInJlc2V0RmlsdGVycygpXCJcbiAgICAoZmlsdGVyQ2hhbmdlZCk9XCJ1cGRhdGVGaWx0ZXJzKCRldmVudClcIlxuICAgIChmaWx0ZXJDb2xsYXBzZWQpPVwib25GaWx0ZXJDb2xsYXBzZWQoKVwiXG4gICAgKHByZWZlcmVuY2VzQ2hhbmdlZCk9XCJyZWxvYWRQYWNrYWdlcygpXCJcbiAgPlxuICA8L25nLW1pYW0tcmVjaXBlLWZpbHRlcnM+XG5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX2NvbnRlbnRcIiBbbmdDbGFzc109XCJ7J2ZpbHRlci1jb2xsYXBzZWQnOiBpc0ZpbHRlckNvbGxhcHNlZH1cIj5cbiAgICA8bmctbWlhbS1jYXRhbG9nLWhlYWRlciBcbiAgICAgIFtkaXNwbGF5UmV0dXJuQnV0dG9uXT1cIiFkaXNwbGF5SG9tZVBhZ2VcIlxuICAgICAgW2ZvcmNlZFJlY2lwZV09XCJyZWNpcGVJbkhlYWRlclwiXG4gICAgICBbdGl0bGVdPVwiZGlzcGxheUhvbWVQYWdlID8gaG9tZVBhZ2VUaXRsZSA6IFxuICAgICAgICAoZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycyAmJiBmaWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLnRpdGxlICE9PSAnJyA/IGZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMudGl0bGUgOiB0aXRsZUluUmVzZWFyY2hNb2RlKVwiXG4gICAgICAocmV0dXJuQnV0dG9uUHJlc3NlZCk9XCJyZXR1cm5Ub0hvbWVQYWdlKClcIlxuICAgICAgKHNlYXJjaFN0cmluZ0NoYW5nZWQpPVwidXBkYXRlU2VhcmNoKCRldmVudClcIj5cbiAgICA8L25nLW1pYW0tY2F0YWxvZy1oZWFkZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fY29udGVudF9fdXNlci1mZWVkYmFja1wiICpuZ0lmPVwic2hvd1VzZXJGZWVkYmFja1wiPlxuICAgICAgPHNwYW4+VW5lIHBldGl0ZSBxdWVzdGlvbiA6IEF2ZXotdm91cyBkZXMgZW5mYW50cyA/PC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX2NvbnRlbnRfX3VzZXItZmVlZGJhY2tfX2FjdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm0tYnV0dG9uLWdyZXlcIiAoY2xpY2spPVwic2V0VXNlclByZWZlcmVuY2UoJ2hhc19jaGlsZHJlbicsIHRydWUpXCI+T3VpPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJtLWJ1dHRvbi1ncmV5XCIgKGNsaWNrKT1cInNldFVzZXJQcmVmZXJlbmNlKCdoYXNfY2hpbGRyZW4nLCBmYWxzZSlcIj5Ob248L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIiFkaXNwbGF5SG9tZVBhZ2UgZWxzZSBjYXRlZ29yaWVzQ29tcG9uZW50c1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fbGlzdFwiPlxuICAgICAgPG5nLW1pYW0tY2F0YWxvZy1saXN0XG4gICAgICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgICAgICBbcmFuZG9tTW9kZV09XCJ0cnVlXCJcbiAgICAgICAgKHJldHJpZXZlZFJlY2lwZXMpPVwiY2hhbmdlSGVhZGVySW1hZ2UoJGV2ZW50KVwiXG4gICAgICAgIChmaWx0ZXJSZW1vdmVkKT1cInJlbW92ZUZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgKHJlY2lwZUFjdGlvblRyaWdnZXJlZCk9XCJtYW5hZ2VSZWNpcGVBY3Rpb24oJGV2ZW50KVwiPlxuICAgICAgPC9uZy1taWFtLWNhdGFsb2ctbGlzdD5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjY2F0ZWdvcmllc0NvbXBvbmVudHM+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY2F0ZWdvcmllcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nX19jYXRlZ29yaWVzXCI+XG4gICAgICAgIDxuZy1taWFtLWNhdGFsb2ctY2F0ZWdvcnkgXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIGNhdGVnb3JpZXNcIiBcbiAgICAgICAgICBbdGl0bGVdPVwiY2F0ZWdvcnkudGl0bGVcIlxuICAgICAgICAgIFtmaWx0ZXJzXT1cImNhdGVnb3J5LmZpbHRlcnNcIiBcbiAgICAgICAgICAoZGlzcGxheUxpc3QpPVwiY2F0ZWdvcnlUaXRsZUNsaWNrZWQoJGV2ZW50KVwiPlxuICAgICAgICA8L25nLW1pYW0tY2F0YWxvZy1jYXRlZ29yeT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8ZGl2ICpuZ0lmPVwicmV0dXJuVG9wQnV0dG9uU2hvdWxkQmVEaXNwbGF5ZWRcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX3JldHVyblRvcFwiIChjbGljayk9XCJyZXR1cm5Ub1RvcCgpXCI+XG4gICAgICA8bmctbWlhbS1pY29uIGhlaWdodD0nMzInIHdpZHRoPSczMicgcHJpbWFyeUNvbG9yPVwidmFyKC0tbS1jb2xvci13aGl0ZSlcIiBbaWNvbk5hbWVdPVwiaWNvbi5DaGV2cm9uRG93blwiPjwvbmctbWlhbS1pY29uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNjcmVhdGlvblBhZ2U+XG4gIDxuZy1taWFtLXJlY2lwZS1zdGVwcGVyIFtyZWNpcGVdPVwicmVjaXBlVG9VcGRhdGVcIiAocmVjaXBlQ2hhbmdlKT1cImxlYXZlQ3JlYXRlUGFnZSgpXCIgKGNhbmNlbGVkKT1cImxlYXZlQ3JlYXRlUGFnZSgpXCI+PC9uZy1taWFtLXJlY2lwZS1zdGVwcGVyPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|