tango-app-ui-analyse-trax 3.0.0-dev → 3.3.1-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/esm2022/lib/components/add-checklist/add-checklist.component.mjs +1389 -0
- package/esm2022/lib/components/checklist/checklist.component.mjs +235 -0
- package/esm2022/lib/components/checklist-configure/checklist-configure.component.mjs +1809 -0
- package/esm2022/lib/components/dashboard/dashboard.component.mjs +515 -0
- package/esm2022/lib/components/dashboard-info/dashboard-info.component.mjs +503 -0
- package/esm2022/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.mjs +169 -0
- package/esm2022/lib/components/flags/flags.component.mjs +188 -0
- package/esm2022/lib/components/flags/flags.interface.mjs +2 -0
- package/esm2022/lib/components/flags-info/flags-info.component.mjs +257 -0
- package/esm2022/lib/components/flags-info/flags-info.interface.mjs +2 -0
- package/esm2022/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.mjs +71 -0
- package/esm2022/lib/components/gallery/gallery.component.mjs +280 -0
- package/esm2022/lib/components/managechecklist/managechecklist.component.mjs +11 -0
- package/esm2022/lib/components/pagination/pagination.component.mjs +62 -0
- package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +101 -0
- package/esm2022/lib/components/reports/reports.component.mjs +204 -0
- package/esm2022/lib/components/reports/reports.interface.mjs +2 -0
- package/esm2022/lib/components/tango-analyse-trax/tango-analyse-trax.component.mjs +27 -6
- package/esm2022/lib/components/trax-store/trax-store.component.mjs +144 -0
- package/esm2022/lib/components/traxpopup/traxpopup.component.mjs +64 -0
- package/esm2022/lib/services/trax.service.mjs +200 -0
- package/esm2022/lib/tango-analyse-trax-routing.module.mjs +62 -6
- package/esm2022/lib/tango-analyse-trax.module.mjs +82 -9
- package/fesm2022/tango-app-ui-analyse-trax.mjs +6211 -24
- package/fesm2022/tango-app-ui-analyse-trax.mjs.map +1 -1
- package/lib/components/add-checklist/add-checklist.component.d.ts +91 -0
- package/lib/components/checklist/checklist.component.d.ts +38 -0
- package/lib/components/checklist-configure/checklist-configure.component.d.ts +162 -0
- package/lib/components/dashboard/dashboard.component.d.ts +62 -0
- package/lib/components/dashboard-info/dashboard-info.component.d.ts +92 -0
- package/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.d.ts +39 -0
- package/lib/components/flags/flags.component.d.ts +40 -0
- package/lib/components/flags/flags.interface.d.ts +61 -0
- package/lib/components/flags-info/flags-info.component.d.ts +50 -0
- package/lib/components/flags-info/flags-info.interface.d.ts +207 -0
- package/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.d.ts +13 -0
- package/lib/components/gallery/gallery.component.d.ts +64 -0
- package/lib/components/managechecklist/managechecklist.component.d.ts +5 -0
- package/lib/components/pagination/pagination.component.d.ts +16 -0
- package/lib/components/reactive-select/reactive-select.component.d.ts +31 -0
- package/lib/components/reports/reports.component.d.ts +43 -0
- package/lib/components/reports/reports.interface.d.ts +44 -0
- package/lib/components/tango-analyse-trax/tango-analyse-trax.component.d.ts +10 -1
- package/lib/components/trax-store/trax-store.component.d.ts +43 -0
- package/lib/components/traxpopup/traxpopup.component.d.ts +22 -0
- package/lib/services/trax.service.d.ts +65 -0
- package/lib/tango-analyse-trax.module.d.ts +23 -3
- package/package.json +1 -1
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { Component, HostListener, Input } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../services/trax.service";
|
|
5
|
+
import * as i2 from "@ng-bootstrap/ng-bootstrap";
|
|
6
|
+
import * as i3 from "tango-app-ui-shared";
|
|
7
|
+
import * as i4 from "tango-app-ui-global";
|
|
8
|
+
import * as i5 from "@angular/common";
|
|
9
|
+
import * as i6 from "@angular/forms";
|
|
10
|
+
export class TraxStoreComponent {
|
|
11
|
+
changedetector;
|
|
12
|
+
SopService;
|
|
13
|
+
dialogRef;
|
|
14
|
+
toast;
|
|
15
|
+
gs;
|
|
16
|
+
data;
|
|
17
|
+
client = "11";
|
|
18
|
+
storeList = [];
|
|
19
|
+
store;
|
|
20
|
+
selectedStore = {};
|
|
21
|
+
showDropDown = false;
|
|
22
|
+
searchStore;
|
|
23
|
+
multiSelectSettings = {
|
|
24
|
+
idField: 'id',
|
|
25
|
+
textField: 'name',
|
|
26
|
+
itemsShowLimit: 1,
|
|
27
|
+
allowSearchFilter: true,
|
|
28
|
+
singleSelection: true
|
|
29
|
+
};
|
|
30
|
+
userName = '';
|
|
31
|
+
userEmail = '';
|
|
32
|
+
detach = new Subject();
|
|
33
|
+
destroy$ = new Subject();
|
|
34
|
+
clickOutside(event) {
|
|
35
|
+
const clickedInside = event.target.closest(".dropdown-close");
|
|
36
|
+
if (!clickedInside) {
|
|
37
|
+
this.closeDropDown();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
constructor(changedetector, SopService, dialogRef, toast, gs) {
|
|
41
|
+
this.changedetector = changedetector;
|
|
42
|
+
this.SopService = SopService;
|
|
43
|
+
this.dialogRef = dialogRef;
|
|
44
|
+
this.toast = toast;
|
|
45
|
+
this.gs = gs;
|
|
46
|
+
}
|
|
47
|
+
ngAfterViewInit() {
|
|
48
|
+
let data = {
|
|
49
|
+
"clientId": [this.client],
|
|
50
|
+
"offset": 1,
|
|
51
|
+
"limit": 10000,
|
|
52
|
+
"sortColumName": "storeId",
|
|
53
|
+
"sortBy": -1,
|
|
54
|
+
"searchValue": "",
|
|
55
|
+
"export": false,
|
|
56
|
+
"status": [
|
|
57
|
+
"Live",
|
|
58
|
+
"onboarded",
|
|
59
|
+
"deployed",
|
|
60
|
+
"paired",
|
|
61
|
+
"installationfailed",
|
|
62
|
+
"Infra Issue"
|
|
63
|
+
]
|
|
64
|
+
};
|
|
65
|
+
this.SopService.getStoreList(data).subscribe((res) => {
|
|
66
|
+
console.log(res.data.result);
|
|
67
|
+
if (res && res.code == 200 && res.data.result.length) {
|
|
68
|
+
let stores = [];
|
|
69
|
+
res.data.result.forEach((item) => {
|
|
70
|
+
stores.push({
|
|
71
|
+
name: item.storeName
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
this.storeList = this.store = stores;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
this.storeList = [];
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
ngOnInit() {
|
|
82
|
+
}
|
|
83
|
+
toggleDropDown() {
|
|
84
|
+
this.showDropDown = true;
|
|
85
|
+
}
|
|
86
|
+
selectStore(event) {
|
|
87
|
+
}
|
|
88
|
+
filterSearch() {
|
|
89
|
+
if (this.searchStore.trim().length) {
|
|
90
|
+
this.storeList = this.store.filter((item) => item.name.toLowerCase().includes(this.searchStore.toLowerCase()));
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
this.storeList = [...this.store];
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
updateSelectedStore(index) {
|
|
97
|
+
this.selectedStore = this.storeList[index];
|
|
98
|
+
this.closeDropDown();
|
|
99
|
+
}
|
|
100
|
+
closeDropDown() {
|
|
101
|
+
this.showDropDown = false;
|
|
102
|
+
}
|
|
103
|
+
updatedStore() {
|
|
104
|
+
if (!this.selectedStore.name) {
|
|
105
|
+
this.toast.getErrorToast('Please Select a Store');
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
if (!this.userName.trim()) {
|
|
109
|
+
this.toast.getErrorToast('User Name is Required');
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
if (!this.userEmail.trim()) {
|
|
113
|
+
this.toast.getErrorToast('User Email is Required');
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
if (!this.userEmail.match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/)) {
|
|
117
|
+
this.toast.getErrorToast('Invalid Email Format');
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
let userData = [{
|
|
121
|
+
storeName: this.selectedStore?.name,
|
|
122
|
+
userName: this?.userName?.trim(),
|
|
123
|
+
userEmail: this?.userEmail?.toLowerCase()?.trim(),
|
|
124
|
+
userPhone: '',
|
|
125
|
+
checkFlag: true,
|
|
126
|
+
city: ''
|
|
127
|
+
}];
|
|
128
|
+
this.dialogRef.close(userData);
|
|
129
|
+
}
|
|
130
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraxStoreComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TraxService }, { token: i2.NgbActiveModal }, { token: i3.ToastService }, { token: i4.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
131
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TraxStoreComponent, selector: "lib-trax-store", inputs: { data: "data", client: "client" }, host: { listeners: { "document:click": "clickOutside($event)" } }, ngImport: i0, template: "<div class=\"storePopupcontent p-5\">\r\n <div class=\"mb-4\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\" />\r\n <path d=\"M28 21V35M21 28H35\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <span class=\"popuptitle\">Add Stores</span>\r\n <p class=\"popupsubtitle mt-3\">Finish configuring your store by providing the details below.</p>\r\n <div class=\"pt-3 position-relative\" (clickOutside)=\"closeDropDown()\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Select Store</label>\r\n <div class=\"dropdown-close\">\r\n <div class=\"w-100\">\r\n <div class=\"d-flex align-items-center position-relative w-100\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M2.68015 5.8038L2.6269 5.88697C2.06886 6.87402 2.66469 8.12144 3.7363 8.26454C3.83339 8.27641 3.92373 8.28269 4.012 8.28269C4.59015 8.28269 5.10132 8.03467 5.45759 7.64794L6.01093 7.04732L6.56238 7.64967C6.91432 8.03409 7.42433 8.28269 8.00639 8.28269C8.58583 8.28269 9.09877 8.03374 9.45039 7.64967L10.0036 7.04543L10.5568 7.64967C10.9084 8.03374 11.4213 8.28269 12.0008 8.28269C12.5802 8.28269 13.0932 8.03374 13.4448 7.64967L13.998 7.04543L14.5511 7.64967C14.9028 8.03374 15.4157 8.28269 15.9952 8.28269C16.0805 8.28269 16.1736 8.2764 16.27 8.26464C17.3652 8.11532 17.963 6.80105 17.3243 5.8043C17.3242 5.80425 17.3242 5.80419 17.3242 5.80413L15.566 3.06272L15.566 3.06272L15.5651 3.06125C15.5499 3.03742 15.5124 3.01186 15.4652 3.01186H4.53581C4.48866 3.01186 4.45117 3.03742 4.43597 3.06125L4.43535 3.06222L2.68015 5.8038ZM15.6516 10.7371V13.869V14.619H14.9016H5.09943H4.34943V13.869V10.7375C4.2392 10.7457 4.12768 10.75 4.01507 10.75C3.97276 10.75 3.93074 10.7493 3.889 10.7481V13.869V15.8035C3.889 16.4469 4.4229 16.9881 5.09943 16.9881H14.9016C15.5781 16.9881 16.112 16.4469 16.112 15.8035V13.869V10.7483C16.0722 10.7494 16.0322 10.75 15.9921 10.75C15.8777 10.75 15.7641 10.7456 15.6516 10.7371Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control dropdown-input ps-14\" [ngModel]=\"selectedStore?.name\"\r\n (click)=\"toggleDropDown()\" readonly placeholder=\"Select Store...\" />\r\n </div>\r\n </div>\r\n <div class=\"dropdown-menu custom-dropdown-menu w-100\" *ngIf=\"showDropDown\">\r\n <input type=\"text\" class=\"form-control mb-2 dropdown-search mx-3 formSeach\"\r\n placeholder=\"Search Store...\" [(ngModel)]=\"searchStore\" (ngModelChange)=\"filterSearch()\" />\r\n <div [class]=\"storeList?.length > 5 ? 'h-200px overflow-auto' : 'h-auto'\">\r\n <div class=\"dropdown-item form-check custom-dropdown-item\"\r\n *ngFor=\"let store of storeList;let i= index\" (click)=\"updateSelectedStore(i)\">\r\n <label class=\"form-check-label\" [for]=\"store.name\">\r\n {{ store.name }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"storetext mt-2\">Store that I\u2019m looking for isn\u2019t available,<a class=\"text-primary\"\r\n href=\"/store/list\"><u>Onboard Stores</u></a></div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assign To</label>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px fw-bold inputname\" placeholder=\"User Name\"\r\n [(ngModel)]=\"userName\">\r\n </div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assignee Mail ID</label>\r\n <div class=\"d-flex align-items-center position-relatives w-100\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M18.3334 4.99999C18.3334 4.08333 17.5834 3.33333 16.6667 3.33333H3.33341C2.41675 3.33333 1.66675 4.08333 1.66675 4.99999M18.3334 4.99999V15C18.3334 15.9167 17.5834 16.6667 16.6667 16.6667H3.33341C2.41675 16.6667 1.66675 15.9167 1.66675 15V4.99999M18.3334 4.99999L10.0001 10.8333L1.66675 4.99999\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px ps-14 fw-bold inputname\"\r\n placeholder=\"User Email\" [(ngModel)]=\"userEmail\">\r\n </div>\r\n </div>\r\n <div class=\"mt-6\">\r\n <button class=\"btn btn-primary w-100\" (click)=\"updatedStore()\">\r\n Add Store\r\n </button>\r\n </div>\r\n</div>", styles: [".storePopupcontent{font-family:Inter;align-items:left}.storePopupcontent .popuptitle{color:var(--gray-900, #101828);font-size:18px;font-weight:600;line-height:20px}.storePopupcontent .popupsubtitle{color:var(--gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.storePopupcontent .btn-outline{border:1px solid lightgrey}.storePopupcontent button{width:45%}.storePopupcontent .inputname{width:100%;border:none;color:#000000de;height:45px;font-size:14px!important;padding:10px 16px;border-radius:4px;outline:1px solid #D0D5DD}.label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}::ng-deep .storePopupcontent input{display:flex!important;align-items:center!important;gap:8px!important;align-self:stretch!important;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important}.btn-primary{line-height:18px!important}.position-relative{position:relative}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;width:100%;box-sizing:border-box}.dropdown-menu{position:absolute;top:100%;left:0;right:0;border:1px solid #ccc;background-color:#fff;z-index:1000;display:block;box-sizing:border-box}.dropdown-item{padding:8px 12px}.dropdown-item:hover{background-color:#f1f1f1}.dropdown-item input[type=checkbox]{margin-right:10px}.custom-dropdown-menu{border-radius:4px;box-shadow:0 1px 2px #1018280d}.custom-dropdown-item{display:flex;align-items:center}.custom-dropdown-item input{margin-left:10px}.btn-resize{font-size:13px!important;height:29px!important;line-height:11px!important;padding:3px!important}.formSeach{width:95%}.storetext{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px;text-transform:lowercase}\n"], dependencies: [{ 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: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
132
|
+
}
|
|
133
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraxStoreComponent, decorators: [{
|
|
134
|
+
type: Component,
|
|
135
|
+
args: [{ selector: 'lib-trax-store', template: "<div class=\"storePopupcontent p-5\">\r\n <div class=\"mb-4\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\" />\r\n <path d=\"M28 21V35M21 28H35\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <span class=\"popuptitle\">Add Stores</span>\r\n <p class=\"popupsubtitle mt-3\">Finish configuring your store by providing the details below.</p>\r\n <div class=\"pt-3 position-relative\" (clickOutside)=\"closeDropDown()\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Select Store</label>\r\n <div class=\"dropdown-close\">\r\n <div class=\"w-100\">\r\n <div class=\"d-flex align-items-center position-relative w-100\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M2.68015 5.8038L2.6269 5.88697C2.06886 6.87402 2.66469 8.12144 3.7363 8.26454C3.83339 8.27641 3.92373 8.28269 4.012 8.28269C4.59015 8.28269 5.10132 8.03467 5.45759 7.64794L6.01093 7.04732L6.56238 7.64967C6.91432 8.03409 7.42433 8.28269 8.00639 8.28269C8.58583 8.28269 9.09877 8.03374 9.45039 7.64967L10.0036 7.04543L10.5568 7.64967C10.9084 8.03374 11.4213 8.28269 12.0008 8.28269C12.5802 8.28269 13.0932 8.03374 13.4448 7.64967L13.998 7.04543L14.5511 7.64967C14.9028 8.03374 15.4157 8.28269 15.9952 8.28269C16.0805 8.28269 16.1736 8.2764 16.27 8.26464C17.3652 8.11532 17.963 6.80105 17.3243 5.8043C17.3242 5.80425 17.3242 5.80419 17.3242 5.80413L15.566 3.06272L15.566 3.06272L15.5651 3.06125C15.5499 3.03742 15.5124 3.01186 15.4652 3.01186H4.53581C4.48866 3.01186 4.45117 3.03742 4.43597 3.06125L4.43535 3.06222L2.68015 5.8038ZM15.6516 10.7371V13.869V14.619H14.9016H5.09943H4.34943V13.869V10.7375C4.2392 10.7457 4.12768 10.75 4.01507 10.75C3.97276 10.75 3.93074 10.7493 3.889 10.7481V13.869V15.8035C3.889 16.4469 4.4229 16.9881 5.09943 16.9881H14.9016C15.5781 16.9881 16.112 16.4469 16.112 15.8035V13.869V10.7483C16.0722 10.7494 16.0322 10.75 15.9921 10.75C15.8777 10.75 15.7641 10.7456 15.6516 10.7371Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control dropdown-input ps-14\" [ngModel]=\"selectedStore?.name\"\r\n (click)=\"toggleDropDown()\" readonly placeholder=\"Select Store...\" />\r\n </div>\r\n </div>\r\n <div class=\"dropdown-menu custom-dropdown-menu w-100\" *ngIf=\"showDropDown\">\r\n <input type=\"text\" class=\"form-control mb-2 dropdown-search mx-3 formSeach\"\r\n placeholder=\"Search Store...\" [(ngModel)]=\"searchStore\" (ngModelChange)=\"filterSearch()\" />\r\n <div [class]=\"storeList?.length > 5 ? 'h-200px overflow-auto' : 'h-auto'\">\r\n <div class=\"dropdown-item form-check custom-dropdown-item\"\r\n *ngFor=\"let store of storeList;let i= index\" (click)=\"updateSelectedStore(i)\">\r\n <label class=\"form-check-label\" [for]=\"store.name\">\r\n {{ store.name }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"storetext mt-2\">Store that I\u2019m looking for isn\u2019t available,<a class=\"text-primary\"\r\n href=\"/store/list\"><u>Onboard Stores</u></a></div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assign To</label>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px fw-bold inputname\" placeholder=\"User Name\"\r\n [(ngModel)]=\"userName\">\r\n </div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assignee Mail ID</label>\r\n <div class=\"d-flex align-items-center position-relatives w-100\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M18.3334 4.99999C18.3334 4.08333 17.5834 3.33333 16.6667 3.33333H3.33341C2.41675 3.33333 1.66675 4.08333 1.66675 4.99999M18.3334 4.99999V15C18.3334 15.9167 17.5834 16.6667 16.6667 16.6667H3.33341C2.41675 16.6667 1.66675 15.9167 1.66675 15V4.99999M18.3334 4.99999L10.0001 10.8333L1.66675 4.99999\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px ps-14 fw-bold inputname\"\r\n placeholder=\"User Email\" [(ngModel)]=\"userEmail\">\r\n </div>\r\n </div>\r\n <div class=\"mt-6\">\r\n <button class=\"btn btn-primary w-100\" (click)=\"updatedStore()\">\r\n Add Store\r\n </button>\r\n </div>\r\n</div>", styles: [".storePopupcontent{font-family:Inter;align-items:left}.storePopupcontent .popuptitle{color:var(--gray-900, #101828);font-size:18px;font-weight:600;line-height:20px}.storePopupcontent .popupsubtitle{color:var(--gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.storePopupcontent .btn-outline{border:1px solid lightgrey}.storePopupcontent button{width:45%}.storePopupcontent .inputname{width:100%;border:none;color:#000000de;height:45px;font-size:14px!important;padding:10px 16px;border-radius:4px;outline:1px solid #D0D5DD}.label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}::ng-deep .storePopupcontent input{display:flex!important;align-items:center!important;gap:8px!important;align-self:stretch!important;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important}.btn-primary{line-height:18px!important}.position-relative{position:relative}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;width:100%;box-sizing:border-box}.dropdown-menu{position:absolute;top:100%;left:0;right:0;border:1px solid #ccc;background-color:#fff;z-index:1000;display:block;box-sizing:border-box}.dropdown-item{padding:8px 12px}.dropdown-item:hover{background-color:#f1f1f1}.dropdown-item input[type=checkbox]{margin-right:10px}.custom-dropdown-menu{border-radius:4px;box-shadow:0 1px 2px #1018280d}.custom-dropdown-item{display:flex;align-items:center}.custom-dropdown-item input{margin-left:10px}.btn-resize{font-size:13px!important;height:29px!important;line-height:11px!important;padding:3px!important}.formSeach{width:95%}.storetext{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px;text-transform:lowercase}\n"] }]
|
|
136
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.TraxService }, { type: i2.NgbActiveModal }, { type: i3.ToastService }, { type: i4.GlobalStateService }], propDecorators: { data: [{
|
|
137
|
+
type: Input
|
|
138
|
+
}], client: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], clickOutside: [{
|
|
141
|
+
type: HostListener,
|
|
142
|
+
args: ["document:click", ["$event"]]
|
|
143
|
+
}] } });
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJheC1zdG9yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL3RyYXgtc3RvcmUvdHJheC1zdG9yZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL3RyYXgtc3RvcmUvdHJheC1zdG9yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSXpHLE9BQU8sRUFBQyxPQUFPLEVBQVksTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBUXhDLE1BQU0sT0FBTyxrQkFBa0I7SUErQlQ7SUFBeUM7SUFBK0I7SUFBaUM7SUFBMkI7SUE5Qi9JLElBQUksQ0FBSztJQUNULE1BQU0sR0FBTyxJQUFJLENBQUM7SUFDM0IsU0FBUyxHQUFPLEVBQUUsQ0FBQztJQUNuQixLQUFLLENBQUk7SUFDVCxhQUFhLEdBQU8sRUFBRSxDQUFDO0lBQ3ZCLFlBQVksR0FBVSxLQUFLLENBQUM7SUFDNUIsV0FBVyxDQUFLO0lBQ2hCLG1CQUFtQixHQUFHO1FBQ2xCLE9BQU8sRUFBRSxJQUFJO1FBQ2IsU0FBUyxFQUFFLE1BQU07UUFDakIsY0FBYyxFQUFFLENBQUM7UUFDakIsaUJBQWlCLEVBQUUsSUFBSTtRQUN2QixlQUFlLEVBQUUsSUFBSTtLQUN4QixDQUFDO0lBQ0YsUUFBUSxHQUFVLEVBQUUsQ0FBQTtJQUNwQixTQUFTLEdBQVUsRUFBRSxDQUFBO0lBQ2IsTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDZCxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUkxQyxZQUFZLENBQUMsS0FBaUI7UUFDNUIsTUFBTSxhQUFhLEdBQUksS0FBSyxDQUFDLE1BQXNCLENBQUMsT0FBTyxDQUN6RCxpQkFBaUIsQ0FDbEIsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELFlBQW9CLGNBQWdDLEVBQVMsVUFBc0IsRUFBUyxTQUF3QixFQUFTLEtBQWtCLEVBQVMsRUFBcUI7UUFBekosbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQVMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7SUFBSSxDQUFDO0lBRWxMLGVBQWU7UUFDYixJQUFJLElBQUksR0FBRztZQUNYLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDekIsUUFBUSxFQUFFLENBQUM7WUFDWCxPQUFPLEVBQUUsS0FBSztZQUNkLGVBQWUsRUFBRSxTQUFTO1lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDWixhQUFhLEVBQUUsRUFBRTtZQUNqQixRQUFRLEVBQUUsS0FBSztZQUNmLFFBQVEsRUFBRTtnQkFDTixNQUFNO2dCQUNOLFdBQVc7Z0JBQ1gsVUFBVTtnQkFDVixRQUFRO2dCQUNSLG9CQUFvQjtnQkFDcEIsYUFBYTthQUNoQjtTQUNELENBQUE7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUN6RCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFN0IsSUFBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUNuRCxJQUFJLE1BQU0sR0FBTyxFQUFFLENBQUM7Z0JBQ3BCLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVEsRUFBRSxFQUFFO29CQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNWLElBQUksRUFBQyxJQUFJLENBQUMsU0FBUztxQkFDcEIsQ0FBQyxDQUFBO2dCQUNKLENBQUMsQ0FBQyxDQUFBO2dCQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBSSxNQUFNLENBQUM7YUFFdkM7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7YUFDckI7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVM7SUFFckIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFBO1NBQ25IO2FBQ0k7WUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDakM7SUFDSCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBWTtRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNsRCxPQUFRLEtBQUssQ0FBQztTQUNmO1FBQ0QsSUFBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNsRCxPQUFRLEtBQUssQ0FBQztTQUNmO1FBQ0QsSUFBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUNuRCxPQUFRLEtBQUssQ0FBQztTQUNmO1FBQ0QsSUFBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGlEQUFpRCxDQUFDLEVBQUU7WUFDM0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUNqRCxPQUFRLEtBQUssQ0FBQztTQUNmO1FBRUQsSUFBSSxRQUFRLEdBQUcsQ0FBQztnQkFDZCxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJO2dCQUNuQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hDLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRTtnQkFDakQsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsSUFBSSxFQUFDLEVBQUU7YUFDUixDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDO3dHQS9IVSxrQkFBa0I7NEZBQWxCLGtCQUFrQixxS0NaL0IsdWdMQXFFTTs7NEZEekRPLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0I7eU1BS2pCLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBb0JOLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQge1N1YmplY3QsIHRha2VVbnRpbH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRyYXhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJheC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRyYXgtc3RvcmUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmF4LXN0b3JlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdHJheC1zdG9yZS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYXhTdG9yZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBkYXRhOmFueTtcclxuICBASW5wdXQoKSBjbGllbnQ6YW55ID0gXCIxMVwiO1xyXG4gIHN0b3JlTGlzdDphbnkgPSBbXTtcclxuICBzdG9yZTpbXTtcclxuICBzZWxlY3RlZFN0b3JlOmFueSA9IHt9O1xyXG4gIHNob3dEcm9wRG93bjpib29sZWFuPSBmYWxzZTtcclxuICBzZWFyY2hTdG9yZTphbnk7XHJcbiAgbXVsdGlTZWxlY3RTZXR0aW5ncyA9IHtcclxuICAgICAgaWRGaWVsZDogJ2lkJyxcclxuICAgICAgdGV4dEZpZWxkOiAnbmFtZScsXHJcbiAgICAgIGl0ZW1zU2hvd0xpbWl0OiAxLFxyXG4gICAgICBhbGxvd1NlYXJjaEZpbHRlcjogdHJ1ZSxcclxuICAgICAgc2luZ2xlU2VsZWN0aW9uXHQ6dHJ1ZVxyXG4gIH07XHJcbiAgdXNlck5hbWU6c3RyaW5nID0gJydcclxuICB1c2VyRW1haWw6c3RyaW5nID0gJydcclxuICBwcml2YXRlIGRldGFjaCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG5cclxuICBASG9zdExpc3RlbmVyKFwiZG9jdW1lbnQ6Y2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIGNsaWNrT3V0c2lkZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgY2xpY2tlZEluc2lkZSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoXHJcbiAgICAgIFwiLmRyb3Bkb3duLWNsb3NlXCJcclxuICAgICk7XHJcbiAgICBpZiAoIWNsaWNrZWRJbnNpZGUpIHtcclxuICAgICAgdGhpcy5jbG9zZURyb3BEb3duKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZWRldGVjdG9yOkNoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgU29wU2VydmljZTpUcmF4U2VydmljZSxwcml2YXRlIGRpYWxvZ1JlZjpOZ2JBY3RpdmVNb2RhbCxwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSxwcml2YXRlIGdzOkdsb2JhbFN0YXRlU2VydmljZSkgeyB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgXCJjbGllbnRJZFwiOiBbdGhpcy5jbGllbnRdLFxyXG4gICAgXCJvZmZzZXRcIjogMSxcclxuICAgIFwibGltaXRcIjogMTAwMDAsXHJcbiAgICBcInNvcnRDb2x1bU5hbWVcIjogXCJzdG9yZUlkXCIsXHJcbiAgICBcInNvcnRCeVwiOiAtMSxcclxuICAgIFwic2VhcmNoVmFsdWVcIjogXCJcIixcclxuICAgIFwiZXhwb3J0XCI6IGZhbHNlLFxyXG4gICAgXCJzdGF0dXNcIjogW1xyXG4gICAgICAgIFwiTGl2ZVwiLFxyXG4gICAgICAgIFwib25ib2FyZGVkXCIsXHJcbiAgICAgICAgXCJkZXBsb3llZFwiLFxyXG4gICAgICAgIFwicGFpcmVkXCIsXHJcbiAgICAgICAgXCJpbnN0YWxsYXRpb25mYWlsZWRcIixcclxuICAgICAgICBcIkluZnJhIElzc3VlXCJcclxuICAgIF1cclxuICAgfVxyXG4gICB0aGlzLlNvcFNlcnZpY2UuZ2V0U3RvcmVMaXN0KGRhdGEpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgIGNvbnNvbGUubG9nKHJlcy5kYXRhLnJlc3VsdCk7XHJcbiAgICBcclxuICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDAgJiYgcmVzLmRhdGEucmVzdWx0Lmxlbmd0aCkge1xyXG4gICAgICBsZXQgc3RvcmVzOmFueSA9IFtdO1xyXG4gICAgICByZXMuZGF0YS5yZXN1bHQuZm9yRWFjaCgoaXRlbTphbnkpID0+IHtcclxuICAgICAgICBzdG9yZXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOml0ZW0uc3RvcmVOYW1lXHJcbiAgICAgICAgfSlcclxuICAgICAgfSlcclxuICAgICAgdGhpcy5zdG9yZUxpc3QgPSB0aGlzLnN0b3JlID0gIHN0b3JlcztcclxuICAgICAgXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXTtcclxuICAgIH1cclxuICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHRvZ2dsZURyb3BEb3duKCkge1xyXG4gICAgdGhpcy5zaG93RHJvcERvd24gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0U3RvcmUoZXZlbnQ6YW55KSB7XHJcblxyXG4gIH1cclxuXHJcbiAgZmlsdGVyU2VhcmNoKCkge1xyXG4gICAgaWYodGhpcy5zZWFyY2hTdG9yZS50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVMaXN0ID0gdGhpcy5zdG9yZS5maWx0ZXIoKGl0ZW06YW55KSA9PiBpdGVtLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFN0b3JlLnRvTG93ZXJDYXNlKCkpKVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc3RvcmVMaXN0ID0gWy4uLnRoaXMuc3RvcmVdXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTZWxlY3RlZFN0b3JlKGluZGV4Om51bWJlcil7XHJcbiAgICB0aGlzLnNlbGVjdGVkU3RvcmUgPSB0aGlzLnN0b3JlTGlzdFtpbmRleF07XHJcbiAgICB0aGlzLmNsb3NlRHJvcERvd24oKTtcclxuICB9XHJcblxyXG4gIGNsb3NlRHJvcERvd24oKSB7XHJcbiAgICB0aGlzLnNob3dEcm9wRG93biA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlZFN0b3JlKCkge1xyXG4gICAgICBpZighdGhpcy5zZWxlY3RlZFN0b3JlLm5hbWUpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdQbGVhc2UgU2VsZWN0IGEgU3RvcmUnKTtcclxuICAgICAgcmV0dXJuICBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmKCF0aGlzLnVzZXJOYW1lLnRyaW0oKSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1VzZXIgTmFtZSBpcyBSZXF1aXJlZCcpO1xyXG4gICAgICByZXR1cm4gIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMudXNlckVtYWlsLnRyaW0oKSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1VzZXIgRW1haWwgaXMgUmVxdWlyZWQnKTtcclxuICAgICAgcmV0dXJuICBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmKCF0aGlzLnVzZXJFbWFpbC5tYXRjaCgvXlthLXpBLVowLTkuXy1dK0BbYS16QS1aMC05Li1dK1xcLlthLXpBLVpdezIsNn0kLykpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdJbnZhbGlkIEVtYWlsIEZvcm1hdCcpO1xyXG4gICAgICByZXR1cm4gIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB1c2VyRGF0YSA9IFt7XHJcbiAgICAgIHN0b3JlTmFtZTogdGhpcy5zZWxlY3RlZFN0b3JlPy5uYW1lLFxyXG4gICAgICB1c2VyTmFtZTogdGhpcz8udXNlck5hbWU/LnRyaW0oKSxcclxuICAgICAgdXNlckVtYWlsOiB0aGlzPy51c2VyRW1haWw/LnRvTG93ZXJDYXNlKCk/LnRyaW0oKSxcclxuICAgICAgdXNlclBob25lOiAnJyxcclxuICAgICAgY2hlY2tGbGFnOiB0cnVlLFxyXG4gICAgICBjaXR5OicnXHJcbiAgICB9XVxyXG5cclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHVzZXJEYXRhKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzdG9yZVBvcHVwY29udGVudCBwLTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi00XCI+XHJcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCI4XCIgLz5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0yOCAyMVYzNU0yMSAyOEgzNVwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxzcGFuIGNsYXNzPVwicG9wdXB0aXRsZVwiPkFkZCBTdG9yZXM8L3NwYW4+XHJcbiAgICA8cCBjbGFzcz1cInBvcHVwc3VidGl0bGUgbXQtM1wiPkZpbmlzaCBjb25maWd1cmluZyB5b3VyIHN0b3JlIGJ5IHByb3ZpZGluZyB0aGUgZGV0YWlscyBiZWxvdy48L3A+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHQtMyBwb3NpdGlvbi1yZWxhdGl2ZVwiIChjbGlja091dHNpZGUpPVwiY2xvc2VEcm9wRG93bigpXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImlucHV0bW9kZWxcIiBjbGFzcz1cImxhYmVsIHBiLTJcIj5TZWxlY3QgU3RvcmU8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1jbG9zZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi42ODAxNSA1LjgwMzhMMi42MjY5IDUuODg2OTdDMi4wNjg4NiA2Ljg3NDAyIDIuNjY0NjkgOC4xMjE0NCAzLjczNjMgOC4yNjQ1NEMzLjgzMzM5IDguMjc2NDEgMy45MjM3MyA4LjI4MjY5IDQuMDEyIDguMjgyNjlDNC41OTAxNSA4LjI4MjY5IDUuMTAxMzIgOC4wMzQ2NyA1LjQ1NzU5IDcuNjQ3OTRMNi4wMTA5MyA3LjA0NzMyTDYuNTYyMzggNy42NDk2N0M2LjkxNDMyIDguMDM0MDkgNy40MjQzMyA4LjI4MjY5IDguMDA2MzkgOC4yODI2OUM4LjU4NTgzIDguMjgyNjkgOS4wOTg3NyA4LjAzMzc0IDkuNDUwMzkgNy42NDk2N0wxMC4wMDM2IDcuMDQ1NDNMMTAuNTU2OCA3LjY0OTY3QzEwLjkwODQgOC4wMzM3NCAxMS40MjEzIDguMjgyNjkgMTIuMDAwOCA4LjI4MjY5QzEyLjU4MDIgOC4yODI2OSAxMy4wOTMyIDguMDMzNzQgMTMuNDQ0OCA3LjY0OTY3TDEzLjk5OCA3LjA0NTQzTDE0LjU1MTEgNy42NDk2N0MxNC45MDI4IDguMDMzNzQgMTUuNDE1NyA4LjI4MjY5IDE1Ljk5NTIgOC4yODI2OUMxNi4wODA1IDguMjgyNjkgMTYuMTczNiA4LjI3NjQgMTYuMjcgOC4yNjQ2NEMxNy4zNjUyIDguMTE1MzIgMTcuOTYzIDYuODAxMDUgMTcuMzI0MyA1LjgwNDNDMTcuMzI0MiA1LjgwNDI1IDE3LjMyNDIgNS44MDQxOSAxNy4zMjQyIDUuODA0MTNMMTUuNTY2IDMuMDYyNzJMMTUuNTY2IDMuMDYyNzJMMTUuNTY1MSAzLjA2MTI1QzE1LjU0OTkgMy4wMzc0MiAxNS41MTI0IDMuMDExODYgMTUuNDY1MiAzLjAxMTg2SDQuNTM1ODFDNC40ODg2NiAzLjAxMTg2IDQuNDUxMTcgMy4wMzc0MiA0LjQzNTk3IDMuMDYxMjVMNC40MzUzNSAzLjA2MjIyTDIuNjgwMTUgNS44MDM4Wk0xNS42NTE2IDEwLjczNzFWMTMuODY5VjE0LjYxOUgxNC45MDE2SDUuMDk5NDNINC4zNDk0M1YxMy44NjlWMTAuNzM3NUM0LjIzOTIgMTAuNzQ1NyA0LjEyNzY4IDEwLjc1IDQuMDE1MDcgMTAuNzVDMy45NzI3NiAxMC43NSAzLjkzMDc0IDEwLjc0OTMgMy44ODkgMTAuNzQ4MVYxMy44NjlWMTUuODAzNUMzLjg4OSAxNi40NDY5IDQuNDIyOSAxNi45ODgxIDUuMDk5NDMgMTYuOTg4MUgxNC45MDE2QzE1LjU3ODEgMTYuOTg4MSAxNi4xMTIgMTYuNDQ2OSAxNi4xMTIgMTUuODAzNVYxMy44NjlWMTAuNzQ4M0MxNi4wNzIyIDEwLjc0OTQgMTYuMDMyMiAxMC43NSAxNS45OTIxIDEwLjc1QzE1Ljg3NzcgMTAuNzUgMTUuNzY0MSAxMC43NDU2IDE1LjY1MTYgMTAuNzM3MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZHJvcGRvd24taW5wdXQgcHMtMTRcIiBbbmdNb2RlbF09XCJzZWxlY3RlZFN0b3JlPy5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURyb3BEb3duKClcIiByZWFkb25seSBwbGFjZWhvbGRlcj1cIlNlbGVjdCBTdG9yZS4uLlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51IGN1c3RvbS1kcm9wZG93bi1tZW51IHctMTAwXCIgKm5nSWY9XCJzaG93RHJvcERvd25cIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIG1iLTIgZHJvcGRvd24tc2VhcmNoIG14LTMgZm9ybVNlYWNoXCJcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBTdG9yZS4uLlwiIFsobmdNb2RlbCldPVwic2VhcmNoU3RvcmVcIiAobmdNb2RlbENoYW5nZSk9XCJmaWx0ZXJTZWFyY2goKVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzc109XCJzdG9yZUxpc3Q/Lmxlbmd0aCA+IDUgPyAnaC0yMDBweCBvdmVyZmxvdy1hdXRvJyA6ICdoLWF1dG8nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gZm9ybS1jaGVjayBjdXN0b20tZHJvcGRvd24taXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdG9yZSBvZiBzdG9yZUxpc3Q7bGV0IGk9IGluZGV4XCIgKGNsaWNrKT1cInVwZGF0ZVNlbGVjdGVkU3RvcmUoaSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIFtmb3JdPVwic3RvcmUubmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RvcmUubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RvcmV0ZXh0IG10LTJcIj5TdG9yZSB0aGF0IEnigJltIGxvb2tpbmcgZm9yIGlzbuKAmXQgYXZhaWxhYmxlLDxhIGNsYXNzPVwidGV4dC1wcmltYXJ5XCJcclxuICAgICAgICAgICAgaHJlZj1cIi9zdG9yZS9saXN0XCI+PHU+T25ib2FyZCBTdG9yZXM8L3U+PC9hPjwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwdC01XCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImlucHV0bW9kZWxcIiBjbGFzcz1cImxhYmVsIHBiLTJcIj5Bc3NpZ24gVG88L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB3LTQzMHB4IGZ3LWJvbGQgaW5wdXRuYW1lXCIgcGxhY2Vob2xkZXI9XCJVc2VyIE5hbWVcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInVzZXJOYW1lXCI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicHQtNVwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJpbnB1dG1vZGVsXCIgY2xhc3M9XCJsYWJlbCBwYi0yXCI+QXNzaWduZWUgTWFpbCBJRDwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmVzIHctMTAwXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE4LjMzMzQgNC45OTk5OUMxOC4zMzM0IDQuMDgzMzMgMTcuNTgzNCAzLjMzMzMzIDE2LjY2NjcgMy4zMzMzM0gzLjMzMzQxQzIuNDE2NzUgMy4zMzMzMyAxLjY2Njc1IDQuMDgzMzMgMS42NjY3NSA0Ljk5OTk5TTE4LjMzMzQgNC45OTk5OVYxNUMxOC4zMzM0IDE1LjkxNjcgMTcuNTgzNCAxNi42NjY3IDE2LjY2NjcgMTYuNjY2N0gzLjMzMzQxQzIuNDE2NzUgMTYuNjY2NyAxLjY2Njc1IDE1LjkxNjcgMS42NjY3NSAxNVY0Ljk5OTk5TTE4LjMzMzQgNC45OTk5OUwxMC4wMDAxIDEwLjgzMzNMMS42NjY3NSA0Ljk5OTk5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHctNDMwcHggcHMtMTQgZnctYm9sZCBpbnB1dG5hbWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJVc2VyIEVtYWlsXCIgWyhuZ01vZGVsKV09XCJ1c2VyRW1haWxcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm10LTZcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwXCIgKGNsaWNrKT1cInVwZGF0ZWRTdG9yZSgpXCI+XHJcbiAgICAgICAgICAgIEFkZCBTdG9yZVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
4
|
+
import * as i2 from "@angular/platform-browser";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
import * as i4 from "@angular/forms";
|
|
7
|
+
export class TraxpopupComponent {
|
|
8
|
+
dialogRef;
|
|
9
|
+
sanitizer;
|
|
10
|
+
requestText = '';
|
|
11
|
+
data;
|
|
12
|
+
constructor(dialogRef, sanitizer) {
|
|
13
|
+
this.dialogRef = dialogRef;
|
|
14
|
+
this.sanitizer = sanitizer;
|
|
15
|
+
}
|
|
16
|
+
ngOnInit() {
|
|
17
|
+
if (this.data?.user) {
|
|
18
|
+
this.data.user.forEach((item) => {
|
|
19
|
+
item.invite = true;
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
this.data.imagesrc = this.sanitizer.bypassSecurityTrustHtml(this.data.imagesrc);
|
|
23
|
+
}
|
|
24
|
+
closepopup() {
|
|
25
|
+
this.dialogRef.close();
|
|
26
|
+
}
|
|
27
|
+
deletepopup() {
|
|
28
|
+
this.dialogRef.close('delete');
|
|
29
|
+
}
|
|
30
|
+
duplicatepopup() {
|
|
31
|
+
this.dialogRef.close('duplicate');
|
|
32
|
+
}
|
|
33
|
+
confirmpopup() {
|
|
34
|
+
let res = (this.data.resType && this.data.resType == 'custom') ?
|
|
35
|
+
{ status: 'confirm', data: { requestText: this.requestText } } :
|
|
36
|
+
'confirm';
|
|
37
|
+
this.dialogRef.close(res);
|
|
38
|
+
}
|
|
39
|
+
confirmStorepopup() {
|
|
40
|
+
this.dialogRef.close('confirmStore');
|
|
41
|
+
}
|
|
42
|
+
skipEntries() {
|
|
43
|
+
this.dialogRef.close('skip');
|
|
44
|
+
}
|
|
45
|
+
invitepopup() {
|
|
46
|
+
let data = {
|
|
47
|
+
message: 'confirm',
|
|
48
|
+
user: this.data.user
|
|
49
|
+
};
|
|
50
|
+
this.dialogRef.close(data);
|
|
51
|
+
}
|
|
52
|
+
updateCheck(event, index) {
|
|
53
|
+
this.data.user[index].invite = event.target.checked;
|
|
54
|
+
}
|
|
55
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraxpopupComponent, deps: [{ token: i1.NgbActiveModal }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
56
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TraxpopupComponent, selector: "lib-traxpopup", inputs: { data: "data" }, ngImport: i0, template: "\r\n<div class=\"text-start p-9\">\r\n <div [innerHTML]=\"data.imagesrc\"></div>\r\n <div class=\"customtitle mt-4\">\r\n {{data.title}}\r\n </div>\r\n <div class=\"content mt-4\" [innerHtml]=\"data.content\">\r\n </div>\r\n <div class=\"error mt-5 p-5 pt-0 h-auto mh-200px overflow-scroll\" *ngIf=\"data?.error\">\r\n <div class=\"mt-5\" *ngFor=\"let error of data?.error;let i =index\">\r\n <span>{{i + 1}}.) {{error}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtitle storesubtitle mb-4\">\r\n {{data.subtitle}}\r\n </div>\r\n <div class=\"subtitle storesubtitle mb-3\" *ngIf=\"data?.location?.length\">\r\n <div class=\"content mb-2\">Location is required on below stores</div>\r\n {{data.location}}\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Invite'\" class=\"content\" [ngClass]=\"data.user.length > 4 ? 'addScroll' : ''\">\r\n <div class=\"d-flex align-items-center position-relative mb-5\" *ngFor=\"let user of data.user;let i= index\">\r\n <div class=\"form-check form-check-custom form-check-solid mx-2 me-4\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" [checked]=\"user.invite\"\r\n (change)=\"updateCheck($event,i)\">\r\n </div>\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">\r\n {{user.userName.slice(0,2)}} </span>\r\n </div>\r\n <div>\r\n <a class=\"invitemain\">{{user.userName}}</a>\r\n <div class=\"invitesub\">\r\n {{user.userEmail}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"data.input1\" class=\"mt-5\">\r\n <label *ngIf=\"data.inputlabel2\" for=\"inputmodel\" class=\"label\">{{data.inputlabel1}}</label><br>\r\n <input class=\"inputlabel\" id=\"inputmodel\" placeholder=\"{{data.placeholder1}}\" type=\"{{data.inputtype1}}\"\r\n disabled>\r\n </div>\r\n <div *ngIf=\"data.input2\" class=\"mt-5\">\r\n <label *ngIf=\"data.inputlabel2\" for=\"inputmodel\" class=\"label\">{{data.inputlabel2}}</label>\r\n <input class=\"inputlabel\" id=\"inputmodel\" placeholder=\"{{data.placeholder2}}\" [(ngModel)]=\"requestText\"\r\n type=\"{{data.inputtype2}}\">\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'delete'\" class=\"d-flex text-center justify-content-between\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-danger\" (click)=\"deletepopup()\">Delete</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'duplicate'\" class=\"d-flex text-center justify-content-between mt-5\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-danger\"\r\n (click)=\"duplicatepopup()\">Duplicate</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'draft'\" class=\"d-flex text-center justify-content-between mt-5\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\" (click)=\"confirmpopup()\">Save As\r\n Draft</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Request'\" class=\"d-flex text-center justify-content-between mt-5\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\"\r\n (click)=\"confirmpopup()\">Request</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'confirm'\" class=\"d-flex text-center justify-content-between mt-5\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\"\r\n (click)=\"confirmpopup()\">Confirm</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Reinitiate'\" class=\"d-flex text-center justify-content-between\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\"\r\n (click)=\"confirmpopup()\">Reinitiate</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Remove'\" class=\"d-flex text-center justify-content-between\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-danger\"\r\n (click)=\"confirmpopup()\">Remove</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Reupload'\" class=\"d-flex text-center justify-content-between mt-5\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\"\r\n (click)=\"confirmpopup()\">Reupload</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Invite'\" class=\"d-flex text-center justify-content-between mt-8\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"skipEntries()\">Skip New Entries</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\" (click)=\"invitepopup()\">Invite\r\n Selected</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Addstore'\" class=\"d-flex text-center justify-content-between\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"skipEntries()\">Skip New Entries</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\" (click)=\"confirmStorepopup()\">Add\r\n Store</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'error'\" class=\"d-flex text-center justify-content-between\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-danger\"\r\n (click)=\"dialogRef.close('reupload')\">Reupload</button>\r\n </div>\r\n</div>", styles: [".Overlay{top:0;left:0;width:100%;height:100%;z-index:200!important;position:fixed;background:#58575799}input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #D0D5DD)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}.form-check.form-check-solid .form-check-input:checked{background-color:var(--primary-50, #EAF8FF)!important}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF)!important;background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.min-width-popup{min-width:47%!important}.content{color:var(--gray-500, #667085);font-family:Inter;font-size:14px;padding:0!important;font-style:normal;font-weight:400}.label{color:var(--gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}input{font-size:16px;color:var(--gray-900, #101828)}.inputlabel{width:100%;margin-top:5px;padding:10px 14px;border-radius:8px;border:1px solid var(--gray-300, #D0D5DD);background:var(--white, #FFF);box-shadow:0 1px 2px #1018280d}.inputlabel:focus{outline:1px solid var(--gray-300, #D0D5DD)!important;box-shadow:0 1px 2px #1018280d!important;border:#F9FAFB!important;outline:1px solid var(--primary-300, #6BCAFF)!important;box-shadow:0 0 0 4px #d5effe,0 1px 2px #1018280d!important;color:#101828}.popup{position:absolute;top:50%;left:50%;opacity:1;transform:translate(-50%,-50%);background:var(--white, #FFF);border-radius:12px!important;border-radius:12px;box-shadow:0 8px 8px -4px #10182808,0 20px 24px -4px #10182814;padding:30px;width:400px;height:fit-content}.btn-outline{border:1px solid lightgrey;padding:calc(.75rem + 1px) calc(1.5rem + 1px)}.fs-18px{font-size:18px;color:var(--black, #000);font-family:inter}.fw-600{font-weight:600!important}::ng-deep .mat-dialog-container{box-shadow:none;background:#fff;color:#000000de}.symbol-label{color:var(--primary-600, #00A3FF);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.invitemain{color:var(--gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.invitesub{color:var(--gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.subtitle{color:var(--Black, #101828);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.customtitle{color:var(--gray-900, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.addScroll{height:300px;overflow-y:scroll}.storesubtitle{word-break:break-all;padding-top:.5em}::ng-deep .mat-dialog-container{display:block;padding:24px;border-radius:12px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.error{color:var(--Error-700, #B42318);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px;border-radius:8px;border:1px solid var(--Error-300, #FDA29B);background:var(--Error-25, #FFFBFA)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
57
|
+
}
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraxpopupComponent, decorators: [{
|
|
59
|
+
type: Component,
|
|
60
|
+
args: [{ selector: 'lib-traxpopup', template: "\r\n<div class=\"text-start p-9\">\r\n <div [innerHTML]=\"data.imagesrc\"></div>\r\n <div class=\"customtitle mt-4\">\r\n {{data.title}}\r\n </div>\r\n <div class=\"content mt-4\" [innerHtml]=\"data.content\">\r\n </div>\r\n <div class=\"error mt-5 p-5 pt-0 h-auto mh-200px overflow-scroll\" *ngIf=\"data?.error\">\r\n <div class=\"mt-5\" *ngFor=\"let error of data?.error;let i =index\">\r\n <span>{{i + 1}}.) {{error}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtitle storesubtitle mb-4\">\r\n {{data.subtitle}}\r\n </div>\r\n <div class=\"subtitle storesubtitle mb-3\" *ngIf=\"data?.location?.length\">\r\n <div class=\"content mb-2\">Location is required on below stores</div>\r\n {{data.location}}\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Invite'\" class=\"content\" [ngClass]=\"data.user.length > 4 ? 'addScroll' : ''\">\r\n <div class=\"d-flex align-items-center position-relative mb-5\" *ngFor=\"let user of data.user;let i= index\">\r\n <div class=\"form-check form-check-custom form-check-solid mx-2 me-4\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" [checked]=\"user.invite\"\r\n (change)=\"updateCheck($event,i)\">\r\n </div>\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">\r\n {{user.userName.slice(0,2)}} </span>\r\n </div>\r\n <div>\r\n <a class=\"invitemain\">{{user.userName}}</a>\r\n <div class=\"invitesub\">\r\n {{user.userEmail}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"data.input1\" class=\"mt-5\">\r\n <label *ngIf=\"data.inputlabel2\" for=\"inputmodel\" class=\"label\">{{data.inputlabel1}}</label><br>\r\n <input class=\"inputlabel\" id=\"inputmodel\" placeholder=\"{{data.placeholder1}}\" type=\"{{data.inputtype1}}\"\r\n disabled>\r\n </div>\r\n <div *ngIf=\"data.input2\" class=\"mt-5\">\r\n <label *ngIf=\"data.inputlabel2\" for=\"inputmodel\" class=\"label\">{{data.inputlabel2}}</label>\r\n <input class=\"inputlabel\" id=\"inputmodel\" placeholder=\"{{data.placeholder2}}\" [(ngModel)]=\"requestText\"\r\n type=\"{{data.inputtype2}}\">\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'delete'\" class=\"d-flex text-center justify-content-between\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-danger\" (click)=\"deletepopup()\">Delete</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'duplicate'\" class=\"d-flex text-center justify-content-between mt-5\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-danger\"\r\n (click)=\"duplicatepopup()\">Duplicate</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'draft'\" class=\"d-flex text-center justify-content-between mt-5\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\" (click)=\"confirmpopup()\">Save As\r\n Draft</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Request'\" class=\"d-flex text-center justify-content-between mt-5\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\"\r\n (click)=\"confirmpopup()\">Request</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'confirm'\" class=\"d-flex text-center justify-content-between mt-5\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\"\r\n (click)=\"confirmpopup()\">Confirm</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Reinitiate'\" class=\"d-flex text-center justify-content-between\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\"\r\n (click)=\"confirmpopup()\">Reinitiate</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Remove'\" class=\"d-flex text-center justify-content-between\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-danger\"\r\n (click)=\"confirmpopup()\">Remove</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Reupload'\" class=\"d-flex text-center justify-content-between mt-5\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\"\r\n (click)=\"confirmpopup()\">Reupload</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Invite'\" class=\"d-flex text-center justify-content-between mt-8\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"skipEntries()\">Skip New Entries</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\" (click)=\"invitepopup()\">Invite\r\n Selected</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Addstore'\" class=\"d-flex text-center justify-content-between\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"skipEntries()\">Skip New Entries</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\" (click)=\"confirmStorepopup()\">Add\r\n Store</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'error'\" class=\"d-flex text-center justify-content-between\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-danger\"\r\n (click)=\"dialogRef.close('reupload')\">Reupload</button>\r\n </div>\r\n</div>", styles: [".Overlay{top:0;left:0;width:100%;height:100%;z-index:200!important;position:fixed;background:#58575799}input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #D0D5DD)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}.form-check.form-check-solid .form-check-input:checked{background-color:var(--primary-50, #EAF8FF)!important}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF)!important;background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.min-width-popup{min-width:47%!important}.content{color:var(--gray-500, #667085);font-family:Inter;font-size:14px;padding:0!important;font-style:normal;font-weight:400}.label{color:var(--gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}input{font-size:16px;color:var(--gray-900, #101828)}.inputlabel{width:100%;margin-top:5px;padding:10px 14px;border-radius:8px;border:1px solid var(--gray-300, #D0D5DD);background:var(--white, #FFF);box-shadow:0 1px 2px #1018280d}.inputlabel:focus{outline:1px solid var(--gray-300, #D0D5DD)!important;box-shadow:0 1px 2px #1018280d!important;border:#F9FAFB!important;outline:1px solid var(--primary-300, #6BCAFF)!important;box-shadow:0 0 0 4px #d5effe,0 1px 2px #1018280d!important;color:#101828}.popup{position:absolute;top:50%;left:50%;opacity:1;transform:translate(-50%,-50%);background:var(--white, #FFF);border-radius:12px!important;border-radius:12px;box-shadow:0 8px 8px -4px #10182808,0 20px 24px -4px #10182814;padding:30px;width:400px;height:fit-content}.btn-outline{border:1px solid lightgrey;padding:calc(.75rem + 1px) calc(1.5rem + 1px)}.fs-18px{font-size:18px;color:var(--black, #000);font-family:inter}.fw-600{font-weight:600!important}::ng-deep .mat-dialog-container{box-shadow:none;background:#fff;color:#000000de}.symbol-label{color:var(--primary-600, #00A3FF);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.invitemain{color:var(--gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.invitesub{color:var(--gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.subtitle{color:var(--Black, #101828);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.customtitle{color:var(--gray-900, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.addScroll{height:300px;overflow-y:scroll}.storesubtitle{word-break:break-all;padding-top:.5em}::ng-deep .mat-dialog-container{display:block;padding:24px;border-radius:12px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.error{color:var(--Error-700, #B42318);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px;border-radius:8px;border:1px solid var(--Error-300, #FDA29B);background:var(--Error-25, #FFFBFA)}\n"] }]
|
|
61
|
+
}], ctorParameters: () => [{ type: i1.NgbActiveModal }, { type: i2.DomSanitizer }], propDecorators: { data: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}] } });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJheHBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvdHJheHBvcHVwL3RyYXhwb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL3RyYXhwb3B1cC90cmF4cG9wdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVN6RCxNQUFNLE9BQU8sa0JBQWtCO0lBR1Q7SUFBa0M7SUFGdEQsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUNoQixJQUFJLENBQUs7SUFDbEIsWUFBb0IsU0FBeUIsRUFBUyxTQUF1QjtRQUF6RCxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFBSSxDQUFDO0lBRWxGLFFBQVE7UUFDTixJQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVEsRUFBRSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQTtZQUNuQixDQUFDLENBQUMsQ0FBQTtTQUNKO1FBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFDRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0QsV0FBVztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxjQUFjO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNDLFlBQVk7UUFDVixJQUFJLEdBQUcsR0FDUCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDcEQsRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFDLElBQUksRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQzNELFNBQVMsQ0FBQztRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLEdBQUc7WUFDVCxPQUFPLEVBQUMsU0FBUztZQUNqQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1NBQ3JCLENBQUE7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQVMsRUFBQyxLQUFTO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUN0RCxDQUFDO3dHQTVDVSxrQkFBa0I7NEZBQWxCLGtCQUFrQiwrRUNUL0IsMDlNQXVHTTs7NEZEOUZPLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxlQUFlOzhHQU1oQixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRyYXhwb3B1cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYXhwb3B1cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RyYXhwb3B1cC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYXhwb3B1cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVxdWVzdFRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGRhdGE6YW55O1xyXG4gIGNvbnN0cnVjdG9yKCBwdWJsaWMgZGlhbG9nUmVmOiBOZ2JBY3RpdmVNb2RhbCxwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLmRhdGE/LnVzZXIpIHtcclxuICAgICB0aGlzLmRhdGEudXNlci5mb3JFYWNoKChpdGVtOmFueSkgPT57XHJcbiAgICAgICBpdGVtLmludml0ZSA9IHRydWVcclxuICAgICAgfSlcclxuICAgfVxyXG4gICAgdGhpcy5kYXRhLmltYWdlc3JjID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodGhpcy5kYXRhLmltYWdlc3JjKTtcclxuICB9XHJcbiAgY2xvc2Vwb3B1cCgpe1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuIH1cclxuIGRlbGV0ZXBvcHVwKCl7XHJcbiAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoJ2RlbGV0ZScpO1xyXG4gfVxyXG4gZHVwbGljYXRlcG9wdXAoKXtcclxuICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgnZHVwbGljYXRlJyk7XHJcbn1cclxuICBjb25maXJtcG9wdXAoKSB7XHJcbiAgICBsZXQgcmVzOiBhbnkgPSBcclxuICAgICh0aGlzLmRhdGEucmVzVHlwZSAmJiB0aGlzLmRhdGEucmVzVHlwZSA9PSAnY3VzdG9tJykgPyBcclxuICAgICAge3N0YXR1czogJ2NvbmZpcm0nLGRhdGE6IHtyZXF1ZXN0VGV4dDogdGhpcy5yZXF1ZXN0VGV4dH19IDogXHJcbiAgICAgICdjb25maXJtJztcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHJlcyk7XHJcbiAgfVxyXG4gIGNvbmZpcm1TdG9yZXBvcHVwKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoJ2NvbmZpcm1TdG9yZScpO1xyXG4gIH1cclxuICBza2lwRW50cmllcygpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCdza2lwJyk7XHJcbiAgfVxyXG4gIGludml0ZXBvcHVwKCkge1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIG1lc3NhZ2U6J2NvbmZpcm0nLFxyXG4gICAgICB1c2VyOiB0aGlzLmRhdGEudXNlclxyXG4gICAgfVxyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZGF0YSlcclxuICB9XHJcbiAgdXBkYXRlQ2hlY2soZXZlbnQ6YW55LGluZGV4OmFueSkge1xyXG4gICAgdGhpcy5kYXRhLnVzZXJbaW5kZXhdLmludml0ZSA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gIH1cclxufVxyXG4iLCJcclxuPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgcC05XCI+XHJcbiAgICA8ZGl2IFtpbm5lckhUTUxdPVwiZGF0YS5pbWFnZXNyY1wiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImN1c3RvbXRpdGxlICBtdC00XCI+XHJcbiAgICAgICAge3tkYXRhLnRpdGxlfX1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnQgbXQtNFwiIFtpbm5lckh0bWxdPVwiZGF0YS5jb250ZW50XCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJlcnJvciBtdC01IHAtNSBwdC0wIGgtYXV0byBtaC0yMDBweCBvdmVyZmxvdy1zY3JvbGxcIiAqbmdJZj1cImRhdGE/LmVycm9yXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTVcIiAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZGF0YT8uZXJyb3I7bGV0IGkgPWluZGV4XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7aSArIDF9fS4mIzQxOyB7e2Vycm9yfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzdWJ0aXRsZSBzdG9yZXN1YnRpdGxlIG1iLTRcIj5cclxuICAgICAgICB7e2RhdGEuc3VidGl0bGV9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3VidGl0bGUgc3RvcmVzdWJ0aXRsZSBtYi0zXCIgKm5nSWY9XCJkYXRhPy5sb2NhdGlvbj8ubGVuZ3RoXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQgbWItMlwiPkxvY2F0aW9uIGlzIHJlcXVpcmVkIG9uIGJlbG93IHN0b3JlczwvZGl2PlxyXG4gICAgICAgIHt7ZGF0YS5sb2NhdGlvbn19XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJkYXRhLmJ1dHRvbnR5cGUgPT09ICdJbnZpdGUnXCIgY2xhc3M9XCJjb250ZW50XCIgW25nQ2xhc3NdPVwiZGF0YS51c2VyLmxlbmd0aCA+IDQgPyAnYWRkU2Nyb2xsJyA6ICcnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbWItNVwiICpuZ0Zvcj1cImxldCB1c2VyIG9mIGRhdGEudXNlcjtsZXQgaT0gaW5kZXhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1jdXN0b20gZm9ybS1jaGVjay1zb2xpZCBteC0yIG1lLTRcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cIlwiIFtjaGVja2VkXT1cInVzZXIuaW52aXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUNoZWNrKCRldmVudCxpKVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtMzVweCBzeW1ib2wtY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbC1sYWJlbCBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSBtZS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3t1c2VyLnVzZXJOYW1lLnNsaWNlKDAsMil9fSA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJpbnZpdGVtYWluXCI+e3t1c2VyLnVzZXJOYW1lfX08L2E+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52aXRlc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3t1c2VyLnVzZXJFbWFpbH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiZGF0YS5pbnB1dDFcIiBjbGFzcz1cIm10LTVcIj5cclxuICAgICAgICA8bGFiZWwgKm5nSWY9XCJkYXRhLmlucHV0bGFiZWwyXCIgZm9yPVwiaW5wdXRtb2RlbFwiIGNsYXNzPVwibGFiZWxcIj57e2RhdGEuaW5wdXRsYWJlbDF9fTwvbGFiZWw+PGJyPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImlucHV0bGFiZWxcIiBpZD1cImlucHV0bW9kZWxcIiBwbGFjZWhvbGRlcj1cInt7ZGF0YS5wbGFjZWhvbGRlcjF9fVwiIHR5cGU9XCJ7e2RhdGEuaW5wdXR0eXBlMX19XCJcclxuICAgICAgICAgICAgZGlzYWJsZWQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJkYXRhLmlucHV0MlwiIGNsYXNzPVwibXQtNVwiPlxyXG4gICAgICAgIDxsYWJlbCAqbmdJZj1cImRhdGEuaW5wdXRsYWJlbDJcIiBmb3I9XCJpbnB1dG1vZGVsXCIgY2xhc3M9XCJsYWJlbFwiPnt7ZGF0YS5pbnB1dGxhYmVsMn19PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJpbnB1dGxhYmVsXCIgaWQ9XCJpbnB1dG1vZGVsXCIgcGxhY2Vob2xkZXI9XCJ7e2RhdGEucGxhY2Vob2xkZXIyfX1cIiBbKG5nTW9kZWwpXT1cInJlcXVlc3RUZXh0XCJcclxuICAgICAgICAgICAgdHlwZT1cInt7ZGF0YS5pbnB1dHR5cGUyfX1cIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImRhdGEuYnV0dG9udHlwZSA9PT0gJ2RlbGV0ZSdcIiBjbGFzcz1cImQtZmxleCB0ZXh0LWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gbWluLXdpZHRoLXBvcHVwIGJ0bi1vdXRsaW5lXCIgKGNsaWNrKT1cImNsb3NlcG9wdXAoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gbWluLXdpZHRoLXBvcHVwIGJ0bi1vdXRsaW5lIGFjdGl2ZSBidG4tYWN0aXZlLWRhbmdlclwiIChjbGljayk9XCJkZWxldGVwb3B1cCgpXCI+RGVsZXRlPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJkYXRhLmJ1dHRvbnR5cGUgPT09ICdkdXBsaWNhdGUnXCIgY2xhc3M9XCJkLWZsZXggdGV4dC1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNVwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gbWluLXdpZHRoLXBvcHVwIGJ0bi1vdXRsaW5lXCIgKGNsaWNrKT1cImNsb3NlcG9wdXAoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gbWluLXdpZHRoLXBvcHVwIGJ0bi1vdXRsaW5lIGFjdGl2ZSBidG4tYWN0aXZlLWRhbmdlclwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJkdXBsaWNhdGVwb3B1cCgpXCI+RHVwbGljYXRlPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJkYXRhLmJ1dHRvbnR5cGUgPT09ICdkcmFmdCdcIiBjbGFzcz1cImQtZmxleCB0ZXh0LWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC01XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBtaW4td2lkdGgtcG9wdXAgYnRuLW91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2Vwb3B1cCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBtaW4td2lkdGgtcG9wdXAgYnRuLW91dGxpbmUgYWN0aXZlIGJ0bi1hY3RpdmUtcHJpbWFyeVwiIChjbGljayk9XCJjb25maXJtcG9wdXAoKVwiPlNhdmUgQXNcclxuICAgICAgICAgICAgRHJhZnQ8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImRhdGEuYnV0dG9udHlwZSA9PT0gJ1JlcXVlc3QnXCIgY2xhc3M9XCJkLWZsZXggdGV4dC1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNVwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gbWluLXdpZHRoLXBvcHVwIGJ0bi1vdXRsaW5lXCIgKGNsaWNrKT1cImNsb3NlcG9wdXAoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gbWluLXdpZHRoLXBvcHVwIGJ0bi1vdXRsaW5lIGFjdGl2ZSBidG4tYWN0aXZlLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY29uZmlybXBvcHVwKClcIj5SZXF1ZXN0PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJkYXRhLmJ1dHRvbnR5cGUgPT09ICdjb25maXJtJ1wiIGNsYXNzPVwiZC1mbGV4IHRleHQtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTVcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIG1pbi13aWR0aC1wb3B1cCBidG4tb3V0bGluZVwiIChjbGljayk9XCJjbG9zZXBvcHVwKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIG1pbi13aWR0aC1wb3B1cCBidG4tb3V0bGluZSBhY3RpdmUgYnRuLWFjdGl2ZS1wcmltYXJ5XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNvbmZpcm1wb3B1cCgpXCI+Q29uZmlybTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZGF0YS5idXR0b250eXBlID09PSAnUmVpbml0aWF0ZSdcIiBjbGFzcz1cImQtZmxleCB0ZXh0LWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gbWluLXdpZHRoLXBvcHVwIGJ0bi1vdXRsaW5lXCIgKGNsaWNrKT1cImNsb3NlcG9wdXAoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gbWluLXdpZHRoLXBvcHVwIGJ0bi1vdXRsaW5lIGFjdGl2ZSBidG4tYWN0aXZlLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY29uZmlybXBvcHVwKClcIj5SZWluaXRpYXRlPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJkYXRhLmJ1dHRvbnR5cGUgPT09ICdSZW1vdmUnXCIgY2xhc3M9XCJkLWZsZXggdGV4dC1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIG1pbi13aWR0aC1wb3B1cCBidG4tb3V0bGluZVwiIChjbGljayk9XCJjbG9zZXBvcHVwKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIG1pbi13aWR0aC1wb3B1cCBidG4tb3V0bGluZSBhY3RpdmUgYnRuLWFjdGl2ZS1kYW5nZXJcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY29uZmlybXBvcHVwKClcIj5SZW1vdmU8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImRhdGEuYnV0dG9udHlwZSA9PT0gJ1JldXBsb2FkJ1wiIGNsYXNzPVwiZC1mbGV4IHRleHQtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTVcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIG1pbi13aWR0aC1wb3B1cCBidG4tb3V0bGluZVwiIChjbGljayk9XCJjbG9zZXBvcHVwKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIG1pbi13aWR0aC1wb3B1cCBidG4tb3V0bGluZSBhY3RpdmUgYnRuLWFjdGl2ZS1wcmltYXJ5XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNvbmZpcm1wb3B1cCgpXCI+UmV1cGxvYWQ8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImRhdGEuYnV0dG9udHlwZSA9PT0gJ0ludml0ZSdcIiBjbGFzcz1cImQtZmxleCB0ZXh0LWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC04XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBtaW4td2lkdGgtcG9wdXAgYnRuLW91dGxpbmVcIiAoY2xpY2spPVwic2tpcEVudHJpZXMoKVwiPlNraXAgTmV3IEVudHJpZXM8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIG1pbi13aWR0aC1wb3B1cCBidG4tb3V0bGluZSBhY3RpdmUgYnRuLWFjdGl2ZS1wcmltYXJ5XCIgKGNsaWNrKT1cImludml0ZXBvcHVwKClcIj5JbnZpdGVcclxuICAgICAgICAgICAgU2VsZWN0ZWQ8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImRhdGEuYnV0dG9udHlwZSA9PT0gJ0FkZHN0b3JlJ1wiIGNsYXNzPVwiZC1mbGV4IHRleHQtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBtaW4td2lkdGgtcG9wdXAgYnRuLW91dGxpbmVcIiAoY2xpY2spPVwic2tpcEVudHJpZXMoKVwiPlNraXAgTmV3IEVudHJpZXM8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIG1pbi13aWR0aC1wb3B1cCBidG4tb3V0bGluZSBhY3RpdmUgYnRuLWFjdGl2ZS1wcmltYXJ5XCIgKGNsaWNrKT1cImNvbmZpcm1TdG9yZXBvcHVwKClcIj5BZGRcclxuICAgICAgICAgICAgU3RvcmU8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImRhdGEuYnV0dG9udHlwZSA9PT0gJ2Vycm9yJ1wiIGNsYXNzPVwiZC1mbGV4IHRleHQtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBtaW4td2lkdGgtcG9wdXAgYnRuLW91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2Vwb3B1cCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBtaW4td2lkdGgtcG9wdXAgYnRuLW91dGxpbmUgYWN0aXZlIGJ0bi1hY3RpdmUtZGFuZ2VyXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImRpYWxvZ1JlZi5jbG9zZSgncmV1cGxvYWQnKVwiPlJldXBsb2FkPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { Injectable, } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, Subject, takeUntil } from 'rxjs';
|
|
3
|
+
import * as FileSaver from 'file-saver';
|
|
4
|
+
import * as XLSX from 'xlsx';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common/http";
|
|
7
|
+
import * as i2 from "tango-app-ui-global";
|
|
8
|
+
const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
|
|
9
|
+
const EXCEL_EXTENSION = '.xlsx';
|
|
10
|
+
export class TraxService {
|
|
11
|
+
http;
|
|
12
|
+
gs;
|
|
13
|
+
traxUrl;
|
|
14
|
+
storeUrl;
|
|
15
|
+
galleryApiUrl;
|
|
16
|
+
dropDownTrigger = new BehaviorSubject(null);
|
|
17
|
+
reloadDataSubject = new BehaviorSubject(false);
|
|
18
|
+
reloadData$ = this.reloadDataSubject.asObservable();
|
|
19
|
+
constructor(http, gs) {
|
|
20
|
+
this.http = http;
|
|
21
|
+
this.gs = gs;
|
|
22
|
+
this.gs.environment.pipe(takeUntil(this.destroy$)).subscribe((env) => {
|
|
23
|
+
if (env) {
|
|
24
|
+
this.traxUrl = env.traxUrl;
|
|
25
|
+
this.storeUrl = env.storeApiUrl;
|
|
26
|
+
this.galleryApiUrl = env.galleryApiUrl;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
triggerReload() {
|
|
31
|
+
this.reloadDataSubject.next(true);
|
|
32
|
+
}
|
|
33
|
+
exportAsExcelFile(json, excelFileName) {
|
|
34
|
+
const worksheet = XLSX.utils.json_to_sheet(json);
|
|
35
|
+
const workbook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
|
|
36
|
+
const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
|
|
37
|
+
this.saveAsExcelFile(excelBuffer, excelFileName);
|
|
38
|
+
}
|
|
39
|
+
saveAsExcelFile(buffer, fileName) {
|
|
40
|
+
const data = new Blob([buffer], {
|
|
41
|
+
type: EXCEL_TYPE
|
|
42
|
+
});
|
|
43
|
+
FileSaver.saveAs(data, fileName + 'list' + EXCEL_EXTENSION);
|
|
44
|
+
}
|
|
45
|
+
saveAsTemplate(buffer, fileName) {
|
|
46
|
+
const data = new Blob([buffer], {
|
|
47
|
+
type: EXCEL_TYPE
|
|
48
|
+
});
|
|
49
|
+
FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);
|
|
50
|
+
}
|
|
51
|
+
destroy$ = new Subject();
|
|
52
|
+
ngOnDestroy() {
|
|
53
|
+
this.destroy$.next(true);
|
|
54
|
+
this.destroy$.complete();
|
|
55
|
+
}
|
|
56
|
+
getSummaryTableData(data) {
|
|
57
|
+
return this.http.post(`${this.traxUrl}/zoneSummaryTable_v2`, data);
|
|
58
|
+
}
|
|
59
|
+
getchecklist(data) {
|
|
60
|
+
return this.http.post(`${this.galleryApiUrl}/getchecklist`, data);
|
|
61
|
+
}
|
|
62
|
+
getSummaryTableExport(data) {
|
|
63
|
+
return this.http.post(`${this.traxUrl}/zoneSummaryTable_v2`, data, { responseType: 'arraybuffer' });
|
|
64
|
+
}
|
|
65
|
+
checklist(obj) {
|
|
66
|
+
return this.http.get(`${this.traxUrl}/checklist?limit=${obj.limit}&offset=${obj.offset}&sortColumnName=${obj.sortColumn}&search=${obj.search}&sortBy=${obj.sortBy}&clientId=${obj.clientId}`);
|
|
67
|
+
}
|
|
68
|
+
imageupload(users) {
|
|
69
|
+
return this.http.post(`${this.traxUrl}/upload`, users);
|
|
70
|
+
}
|
|
71
|
+
validateUser(users) {
|
|
72
|
+
return this.http.post(`${this.traxUrl}/validateUser`, users);
|
|
73
|
+
}
|
|
74
|
+
getupdatechecklist(id, data) {
|
|
75
|
+
return this.http.put(`${this.traxUrl}/checklist/update/${id}`, data);
|
|
76
|
+
}
|
|
77
|
+
createchecklist(data) {
|
|
78
|
+
return this.http.post(`${this.traxUrl}/checklist/create`, data);
|
|
79
|
+
}
|
|
80
|
+
configUpdate(obj) {
|
|
81
|
+
return this.http.post(`${this.traxUrl}/checklistConfigure`, obj);
|
|
82
|
+
}
|
|
83
|
+
getconfig(obj) {
|
|
84
|
+
let key = Object.keys(obj)[0];
|
|
85
|
+
let value = obj[Object.keys(obj)[0]];
|
|
86
|
+
return this.http.get(`${this.traxUrl}/getConfigDetails?${key}=${value}`);
|
|
87
|
+
}
|
|
88
|
+
runAIInsert(data) {
|
|
89
|
+
return this.http.post(`${this.traxUrl}/runAIInsert`, data);
|
|
90
|
+
}
|
|
91
|
+
duplicatechecklist(id) {
|
|
92
|
+
return this.http.get(`${this.traxUrl}/duplicateChecklist/${id}`);
|
|
93
|
+
}
|
|
94
|
+
getUserDetails(obj) {
|
|
95
|
+
return this.http.get(`${this.traxUrl}/userDetails/${obj.id}?offset=${obj.offset}&limit=${obj.limit}&search=${obj.search}`);
|
|
96
|
+
}
|
|
97
|
+
getStoreList(data) {
|
|
98
|
+
return this.http.post(`${this.storeUrl}/storeInfraList`, data);
|
|
99
|
+
}
|
|
100
|
+
deleteChecklist(id) {
|
|
101
|
+
return this.http.delete(`${this.traxUrl}/deleteChecklist/${id}`);
|
|
102
|
+
}
|
|
103
|
+
publish(id, data) {
|
|
104
|
+
return this.http.put(`${this.traxUrl}/publish/${id}`, data);
|
|
105
|
+
}
|
|
106
|
+
getStores(req) {
|
|
107
|
+
return this.http
|
|
108
|
+
.get(`${this.storeUrl}/get-stores`, { params: req });
|
|
109
|
+
}
|
|
110
|
+
getChecklists(data) {
|
|
111
|
+
return this.http
|
|
112
|
+
.post(`${this.traxUrl}/dashboard/checklistDropdown`, data);
|
|
113
|
+
}
|
|
114
|
+
viewChecklists(data) {
|
|
115
|
+
return this.http
|
|
116
|
+
.post(`${this.galleryApiUrl}/viewchecklist`, data);
|
|
117
|
+
}
|
|
118
|
+
overallFlagMetrics(body) {
|
|
119
|
+
return this.http
|
|
120
|
+
.post(`${this.traxUrl}/flag/flagCardsV1`, body);
|
|
121
|
+
}
|
|
122
|
+
overallFlagMetricsComparison(body) {
|
|
123
|
+
return this.http
|
|
124
|
+
.post(`${this.traxUrl}/flag/flagComparisonCardsV1`, body);
|
|
125
|
+
}
|
|
126
|
+
flagsTable(body) {
|
|
127
|
+
return this.http
|
|
128
|
+
.post(`${this.traxUrl}/flag/flagTablesV1`, body);
|
|
129
|
+
}
|
|
130
|
+
exportFlagsTable(body) {
|
|
131
|
+
return this.http.post(`${this.traxUrl}/flag/checklist-flags-table`, body, { responseType: 'arraybuffer' });
|
|
132
|
+
}
|
|
133
|
+
getOverallCardsData(data) {
|
|
134
|
+
return this.http.post(`${this.traxUrl}/dashboard/overallCards`, data);
|
|
135
|
+
}
|
|
136
|
+
getChecklistPerformanceData(data) {
|
|
137
|
+
return this.http.post(`${this.traxUrl}/dashboard/checklistPerformance`, data);
|
|
138
|
+
}
|
|
139
|
+
getChecklistPerformanceDataExport(data) {
|
|
140
|
+
return this.http.post(`${this.traxUrl}/dashboard/checklistPerformance`, data, { responseType: 'arraybuffer' });
|
|
141
|
+
}
|
|
142
|
+
getStorePerformanceData(data) {
|
|
143
|
+
return this.http.post(`${this.traxUrl}/dashboard/storePerformance`, data);
|
|
144
|
+
}
|
|
145
|
+
getStorePerformanceDataExport(data) {
|
|
146
|
+
return this.http.post(`${this.traxUrl}/dashboard/storePerformance`, data, { responseType: 'arraybuffer' });
|
|
147
|
+
}
|
|
148
|
+
getUserPerformanceData(data) {
|
|
149
|
+
return this.http.post(`${this.traxUrl}/dashboard/userPerformance`, data);
|
|
150
|
+
}
|
|
151
|
+
getUserPerformanceDataExport(data) {
|
|
152
|
+
return this.http.post(`${this.traxUrl}/dashboard/userPerformance`, data, { responseType: 'arraybuffer' });
|
|
153
|
+
}
|
|
154
|
+
getChecklistDropdownData(data) {
|
|
155
|
+
return this.http.post(`${this.traxUrl}/flag/flagChecklistDropDown`, data);
|
|
156
|
+
}
|
|
157
|
+
getChecklistDropdownDashboardData(data) {
|
|
158
|
+
return this.http.post(`${this.traxUrl}/dashboard/checklistDropdown`, data);
|
|
159
|
+
}
|
|
160
|
+
getInfoCardsData(data) {
|
|
161
|
+
return this.http.post(`${this.traxUrl}/dashboard/infoCards`, data);
|
|
162
|
+
}
|
|
163
|
+
checklistFlagTable(body) {
|
|
164
|
+
return this.http
|
|
165
|
+
.post(`${this.traxUrl}/flag/flagChecklistTable`, body);
|
|
166
|
+
}
|
|
167
|
+
reportTable(body) {
|
|
168
|
+
return this.http
|
|
169
|
+
.post(`${this.traxUrl}/dashboard/reportChecklistData`, body);
|
|
170
|
+
}
|
|
171
|
+
flagCardValues(body) {
|
|
172
|
+
return this.http
|
|
173
|
+
.post(`${this.traxUrl}/flag/flagChecklistCards`, body);
|
|
174
|
+
}
|
|
175
|
+
flagCardTerend(body) {
|
|
176
|
+
return this.http
|
|
177
|
+
.post(`${this.traxUrl}/flag/flagChecklistComparisonCards`, body);
|
|
178
|
+
}
|
|
179
|
+
getChecklistInfoData(data) {
|
|
180
|
+
return this.http.post(`${this.traxUrl}/dashboard/checklistInfo`, data);
|
|
181
|
+
}
|
|
182
|
+
getUserlistDropdownData(data) {
|
|
183
|
+
return this.http.post(`${this.traxUrl}/dashboard/userlistDropdown`, data);
|
|
184
|
+
}
|
|
185
|
+
getMonthlyPeformanceData(data) {
|
|
186
|
+
return this.http.post(`${this.traxUrl}/dashboard/monthlyGraph`, data);
|
|
187
|
+
}
|
|
188
|
+
getInfoComparisonCardsData(data) {
|
|
189
|
+
return this.http.post(`${this.traxUrl}/dashboard/infoComparisonCards`, data);
|
|
190
|
+
}
|
|
191
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraxService, deps: [{ token: i1.HttpClient }, { token: i2.GlobalStateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
192
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraxService, providedIn: 'root' });
|
|
193
|
+
}
|
|
194
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraxService, decorators: [{
|
|
195
|
+
type: Injectable,
|
|
196
|
+
args: [{
|
|
197
|
+
providedIn: 'root'
|
|
198
|
+
}]
|
|
199
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJheC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvc2VydmljZXMvdHJheC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEdBQWMsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFrQyxNQUFNLE1BQU0sQ0FBQztBQUN2RyxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQzs7OztBQUU3QixNQUFNLFVBQVUsR0FBRyxpRkFBaUYsQ0FBQztBQUNyRyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUM7QUFLaEMsTUFBTSxPQUFPLFdBQVc7SUFTRjtJQUEwQjtJQVI5QyxPQUFPLENBQUs7SUFDWixRQUFRLENBQUs7SUFDYixhQUFhLENBQUk7SUFDakIsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFBO0lBRXhDLGlCQUFpQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFcEQsWUFBb0IsSUFBZ0IsRUFBVSxFQUFzQjtRQUFoRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDbEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNuRSxJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7Z0JB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QyxPQUFPLDZCQUE2QixFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzNFLENBQUM7SUFDRCx3QkFBd0IsQ0FBRSxJQUFRO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUN2RSxDQUFDO0lBQ0QsMEJBQTBCLENBQUUsSUFBUTtRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sZ0NBQWdDLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDOUUsQ0FBQzt3R0FsTlUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95LCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwsIGNhdGNoRXJyb3IsIG1hcCx0aHJvd0Vycm9yLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcblxyXG5jb25zdCBFWENFTF9UWVBFID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLTgnO1xyXG5jb25zdCBFWENFTF9FWFRFTlNJT04gPSAnLnhsc3gnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJheFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHRyYXhVcmw6YW55O1xyXG4gIHN0b3JlVXJsOmFueTtcclxuICBnYWxsZXJ5QXBpVXJsOmFueVxyXG4gIGRyb3BEb3duVHJpZ2dlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKVxyXG5cclxuICBwcml2YXRlIHJlbG9hZERhdGFTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgcmVsb2FkRGF0YSQgPSB0aGlzLnJlbG9hZERhdGFTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSkge1xyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgaWYgKGVudikge1xyXG4gICAgICAgIHRoaXMudHJheFVybCA9IGVudi50cmF4VXJsO1xyXG4gICAgICAgIHRoaXMuc3RvcmVVcmwgPSBlbnYuc3RvcmVBcGlVcmxcclxuICAgICAgICB0aGlzLmdhbGxlcnlBcGlVcmwgPSBlbnYuZ2FsbGVyeUFwaVVybFxyXG5cclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlclJlbG9hZCgpIHtcclxuICAgIHRoaXMucmVsb2FkRGF0YVN1YmplY3QubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBvcnRBc0V4Y2VsRmlsZShqc29uOiBhbnlbXSwgZXhjZWxGaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCB3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0ID0gWExTWC51dGlscy5qc29uX3RvX3NoZWV0KGpzb24pO1xyXG4gICAgY29uc3Qgd29ya2Jvb2s6IFhMU1guV29ya0Jvb2sgPSB7IFNoZWV0czogeyAnZGF0YSc6IHdvcmtzaGVldCB9LCBTaGVldE5hbWVzOiBbJ2RhdGEnXSB9O1xyXG4gICAgY29uc3QgZXhjZWxCdWZmZXI6IGFueSA9IFhMU1gud3JpdGUod29ya2Jvb2ssIHsgYm9va1R5cGU6ICd4bHN4JywgdHlwZTogJ2FycmF5JyB9KTtcclxuICAgIHRoaXMuc2F2ZUFzRXhjZWxGaWxlKGV4Y2VsQnVmZmVyLCBleGNlbEZpbGVOYW1lKTtcclxuICB9XHJcbiBcclxuICBwdWJsaWMgc2F2ZUFzRXhjZWxGaWxlKGJ1ZmZlcjogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcclxuICAgICAgdHlwZTogRVhDRUxfVFlQRVxyXG4gICAgfSk7XHJcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lICsgJ2xpc3QnKyBFWENFTF9FWFRFTlNJT04pO1xyXG4gIH1cclxuIFxyXG4gIHB1YmxpYyBzYXZlQXNUZW1wbGF0ZShidWZmZXI6IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgIHR5cGU6IEVYQ0VMX1RZUEVcclxuICAgIH0pO1xyXG4gICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArIEVYQ0VMX0VYVEVOU0lPTik7XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGdldFN1bW1hcnlUYWJsZURhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS96b25lU3VtbWFyeVRhYmxlX3YyYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0Y2hlY2tsaXN0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vZ2V0Y2hlY2tsaXN0YCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0U3VtbWFyeVRhYmxlRXhwb3J0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vem9uZVN1bW1hcnlUYWJsZV92MmAsIGRhdGEsIHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuXHJcbiAgY2hlY2tsaXN0KG9iajphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vY2hlY2tsaXN0P2xpbWl0PSR7b2JqLmxpbWl0fSZvZmZzZXQ9JHtvYmoub2Zmc2V0fSZzb3J0Q29sdW1uTmFtZT0ke29iai5zb3J0Q29sdW1ufSZzZWFyY2g9JHtvYmouc2VhcmNofSZzb3J0Qnk9JHtvYmouc29ydEJ5fSZjbGllbnRJZD0ke29iai5jbGllbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgaW1hZ2V1cGxvYWQodXNlcnM6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS91cGxvYWRgLHVzZXJzKVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVVc2VyKHVzZXJzOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vdmFsaWRhdGVVc2VyYCx1c2VycylcclxuICB9XHJcblxyXG4gIGdldHVwZGF0ZWNoZWNrbGlzdChpZDphbnksZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMudHJheFVybH0vY2hlY2tsaXN0L3VwZGF0ZS8ke2lkfWAsZGF0YSlcclxuICB9XHJcblxyXG4gIGNyZWF0ZWNoZWNrbGlzdChkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vY2hlY2tsaXN0L2NyZWF0ZWAsIGRhdGEgKVxyXG4gIH1cclxuXHJcbiAgY29uZmlnVXBkYXRlKG9iajphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2NoZWNrbGlzdENvbmZpZ3VyZWAsb2JqKVxyXG4gIH1cclxuXHJcbiAgZ2V0Y29uZmlnKG9iajphbnkpIHtcclxuICAgIGxldCBrZXkgPSBPYmplY3Qua2V5cyhvYmopWzBdO1xyXG4gICAgbGV0IHZhbHVlID0gb2JqW09iamVjdC5rZXlzKG9iailbMF1dO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VXJsfS9nZXRDb25maWdEZXRhaWxzPyR7a2V5fT0ke3ZhbHVlfWApXHJcbiAgfVxyXG5cclxuICBydW5BSUluc2VydChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L3J1bkFJSW5zZXJ0YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGR1cGxpY2F0ZWNoZWNrbGlzdChpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L2R1cGxpY2F0ZUNoZWNrbGlzdC8ke2lkfWApXHJcbiAgfVxyXG5cclxuICBnZXRVc2VyRGV0YWlscyhvYmo6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L3VzZXJEZXRhaWxzLyR7b2JqLmlkfT9vZmZzZXQ9JHtvYmoub2Zmc2V0fSZsaW1pdD0ke29iai5saW1pdH0mc2VhcmNoPSR7b2JqLnNlYXJjaH1gKVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVMaXN0KGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZVVybH0vc3RvcmVJbmZyYUxpc3RgLGRhdGEpXHJcbiAgfVxyXG5cclxuICBkZWxldGVDaGVja2xpc3QoaWQ6IHN0cmluZywpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMudHJheFVybH0vZGVsZXRlQ2hlY2tsaXN0LyR7aWR9YClcclxuICB9XHJcblxyXG4gIHB1Ymxpc2goaWQ6IHN0cmluZywgZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLnRyYXhVcmx9L3B1Ymxpc2gvJHtpZH1gLCBkYXRhKVxyXG4gIH1cclxuICBnZXRTdG9yZXMocmVxOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5zdG9yZVVybH0vZ2V0LXN0b3Jlc2AsIHsgcGFyYW1zOiByZXEgfSlcclxuICB9XHJcblxyXG4gIGdldENoZWNrbGlzdHMoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9jaGVja2xpc3REcm9wZG93bmAsIGRhdGEpXHJcbiAgfVxyXG4gIHZpZXdDaGVja2xpc3RzKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5nYWxsZXJ5QXBpVXJsfS92aWV3Y2hlY2tsaXN0YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIG92ZXJhbGxGbGFnTWV0cmljcyhib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFVybH0vZmxhZy9mbGFnQ2FyZHNWMWAsIGJvZHkpXHJcbiAgfVxyXG5cclxuICBvdmVyYWxsRmxhZ01ldHJpY3NDb21wYXJpc29uKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdDb21wYXJpc29uQ2FyZHNWMWAsIGJvZHkpXHJcbiAgfVxyXG5cclxuICBmbGFnc1RhYmxlKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdUYWJsZXNWMWAsIGJvZHkpXHJcbiAgfVxyXG5cclxuICBleHBvcnRGbGFnc1RhYmxlKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9mbGFnL2NoZWNrbGlzdC1mbGFncy10YWJsZWAsIGJvZHksIHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuXHJcbiAgZ2V0T3ZlcmFsbENhcmRzRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9vdmVyYWxsQ2FyZHNgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRDaGVja2xpc3RQZXJmb3JtYW5jZURhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvY2hlY2tsaXN0UGVyZm9ybWFuY2VgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRDaGVja2xpc3RQZXJmb3JtYW5jZURhdGFFeHBvcnQoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvY2hlY2tsaXN0UGVyZm9ybWFuY2VgLCBkYXRhLCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcbiAgZ2V0U3RvcmVQZXJmb3JtYW5jZURhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvc3RvcmVQZXJmb3JtYW5jZWAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldFN0b3JlUGVyZm9ybWFuY2VEYXRhRXhwb3J0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL3N0b3JlUGVyZm9ybWFuY2VgLCBkYXRhLCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcbiAgZ2V0VXNlclBlcmZvcm1hbmNlRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC91c2VyUGVyZm9ybWFuY2VgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRVc2VyUGVyZm9ybWFuY2VEYXRhRXhwb3J0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL3VzZXJQZXJmb3JtYW5jZWAsIGRhdGEsIHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuICBnZXRDaGVja2xpc3REcm9wZG93bkRhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdDaGVja2xpc3REcm9wRG93bmAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldENoZWNrbGlzdERyb3Bkb3duRGFzaGJvYXJkRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9jaGVja2xpc3REcm9wZG93bmAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldEluZm9DYXJkc0RhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvaW5mb0NhcmRzYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGNoZWNrbGlzdEZsYWdUYWJsZShib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFVybH0vZmxhZy9mbGFnQ2hlY2tsaXN0VGFibGVgLCBib2R5KVxyXG4gIH1cclxuXHJcbiAgcmVwb3J0VGFibGUoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9yZXBvcnRDaGVja2xpc3REYXRhYCwgYm9keSlcclxuICB9XHJcblxyXG4gIGZsYWdDYXJkVmFsdWVzKGJvZHk6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdDaGVja2xpc3RDYXJkc2AsIGJvZHkpXHJcbiAgfVxyXG5cclxuICBmbGFnQ2FyZFRlcmVuZChib2R5OmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFVybH0vZmxhZy9mbGFnQ2hlY2tsaXN0Q29tcGFyaXNvbkNhcmRzYCwgYm9keSlcclxuICB9XHJcblxyXG4gIGdldENoZWNrbGlzdEluZm9EYXRhKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL2NoZWNrbGlzdEluZm9gLCBkYXRhKVxyXG4gIH1cclxuICBnZXRVc2VybGlzdERyb3Bkb3duRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC91c2VybGlzdERyb3Bkb3duYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0TW9udGhseVBlZm9ybWFuY2VEYXRhKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL21vbnRobHlHcmFwaGAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldEluZm9Db21wYXJpc29uQ2FyZHNEYXRhKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL2luZm9Db21wYXJpc29uQ2FyZHNgLCBkYXRhKVxyXG4gIH1cclxuXHJcbn1cclxuIl19
|