buildingproduct-library 0.2.76 → 0.2.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/assets/images/pdf-icon.svg +45 -0
  2. package/{buildingproduct-library-0.2.76.tgz → buildingproduct-library-0.2.78.tgz} +0 -0
  3. package/bundles/buildingproduct-library.umd.js +3471 -2489
  4. package/bundles/buildingproduct-library.umd.js.map +1 -1
  5. package/esm2015/lib/account-dropdown/account-dropdown.component.js +38 -4
  6. package/esm2015/lib/account-dropdown/account-dropdown.service.js +3 -3
  7. package/esm2015/lib/checkout/add-new-address/add-new-address.component.js +22 -13
  8. package/esm2015/lib/checkout/checkout.module.js +10 -2
  9. package/esm2015/lib/checkout/custom-checkout/custom-checkout.component.js +7 -28
  10. package/esm2015/lib/checkout/order-confirmation/order-confirmation.component.js +2 -3
  11. package/esm2015/lib/checkout/order-review/delivery-information/delivery-information.component.js +1 -1
  12. package/esm2015/lib/checkout/order-review/order-review-grid/order-review-grid.component.js +86 -16
  13. package/esm2015/lib/checkout/order-review/order-review-list/order-review-list.component.js +72 -15
  14. package/esm2015/lib/checkout/order-review/order-review.component.js +3 -27
  15. package/esm2015/lib/contact-us/contact-us.component.js +1 -1
  16. package/esm2015/lib/custom-cart/addto-saved-carts/addto-saved-carts.component.js +2 -2
  17. package/esm2015/lib/custom-cart/custom-cart.component.js +3 -27
  18. package/esm2015/lib/custom-cart/custom-cart.module.js +3 -3
  19. package/esm2015/lib/custom-mini-cart/custom-mini-cart.component.js +110 -52
  20. package/esm2015/lib/custom-mini-cart/custom-mini-cart.module.js +2 -2
  21. package/esm2015/lib/custom-navigation/custom-navigation.component.js +122 -0
  22. package/esm2015/lib/custom-navigation/custom-navigation.module.js +3 -3
  23. package/esm2015/lib/custom-order-details/custom-order-details.component.js +26 -21
  24. package/esm2015/lib/custom-order-details/custom-order-details.module.js +15 -7
  25. package/esm2015/lib/custom-order-details/download-popup/download-popup.component.js +1 -1
  26. package/esm2015/lib/custom-order-details/order-detail-grid/order-detail-grid.component.js +105 -22
  27. package/esm2015/lib/custom-order-details/order-detail-list/order-detail-list.component.js +89 -23
  28. package/esm2015/lib/custom-order-history/custom-order-history.component.js +49 -22
  29. package/esm2015/lib/custom-order-history/custom-order-history.module.js +10 -2
  30. package/esm2015/lib/custom-order-history/slider-progress/slider-progress.component.js +1 -1
  31. package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/custom-save-cart-dtl/custom-save-cart-dtl.component.js +2 -2
  32. package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/custom-saved-cart-details.module.js +2 -2
  33. package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-action/saved-cart-details-action.component.js +4 -28
  34. package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-overview/saved-cart-details-overview.component.js +1 -1
  35. package/esm2015/lib/custom-saved-cart/custom-saved-cart.component.js +6 -4
  36. package/esm2015/lib/custom-saved-cart/custom-saved-cart.module.js +2 -2
  37. package/esm2015/lib/custom-saved-cart/saved-cart.service.js +11 -2
  38. package/esm2015/lib/custom-search/custom-search.component.js +3 -3
  39. package/esm2015/lib/custom-user-account/custom-user-account.component.js +2 -2
  40. package/esm2015/lib/directives/custom-directives.module.js +1 -1
  41. package/esm2015/lib/directives/custom-paginatior.directive.js +101 -31
  42. package/esm2015/lib/find-store/find-store.component.js +2 -2
  43. package/esm2015/lib/help-support/help-support.component.js +1 -1
  44. package/esm2015/lib/my-account/account-dashboard/account-dashboard.component.js +2 -2
  45. package/esm2015/lib/my-account/account-statements/account-statements.component.js +2 -2
  46. package/esm2015/lib/my-account/invoice-credit/invoice-credit.component.js +51 -17
  47. package/esm2015/lib/my-account/my-account.component.js +2 -2
  48. package/esm2015/lib/my-account/my-account.module.js +11 -3
  49. package/esm2015/lib/my-team/my-team.component.js +25 -17
  50. package/esm2015/lib/my-team/my-team.module.js +11 -7
  51. package/esm2015/lib/services/endPointURL.js +6 -1
  52. package/esm2015/lib/services/user-account-detail-service.service.js +172 -4
  53. package/esm2015/lib/shared/CustomProduct.js +5 -4
  54. package/esm2015/lib/shared/active-saved-cart/active-saved-cart.component.js +20 -11
  55. package/esm2015/lib/shared/custom-breadcrum/custom-breadcrum.component.js +17 -7
  56. package/esm2015/lib/shared/custom-cart-detail/custom-cart-detail.component.js +1 -1
  57. package/esm2015/lib/shared/custom-cart-detail/custom-cart-grid/custom-cart-grid.component.js +198 -102
  58. package/esm2015/lib/shared/custom-cart-detail/custom-cart-list/custom-cart-list.component.js +64 -22
  59. package/esm2015/lib/shared/custom-cart-detail/custom-product-quantity-form/custom-product-quantity-form.component.js +129 -80
  60. package/esm2015/lib/shared/date-range-picker/date-range-picker.component.js +59 -9
  61. package/esm2015/lib/shared/regEx.validator.js +3 -1
  62. package/esm2015/lib/shared/saved-cart-popup/saved-cart-popup.component.js +1 -1
  63. package/esm2015/lib/shared/shared-components.module.js +21 -10
  64. package/esm2015/lib/shared/shared-download-order/shared-download-order.component.js +116 -31
  65. package/esm2015/lib/spa-custom-header.module.js +14 -13
  66. package/esm2015/public-api.js +2 -2
  67. package/fesm2015/buildingproduct-library.js +1996 -1081
  68. package/fesm2015/buildingproduct-library.js.map +1 -1
  69. package/lib/checkout/add-new-address/add-new-address.component.d.ts +1 -0
  70. package/lib/checkout/checkout.module.d.ts +12 -10
  71. package/lib/checkout/custom-checkout/custom-checkout.component.d.ts +2 -5
  72. package/lib/checkout/order-review/order-review-grid/order-review-grid.component.d.ts +8 -2
  73. package/lib/checkout/order-review/order-review-list/order-review-list.component.d.ts +5 -2
  74. package/lib/checkout/order-review/order-review.component.d.ts +1 -4
  75. package/lib/custom-cart/custom-cart.component.d.ts +1 -4
  76. package/lib/custom-mini-cart/custom-mini-cart.component.d.ts +11 -3
  77. package/lib/custom-navigation/{custom-navigation/custom-navigation.component.d.ts → custom-navigation.component.d.ts} +1 -1
  78. package/lib/custom-navigation/custom-navigation.module.d.ts +1 -1
  79. package/lib/custom-order-details/custom-order-details.component.d.ts +5 -2
  80. package/lib/custom-order-details/custom-order-details.module.d.ts +6 -4
  81. package/lib/custom-order-details/order-detail-grid/order-detail-grid.component.d.ts +14 -4
  82. package/lib/custom-order-details/order-detail-list/order-detail-list.component.d.ts +10 -3
  83. package/lib/custom-order-history/custom-order-history.component.d.ts +3 -0
  84. package/lib/custom-order-history/custom-order-history.module.d.ts +8 -6
  85. package/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-action/saved-cart-details-action.component.d.ts +1 -4
  86. package/lib/custom-saved-cart/custom-saved-cart.component.d.ts +1 -0
  87. package/lib/custom-saved-cart/saved-cart.service.d.ts +1 -0
  88. package/lib/custom-search/custom-search.component.d.ts +1 -1
  89. package/lib/directives/custom-paginatior.directive.d.ts +6 -1
  90. package/lib/find-store/find-store.component.d.ts +1 -1
  91. package/lib/my-account/account-statements/account-statements.component.d.ts +1 -1
  92. package/lib/my-account/invoice-credit/invoice-credit.component.d.ts +8 -2
  93. package/lib/my-account/my-account.component.d.ts +1 -1
  94. package/lib/my-account/my-account.module.d.ts +7 -5
  95. package/lib/my-team/my-team.component.d.ts +2 -0
  96. package/lib/my-team/my-team.module.d.ts +7 -6
  97. package/lib/services/endPointURL.d.ts +3 -0
  98. package/lib/services/user-account-detail-service.service.d.ts +27 -1
  99. package/lib/shared/CustomProduct.d.ts +1 -0
  100. package/lib/shared/active-saved-cart/active-saved-cart.component.d.ts +3 -1
  101. package/lib/shared/custom-breadcrum/custom-breadcrum.component.d.ts +3 -1
  102. package/lib/shared/custom-cart-detail/custom-cart-grid/custom-cart-grid.component.d.ts +17 -9
  103. package/lib/shared/custom-cart-detail/custom-cart-list/custom-cart-list.component.d.ts +8 -6
  104. package/lib/shared/custom-cart-detail/custom-product-quantity-form/custom-product-quantity-form.component.d.ts +11 -3
  105. package/lib/shared/date-range-picker/date-range-picker.component.d.ts +11 -3
  106. package/lib/shared/regEx.validator.d.ts +2 -0
  107. package/lib/shared/shared-components.module.d.ts +10 -8
  108. package/lib/shared/shared-download-order/shared-download-order.component.d.ts +6 -4
  109. package/lib/spa-custom-header.module.d.ts +7 -6
  110. package/package.json +3 -1
  111. package/public-api.d.ts +1 -1
  112. package/esm2015/lib/custom-navigation/custom-navigation/custom-navigation.component.js +0 -121
  113. package/esm2015/lib/preference/preference.component.js +0 -19
  114. package/esm2015/lib/preference/preference.module.js +0 -45
  115. package/lib/preference/preference.component.d.ts +0 -8
  116. package/lib/preference/preference.module.d.ts +0 -10
@@ -1,4 +1,5 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { __awaiter } from "tslib";
2
+ import { Component } from '@angular/core';
2
3
  import { MiniCartComponent } from '@spartacus/storefront';
3
4
  import { BehaviorSubject } from 'rxjs';
4
5
  import { CommonUtils } from '../utils';
@@ -6,18 +7,22 @@ import * as i0 from "@angular/core";
6
7
  import * as i1 from "@spartacus/core";
7
8
  import * as i2 from "@angular/router";
8
9
  import * as i3 from "@ng-bootstrap/ng-bootstrap";
