simpo-component-library 3.7.8 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/checkout/checkout.component.mjs +55 -11
- package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +33 -4
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +33 -3
- package/esm2022/lib/services/rest.service.mjs +10 -1
- package/fesm2022/simpo-component-library.mjs +123 -12
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/ecommerce/sections/checkout/checkout.component.d.ts +19 -1
- package/lib/ecommerce/sections/order-details/order-details.component.d.ts +6 -0
- package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +10 -1
- package/lib/ecommerce/sections/schemes/schemes.component.d.ts +1 -1
- package/lib/sections/banner-carousel/banner-carousel.component.d.ts +1 -1
- package/lib/sections/pricing-section/pricing-section.component.d.ts +1 -1
- package/lib/services/rest.service.d.ts +2 -0
- package/package.json +1 -1
- package/simpo-component-library-3.8.0.tgz +0 -0
- package/simpo-component-library-3.7.8.tgz +0 -0
|
@@ -11,26 +11,57 @@ import { BUSINESS_CONSTANTS } from '../../../constants/business.constant';
|
|
|
11
11
|
import { SvgDividerComponent } from '../../../elements/svg-divider/svg-divider.component';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
import * as i1 from ".././../../services/events.service";
|
|
14
|
-
import * as i2 from "
|
|
15
|
-
import * as i3 from "@angular/
|
|
16
|
-
import * as i4 from "
|
|
17
|
-
import * as i5 from "../../../components/
|
|
18
|
-
import * as i6 from "
|
|
14
|
+
import * as i2 from "../../../services/rest.service";
|
|
15
|
+
import * as i3 from "@angular/forms";
|
|
16
|
+
import * as i4 from "@angular/common";
|
|
17
|
+
import * as i5 from "../../../components/hover-elements/hover-elements.component";
|
|
18
|
+
import * as i6 from "../../../components/delete-hover-element/delete-hover-element.component";
|
|
19
|
+
import * as i7 from "ngx-skeleton-loader";
|
|
19
20
|
export class CheckoutComponent extends BaseSection {
|
|
20
|
-
constructor(_eventService) {
|
|
21
|
+
constructor(_eventService, restService) {
|
|
21
22
|
super();
|
|
22
23
|
this._eventService = _eventService;
|
|
24
|
+
this.restService = restService;
|
|
23
25
|
this.isLoading = false;
|
|
24
26
|
this.editDeliveryAddress = true;
|
|
27
|
+
// Live estimate from Shiprocket, keyed off the chosen delivery address's pincode - the cart's own
|
|
28
|
+
// billdetails.deliveryCharges predates this and has no pincode to work with at cart-view time
|
|
29
|
+
// (see ShiprocketDeliveryEstimateService's own design note), so this overrides it for display once
|
|
30
|
+
// a real delivery address is known, rather than trying to retrofit the cart-view calculation.
|
|
31
|
+
this.liveDeliveryEstimate = null;
|
|
25
32
|
}
|
|
26
33
|
ngOnInit() {
|
|
27
34
|
this.editDeliveryAddress = this.responseData?.userDetails ? true : false;
|
|
35
|
+
if (this.responseData?.userDetails && !this.responseData.userDetails.deliveryAddress) {
|
|
36
|
+
this.responseData.userDetails.deliveryAddress = {};
|
|
37
|
+
}
|
|
28
38
|
this.content = this.data?.content;
|
|
29
39
|
this.styles = this.data?.styles;
|
|
30
40
|
this.button = this.data?.action?.buttons[0];
|
|
31
41
|
this._eventService.showLoadingScreen.subscribe((response) => {
|
|
32
42
|
this.isLoading = response;
|
|
33
43
|
});
|
|
44
|
+
this.fetchLiveDeliveryEstimate();
|
|
45
|
+
}
|
|
46
|
+
/** Runs once at init (in case a saved address with a pincode was already passed in), and again
|
|
47
|
+
* from the pincode input's (ngModelChange) - at init time there's usually no pincode yet, since
|
|
48
|
+
* the shopper hasn't typed their address into this page's own form. */
|
|
49
|
+
onDeliveryPincodeChange() {
|
|
50
|
+
this.fetchLiveDeliveryEstimate();
|
|
51
|
+
}
|
|
52
|
+
fetchLiveDeliveryEstimate() {
|
|
53
|
+
const deliveryPincode = this.responseData?.userDetails?.deliveryAddress?.zipCode;
|
|
54
|
+
if (!deliveryPincode || deliveryPincode.toString().length !== 6) {
|
|
55
|
+
this.liveDeliveryEstimate = null;
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const items = this.responseData?.orderedItems ?? [];
|
|
59
|
+
const weightKg = items.reduce((total, item) => total + ((item?.weight || 0.5) * (item?.quantity || 1)), 0) || 0.5;
|
|
60
|
+
const orderGrossValue = this.responseData?.billdetails?.totalGrossValue ?? 0;
|
|
61
|
+
this.restService.getDeliveryEstimate(deliveryPincode, weightKg, true, orderGrossValue).subscribe({
|
|
62
|
+
next: (res) => { this.liveDeliveryEstimate = res; },
|
|
63
|
+
error: () => { this.liveDeliveryEstimate = null; }
|
|
64
|
+
});
|
|
34
65
|
}
|
|
35
66
|
placeOrder() {
|
|
36
67
|
this._eventService.placeOrder.emit({ cartData: this.responseData });
|
|
@@ -46,8 +77,21 @@ export class CheckoutComponent extends BaseSection {
|
|
|
46
77
|
get currency() {
|
|
47
78
|
return BUSINESS_CONSTANTS.CURRENCY;
|
|
48
79
|
}
|
|
49
|
-
|
|
50
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CheckoutComponent, isStandalone: true, selector: "simpo-checkout", inputs: { data: "data", responseData: "responseData", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isLoading\">\n <section class=\"total-container\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" simpoHover (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\n <div class=\"container\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\n <div class=\"row\">\n <div class=\"col-md-7 col-12\" *ngIf=\"editDeliveryAddress\">\n <div class=\"shipping-label heading-large\">Shipping To</div>\n <div class=\"row\">\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Name</label>\n <input [(ngModel)]=\"responseData.userDetails.userName\" type=\"text\" placeholder=\"Enter Name\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Mobile Number</label>\n <input [(ngModel)]=\"responseData.userDetails.mobile\" type=\"number\" placeholder=\"Enter number\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Email</label>\n <input [(ngModel)]=\"responseData.userDetails.email\" type=\"email\" placeholder=\"Enter email\"\n class=\"input-field\">\n </div>\n </div>\n\n <div class=\"shipping-label\" style=\"margin-top: 15px;\">Shipping Address</div>\n <div class=\"row\">\n <div class=\"col-12 input-parent\">\n <label for=\"\">Address</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.addressLine1\" type=\"text\"\n placeholder=\"Flat/House No, Building, Colony\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Locality/Area</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.localityName\" type=\"text\"\n placeholder=\"Eg: Jaybheri Enclave, Gachibowli\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Landmark</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.landmark\" type=\"text\"\n placeholder=\"Eg: Near SBI Bank\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Pincode</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.zipCode\" type=\"number\" placeholder=\"Eg: 500032\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">City</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.cityName\" type=\"text\"\n placeholder=\"Eg: Hyderabad\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">State</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.stateName\" type=\"text\"\n placeholder=\"Eg: Telangana\" class=\"input-field\">\n </div>\n </div>\n </div>\n <div class=\"col-md-7 col-12\" *ngIf=\"!editDeliveryAddress\">\n <div class=\"shipping-label\">Delivery Address</div>\n <div class=\"delivery-address\">\n <div style=\"position: absolute;right: 15px;\">\n <img loading=\"lazy\" onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/library-media/813827c1709186499689edit%201.png\"\n alt=\"\" style=\"cursor: pointer;\" (click)=\"editDeliveryAddress = true\">\n </div>\n <div class=\"userName\">{{responseData?.userDetails.userName}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">\n {{responseData?.userDetails.deliveryAddress?.addressLine1}},\n {{responseData?.userDetails.deliveryAddress?.localityName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.cityName}},\n {{responseData?.userDetails.deliveryAddress?.stateName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.countryName}} -\n {{responseData?.userDetails.deliveryAddress?.zipCode}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">Phone : <span\n style=\"font-weight: 500;\">{{responseData?.userDetails.mobile}}</span></div>\n </div>\n </div>\n <div class=\"offset-md-1 col-md-4 col-12 right-section\">\n <div class=\"shipping-label heading-large lh-normal\">\n Price Details\n </div>\n <div class=\"price-details\">\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalNetValue\">\n <div class=\"price-type\">Total MRP</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.totalNetValue}}</div>\n </div>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalTax\">\n <div class=\"price-type\">Total Tax</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData?.billdetails?.totalTax}}</div>\n </div>\n <div class=\"price-parent-block\"\n *ngIf=\"responseData?.billdetails?.deliveryCharges && responseData.billdetails.deliveryCharges > 0\">\n <div class=\"price-type\">Delivery Charge</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.deliveryCharges}}</div>\n </div>\n <hr>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.totalAmount\">\n <div class=\"price-type\" style=\"color: black;font-weight: 600;\">Total Amount</div>\n <div class=\"price-value\" style=\"font-weight: 600;\"><span [innerHtml]='currency'></span> {{responseData.totalAmount}}</div>\n </div>\n\n <div class=\"button-parent\">\n <button simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [buttonStyle]=\"button?.styles\" [backgroundInfo]=\"styles?.background\"\n [color]=\"styles?.background?.accentColor\" (click)=\"placeOrder()\">{{content?.button}}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\" [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n\n </section>\n</ng-container>\n\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\n width: '100%',\n height: '40vh',\n 'border-radius': '10px',\n 'position': 'relative',\n 'right': '5px'\n}\">\n</ngx-skeleton-loader>\n\n", styles: [".container{margin-top:30px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.shipping-label{font-weight:600;font-size:18px;color:#141514;margin-bottom:5px}.input-parent{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.input-label{font-family:Inter;font-weight:400;font-size:14px;color:#141514}.input-field{height:40px;border:2px solid#D0D5DD;border-radius:5px;padding-left:10px;font-size:14px;outline:none}.my-bag{font-size:16px;font-weight:600;font-family:Poppins;color:#000}.my-bag span{color:#939393}.coupon{display:flex;justify-content:space-between;border:1px solid #E8E8E8;border-radius:5px;padding:10px;margin-top:10px}.apply-coupon{font-weight:500;color:#626262;font-size:15px;font-family:Poppins}.coupon-desc{color:#939393;font-size:12px;font-family:Poppins;font-weight:500}.apply-coupon-btn{color:#0267c1;font-size:16px;font-weight:600;font-family:Poppins}.price-details{padding:10px;margin-top:10px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;margin-bottom:15px}.price-parent-block{display:flex;justify-content:space-between;margin-top:5px}.price-type{font-weight:400;font-size:14px;font-family:Poppins;color:#434443}.price-value{font-weight:500;font-family:Poppins;font-size:16px;color:#141514}.button-parent{margin-top:20px;display:flex;flex-direction:column;gap:10px}.button-parent button{padding-top:7px!important;padding-bottom:7px!important;font-size:16px!important}.delivery-address{border:1px solid#D0D5DD;padding:15px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;position:relative}.userName{font-size:18px;font-weight:500;font-family:Poppins;color:#000}.user-details{font-weight:400;font-size:16px;font-family:Poppins}.lh-normal{line-height:normal}hr{border:1px solid #E8E8E8}.total-container{height:auto;position:relative;display:block!important}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}@media only screen and (max-width : 475px){.right-section{margin-top:15px}label{margin-bottom:6px}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i4.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i5.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: i6.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "directive", type:
|
|
80
|
+
/** responseData.totalAmount was computed upstream using the cart's stale (pincode-less)
|
|
81
|
+
* deliveryCharges - swap that component out for the live estimate for display, so the total
|
|
82
|
+
* shown here doesn't contradict the Delivery line directly above it. Does not touch the actual
|
|
83
|
+
* order payload/billdetails - display only, per this feature's scoped-out payment-correctness
|
|
84
|
+
* follow-up. */
|
|
85
|
+
get displayTotalAmount() {
|
|
86
|
+
const base = this.responseData?.totalAmount ?? 0;
|
|
87
|
+
if (!this.liveDeliveryEstimate) {
|
|
88
|
+
return base;
|
|
89
|
+
}
|
|
90
|
+
const staleDelivery = this.responseData?.billdetails?.deliveryCharges ?? 0;
|
|
91
|
+
return base - staleDelivery + this.liveDeliveryEstimate.charge;
|
|
92
|
+
}
|
|
93
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckoutComponent, deps: [{ token: i1.EventsService }, { token: i2.RestService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
94
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CheckoutComponent, isStandalone: true, selector: "simpo-checkout", inputs: { data: "data", responseData: "responseData", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isLoading\">\n <section class=\"total-container\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" simpoHover (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\n <div class=\"container\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\n <div class=\"row\">\n <div class=\"col-md-7 col-12\" *ngIf=\"editDeliveryAddress\">\n <div class=\"shipping-label heading-large\">Shipping To</div>\n <div class=\"row\">\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Name</label>\n <input [(ngModel)]=\"responseData.userDetails.userName\" type=\"text\" placeholder=\"Enter Name\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Mobile Number</label>\n <input [(ngModel)]=\"responseData.userDetails.mobile\" type=\"number\" placeholder=\"Enter number\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Email</label>\n <input [(ngModel)]=\"responseData.userDetails.email\" type=\"email\" placeholder=\"Enter email\"\n class=\"input-field\">\n </div>\n </div>\n\n <div class=\"shipping-label\" style=\"margin-top: 15px;\">Shipping Address</div>\n <div class=\"row\">\n <div class=\"col-12 input-parent\">\n <label for=\"\">Address</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.addressLine1\" type=\"text\"\n placeholder=\"Flat/House No, Building, Colony\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Locality/Area</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.localityName\" type=\"text\"\n placeholder=\"Eg: Jaybheri Enclave, Gachibowli\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Landmark</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.landmark\" type=\"text\"\n placeholder=\"Eg: Near SBI Bank\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Pincode</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.zipCode\" (ngModelChange)=\"onDeliveryPincodeChange()\" type=\"number\" placeholder=\"Eg: 500032\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">City</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.cityName\" type=\"text\"\n placeholder=\"Eg: Hyderabad\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">State</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.stateName\" type=\"text\"\n placeholder=\"Eg: Telangana\" class=\"input-field\">\n </div>\n </div>\n </div>\n <div class=\"col-md-7 col-12\" *ngIf=\"!editDeliveryAddress\">\n <div class=\"shipping-label\">Delivery Address</div>\n <div class=\"delivery-address\">\n <div style=\"position: absolute;right: 15px;\">\n <img loading=\"lazy\" onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/library-media/813827c1709186499689edit%201.png\"\n alt=\"\" style=\"cursor: pointer;\" (click)=\"editDeliveryAddress = true\">\n </div>\n <div class=\"userName\">{{responseData?.userDetails.userName}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">\n {{responseData?.userDetails.deliveryAddress?.addressLine1}},\n {{responseData?.userDetails.deliveryAddress?.localityName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.cityName}},\n {{responseData?.userDetails.deliveryAddress?.stateName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.countryName}} -\n {{responseData?.userDetails.deliveryAddress?.zipCode}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">Phone : <span\n style=\"font-weight: 500;\">{{responseData?.userDetails.mobile}}</span></div>\n </div>\n </div>\n <div class=\"offset-md-1 col-md-4 col-12 right-section\">\n <div class=\"shipping-label heading-large lh-normal\">\n Price Details\n </div>\n <div class=\"price-details\">\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalNetValue\">\n <div class=\"price-type\">Total MRP</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.totalNetValue}}</div>\n </div>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalTax\">\n <div class=\"price-type\">Total Tax</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData?.billdetails?.totalTax}}</div>\n </div>\n <div class=\"price-parent-block\" *ngIf=\"liveDeliveryEstimate\">\n <div class=\"price-type\">Delivery</div>\n <div class=\"price-value\">\n <span *ngIf=\"liveDeliveryEstimate.charge > 0\"><span [innerHtml]='currency'></span> {{liveDeliveryEstimate.charge}}</span>\n <span *ngIf=\"liveDeliveryEstimate.charge == 0\">FREE</span>\n </div>\n </div>\n <div class=\"price-parent-block\" style=\"font-size: 11px; color: #9ca3af;\" *ngIf=\"liveDeliveryEstimate?.eta\">\n {{liveDeliveryEstimate?.eta}}\n </div>\n <div class=\"price-parent-block\"\n *ngIf=\"!liveDeliveryEstimate && responseData?.billdetails?.deliveryCharges && responseData.billdetails.deliveryCharges > 0\">\n <div class=\"price-type\">Delivery Charge</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.deliveryCharges}}</div>\n </div>\n <hr>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.totalAmount\">\n <div class=\"price-type\" style=\"color: black;font-weight: 600;\">Total Amount</div>\n <div class=\"price-value\" style=\"font-weight: 600;\"><span [innerHtml]='currency'></span> {{displayTotalAmount}}</div>\n </div>\n\n <div class=\"button-parent\">\n <button simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [buttonStyle]=\"button?.styles\" [backgroundInfo]=\"styles?.background\"\n [color]=\"styles?.background?.accentColor\" (click)=\"placeOrder()\">{{content?.button}}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\" [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n\n </section>\n</ng-container>\n\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\n width: '100%',\n height: '40vh',\n 'border-radius': '10px',\n 'position': 'relative',\n 'right': '5px'\n}\">\n</ngx-skeleton-loader>\n\n", styles: [".container{margin-top:30px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.shipping-label{font-weight:600;font-size:18px;color:#141514;margin-bottom:5px}.input-parent{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.input-label{font-family:Inter;font-weight:400;font-size:14px;color:#141514}.input-field{height:40px;border:2px solid#D0D5DD;border-radius:5px;padding-left:10px;font-size:14px;outline:none}.my-bag{font-size:16px;font-weight:600;font-family:Poppins;color:#000}.my-bag span{color:#939393}.coupon{display:flex;justify-content:space-between;border:1px solid #E8E8E8;border-radius:5px;padding:10px;margin-top:10px}.apply-coupon{font-weight:500;color:#626262;font-size:15px;font-family:Poppins}.coupon-desc{color:#939393;font-size:12px;font-family:Poppins;font-weight:500}.apply-coupon-btn{color:#0267c1;font-size:16px;font-weight:600;font-family:Poppins}.price-details{padding:10px;margin-top:10px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;margin-bottom:15px}.price-parent-block{display:flex;justify-content:space-between;margin-top:5px}.price-type{font-weight:400;font-size:14px;font-family:Poppins;color:#434443}.price-value{font-weight:500;font-family:Poppins;font-size:16px;color:#141514}.button-parent{margin-top:20px;display:flex;flex-direction:column;gap:10px}.button-parent button{padding-top:7px!important;padding-bottom:7px!important;font-size:16px!important}.delivery-address{border:1px solid#D0D5DD;padding:15px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;position:relative}.userName{font-size:18px;font-weight:500;font-family:Poppins;color:#000}.user-details{font-weight:400;font-size:16px;font-family:Poppins}.lh-normal{line-height:normal}hr{border:1px solid #E8E8E8}.total-container{height:auto;position:relative;display:block!important}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}@media only screen and (max-width : 475px){.right-section{margin-top:15px}label{margin-bottom:6px}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i5.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i6.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: i7.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "directive", type:
|
|
51
95
|
//DIRECTIVE
|
|
52
96
|
ButtonDirectiveDirective, selector: "[simpoButtonDirective]", inputs: ["buttonStyle", "color", "scrollValue", "backgroundInfo"] }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "component", type: SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }] }); }
|
|
53
97
|
}
|
|
@@ -60,8 +104,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
60
104
|
AnimationDirective,
|
|
61
105
|
ContentFitDirective,
|
|
62
106
|
HoverDirective, SvgDividerComponent
|
|
63
|
-
], template: "<ng-container *ngIf=\"!isLoading\">\n <section class=\"total-container\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" simpoHover (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\n <div class=\"container\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\n <div class=\"row\">\n <div class=\"col-md-7 col-12\" *ngIf=\"editDeliveryAddress\">\n <div class=\"shipping-label heading-large\">Shipping To</div>\n <div class=\"row\">\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Name</label>\n <input [(ngModel)]=\"responseData.userDetails.userName\" type=\"text\" placeholder=\"Enter Name\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Mobile Number</label>\n <input [(ngModel)]=\"responseData.userDetails.mobile\" type=\"number\" placeholder=\"Enter number\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Email</label>\n <input [(ngModel)]=\"responseData.userDetails.email\" type=\"email\" placeholder=\"Enter email\"\n class=\"input-field\">\n </div>\n </div>\n\n <div class=\"shipping-label\" style=\"margin-top: 15px;\">Shipping Address</div>\n <div class=\"row\">\n <div class=\"col-12 input-parent\">\n <label for=\"\">Address</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.addressLine1\" type=\"text\"\n placeholder=\"Flat/House No, Building, Colony\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Locality/Area</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.localityName\" type=\"text\"\n placeholder=\"Eg: Jaybheri Enclave, Gachibowli\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Landmark</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.landmark\" type=\"text\"\n placeholder=\"Eg: Near SBI Bank\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Pincode</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.zipCode\" type=\"number\" placeholder=\"Eg: 500032\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">City</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.cityName\" type=\"text\"\n placeholder=\"Eg: Hyderabad\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">State</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.stateName\" type=\"text\"\n placeholder=\"Eg: Telangana\" class=\"input-field\">\n </div>\n </div>\n </div>\n <div class=\"col-md-7 col-12\" *ngIf=\"!editDeliveryAddress\">\n <div class=\"shipping-label\">Delivery Address</div>\n <div class=\"delivery-address\">\n <div style=\"position: absolute;right: 15px;\">\n <img loading=\"lazy\" onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/library-media/813827c1709186499689edit%201.png\"\n alt=\"\" style=\"cursor: pointer;\" (click)=\"editDeliveryAddress = true\">\n </div>\n <div class=\"userName\">{{responseData?.userDetails.userName}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">\n {{responseData?.userDetails.deliveryAddress?.addressLine1}},\n {{responseData?.userDetails.deliveryAddress?.localityName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.cityName}},\n {{responseData?.userDetails.deliveryAddress?.stateName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.countryName}} -\n {{responseData?.userDetails.deliveryAddress?.zipCode}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">Phone : <span\n style=\"font-weight: 500;\">{{responseData?.userDetails.mobile}}</span></div>\n </div>\n </div>\n <div class=\"offset-md-1 col-md-4 col-12 right-section\">\n <div class=\"shipping-label heading-large lh-normal\">\n Price Details\n </div>\n <div class=\"price-details\">\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalNetValue\">\n <div class=\"price-type\">Total MRP</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.totalNetValue}}</div>\n </div>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalTax\">\n <div class=\"price-type\">Total Tax</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData?.billdetails?.totalTax}}</div>\n </div>\n <div class=\"price-parent-block\"\n *ngIf=\"responseData?.billdetails?.deliveryCharges && responseData.billdetails.deliveryCharges > 0\">\n <div class=\"price-type\">Delivery Charge</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.deliveryCharges}}</div>\n </div>\n <hr>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.totalAmount\">\n <div class=\"price-type\" style=\"color: black;font-weight: 600;\">Total Amount</div>\n <div class=\"price-value\" style=\"font-weight: 600;\"><span [innerHtml]='currency'></span> {{responseData.totalAmount}}</div>\n </div>\n\n <div class=\"button-parent\">\n <button simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [buttonStyle]=\"button?.styles\" [backgroundInfo]=\"styles?.background\"\n [color]=\"styles?.background?.accentColor\" (click)=\"placeOrder()\">{{content?.button}}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\" [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n\n </section>\n</ng-container>\n\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\n width: '100%',\n height: '40vh',\n 'border-radius': '10px',\n 'position': 'relative',\n 'right': '5px'\n}\">\n</ngx-skeleton-loader>\n\n", styles: [".container{margin-top:30px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.shipping-label{font-weight:600;font-size:18px;color:#141514;margin-bottom:5px}.input-parent{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.input-label{font-family:Inter;font-weight:400;font-size:14px;color:#141514}.input-field{height:40px;border:2px solid#D0D5DD;border-radius:5px;padding-left:10px;font-size:14px;outline:none}.my-bag{font-size:16px;font-weight:600;font-family:Poppins;color:#000}.my-bag span{color:#939393}.coupon{display:flex;justify-content:space-between;border:1px solid #E8E8E8;border-radius:5px;padding:10px;margin-top:10px}.apply-coupon{font-weight:500;color:#626262;font-size:15px;font-family:Poppins}.coupon-desc{color:#939393;font-size:12px;font-family:Poppins;font-weight:500}.apply-coupon-btn{color:#0267c1;font-size:16px;font-weight:600;font-family:Poppins}.price-details{padding:10px;margin-top:10px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;margin-bottom:15px}.price-parent-block{display:flex;justify-content:space-between;margin-top:5px}.price-type{font-weight:400;font-size:14px;font-family:Poppins;color:#434443}.price-value{font-weight:500;font-family:Poppins;font-size:16px;color:#141514}.button-parent{margin-top:20px;display:flex;flex-direction:column;gap:10px}.button-parent button{padding-top:7px!important;padding-bottom:7px!important;font-size:16px!important}.delivery-address{border:1px solid#D0D5DD;padding:15px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;position:relative}.userName{font-size:18px;font-weight:500;font-family:Poppins;color:#000}.user-details{font-weight:400;font-size:16px;font-family:Poppins}.lh-normal{line-height:normal}hr{border:1px solid #E8E8E8}.total-container{height:auto;position:relative;display:block!important}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}@media only screen and (max-width : 475px){.right-section{margin-top:15px}label{margin-bottom:6px}}\n"] }]
|
|
64
|
-
}], ctorParameters: () => [{ type: i1.EventsService }], propDecorators: { data: [{
|
|
107
|
+
], template: "<ng-container *ngIf=\"!isLoading\">\n <section class=\"total-container\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" simpoHover (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\n <div class=\"container\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\n <div class=\"row\">\n <div class=\"col-md-7 col-12\" *ngIf=\"editDeliveryAddress\">\n <div class=\"shipping-label heading-large\">Shipping To</div>\n <div class=\"row\">\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Name</label>\n <input [(ngModel)]=\"responseData.userDetails.userName\" type=\"text\" placeholder=\"Enter Name\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Mobile Number</label>\n <input [(ngModel)]=\"responseData.userDetails.mobile\" type=\"number\" placeholder=\"Enter number\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Email</label>\n <input [(ngModel)]=\"responseData.userDetails.email\" type=\"email\" placeholder=\"Enter email\"\n class=\"input-field\">\n </div>\n </div>\n\n <div class=\"shipping-label\" style=\"margin-top: 15px;\">Shipping Address</div>\n <div class=\"row\">\n <div class=\"col-12 input-parent\">\n <label for=\"\">Address</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.addressLine1\" type=\"text\"\n placeholder=\"Flat/House No, Building, Colony\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Locality/Area</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.localityName\" type=\"text\"\n placeholder=\"Eg: Jaybheri Enclave, Gachibowli\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Landmark</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.landmark\" type=\"text\"\n placeholder=\"Eg: Near SBI Bank\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Pincode</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.zipCode\" (ngModelChange)=\"onDeliveryPincodeChange()\" type=\"number\" placeholder=\"Eg: 500032\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">City</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.cityName\" type=\"text\"\n placeholder=\"Eg: Hyderabad\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">State</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.stateName\" type=\"text\"\n placeholder=\"Eg: Telangana\" class=\"input-field\">\n </div>\n </div>\n </div>\n <div class=\"col-md-7 col-12\" *ngIf=\"!editDeliveryAddress\">\n <div class=\"shipping-label\">Delivery Address</div>\n <div class=\"delivery-address\">\n <div style=\"position: absolute;right: 15px;\">\n <img loading=\"lazy\" onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/library-media/813827c1709186499689edit%201.png\"\n alt=\"\" style=\"cursor: pointer;\" (click)=\"editDeliveryAddress = true\">\n </div>\n <div class=\"userName\">{{responseData?.userDetails.userName}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">\n {{responseData?.userDetails.deliveryAddress?.addressLine1}},\n {{responseData?.userDetails.deliveryAddress?.localityName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.cityName}},\n {{responseData?.userDetails.deliveryAddress?.stateName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.countryName}} -\n {{responseData?.userDetails.deliveryAddress?.zipCode}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">Phone : <span\n style=\"font-weight: 500;\">{{responseData?.userDetails.mobile}}</span></div>\n </div>\n </div>\n <div class=\"offset-md-1 col-md-4 col-12 right-section\">\n <div class=\"shipping-label heading-large lh-normal\">\n Price Details\n </div>\n <div class=\"price-details\">\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalNetValue\">\n <div class=\"price-type\">Total MRP</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.totalNetValue}}</div>\n </div>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalTax\">\n <div class=\"price-type\">Total Tax</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData?.billdetails?.totalTax}}</div>\n </div>\n <div class=\"price-parent-block\" *ngIf=\"liveDeliveryEstimate\">\n <div class=\"price-type\">Delivery</div>\n <div class=\"price-value\">\n <span *ngIf=\"liveDeliveryEstimate.charge > 0\"><span [innerHtml]='currency'></span> {{liveDeliveryEstimate.charge}}</span>\n <span *ngIf=\"liveDeliveryEstimate.charge == 0\">FREE</span>\n </div>\n </div>\n <div class=\"price-parent-block\" style=\"font-size: 11px; color: #9ca3af;\" *ngIf=\"liveDeliveryEstimate?.eta\">\n {{liveDeliveryEstimate?.eta}}\n </div>\n <div class=\"price-parent-block\"\n *ngIf=\"!liveDeliveryEstimate && responseData?.billdetails?.deliveryCharges && responseData.billdetails.deliveryCharges > 0\">\n <div class=\"price-type\">Delivery Charge</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.deliveryCharges}}</div>\n </div>\n <hr>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.totalAmount\">\n <div class=\"price-type\" style=\"color: black;font-weight: 600;\">Total Amount</div>\n <div class=\"price-value\" style=\"font-weight: 600;\"><span [innerHtml]='currency'></span> {{displayTotalAmount}}</div>\n </div>\n\n <div class=\"button-parent\">\n <button simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [buttonStyle]=\"button?.styles\" [backgroundInfo]=\"styles?.background\"\n [color]=\"styles?.background?.accentColor\" (click)=\"placeOrder()\">{{content?.button}}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\" [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n\n </section>\n</ng-container>\n\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\n width: '100%',\n height: '40vh',\n 'border-radius': '10px',\n 'position': 'relative',\n 'right': '5px'\n}\">\n</ngx-skeleton-loader>\n\n", styles: [".container{margin-top:30px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.shipping-label{font-weight:600;font-size:18px;color:#141514;margin-bottom:5px}.input-parent{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.input-label{font-family:Inter;font-weight:400;font-size:14px;color:#141514}.input-field{height:40px;border:2px solid#D0D5DD;border-radius:5px;padding-left:10px;font-size:14px;outline:none}.my-bag{font-size:16px;font-weight:600;font-family:Poppins;color:#000}.my-bag span{color:#939393}.coupon{display:flex;justify-content:space-between;border:1px solid #E8E8E8;border-radius:5px;padding:10px;margin-top:10px}.apply-coupon{font-weight:500;color:#626262;font-size:15px;font-family:Poppins}.coupon-desc{color:#939393;font-size:12px;font-family:Poppins;font-weight:500}.apply-coupon-btn{color:#0267c1;font-size:16px;font-weight:600;font-family:Poppins}.price-details{padding:10px;margin-top:10px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;margin-bottom:15px}.price-parent-block{display:flex;justify-content:space-between;margin-top:5px}.price-type{font-weight:400;font-size:14px;font-family:Poppins;color:#434443}.price-value{font-weight:500;font-family:Poppins;font-size:16px;color:#141514}.button-parent{margin-top:20px;display:flex;flex-direction:column;gap:10px}.button-parent button{padding-top:7px!important;padding-bottom:7px!important;font-size:16px!important}.delivery-address{border:1px solid#D0D5DD;padding:15px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;position:relative}.userName{font-size:18px;font-weight:500;font-family:Poppins;color:#000}.user-details{font-weight:400;font-size:16px;font-family:Poppins}.lh-normal{line-height:normal}hr{border:1px solid #E8E8E8}.total-container{height:auto;position:relative;display:block!important}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}@media only screen and (max-width : 475px){.right-section{margin-top:15px}label{margin-bottom:6px}}\n"] }]
|
|
108
|
+
}], ctorParameters: () => [{ type: i1.EventsService }, { type: i2.RestService }], propDecorators: { data: [{
|
|
65
109
|
type: Input
|
|
66
110
|
}], responseData: [{
|
|
67
111
|
type: Input
|
|
@@ -76,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
76
120
|
}], nextComponentColor: [{
|
|
77
121
|
type: Input
|
|
78
122
|
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxXQUFXLE1BQU0sK0JBQStCLENBQUM7QUFHeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7Ozs7O0FBZ0IxRixNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQWFoRCxZQUFvQixhQUE2QjtRQUMvQyxLQUFLLEVBQUUsQ0FBQTtRQURXLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUZqRCxjQUFTLEdBQVksS0FBSyxDQUFDO1FBTTNCLHdCQUFtQixHQUFHLElBQUksQ0FBQztJQUYzQixDQUFDO0lBT0QsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDekUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFDLEVBQUU7WUFDekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBQ0QsV0FBVztRQUVULElBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxHQUFHO1lBQ3pCLE9BQU87UUFFVCxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxVQUFVLENBQUMsR0FBRSxFQUFFO1lBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ3hELENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDOytHQWhEVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiwrUUM5QjlCLG81T0FvSUEsc2lFRGpIWSxXQUFXLGd4QkFBRSxZQUFZLGdPQUNqQyxvQkFBb0I7Z0JBQ3BCLFdBQVc7Z0JBQ1gsd0JBQXdCLHNJQUN4QixrQkFBa0IseUZBQ2xCLG1CQUFtQixtRkFDbkIsY0FBYyxnRkFBQyxtQkFBbUI7OzRGQUt6QixpQkFBaUI7a0JBZDdCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLFlBQVk7d0JBQ2pDLG9CQUFvQjt3QkFDcEIsV0FBVzt3QkFDWCx3QkFBd0I7d0JBQ3hCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixjQUFjLEVBQUMsbUJBQW1CO3FCQUNuQztrRkFLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoZWNrb3V0Q29udGVudE1vZGFsLCBDaGVja291dE1vZGFsLCBDaGVja291dFN0eWxlc01vZGFsIH0gZnJvbSAnLi9jaGVja291dC5tb2RhbCc7XG5pbXBvcnQgeyBDYXJ0IH0gZnJvbSAnLi4vLi4vc3R5bGVzL2NhcnQubW9kYWwnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2J1dHRvbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcbmltcG9ydCB7IFNpbXBvQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9pbmRleCc7XG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vLi4vLi4vc2VjdGlvbnMvQmFzZVNlY3Rpb24nO1xuaW1wb3J0IHsgQmFja2dyb3VuZE1vZGVsLCBCYW5uZXJTdHlsZXNNb2RlbCwgQnV0dG9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQlVTSU5FU1NfQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2J1c2luZXNzLmNvbnN0YW50JztcbmltcG9ydCB7IFN2Z0RpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9zdmctZGl2aWRlci9zdmctZGl2aWRlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaW1wby1jaGVja291dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgQ29tbW9uTW9kdWxlLFxuICAgIFNpbXBvQ29tcG9uZW50TW9kdWxlLFxuICAgIC8vRElSRUNUSVZFXG4gICAgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxuICAgIEhvdmVyRGlyZWN0aXZlLFN2Z0RpdmlkZXJDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrb3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NoZWNrb3V0LmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrb3V0Q29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb257XG4gIEBJbnB1dCgpIGRhdGE/OiBDaGVja291dE1vZGFsO1xuICBASW5wdXQoKSByZXNwb25zZURhdGE/OiBhbnk7XG4gIEBJbnB1dCgpIGluZGV4PyA6IG51bWJlcjtcbiAgQElucHV0KCkgZWRpdD8gOiBib29sZWFuO1xuICBASW5wdXQoKSBkZWxldGU/IDogYm9vbGVhbjtcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XG4gIFxuICBASW5wdXQoKSBuZXh0Q29tcG9uZW50Q29sb3I/OiBCYWNrZ3JvdW5kTW9kZWw7XG4gIHN0eWxlPzogQmFubmVyU3R5bGVzTW9kZWw7XG5cbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZXZlbnRTZXJ2aWNlIDogRXZlbnRzU2VydmljZSl7XG4gICAgc3VwZXIoKVxuICB9XG5cbiAgZWRpdERlbGl2ZXJ5QWRkcmVzcyA9IHRydWU7XG4gIGNvbnRlbnQ/OiBDaGVja291dENvbnRlbnRNb2RhbDtcbiAgc3R5bGVzPzogQ2hlY2tvdXRTdHlsZXNNb2RhbDtcbiAgYnV0dG9uPzogQnV0dG9uTW9kZWw7XG5cbiAgbmdPbkluaXQoKXtcbiAgICB0aGlzLmVkaXREZWxpdmVyeUFkZHJlc3MgPSB0aGlzLnJlc3BvbnNlRGF0YT8udXNlckRldGFpbHMgPyB0cnVlIDogZmFsc2U7XG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5kYXRhPy5zdHlsZXM7XG4gICAgdGhpcy5idXR0b24gPSB0aGlzLmRhdGE/LmFjdGlvbj8uYnV0dG9uc1swXTtcbiAgICB0aGlzLl9ldmVudFNlcnZpY2Uuc2hvd0xvYWRpbmdTY3JlZW4uc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHJlc3BvbnNlO1xuICAgIH0pXG4gIH1cblxuICBwbGFjZU9yZGVyKCl7XG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnBsYWNlT3JkZXIuZW1pdCh7Y2FydERhdGE6IHRoaXMucmVzcG9uc2VEYXRhfSk7XG4gIH1cbiAgZWRpdFNlY3Rpb24oKXtcblxuICAgIGlmKHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NSlcbiAgICAgIHJldHVybjtcbiAgICBcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XG4gICAgc2V0VGltZW91dCgoKT0+IHtcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHtkYXRhOnRoaXMuZGF0YX0pO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBnZXQgY3VycmVuY3koKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQlVTSU5FU1NfQ09OU1RBTlRTLkNVUlJFTkNZO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICA8c2VjdGlvbiBjbGFzcz1cInRvdGFsLWNvbnRhaW5lclwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZXM/LmxheW91dFwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgIFthdHRyLnN0eWxlXT1cImN1c3RvbUNsYXNzXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTcgY29sLTEyXCIgKm5nSWY9XCJlZGl0RGVsaXZlcnlBZGRyZXNzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoaXBwaW5nLWxhYmVsIGhlYWRpbmctbGFyZ2VcIj5TaGlwcGluZyBUbzwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtMTIgaW5wdXQtcGFyZW50XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj5OYW1lPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwicmVzcG9uc2VEYXRhLnVzZXJEZXRhaWxzLnVzZXJOYW1lXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIE5hbWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC0xMiBpbnB1dC1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPk1vYmlsZSBOdW1iZXI8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJyZXNwb25zZURhdGEudXNlckRldGFpbHMubW9iaWxlXCIgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgbnVtYmVyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWZpZWxkXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtMTIgaW5wdXQtcGFyZW50XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj5FbWFpbDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInJlc3BvbnNlRGF0YS51c2VyRGV0YWlscy5lbWFpbFwiIHR5cGU9XCJlbWFpbFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgZW1haWxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoaXBwaW5nLWxhYmVsXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxNXB4O1wiPlNoaXBwaW5nIEFkZHJlc3M8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGlucHV0LXBhcmVudFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+QWRkcmVzczwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInJlc3BvbnNlRGF0YS51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3MuYWRkcmVzc0xpbmUxXCIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRmxhdC9Ib3VzZSBObywgQnVpbGRpbmcsIENvbG9ueVwiIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC0xMiBpbnB1dC1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPkxvY2FsaXR5L0FyZWE8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJyZXNwb25zZURhdGEudXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzLmxvY2FsaXR5TmFtZVwiIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVnOiBKYXliaGVyaSBFbmNsYXZlLCBHYWNoaWJvd2xpXCIgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLTEyIGlucHV0LXBhcmVudFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+TGFuZG1hcms8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJyZXNwb25zZURhdGEudXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzLmxhbmRtYXJrXCIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRWc6IE5lYXIgU0JJIEJhbmtcIiBjbGFzcz1cImlucHV0LWZpZWxkXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtMTIgaW5wdXQtcGFyZW50XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj5QaW5jb2RlPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwicmVzcG9uc2VEYXRhLnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcy56aXBDb2RlXCIgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwiRWc6IDUwMDAzMlwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLTEyIGlucHV0LXBhcmVudFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+Q2l0eTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInJlc3BvbnNlRGF0YS51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3MuY2l0eU5hbWVcIiB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFZzogSHlkZXJhYmFkXCIgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLTEyIGlucHV0LXBhcmVudFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+U3RhdGU8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJyZXNwb25zZURhdGEudXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzLnN0YXRlTmFtZVwiIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVnOiBUZWxhbmdhbmFcIiBjbGFzcz1cImlucHV0LWZpZWxkXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNyBjb2wtMTJcIiAqbmdJZj1cIiFlZGl0RGVsaXZlcnlBZGRyZXNzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoaXBwaW5nLWxhYmVsXCI+RGVsaXZlcnkgQWRkcmVzczwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZWxpdmVyeS1hZGRyZXNzXCI+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO3JpZ2h0OiAxNXB4O1wiPlxuICAgICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgb25lcnJvcj1cInRoaXMuc3JjPSdodHRwczovL2kucG9zdGltZy5jYy9oUFMySnBWMC9uby1pbWFnZS1hdmFpbGFibGUuanBnJ1wiICAgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9saWJyYXJ5LW1lZGlhLzgxMzgyN2MxNzA5MTg2NDk5Njg5ZWRpdCUyMDEucG5nXCJcbiAgICAgICAgICAgICAgICBhbHQ9XCJcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIiAoY2xpY2spPVwiZWRpdERlbGl2ZXJ5QWRkcmVzcyA9IHRydWVcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXJOYW1lXCI+e3tyZXNwb25zZURhdGE/LnVzZXJEZXRhaWxzLnVzZXJOYW1lfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWRldGFpbHNcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDVweDtcIj5cbiAgICAgICAgICAgICAge3tyZXNwb25zZURhdGE/LnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcz8uYWRkcmVzc0xpbmUxfX0sXG4gICAgICAgICAgICAgIHt7cmVzcG9uc2VEYXRhPy51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3M/LmxvY2FsaXR5TmFtZX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1kZXRhaWxzXCI+e3tyZXNwb25zZURhdGE/LnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcz8uY2l0eU5hbWV9fSxcbiAgICAgICAgICAgICAge3tyZXNwb25zZURhdGE/LnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcz8uc3RhdGVOYW1lfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWRldGFpbHNcIj57e3Jlc3BvbnNlRGF0YT8udXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzPy5jb3VudHJ5TmFtZX19IC1cbiAgICAgICAgICAgICAge3tyZXNwb25zZURhdGE/LnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcz8uemlwQ29kZX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1kZXRhaWxzXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA1cHg7XCI+UGhvbmUgOiA8c3BhblxuICAgICAgICAgICAgICAgIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDUwMDtcIj57e3Jlc3BvbnNlRGF0YT8udXNlckRldGFpbHMubW9iaWxlfX08L3NwYW4+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwib2Zmc2V0LW1kLTEgY29sLW1kLTQgY29sLTEyIHJpZ2h0LXNlY3Rpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpcHBpbmctbGFiZWwgaGVhZGluZy1sYXJnZSBsaC1ub3JtYWxcIj5cbiAgICAgICAgICAgIFByaWNlIERldGFpbHNcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtZGV0YWlsc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXBhcmVudC1ibG9ja1wiICpuZ0lmPVwicmVzcG9uc2VEYXRhPy5iaWxsZGV0YWlscz8udG90YWxOZXRWYWx1ZVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdHlwZVwiPlRvdGFsIE1SUDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdmFsdWVcIj48c3BhbiBbaW5uZXJIdG1sXT0nY3VycmVuY3knPjwvc3Bhbj4ge3tyZXNwb25zZURhdGEuYmlsbGRldGFpbHMudG90YWxOZXRWYWx1ZX19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1wYXJlbnQtYmxvY2tcIiAqbmdJZj1cInJlc3BvbnNlRGF0YT8uYmlsbGRldGFpbHM/LnRvdGFsVGF4XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS10eXBlXCI+VG90YWwgVGF4PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS12YWx1ZVwiPjxzcGFuIFtpbm5lckh0bWxdPSdjdXJyZW5jeSc+PC9zcGFuPiB7e3Jlc3BvbnNlRGF0YT8uYmlsbGRldGFpbHM/LnRvdGFsVGF4fX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXBhcmVudC1ibG9ja1wiXG4gICAgICAgICAgICAgICpuZ0lmPVwicmVzcG9uc2VEYXRhPy5iaWxsZGV0YWlscz8uZGVsaXZlcnlDaGFyZ2VzICYmIHJlc3BvbnNlRGF0YS5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXMgPiAwXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS10eXBlXCI+RGVsaXZlcnkgQ2hhcmdlPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS12YWx1ZVwiPjxzcGFuIFtpbm5lckh0bWxdPSdjdXJyZW5jeSc+PC9zcGFuPiB7e3Jlc3BvbnNlRGF0YS5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXN9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aHI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcGFyZW50LWJsb2NrXCIgKm5nSWY9XCJyZXNwb25zZURhdGE/LnRvdGFsQW1vdW50XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS10eXBlXCIgc3R5bGU9XCJjb2xvcjogYmxhY2s7Zm9udC13ZWlnaHQ6IDYwMDtcIj5Ub3RhbCBBbW91bnQ8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCIgc3R5bGU9XCJmb250LXdlaWdodDogNjAwO1wiPjxzcGFuIFtpbm5lckh0bWxdPSdjdXJyZW5jeSc+PC9zcGFuPiB7e3Jlc3BvbnNlRGF0YS50b3RhbEFtb3VudH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBzaW1wb0J1dHRvbkRpcmVjdGl2ZSBbaWRdPVwiZGF0YT8uaWQrKGJ1dHRvbj8uaWQgfHwgJycpXCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbj8uc3R5bGVzXCIgW2JhY2tncm91bmRJbmZvXT1cInN0eWxlcz8uYmFja2dyb3VuZFwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cInN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiAoY2xpY2spPVwicGxhY2VPcmRlcigpXCI+e3tjb250ZW50Py5idXR0b259fTwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5kZXZpZGVyPy5kaXNwbGF5XCI+XG4gICAgPHNpbXBvLXN2Zy1kaXZpZGVyIFtkaXZpZGVyVHlwZV09XCJzdHlsZT8uZGV2aWRlcj8uZGV2aWRlclR5cGVcIiBbY29sb3JdPVwibmV4dENvbXBvbmVudENvbG9yPy5jb2xvclwiPjwvc2ltcG8tc3ZnLWRpdmlkZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cbiAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XG4gICAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XG4gICAgPC9kaXY+XG5cbiAgPC9zZWN0aW9uPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZ3gtc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XG4gIHdpZHRoOiAnMTAwJScsXG4gIGhlaWdodDogJzQwdmgnLFxuICAnYm9yZGVyLXJhZGl1cyc6ICcxMHB4JyxcbiAgJ3Bvc2l0aW9uJzogJ3JlbGF0aXZlJyxcbiAgJ3JpZ2h0JzogJzVweCdcbn1cIj5cbjwvbmd4LXNrZWxldG9uLWxvYWRlcj5cblxuIl19
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxXQUFXLE1BQU0sK0JBQStCLENBQUM7QUFHeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7Ozs7OztBQWlCMUYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQVc7SUFhaEQsWUFBb0IsYUFBNkIsRUFBVSxXQUF3QjtRQUNqRixLQUFLLEVBQUUsQ0FBQTtRQURXLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUFV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LFdBQVc7d0JBQ1gsd0JBQXdCO3dCQUN4QixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsY0FBYyxFQUFDLG1CQUFtQjtxQkFDbkM7NEdBS1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGVja291dENvbnRlbnRNb2RhbCwgQ2hlY2tvdXRNb2RhbCwgQ2hlY2tvdXRTdHlsZXNNb2RhbCB9IGZyb20gJy4vY2hlY2tvdXQubW9kYWwnO1xuaW1wb3J0IHsgQ2FydCB9IGZyb20gJy4uLy4uL3N0eWxlcy9jYXJ0Lm1vZGFsJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBbmltYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYW5pbWF0aW9uLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcbmltcG9ydCB7IEJhY2tncm91bmRNb2RlbCwgQmFubmVyU3R5bGVzTW9kZWwsIEJ1dHRvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IEJVU0lORVNTX0NPTlNUQU5UUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9idXNpbmVzcy5jb25zdGFudCc7XG5pbXBvcnQgeyBTdmdEaXZpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvc3ZnLWRpdmlkZXIvc3ZnLWRpdmlkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltcG8tY2hlY2tvdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIENvbW1vbk1vZHVsZSxcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcbiAgICAvL0RJUkVDVElWRVxuICAgIEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSxcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBIb3ZlckRpcmVjdGl2ZSxTdmdEaXZpZGVyQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja291dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jaGVja291dC5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBDaGVja291dENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9ue1xuICBASW5wdXQoKSBkYXRhPzogQ2hlY2tvdXRNb2RhbDtcbiAgQElucHV0KCkgcmVzcG9uc2VEYXRhPzogYW55O1xuICBASW5wdXQoKSBpbmRleD8gOiBudW1iZXI7XG4gIEBJbnB1dCgpIGVkaXQ/IDogYm9vbGVhbjtcbiAgQElucHV0KCkgZGVsZXRlPyA6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuICBcbiAgQElucHV0KCkgbmV4dENvbXBvbmVudENvbG9yPzogQmFja2dyb3VuZE1vZGVsO1xuICBzdHlsZT86IEJhbm5lclN0eWxlc01vZGVsO1xuXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2V2ZW50U2VydmljZSA6IEV2ZW50c1NlcnZpY2UsIHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlKXtcbiAgICBzdXBlcigpXG4gIH1cblxuICBlZGl0RGVsaXZlcnlBZGRyZXNzID0gdHJ1ZTtcbiAgY29udGVudD86IENoZWNrb3V0Q29udGVudE1vZGFsO1xuICBzdHlsZXM/OiBDaGVja291dFN0eWxlc01vZGFsO1xuICBidXR0b24/OiBCdXR0b25Nb2RlbDtcblxuICAvLyBMaXZlIGVzdGltYXRlIGZyb20gU2hpcHJvY2tldCwga2V5ZWQgb2ZmIHRoZSBjaG9zZW4gZGVsaXZlcnkgYWRkcmVzcydzIHBpbmNvZGUgLSB0aGUgY2FydCdzIG93blxuICAvLyBiaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXMgcHJlZGF0ZXMgdGhpcyBhbmQgaGFzIG5vIHBpbmNvZGUgdG8gd29yayB3aXRoIGF0IGNhcnQtdmlldyB0aW1lXG4gIC8vIChzZWUgU2hpcHJvY2tldERlbGl2ZXJ5RXN0aW1hdGVTZXJ2aWNlJ3Mgb3duIGRlc2lnbiBub3RlKSwgc28gdGhpcyBvdmVycmlkZXMgaXQgZm9yIGRpc3BsYXkgb25jZVxuICAvLyBhIHJlYWwgZGVsaXZlcnkgYWRkcmVzcyBpcyBrbm93biwgcmF0aGVyIHRoYW4gdHJ5aW5nIHRvIHJldHJvZml0IHRoZSBjYXJ0LXZpZXcgY2FsY3VsYXRpb24uXG4gIGxpdmVEZWxpdmVyeUVzdGltYXRlOiB7IGNoYXJnZTogbnVtYmVyOyBub3RlOiBzdHJpbmcgfCBudWxsOyBldGE6IHN0cmluZyB8IG51bGwgfSB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25Jbml0KCl7XG4gICAgdGhpcy5lZGl0RGVsaXZlcnlBZGRyZXNzID0gdGhpcy5yZXNwb25zZURhdGE/LnVzZXJEZXRhaWxzID8gdHJ1ZSA6IGZhbHNlO1xuICAgIGlmICh0aGlzLnJlc3BvbnNlRGF0YT8udXNlckRldGFpbHMgJiYgIXRoaXMucmVzcG9uc2VEYXRhLnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcykge1xuICAgICAgdGhpcy5yZXNwb25zZURhdGEudXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzID0ge307XG4gICAgfVxuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMuZGF0YT8uc3R5bGVzO1xuICAgIHRoaXMuYnV0dG9uID0gdGhpcy5kYXRhPy5hY3Rpb24/LmJ1dHRvbnNbMF07XG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLnN1YnNjcmliZSgocmVzcG9uc2UpPT4ge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSByZXNwb25zZTtcbiAgICB9KVxuICAgIHRoaXMuZmV0Y2hMaXZlRGVsaXZlcnlFc3RpbWF0ZSgpO1xuICB9XG5cbiAgLyoqIFJ1bnMgb25jZSBhdCBpbml0IChpbiBjYXNlIGEgc2F2ZWQgYWRkcmVzcyB3aXRoIGEgcGluY29kZSB3YXMgYWxyZWFkeSBwYXNzZWQgaW4pLCBhbmQgYWdhaW5cbiAgICogZnJvbSB0aGUgcGluY29kZSBpbnB1dCdzIChuZ01vZGVsQ2hhbmdlKSAtIGF0IGluaXQgdGltZSB0aGVyZSdzIHVzdWFsbHkgbm8gcGluY29kZSB5ZXQsIHNpbmNlXG4gICAqIHRoZSBzaG9wcGVyIGhhc24ndCB0eXBlZCB0aGVpciBhZGRyZXNzIGludG8gdGhpcyBwYWdlJ3Mgb3duIGZvcm0uICovXG4gIG9uRGVsaXZlcnlQaW5jb2RlQ2hhbmdlKCkge1xuICAgIHRoaXMuZmV0Y2hMaXZlRGVsaXZlcnlFc3RpbWF0ZSgpO1xuICB9XG5cbiAgZmV0Y2hMaXZlRGVsaXZlcnlFc3RpbWF0ZSgpIHtcbiAgICBjb25zdCBkZWxpdmVyeVBpbmNvZGUgPSB0aGlzLnJlc3BvbnNlRGF0YT8udXNlckRldGFpbHM/LmRlbGl2ZXJ5QWRkcmVzcz8uemlwQ29kZTtcbiAgICBpZiAoIWRlbGl2ZXJ5UGluY29kZSB8fCBkZWxpdmVyeVBpbmNvZGUudG9TdHJpbmcoKS5sZW5ndGggIT09IDYpIHtcbiAgICAgIHRoaXMubGl2ZURlbGl2ZXJ5RXN0aW1hdGUgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpdGVtcyA9IHRoaXMucmVzcG9uc2VEYXRhPy5vcmRlcmVkSXRlbXMgPz8gW107XG4gICAgY29uc3Qgd2VpZ2h0S2cgPSBpdGVtcy5yZWR1Y2UoKHRvdGFsOiBudW1iZXIsIGl0ZW06IGFueSkgPT4gdG90YWwgKyAoKGl0ZW0/LndlaWdodCB8fCAwLjUpICogKGl0ZW0/LnF1YW50aXR5IHx8IDEpKSwgMCkgfHwgMC41O1xuICAgIGNvbnN0IG9yZGVyR3Jvc3NWYWx1ZSA9IHRoaXMucmVzcG9uc2VEYXRhPy5iaWxsZGV0YWlscz8udG90YWxHcm9zc1ZhbHVlID8/IDA7XG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXREZWxpdmVyeUVzdGltYXRlKGRlbGl2ZXJ5UGluY29kZSwgd2VpZ2h0S2csIHRydWUsIG9yZGVyR3Jvc3NWYWx1ZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4geyB0aGlzLmxpdmVEZWxpdmVyeUVzdGltYXRlID0gcmVzOyB9LFxuICAgICAgZXJyb3I6ICgpID0+IHsgdGhpcy5saXZlRGVsaXZlcnlFc3RpbWF0ZSA9IG51bGw7IH1cbiAgICB9KTtcbiAgfVxuXG4gIHBsYWNlT3JkZXIoKXtcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UucGxhY2VPcmRlci5lbWl0KHtjYXJ0RGF0YTogdGhpcy5yZXNwb25zZURhdGF9KTtcbiAgfVxuICBlZGl0U2VjdGlvbigpe1xuXG4gICAgaWYod2luZG93LmlubmVyV2lkdGggPD0gNDc1KVxuICAgICAgcmV0dXJuO1xuICAgIFxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcbiAgICBzZXRUaW1lb3V0KCgpPT4ge1xuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoe2RhdGE6dGhpcy5kYXRhfSk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIGdldCBjdXJyZW5jeSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBCVVNJTkVTU19DT05TVEFOVFMuQ1VSUkVOQ1k7XG4gIH1cblxuICAvKiogcmVzcG9uc2VEYXRhLnRvdGFsQW1vdW50IHdhcyBjb21wdXRlZCB1cHN0cmVhbSB1c2luZyB0aGUgY2FydCdzIHN0YWxlIChwaW5jb2RlLWxlc3MpXG4gICAqIGRlbGl2ZXJ5Q2hhcmdlcyAtIHN3YXAgdGhhdCBjb21wb25lbnQgb3V0IGZvciB0aGUgbGl2ZSBlc3RpbWF0ZSBmb3IgZGlzcGxheSwgc28gdGhlIHRvdGFsXG4gICAqIHNob3duIGhlcmUgZG9lc24ndCBjb250cmFkaWN0IHRoZSBEZWxpdmVyeSBsaW5lIGRpcmVjdGx5IGFib3ZlIGl0LiBEb2VzIG5vdCB0b3VjaCB0aGUgYWN0dWFsXG4gICAqIG9yZGVyIHBheWxvYWQvYmlsbGRldGFpbHMgLSBkaXNwbGF5IG9ubHksIHBlciB0aGlzIGZlYXR1cmUncyBzY29wZWQtb3V0IHBheW1lbnQtY29ycmVjdG5lc3NcbiAgICogZm9sbG93LXVwLiAqL1xuICBnZXQgZGlzcGxheVRvdGFsQW1vdW50KCk6IG51bWJlciB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMucmVzcG9uc2VEYXRhPy50b3RhbEFtb3VudCA/PyAwO1xuICAgIGlmICghdGhpcy5saXZlRGVsaXZlcnlFc3RpbWF0ZSkge1xuICAgICAgcmV0dXJuIGJhc2U7XG4gICAgfVxuICAgIGNvbnN0IHN0YWxlRGVsaXZlcnkgPSB0aGlzLnJlc3BvbnNlRGF0YT8uYmlsbGRldGFpbHM/LmRlbGl2ZXJ5Q2hhcmdlcyA/PyAwO1xuICAgIHJldHVybiBiYXNlIC0gc3RhbGVEZWxpdmVyeSArIHRoaXMubGl2ZURlbGl2ZXJ5RXN0aW1hdGUuY2hhcmdlO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICA8c2VjdGlvbiBjbGFzcz1cInRvdGFsLWNvbnRhaW5lclwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZXM/LmxheW91dFwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgIFthdHRyLnN0eWxlXT1cImN1c3RvbUNsYXNzXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTcgY29sLTEyXCIgKm5nSWY9XCJlZGl0RGVsaXZlcnlBZGRyZXNzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoaXBwaW5nLWxhYmVsIGhlYWRpbmctbGFyZ2VcIj5TaGlwcGluZyBUbzwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtMTIgaW5wdXQtcGFyZW50XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj5OYW1lPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwicmVzcG9uc2VEYXRhLnVzZXJEZXRhaWxzLnVzZXJOYW1lXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIE5hbWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC0xMiBpbnB1dC1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPk1vYmlsZSBOdW1iZXI8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJyZXNwb25zZURhdGEudXNlckRldGFpbHMubW9iaWxlXCIgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgbnVtYmVyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWZpZWxkXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtMTIgaW5wdXQtcGFyZW50XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj5FbWFpbDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInJlc3BvbnNlRGF0YS51c2VyRGV0YWlscy5lbWFpbFwiIHR5cGU9XCJlbWFpbFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgZW1haWxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoaXBwaW5nLWxhYmVsXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxNXB4O1wiPlNoaXBwaW5nIEFkZHJlc3M8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGlucHV0LXBhcmVudFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+QWRkcmVzczwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInJlc3BvbnNlRGF0YS51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3MuYWRkcmVzc0xpbmUxXCIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRmxhdC9Ib3VzZSBObywgQnVpbGRpbmcsIENvbG9ueVwiIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC0xMiBpbnB1dC1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPkxvY2FsaXR5L0FyZWE8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJyZXNwb25zZURhdGEudXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzLmxvY2FsaXR5TmFtZVwiIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVnOiBKYXliaGVyaSBFbmNsYXZlLCBHYWNoaWJvd2xpXCIgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLTEyIGlucHV0LXBhcmVudFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+TGFuZG1hcms8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJyZXNwb25zZURhdGEudXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzLmxhbmRtYXJrXCIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRWc6IE5lYXIgU0JJIEJhbmtcIiBjbGFzcz1cImlucHV0LWZpZWxkXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtMTIgaW5wdXQtcGFyZW50XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj5QaW5jb2RlPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwicmVzcG9uc2VEYXRhLnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcy56aXBDb2RlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25EZWxpdmVyeVBpbmNvZGVDaGFuZ2UoKVwiIHR5cGU9XCJudW1iZXJcIiBwbGFjZWhvbGRlcj1cIkVnOiA1MDAwMzJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC0xMiBpbnB1dC1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPkNpdHk8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJyZXNwb25zZURhdGEudXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzLmNpdHlOYW1lXCIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRWc6IEh5ZGVyYWJhZFwiIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC0xMiBpbnB1dC1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPlN0YXRlPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwicmVzcG9uc2VEYXRhLnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcy5zdGF0ZU5hbWVcIiB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFZzogVGVsYW5nYW5hXCIgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTcgY29sLTEyXCIgKm5nSWY9XCIhZWRpdERlbGl2ZXJ5QWRkcmVzc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGlwcGluZy1sYWJlbFwiPkRlbGl2ZXJ5IEFkZHJlc3M8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsaXZlcnktYWRkcmVzc1wiPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTtyaWdodDogMTVweDtcIj5cbiAgICAgICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIG9uZXJyb3I9XCJ0aGlzLnNyYz0naHR0cHM6Ly9pLnBvc3RpbWcuY2MvaFBTMkpwVjAvbm8taW1hZ2UtYXZhaWxhYmxlLmpwZydcIiAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vbGlicmFyeS1tZWRpYS84MTM4MjdjMTcwOTE4NjQ5OTY4OWVkaXQlMjAxLnBuZ1wiXG4gICAgICAgICAgICAgICAgYWx0PVwiXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cImVkaXREZWxpdmVyeUFkZHJlc3MgPSB0cnVlXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyTmFtZVwiPnt7cmVzcG9uc2VEYXRhPy51c2VyRGV0YWlscy51c2VyTmFtZX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1kZXRhaWxzXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA1cHg7XCI+XG4gICAgICAgICAgICAgIHt7cmVzcG9uc2VEYXRhPy51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3M/LmFkZHJlc3NMaW5lMX19LFxuICAgICAgICAgICAgICB7e3Jlc3BvbnNlRGF0YT8udXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzPy5sb2NhbGl0eU5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZGV0YWlsc1wiPnt7cmVzcG9uc2VEYXRhPy51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3M/LmNpdHlOYW1lfX0sXG4gICAgICAgICAgICAgIHt7cmVzcG9uc2VEYXRhPy51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3M/LnN0YXRlTmFtZX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1kZXRhaWxzXCI+e3tyZXNwb25zZURhdGE/LnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcz8uY291bnRyeU5hbWV9fSAtXG4gICAgICAgICAgICAgIHt7cmVzcG9uc2VEYXRhPy51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3M/LnppcENvZGV9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZGV0YWlsc1wiIHN0eWxlPVwibWFyZ2luLXRvcDogNXB4O1wiPlBob25lIDogPHNwYW5cbiAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtd2VpZ2h0OiA1MDA7XCI+e3tyZXNwb25zZURhdGE/LnVzZXJEZXRhaWxzLm1vYmlsZX19PC9zcGFuPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9mZnNldC1tZC0xIGNvbC1tZC00IGNvbC0xMiByaWdodC1zZWN0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoaXBwaW5nLWxhYmVsIGhlYWRpbmctbGFyZ2UgbGgtbm9ybWFsXCI+XG4gICAgICAgICAgICBQcmljZSBEZXRhaWxzXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLWRldGFpbHNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1wYXJlbnQtYmxvY2tcIiAqbmdJZj1cInJlc3BvbnNlRGF0YT8uYmlsbGRldGFpbHM/LnRvdGFsTmV0VmFsdWVcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXR5cGVcIj5Ub3RhbCBNUlA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCI+PHNwYW4gW2lubmVySHRtbF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7cmVzcG9uc2VEYXRhLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWV9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcGFyZW50LWJsb2NrXCIgKm5nSWY9XCJyZXNwb25zZURhdGE/LmJpbGxkZXRhaWxzPy50b3RhbFRheFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdHlwZVwiPlRvdGFsIFRheDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdmFsdWVcIj48c3BhbiBbaW5uZXJIdG1sXT0nY3VycmVuY3knPjwvc3Bhbj4ge3tyZXNwb25zZURhdGE/LmJpbGxkZXRhaWxzPy50b3RhbFRheH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1wYXJlbnQtYmxvY2tcIiAqbmdJZj1cImxpdmVEZWxpdmVyeUVzdGltYXRlXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS10eXBlXCI+RGVsaXZlcnk8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJsaXZlRGVsaXZlcnlFc3RpbWF0ZS5jaGFyZ2UgPiAwXCI+PHNwYW4gW2lubmVySHRtbF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7bGl2ZURlbGl2ZXJ5RXN0aW1hdGUuY2hhcmdlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJsaXZlRGVsaXZlcnlFc3RpbWF0ZS5jaGFyZ2UgPT0gMFwiPkZSRUU8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcGFyZW50LWJsb2NrXCIgc3R5bGU9XCJmb250LXNpemU6IDExcHg7IGNvbG9yOiAjOWNhM2FmO1wiICpuZ0lmPVwibGl2ZURlbGl2ZXJ5RXN0aW1hdGU/LmV0YVwiPlxuICAgICAgICAgICAgICB7e2xpdmVEZWxpdmVyeUVzdGltYXRlPy5ldGF9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcGFyZW50LWJsb2NrXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhbGl2ZURlbGl2ZXJ5RXN0aW1hdGUgJiYgcmVzcG9uc2VEYXRhPy5iaWxsZGV0YWlscz8uZGVsaXZlcnlDaGFyZ2VzICYmIHJlc3BvbnNlRGF0YS5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXMgPiAwXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS10eXBlXCI+RGVsaXZlcnkgQ2hhcmdlPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS12YWx1ZVwiPjxzcGFuIFtpbm5lckh0bWxdPSdjdXJyZW5jeSc+PC9zcGFuPiB7e3Jlc3BvbnNlRGF0YS5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXN9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aHI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcGFyZW50LWJsb2NrXCIgKm5nSWY9XCJyZXNwb25zZURhdGE/LnRvdGFsQW1vdW50XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS10eXBlXCIgc3R5bGU9XCJjb2xvcjogYmxhY2s7Zm9udC13ZWlnaHQ6IDYwMDtcIj5Ub3RhbCBBbW91bnQ8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCIgc3R5bGU9XCJmb250LXdlaWdodDogNjAwO1wiPjxzcGFuIFtpbm5lckh0bWxdPSdjdXJyZW5jeSc+PC9zcGFuPiB7e2Rpc3BsYXlUb3RhbEFtb3VudH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBzaW1wb0J1dHRvbkRpcmVjdGl2ZSBbaWRdPVwiZGF0YT8uaWQrKGJ1dHRvbj8uaWQgfHwgJycpXCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbj8uc3R5bGVzXCIgW2JhY2tncm91bmRJbmZvXT1cInN0eWxlcz8uYmFja2dyb3VuZFwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cInN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiAoY2xpY2spPVwicGxhY2VPcmRlcigpXCI+e3tjb250ZW50Py5idXR0b259fTwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5kZXZpZGVyPy5kaXNwbGF5XCI+XG4gICAgPHNpbXBvLXN2Zy1kaXZpZGVyIFtkaXZpZGVyVHlwZV09XCJzdHlsZT8uZGV2aWRlcj8uZGV2aWRlclR5cGVcIiBbY29sb3JdPVwibmV4dENvbXBvbmVudENvbG9yPy5jb2xvclwiPjwvc2ltcG8tc3ZnLWRpdmlkZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cbiAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XG4gICAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XG4gICAgPC9kaXY+XG5cbiAgPC9zZWN0aW9uPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZ3gtc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XG4gIHdpZHRoOiAnMTAwJScsXG4gIGhlaWdodDogJzQwdmgnLFxuICAnYm9yZGVyLXJhZGl1cyc6ICcxMHB4JyxcbiAgJ3Bvc2l0aW9uJzogJ3JlbGF0aXZlJyxcbiAgJ3JpZ2h0JzogJzVweCdcbn1cIj5cbjwvbmd4LXNrZWxldG9uLWxvYWRlcj5cblxuIl19
|