tango-app-ui-manage-billing 3.3.0-alpha.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/README.md +29 -0
- package/esm2022/lib/components/services/billing.service.mjs +111 -0
- package/esm2022/lib/components/tango-manage-billing/credit-note/credit-note.component.mjs +168 -0
- package/esm2022/lib/components/tango-manage-billing/one-time-fee/one-time-fee.component.mjs +173 -0
- package/esm2022/lib/components/tango-manage-billing/tango-manage-billing.component.mjs +417 -0
- package/esm2022/lib/tango-manage-billing-routing.module.mjs +24 -0
- package/esm2022/lib/tango-manage-billing.module.mjs +46 -0
- package/esm2022/public-api.mjs +6 -0
- package/esm2022/tango-app-ui-manage-billing.mjs +5 -0
- package/fesm2022/tango-app-ui-manage-billing.mjs +916 -0
- package/fesm2022/tango-app-ui-manage-billing.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/services/billing.service.d.ts +36 -0
- package/lib/components/tango-manage-billing/credit-note/credit-note.component.d.ts +42 -0
- package/lib/components/tango-manage-billing/one-time-fee/one-time-fee.component.d.ts +44 -0
- package/lib/components/tango-manage-billing/tango-manage-billing.component.d.ts +89 -0
- package/lib/tango-manage-billing-routing.module.d.ts +7 -0
- package/lib/tango-manage-billing.module.d.ts +14 -0
- package/package.json +25 -0
- package/public-api.d.ts +2 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, HostListener } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
6
|
+
import * as i2 from "../../services/billing.service";
|
|
7
|
+
import * as i3 from "@angular/forms";
|
|
8
|
+
import * as i4 from "tango-app-ui-shared";
|
|
9
|
+
import * as i5 from "@angular/common";
|
|
10
|
+
export class OneTimeFeeComponent {
|
|
11
|
+
activeModal;
|
|
12
|
+
BillingService;
|
|
13
|
+
changeDetector;
|
|
14
|
+
fb;
|
|
15
|
+
toast;
|
|
16
|
+
clientId;
|
|
17
|
+
invoiceIssue;
|
|
18
|
+
invoicetype = [];
|
|
19
|
+
invoicetypedropDown = false;
|
|
20
|
+
onetimefeeform;
|
|
21
|
+
amount = 0;
|
|
22
|
+
discount;
|
|
23
|
+
revisedAmount = 0;
|
|
24
|
+
moreThanTenPercent = false;
|
|
25
|
+
currency = '';
|
|
26
|
+
totalAmount = 0;
|
|
27
|
+
transactionvalue = "";
|
|
28
|
+
passEntry = new EventEmitter();
|
|
29
|
+
invoiceitem;
|
|
30
|
+
destroy$ = new Subject();
|
|
31
|
+
constructor(activeModal, BillingService, changeDetector, fb, toast) {
|
|
32
|
+
this.activeModal = activeModal;
|
|
33
|
+
this.BillingService = BillingService;
|
|
34
|
+
this.changeDetector = changeDetector;
|
|
35
|
+
this.fb = fb;
|
|
36
|
+
this.toast = toast;
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
this.creditnote();
|
|
40
|
+
this.onetimefeeform = this.fb.group({
|
|
41
|
+
invoicetype: ['', Validators.required],
|
|
42
|
+
amount: ['', Validators.required],
|
|
43
|
+
revisedAmount: ['', Validators.required],
|
|
44
|
+
discount: ['', [Validators.required, Validators.max(10)]],
|
|
45
|
+
});
|
|
46
|
+
this.onetimefeeform.get('revisedAmount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {
|
|
47
|
+
if (e) {
|
|
48
|
+
this.amount = this.onetimefeeform.get('amount')?.value;
|
|
49
|
+
this.discount = ((this.amount - e) / this.amount * 100).toFixed(2);
|
|
50
|
+
this.revisedAmount = e;
|
|
51
|
+
if (this.discount > 10 || isNaN(e) || this.discount < 0 || e < 0) {
|
|
52
|
+
this.moreThanTenPercent = true;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
this.moreThanTenPercent = false;
|
|
56
|
+
}
|
|
57
|
+
this.onetimefeeform.get('discount')?.setValue(this.discount, {
|
|
58
|
+
emitEvent: false
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
let emptdiscount = '';
|
|
63
|
+
this.onetimefeeform.get('discount')?.setValue(emptdiscount, {
|
|
64
|
+
emitEvent: false
|
|
65
|
+
});
|
|
66
|
+
this.moreThanTenPercent = false;
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
this.onetimefeeform.get('discount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {
|
|
70
|
+
if (e) {
|
|
71
|
+
this.amount = this.onetimefeeform.get('amount')?.value;
|
|
72
|
+
this.revisedAmount = this.amount * (1 - e / 100);
|
|
73
|
+
this.revisedAmount = parseInt(this.revisedAmount.toFixed());
|
|
74
|
+
this.discount = e;
|
|
75
|
+
if (this.discount > 10 || isNaN(e) || e < 0 || this.revisedAmount < 0) {
|
|
76
|
+
this.moreThanTenPercent = true;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.moreThanTenPercent = false;
|
|
80
|
+
}
|
|
81
|
+
this.onetimefeeform.get('revisedAmount')?.setValue(this.revisedAmount, {
|
|
82
|
+
emitEvent: false
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
let emptdiscount = '';
|
|
87
|
+
this.onetimefeeform.get('revisedAmount')?.setValue(emptdiscount, {
|
|
88
|
+
emitEvent: false
|
|
89
|
+
});
|
|
90
|
+
this.moreThanTenPercent = false;
|
|
91
|
+
}
|
|
92
|
+
this.changeDetector.detectChanges();
|
|
93
|
+
});
|
|
94
|
+
this.onetimefeeform.valueChanges.subscribe(() => this.calculateTotal());
|
|
95
|
+
}
|
|
96
|
+
get revisedamount() { return this.onetimefeeform.get('revisedAmount'); }
|
|
97
|
+
get discounts() { return this.onetimefeeform.get('discount'); }
|
|
98
|
+
ngOnDestroy() {
|
|
99
|
+
this.destroy$.next(true);
|
|
100
|
+
this.destroy$.complete();
|
|
101
|
+
}
|
|
102
|
+
creditnote() {
|
|
103
|
+
let payload = {
|
|
104
|
+
clientId: this.clientId
|
|
105
|
+
};
|
|
106
|
+
this.BillingService.pendingInvoices(payload).pipe(takeUntil(this.destroy$)).subscribe((res) => {
|
|
107
|
+
if (res && res.code == 200) {
|
|
108
|
+
this.invoiceitem = res?.data;
|
|
109
|
+
this.invoiceIssue = this.invoiceitem[0]?.invoice;
|
|
110
|
+
const amount = this.invoiceitem[0]?.amount || "";
|
|
111
|
+
this.currency = this.invoiceitem[0]?.currency || "";
|
|
112
|
+
this.onetimefeeform.patchValue({
|
|
113
|
+
amount: amount,
|
|
114
|
+
discount: this.invoiceitem?.discount
|
|
115
|
+
});
|
|
116
|
+
this.changeDetector.detectChanges();
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
invoiceItem(invoicevalue) {
|
|
121
|
+
this.onetimefeeform.patchValue({
|
|
122
|
+
amount: invoicevalue.amount,
|
|
123
|
+
...(invoicevalue?.discount ? { discount: invoicevalue?.discount } : { discount: '' }),
|
|
124
|
+
...(invoicevalue?.revisedAmount ? { revisedAmount: invoicevalue?.revisedAmount } : { revisedAmount: '' })
|
|
125
|
+
});
|
|
126
|
+
this.invoiceIssue = invoicevalue.invoice;
|
|
127
|
+
this.onetimefeeform.get('invoicetype')?.setValue(this.invoiceIssue);
|
|
128
|
+
this.invoicetypedropDown = false;
|
|
129
|
+
}
|
|
130
|
+
invoicetypeDropdown(event) {
|
|
131
|
+
event.stopPropagation();
|
|
132
|
+
this.invoicetypedropDown = !this.invoicetypedropDown;
|
|
133
|
+
this.revisedAmount;
|
|
134
|
+
}
|
|
135
|
+
successcredit() {
|
|
136
|
+
const requestData = {
|
|
137
|
+
oneTimeFee: this.revisedAmount
|
|
138
|
+
};
|
|
139
|
+
this.BillingService.oneTimeFee(requestData, this.invoiceIssue).pipe(takeUntil(this.destroy$)).subscribe((res) => {
|
|
140
|
+
if (res && res.code == 200) {
|
|
141
|
+
this.activeModal.close('successcredit');
|
|
142
|
+
// this.toast.getPrimaryToast(res.message);
|
|
143
|
+
this.changeDetector.detectChanges();
|
|
144
|
+
}
|
|
145
|
+
}, (error) => {
|
|
146
|
+
console.error('Error submitting update:', error);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
onDocumentClick(event) {
|
|
150
|
+
this.invoicetypedropDown = false;
|
|
151
|
+
}
|
|
152
|
+
calculateTotal() {
|
|
153
|
+
const amount = parseFloat(this.onetimefeeform.get('amount')?.value || '0');
|
|
154
|
+
const revisedAmount = parseFloat(this.onetimefeeform.get('revisedAmount')?.value || '0');
|
|
155
|
+
this.totalAmount = parseFloat((amount + revisedAmount).toFixed(2));
|
|
156
|
+
}
|
|
157
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneTimeFeeComponent, deps: [{ token: i1.NgbActiveModal }, { token: i2.BillingService }, { token: i0.ChangeDetectorRef }, { token: i3.FormBuilder }, { token: i4.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
158
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: OneTimeFeeComponent, selector: "app-one-time-fee", inputs: { clientId: "clientId", transactionvalue: "transactionvalue" }, outputs: { passEntry: "passEntry" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"modal-content\">\r\n <div class=\"p-5 px-6\">\r\n <!-- <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div> -->\r\n <div class=\"heading mt-4 ms-1\">Add One Time Fee</div>\r\n <div class=\"contenttext mt-4\">\r\n You have the flexibility to select a month in which the brand can make credit payments.\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body mb-8\">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"onetimefeeform\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"form-group py-2\">\r\n <label for=\"invoicetype\" class=\"headingtext mb-2\">Invoice ID</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"invoicetype\" (click)=\"invoicetypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceIssue}}</div>\r\n <div *ngIf=\"invoicetypedropDown\"\r\n class=\"card py-2 w-100 invoiceidselect position-absolute end-0 z-1 invoiceDropDown\">\r\n <ul *ngFor=\"let item of invoiceitem\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceIssue === item?.invoice ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"invoiceItem(item)\">\r\n {{item?.invoice}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div for=\"amount\" class=\"form-group py-2\">\r\n <label class=\" headingtext mb-2 \">Current Invoice Amount</label>\r\n <div class=\"input-group\">\r\n <!-- <span class=\"dollar-sign amount\">\u20B9</span> -->\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">\u20B9</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span>\r\n <input formControlName=\"amount\" type=\"text\"\r\n readonly class=\"ng-pristine ng-invalid ng-touched amount\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n\r\n </div>\r\n <div for=\"revisedAmount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\">One Time Fee (Installation) </label>\r\n <div class=\"input-group dropselect\">\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">\u20B9</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span><input type=\"text\" formControlName=\"revisedAmount\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n </div>\r\n <!-- <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">More than 10% can\u2019t be revised from total amount</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">More than 10% can\u2019t be revised from total amount</span> -->\r\n </div>\r\n <div class=\"d-flex flex-stack mt-3\">\r\n <div class=\"selectedinvoicetext me-2\">Selected Invoice Amount + One Time Fee</div>\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"selectedinvoicevalue\">{{currency === 'inr' ? '\u20B9' : '$'}}{{totalAmount.toFixed(2)}}</span>\r\n </div>\r\n </div>\r\n <!-- <div class=\"d-flex flex-stack\">\r\n <div class=\"selectedinvoicetext me-2\">Selected Invoice Amount + One Time Fee</div>\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"selectedinvoicevalue\">\u20B923,000</span>\r\n </div>\r\n </div> -->\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"successcredit()\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Apply </span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}input{color:#101828;border:1px solid #D0D5DD!important;box-shadow:0 1px 2px #1018280d;border-radius:8px;font-size:16px;width:100%;padding:10px 14px;font-family:Inter;font-weight:400;line-height:24px}input:active,input:focus,input:focus-visible{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)!important;box-shadow:0 1px 2px #1018280d;outline:none!important;background:var(--Gray-50, #F9FAFB)}.cancel{color:var(--Gray-700, #344054);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:16px!important;font-weight:400!important;line-height:24px;height:45px!important}.totalamount{color:var(--Gray-500, #667085)!important;font-family:Inter;font-size:16px!important;font-weight:400;line-height:24px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.errorinput{border-radius:8px;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.errorinput:focus{border:1px solid var(--Error-300, #FDA29B)!important}.input-group .dollar-sign{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--Gray-900, #101828);font-family:Inter;font-size:16px;font-weight:400!important;line-height:24px}.input-group input[type=text]{padding-left:30px}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){border-radius:8px!important}.text-danger{color:var(--Error-500, #F04438)!important;font-family:Inter;font-size:14px!important;font-weight:400;line-height:20px}.input-group{position:relative}.input-group>.icon{position:absolute;top:43%;right:16px;transform:translateY(-50%);color:silver}.input-group>input{padding-left:calc(1em + 18px)}.spritesheet{display:none}.icon{display:inline-block;width:16px!important;height:16px!important}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-radius:8px!important}.invoiceDropDown{min-height:auto!important;max-height:170px!important;overflow:auto}.selectedinvoicetext{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.selectedinvoicevalue{color:var(--Gray-900, #101828);font-size:20px;font-style:normal;font-weight:600;line-height:30px}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
159
|
+
}
|
|
160
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneTimeFeeComponent, decorators: [{
|
|
161
|
+
type: Component,
|
|
162
|
+
args: [{ selector: 'app-one-time-fee', template: "<div class=\"modal-content\">\r\n <div class=\"p-5 px-6\">\r\n <!-- <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div> -->\r\n <div class=\"heading mt-4 ms-1\">Add One Time Fee</div>\r\n <div class=\"contenttext mt-4\">\r\n You have the flexibility to select a month in which the brand can make credit payments.\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body mb-8\">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"onetimefeeform\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"form-group py-2\">\r\n <label for=\"invoicetype\" class=\"headingtext mb-2\">Invoice ID</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"invoicetype\" (click)=\"invoicetypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceIssue}}</div>\r\n <div *ngIf=\"invoicetypedropDown\"\r\n class=\"card py-2 w-100 invoiceidselect position-absolute end-0 z-1 invoiceDropDown\">\r\n <ul *ngFor=\"let item of invoiceitem\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceIssue === item?.invoice ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"invoiceItem(item)\">\r\n {{item?.invoice}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div for=\"amount\" class=\"form-group py-2\">\r\n <label class=\" headingtext mb-2 \">Current Invoice Amount</label>\r\n <div class=\"input-group\">\r\n <!-- <span class=\"dollar-sign amount\">\u20B9</span> -->\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">\u20B9</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span>\r\n <input formControlName=\"amount\" type=\"text\"\r\n readonly class=\"ng-pristine ng-invalid ng-touched amount\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n\r\n </div>\r\n <div for=\"revisedAmount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\">One Time Fee (Installation) </label>\r\n <div class=\"input-group dropselect\">\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">\u20B9</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span><input type=\"text\" formControlName=\"revisedAmount\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n </div>\r\n <!-- <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">More than 10% can\u2019t be revised from total amount</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">More than 10% can\u2019t be revised from total amount</span> -->\r\n </div>\r\n <div class=\"d-flex flex-stack mt-3\">\r\n <div class=\"selectedinvoicetext me-2\">Selected Invoice Amount + One Time Fee</div>\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"selectedinvoicevalue\">{{currency === 'inr' ? '\u20B9' : '$'}}{{totalAmount.toFixed(2)}}</span>\r\n </div>\r\n </div>\r\n <!-- <div class=\"d-flex flex-stack\">\r\n <div class=\"selectedinvoicetext me-2\">Selected Invoice Amount + One Time Fee</div>\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"selectedinvoicevalue\">\u20B923,000</span>\r\n </div>\r\n </div> -->\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"successcredit()\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Apply </span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}input{color:#101828;border:1px solid #D0D5DD!important;box-shadow:0 1px 2px #1018280d;border-radius:8px;font-size:16px;width:100%;padding:10px 14px;font-family:Inter;font-weight:400;line-height:24px}input:active,input:focus,input:focus-visible{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)!important;box-shadow:0 1px 2px #1018280d;outline:none!important;background:var(--Gray-50, #F9FAFB)}.cancel{color:var(--Gray-700, #344054);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:16px!important;font-weight:400!important;line-height:24px;height:45px!important}.totalamount{color:var(--Gray-500, #667085)!important;font-family:Inter;font-size:16px!important;font-weight:400;line-height:24px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.errorinput{border-radius:8px;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.errorinput:focus{border:1px solid var(--Error-300, #FDA29B)!important}.input-group .dollar-sign{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--Gray-900, #101828);font-family:Inter;font-size:16px;font-weight:400!important;line-height:24px}.input-group input[type=text]{padding-left:30px}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){border-radius:8px!important}.text-danger{color:var(--Error-500, #F04438)!important;font-family:Inter;font-size:14px!important;font-weight:400;line-height:20px}.input-group{position:relative}.input-group>.icon{position:absolute;top:43%;right:16px;transform:translateY(-50%);color:silver}.input-group>input{padding-left:calc(1em + 18px)}.spritesheet{display:none}.icon{display:inline-block;width:16px!important;height:16px!important}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-radius:8px!important}.invoiceDropDown{min-height:auto!important;max-height:170px!important;overflow:auto}.selectedinvoicetext{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.selectedinvoicevalue{color:var(--Gray-900, #101828);font-size:20px;font-style:normal;font-weight:600;line-height:30px}\n"] }]
|
|
163
|
+
}], ctorParameters: () => [{ type: i1.NgbActiveModal }, { type: i2.BillingService }, { type: i0.ChangeDetectorRef }, { type: i3.FormBuilder }, { type: i4.ToastService }], propDecorators: { clientId: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}], transactionvalue: [{
|
|
166
|
+
type: Input
|
|
167
|
+
}], passEntry: [{
|
|
168
|
+
type: Output
|
|
169
|
+
}], onDocumentClick: [{
|
|
170
|
+
type: HostListener,
|
|
171
|
+
args: ['document:click', ['$event']]
|
|
172
|
+
}] } });
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLXRpbWUtZmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1iaWxsaW5nL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1tYW5hZ2UtYmlsbGluZy9vbmUtdGltZS1mZWUvb25lLXRpbWUtZmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1iaWxsaW5nL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1tYW5hZ2UtYmlsbGluZy9vbmUtdGltZS1mZWUvb25lLXRpbWUtZmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVcsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWdDLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc1SCxPQUFPLEVBQTBCLFVBQVUsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBR2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTzFDLE1BQU0sT0FBTyxtQkFBbUI7SUFxQnJCO0lBQW9DO0lBQXdDO0lBQTBDO0lBQXdCO0lBcEI5SSxRQUFRLENBQUs7SUFDdEIsWUFBWSxDQUFNO0lBQ2xCLFdBQVcsR0FBc0MsRUFBRSxDQUFDO0lBQ3BELG1CQUFtQixHQUFXLEtBQUssQ0FBQztJQUNwQyxjQUFjLENBQVk7SUFDMUIsTUFBTSxHQUFXLENBQUMsQ0FBQztJQUNuQixRQUFRLENBQU07SUFDZCxhQUFhLEdBQVcsQ0FBQyxDQUFBO0lBQ3pCLGtCQUFrQixHQUFXLEtBQUssQ0FBQztJQUNuQyxRQUFRLEdBQVcsRUFBRSxDQUFDO0lBQ3RCLFdBQVcsR0FBVyxDQUFDLENBQUM7SUFFakIsZ0JBQWdCLEdBQVcsRUFBRSxDQUFBO0lBRTFCLFNBQVMsR0FBc0IsSUFB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QixLQUFLO2dCQVlDLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFTSxTQUFTO3NCQUFsQixNQUFNO2dCQWdJUCxlQUFlO3NCQURkLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsICBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uRGVzdHJveSwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgbGVmdCB9IGZyb20gJ0Bwb3BwZXJqcy9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJpbGxpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmlsbGluZy5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtb25lLXRpbWUtZmVlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vb25lLXRpbWUtZmVlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vb25lLXRpbWUtZmVlLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgT25lVGltZUZlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGNsaWVudElkOmFueTtcclxuICBpbnZvaWNlSXNzdWU6IGFueTtcclxuICBpbnZvaWNldHlwZTogeyBuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfVtdID0gW107IFxyXG4gIGludm9pY2V0eXBlZHJvcERvd246Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIG9uZXRpbWVmZWVmb3JtOiBGb3JtR3JvdXA7XHJcbiAgYW1vdW50OiBudW1iZXIgPSAwO1xyXG4gIGRpc2NvdW50OiBhbnk7XHJcbiAgcmV2aXNlZEFtb3VudDogbnVtYmVyID0gMFxyXG4gIG1vcmVUaGFuVGVuUGVyY2VudDpib29sZWFuID0gZmFsc2U7XHJcbiAgY3VycmVuY3k6IHN0cmluZyA9ICcnO1xyXG4gIHRvdGFsQW1vdW50OiBudW1iZXIgPSAwO1xyXG5cclxuQElucHV0KCkgdHJhbnNhY3Rpb252YWx1ZTogc3RyaW5nID0gXCJcIlxyXG5cclxuICBAT3V0cHV0KCkgcGFzc0VudHJ5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBpbnZvaWNlaXRlbTogYW55O1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCxwcml2YXRlIEJpbGxpbmdTZXJ2aWNlOiBCaWxsaW5nU2VydmljZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIscHJpdmF0ZSB0b2FzdDpUb2FzdFNlcnZpY2VcclxuICApIHsgXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlZGl0bm90ZSgpO1xyXG4gICAgdGhpcy5vbmV0aW1lZmVlZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBpbnZvaWNldHlwZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgYW1vdW50OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLCBcclxuICAgICAgcmV2aXNlZEFtb3VudDpbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdICxcclxuICAgICAgZGlzY291bnQ6IFsnJyxbIFZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4KDEwKV1dLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLm9uZXRpbWVmZWVmb3JtLmdldCgncmV2aXNlZEFtb3VudCcpPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZihlKSB7IFxyXG4gICAgICAgIHRoaXMuYW1vdW50ID0gdGhpcy5vbmV0aW1lZmVlZm9ybS5nZXQoJ2Ftb3VudCcpPy52YWx1ZTtcclxuICAgICAgICB0aGlzLmRpc2NvdW50ID0gKCh0aGlzLmFtb3VudCAtIGUpIC8gdGhpcy5hbW91bnQgKiAxMDApLnRvRml4ZWQoMik7XHJcbiAgICAgICAgdGhpcy5yZXZpc2VkQW1vdW50PWU7XHJcbiAgICAgICAgaWYodGhpcy5kaXNjb3VudD4xMCB8fCBpc05hTihlKSB8fCB0aGlzLmRpc2NvdW50IDwgMCB8fCBlIDwgMCl7XHJcbiAgICAgICAgICB0aGlzLm1vcmVUaGFuVGVuUGVyY2VudCA9IHRydWU7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubW9yZVRoYW5UZW5QZXJjZW50ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub25ldGltZWZlZWZvcm0uZ2V0KCdkaXNjb3VudCcpPy5zZXRWYWx1ZSh0aGlzLmRpc2NvdW50LCB7XHJcbiAgICAgICAgICBlbWl0RXZlbnRcclxuICAgICAgICAgICAgOiBmYWxzZSB9KTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgbGV0IGVtcHRkaXNjb3VudCA9ICcnXHJcbiAgICAgICAgdGhpcy5vbmV0aW1lZmVlZm9ybS5nZXQoJ2Rpc2NvdW50Jyk/LnNldFZhbHVlKGVtcHRkaXNjb3VudCwge1xyXG4gICAgICAgICAgZW1pdEV2ZW50XHJcbiAgICAgICAgICAgIDogZmFsc2UgfSk7XHJcbiAgICAgICAgICB0aGlzLm1vcmVUaGFuVGVuUGVyY2VudCA9IGZhbHNlOyBcclxuICAgICAgfSBcclxuICAgIH0pXHJcbiAgICBcclxuICAgIHRoaXMub25ldGltZWZlZWZvcm0uZ2V0KCdkaXNjb3VudCcpPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZihlKSB7XHJcbiAgICAgICAgdGhpcy5hbW91bnQgPSB0aGlzLm9uZXRpbWVmZWVmb3JtLmdldCgnYW1vdW50Jyk/LnZhbHVlO1xyXG4gICAgICAgIHRoaXMucmV2aXNlZEFtb3VudCA9IHRoaXMuYW1vdW50ICogKDEgLSBlIC8gMTAwKTtcclxuICAgICAgICB0aGlzLnJldmlzZWRBbW91bnQgPSBwYXJzZUludCh0aGlzLnJldmlzZWRBbW91bnQudG9GaXhlZCgpKVxyXG4gICAgICAgIHRoaXMuZGlzY291bnQ9ZTtcclxuICAgICAgICBpZiAodGhpcy5kaXNjb3VudD4xMCB8fCBpc05hTihlKSB8fCBlIDwgMCB8fCB0aGlzLnJldmlzZWRBbW91bnQgPCAwKXtcclxuICAgICAgICAgIHRoaXMubW9yZVRoYW5UZW5QZXJjZW50ID0gdHJ1ZTsgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tb3JlVGhhblRlblBlcmNlbnQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vbmV0aW1lZmVlZm9ybS5nZXQoJ3JldmlzZWRBbW91bnQnKT8uc2V0VmFsdWUodGhpcy5yZXZpc2VkQW1vdW50LCB7XHJcbiAgICAgICAgICBlbWl0RXZlbnRcclxuICAgICAgICAgIDogZmFsc2UgfSk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGxldCBlbXB0ZGlzY291bnQgPSAnJ1xyXG4gICAgICAgIHRoaXMub25ldGltZWZlZWZvcm0uZ2V0KCdyZXZpc2VkQW1vdW50Jyk/LnNldFZhbHVlKGVtcHRkaXNjb3VudCwge1xyXG4gICAgICAgICAgZW1pdEV2ZW50XHJcbiAgICAgICAgICAgIDogZmFsc2UgfSk7XHJcbiAgICAgICAgdGhpcy5tb3JlVGhhblRlblBlcmNlbnQgPSBmYWxzZTsgXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgfSlcclxuICAgIHRoaXMub25ldGltZWZlZWZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNhbGN1bGF0ZVRvdGFsKCkpO1xyXG4gIH1cclxuICBnZXQgcmV2aXNlZGFtb3VudCgpIHsgcmV0dXJuIHRoaXMub25ldGltZWZlZWZvcm0uZ2V0KCdyZXZpc2VkQW1vdW50Jyk7IH1cclxuICBnZXQgZGlzY291bnRzKCkgeyByZXR1cm4gdGhpcy5vbmV0aW1lZmVlZm9ybS5nZXQoJ2Rpc2NvdW50Jyk7IH1cclxuICBcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGNyZWRpdG5vdGUoKXtcclxuICAgIGxldCBwYXlsb2FkOmFueT17XHJcbiAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWRcclxuICAgIH1cclxuICB0aGlzLkJpbGxpbmdTZXJ2aWNlLnBlbmRpbmdJbnZvaWNlcyhwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIHRoaXMuaW52b2ljZWl0ZW0gPSByZXM/LmRhdGE7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlSXNzdWUgPSB0aGlzLmludm9pY2VpdGVtWzBdPy5pbnZvaWNlO1xyXG4gICAgICAgIGNvbnN0IGFtb3VudCA9IHRoaXMuaW52b2ljZWl0ZW1bMF0/LmFtb3VudCB8fCBcIlwiO1xyXG4gICAgICAgIHRoaXMuY3VycmVuY3kgPSB0aGlzLmludm9pY2VpdGVtWzBdPy5jdXJyZW5jeSB8fCBcIlwiO1xyXG4gICAgICAgIHRoaXMub25ldGltZWZlZWZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICBhbW91bnQ6IGFtb3VudCxcclxuICAgICAgICAgIGRpc2NvdW50OnRoaXMuaW52b2ljZWl0ZW0/LmRpc2NvdW50XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgfSk7XHJcbiAgfVxyXG5cclxuICBpbnZvaWNlSXRlbShpbnZvaWNldmFsdWU6YW55KXtcclxuICAgIHRoaXMub25ldGltZWZlZWZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgIGFtb3VudDogaW52b2ljZXZhbHVlLmFtb3VudCxcclxuICAgICAgLi4uKGludm9pY2V2YWx1ZT8uZGlzY291bnQgPyB7ZGlzY291bnQ6aW52b2ljZXZhbHVlPy5kaXNjb3VudH0gOiB7ZGlzY291bnQ6Jyd9KSxcclxuICAgICAgLi4uKGludm9pY2V2YWx1ZT8ucmV2aXNlZEFtb3VudCA/IHtyZXZpc2VkQW1vdW50Omludm9pY2V2YWx1ZT8ucmV2aXNlZEFtb3VudH0gOiB7cmV2aXNlZEFtb3VudDonJ30pXHJcbiAgICB9KTtcclxuICAgIHRoaXMuaW52b2ljZUlzc3VlID0gaW52b2ljZXZhbHVlLmludm9pY2U7XHJcbiAgICB0aGlzLm9uZXRpbWVmZWVmb3JtLmdldCgnaW52b2ljZXR5cGUnKT8uc2V0VmFsdWUodGhpcy5pbnZvaWNlSXNzdWUpXHJcbiAgICB0aGlzLmludm9pY2V0eXBlZHJvcERvd24gPSBmYWxzZTtcclxuICB9XHJcbiAgaW52b2ljZXR5cGVEcm9wZG93bihldmVudDpNb3VzZUV2ZW50KXtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5pbnZvaWNldHlwZWRyb3BEb3duID0gIXRoaXMuaW52b2ljZXR5cGVkcm9wRG93bjtcclxuICAgIHRoaXMucmV2aXNlZEFtb3VudCAgIFxyXG4gIH1cclxuICBzdWNjZXNzY3JlZGl0KCkge1xyXG4gICAgY29uc3QgcmVxdWVzdERhdGEgPSB7XHJcbiAgICAgIG9uZVRpbWVGZWU6dGhpcy5yZXZpc2VkQW1vdW50XHJcbiAgICB9O1xyXG4gICAgdGhpcy5CaWxsaW5nU2VydmljZS5vbmVUaW1lRmVlKHJlcXVlc3REYXRhLHRoaXMuaW52b2ljZUlzc3VlKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlICgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdzdWNjZXNzY3JlZGl0Jyk7XHJcbiAgICAgICAgLy8gdGhpcy50b2FzdC5nZXRQcmltYXJ5VG9hc3QocmVzLm1lc3NhZ2UpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgIH19LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzdWJtaXR0aW5nIHVwZGF0ZTonLCBlcnJvcik7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG4gIFxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgdGhpcy5pbnZvaWNldHlwZWRyb3BEb3duID0gZmFsc2U7XHJcbiAgfVxyXG4gIGNhbGN1bGF0ZVRvdGFsKCk6IHZvaWQge1xyXG4gICAgY29uc3QgYW1vdW50ID0gcGFyc2VGbG9hdCh0aGlzLm9uZXRpbWVmZWVmb3JtLmdldCgnYW1vdW50Jyk/LnZhbHVlIHx8ICcwJyk7XHJcbiAgICBjb25zdCByZXZpc2VkQW1vdW50ID0gcGFyc2VGbG9hdCh0aGlzLm9uZXRpbWVmZWVmb3JtLmdldCgncmV2aXNlZEFtb3VudCcpPy52YWx1ZSB8fCAnMCcpOyBcclxuICAgIHRoaXMudG90YWxBbW91bnQgPSBwYXJzZUZsb2F0KChhbW91bnQgKyByZXZpc2VkQW1vdW50KS50b0ZpeGVkKDIpKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwLTUgcHgtNlwiPlxyXG4gICAgICAgIDwhLS0gPGRpdj48aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL2N1c3RvbXBvcHVwLUljb25zL3BsdXMtaWNvbi5zdmdcIiBhbHQ9XCJcIj48L2Rpdj4gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmcgbXQtNCBtcy0xXCI+QWRkIE9uZSBUaW1lIEZlZTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50dGV4dCBtdC00XCI+XHJcbiAgICAgICAgICAgIFlvdSBoYXZlIHRoZSBmbGV4aWJpbGl0eSB0byBzZWxlY3QgYSBtb250aCBpbiB3aGljaCB0aGUgYnJhbmQgY2FuIG1ha2UgY3JlZGl0IHBheW1lbnRzLlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgbWItOFwiPlxyXG4gICAgICAgIDwhLS1iZWdpbjo6Rm9ybS0tPlxyXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwib25ldGltZWZlZWZvcm1cIiBjbGFzcz1cImZvcm0gZnYtcGx1Z2lucy1ib290c3RyYXA1IGZ2LXBsdWdpbnMtZnJhbWV3b3JrXCIgYWN0aW9uPVwiI1wiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmdi1yb3cgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNldHlwZVwiIGNsYXNzPVwiaGVhZGluZ3RleHQgbWItMlwiPkludm9pY2UgSUQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1zZWxlY3QgZHJvcHNlbGVjdFwiIGlkPVwiaW52b2ljZXR5cGVcIiAoY2xpY2spPVwiaW52b2ljZXR5cGVEcm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJEZWZhdWx0IHNlbGVjdCBleGFtcGxlXCI+e3tpbnZvaWNlSXNzdWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaW52b2ljZXR5cGVkcm9wRG93blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhcmQgcHktMiB3LTEwMCBpbnZvaWNlaWRzZWxlY3QgcG9zaXRpb24tYWJzb2x1dGUgZW5kLTAgei0xIGludm9pY2VEcm9wRG93blwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBpdGVtIG9mIGludm9pY2VpdGVtXCIgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwidGhpcy5pbnZvaWNlSXNzdWUgPT09IGl0ZW0/Lmludm9pY2UgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9kdWN0dGV4dCBweC01IGl0ZW1zIGN1cnNvci1wb2ludGVyIHB5LTRcIiAoY2xpY2spPVwiaW52b2ljZUl0ZW0oaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtPy5pbnZvaWNlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZm9yPVwiYW1vdW50XCIgY2xhc3M9XCJmb3JtLWdyb3VwIHB5LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCIgaGVhZGluZ3RleHQgbWItMiBcIj5DdXJyZW50IEludm9pY2UgQW1vdW50PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cImRvbGxhci1zaWduIGFtb3VudFwiPuKCuTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY3VycmVuY3kgPT09ICdpbnInXCIgY2xhc3M9XCJkb2xsYXItc2lnblwiPuKCuTwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1cnJlbmN5ID09PSAnZG9sbGFyJ1wiIGNsYXNzPVwiZG9sbGFyLXNpZ25cIj4kPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiYW1vdW50XCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHkgY2xhc3M9XCJuZy1wcmlzdGluZSBuZy1pbnZhbGlkIG5nLXRvdWNoZWQgYW1vdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZvcj1cInJldmlzZWRBbW91bnRcIiBjbGFzcz1cImZvcm0tZ3JvdXAgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIiBoZWFkaW5ndGV4dCBtYi0yXCI+T25lIFRpbWUgRmVlIChJbnN0YWxsYXRpb24pIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBkcm9wc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImN1cnJlbmN5ID09PSAnaW5yJ1wiIGNsYXNzPVwiZG9sbGFyLXNpZ25cIj7igrk8L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VycmVuY3kgPT09ICdkb2xsYXInXCIgY2xhc3M9XCJkb2xsYXItc2lnblwiPiQ8L3NwYW4+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwicmV2aXNlZEFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiAqbmdJZj1cIiFtb3JlVGhhblRlblBlcmNlbnRcIiAgY2xhc3M9XCJoZWFkaW5ndGV4dCBjb250ZW50dGV4dFwiPk1vcmUgdGhhbiAxMCUgY2Fu4oCZdCBiZSByZXZpc2VkIGZyb20gdG90YWwgYW1vdW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibW9yZVRoYW5UZW5QZXJjZW50XCIgY2xhc3M9XCJ0ZXh0LWRhbmdlciBjb250ZW50dGV4dFwiPk1vcmUgdGhhbiAxMCUgY2Fu4oCZdCBiZSByZXZpc2VkIGZyb20gdG90YWwgYW1vdW50PC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXN0YWNrIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRpbnZvaWNldGV4dCBtZS0yXCI+U2VsZWN0ZWQgSW52b2ljZSBBbW91bnQgKyBPbmUgVGltZSBGZWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGVjdGVkaW52b2ljZXZhbHVlXCI+e3tjdXJyZW5jeSA9PT0gJ2lucicgPyAn4oK5JyA6ICckJ319e3t0b3RhbEFtb3VudC50b0ZpeGVkKDIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXN0YWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkaW52b2ljZXRleHQgbWUtMlwiPlNlbGVjdGVkIEludm9pY2UgQW1vdW50ICsgT25lIFRpbWUgRmVlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWxlY3RlZGludm9pY2V2YWx1ZVwiPuKCuTIzLDAwMDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImFjdGl2ZU1vZGFsLmRpc21pc3MoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tb3V0bGluZSBidG4gY2FuY2VsIG1lLTQgdy01MFwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzdWNjZXNzY3JlZGl0KClcIiB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTQgbmctc3Rhci1pbnNlcnRlZCB3LTUwXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VibWl0XCI+QXBwbHkgPC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|