9
- import * as i4 from "../services/account-dropdown-state.service";
10
- import * as i5 from "@spartacus/storefront";
11
- import * as i6 from "@angular/common";
10
+ import * as i4 from "../services/cart.service";
11
+ import * as i5 from "../services/account-dropdown-state.service";
12
+ import * as i6 from "../services/user-account-detail-service.service";
13
+ import * as i7 from "@spartacus/storefront";
14
+ import * as i8 from "@angular/common";
12
15
  export class CustomMiniCartComponent extends MiniCartComponent {
13
- constructor(_eref, activeCartService, router, modalService, cmsService, accountDropDownStateService, ref) {
16
+ constructor(_eref, activeCartService, router, modalService, cartService, cmsService, accountDropDownStateService, userProfileDetailsService, ref) {
14
17
  super(activeCartService);
15
18
  this._eref = _eref;
16
19
  this.activeCartService = activeCartService;
17
20
  this.router = router;
18
21
  this.modalService = modalService;
22
+ this.cartService = cartService;
19
23
  this.cmsService = cmsService;
20
24
  this.accountDropDownStateService = accountDropDownStateService;
25
+ this.userProfileDetailsService = userProfileDetailsService;
21
26
  this.ref = ref;
22
27
  this.entries$ = this.activeCartService.getEntries();
23
28
  this.cart$ = this.activeCartService.getActive();
@@ -29,50 +34,87 @@ export class CustomMiniCartComponent extends MiniCartComponent {
29
34
  this.searchPlaceHolder = 'Search';
30
35
  this.items = [];
31
36
  this.showSearch = false;
37
+ this.isCardData = true;
38
+ this.isCartPermission = true;
32
39
  this.showWaitCursor = new BehaviorSubject(true);
33
40
  this.env = sessionStorage.getItem('env');
34
41
  this.environment = JSON.parse(this.env);
35
42
  }
36
43
  ngOnInit() {
37
- this.showWaitCursor.next(true);
38
- this.cmsService.getComponentData("ContactUsComponent").subscribe((data) => {
39
- });
40
- this.cart$.subscribe(dataRes => {
41
- this.totalCartItems = dataRes.totalItems;
42
- if (dataRes.totalPrice) {
43
- this.totalPriceFormat = dataRes.totalPrice.formattedValue;
44
- }
45
- else {
46
- this.totalPriceFormat = "";
47
- }
48
- this.accountDropDownStateService.setCartValue(dataRes);
49
- this.router.events.subscribe((val) => {
50
- if (window.location.pathname.includes('mylist')) {
51
- this.searchPlaceHolder = 'Search for a particular list';
44
+ var _a;
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ this.isCartPermission = yield this.userProfileDetailsService.isCartPermission();
47
+ const cartObj = localStorage.getItem('spartacus⚿dimond-spa⚿cart');
48
+ this.cartId = (_a = JSON.parse(cartObj)) === null || _a === void 0 ? void 0 : _a.active;
49
+ this.showWaitCursor.next(true);
50
+ this.cmsService.getComponentData("ContactUsComponent").subscribe((data) => {
51
+ });
52
+ this.cart$.subscribe(dataRes => {
53
+ this.totalCartItems = dataRes.totalItems;
54
+ if (dataRes.totalPrice) {
55
+ this.getCartLists();
56
+ this.totalPriceFormat = dataRes.totalPrice.formattedValue;
52
57
  }
53
58
  else {
54
- this.searchPlaceHolder = 'Search';
59
+ this.totalPriceFormat = "";
55
60
  }
61
+ this.showWaitCursor.next(false);
62
+ this.accountDropDownStateService.setCartValue(dataRes);
63
+ this.router.events.subscribe((val) => {
64
+ if (window.location.pathname.includes('mylist')) {
65
+ this.searchPlaceHolder = 'Search for a particular list';
66
+ }
67
+ else {
68
+ this.searchPlaceHolder = 'Search';
69
+ }
70
+ this.ref.markForCheck();
71
+ });
56
72
  this.ref.markForCheck();
73
+ }, (error) => {
74
+ this.showWaitCursor.next(false);
57
75
  });
58
- });
59
- this.cmsService.getComponentData("EmptyCartParagraphComponent").subscribe((data) => {
60
- this.emptyCardData = data === null || data === void 0 ? void 0 : data.content;
61
- this.showWaitCursor.next(false);
62
- });
63
- if (this.entries$) {
64
- this.entries$.subscribe(data => {
65
- this.items = [];
66
- data.forEach(n => {
67
- this.items.push(n);
68
- });
76
+ this.cmsService.getComponentData("EmptyCartParagraphComponent").subscribe((data) => {
77
+ this.emptyCardData = data === null || data === void 0 ? void 0 : data.content;
78
+ this.showWaitCursor.next(false);
69
79
  });
70
- }
71
- this.onPageRefresh();
80
+ if (this.entries$) {
81
+ this.entries$.subscribe(data => {
82
+ this.items = [];
83
+ data.forEach(n => {
84
+ this.items.push(n);
85
+ });
86
+ });
87
+ }
88
+ this.onPageRefresh();
89
+ });
72
90
  }
73
91
  ngOnChanges(changes) {
74
92
  this.ref.detectChanges();
75
93
  }
94
+ getCartLists() {
95
+ this.showWaitCursor.next(true);
96
+ this.cartService.getCartList(this.cartId).subscribe((res) => {
97
+ var _a;
98
+ if (res && res.entries) {
99
+ if (this.totalCartItems != (res === null || res === void 0 ? void 0 : res.entries.length)) {
100
+ window.location.reload();
101
+ }
102
+ this.cartDetails = res === null || res === void 0 ? void 0 : res.entries;
103
+ this.showWaitCursor.next(false);
104
+ this.ref.markForCheck();
105
+ }
106
+ else {
107
+ const cartObj = localStorage.getItem('spartacus⚿dimond-spa⚿cart');
108
+ this.cartId = (_a = JSON.parse(cartObj)) === null || _a === void 0 ? void 0 : _a.active;
109
+ let selected = res === null || res === void 0 ? void 0 : res.carts.find((cart) => cart.code == this.cartId);
110
+ this.cartDetails = selected.entries;
111
+ this.showWaitCursor.next(false);
112
+ this.ref.markForCheck();
113
+ }
114
+ }, (error) => {
115
+ this.showWaitCursor.next(false);
116
+ });
117
+ }
76
118
  negativeConverter(value) {
77
119
  let val = parseFloat(value).toFixed(2);
78
120
  if (/\-/g.test(val)) {
@@ -126,25 +168,29 @@ export class CustomMiniCartComponent extends MiniCartComponent {
126
168
  }
127
169
  // Get the Image Details based on Products
128
170
  getImageDetails(cartDetails, thumbnail = true) {
129
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
171
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
130
172
  let imageUrl = (_a = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _a === void 0 ? void 0 : _a.images;
131
173
  if (this.isCardData) {
132
- imageUrl = (_b = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _b === void 0 ? void 0 : _b.images;
174
+ // imageUrl = cartDetails?.product?.images?.find((img: any) => img.format == "cartIcon");
175
+ const colorCode = (cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.configurationInfos) || (cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.configurationInfos[0]) ? (_c = (_b = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.configurationInfos[0]) === null || _b === void 0 ? void 0 : _b.configurationValue) === null || _c === void 0 ? void 0 : _c.split('|')[0] : "";
176
+ imageUrl = (_e = (_d = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _d === void 0 ? void 0 : _d.images) === null || _e === void 0 ? void 0 : _e.filter((img) => (img.format == "cartIcon" && img.colorCode == colorCode));
177
+ if (colorCode == undefined)
178
+ imageUrl = (_g = (_f = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _f === void 0 ? void 0 : _f.images) === null || _g === void 0 ? void 0 : _g.filter((img) => (img.format == "cartIcon"));
133
179
  }
134
180
  else {
135
- imageUrl = (_e = (_d = (_c = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _c === void 0 ? void 0 : _c.images) === null || _d === void 0 ? void 0 : _d.GALLERY) === null || _e === void 0 ? void 0 : _e.cartIcon;
181
+ imageUrl = (_k = (_j = (_h = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _h === void 0 ? void 0 : _h.images) === null || _j === void 0 ? void 0 : _j.GALLERY) === null || _k === void 0 ? void 0 : _k.cartIcon;
136
182
  }
137
183
  let srcUrl;
138
184
  if ((cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) &&
139
- ((_f = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) === null || _f === void 0 ? void 0 : _f.length) &&
140
- ((_g = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _g === void 0 ? void 0 : _g.flashingProduct)) {
185
+ ((_l = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) === null || _l === void 0 ? void 0 : _l.length) &&
186
+ ((_m = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _m === void 0 ? void 0 : _m.flashingProduct)) {
141
187
  srcUrl =
142
- thumbnail && ((_h = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) === null || _h === void 0 ? void 0 : _h.length) > 1
143
- ? (_j = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[1]) === null || _j === void 0 ? void 0 : _j.downloadURL
144
- : (_k = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[0]) === null || _k === void 0 ? void 0 : _k.downloadURL;
188
+ thumbnail && ((_o = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) === null || _o === void 0 ? void 0 : _o.length) > 1
189
+ ? (_p = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[1]) === null || _p === void 0 ? void 0 : _p.downloadURL
190
+ : (_q = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[0]) === null || _q === void 0 ? void 0 : _q.downloadURL;
145
191
  imageUrl = {
146
- url: (_l = (this.environment.occBaseUrl.slice(0, this.environment.occBaseUrl.length - 1) +
147
- srcUrl)) === null || _l === void 0 ? void 0 : _l.replace("&attachment=true", ""),
192
+ url: (_r = (this.environment.occBaseUrl.slice(0, this.environment.occBaseUrl.length - 1) +
193
+ srcUrl)) === null || _r === void 0 ? void 0 : _r.replace("&attachment=true", ""),
148
194
  };
149
195
  }
150
196
  return imageUrl;
@@ -164,9 +210,25 @@ export class CustomMiniCartComponent extends MiniCartComponent {
164
210
  const mimeArray = ["image/png", "image/jpg", "image/jpeg"];
165
211
  return mimeArray.includes(mimeType);
166
212
  }
213
+ // Get Summary Heading
214
+ getClassifications(data) {
215
+ let featureArray = [];
216
+ data === null || data === void 0 ? void 0 : data.forEach((element) => {
217
+ element === null || element === void 0 ? void 0 : element.features.forEach((feature) => {
218
+ var _a, _b, _c;
219
+ if (feature === null || feature === void 0 ? void 0 : feature.featureUnit) {
220
+ featureArray.push(((_a = feature === null || feature === void 0 ? void 0 : feature.featureValues[0]) === null || _a === void 0 ? void 0 : _a.value) + ' ' + ((_b = feature === null || feature === void 0 ? void 0 : feature.featureUnit) === null || _b === void 0 ? void 0 : _b.symbol));
221
+ }
222
+ else {
223
+ featureArray.push((_c = feature === null || feature === void 0 ? void 0 : feature.featureValues[0]) === null || _c === void 0 ? void 0 : _c.value);
224
+ }
225
+ });
226
+ });
227
+ return featureArray === null || featureArray === void 0 ? void 0 : featureArray.join(" | ");
228
+ }
167
229
  }
168
- CustomMiniCartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CustomMiniCartComponent, deps: [{ token: i0.ElementRef }, { token: i1.ActiveCartService }, { token: i2.Router }, { token: i3.NgbModal }, { token: i1.CmsService }, { token: i4.AccountDropdownStateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
169
- CustomMiniCartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CustomMiniCartComponent, selector: "app-custom-mini-cart", inputs: { cartDetails: "cartDetails", isCardData: "isCardData" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<div class=\"header-content\" (window:resize)=\"onResize($event)\">\r\n <div class=\"miniCartStyle d-flex align-items-center justify-content-center align-middle\">\r\n <a class=\"d-flex align-items-center justify-content-center align-middle cart-link\" data-toggle=\"modal\" data-target=\"#minicartModal\">\r\n <!-- <a class=\"d-flex align-items-center justify-content-center align-middle cart-link\" (click)=\"openCart()\"> -->\r\n <cx-icon><img class=\"cart-icon\" src=\"../../../../assets/images/Icon-material-shopping-cart.svg\" alt=\"Shopping cart\"></cx-icon>\r\n <span class=\"quantity\">{{totalCartItems}}</span>\r\n <span class=\"totalPrice\" *ngIf=\"isDesktop\">\r\n {{totalPriceFormat?totalPriceFormat: '$ 0.00'}}\r\n </span>\r\n </a>\r\n <div class=\"modal fade modal-right\" id=\"minicartModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"minicartLabel\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"px-3\" *ngIf=\"quantity$ | async as quantity; else noItems\">\r\n <div class=\"cart-preview-header\">\r\n <i class=\"icon-close mini-cart-close branch-pop-close\" data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n <span class=\"cart-summary-label\"> Cart Summary</span>\r\n <span class=\"cart-summary-quantity d-block\" *ngIf=\"quantity$ | async as quantity\">{{ totalCartItems }}\r\n {{totalCartItems == 1 ? 'item': 'items'}}</span>\r\n </div>\r\n\r\n <ul class=\"cart-list\">\r\n <li class=\"cart-list-items\" *ngFor=\"let item of items\">\r\n <div class=\"items-container\">\r\n <div class=\"item d-flex\">\r\n <div class=\"image-container product-img \">\r\n <ng-container *ngIf=\" item?.product?.flashingProduct; else normalImage\">\r\n <a data-toggle=\"modal\" class=\"minicart-flashing-expand\" (click)=\"viewImage($event,item)\" [attr.data-target]=\"'#miniCartImageModal'\" *ngIf=\"hasImage(item);else hasPdf\">\r\n <cx-media [container]=\"getImageDetails(item)\" format=\"cartIcon\" role=\"presentation\"></cx-media>\r\n </a>\r\n <ng-template #hasPdf>\r\n <a class=\"minicart-flashing-expand minicart-flashing-open\" [href]=\"getPdfLink(item)\" target=\"_blank\">\r\n <img class=\"pdf-icon\" src=\"../../../../../assets/images/pdf-icon.svg\" alt=\"Click to open PDF\" title=\"Click to open PDF\" />\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #normalImage>\r\n <cx-media [container]=\"getImageDetails(item)\" format=\"cartIcon\" role=\"presentation\"></cx-media>\r\n </ng-template>\r\n </div>\r\n <div class=\"d-md-flex d-block w-100 justify-content-between pl-3 pl-md-0\">\r\n <div class=\"pl-4 minicart-list-items\">\r\n <span class=\"productName\" title={{item.product.name}}>{{item.product.name}}</span>\r\n <p class=\"itemCode\">SKU : {{item.product.code}}</p>\r\n <p class=\"itemDetails mt-3 mb-0\">\r\n <span *ngFor=\"\r\n let attributes of item?.product &&\r\n item?.product?.classifications &&\r\n item?.product?.classifications[0] &&\r\n item?.product?.classifications[0]?.features;\r\n last as isLast\r\n \">\r\n {{ attributes?.featureValues[0]?.value }}\r\n <span *ngIf=\"!isLast\"> | </span>\r\n <!-- <span *ngIf=\"isLast\">mm</span> -->\r\n </span>\r\n </p>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-2\">\r\n <div class=\"item-total-quantity\">\r\n <span>Total Qty: {{item?.quantityDouble}} {{item?.totalPrice?.unitType}}</span>\r\n </div>\r\n <div class=\"item-total-price\">\r\n <span>{{item?.totalPrice?.formattedValue}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n <div class=\"cart-preview-footer\">\r\n <div class=\"cart-preview-subTotal\">\r\n <span class=\"cart-subTotal-label\">Subtotal <span>(excl. GST)</span></span>\r\n <span class=\"cart-subTotal-price\">{{totalPriceFormat}}</span>\r\n </div>\r\n <div class=\"buttons-container d-flex justify-content-between\">\r\n <div class=\"cart-links col\">\r\n <a class=\"checkout-achor\" routerLink=\"/cart\">\r\n <button class=\"btn checkout-btn btn-block text-uppercase\" (click)=\"toggleMenu()\" data-dismiss=\"modal\"> View Cart & Checkout </button>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #noItems>\r\n <div class=\"cart-preview-header d-flex align-items-center justify-content-between\">\r\n <i class=\"icon-close mini-cart-close branch-pop-close\" data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"empty-data\" [innerHTML]=\"emptyCardData\"> No Items </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"modal fade\" id=\"miniCartImageModal\" role=\"dialog\" aria-labelledby=\"miniCartImageModal\" aria-hidden=\"true\" #miniCartImageModal>\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <i title=\"Click to Close Popup\" class=\"icon-close cart-popup-close\" #closeInviteModal data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body m-4\">\r\n <img [src]=\"imageModalSrc\" alt=\"alert\" />\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";@media screen and (min-width: 1366px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: 1.063rem;--fontsize17-5: 1.1rem;--fontsize18: 1.125rem;--fontsize18-4: 1.5rem;--fontsize20: 1.25rem;--fontsize21: 1.313rem;--fontsize22: 1.375rem;--fontsize23: 1.438rem;--fontsize24: 1.5rem;--fontsize26: 1.625rem;--fontsize28: 1.75rem;--fontsize30: 1.625rem;--fontsize32: 2rem;--fontsize34: 2.125rem;--fontsize36: 2rem;--fontsize40: 2.25rem;--fontsize46: 2.875rem;--fontsize80: 5rem}}@media screen and (max-width: 1365px) and (min-width: 768px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2.875rem;--fontsize80: 3.5rem}}@media screen and (max-width: 767px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize16-5: .77rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize19: .938rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize26: 1.25rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2rem;--fontsize80: 2.5rem}}@font-face{font-family:icomoon;font-weight:400;src:url(../assets/fonts/icomoon.ttf) format(\"ttf\"),url(../assets/fonts/icomoon.woff) format(\"woff\");font-weight:normal;font-style:normal;font-display:swap}@font-face{font-family:\"Arial Regular\";src:url(../assets/fonts/arial-webfont.woff) format(\"woff\"),url(../assets/fonts/arial-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Bold\";src:url(../assets/fonts/arialbold-webfont.woff) format(\"woff\"),url(../assets/fonts/arialbold-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Black\";src:url(../assets/fonts/arialblack-webfont.woff) format(\"woff\"),url(../assets/fonts/arialblack-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Reqular\";src:url(../assets/fonts/helveticaneue.woff) format(\"woff\"),url(../assets/fonts/helveticaneue.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Thin\";src:url(../assets/fonts/helveticaneuethin-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuethin-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Medium\";src:url(../assets/fonts/helveticaneuemedium-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuemedium-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;font-feature-settings:normal;font-variant:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-weight:400;line-height:1;text-transform:none;font-display:swap}.icon-right:before{content:\"\\e902\"}.icon-materials:before{content:\"\\e900\"}.icon-natural-lighting:before{content:\"\\e90a\"}.icon-rainwater:before{content:\"\\e901\"}.icon-roofing:before{content:\"\\e90b\"}.icon-flashing{position:relative;display:inline-block;height:32px;text-align:center;width:32px}.icon-flashing:before,.mainnav-link-level-2.show .navTagChild .icon-flashing:before{content:url(../assets/images/icon-flashing-white.svg);height:20px;width:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);line-height:15px}li.megamenuSubChild:hover .icon-flashing:before{content:url(../assets/images/icon-flashing-black.svg)}.icon-structural:before{content:\"\\e90c\"}.icon-accessories-old .path1:before{content:\"\\e903\"}.icon-accessories-old .path2:before{margin-left:-1em;content:\"\\e904\"}.icon-accessories-old .path3:before{margin-left:-1em;content:\"\\e905\"}.icon-cladding-old .path1:before{content:\"\\e90d\"}.icon-cladding-old .path2:before{margin-left:-1em;content:\"\\e90e\"}.icon-close:before{content:\"\\e90f\"}.icon-message:before{content:\"\\e910\"}.icon-search .path1:before{content:\"\\e906\"}.icon-search .path2:before{content:\"\\e907\"}.icon-search .path3:before{margin-left:-1.0156em;content:\"\\e908\"}.icon-summary:before{content:\"\\e911\"}.icon-branch:before{content:\"\\e912\"}.icon-delivery:before{content:\"\\e913\"}.icon-downloads:before{content:\"\\e909\"}.icon-drawings:before{content:\"\\e914\"}.icon-full:before{content:\"\\e915\"}.icon-manual:before{content:\"\\e916\"}.icon-payment:before{content:\"\\e917\"}.icon-empty .path1:before{content:\"\\e918\"}.icon-empty .path2:before{margin-left:-1em;content:\"\\e919\"}.icon-empty .path3:before{margin-left:-1em;content:\"\\e91a\"}.icon-product-overview:before{content:\"\\e91b\"}.icon-arrows:before{content:\"\\e91c\"}.icon-selected:before{content:\"\\e91d\"}.icon-accessories:before{content:\"\\e91b\"}.icon-cladding:before{content:\"\\e91e\"}.icon-Triangle:before{content:\"\\e91f\"}.icon-home:before{content:\"\\e920\"}.icon-faq:before{content:\"\\e921\"}.icon-temperature:before{content:\"\\e922\"}body header{font-family:\"Arial Regular\",sans-serif}header{background-color:#1d1d1b;position:sticky;top:0;background-size:100% 25%!important;background-repeat:no-repeat;z-index:10}header .header{max-width:100%;padding:0}header cx-banner cx-media img{margin-top:.7rem;margin-bottom:0}header label{display:inline-flex}header .SiteLinks{height:52px;display:flex;align-items:center;justify-content:space-between;padding-top:5px;padding-bottom:5px}header .SiteLinks cx-paragraph p{color:#fff;font-size:var(--fontsize16);line-height:var(--fontsize16);margin-bottom:0}header .SiteLinks cx-paragraph{font-size:var(--fontsize16)}header .SiteLinks app-account-dropdown,header .SiteLinks app-find-store{width:calc(25% - 25px);max-width:328px;margin-right:25px}header .SiteLinks app-contact-us{width:calc(20% - 25px);max-width:100px;margin-left:auto}header .SiteLinks app-custom-mini-cart{width:10%}header .SiteLinks .preferenceLink{margin-left:auto}header .SiteLinks .preferenceLink cx-generic-link{margin:0}header .SiteLinks .preferenceLink cx-generic-link cx-media img{height:22px;margin:0}header .SiteLogo .storeLogo{position:absolute;z-index:99;left:40px;bottom:10px}header .SiteLogo .homeLogo{max-width:28px;height:28px;position:absolute;z-index:99;bottom:47px}header .NavigationBar{flex:70%;background-color:#b61828;min-height:40px;display:flex;align-items:center;position:relative;z-index:10}header .logoutMenu{margin-top:0!important}header .logoutMenu li{cursor:pointer;background-color:#4c4c4c;color:#fff}header .logoutMenu li:hover{text-decoration:underline;background-color:#4c4c4c}header .MarketingContext{width:100%;margin:auto}.customer-service-icon{cursor:pointer}.helpSupport{width:20rem;border:0;margin-top:.5rem!important;transform:translate(-42%,36px)!important;padding:1rem 1rem 0;background-color:#393939;color:#fff;top:0}.helpSupport .arrow-up{position:absolute;top:-8px;right:44%;width:0;height:0;border-left:15px solid rgba(0,0,0,0);border-right:15px solid rgba(0,0,0,0);border-bottom:15px solid #393939}.helpSupport .contact-us-info .heading{font-family:\"Arial Bold\",sans-serif}.helpSupport .contact-us-info .detail{font-size:var(--fontsize14);line-height:2rem}.helpSupport .contact-us-info .detail .service-icon{height:20px;width:20px;margin-right:10px}.helpSupport .contact-us-info .contactLink a{font-size:var(--fontsize14);text-decoration:underline;text-transform:uppercase}.helpSupport .contact-us-info a{color:#fff;text-decoration:none}.helpSupport .contact-us-info a:hover{text-decoration:underline}.pageTitle{font-family:\"Helvetica Neue Regular\",sans-serif;font-size:var(--fontsize54)}#visualization-container{text-align:center;margin:0 auto}#cds-viewer-container-3d{width:320px;height:200px}#cds-viewer-container-2d{width:320px;height:200px}[aria-label=Close]{cursor:pointer}cx-media.is-missing{background:url(./assets/images/search-noimage.svg);background-size:cover;background-position:center;background-repeat:no-repeat}cx-global-message{position:fixed;top:9rem;width:100%;z-index:13}@media screen and (max-width: 991px){cx-global-message{top:3.75rem}cx-storefront header{background-color:#b61828}cx-storefront header cx-banner cx-media img{margin:auto}cx-storefront header .SiteLogo{width:100%;max-width:211px;margin:auto;padding-left:30px;box-sizing:border-box}cx-storefront header .SiteLogo .storeLogo{position:unset}cx-storefront header .SearchBox{margin:14px 0 10px;width:30px}cx-storefront header .SiteLinks{background-color:transparent;width:110px;margin:auto 25px auto 0}cx-storefront header .SiteLinks app-account-dropdown,cx-storefront header .SiteLinks app-find-store,cx-storefront header .SiteLinks app-contact-us,cx-storefront header .SiteLinks cx-paragraph,cx-storefront header .SiteLinks .preferenceLink{display:none}cx-storefront header .SiteLinks app-custom-mini-cart,cx-storefront header .SiteLinks app-custom-user-account{width:35px}cx-storefront header.is-expanded{overflow-y:auto;position:fixed;bottom:0;top:0;width:calc(100% - 99px)}cx-storefront header.is-expanded .header{background-color:#b61828;margin-left:0}cx-storefront header.is-expanded .PreHeader{position:absolute;right:15px;top:15px}cx-storefront header.is-expanded .SearchBox{display:none}cx-storefront header.is-expanded .SiteLogo{position:absolute;top:25px;z-index:9}cx-storefront header.is-expanded .SiteLinks{background-color:#1d1d1b;width:100%;margin:15px auto 15px 0;height:unset;padding:15px;max-width:100%;position:relative;z-index:9;top:60px}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-account-dropdown{width:100%;max-width:100%}cx-storefront header.is-expanded .SiteLinks app-find-store{width:50%;max-width:328px;min-width:328px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-right:15px;margin-left:auto;width:115px;max-width:unset}cx-storefront header.is-expanded .navigation{position:relative;top:45px}cx-storefront header.is-expanded:before{background-color:#0000004d;right:0;content:\"\";position:fixed;z-index:2;top:0;bottom:0;height:100vh;width:99px}cx-storefront header.is-expanded:after{background-color:transparent}}@media screen and (max-width: 576px){cx-storefront header .SiteLogo{max-width:80px}cx-storefront header .SiteLogo .storeLogo{display:none}cx-storefront header .searchBox{height:45px}cx-storefront header.is-expanded{width:100%}cx-storefront header.is-expanded .header,cx-storefront header.is-expanded .navigation{width:100%}cx-storefront header.is-expanded .SiteLogo{max-width:211px!important}cx-storefront header.is-expanded .SiteLogo .storeLogo{display:block}cx-storefront header.is-expanded .SiteLinks{max-width:100%;width:100%}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-find-store{width:100%;max-width:100%;margin-bottom:10px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-left:0}cx-storefront header.is-expanded .SiteLinks cx-paragraph{margin-left:auto}cx-storefront header.is-expanded:before{display:none}.pageTitle{font-size:28px}}#minicartModal .modal-dialog{position:fixed;margin:auto;width:100%;height:100vh;right:0px;max-width:508px;padding-bottom:4.5rem;top:0}#minicartModal .modal-content{background-color:#393939;color:#fff;padding:inherit;height:100vh}#minicartModal .modal-content .modal-header{border-bottom:none;padding:3rem .5rem 1rem}#minicartModal .modal-content .modal-header .modal-title{font-size:var(--fontsize24);line-height:var(--fontsize24);font-family:\"Arial Bold\",sans-serif}#minicartModal .modal-content .modal-header .branch-pop-close{position:absolute;top:20px;right:25px;font-size:1.5rem;cursor:pointer}#minicartModal .modal-body{padding:1rem;height:calc(100vh - 88px)}#minicartModal .empty-data{display:flex;justify-content:center;height:100vh;align-items:center;padding:25px;overflow-y:auto}#minicartModal .empty-data p{font-size:var(--fontsize14);color:#e0e0e0}#minicartModal .empty-data .emptycart-btn{background-color:#b61828;border-color:#b61828}#minicartModal .empty-data .emptycart-btn:hover{background-color:#fff;border-color:#fff;color:#b61828!important}#minicartModal .empty-data .emptycart-savedcards{color:#fff;text-decoration:underline}#minicartModal .empty-data .emptycart-savedcards:hover{color:#b61828}.settings{padding:.5rem 1rem}.settings .settings-icon{width:22px;height:22px;cursor:pointer;font-size:var(--fontsize18)}.miniCartStyle{font-size:var(--fontsize16);padding-left:1rem}.miniCartStyle a.cart-link{position:relative}.miniCartStyle .cart-link{color:#fff;text-decoration:none;cursor:pointer;height:24px}.miniCartStyle .cart-link .cart-icon{width:24px;height:24px;margin-bottom:0}.miniCartStyle .cart-link .quantity{position:absolute;color:#fff;bottom:18px;left:6px;padding:0 7px;font-size:var(--fontsize14);background-color:#d51317;border-radius:2px;line-height:1rem}.miniCartStyle .cart-link .totalPrice{padding-left:10px;min-width:60px;font-size:var(--fontsize18)}.miniCartStyle .cart-preview{background-color:var(--cx-color-background-focus);color:var(--cx-color-light);display:none;position:absolute;top:0;min-width:660px;box-shadow:0 4px 3px #0000004d}.miniCartStyle .cart-preview .arrow-up{position:absolute;top:-8px;right:41%;width:0;height:0;border-left:15px solid transparent;border-right:15px solid transparent;border-bottom:15px solid #ffffff}.miniCartStyle .hide-menu{display:none}.miniCartStyle .show-menu{display:block;position:fixed;z-index:999;background:#393939;color:#fff;list-style:none;border-radius:3px;top:-5px;right:0;padding-left:0;cursor:auto;height:100vh}.miniCartStyle .cart-preview-header{padding:15px 10px 25px 0;display:flex;flex-direction:column}.miniCartStyle .cart-preview-header .cart-summary-label{color:#fff;font-size:var(--fontsize24);font-family:\"Arial Bold\",sans-serif}.miniCartStyle .cart-preview-header .cart-summary-quantity{color:#c6c6c6;font-size:var(--fontsize16)}.miniCartStyle .cart-preview-header .mini-cart-close{position:absolute;top:20px;right:25px;font-size:1.5rem;cursor:pointer}.miniCartStyle .cart-list{height:calc(100vh - 20rem);overflow-y:auto;list-style-type:none;scrollbar-width:thin}.miniCartStyle .cart-list .cart-list-items{margin-bottom:15px;padding:1rem;background:#474747;margin-right:10px}.miniCartStyle .cart-list .cart-list-items .image-container.product-img{width:72px;height:72px;position:relative}.miniCartStyle .cart-list .cart-list-items .minicart-list-items{display:grid;line-height:normal;padding-right:20px;text-align:left}.miniCartStyle .cart-list .cart-list-items .minicart-list-items .productName,.miniCartStyle .cart-list .cart-list-items .minicart-list-items .productManufacturer{font-family:\"Arial Bold\",sans-serif;font-size:var(--fontsize14);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.miniCartStyle .cart-list .cart-list-items .minicart-list-items .itemCode{font-family:\"Arial Bold\",sans-serif;font-size:var(--fontsize12);color:#fff;margin:0}.miniCartStyle .cart-list .cart-list-items .minicart-list-items .itemDetails{font-size:var(--fontsize14)}.miniCartStyle .cart-list .cart-list-items .item-total-quantity{font-size:var(--fontsize14)}.miniCartStyle .cart-list .cart-list-items .item-total-price{font-size:var(--fontsize16);font-family:\"Arial Bold\",sans-serif}.miniCartStyle .cart-preview-footer .cart-preview-subTotal{display:flex;padding:20px 35px 20px 20px;border-top:1px solid #707070;border-bottom:1px solid #707070;position:relative;margin-top:1.5rem}.miniCartStyle .cart-preview-footer .cart-preview-subTotal .cart-subTotal-label{width:60%;font-size:var(--fontsize16);font-family:\"Arial Bold\",sans-serif}.miniCartStyle .cart-preview-footer .cart-preview-subTotal .cart-subTotal-label span{font-size:var(--fontsize16);font-family:\"Arial Regular\",sans-serif}.miniCartStyle .cart-preview-footer .cart-preview-subTotal .cart-subTotal-price{width:40%;text-align:right;font-size:var(--fontsize16);font-family:\"Arial Bold\",sans-serif}.miniCartStyle .cart-preview-footer .buttons-container{padding:1.5rem 1.3rem}.miniCartStyle .cart-preview-footer .buttons-container .checkout-achor{margin-bottom:15px;width:100%;background-color:#b61828;color:#fff;border-color:#b61828;text-decoration:none}.miniCartStyle .cart-preview-footer .buttons-container .checkout-achor:hover{background-color:#b61828;color:#fff;border-color:#b61828}.miniCartStyle .cart-preview-footer .buttons-container .checkout-achor .checkout-btn{display:flex;justify-content:center;align-items:center;background-color:#b61828;color:#fff;border-color:#b61828;min-height:var(--buttonHeight44);font-size:var(--fontsize14);text-decoration:none;border-radius:0;font-family:\"Arial Bold\",sans-serif}.miniCartStyle .cart-preview-footer .buttons-container .checkout-achor .checkout-btn:focus{box-shadow:0 0 0 transparent}.miniCartStyle .cart-preview-footer .buttons-container .continue-shopping-achor{width:100%;color:#fff;text-decoration:underline;text-transform:uppercase;position:relative;top:12px;font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif}.miniCartStyle .cart-preview-footer .buttons-container .continue-shopping-achor:hover{text-decoration:underline}.miniCartStyle .cart-preview-footer .buttons-container .continue-shopping-achor .continue-shopping-btn{display:flex;justify-content:center;align-items:center;background-color:#b61828;border-color:#b61828;color:#fff;min-height:var(--buttonHeight60);font-size:var(--fontsize24);width:100%;text-decoration:none}.miniCartStyle .cart-preview-footer .buttons-container .continue-shopping-achor .continue-shopping-btn:focus{box-shadow:0 0 0 transparent}.miniCartStyle .empty-cart{padding:10px;text-align:center;font-size:14px}.fa-shopping-cart{margin-right:5px;width:28px;height:22px;margin-bottom:2px}.search-button{position:absolute;right:20px;top:75px;color:#003d7a;background:#ffffff}.globalSarchMobile{display:none}.totalMenuContainer{width:19rem;height:100vh;background-color:#fff;position:fixed;top:0;z-index:11}.totalMenuContainer button{color:#fff;border:none;width:90%;height:2.7rem;position:absolute;bottom:7rem;left:.3rem;border-radius:4px}.header-content{display:flex;justify-content:flex-end}#miniCartImageModal.show{display:flex!important;vertical-align:middle!important;align-items:center!important}#miniCartImageModal.show .modal-header{justify-content:right;border:none}#miniCartImageModal.show .modal-header .cart-popup-close{color:#000;font-size:var(--fontsize16)}#miniCartImageModal.show .modal-body{text-align:center;vertical-align:middle;margin:0 auto}#miniCartImageModal.show .modal-body img{max-width:100%;max-height:80vh}::ng-deep .minicart-flashing-expand{cursor:pointer}::ng-deep .minicart-flashing-expand:after{background:url(../../../../assets/images/expand-icon.svg) no-repeat center;z-index:2;width:24px;content:\"\";height:24px;position:absolute;top:0;right:0}::ng-deep .minicart-flashing-expand img{max-height:72px;max-width:72px}::ng-deep .minicart-flashing-expand.minicart-flashing-open:after{background:url(../../../../assets/images/newtab.svg) no-repeat center}@media screen and (max-width: 1440px){.miniCartStyle{right:0rem}.miniCartStyle .cart-link .cart-icon{width:24px;height:24px}.miniCartStyle .cart-link .quantity{bottom:18px;left:7px;padding:0 6px;line-height:1rem}.miniCartStyle .cart-preview{min-width:500px}.miniCartStyle .cart-preview .arrow-up{right:14rem}.miniCartStyle .show-menu{right:-10.5rem;top:29px}.fa-shopping-cart{width:22px;height:18px}.header-content{right:15rem}}@media screen and (max-device-width: 1024px){.miniCartStyle{padding-right:0}}@media screen and (max-device-width: 992px){.cart-link .quantity{position:absolute;color:#fff;padding:0 .438rem;font-size:var(--fontsize16);background-color:#1d1d1b!important;line-height:1rem}}@media screen and (max-width: 767px){.fa-search{font-size:var(--fontsize19)}.fa-search:before{color:#464645}.globalSarchMobile{display:block}.search-button,.searchBox-input{background:#ffffff;border-radius:2px;width:90%;height:35px}.searchBox-input{padding-inline-start:10px}.search{width:10%;background:#ffffff;display:flex;justify-content:center;align-items:center}::placeholder{color:#464645;font-size:var(--fontsize18);opacity:.5}:-ms-input-placeholder{color:#464645;font-size:var(--fontsize18);opacity:.5}::-ms-input-placeholder{color:#464645;font-size:var(--fontsize18);opacity:.5}.searchBox-input{border:0px}.header-content{position:unset}}@media screen and (max-width: 767px){.cart-link img{width:20px}.cart-preview-header{width:100%}.cart-preview-footer{width:100%}.cart-preview-footer .cart-preview-subTotal{padding:20px 0!important;justify-content:space-between}.cart-preview-footer .cart-preview-subTotal .cart-subTotal-label{text-align:left}.cart-preview-footer .buttons-container{padding:1.5rem 0!important}}@media screen and (min-width: 767px) and (max-width: 1024px){.cart-preview-header{width:100%}.cart-preview-footer{width:100%}.cart-preview-footer .cart-preview-subTotal{padding:20px 0!important;justify-content:space-between}.cart-preview-footer .cart-preview-subTotal .cart-subTotal-label{text-align:left}.cart-preview-footer .buttons-container{padding:1.5rem 0!important}}\n"], components: [{ type: i5.IconComponent, selector: "cx-icon,[cxIcon]", inputs: ["cxIcon", "type"] }, { type: i5.MediaComponent, selector: "cx-media", inputs: ["container", "format", "alt", "role", "loading"], outputs: ["loaded"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "async": i6.AsyncPipe } });
230
+ CustomMiniCartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CustomMiniCartComponent, deps: [{ token: i0.ElementRef }, { token: i1.ActiveCartService }, { token: i2.Router }, { token: i3.NgbModal }, { token: i4.CartService }, { token: i1.CmsService }, { token: i5.AccountDropdownStateService }, { token: i6.UserAccountDetailServiceService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
231
+ CustomMiniCartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CustomMiniCartComponent, selector: "app-custom-mini-cart", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<div class=\"header-content\" (window:resize)=\"onResize($event)\">\r\n <div class=\"miniCartStyle d-flex align-items-center justify-content-center align-middle\">\r\n <a class=\"d-flex align-items-center justify-content-center align-middle cart-link\" data-toggle=\"modal\" data-target=\"#minicartModal\">\r\n <!-- <a class=\"d-flex align-items-center justify-content-center align-middle cart-link\" (click)=\"openCart()\"> -->\r\n <cx-icon><img class=\"cart-icon\" src=\"../../../../assets/images/Icon-material-shopping-cart.svg\" alt=\"Shopping cart\"></cx-icon>\r\n <span class=\"quantity\">{{totalCartItems}}</span>\r\n <span class=\"totalPrice\" *ngIf=\"isDesktop\">\r\n {{totalPriceFormat?totalPriceFormat: '$ 0.00'}}\r\n </span>\r\n </a>\r\n <div class=\"modal fade modal-right\" id=\"minicartModal\" *ngIf=\"isCartPermission\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"minicartLabel\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"px-3\" *ngIf=\"cartDetails && cartDetails?.length > 0; else noItems\">\r\n <div class=\"cart-preview-header\">\r\n <i class=\"icon-close mini-cart-close branch-pop-close\" data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n <span class=\"cart-summary-label\"> Cart Summary</span>\r\n <span class=\"cart-summary-quantity d-block\" *ngIf=\"cartDetails\">{{ totalCartItems }}\r\n {{totalCartItems == 1 ? 'item': 'items'}}</span>\r\n </div>\r\n\r\n <ul class=\"cart-list\">\r\n <li class=\"cart-list-items\" *ngFor=\"let item of cartDetails\">\r\n <div class=\"items-container\">\r\n <div class=\"item d-flex\">\r\n <div class=\"image-container product-img \">\r\n <ng-container *ngIf=\" item?.product?.flashingProduct; else normalImage\">\r\n <a data-toggle=\"modal\" class=\"minicart-flashing-expand\" (click)=\"viewImage($event,item)\" [attr.data-target]=\"'#miniCartImageModal'\" *ngIf=\"hasImage(item);else hasPdf\">\r\n <cx-media [container]=\"getImageDetails(item)\" format=\"cartIcon\" role=\"presentation\"></cx-media>\r\n </a>\r\n <ng-template #hasPdf>\r\n <a class=\"minicart-flashing-expand minicart-flashing-open\" [href]=\"getPdfLink(item)\" target=\"_blank\">\r\n <img class=\"pdf-icon\" src=\"../../../../../assets/images/pdf-icon.svg\" alt=\"Click to open PDF\" title=\"Click to open PDF\" />\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #normalImage>\r\n <cx-media [container]=\"getImageDetails(item)\" format=\"cartIcon\" role=\"presentation\"></cx-media>\r\n </ng-template>\r\n </div>\r\n <div class=\"d-md-flex d-block w-100 justify-content-between pl-3 pl-md-0\">\r\n <div class=\"pl-4 minicart-list-items\">\r\n <span class=\"productName\" title={{item.product.name}}>{{item.product.name}}</span>\r\n <p class=\"itemCode\">SKU : {{item.product.code}}</p>\r\n <p class=\"itemDetails mt-3 mb-0\">\r\n <span *ngIf=\"\r\n item?.product &&\r\n item?.product?.classifications\r\n \">\r\n {{ getClassifications(item.product?.classifications) }}\r\n </span>\r\n </p>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-2\">\r\n <div class=\"item-total-quantity\">\r\n <span>Total Qty: {{item?.quantityDouble}} {{item?.totalPrice?.unitType}}</span>\r\n </div>\r\n <div class=\"item-total-price\">\r\n <span>{{item?.totalPrice?.formattedValue}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n <div class=\"cart-preview-footer\">\r\n <div class=\"cart-preview-subTotal\">\r\n <span class=\"cart-subTotal-label\">Subtotal <span>(excl. GST)</span></span>\r\n <span class=\"cart-subTotal-price\">{{totalPriceFormat}}</span>\r\n </div>\r\n <div class=\"buttons-container d-flex justify-content-between\">\r\n <div class=\"cart-links col\">\r\n <a class=\"checkout-achor\" routerLink=\"/cart\">\r\n <button class=\"btn checkout-btn btn-block text-uppercase\" (click)=\"toggleMenu()\" data-dismiss=\"modal\"> View Cart & Checkout </button>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #noItems>\r\n <div class=\"cart-preview-header d-flex align-items-center justify-content-between\">\r\n <i class=\"icon-close mini-cart-close branch-pop-close\" data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"empty-data\" [innerHTML]=\"emptyCardData\"> No Items </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"modal fade\" id=\"miniCartImageModal\" role=\"dialog\" aria-labelledby=\"miniCartImageModal\" aria-hidden=\"true\" #miniCartImageModal>\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <i title=\"Click to Close Popup\" class=\"icon-close cart-popup-close\" #closeInviteModal data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body m-4\">\r\n <img [src]=\"imageModalSrc\" alt=\"alert\" />\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";@media screen and (min-width: 1366px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: 1.063rem;--fontsize17-5: 1.1rem;--fontsize18: 1.125rem;--fontsize18-4: 1.5rem;--fontsize20: 1.25rem;--fontsize21: 1.313rem;--fontsize22: 1.375rem;--fontsize23: 1.438rem;--fontsize24: 1.5rem;--fontsize26: 1.625rem;--fontsize28: 1.75rem;--fontsize30: 1.625rem;--fontsize32: 2rem;--fontsize34: 2.125rem;--fontsize36: 2rem;--fontsize40: 2.25rem;--fontsize46: 2.875rem;--fontsize80: 5rem}}@media screen and (max-width: 1365px) and (min-width: 768px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2.875rem;--fontsize80: 3.5rem}}@media screen and (max-width: 767px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize16-5: .77rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize19: .938rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize26: 1.25rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2rem;--fontsize80: 2.5rem}}@font-face{font-family:icomoon;font-weight:400;src:url(../assets/fonts/icomoon.ttf) format(\"ttf\"),url(../assets/fonts/icomoon.woff) format(\"woff\");font-weight:normal;font-style:normal;font-display:swap}@font-face{font-family:\"Arial Regular\";src:url(../assets/fonts/arial-webfont.woff) format(\"woff\"),url(../assets/fonts/arial-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Bold\";src:url(../assets/fonts/arialbold-webfont.woff) format(\"woff\"),url(../assets/fonts/arialbold-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Black\";src:url(../assets/fonts/arialblack-webfont.woff) format(\"woff\"),url(../assets/fonts/arialblack-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Reqular\";src:url(../assets/fonts/helveticaneue.woff) format(\"woff\"),url(../assets/fonts/helveticaneue.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Thin\";src:url(../assets/fonts/helveticaneuethin-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuethin-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Medium\";src:url(../assets/fonts/helveticaneuemedium-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuemedium-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;font-feature-settings:normal;font-variant:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-weight:400;line-height:1;text-transform:none;font-display:swap}.icon-right:before{content:\"\\e902\"}.icon-materials:before{content:\"\\e900\"}.icon-natural-lighting:before{content:\"\\e90a\"}.icon-rainwater:before{content:\"\\e901\"}.icon-roofing:before{content:\"\\e90b\"}.icon-flashing{position:relative;display:inline-block;height:32px;text-align:center;width:32px}.icon-flashing:before,.mainnav-link-level-2.show .navTagChild .icon-flashing:before{content:url(../assets/images/icon-flashing-white.svg);height:20px;width:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);line-height:15px}li.megamenuSubChild:hover .icon-flashing:before{content:url(../assets/images/icon-flashing-black.svg)}.icon-structural:before{content:\"\\e90c\"}.icon-accessories-old .path1:before{content:\"\\e903\"}.icon-accessories-old .path2:before{margin-left:-1em;content:\"\\e904\"}.icon-accessories-old .path3:before{margin-left:-1em;content:\"\\e905\"}.icon-cladding-old .path1:before{content:\"\\e90d\"}.icon-cladding-old .path2:before{margin-left:-1em;content:\"\\e90e\"}.icon-close:before{content:\"\\e90f\"}.icon-message:before{content:\"\\e910\"}.icon-search .path1:before{content:\"\\e906\"}.icon-search .path2:before{content:\"\\e907\"}.icon-search .path3:before{margin-left:-1.0156em;content:\"\\e908\"}.icon-summary:before{content:\"\\e911\"}.icon-branch:before{content:\"\\e912\"}.icon-delivery:before{content:\"\\e913\"}.icon-downloads:before{content:\"\\e909\"}.icon-drawings:before{content:\"\\e914\"}.icon-full:before{content:\"\\e915\"}.icon-manual:before{content:\"\\e916\"}.icon-payment:before{content:\"\\e917\"}.icon-empty .path1:before{content:\"\\e918\"}.icon-empty .path2:before{margin-left:-1em;content:\"\\e919\"}.icon-empty .path3:before{margin-left:-1em;content:\"\\e91a\"}.icon-product-overview:before{content:\"\\e91b\"}.icon-arrows:before{content:\"\\e91c\"}.icon-selected:before{content:\"\\e91d\"}.icon-accessories:before{content:\"\\e91b\"}.icon-cladding:before{content:\"\\e91e\"}.icon-Triangle:before{content:\"\\e91f\"}.icon-home:before{content:\"\\e920\"}.icon-faq:before{content:\"\\e921\"}.icon-temperature:before{content:\"\\e922\"}body header{font-family:\"Arial Regular\",sans-serif}header{background-color:#1d1d1b;position:sticky;top:0;background-size:100% 25%!important;background-repeat:no-repeat;z-index:10}header .header{max-width:100%;padding:0}header cx-banner cx-media img{margin-top:.7rem;margin-bottom:0}header label{display:inline-flex}header .SiteLinks{height:52px;display:flex;align-items:center;justify-content:space-between;padding-top:5px;padding-bottom:5px}header .SiteLinks cx-paragraph p{color:#fff;font-size:var(--fontsize16);line-height:var(--fontsize16);margin-bottom:0}header .SiteLinks cx-paragraph{font-size:var(--fontsize16)}header .SiteLinks app-account-dropdown,header .SiteLinks app-find-store{width:calc(25% - 25px);max-width:328px;margin-right:25px}header .SiteLinks app-contact-us{width:calc(20% - 25px);max-width:100px;margin-left:auto}header .SiteLinks app-custom-mini-cart{width:10%}header .SiteLinks .preferenceLink{margin-left:auto}header .SiteLinks .preferenceLink cx-generic-link{margin:0}header .SiteLinks .preferenceLink cx-generic-link cx-media img{height:22px;margin:0}header .SiteLogo .storeLogo{position:absolute;z-index:99;left:40px;bottom:10px}header .SiteLogo .homeLogo{max-width:28px;height:28px;position:absolute;z-index:99;bottom:47px}header .NavigationBar{flex:70%;background-color:#b61828;min-height:40px;display:flex;align-items:center;position:relative}header .logoutMenu{margin-top:0!important}header .logoutMenu li{cursor:pointer;background-color:#4c4c4c;color:#fff}header .logoutMenu li:hover{text-decoration:underline;background-color:#4c4c4c}header .MarketingContext{width:100%;margin:auto}.customer-service-icon{cursor:pointer}.helpSupport{width:20rem;border:0;margin-top:.5rem!important;transform:translate(-42%,36px)!important;padding:1rem 1rem 0;background-color:#393939;color:#fff;top:0}.helpSupport .arrow-up{position:absolute;top:-8px;right:44%;width:0;height:0;border-left:15px solid rgba(0,0,0,0);border-right:15px solid rgba(0,0,0,0);border-bottom:15px solid #393939}.helpSupport .contact-us-info .heading{font-family:\"Arial Bold\",sans-serif}.helpSupport .contact-us-info .detail{font-size:var(--fontsize14);line-height:2rem}.helpSupport .contact-us-info .detail .service-icon{height:20px;width:20px;margin-right:10px}.helpSupport .contact-us-info .contactLink a{font-size:var(--fontsize14);text-decoration:underline;text-transform:uppercase}.helpSupport .contact-us-info a{color:#fff;text-decoration:none}.helpSupport .contact-us-info a:hover{text-decoration:underline}.pageTitle{font-family:\"Helvetica Neue Regular\",sans-serif;font-size:var(--fontsize54)}#visualization-container{text-align:center;margin:0 auto}#cds-viewer-container-3d{width:320px;height:200px}#cds-viewer-container-2d{width:320px;height:200px}[aria-label=Close]{cursor:pointer}cx-media.is-missing{background:url(./assets/images/search-noimage.svg);background-size:cover;background-position:center;background-repeat:no-repeat}cx-global-message{position:fixed;top:9rem;width:100%;z-index:13}@media screen and (max-width: 991px){cx-global-message{top:3.75rem}cx-storefront header{background-color:#b61828}cx-storefront header cx-banner cx-media img{margin:auto}cx-storefront header .SiteLogo{width:100%;max-width:211px;margin:auto;padding-left:30px;box-sizing:border-box}cx-storefront header .SiteLogo .storeLogo{position:unset}cx-storefront header .SearchBox{margin:14px 0 10px;width:30px}cx-storefront header .SiteLinks{background-color:transparent;width:110px;margin:auto 25px auto 0}cx-storefront header .SiteLinks app-account-dropdown,cx-storefront header .SiteLinks app-find-store,cx-storefront header .SiteLinks app-contact-us,cx-storefront header .SiteLinks cx-paragraph,cx-storefront header .SiteLinks .preferenceLink{display:none}cx-storefront header .SiteLinks app-custom-mini-cart,cx-storefront header .SiteLinks app-custom-user-account{width:35px}cx-storefront header.is-expanded{overflow-y:auto;position:fixed;bottom:0;top:0;width:calc(100% - 99px)}cx-storefront header.is-expanded .header{background-color:#b61828;margin-left:0}cx-storefront header.is-expanded .PreHeader{position:absolute;right:15px;top:15px}cx-storefront header.is-expanded .SearchBox{display:none}cx-storefront header.is-expanded .SiteLogo{position:absolute;top:25px;z-index:9}cx-storefront header.is-expanded .SiteLinks{background-color:#1d1d1b;width:100%;margin:15px auto 15px 0;height:unset;padding:15px;max-width:100%;position:relative;z-index:9;top:60px}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-account-dropdown{width:100%;max-width:100%}cx-storefront header.is-expanded .SiteLinks app-find-store{width:50%;max-width:328px;min-width:328px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-right:15px;margin-left:auto;width:115px;max-width:unset}cx-storefront header.is-expanded .navigation{position:relative;top:45px}cx-storefront header.is-expanded:before{background-color:#0000004d;right:0;content:\"\";position:fixed;z-index:2;top:0;bottom:0;height:100vh;width:99px}cx-storefront header.is-expanded:after{background-color:transparent}}@media screen and (max-width: 576px){cx-storefront header .SiteLogo{max-width:80px}cx-storefront header .SiteLogo .storeLogo{display:none}cx-storefront header .searchBox{height:45px}cx-storefront header.is-expanded{width:100%}cx-storefront header.is-expanded .header,cx-storefront header.is-expanded .navigation{width:100%}cx-storefront header.is-expanded .SiteLogo{max-width:211px!important}cx-storefront header.is-expanded .SiteLogo .storeLogo{display:block}cx-storefront header.is-expanded .SiteLinks{max-width:100%;width:100%}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-find-store{width:100%;max-width:100%;margin-bottom:10px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-left:0}cx-storefront header.is-expanded .SiteLinks cx-paragraph{margin-left:auto}cx-storefront header.is-expanded:before{display:none}.pageTitle{font-size:28px}}::ng-deep #minicartModal .modal-dialog{position:fixed;margin:auto;width:100%;height:100vh;right:0px;max-width:508px;padding-bottom:4.5rem;top:0}::ng-deep #minicartModal .modal-content{background-color:#393939;color:#fff;padding:inherit;height:100vh}::ng-deep #minicartModal .modal-content .modal-header{border-bottom:none;padding:3rem .5rem 1rem}::ng-deep #minicartModal .modal-content .modal-header .modal-title{font-size:var(--fontsize24);line-height:var(--fontsize24);font-family:\"Arial Bold\",sans-serif}::ng-deep #minicartModal .modal-content .modal-header .branch-pop-close{position:absolute;top:20px;right:25px;font-size:1.5rem;cursor:pointer}::ng-deep #minicartModal .modal-body{padding:1rem;height:calc(100vh - 88px)}::ng-deep #minicartModal .empty-data{display:flex;justify-content:center;height:100vh;align-items:center;padding:25px;overflow-y:auto}::ng-deep #minicartModal .empty-data p{font-size:var(--fontsize14);color:#e0e0e0}::ng-deep #minicartModal .empty-data .emptycart-btn{background-color:#b61828;border-color:#b61828}::ng-deep #minicartModal .empty-data .emptycart-btn:hover{background-color:#fff;border-color:#fff;color:#b61828!important}::ng-deep #minicartModal .empty-data .emptycart-savedcards{color:#fff;text-decoration:underline}::ng-deep #minicartModal .empty-data .emptycart-savedcards:hover{color:#b61828}.settings{padding:.5rem 1rem}.settings .settings-icon{width:22px;height:22px;cursor:pointer;font-size:var(--fontsize18)}.miniCartStyle{font-size:var(--fontsize16);padding-left:1rem}.miniCartStyle a.cart-link{position:relative}.miniCartStyle .cart-link{color:#fff;text-decoration:none;cursor:pointer;height:24px}.miniCartStyle .cart-link .cart-icon{width:24px;height:24px;margin-bottom:0}.miniCartStyle .cart-link .quantity{position:absolute;color:#fff;bottom:18px;left:6px;padding:0 7px;font-size:var(--fontsize14);background-color:#d51317;border-radius:2px;line-height:1rem}.miniCartStyle .cart-link .totalPrice{padding-left:10px;min-width:60px;font-size:var(--fontsize18)}.miniCartStyle .cart-preview{background-color:var(--cx-color-background-focus);color:var(--cx-color-light);display:none;position:absolute;top:0;min-width:660px;box-shadow:0 4px 3px #0000004d}.miniCartStyle .cart-preview .arrow-up{position:absolute;top:-8px;right:41%;width:0;height:0;border-left:15px solid transparent;border-right:15px solid transparent;border-bottom:15px solid #ffffff}.miniCartStyle .hide-menu{display:none}.miniCartStyle .show-menu{display:block;position:fixed;z-index:999;background:#393939;color:#fff;list-style:none;border-radius:3px;top:-5px;right:0;padding-left:0;cursor:auto;height:100vh}.miniCartStyle .cart-preview-header{padding:15px 10px 25px 0;display:flex;flex-direction:column}.miniCartStyle .cart-preview-header .cart-summary-label{color:#fff;font-size:var(--fontsize24);font-family:\"Arial Bold\",sans-serif}.miniCartStyle .cart-preview-header .cart-summary-quantity{color:#c6c6c6;font-size:var(--fontsize16)}.miniCartStyle .cart-preview-header .mini-cart-close{position:absolute;top:20px;right:25px;font-size:1.5rem;cursor:pointer}.miniCartStyle .cart-list{height:calc(100vh - 20rem);overflow-y:auto;list-style-type:none;scrollbar-width:thin}.miniCartStyle .cart-list .cart-list-items{margin-bottom:15px;padding:1rem;background:#474747;margin-right:10px}.miniCartStyle .cart-list .cart-list-items .image-container.product-img{width:72px;height:72px;position:relative}.miniCartStyle .cart-list .cart-list-items .minicart-list-items{display:grid;line-height:normal;padding-right:20px;text-align:left}.miniCartStyle .cart-list .cart-list-items .minicart-list-items .productName,.miniCartStyle .cart-list .cart-list-items .minicart-list-items .productManufacturer{font-family:\"Arial Bold\",sans-serif;font-size:var(--fontsize14);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.miniCartStyle .cart-list .cart-list-items .minicart-list-items .itemCode{font-family:\"Arial Bold\",sans-serif;font-size:var(--fontsize12);color:#fff;margin:0}.miniCartStyle .cart-list .cart-list-items .minicart-list-items .itemDetails{font-size:var(--fontsize14)}.miniCartStyle .cart-list .cart-list-items .item-total-quantity{font-size:var(--fontsize14)}.miniCartStyle .cart-list .cart-list-items .item-total-price{font-size:var(--fontsize16);font-family:\"Arial Bold\",sans-serif}.miniCartStyle .cart-preview-footer .cart-preview-subTotal{display:flex;padding:20px 35px 20px 20px;border-top:1px solid #707070;border-bottom:1px solid #707070;position:relative;margin-top:1.5rem}.miniCartStyle .cart-preview-footer .cart-preview-subTotal .cart-subTotal-label{width:60%;font-size:var(--fontsize16);font-family:\"Arial Bold\",sans-serif}.miniCartStyle .cart-preview-footer .cart-preview-subTotal .cart-subTotal-label span{font-size:var(--fontsize16);font-family:\"Arial Regular\",sans-serif}.miniCartStyle .cart-preview-footer .cart-preview-subTotal .cart-subTotal-price{width:40%;text-align:right;font-size:var(--fontsize16);font-family:\"Arial Bold\",sans-serif}.miniCartStyle .cart-preview-footer .buttons-container{padding:1.5rem 1.3rem}.miniCartStyle .cart-preview-footer .buttons-container .checkout-achor{margin-bottom:15px;width:100%;background-color:#b61828;color:#fff;border-color:#b61828;text-decoration:none}.miniCartStyle .cart-preview-footer .buttons-container .checkout-achor:hover{background-color:#b61828;color:#fff;border-color:#b61828}.miniCartStyle .cart-preview-footer .buttons-container .checkout-achor .checkout-btn{display:flex;justify-content:center;align-items:center;background-color:#b61828;color:#fff;border-color:#b61828;min-height:var(--buttonHeight44);font-size:var(--fontsize14);text-decoration:none;border-radius:0;font-family:\"Arial Bold\",sans-serif}.miniCartStyle .cart-preview-footer .buttons-container .checkout-achor .checkout-btn:focus{box-shadow:0 0 0 transparent}.miniCartStyle .cart-preview-footer .buttons-container .continue-shopping-achor{width:100%;color:#fff;text-decoration:underline;text-transform:uppercase;position:relative;top:12px;font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif}.miniCartStyle .cart-preview-footer .buttons-container .continue-shopping-achor:hover{text-decoration:underline}.miniCartStyle .cart-preview-footer .buttons-container .continue-shopping-achor .continue-shopping-btn{display:flex;justify-content:center;align-items:center;background-color:#b61828;border-color:#b61828;color:#fff;min-height:var(--buttonHeight60);font-size:var(--fontsize24);width:100%;text-decoration:none}.miniCartStyle .cart-preview-footer .buttons-container .continue-shopping-achor .continue-shopping-btn:focus{box-shadow:0 0 0 transparent}.miniCartStyle .empty-cart{padding:10px;text-align:center;font-size:14px}.fa-shopping-cart{margin-right:5px;width:28px;height:22px;margin-bottom:2px}.search-button{position:absolute;right:20px;top:75px;color:#003d7a;background:#ffffff}.globalSarchMobile{display:none}.totalMenuContainer{width:19rem;height:100vh;background-color:#fff;position:fixed;top:0;z-index:11}.totalMenuContainer button{color:#fff;border:none;width:90%;height:2.7rem;position:absolute;bottom:7rem;left:.3rem;border-radius:4px}.header-content{display:flex;justify-content:flex-end}#miniCartImageModal.show{display:flex!important;vertical-align:middle!important;align-items:center!important}#miniCartImageModal.show .modal-header{justify-content:right;border:none}#miniCartImageModal.show .modal-header .cart-popup-close{color:#000;font-size:var(--fontsize16)}#miniCartImageModal.show .modal-body{text-align:center;vertical-align:middle;margin:0 auto}#miniCartImageModal.show .modal-body img{max-width:100%;max-height:80vh}::ng-deep .minicart-flashing-expand{cursor:pointer}::ng-deep .minicart-flashing-expand:after{background:url(../../../../assets/images/expand-icon.svg) no-repeat center;z-index:2;width:24px;content:\"\";height:24px;position:absolute;top:0;right:0}::ng-deep .minicart-flashing-expand img{max-height:72px;max-width:72px;background-color:#fff}::ng-deep .minicart-flashing-expand.minicart-flashing-open:after{background:url(../../../../assets/images/newtab.svg) no-repeat center}@media screen and (max-width: 1440px){.miniCartStyle{right:0rem}.miniCartStyle .cart-link .cart-icon{width:24px;height:24px}.miniCartStyle .cart-link .quantity{bottom:18px;left:7px;padding:0 6px;line-height:1rem}.miniCartStyle .cart-preview{min-width:500px}.miniCartStyle .cart-preview .arrow-up{right:14rem}.miniCartStyle .show-menu{right:-10.5rem;top:29px}.fa-shopping-cart{width:22px;height:18px}.header-content{right:15rem}}@media screen and (max-device-width: 1024px){.miniCartStyle{padding-right:0}}@media screen and (max-device-width: 992px){.cart-link .quantity{position:absolute;color:#fff;padding:0 .438rem;font-size:var(--fontsize16);background-color:#1d1d1b!important;line-height:1rem}}@media screen and (max-width: 767px){.fa-search{font-size:var(--fontsize19)}.fa-search:before{color:#464645}.globalSarchMobile{display:block}.search-button,.searchBox-input{background:#ffffff;border-radius:2px;width:90%;height:35px}.searchBox-input{padding-inline-start:10px}.search{width:10%;background:#ffffff;display:flex;justify-content:center;align-items:center}::placeholder{color:#464645;font-size:var(--fontsize18);opacity:.5}:-ms-input-placeholder{color:#464645;font-size:var(--fontsize18);opacity:.5}::-ms-input-placeholder{color:#464645;font-size:var(--fontsize18);opacity:.5}.searchBox-input{border:0px}.header-content{position:unset}}@media screen and (max-width: 767px){.cart-link img{width:20px}.cart-preview-header{width:100%}.cart-preview-footer{width:100%}.cart-preview-footer .cart-preview-subTotal{padding:20px 0!important;justify-content:space-between}.cart-preview-footer .cart-preview-subTotal .cart-subTotal-label{text-align:left}.cart-preview-footer .buttons-container{padding:1.5rem 0!important}}@media screen and (min-width: 767px) and (max-width: 1024px){.cart-preview-header{width:100%}.cart-preview-footer{width:100%}.cart-preview-footer .cart-preview-subTotal{padding:20px 0!important;justify-content:space-between}.cart-preview-footer .cart-preview-subTotal .cart-subTotal-label{text-align:left}.cart-preview-footer .buttons-container{padding:1.5rem 0!important}}\n"], components: [{ type: i7.IconComponent, selector: "cx-icon,[cxIcon]", inputs: ["cxIcon", "type"] }, { type: i7.MediaComponent, selector: "cx-media", inputs: ["container", "format", "alt", "role", "loading"], outputs: ["loaded"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "async": i8.AsyncPipe } });
170
232
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CustomMiniCartComponent, decorators: [{
171
233
  type: Component,
172
234
  args: [{
@@ -174,9 +236,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
174
236
  templateUrl: './custom-mini-cart.component.html',
175
237
  styleUrls: ['./custom-mini-cart.component.scss']
176
238
  }]
177
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ActiveCartService }, { type: i2.Router }, { type: i3.NgbModal }, { type: i1.CmsService }, { type: i4.AccountDropdownStateService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { cartDetails: [{
178
- type: Input
179
- }], isCardData: [{
180
- type: Input
181
- }] } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW1pbmktY2FydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2N1c3RvbS1taW5pLWNhcnQvY3VzdG9tLW1pbmktY2FydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2N1c3RvbS1taW5pLWNhcnQvY3VzdG9tLW1pbmktY2FydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBSWxILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7QUFPdkMsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGlCQUFpQjtJQXFCNUQsWUFBb0IsS0FBaUIsRUFDekIsaUJBQW9DLEVBQ3RDLE1BQWMsRUFDZCxZQUFzQixFQUN2QixVQUFzQixFQUNyQiwyQkFBd0QsRUFDekQsR0FBc0I7UUFDN0IsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFQUCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ3pCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDdEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3ZCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDckIsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUN6RCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXpCL0IsYUFBUSxHQUE2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxF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QztpQkFDakQ7Z1JBZVUsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBBY3RpdmVDYXJ0U2VydmljZSwgQ2FydCwgQ21zU2VydmljZSwgT3JkZXJFbnRyeSB9IGZyb20gJ0BzcGFydGFjdXMvY29yZSc7XHJcbmltcG9ydCB7IE1pbmlDYXJ0Q29tcG9uZW50IH0gZnJvbSAnQHNwYXJ0YWN1cy9zdG9yZWZyb250JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFjY291bnREcm9wZG93blN0YXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FjY291bnQtZHJvcGRvd24tc3RhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vblV0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY3VzdG9tLW1pbmktY2FydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1taW5pLWNhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1taW5pLWNhcnQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tTWluaUNhcnRDb21wb25lbnQgZXh0ZW5kcyBNaW5pQ2FydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgZW50cmllcyQ6IE9ic2VydmFibGU8T3JkZXJFbnRyeVtdPiA9IHRoaXMuYWN0aXZlQ2FydFNlcnZpY2UuZ2V0RW50cmllcygpO1xyXG4gIGNhcnQkOiBPYnNlcnZhYmxlPENhcnQ+ID0gdGhpcy5hY3RpdmVDYXJ0U2VydmljZS5nZXRBY3RpdmUoKTtcclxuICBpc01vYmlsZSA9IGZhbHNlO1xyXG4gIGlzVGFibGV0ID0gZmFsc2U7XHJcbiAgaXNEZXNrdG9wID0gdHJ1ZTtcclxuICBpc1Nob3dNZW51ID0gZmFsc2U7XHJcbiAgdG90YWxQcmljZUZvcm1hdDogYW55ID0gXCJcIlxyXG4gIG1vZGFsUmVmOiBhbnk7XHJcbiAgc2VhcmNoUGxhY2VIb2xkZXI6IHN0cmluZyA9ICdTZWFyY2gnO1xyXG4gIGl0ZW1zOiBhbnkgPSBbXTtcclxuICBzaG93U2VhcmNoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdG90YWxDYXJ0SXRlbXM6IGFueTtcclxuICBASW5wdXQoKSBjYXJ0RGV0YWlsczogYW55O1xyXG4gIEBJbnB1dCgpIGlzQ2FyZERhdGE6IGFueTtcclxuICBpbWFnZU1vZGFsU3JjOiBhbnk7XHJcbiAgZW1wdHlDYXJkRGF0YTphbnk7XHJcbiAgc2hvd1dhaXRDdXJzb3IgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG4gZW52OiBhbnkgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdlbnYnKTtcclxuICBlbnZpcm9ubWVudCA6IGFueSA9IEpTT04ucGFyc2UodGhpcy5lbnYpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VyZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcm90ZWN0ZWQgYWN0aXZlQ2FydFNlcnZpY2U6IEFjdGl2ZUNhcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHB1YmxpYyBjbXNTZXJ2aWNlOiBDbXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY2NvdW50RHJvcERvd25TdGF0ZVNlcnZpY2U6IEFjY291bnREcm9wZG93blN0YXRlU2VydmljZSxcclxuICAgIHB1YmxpYyByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihhY3RpdmVDYXJ0U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuY21zU2VydmljZS5nZXRDb21wb25lbnREYXRhKFwiQ29udGFjdFVzQ29tcG9uZW50XCIpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICB9KVxyXG4gICAgdGhpcy5jYXJ0JC5zdWJzY3JpYmUoZGF0YVJlcyA9PiB7IFxyXG4gICAgICB0aGlzLnRvdGFsQ2FydEl0ZW1zID0gZGF0YVJlcy50b3RhbEl0ZW1zO1xyXG4gICAgICBpZiAoZGF0YVJlcy50b3RhbFByaWNlKSAge1xyXG4gICAgICAgIHRoaXMudG90YWxQcmljZUZvcm1hdCA9IGRhdGFSZXMudG90YWxQcmljZS5mb3JtYXR0ZWRWYWx1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvdGFsUHJpY2VGb3JtYXQgPSBcIlwiXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hY2NvdW50RHJvcERvd25TdGF0ZVNlcnZpY2Uuc2V0Q2FydFZhbHVlKGRhdGFSZXMpO1xyXG4gICAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKCh2YWwpID0+IHtcclxuICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluY2x1ZGVzKCdteWxpc3QnKSkge1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hQbGFjZUhvbGRlciA9ICdTZWFyY2ggZm9yIGEgcGFydGljdWxhciBsaXN0JztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hQbGFjZUhvbGRlciA9ICdTZWFyY2gnO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuY21zU2VydmljZS5nZXRDb21wb25lbnREYXRhKFwiRW1wdHlDYXJ0UGFyYWdyYXBoQ29tcG9uZW50XCIpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuZW1wdHlDYXJkRGF0YT1kYXRhPy5jb250ZW50O1xyXG4gICAgICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQoZmFsc2UpO1xyXG4gICAgfSlcclxuXHJcbiAgICBpZiAodGhpcy5lbnRyaWVzJCkge1xyXG5cclxuICAgICAgdGhpcy5lbnRyaWVzJC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgdGhpcy5pdGVtcyA9IFtdXHJcbiAgICAgICAgZGF0YS5mb3JFYWNoKG4gPT4ge1xyXG4gICAgICAgICAgdGhpcy5pdGVtcy5wdXNoKG4pXHJcbiAgICAgICAgfSlcclxuICAgICAgfSlcclxuICAgICAgXHJcbiAgICB9XHJcbiAgICB0aGlzLm9uUGFnZVJlZnJlc2goKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5lZ2F0aXZlQ29udmVydGVyKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGxldCB2YWw6IGFueSA9IHBhcnNlRmxvYXQodmFsdWUpLnRvRml4ZWQoMik7XHJcbiAgICBpZiAoL1xcLS9nLnRlc3QodmFsKSkge1xyXG4gICAgICBsZXQgaXNNaW51cyA9ICctJCcgKyB2YWwucmVwbGFjZSgnLScsICcnKTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICAnLSQnICsgcGFyc2VGbG9hdChpc01pbnVzLnNwbGl0KCckJylbMV0pLnRvRml4ZWQoMikudG9Mb2NhbGVTdHJpbmcoKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGlzTWludXMgPSAnJCcgKyB2YWw7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgJyQnICsgcGFyc2VGbG9hdChpc01pbnVzLnNwbGl0KCckJylbMV0pLnRvRml4ZWQoMikudG9Mb2NhbGVTdHJpbmcoKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTWVudSgpIHtcclxuICAgIHRoaXMuaXNTaG93TWVudSA9ICF0aGlzLmlzU2hvd01lbnU7XHJcbiAgfVxyXG5cclxuICBtb2JpbGVUb2dnbGVNZW51KGNvbnRlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5tb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oY29udGVudCwgeyB3aW5kb3dDbGFzczogJ21pbmljYXJ0UG9wdXAnLCBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ2xnJyB9KTtcclxuICB9XHJcbiAgb3BlblNlYXJjaChjb250ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2hvd1NlYXJjaCA9IHRydWU7XHJcbiAgICB0aGlzLm1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbihjb250ZW50LCB7IHdpbmRvd0NsYXNzOiAnZ2xvYmFsU2VhcmNoUG9wdXAnLCBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ2xnJyB9KTtcclxuICB9XHJcbiAgb25DbGlja091dHNpZGUoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLl9lcmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xyXG4gICAgICB0aGlzLmlzU2hvd01lbnUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vdXNlb3V0RnVuY3Rpb24oKSB7XHJcbiAgICB0aGlzLmlzU2hvd01lbnUgPSBmYWxzZTtcclxuICB9XHJcbiAgb3BlbkNhcnQoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9jYXJ0J10pO1xyXG4gIH1cclxuXHJcbiAgb25SZXNpemUoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQudGFyZ2V0LmlubmVyV2lkdGg7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmlubmVyV2lkdGggPCA3NjgpIHtcclxuICAgICAgdGhpcy5pc01vYmlsZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuaXNEZXNrdG9wID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChldmVudC50YXJnZXQuaW5uZXJXaWR0aDwgOTkyKSB7XHJcbiAgICAgIHRoaXMuaXNUYWJsZXQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmlzRGVza3RvcCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNEZXNrdG9wID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUGFnZVJlZnJlc2goKSB7XHJcbiAgICB0aGlzLmlzTW9iaWxlID0gQ29tbW9uVXRpbHMuaXNNb2JpbGUoKTtcclxuICAgIHRoaXMuaXNUYWJsZXQgPSBDb21tb25VdGlscy5pc1RhYmxldCgpO1xyXG4gICAgdGhpcy5pc0Rlc2t0b3AgPSBDb21tb25VdGlscy5pc0Rlc2t0b3AoKTtcclxuICB9XHJcblxyXG4gIC8vIEdldCB0aGUgSW1hZ2UgRGV0YWlscyBiYXNlZCBvbiBQcm9kdWN0c1xyXG4gIGdldEltYWdlRGV0YWlscyhjYXJ0RGV0YWlsczogYW55LCB0aHVtYm5haWw6IGFueSA9IHRydWUpOiBhbnkge1xyXG4gICAgbGV0IGltYWdlVXJsOiBhbnkgPSBjYXJ0RGV0YWlscz8ucHJvZHVjdD8uaW1hZ2VzO1xyXG4gICAgaWYgKHRoaXMuaXNDYXJkRGF0YSkge1xyXG4gICAgICBpbWFnZVVybCA9IGNhcnREZXRhaWxzPy5wcm9kdWN0Py5pbWFnZXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpbWFnZVVybCA9IGNhcnREZXRhaWxzPy5wcm9kdWN0Py5pbWFnZXM/LkdBTExFUlk/LmNhcnRJY29uO1xyXG4gICAgfVxyXG4gICAgbGV0IHNyY1VybDogYW55O1xyXG4gICAgaWYgKFxyXG4gICAgICBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHMgJiZcclxuICAgICAgY2FydERldGFpbHM/LmF0dGFjaG1lbnRzPy5sZW5ndGggJiZcclxuICAgICAgY2FydERldGFpbHM/LnByb2R1Y3Q/LmZsYXNoaW5nUHJvZHVjdFxyXG4gICAgKSB7XHJcbiAgICAgIHNyY1VybCA9XHJcbiAgICAgICAgdGh1bWJuYWlsICYmIGNhcnREZXRhaWxzPy5hdHRhY2htZW50cz8ubGVuZ3RoID4gMVxyXG4gICAgICAgICAgPyBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHNbMV0/LmRvd25sb2FkVVJMXHJcbiAgICAgICAgICA6IGNhcnREZXRhaWxzPy5hdHRhY2htZW50c1swXT8uZG93bmxvYWRVUkw7XHJcbiAgICAgIGltYWdlVXJsID0ge1xyXG4gICAgICAgIHVybDogKFxyXG4gICAgICAgICAgdGhpcy5lbnZpcm9ubWVudC5vY2NCYXNlVXJsLnNsaWNlKDAsIHRoaXMuZW52aXJvbm1lbnQub2NjQmFzZVVybC5sZW5ndGggLSAxKSArXHJcbiAgICAgICAgICBzcmNVcmxcclxuICAgICAgICApPy5yZXBsYWNlKFwiJmF0dGFjaG1lbnQ9dHJ1ZVwiLCBcIlwiKSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBpbWFnZVVybDtcclxuICB9XHJcblxyXG4gIHZpZXdJbWFnZShldmVudDogYW55LCBjYXJ0RGV0YWlsczogYW55KTogdm9pZCB7XHJcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuaW1hZ2VNb2RhbFNyYyA9IHRoaXMuZ2V0SW1hZ2VEZXRhaWxzKGNhcnREZXRhaWxzLCBmYWxzZSk/LnVybDtcclxuICB9XHJcblxyXG4gIGdldFBkZkxpbmsoY2FydERldGFpbHM6IGFueSk6IHZvaWQge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VEZXRhaWxzKGNhcnREZXRhaWxzLCBmYWxzZSk/LnVybDtcclxuICB9XHJcblxyXG4gIGhhc0ltYWdlKGNhcnREZXRhaWxzOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG1pbWVUeXBlID0gY2FydERldGFpbHM/LmF0dGFjaG1lbnRzWzBdPy5taW1lO1xyXG4gICAgY29uc3QgbWltZUFycmF5ID0gW1wiaW1hZ2UvcG5nXCIsIFwiaW1hZ2UvanBnXCIsIFwiaW1hZ2UvanBlZ1wiXTtcclxuICAgIHJldHVybiBtaW1lQXJyYXkuaW5jbHVkZXMobWltZVR5cGUpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibG9hZGluZyBcIiAqbmdJZj1cInNob3dXYWl0Q3Vyc29yIHwgYXN5bmMgXCI+TG9hZGluZyYjODIzMDs8L2Rpdj5cclxuPGRpdiBjbGFzcz1cImhlYWRlci1jb250ZW50XCIgKHdpbmRvdzpyZXNpemUpPVwib25SZXNpemUoJGV2ZW50KVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1pbmlDYXJ0U3R5bGUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLW1pZGRsZVwiPlxyXG4gICAgICAgIDxhIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLW1pZGRsZSBjYXJ0LWxpbmtcIiBkYXRhLXRvZ2dsZT1cIm1vZGFsXCIgZGF0YS10YXJnZXQ9XCIjbWluaWNhcnRNb2RhbFwiPlxyXG4gICAgICAgICAgICA8IS0tIDxhIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLW1pZGRsZSBjYXJ0LWxpbmtcIiAoY2xpY2spPVwib3BlbkNhcnQoKVwiPiAtLT5cclxuICAgICAgICAgICAgPGN4LWljb24+PGltZyBjbGFzcz1cImNhcnQtaWNvblwiIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvSWNvbi1tYXRlcmlhbC1zaG9wcGluZy1jYXJ0LnN2Z1wiIGFsdD1cIlNob3BwaW5nIGNhcnRcIj48L2N4LWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVhbnRpdHlcIj57e3RvdGFsQ2FydEl0ZW1zfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG90YWxQcmljZVwiICpuZ0lmPVwiaXNEZXNrdG9wXCI+XHJcbiAgICAgICAgICAgICAgICB7e3RvdGFsUHJpY2VGb3JtYXQ/dG90YWxQcmljZUZvcm1hdDogJyQgMC4wMCd9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbCBmYWRlIG1vZGFsLXJpZ2h0XCIgaWQ9XCJtaW5pY2FydE1vZGFsXCIgdGFiaW5kZXg9XCItMVwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWxhYmVsbGVkYnk9XCJtaW5pY2FydExhYmVsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2dcIiByb2xlPVwiZG9jdW1lbnRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTNcIiAqbmdJZj1cInF1YW50aXR5JCB8IGFzeW5jIGFzIHF1YW50aXR5OyBlbHNlIG5vSXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcnQtcHJldmlldy1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbi1jbG9zZSBtaW5pLWNhcnQtY2xvc2UgYnJhbmNoLXBvcC1jbG9zZVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJ0LXN1bW1hcnktbGFiZWxcIj4gQ2FydCBTdW1tYXJ5PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJ0LXN1bW1hcnktcXVhbnRpdHkgZC1ibG9ja1wiICpuZ0lmPVwicXVhbnRpdHkkIHwgYXN5bmMgYXMgcXVhbnRpdHlcIj57eyB0b3RhbENhcnRJdGVtcyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dG90YWxDYXJ0SXRlbXMgPT0gMSA/ICdpdGVtJzogJ2l0ZW1zJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImNhcnQtbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiY2FydC1saXN0LWl0ZW1zXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbXMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lciBwcm9kdWN0LWltZyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIGl0ZW0/LnByb2R1Y3Q/LmZsYXNoaW5nUHJvZHVjdDsgZWxzZSBub3JtYWxJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLXRvZ2dsZT1cIm1vZGFsXCIgY2xhc3M9XCJtaW5pY2FydC1mbGFzaGluZy1leHBhbmRcIiAoY2xpY2spPVwidmlld0ltYWdlKCRldmVudCxpdGVtKVwiIFthdHRyLmRhdGEtdGFyZ2V0XT1cIicjbWluaUNhcnRJbWFnZU1vZGFsJ1wiICpuZ0lmPVwiaGFzSW1hZ2UoaXRlbSk7ZWxzZSBoYXNQZGZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjeC1tZWRpYSBbY29udGFpbmVyXT1cImdldEltYWdlRGV0YWlscyhpdGVtKVwiIGZvcm1hdD1cImNhcnRJY29uXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPjwvY3gtbWVkaWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoYXNQZGY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1pbmljYXJ0LWZsYXNoaW5nLWV4cGFuZCBtaW5pY2FydC1mbGFzaGluZy1vcGVuXCIgW2hyZWZdPVwiZ2V0UGRmTGluayhpdGVtKVwiIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJwZGYtaWNvblwiIHNyYz1cIi4uLy4uLy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvcGRmLWljb24uc3ZnXCIgYWx0PVwiQ2xpY2sgdG8gb3BlbiBQREZcIiB0aXRsZT1cIkNsaWNrIHRvIG9wZW4gUERGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vcm1hbEltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y3gtbWVkaWEgW2NvbnRhaW5lcl09XCJnZXRJbWFnZURldGFpbHMoaXRlbSlcIiBmb3JtYXQ9XCJjYXJ0SWNvblwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj48L2N4LW1lZGlhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLW1kLWZsZXggZC1ibG9jayB3LTEwMCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwbC0zIHBsLW1kLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGwtNCBtaW5pY2FydC1saXN0LWl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJvZHVjdE5hbWVcIiB0aXRsZT17e2l0ZW0ucHJvZHVjdC5uYW1lfX0+e3tpdGVtLnByb2R1Y3QubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIml0ZW1Db2RlXCI+U0tVIDoge3tpdGVtLnByb2R1Y3QuY29kZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIml0ZW1EZXRhaWxzIG10LTMgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGF0dHJpYnV0ZXMgb2YgaXRlbT8ucHJvZHVjdCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnByb2R1Y3Q/LmNsYXNzaWZpY2F0aW9ucyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnByb2R1Y3Q/LmNsYXNzaWZpY2F0aW9uc1swXSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnByb2R1Y3Q/LmNsYXNzaWZpY2F0aW9uc1swXT8uZmVhdHVyZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBhcyBpc0xhc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGF0dHJpYnV0ZXM/LmZlYXR1cmVWYWx1ZXNbMF0/LnZhbHVlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWlzTGFzdFwiPiB8IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gKm5nSWY9XCJpc0xhc3RcIj5tbTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tdG90YWwtcXVhbnRpdHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Ub3RhbCBRdHk6IHt7aXRlbT8ucXVhbnRpdHlEb3VibGV9fSB7e2l0ZW0/LnRvdGFsUHJpY2U/LnVuaXRUeXBlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXRvdGFsLXByaWNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tpdGVtPy50b3RhbFByaWNlPy5mb3JtYXR0ZWRWYWx1ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcnQtcHJldmlldy1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LXByZXZpZXctc3ViVG90YWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcnQtc3ViVG90YWwtbGFiZWxcIj5TdWJ0b3RhbCA8c3Bhbj4oZXhjbC4gR1NUKTwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJ0LXN1YlRvdGFsLXByaWNlXCI+e3t0b3RhbFByaWNlRm9ybWF0fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25zLWNvbnRhaW5lciBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FydC1saW5rcyBjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJjaGVja291dC1hY2hvclwiIHJvdXRlckxpbms9XCIvY2FydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBjaGVja291dC1idG4gYnRuLWJsb2NrIHRleHQtdXBwZXJjYXNlXCIgKGNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCI+IFZpZXcgQ2FydCAmIENoZWNrb3V0IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9JdGVtcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcnQtcHJldmlldy1oZWFkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uLWNsb3NlIG1pbmktY2FydC1jbG9zZSBicmFuY2gtcG9wLWNsb3NlXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktZGF0YVwiIFtpbm5lckhUTUxdPVwiZW1wdHlDYXJkRGF0YVwiPiBObyBJdGVtcyA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cIm1vZGFsIGZhZGVcIiBpZD1cIm1pbmlDYXJ0SW1hZ2VNb2RhbFwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWxhYmVsbGVkYnk9XCJtaW5pQ2FydEltYWdlTW9kYWxcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAjbWluaUNhcnRJbWFnZU1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC1sZ1wiIHJvbGU9XCJkb2N1bWVudFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpIHRpdGxlPVwiQ2xpY2sgdG8gQ2xvc2UgUG9wdXBcIiBjbGFzcz1cImljb24tY2xvc2UgY2FydC1wb3B1cC1jbG9zZVwiICNjbG9zZUludml0ZU1vZGFsIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgbS00XCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2VNb2RhbFNyY1wiIGFsdD1cImFsZXJ0XCIgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
239
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ActiveCartService }, { type: i2.Router }, { type: i3.NgbModal }, { type: i4.CartService }, { type: i1.CmsService }, { type: i5.AccountDropdownStateService }, { type: i6.UserAccountDetailServiceService }, { type: i0.ChangeDetectorRef }]; } });
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW1pbmktY2FydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2N1c3RvbS1taW5pLWNhcnQvY3VzdG9tLW1pbmktY2FydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2N1c3RvbS1taW5pLWNhcnQvY3VzdG9tLW1pbmktY2FydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXVELE1BQU0sZUFBZSxDQUFDO0FBSWxILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7OztBQVV2QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsaUJBQWlCO0lBdUI1RCxZQUFvQixLQUFpQixFQUN6QixpQkFBb0MsRUFDdEMsTUFBYyxFQUNkLFlBQXNCLEVBQ3RCLFdBQXdCLEVBQ3pCLFVBQXNCLEVBQ3JCLDJCQUF3RCxFQUN4RCx5QkFBMEQsRUFDM0QsR0FBc0I7UUFDN0IsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFUUCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ3pCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDdEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3RCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3pCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDckIsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUN4RCw4QkFBeUIsR0FBekIseUJBQXlCLENB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QyxLQUFLLENBQUMsQ0FBQTtJQUNsQyxDQUFDOztxSEF0T1UsdUJBQXVCO3lHQUF2Qix1QkFBdUIsd0dDaEJwQyx3dVBBMkdBOzRGRDNGYSx1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsV0FBVyxFQUFFLG1DQUFtQztvQkFDaEQsU0FBUyxFQUFFLENBQUMsbUNBQW1DLENBQUM7aUJBQ2pEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBBY3RpdmVDYXJ0U2VydmljZSwgQ2FydCwgQ21zU2VydmljZSwgT3JkZXJFbnRyeSB9IGZyb20gJ0BzcGFydGFjdXMvY29yZSc7XHJcbmltcG9ydCB7IE1pbmlDYXJ0Q29tcG9uZW50IH0gZnJvbSAnQHNwYXJ0YWN1cy9zdG9yZWZyb250JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbW1vblV0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJBY2NvdW50RGV0YWlsU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91c2VyLWFjY291bnQtZGV0YWlsLXNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjY291bnREcm9wZG93blN0YXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FjY291bnQtZHJvcGRvd24tc3RhdGUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jdXN0b20tbWluaS1jYXJ0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLW1pbmktY2FydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tLW1pbmktY2FydC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21NaW5pQ2FydENvbXBvbmVudCBleHRlbmRzIE1pbmlDYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICBlbnRyaWVzJDogT2JzZXJ2YWJsZTxPcmRlckVudHJ5W10+ID0gdGhpcy5hY3RpdmVDYXJ0U2VydmljZS5nZXRFbnRyaWVzKCk7XHJcbiAgY2FydCQ6IE9ic2VydmFibGU8Q2FydD4gPSB0aGlzLmFjdGl2ZUNhcnRTZXJ2aWNlLmdldEFjdGl2ZSgpO1xyXG4gIGlzTW9iaWxlID0gZmFsc2U7XHJcbiAgaXNUYWJsZXQgPSBmYWxzZTtcclxuICBpc0Rlc2t0b3AgPSB0cnVlO1xyXG4gIGlzU2hvd01lbnUgPSBmYWxzZTtcclxuICB0b3RhbFByaWNlRm9ybWF0OiBhbnkgPSBcIlwiXHJcbiAgbW9kYWxSZWY6IGFueTtcclxuICBzZWFyY2hQbGFjZUhvbGRlcjogc3RyaW5nID0gJ1NlYXJjaCc7XHJcbiAgaXRlbXM6IGFueSA9IFtdO1xyXG4gIHNob3dTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB0b3RhbENhcnRJdGVtczogYW55O1xyXG4gIGNhcnREZXRhaWxzOiBhbnk7XHJcbiAgaXNDYXJkRGF0YTogYW55ID0gdHJ1ZTtcclxuICBpbWFnZU1vZGFsU3JjOiBhbnk7XHJcbiAgZW1wdHlDYXJkRGF0YTogYW55O1xyXG4gIGlzQ2FydFBlcm1pc3Npb246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGNhcnRJZDogYW55O1xyXG4gIHNob3dXYWl0Q3Vyc29yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcclxuICBlbnY6IGFueSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2VudicpO1xyXG4gIGVudmlyb25tZW50OiBhbnkgPSBKU09OLnBhcnNlKHRoaXMuZW52KTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lcmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJvdGVjdGVkIGFjdGl2ZUNhcnRTZXJ2aWNlOiBBY3RpdmVDYXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcclxuICAgIHB1YmxpYyBjbXNTZXJ2aWNlOiBDbXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY2NvdW50RHJvcERvd25TdGF0ZVNlcnZpY2U6IEFjY291bnREcm9wZG93blN0YXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgdXNlclByb2ZpbGVEZXRhaWxzU2VydmljZTogVXNlckFjY291bnREZXRhaWxTZXJ2aWNlU2VydmljZSxcclxuICAgIHB1YmxpYyByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihhY3RpdmVDYXJ0U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaXNDYXJ0UGVybWlzc2lvbiA9IGF3YWl0IHRoaXMudXNlclByb2ZpbGVEZXRhaWxzU2VydmljZS5pc0NhcnRQZXJtaXNzaW9uKCk7XHJcbiAgICBjb25zdCBjYXJ0T2JqOiBhbnkgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3BhcnRhY3Vz4pq/ZGltb25kLXNwYeKav2NhcnQnKTtcclxuICAgIHRoaXMuY2FydElkID0gSlNPTi5wYXJzZShjYXJ0T2JqKT8uYWN0aXZlO1xyXG4gICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5jbXNTZXJ2aWNlLmdldENvbXBvbmVudERhdGEoXCJDb250YWN0VXNDb21wb25lbnRcIikuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgIH0pXHJcbiAgICB0aGlzLmNhcnQkLnN1YnNjcmliZShkYXRhUmVzID0+IHtcclxuICAgICAgdGhpcy50b3RhbENhcnRJdGVtcyA9IGRhdGFSZXMudG90YWxJdGVtcztcclxuICAgICAgaWYgKGRhdGFSZXMudG90YWxQcmljZSkge1xyXG4gICAgICAgIHRoaXMuZ2V0Q2FydExpc3RzKCk7XHJcbiAgICAgICAgdGhpcy50b3RhbFByaWNlRm9ybWF0ID0gZGF0YVJlcy50b3RhbFByaWNlLmZvcm1hdHRlZFZhbHVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG90YWxQcmljZUZvcm1hdCA9IFwiXCJcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQoZmFsc2UpO1xyXG4gICAgICB0aGlzLmFjY291bnREcm9wRG93blN0YXRlU2VydmljZS5zZXRDYXJ0VmFsdWUoZGF0YVJlcyk7XHJcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuaW5jbHVkZXMoJ215bGlzdCcpKSB7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaFBsYWNlSG9sZGVyID0gJ1NlYXJjaCBmb3IgYSBwYXJ0aWN1bGFyIGxpc3QnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaFBsYWNlSG9sZGVyID0gJ1NlYXJjaCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKTtcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5jbXNTZXJ2aWNlLmdldENvbXBvbmVudERhdGEoXCJFbXB0eUNhcnRQYXJhZ3JhcGhDb21wb25lbnRcIikuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5lbXB0eUNhcmREYXRhID0gZGF0YT8uY29udGVudDtcclxuICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKTtcclxuICAgIH0pXHJcblxyXG4gICAgaWYgKHRoaXMuZW50cmllcyQpIHtcclxuXHJcbiAgICAgIHRoaXMuZW50cmllcyQuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXVxyXG4gICAgICAgIGRhdGEuZm9yRWFjaChuID0+IHtcclxuICAgICAgICAgIHRoaXMuaXRlbXMucHVzaChuKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICB0aGlzLm9uUGFnZVJlZnJlc2goKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG5cclxuICBnZXRDYXJ0TGlzdHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmNhcnRTZXJ2aWNlLmdldENhcnRMaXN0KHRoaXMuY2FydElkKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmVudHJpZXMpIHtcclxuICAgICAgICAgIGlmICh0aGlzLnRvdGFsQ2FydEl0ZW1zICE9IHJlcz8uZW50cmllcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5jYXJ0RGV0YWlscyA9IHJlcz8uZW50cmllcztcclxuICAgICAgICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgY2FydE9iajogYW55ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3NwYXJ0YWN1c+Kav2RpbW9uZC1zcGHimr9jYXJ0Jyk7XHJcbiAgICAgICAgICB0aGlzLmNhcnRJZCA9IEpTT04ucGFyc2UoY2FydE9iaik/LmFjdGl2ZTtcclxuICAgICAgICAgIGxldCBzZWxlY3RlZCA9IHJlcz8uY2FydHMuZmluZCgoY2FydDogYW55KSA9PiBjYXJ0LmNvZGUgPT0gdGhpcy5jYXJ0SWQpO1xyXG4gICAgICAgICAgdGhpcy5jYXJ0RGV0YWlscyA9IHNlbGVjdGVkLmVudHJpZXM7XHJcbiAgICAgICAgICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIG5lZ2F0aXZlQ29udmVydGVyKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGxldCB2YWw6IGFueSA9IHBhcnNlRmxvYXQodmFsdWUpLnRvRml4ZWQoMik7XHJcbiAgICBpZiAoL1xcLS9nLnRlc3QodmFsKSkge1xyXG4gICAgICBsZXQgaXNNaW51cyA9ICctJCcgKyB2YWwucmVwbGFjZSgnLScsICcnKTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICAnLSQnICsgcGFyc2VGbG9hdChpc01pbnVzLnNwbGl0KCckJylbMV0pLnRvRml4ZWQoMikudG9Mb2NhbGVTdHJpbmcoKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGlzTWludXMgPSAnJCcgKyB2YWw7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgJyQnICsgcGFyc2VGbG9hdChpc01pbnVzLnNwbGl0KCckJylbMV0pLnRvRml4ZWQoMikudG9Mb2NhbGVTdHJpbmcoKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTWVudSgpIHtcclxuICAgIHRoaXMuaXNTaG93TWVudSA9ICF0aGlzLmlzU2hvd01lbnU7XHJcbiAgfVxyXG5cclxuICBtb2JpbGVUb2dnbGVNZW51KGNvbnRlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5tb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oY29udGVudCwgeyB3aW5kb3dDbGFzczogJ21pbmljYXJ0UG9wdXAnLCBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ2xnJyB9KTtcclxuICB9XHJcbiAgb3BlblNlYXJjaChjb250ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2hvd1NlYXJjaCA9IHRydWU7XHJcbiAgICB0aGlzLm1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbihjb250ZW50LCB7IHdpbmRvd0NsYXNzOiAnZ2xvYmFsU2VhcmNoUG9wdXAnLCBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ2xnJyB9KTtcclxuICB9XHJcbiAgb25DbGlja091dHNpZGUoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLl9lcmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xyXG4gICAgICB0aGlzLmlzU2hvd01lbnUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vdXNlb3V0RnVuY3Rpb24oKSB7XHJcbiAgICB0aGlzLmlzU2hvd01lbnUgPSBmYWxzZTtcclxuICB9XHJcbiAgb3BlbkNhcnQoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9jYXJ0J10pO1xyXG4gIH1cclxuXHJcbiAgb25SZXNpemUoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQudGFyZ2V0LmlubmVyV2lkdGg7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmlubmVyV2lkdGggPCA3NjgpIHtcclxuICAgICAgdGhpcy5pc01vYmlsZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuaXNEZXNrdG9wID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChldmVudC50YXJnZXQuaW5uZXJXaWR0aCA8IDk5Mikge1xyXG4gICAgICB0aGlzLmlzVGFibGV0ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5pc0Rlc2t0b3AgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmlzRGVza3RvcCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblBhZ2VSZWZyZXNoKCkge1xyXG4gICAgdGhpcy5pc01vYmlsZSA9IENvbW1vblV0aWxzLmlzTW9iaWxlKCk7XHJcbiAgICB0aGlzLmlzVGFibGV0ID0gQ29tbW9uVXRpbHMuaXNUYWJsZXQoKTtcclxuICAgIHRoaXMuaXNEZXNrdG9wID0gQ29tbW9uVXRpbHMuaXNEZXNrdG9wKCk7XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgdGhlIEltYWdlIERldGFpbHMgYmFzZWQgb24gUHJvZHVjdHNcclxuICBnZXRJbWFnZURldGFpbHMoY2FydERldGFpbHM6IGFueSwgdGh1bWJuYWlsOiBhbnkgPSB0cnVlKTogYW55IHtcclxuICAgIGxldCBpbWFnZVVybDogYW55ID0gY2FydERldGFpbHM/LnByb2R1Y3Q/LmltYWdlcztcclxuICAgIGlmICh0aGlzLmlzQ2FyZERhdGEpIHtcclxuICAgICAgLy8gaW1hZ2VVcmwgPSBjYXJ0RGV0YWlscz8ucHJvZHVjdD8uaW1hZ2VzPy5maW5kKChpbWc6IGFueSkgPT4gaW1nLmZvcm1hdCA9PSBcImNhcnRJY29uXCIpO1xyXG4gICAgICBjb25zdCBjb2xvckNvZGUgPSBjYXJ0RGV0YWlscz8uY29uZmlndXJhdGlvbkluZm9zIHx8IGNhcnREZXRhaWxzPy5jb25maWd1cmF0aW9uSW5mb3NbMF0gPyBjYXJ0RGV0YWlscz8uY29uZmlndXJhdGlvbkluZm9zWzBdPy5jb25maWd1cmF0aW9uVmFsdWU/LnNwbGl0KCd8JylbMF0gOiBcIlwiO1xyXG4gICAgICBpbWFnZVVybCA9IGNhcnREZXRhaWxzPy5wcm9kdWN0Py5pbWFnZXM/LmZpbHRlcigoaW1nOiBhbnkpID0+IChpbWcuZm9ybWF0ID09IFwiY2FydEljb25cIiAmJiBpbWcuY29sb3JDb2RlID09IGNvbG9yQ29kZSkpO1xyXG4gICAgICBpZiAoY29sb3JDb2RlID09IHVuZGVmaW5lZCkgaW1hZ2VVcmwgPSBjYXJ0RGV0YWlscz8ucHJvZHVjdD8uaW1hZ2VzPy5maWx0ZXIoKGltZzogYW55KSA9PiAoaW1nLmZvcm1hdCA9PSBcImNhcnRJY29uXCIpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGltYWdlVXJsID0gY2FydERldGFpbHM/LnByb2R1Y3Q/LmltYWdlcz8uR0FMTEVSWT8uY2FydEljb247XHJcbiAgICB9XHJcbiAgICBsZXQgc3JjVXJsOiBhbnk7XHJcbiAgICBpZiAoXHJcbiAgICAgIGNhcnREZXRhaWxzPy5hdHRhY2htZW50cyAmJlxyXG4gICAgICBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHM/Lmxlbmd0aCAmJlxyXG4gICAgICBjYXJ0RGV0YWlscz8ucHJvZHVjdD8uZmxhc2hpbmdQcm9kdWN0XHJcbiAgICApIHtcclxuICAgICAgc3JjVXJsID1cclxuICAgICAgICB0aHVtYm5haWwgJiYgY2FydERldGFpbHM/LmF0dGFjaG1lbnRzPy5sZW5ndGggPiAxXHJcbiAgICAgICAgICA/IGNhcnREZXRhaWxzPy5hdHRhY2htZW50c1sxXT8uZG93bmxvYWRVUkxcclxuICAgICAgICAgIDogY2FydERldGFpbHM/LmF0dGFjaG1lbnRzWzBdPy5kb3dubG9hZFVSTDtcclxuICAgICAgaW1hZ2VVcmwgPSB7XHJcbiAgICAgICAgdXJsOiAoXHJcbiAgICAgICAgICB0aGlzLmVudmlyb25tZW50Lm9jY0Jhc2VVcmwuc2xpY2UoMCwgdGhpcy5lbnZpcm9ubWVudC5vY2NCYXNlVXJsLmxlbmd0aCAtIDEpICtcclxuICAgICAgICAgIHNyY1VybFxyXG4gICAgICAgICk/LnJlcGxhY2UoXCImYXR0YWNobWVudD10cnVlXCIsIFwiXCIpLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGltYWdlVXJsO1xyXG4gIH1cclxuXHJcbiAgdmlld0ltYWdlKGV2ZW50OiBhbnksIGNhcnREZXRhaWxzOiBhbnkpOiB2b2lkIHtcclxuICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5pbWFnZU1vZGFsU3JjID0gdGhpcy5nZXRJbWFnZURldGFpbHMoY2FydERldGFpbHMsIGZhbHNlKT8udXJsO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGRmTGluayhjYXJ0RGV0YWlsczogYW55KTogdm9pZCB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRJbWFnZURldGFpbHMoY2FydERldGFpbHMsIGZhbHNlKT8udXJsO1xyXG4gIH1cclxuXHJcbiAgaGFzSW1hZ2UoY2FydERldGFpbHM6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgbWltZVR5cGUgPSBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHNbMF0/Lm1pbWU7XHJcbiAgICBjb25zdCBtaW1lQXJyYXkgPSBbXCJpbWFnZS9wbmdcIiwgXCJpbWFnZS9qcGdcIiwgXCJpbWFnZS9qcGVnXCJdO1xyXG4gICAgcmV0dXJuIG1pbWVBcnJheS5pbmNsdWRlcyhtaW1lVHlwZSk7XHJcbiAgfVxyXG4gIC8vIEdldCBTdW1tYXJ5IEhlYWRpbmdcclxuICBnZXRDbGFzc2lmaWNhdGlvbnMoZGF0YTogYW55KTogYW55IHtcclxuICAgIGxldCBmZWF0dXJlQXJyYXk6IGFueSA9IFtdO1xyXG4gICAgZGF0YT8uZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGVsZW1lbnQ/LmZlYXR1cmVzLmZvckVhY2goKGZlYXR1cmU6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChmZWF0dXJlPy5mZWF0dXJlVW5pdCkge1xyXG4gICAgICAgICAgZmVhdHVyZUFycmF5LnB1c2goZmVhdHVyZT8uZmVhdHVyZVZhbHVlc1swXT8udmFsdWUgKyAnICcgKyBmZWF0dXJlPy5mZWF0dXJlVW5pdD8uc3ltYm9sKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmZWF0dXJlQXJyYXkucHVzaChmZWF0dXJlPy5mZWF0dXJlVmFsdWVzWzBdPy52YWx1ZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZmVhdHVyZUFycmF5Py5qb2luKFwiIHwgXCIpXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsb2FkaW5nIFwiICpuZ0lmPVwic2hvd1dhaXRDdXJzb3IgfCBhc3luYyBcIj5Mb2FkaW5nJiM4MjMwOzwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiaGVhZGVyLWNvbnRlbnRcIiAod2luZG93OnJlc2l6ZSk9XCJvblJlc2l6ZSgkZXZlbnQpXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWluaUNhcnRTdHlsZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24tbWlkZGxlXCI+XHJcbiAgICAgICAgPGEgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24tbWlkZGxlIGNhcnQtbGlua1wiIGRhdGEtdG9nZ2xlPVwibW9kYWxcIiBkYXRhLXRhcmdldD1cIiNtaW5pY2FydE1vZGFsXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGEgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24tbWlkZGxlIGNhcnQtbGlua1wiIChjbGljayk9XCJvcGVuQ2FydCgpXCI+IC0tPlxyXG4gICAgICAgICAgICA8Y3gtaWNvbj48aW1nIGNsYXNzPVwiY2FydC1pY29uXCIgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9JY29uLW1hdGVyaWFsLXNob3BwaW5nLWNhcnQuc3ZnXCIgYWx0PVwiU2hvcHBpbmcgY2FydFwiPjwvY3gtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWFudGl0eVwiPnt7dG90YWxDYXJ0SXRlbXN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b3RhbFByaWNlXCIgKm5nSWY9XCJpc0Rlc2t0b3BcIj5cclxuICAgICAgICAgICAgICAgIHt7dG90YWxQcmljZUZvcm1hdD90b3RhbFByaWNlRm9ybWF0OiAnJCAwLjAwJ319XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsIGZhZGUgbW9kYWwtcmlnaHRcIiBpZD1cIm1pbmljYXJ0TW9kYWxcIiAqbmdJZj1cImlzQ2FydFBlcm1pc3Npb25cIiB0YWJpbmRleD1cIi0xXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtbGFiZWxsZWRieT1cIm1pbmljYXJ0TGFiZWxcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZ1wiIHJvbGU9XCJkb2N1bWVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtM1wiICpuZ0lmPVwiY2FydERldGFpbHMgJiYgY2FydERldGFpbHM/Lmxlbmd0aCA+IDA7IGVsc2Ugbm9JdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FydC1wcmV2aWV3LWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uLWNsb3NlIG1pbmktY2FydC1jbG9zZSBicmFuY2gtcG9wLWNsb3NlXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcnQtc3VtbWFyeS1sYWJlbFwiPiBDYXJ0IFN1bW1hcnk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcnQtc3VtbWFyeS1xdWFudGl0eSBkLWJsb2NrXCIgKm5nSWY9XCJjYXJ0RGV0YWlsc1wiPnt7IHRvdGFsQ2FydEl0ZW1zIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0b3RhbENhcnRJdGVtcyA9PSAxID8gJ2l0ZW0nOiAnaXRlbXMnfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiY2FydC1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJjYXJ0LWxpc3QtaXRlbXNcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjYXJ0RGV0YWlsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtcy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0gZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1nIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIgaXRlbT8ucHJvZHVjdD8uZmxhc2hpbmdQcm9kdWN0OyBlbHNlIG5vcm1hbEltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtdG9nZ2xlPVwibW9kYWxcIiBjbGFzcz1cIm1pbmljYXJ0LWZsYXNoaW5nLWV4cGFuZFwiIChjbGljayk9XCJ2aWV3SW1hZ2UoJGV2ZW50LGl0ZW0pXCIgW2F0dHIuZGF0YS10YXJnZXRdPVwiJyNtaW5pQ2FydEltYWdlTW9kYWwnXCIgKm5nSWY9XCJoYXNJbWFnZShpdGVtKTtlbHNlIGhhc1BkZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGN4LW1lZGlhIFtjb250YWluZXJdPVwiZ2V0SW1hZ2VEZXRhaWxzKGl0ZW0pXCIgZm9ybWF0PVwiY2FydEljb25cIiByb2xlPVwicHJlc2VudGF0aW9uXCI+PC9jeC1tZWRpYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hhc1BkZj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibWluaWNhcnQtZmxhc2hpbmctZXhwYW5kIG1pbmljYXJ0LWZsYXNoaW5nLW9wZW5cIiBbaHJlZl09XCJnZXRQZGZMaW5rKGl0ZW0pXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInBkZi1pY29uXCIgc3JjPVwiLi4vLi4vLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9wZGYtaWNvbi5zdmdcIiBhbHQ9XCJDbGljayB0byBvcGVuIFBERlwiIHRpdGxlPVwiQ2xpY2sgdG8gb3BlbiBQREZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9ybWFsSW1hZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjeC1tZWRpYSBbY29udGFpbmVyXT1cImdldEltYWdlRGV0YWlscyhpdGVtKVwiIGZvcm1hdD1cImNhcnRJY29uXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPjwvY3gtbWVkaWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtbWQtZmxleCBkLWJsb2NrIHctMTAwIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHBsLTMgcGwtbWQtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbC00IG1pbmljYXJ0LWxpc3QtaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9kdWN0TmFtZVwiIHRpdGxlPXt7aXRlbS5wcm9kdWN0Lm5hbWV9fT57e2l0ZW0ucHJvZHVjdC5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiaXRlbUNvZGVcIj5TS1UgOiB7e2l0ZW0ucHJvZHVjdC5jb2RlfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiaXRlbURldGFpbHMgbXQtMyBtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnByb2R1Y3QgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy5wcm9kdWN0Py5jbGFzc2lmaWNhdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldENsYXNzaWZpY2F0aW9ucyhpdGVtLnByb2R1Y3Q/LmNsYXNzaWZpY2F0aW9ucykgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS10b3RhbC1xdWFudGl0eVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlRvdGFsIFF0eToge3tpdGVtPy5xdWFudGl0eURvdWJsZX19IHt7aXRlbT8udG90YWxQcmljZT8udW5pdFR5cGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tdG90YWwtcHJpY2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2l0ZW0/LnRvdGFsUHJpY2U/LmZvcm1hdHRlZFZhbHVlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FydC1wcmV2aWV3LWZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcnQtcHJldmlldy1zdWJUb3RhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FydC1zdWJUb3RhbC1sYWJlbFwiPlN1YnRvdGFsIDxzcGFuPihleGNsLiBHU1QpPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcnQtc3ViVG90YWwtcHJpY2VcIj57e3RvdGFsUHJpY2VGb3JtYXR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbnMtY29udGFpbmVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LWxpbmtzIGNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImNoZWNrb3V0LWFjaG9yXCIgcm91dGVyTGluaz1cIi9jYXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGNoZWNrb3V0LWJ0biBidG4tYmxvY2sgdGV4dC11cHBlcmNhc2VcIiAoY2xpY2spPVwidG9nZ2xlTWVudSgpXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIj4gVmlldyBDYXJ0ICYgQ2hlY2tvdXQgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0l0ZW1zPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FydC1wcmV2aWV3LWhlYWRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24tY2xvc2UgbWluaS1jYXJ0LWNsb3NlIGJyYW5jaC1wb3AtY2xvc2VcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1kYXRhXCIgW2lubmVySFRNTF09XCJlbXB0eUNhcmREYXRhXCI+IE5vIEl0ZW1zIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwibW9kYWwgZmFkZVwiIGlkPVwibWluaUNhcnRJbWFnZU1vZGFsXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtbGFiZWxsZWRieT1cIm1pbmlDYXJ0SW1hZ2VNb2RhbFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiICNtaW5pQ2FydEltYWdlTW9kYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nIG1vZGFsLWxnXCIgcm9sZT1cImRvY3VtZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGkgdGl0bGU9XCJDbGljayB0byBDbG9zZSBQb3B1cFwiIGNsYXNzPVwiaWNvbi1jbG9zZSBjYXJ0LXBvcHVwLWNsb3NlXCIgI2Nsb3NlSW52aXRlTW9kYWwgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj48L2k+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBtLTRcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbWFnZU1vZGFsU3JjXCIgYWx0PVwiYWxlcnRcIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,11 +1,11 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
+ import { CustomMiniCartComponent } from './custom-mini-cart.component';
3
4
  import { IconModule, MediaModule } from '@spartacus/storefront';
4
5
  import { RouterModule } from '@angular/router';
5
6
  import { UrlModule, ConfigModule } from '@spartacus/core';
6
7
  import { CustomUserAccountModule } from '../custom-user-account/custom-user-account.module';
7
8
  import { CustomSearchModule } from '../custom-search/custom-search.module';
8
- import { CustomMiniCartComponent } from './custom-mini-cart.component';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@spartacus/core";
11
11
  export class CustomMiniCartModule {
@@ -61,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
61
61
  ]
62
62
  }]
63
63
  }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW1pbmktY2FydC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2N1c3RvbS1taW5pLWNhcnQvY3VzdG9tLW1pbmktY2FydC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWEsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUU1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBMkJ2RSxNQUFNLE9BQU8sb0JBQW9COztrSEFBcEIsb0JBQW9CO21IQUFwQixvQkFBb0IsaUJBdEI3Qix1QkFBdUIsYUFHdkIsWUFBWTtRQUNaLFVBQVU7UUFDVixXQUFXO1FBQ1gsU0FBUztRQUNULFlBQVk7UUFDWix1QkFBdUI7UUFDdkIsa0JBQWtCLDhCQVVsQix1QkFBdUI7bUhBR2Qsb0JBQW9CLFlBcEJ0QjtZQUNQLFlBQVk7WUFDWixVQUFVO1lBQ1YsV0FBVztZQUNYLFNBQVM7WUFDVCxZQUFZO1lBQ1osdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQixZQUFZLENBQUMsVUFBVSxDQUFDO2dCQUN0QixhQUFhLEVBQUU7b0JBQ2IsaUJBQWlCLEVBQUU7d0JBQ2pCLFNBQVMsRUFBRSx1QkFBdUI7cUJBQ25DO2lCQUNGO2FBQ1csQ0FBQztTQUNoQjs0RkFLVSxvQkFBb0I7a0JBeEJoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWix1QkFBdUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsV0FBVzt3QkFDWCxTQUFTO3dCQUNULFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLFlBQVksQ0FBQyxVQUFVLENBQUM7NEJBQ3RCLGFBQWEsRUFBRTtnQ0FDYixpQkFBaUIsRUFBRTtvQ0FDakIsU0FBUyxFQUFFLHVCQUF1QjtpQ0FDbkM7NkJBQ0Y7eUJBQ1csQ0FBQztxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHVCQUF1QjtxQkFDeEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJY29uTW9kdWxlLCBNZWRpYU1vZHVsZX0gZnJvbSAnQHNwYXJ0YWN1cy9zdG9yZWZyb250JztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVXJsTW9kdWxlLCBDb25maWdNb2R1bGUsIENtc0NvbmZpZyB9IGZyb20gJ0BzcGFydGFjdXMvY29yZSc7XHJcbmltcG9ydCB7IEN1c3RvbVVzZXJBY2NvdW50TW9kdWxlIH0gZnJvbSAnLi4vY3VzdG9tLXVzZXItYWNjb3VudC9jdXN0b20tdXNlci1hY2NvdW50Lm1vZHVsZSc7XHJcblxyXG5pbXBvcnQgeyBDdXN0b21TZWFyY2hNb2R1bGUgfSBmcm9tICcuLi9jdXN0b20tc2VhcmNoL2N1c3RvbS1zZWFyY2gubW9kdWxlJztcclxuaW1wb3J0IHsgQ3VzdG9tTWluaUNhcnRDb21wb25lbnQgfSBmcm9tICcuL2N1c3RvbS1taW5pLWNhcnQuY29tcG9uZW50JztcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgQ3VzdG9tTWluaUNhcnRDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEljb25Nb2R1bGUsXHJcbiAgICBNZWRpYU1vZHVsZSxcclxuICAgIFVybE1vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIEN1c3RvbVVzZXJBY2NvdW50TW9kdWxlLFxyXG4gICAgQ3VzdG9tU2VhcmNoTW9kdWxlLFxyXG4gICAgQ29uZmlnTW9kdWxlLndpdGhDb25maWcoe1xyXG4gICAgICBjbXNDb21wb25lbnRzOiB7XHJcbiAgICAgICAgTWluaUNhcnRDb21wb25lbnQ6IHtcclxuICAgICAgICAgIGNvbXBvbmVudDogQ3VzdG9tTWluaUNhcnRDb21wb25lbnRcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gYXMgQ21zQ29uZmlnKVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQ3VzdG9tTWluaUNhcnRDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21NaW5pQ2FydE1vZHVsZSB7IH1cclxuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW1pbmktY2FydC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2N1c3RvbS1taW5pLWNhcnQvY3VzdG9tLW1pbmktY2FydC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWEsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBMkIzRSxNQUFNLE9BQU8sb0JBQW9COztrSEFBcEIsb0JBQW9CO21IQUFwQixvQkFBb0IsaUJBdEI3Qix1QkFBdUIsYUFHdkIsWUFBWTtRQUNaLFVBQVU7UUFDVixXQUFXO1FBQ1gsU0FBUztRQUNULFlBQVk7UUFDWix1QkFBdUI7UUFDdkIsa0JBQWtCLDhCQVVsQix1QkFBdUI7bUhBR2Qsb0JBQW9CLFlBcEJ0QjtZQUNQLFlBQVk7WUFDWixVQUFVO1lBQ1YsV0FBVztZQUNYLFNBQVM7WUFDVCxZQUFZO1lBQ1osdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQixZQUFZLENBQUMsVUFBVSxDQUFDO2dCQUN0QixhQUFhLEVBQUU7b0JBQ2IsaUJBQWlCLEVBQUU7d0JBQ2pCLFNBQVMsRUFBRSx1QkFBdUI7cUJBQ25DO2lCQUNGO2FBQ1csQ0FBQztTQUNoQjs0RkFLVSxvQkFBb0I7a0JBeEJoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWix1QkFBdUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsV0FBVzt3QkFDWCxTQUFTO3dCQUNULFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLFlBQVksQ0FBQyxVQUFVLENBQUM7NEJBQ3RCLGFBQWEsRUFBRTtnQ0FDYixpQkFBaUIsRUFBRTtvQ0FDakIsU0FBUyxFQUFFLHVCQUF1QjtpQ0FDbkM7NkJBQ0Y7eUJBQ1csQ0FBQztxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHVCQUF1QjtxQkFDeEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDdXN0b21NaW5pQ2FydENvbXBvbmVudCB9IGZyb20gJy4vY3VzdG9tLW1pbmktY2FydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJY29uTW9kdWxlLCBNZWRpYU1vZHVsZX0gZnJvbSAnQHNwYXJ0YWN1cy9zdG9yZWZyb250JztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVXJsTW9kdWxlLCBDb25maWdNb2R1bGUsIENtc0NvbmZpZyB9IGZyb20gJ0BzcGFydGFjdXMvY29yZSc7XHJcbmltcG9ydCB7IEN1c3RvbVVzZXJBY2NvdW50TW9kdWxlIH0gZnJvbSAnLi4vY3VzdG9tLXVzZXItYWNjb3VudC9jdXN0b20tdXNlci1hY2NvdW50Lm1vZHVsZSc7XHJcbmltcG9ydCB7IEN1c3RvbVNlYXJjaE1vZHVsZSB9IGZyb20gJy4uL2N1c3RvbS1zZWFyY2gvY3VzdG9tLXNlYXJjaC5tb2R1bGUnO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBDdXN0b21NaW5pQ2FydENvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSWNvbk1vZHVsZSxcclxuICAgIE1lZGlhTW9kdWxlLFxyXG4gICAgVXJsTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgQ3VzdG9tVXNlckFjY291bnRNb2R1bGUsXHJcbiAgICBDdXN0b21TZWFyY2hNb2R1bGUsXHJcbiAgICBDb25maWdNb2R1bGUud2l0aENvbmZpZyh7XHJcbiAgICAgIGNtc0NvbXBvbmVudHM6IHtcclxuICAgICAgICBNaW5pQ2FydENvbXBvbmVudDoge1xyXG4gICAgICAgICAgY29tcG9uZW50OiBDdXN0b21NaW5pQ2FydENvbXBvbmVudFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBhcyBDbXNDb25maWcpXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBDdXN0b21NaW5pQ2FydENvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEN1c3RvbU1pbmlDYXJ0TW9kdWxlIHsgfVxyXG4iXX0=