ezlibrary_v2 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/esm2020/ezlibrary_v2.mjs +5 -0
  2. package/esm2020/lib/admin-service/admin-service.service.mjs +36 -0
  3. package/esm2020/lib/analysis-search/analysis-search.component.mjs +1083 -0
  4. package/esm2020/lib/assort-service/assort-service.service.mjs +31 -0
  5. package/esm2020/lib/attribute-definition/attribute-definition.component.mjs +231 -0
  6. package/esm2020/lib/auth/auth.guard.mjs +40 -0
  7. package/esm2020/lib/bi-service/bi.service.mjs +58 -0
  8. package/esm2020/lib/call-info/callinfo.component.mjs +126 -0
  9. package/esm2020/lib/comman-service/comman-service.service.mjs +679 -0
  10. package/esm2020/lib/comman-service/share-data-service.service.mjs +23 -0
  11. package/esm2020/lib/contact-search/contact-search.component.mjs +679 -0
  12. package/esm2020/lib/contact-service/contact-service.service.mjs +47 -0
  13. package/esm2020/lib/ezheader/header.component.mjs +383 -0
  14. package/esm2020/lib/ezlib.module.mjs +220 -0
  15. package/esm2020/lib/file-upload/fileupload.component.mjs +920 -0
  16. package/esm2020/lib/file-upload-log/file-upload-log.component.mjs +175 -0
  17. package/esm2020/lib/fileupload-module/fileupload-dashboard/fileupload-dashboard.component.mjs +14 -0
  18. package/esm2020/lib/fileupload-module/fileupload-routing.module.mjs +28 -0
  19. package/esm2020/lib/footer/footer.component.mjs +18 -0
  20. package/esm2020/lib/globle/common-pdf.service.mjs +28 -0
  21. package/esm2020/lib/globle/globle-env.service.mjs +45 -0
  22. package/esm2020/lib/globle/memo-report.service.mjs +2800 -0
  23. package/esm2020/lib/globle/pdf-service.service.mjs +18848 -0
  24. package/esm2020/lib/globle/shared-services.service.mjs +27 -0
  25. package/esm2020/lib/globle/upload-service.service.mjs +69 -0
  26. package/esm2020/lib/header/header.component.mjs +179 -0
  27. package/esm2020/lib/invalid/invalid.component.mjs +71 -0
  28. package/esm2020/lib/logout/logout.component.mjs +107 -0
  29. package/esm2020/lib/menu-right/menu-right.component.mjs +252 -0
  30. package/esm2020/lib/pipes/number-with-commas.pipe.mjs +24 -0
  31. package/esm2020/lib/pipes/order-by-pipe.pipe.mjs +17 -0
  32. package/esm2020/lib/pipes/selectedCount.mjs +19 -0
  33. package/esm2020/lib/pipes/sum.pipe.mjs +16 -0
  34. package/esm2020/lib/pkt-data/pkt-data.component.mjs +1107 -0
  35. package/esm2020/lib/pricing-service/pricing.service.mjs +58 -0
  36. package/esm2020/lib/qa-analysis/qa-analysis.component.mjs +1035 -0
  37. package/esm2020/lib/report-format/report-format.component.mjs +400 -0
  38. package/esm2020/lib/sessionend/session-end.guard.mjs +28 -0
  39. package/esm2020/lib/stock-service/lazyload.service.mjs +21 -0
  40. package/esm2020/lib/stock-service/stock-service.service.mjs +62 -0
  41. package/esm2020/lib/system-module/subform/subform.component.mjs +2481 -0
  42. package/esm2020/lib/system-module/system/system.component.mjs +959 -0
  43. package/esm2020/lib/system-module/system-service/system-service.service.mjs +85 -0
  44. package/esm2020/lib/system-module/system-service/upload-file.service.mjs +86 -0
  45. package/esm2020/lib/utility/app-no-dbl-click.directive.mjs +23 -0
  46. package/esm2020/lib/utility/constants.mjs +5 -0
  47. package/esm2020/lib/utility/contact-table-search.pipe.mjs +25 -0
  48. package/esm2020/lib/utility/formate-num-field.pipe.mjs +19 -0
  49. package/esm2020/lib/utility/search-pipe.pipe.mjs +26 -0
  50. package/esm2020/lib/utility/selective-preloading-strategy.mjs +23 -0
  51. package/esm2020/lib/utility/table-search.pipe.mjs +25 -0
  52. package/esm2020/lib/utility/tranform.directive.mjs +27 -0
  53. package/esm2020/lib/websearch-history/websearch-history.component.mjs +273 -0
  54. package/esm2020/public_api.mjs +57 -0
  55. package/ezlibrary_v2.d.ts +5 -0
  56. package/fesm2015/ezlibrary_v2.mjs +33543 -0
  57. package/fesm2015/ezlibrary_v2.mjs.map +1 -0
  58. package/fesm2020/ezlibrary_v2.mjs +33533 -0
  59. package/fesm2020/ezlibrary_v2.mjs.map +1 -0
  60. package/lib/admin-service/admin-service.service.d.ts +13 -0
  61. package/lib/analysis-search/analysis-search.component.d.ts +122 -0
  62. package/lib/assort-service/assort-service.service.d.ts +12 -0
  63. package/lib/attribute-definition/attribute-definition.component.d.ts +47 -0
  64. package/lib/auth/auth.guard.d.ts +16 -0
  65. package/lib/bi-service/bi.service.d.ts +20 -0
  66. package/lib/call-info/callinfo.component.d.ts +30 -0
  67. package/lib/comman-service/comman-service.service.d.ts +111 -0
  68. package/lib/comman-service/share-data-service.service.d.ts +10 -0
  69. package/lib/contact-search/contact-search.component.d.ts +115 -0
  70. package/lib/contact-service/contact-service.service.d.ts +15 -0
  71. package/lib/ezheader/header.component.d.ts +61 -0
  72. package/lib/ezlib.module.d.ts +47 -0
  73. package/lib/file-upload/fileupload.component.d.ts +131 -0
  74. package/lib/file-upload-log/file-upload-log.component.d.ts +53 -0
  75. package/lib/fileupload-module/fileupload-dashboard/fileupload-dashboard.component.d.ts +8 -0
  76. package/lib/fileupload-module/fileupload-routing.module.d.ts +7 -0
  77. package/lib/footer/footer.component.d.ts +9 -0
  78. package/lib/globle/common-pdf.service.d.ts +9 -0
  79. package/lib/globle/globle-env.service.d.ts +16 -0
  80. package/lib/globle/memo-report.service.d.ts +107 -0
  81. package/lib/globle/pdf-service.service.d.ts +459 -0
  82. package/lib/globle/shared-services.service.d.ts +12 -0
  83. package/lib/globle/upload-service.service.d.ts +20 -0
  84. package/lib/header/header.component.d.ts +45 -0
  85. package/lib/invalid/invalid.component.d.ts +12 -0
  86. package/lib/logout/logout.component.d.ts +21 -0
  87. package/lib/menu-right/menu-right.component.d.ts +47 -0
  88. package/lib/pipes/number-with-commas.pipe.d.ts +7 -0
  89. package/lib/pipes/order-by-pipe.pipe.d.ts +7 -0
  90. package/lib/pipes/selectedCount.d.ts +7 -0
  91. package/lib/pipes/sum.pipe.d.ts +7 -0
  92. package/lib/pkt-data/pkt-data.component.d.ts +189 -0
  93. package/lib/pricing-service/pricing.service.d.ts +20 -0
  94. package/lib/qa-analysis/qa-analysis.component.d.ts +99 -0
  95. package/lib/report-format/report-format.component.d.ts +74 -0
  96. package/lib/sessionend/session-end.guard.d.ts +10 -0
  97. package/lib/stock-service/lazyload.service.d.ts +7 -0
  98. package/lib/stock-service/stock-service.service.d.ts +19 -0
  99. package/lib/system-module/subform/subform.component.d.ts +227 -0
  100. package/lib/system-module/system/system.component.d.ts +113 -0
  101. package/lib/system-module/system-service/system-service.service.d.ts +23 -0
  102. package/lib/system-module/system-service/upload-file.service.d.ts +12 -0
  103. package/lib/utility/app-no-dbl-click.directive.d.ts +7 -0
  104. package/lib/utility/constants.d.ts +4 -0
  105. package/lib/utility/contact-table-search.pipe.d.ts +7 -0
  106. package/lib/utility/formate-num-field.pipe.d.ts +7 -0
  107. package/lib/utility/search-pipe.pipe.d.ts +7 -0
  108. package/lib/utility/selective-preloading-strategy.d.ts +9 -0
  109. package/lib/utility/table-search.pipe.d.ts +7 -0
  110. package/lib/utility/tranform.directive.d.ts +10 -0
  111. package/lib/websearch-history/websearch-history.component.d.ts +62 -0
  112. package/package.json +48 -0
  113. package/public_api.d.ts +52 -0
@@ -0,0 +1,252 @@
1
+ import { Component } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { HttpHeaders } from '@angular/common/http';
4
+ import { Router } from '@angular/router';
5
+ import { NgxSpinnerService } from "ngx-spinner";
6
+ import { ToastrService } from 'ngx-toastr';
7
+ import { Cookie } from 'ng2-cookies/ng2-cookies';
8
+ import { AdminServiceService } from '../admin-service/admin-service.service';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common/http";
11
+ import * as i2 from "@angular/router";
12
+ import * as i3 from "../admin-service/admin-service.service";
13
+ import * as i4 from "ngx-toastr";
14
+ import * as i5 from "ngx-spinner";
15
+ import * as i6 from "@angular/common";
16
+ import * as i7 from "@angular/forms";
17
+ export class MenuRightComponent {
18
+ constructor(http, router, as, toastr, spinnerService) {
19
+ this.http = http;
20
+ this.router = router;
21
+ this.as = as;
22
+ this.toastr = toastr;
23
+ this.spinnerService = spinnerService;
24
+ this.navigation = [];
25
+ this.mdllist = [];
26
+ this.btn = [];
27
+ this.menulvl1List = [];
28
+ this.menulvl2List = [];
29
+ this.usrLst = [];
30
+ this.userIdns = [];
31
+ this.selectedSlaves = {};
32
+ this.cblen = 0;
33
+ this.v = "";
34
+ this.v1 = "";
35
+ this.v2 = "";
36
+ this.app = "";
37
+ this.applicationList = [];
38
+ }
39
+ fillApp() {
40
+ this.spinnerService.show();
41
+ const reqObj = {};
42
+ reqObj["formNme"] = "menuRightsMaster";
43
+ this.header['method'] = 'load';
44
+ const options = ({ headers: new HttpHeaders(this.header) });
45
+ console.log("this.header", this.header);
46
+ this.as.getMenuRights(reqObj, options).then((response) => {
47
+ console.log(response);
48
+ if (response.status == 'SUCCESS') {
49
+ this.applicationList = response.applicationList;
50
+ this.btn = response.buttons[0];
51
+ this.spinnerService.hide();
52
+ }
53
+ else {
54
+ this.spinnerService.hide();
55
+ this.toastr.error(response.message);
56
+ }
57
+ }).catch((err) => {
58
+ this.spinnerService.hide();
59
+ this.toastr.error(err.message);
60
+ });
61
+ }
62
+ fillModule(applId) {
63
+ this.spinnerService.show();
64
+ const reqObj = {};
65
+ reqObj["formNme"] = "menuRightsMaster";
66
+ reqObj["applcationIdn"] = applId;
67
+ this.header['method'] = 'loadModule';
68
+ const options = ({ headers: new HttpHeaders(this.header) });
69
+ this.as.getMenuRights(reqObj, options).then((response) => {
70
+ console.log(response);
71
+ if (response.status == 'SUCCESS') {
72
+ this.usrLst = [];
73
+ this.mdllist = response.moduleList;
74
+ this.pageinfo = response.pageInfo;
75
+ console.log(this.btn);
76
+ console.log(this.mdllist);
77
+ this.spinnerService.hide();
78
+ }
79
+ else {
80
+ this.spinnerService.hide();
81
+ this.toastr.error(response.message);
82
+ }
83
+ }).catch((err) => {
84
+ this.spinnerService.hide();
85
+ this.toastr.error(err.message);
86
+ });
87
+ }
88
+ fillLevel1(module_idn) {
89
+ this.spinnerService.show();
90
+ console.log(module_idn);
91
+ const reqObj = {};
92
+ reqObj["formNme"] = "menuRightsMaster";
93
+ reqObj["moduleIdn"] = module_idn;
94
+ this.header['method'] = 'loadMenulevel1';
95
+ const options = ({ headers: new HttpHeaders(this.header) });
96
+ this.as.getMenuRights(reqObj, options).then((response) => {
97
+ console.log(response);
98
+ if (response.status == 'SUCCESS') {
99
+ this.usrLst = [];
100
+ this.menulvl2List = [];
101
+ this.menulvl1List = response.kv;
102
+ console.log(this.menulvl1List);
103
+ this.spinnerService.hide();
104
+ }
105
+ else {
106
+ this.spinnerService.hide();
107
+ this.toastr.error(response.message);
108
+ }
109
+ }).catch((err) => {
110
+ this.spinnerService.hide();
111
+ this.toastr.error(err.message);
112
+ });
113
+ }
114
+ fillLevel2(module_idn, menuIdn) {
115
+ this.spinnerService.show();
116
+ console.log(module_idn);
117
+ console.log(menuIdn);
118
+ const reqObj = {};
119
+ reqObj["formNme"] = "menuRightsMaster";
120
+ reqObj["moduleIdn"] = module_idn;
121
+ reqObj["menuIdn"] = menuIdn;
122
+ this.header['method'] = 'loadMenulevel2';
123
+ const options = ({ headers: new HttpHeaders(this.header) });
124
+ this.as.getMenuRights(reqObj, options).then((response) => {
125
+ console.log(response);
126
+ if (response.status == 'SUCCESS') {
127
+ this.menulvl2List = response.kv;
128
+ this.usrLst = [];
129
+ this.spinnerService.hide();
130
+ console.log(this.menulvl2List);
131
+ }
132
+ else {
133
+ this.spinnerService.hide();
134
+ this.toastr.error(response.message);
135
+ }
136
+ }).catch((err) => {
137
+ this.spinnerService.hide();
138
+ this.toastr.error(err.message);
139
+ });
140
+ }
141
+ submenuChange() {
142
+ this.usrLst = [];
143
+ }
144
+ getUserRight(module_idn, menuIdn, submenu, applid) {
145
+ this.spinnerService.show();
146
+ const reqObj = {};
147
+ reqObj["applcationIdn"] = applid;
148
+ reqObj["moduleIdn"] = module_idn;
149
+ reqObj["menuIdn"] = (submenu == undefined || submenu == "") ? menuIdn : submenu;
150
+ reqObj["formNme"] = "menuRightsMaster";
151
+ this.header['method'] = 'loaduserRights';
152
+ console.log(reqObj);
153
+ console.log("this.header", this.header);
154
+ const options = ({ headers: new HttpHeaders(this.header) });
155
+ this.as.getMenuRights(reqObj, options).then((response) => {
156
+ console.log(response);
157
+ if (response.status == 'SUCCESS') {
158
+ this.usrLst = response.userList;
159
+ this.usrRightLst = response.userRightList;
160
+ this.spinnerService.hide();
161
+ console.log(this.usrLst);
162
+ }
163
+ else {
164
+ this.spinnerService.hide();
165
+ this.toastr.error(response.message);
166
+ }
167
+ }).catch((err) => {
168
+ this.spinnerService.hide();
169
+ this.toastr.error(err.message);
170
+ });
171
+ }
172
+ //e,v,v1,user.user_idn,v2,app // parameter sequence in html
173
+ onChange(e, moduleidn, menuIdn, user_idn, submenuid, applId) {
174
+ this.spinnerService.show();
175
+ const reqObj = {};
176
+ reqObj["menuIdn"] = (submenuid == undefined || submenuid == "") ? menuIdn : submenuid;
177
+ reqObj["userIdn"] = [user_idn];
178
+ reqObj["hdrIdn"] = menuIdn; // (submenuid == undefined || submenuid == "") ? menuIdn : '';//menuidn lvl1
179
+ reqObj["stt"] = e.target.checked == true ? "1" : "0";
180
+ reqObj["formNme"] = "saveUserRightMaster";
181
+ this.header['method'] = 'saveUserRights';
182
+ console.log(reqObj);
183
+ const options = ({ headers: new HttpHeaders(this.header) });
184
+ this.as.saveUserMenuRights(reqObj, options).then((response) => {
185
+ console.log(response);
186
+ if (response.status == 'SUCCESS') {
187
+ this.spinnerService.hide();
188
+ this.getUserRight(moduleidn, menuIdn, submenuid, applId);
189
+ this.toastr.success(response.message);
190
+ }
191
+ else {
192
+ this.spinnerService.hide();
193
+ this.toastr.error(response.message);
194
+ }
195
+ }).catch((err) => {
196
+ this.spinnerService.hide();
197
+ this.toastr.error(err.message);
198
+ });
199
+ }
200
+ onChangeAll(e, moduleidn, menuIdn, submenuid, applId) {
201
+ this.spinnerService.show();
202
+ this.usrLst.forEach(eachObj => {
203
+ this.userIdns.push(eachObj.user_idn);
204
+ });
205
+ const reqObj = {};
206
+ reqObj["menuIdn"] = (submenuid == undefined || submenuid == "") ? menuIdn : submenuid;
207
+ reqObj["userIdn"] = this.userIdns;
208
+ reqObj["hdrIdn"] = menuIdn; //(submenuid == undefined || submenuid == "") ? menuIdn : '';
209
+ reqObj["stt"] = e.target.checked == true ? "1" : "0";
210
+ reqObj["formNme"] = "saveUserRightMaster";
211
+ this.header['method'] = 'saveUserRights';
212
+ const options = ({ headers: new HttpHeaders(this.header) });
213
+ this.as.saveUserMenuRights(reqObj, options).then((response) => {
214
+ this.userIdns = [];
215
+ if (response.status == 'SUCCESS') {
216
+ this.spinnerService.hide();
217
+ this.getUserRight(moduleidn, menuIdn, submenuid, applId);
218
+ this.toastr.success(response.message);
219
+ }
220
+ else {
221
+ this.spinnerService.hide();
222
+ this.toastr.error(response.message);
223
+ }
224
+ }).catch((err) => {
225
+ this.spinnerService.hide();
226
+ this.toastr.error(err.message);
227
+ });
228
+ }
229
+ ngOnInit() {
230
+ let mdlk = JSON.parse(localStorage.getItem('mdlKey'));
231
+ debugger;
232
+ this.cUrl = this.router.url;
233
+ console.log(this.cUrl.split('/')[1]);
234
+ this.header = {
235
+ 'clientkey': Cookie.get('_ck'),
236
+ 'Content-Type': 'application/json',
237
+ 'modulekey': mdlk[this.cUrl.split('/')[1]],
238
+ 'loginid': Cookie.get('_logid'),
239
+ 'source': 'qs'
240
+ };
241
+ //this.fillModule();
242
+ this.fillApp();
243
+ }
244
+ navigationFun(nav, i) { }
245
+ }
246
+ /** @nocollapse */ /** @nocollapse */ MenuRightComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MenuRightComponent, deps: [{ token: i1.HttpClient }, { token: i2.Router }, { token: i3.AdminServiceService }, { token: i4.ToastrService }, { token: i5.NgxSpinnerService }], target: i0.ɵɵFactoryTarget.Component });
247
+ /** @nocollapse */ /** @nocollapse */ MenuRightComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: MenuRightComponent, selector: "app-menu-right", ngImport: i0, template: "<div class=\"mt\">\r\n <div class=\"panel panel-default\">\r\n <div class=\"panel-heading\">\r\n <h3 class=\"panel-title\">{{pageinfo?.title}}</h3>\r\n </div>\r\n </div>\r\n <div class=\"content-frame\" style=\"background: #fff;height:100vh;\">\r\n <!-- START CONTENT FRAME LEFT -->\r\n <div class=\"content-frame-left\" *ngIf=\"false\">\r\n <div class=\"panel panel-default\">\r\n <div class=\"panel-body\">\r\n <div class=\"list-group border-bottom\">\r\n <a href=\"javascript:void(0)\" class=\"list-group-item\" [ngClass]=\"{'active' :i == 'cLink'}\" *ngFor=\"let nav of navigation;let i=index\"\r\n (click)=\"navigationFun(nav,i);\">{{nav?.form_field_title}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- END CONTENT FRAME LEFT -->\r\n <!-- START CONTENT FRAME BODY -->\r\n <div class=\"content-frame-body\" [ngStyle]=\"{'margin-left': false ? '0' : '250px'}\">\r\n <div class=\"panel panel-default\">\r\n <div class=\"panel-body\">\r\n <div class=\"row\">\r\n\r\n <div class=\"col-md-2\">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" style=\"padding-left: 2px;\">Application</label>\r\n <select class=\"form-control\" [(ngModel)]=\"app\" name=\"app\" (change)=\"fillModule(app)\">\r\n <option *ngFor=\"let lov of applicationList\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-2\" *ngIf=\"mdllist?.length > 1 \">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" style=\"padding-left: 2px;\">Module</label>\r\n <select class=\"form-control\" [(ngModel)]=\"v\" name=\"v\" (change)=\"fillLevel1(v)\">\r\n <option *ngFor=\"let lov of mdllist\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-2\" *ngIf=\"menulvl1List?.length > 1 \">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" style=\"padding-left: 2px;\">Main Menu</label>\r\n <select class=\"form-control\" [(ngModel)]=\"v1\" name=\"v1\" (change)=\"fillLevel2(v,v1)\">\r\n <option *ngFor=\"let lov of menulvl1List\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-2\" *ngIf=\"menulvl2List?.length > 1 \">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" style=\"padding-left: 2px;\">Sub Menu</label>\r\n <select class=\"form-control\" [(ngModel)]=\"v2\" name=\"v2\" (change)=\"submenuChange()\">\r\n <option *ngFor=\"let lov of menulvl2List\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-2\">\r\n <button type=\"button\" id=\"addBtn\" class=\"btn btn-info \" style=\"margin-top: 23px;\" (click)=\"getUserRight(v,v1,v2,app)\">{{btn?.form_field_title}}</button>\r\n </div>\r\n </div>\r\n <div style=\"padding: 0 10px;\">\r\n <div style=\"border:1px solid #e5e5e5;margin-top: 30px\" *ngIf=\"usrLst.length > 0\">\r\n <div class=\"row\" *ngIf=\"usrLst.length > 0\">\r\n <div class=\"panel panel-default\" style=\"margin-bottom: 25px;\">\r\n <div class=\"panel-heading\" style=\"padding: 0px;\">\r\n <h3 class=\"panel-title\" style=\"padding: 8px; font-size: 14px;\">Users</h3>\r\n <div class=\"col-md-2 chkAll\" style=\"margin: 0px;\">\r\n <div class=\"form-group\" style=\"padding: 10px;\">\r\n <div class=\"col-md-3\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" class=\"switch\" (change)=\"onChangeAll($event,v,v1,v2,app)\" name=\"chkAll\" id=\"chkAll\" [checked]=\"(usrLst.length == usrRightLst.length ? 'checked' : '')\">\r\n <span></span>\r\n </label>\r\n </div>\r\n <label class=\"col-md-4 control-label text-left\" style=\"padding-top: 3px;\r\n padding-left: 40px;\">All </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <form class=\"form-horizontal\">\r\n <div class=\"col-md-2\" *ngFor=\"let user of usrLst ;let i=index\">\r\n <div class=\"form-group\">\r\n <div class=\"col-md-3\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" class=\"switch\" (change)=\"onChange($event,v,v1,user.user_idn,v2,app)\" [checked]=\"(false !== usrRightLst.includes(user?.user_idn) ? 'checked' : '')\"\r\n name=\"chk\" id=\"chk{{user.user_idn}}\">\r\n <span></span>\r\n </label>\r\n </div>\r\n <label class=\"col-md-4 control-label text-left\" style=\"padding-top: 3px;padding-left: 40px;text-transform: capitalize;\">{{user?.username}}</label>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- END CONTENT FRAME BODY -->\r\n </div>\r\n</div>", styles: [".btn-default.btn-on-1.active,.btn-default.btn-off-1.active{background-color:#3b5998;color:#fff}.btn.btn-xs,.btn-group-xs>.btn{font-size:12px;padding:5px 15px}.tbactive{background:#3B5998;color:#fff}input[type=radio]{display:none}.content-frame-body{padding:10px!important;margin-left:0!important}.content-frame-left{background:transparent!important;width:250px!important}.headingc{padding:5px;background:whitesmoke;font-size:14px;font-weight:500}.chkAll{padding:0;margin-bottom:15px}\n"], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i7.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i7.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
248
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MenuRightComponent, decorators: [{
249
+ type: Component,
250
+ args: [{ selector: 'app-menu-right', template: "<div class=\"mt\">\r\n <div class=\"panel panel-default\">\r\n <div class=\"panel-heading\">\r\n <h3 class=\"panel-title\">{{pageinfo?.title}}</h3>\r\n </div>\r\n </div>\r\n <div class=\"content-frame\" style=\"background: #fff;height:100vh;\">\r\n <!-- START CONTENT FRAME LEFT -->\r\n <div class=\"content-frame-left\" *ngIf=\"false\">\r\n <div class=\"panel panel-default\">\r\n <div class=\"panel-body\">\r\n <div class=\"list-group border-bottom\">\r\n <a href=\"javascript:void(0)\" class=\"list-group-item\" [ngClass]=\"{'active' :i == 'cLink'}\" *ngFor=\"let nav of navigation;let i=index\"\r\n (click)=\"navigationFun(nav,i);\">{{nav?.form_field_title}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- END CONTENT FRAME LEFT -->\r\n <!-- START CONTENT FRAME BODY -->\r\n <div class=\"content-frame-body\" [ngStyle]=\"{'margin-left': false ? '0' : '250px'}\">\r\n <div class=\"panel panel-default\">\r\n <div class=\"panel-body\">\r\n <div class=\"row\">\r\n\r\n <div class=\"col-md-2\">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" style=\"padding-left: 2px;\">Application</label>\r\n <select class=\"form-control\" [(ngModel)]=\"app\" name=\"app\" (change)=\"fillModule(app)\">\r\n <option *ngFor=\"let lov of applicationList\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-2\" *ngIf=\"mdllist?.length > 1 \">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" style=\"padding-left: 2px;\">Module</label>\r\n <select class=\"form-control\" [(ngModel)]=\"v\" name=\"v\" (change)=\"fillLevel1(v)\">\r\n <option *ngFor=\"let lov of mdllist\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-2\" *ngIf=\"menulvl1List?.length > 1 \">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" style=\"padding-left: 2px;\">Main Menu</label>\r\n <select class=\"form-control\" [(ngModel)]=\"v1\" name=\"v1\" (change)=\"fillLevel2(v,v1)\">\r\n <option *ngFor=\"let lov of menulvl1List\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-2\" *ngIf=\"menulvl2List?.length > 1 \">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" style=\"padding-left: 2px;\">Sub Menu</label>\r\n <select class=\"form-control\" [(ngModel)]=\"v2\" name=\"v2\" (change)=\"submenuChange()\">\r\n <option *ngFor=\"let lov of menulvl2List\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-2\">\r\n <button type=\"button\" id=\"addBtn\" class=\"btn btn-info \" style=\"margin-top: 23px;\" (click)=\"getUserRight(v,v1,v2,app)\">{{btn?.form_field_title}}</button>\r\n </div>\r\n </div>\r\n <div style=\"padding: 0 10px;\">\r\n <div style=\"border:1px solid #e5e5e5;margin-top: 30px\" *ngIf=\"usrLst.length > 0\">\r\n <div class=\"row\" *ngIf=\"usrLst.length > 0\">\r\n <div class=\"panel panel-default\" style=\"margin-bottom: 25px;\">\r\n <div class=\"panel-heading\" style=\"padding: 0px;\">\r\n <h3 class=\"panel-title\" style=\"padding: 8px; font-size: 14px;\">Users</h3>\r\n <div class=\"col-md-2 chkAll\" style=\"margin: 0px;\">\r\n <div class=\"form-group\" style=\"padding: 10px;\">\r\n <div class=\"col-md-3\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" class=\"switch\" (change)=\"onChangeAll($event,v,v1,v2,app)\" name=\"chkAll\" id=\"chkAll\" [checked]=\"(usrLst.length == usrRightLst.length ? 'checked' : '')\">\r\n <span></span>\r\n </label>\r\n </div>\r\n <label class=\"col-md-4 control-label text-left\" style=\"padding-top: 3px;\r\n padding-left: 40px;\">All </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <form class=\"form-horizontal\">\r\n <div class=\"col-md-2\" *ngFor=\"let user of usrLst ;let i=index\">\r\n <div class=\"form-group\">\r\n <div class=\"col-md-3\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" class=\"switch\" (change)=\"onChange($event,v,v1,user.user_idn,v2,app)\" [checked]=\"(false !== usrRightLst.includes(user?.user_idn) ? 'checked' : '')\"\r\n name=\"chk\" id=\"chk{{user.user_idn}}\">\r\n <span></span>\r\n </label>\r\n </div>\r\n <label class=\"col-md-4 control-label text-left\" style=\"padding-top: 3px;padding-left: 40px;text-transform: capitalize;\">{{user?.username}}</label>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- END CONTENT FRAME BODY -->\r\n </div>\r\n</div>", styles: [".btn-default.btn-on-1.active,.btn-default.btn-off-1.active{background-color:#3b5998;color:#fff}.btn.btn-xs,.btn-group-xs>.btn{font-size:12px;padding:5px 15px}.tbactive{background:#3B5998;color:#fff}input[type=radio]{display:none}.content-frame-body{padding:10px!important;margin-left:0!important}.content-frame-left{background:transparent!important;width:250px!important}.headingc{padding:5px;background:whitesmoke;font-size:14px;font-weight:500}.chkAll{padding:0;margin-bottom:15px}\n"] }]
251
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Router }, { type: i3.AdminServiceService }, { type: i4.ToastrService }, { type: i5.NgxSpinnerService }]; } });
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1yaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lemxpYi9zcmMvbGliL21lbnUtcmlnaHQvbWVudS1yaWdodC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lemxpYi9zcmMvbGliL21lbnUtcmlnaHQvbWVudS1yaWdodC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFHLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7O0FBTzdFLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFBb0IsSUFBZ0IsRUFDMUIsTUFBYyxFQUNkLEVBQXVCLEVBQ3ZCLE1BQXFCLEVBQ3JCLGNBQWlDO1FBSnZCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBSTNDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLFFBQUcsR0FBUSxFQUFFLENBQUM7UUFFZCxp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Q0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFDLFNBQVMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUMvQixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDOztxSkFqUGQsa0JBQWtCO3lJQUFsQixrQkFBa0Isc0RDZC9CLGl2TEEwR007MkZENUZPLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBIdHRwSGVhZGVycyAgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5neFNwaW5uZXJTZXJ2aWNlIH0gZnJvbSBcIm5neC1zcGlubmVyXCI7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgQ29va2llIH0gZnJvbSAnbmcyLWNvb2tpZXMvbmcyLWNvb2tpZXMnO1xyXG5pbXBvcnQgeyBBZG1pblNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vYWRtaW4tc2VydmljZS9hZG1pbi1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbWVudS1yaWdodCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUtcmlnaHQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21lbnUtcmlnaHQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZW51UmlnaHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBhczogQWRtaW5TZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzcGlubmVyU2VydmljZTogTmd4U3Bpbm5lclNlcnZpY2UgXHJcbiAgKSB7IH1cclxuXHJcblxyXG4gIG5hdmlnYXRpb24gPSBbXTtcclxuICBtZGxsaXN0ID0gW107XHJcbiAgYnRuOiBhbnkgPSBbXTtcclxuICBwYWdlaW5mbztcclxuICBtZW51bHZsMUxpc3QgPSBbXTtcclxuICBtZW51bHZsMkxpc3QgPSBbXTtcclxuICB1c3JMc3QgPSBbXTtcclxuICB1c2VySWRucyA9IFtdO1xyXG4gIHVzclJpZ2h0THN0XHJcbiAgaGVhZGVyO1xyXG4gIHNlbGVjdGVkU2xhdmVzOiB7IFtrZXk6IG51bWJlcl06IGJvb2xlYW47IH0gPSB7fTtcclxuICBjYmxlbiA9IDA7XHJcbiAgdiA9IFwiXCI7XHJcbiAgdjEgPSBcIlwiO1xyXG4gIHYyID0gXCJcIjtcclxuICBhcHAgPSBcIlwiO1xyXG4gIGFwcGxpY2F0aW9uTGlzdCA9IFtdO1xyXG5cclxuICBmaWxsQXBwKCkge1xyXG4gICAgdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBjb25zdCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialtcImZvcm1ObWVcIl0gPSBcIm1lbnVSaWdodHNNYXN0ZXJcIjtcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdsb2FkJztcclxuICAgY29uc3Qgb3B0aW9ucyA9ICh7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcikgfSk7XHJcbiAgICBjb25zb2xlLmxvZyhcInRoaXMuaGVhZGVyXCIsIHRoaXMuaGVhZGVyKTtcclxuICAgIHRoaXMuYXMuZ2V0TWVudVJpZ2h0cyhyZXFPYmosIG9wdGlvbnMpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25MaXN0ID0gcmVzcG9uc2UuYXBwbGljYXRpb25MaXN0O1xyXG4gICAgICAgIHRoaXMuYnRuID0gcmVzcG9uc2UuYnV0dG9uc1swXTtcclxuXHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmaWxsTW9kdWxlKGFwcGxJZCkge1xyXG4gICAgdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBjb25zdCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialtcImZvcm1ObWVcIl0gPSBcIm1lbnVSaWdodHNNYXN0ZXJcIjtcclxuICAgIHJlcU9ialtcImFwcGxjYXRpb25JZG5cIl0gPSBhcHBsSWQ7XHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnbG9hZE1vZHVsZSc7XHJcbiAgIGNvbnN0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgdGhpcy5hcy5nZXRNZW51UmlnaHRzKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgdGhpcy51c3JMc3QgPSBbXTtcclxuICAgICAgICB0aGlzLm1kbGxpc3QgPSByZXNwb25zZS5tb2R1bGVMaXN0O1xyXG4gICAgICAgIHRoaXMucGFnZWluZm8gPSByZXNwb25zZS5wYWdlSW5mbztcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmJ0bik7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5tZGxsaXN0KTtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmaWxsTGV2ZWwxKG1vZHVsZV9pZG4pIHtcclxuICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgY29uc29sZS5sb2cobW9kdWxlX2lkbilcclxuICAgIGNvbnN0IHJlcU9iaiA9IHt9O1xyXG4gICAgcmVxT2JqW1wiZm9ybU5tZVwiXSA9IFwibWVudVJpZ2h0c01hc3RlclwiO1xyXG4gICAgcmVxT2JqW1wibW9kdWxlSWRuXCJdID0gbW9kdWxlX2lkbjtcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdsb2FkTWVudWxldmVsMSc7XHJcbiAgIGNvbnN0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgdGhpcy5hcy5nZXRNZW51UmlnaHRzKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgdGhpcy51c3JMc3QgPSBbXTtcclxuICAgICAgICB0aGlzLm1lbnVsdmwyTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMubWVudWx2bDFMaXN0ID0gcmVzcG9uc2Uua3Y7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5tZW51bHZsMUxpc3QpO1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZpbGxMZXZlbDIobW9kdWxlX2lkbiwgbWVudUlkbikge1xyXG4gICAgdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBjb25zb2xlLmxvZyhtb2R1bGVfaWRuKTtcclxuICAgIGNvbnNvbGUubG9nKG1lbnVJZG4pO1xyXG5cclxuICAgIGNvbnN0IHJlcU9iaiA9IHt9O1xyXG4gICAgcmVxT2JqW1wiZm9ybU5tZVwiXSA9IFwibWVudVJpZ2h0c01hc3RlclwiO1xyXG4gICAgcmVxT2JqW1wibW9kdWxlSWRuXCJdID0gbW9kdWxlX2lkbjtcclxuICAgIHJlcU9ialtcIm1lbnVJZG5cIl0gPSBtZW51SWRuO1xyXG4gICAgdGhpcy5oZWFkZXJbJ21ldGhvZCddID0gJ2xvYWRNZW51bGV2ZWwyJztcclxuICAgY29uc3Qgb3B0aW9ucyA9ICh7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcikgfSk7XHJcbiAgICB0aGlzLmFzLmdldE1lbnVSaWdodHMocmVxT2JqLCBvcHRpb25zKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICB0aGlzLm1lbnVsdmwyTGlzdCA9IHJlc3BvbnNlLmt2O1xyXG4gICAgICAgIHRoaXMudXNyTHN0ID0gW107XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5tZW51bHZsMkxpc3QpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKHJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9KS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgc3VibWVudUNoYW5nZSgpIHtcclxuICAgIHRoaXMudXNyTHN0ID0gW107XHJcbiAgfVxyXG4gIGdldFVzZXJSaWdodChtb2R1bGVfaWRuLCBtZW51SWRuLCBzdWJtZW51LCBhcHBsaWQpIHtcclxuICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgY29uc3QgcmVxT2JqID0ge307XHJcbiAgICByZXFPYmpbXCJhcHBsY2F0aW9uSWRuXCJdID0gYXBwbGlkO1xyXG4gICAgcmVxT2JqW1wibW9kdWxlSWRuXCJdID0gbW9kdWxlX2lkbjtcclxuICAgIHJlcU9ialtcIm1lbnVJZG5cIl0gPSAoc3VibWVudSA9PSB1bmRlZmluZWQgfHwgc3VibWVudSA9PSBcIlwiKSA/IG1lbnVJZG4gOiBzdWJtZW51O1xyXG4gICAgcmVxT2JqW1wiZm9ybU5tZVwiXSA9IFwibWVudVJpZ2h0c01hc3RlclwiO1xyXG4gICAgdGhpcy5oZWFkZXJbJ21ldGhvZCddID0gJ2xvYWR1c2VyUmlnaHRzJztcclxuICAgIGNvbnNvbGUubG9nKHJlcU9iaik7XHJcbiAgICBjb25zb2xlLmxvZyhcInRoaXMuaGVhZGVyXCIsIHRoaXMuaGVhZGVyKTtcclxuICAgY29uc3Qgb3B0aW9ucyA9ICh7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcikgfSk7XHJcbiAgICB0aGlzLmFzLmdldE1lbnVSaWdodHMocmVxT2JqLCBvcHRpb25zKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICB0aGlzLnVzckxzdCA9IHJlc3BvbnNlLnVzZXJMaXN0O1xyXG4gICAgICAgIHRoaXMudXNyUmlnaHRMc3QgPSByZXNwb25zZS51c2VyUmlnaHRMaXN0O1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMudXNyTHN0KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG4gIC8vZSx2LHYxLHVzZXIudXNlcl9pZG4sdjIsYXBwICAvLyBwYXJhbWV0ZXIgc2VxdWVuY2UgaW4gaHRtbFxyXG4gIG9uQ2hhbmdlKGUsIG1vZHVsZWlkbiwgbWVudUlkbiwgdXNlcl9pZG4sIHN1Ym1lbnVpZCwgYXBwbElkKSB7XHJcbiAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIGNvbnN0IHJlcU9iaiA9IHt9O1xyXG4gICAgcmVxT2JqW1wibWVudUlkblwiXSA9IChzdWJtZW51aWQgPT0gdW5kZWZpbmVkIHx8IHN1Ym1lbnVpZCA9PSBcIlwiKSA/IG1lbnVJZG4gOiBzdWJtZW51aWQ7XHJcbiAgICByZXFPYmpbXCJ1c2VySWRuXCJdID0gW3VzZXJfaWRuXTtcclxuICAgIHJlcU9ialtcImhkcklkblwiXSA9IG1lbnVJZG47Ly8gKHN1Ym1lbnVpZCA9PSB1bmRlZmluZWQgfHwgc3VibWVudWlkID09IFwiXCIpID8gbWVudUlkbiA6ICcnOy8vbWVudWlkbiBsdmwxXHJcbiAgICByZXFPYmpbXCJzdHRcIl0gPSBlLnRhcmdldC5jaGVja2VkID09IHRydWUgPyBcIjFcIiA6IFwiMFwiO1xyXG4gICAgcmVxT2JqW1wiZm9ybU5tZVwiXSA9IFwic2F2ZVVzZXJSaWdodE1hc3RlclwiO1xyXG4gICAgdGhpcy5oZWFkZXJbJ21ldGhvZCddID0gJ3NhdmVVc2VyUmlnaHRzJztcclxuICAgIGNvbnNvbGUubG9nKHJlcU9iaik7XHJcblxyXG4gICBjb25zdCBvcHRpb25zID0gKHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVyKSB9KTtcclxuICAgIHRoaXMuYXMuc2F2ZVVzZXJNZW51UmlnaHRzKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy5nZXRVc2VyUmlnaHQobW9kdWxlaWRuLCBtZW51SWRuLCBzdWJtZW51aWQsIGFwcGxJZCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuc3VjY2VzcyhyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZUFsbChlLCBtb2R1bGVpZG4sIG1lbnVJZG4sIHN1Ym1lbnVpZCwgYXBwbElkKSB7XHJcbiAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIHRoaXMudXNyTHN0LmZvckVhY2goZWFjaE9iaiA9PiB7XHJcbiAgICAgIHRoaXMudXNlcklkbnMucHVzaChlYWNoT2JqLnVzZXJfaWRuKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgcmVxT2JqID0ge307XHJcbiAgICByZXFPYmpbXCJtZW51SWRuXCJdID0gKHN1Ym1lbnVpZCA9PSB1bmRlZmluZWQgfHwgc3VibWVudWlkID09IFwiXCIpID8gbWVudUlkbiA6IHN1Ym1lbnVpZDtcclxuICAgIHJlcU9ialtcInVzZXJJZG5cIl0gPSB0aGlzLnVzZXJJZG5zO1xyXG4gICAgcmVxT2JqW1wiaGRySWRuXCJdID0gbWVudUlkbjsgLy8oc3VibWVudWlkID09IHVuZGVmaW5lZCB8fCBzdWJtZW51aWQgPT0gXCJcIikgPyBtZW51SWRuIDogJyc7XHJcbiAgICByZXFPYmpbXCJzdHRcIl0gPSBlLnRhcmdldC5jaGVja2VkID09IHRydWUgPyBcIjFcIiA6IFwiMFwiO1xyXG4gICAgcmVxT2JqW1wiZm9ybU5tZVwiXSA9IFwic2F2ZVVzZXJSaWdodE1hc3RlclwiO1xyXG4gICAgdGhpcy5oZWFkZXJbJ21ldGhvZCddID0gJ3NhdmVVc2VyUmlnaHRzJztcclxuICAgY29uc3Qgb3B0aW9ucyA9ICh7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcikgfSk7XHJcbiAgICB0aGlzLmFzLnNhdmVVc2VyTWVudVJpZ2h0cyhyZXFPYmosIG9wdGlvbnMpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy51c2VySWRucyA9IFtdO1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIHRoaXMuZ2V0VXNlclJpZ2h0KG1vZHVsZWlkbiwgbWVudUlkbiwgc3VibWVudWlkLCBhcHBsSWQpO1xyXG4gICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuICBjVXJsO1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgbGV0IG1kbGsgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtZGxLZXknKSk7XHJcbiAgICBkZWJ1Z2dlclxyXG4gICAgdGhpcy5jVXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5jVXJsLnNwbGl0KCcvJylbMV0pO1xyXG4gICAgdGhpcy5oZWFkZXIgPSB7XHJcbiAgICAgICdjbGllbnRrZXknOiBDb29raWUuZ2V0KCdfY2snKSxcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgJ21vZHVsZWtleSc6IG1kbGtbdGhpcy5jVXJsLnNwbGl0KCcvJylbMV1dLFxyXG4gICAgICAnbG9naW5pZCc6IENvb2tpZS5nZXQoJ19sb2dpZCcpLFxyXG4gICAgICAnc291cmNlJzogJ3FzJ1xyXG4gICAgfTtcclxuICAgIC8vdGhpcy5maWxsTW9kdWxlKCk7XHJcbiAgICB0aGlzLmZpbGxBcHAoKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRpb25GdW4obmF2LCBpKSB7IH1cclxuXHJcbn1cclxuXHJcbiIsIjxkaXYgY2xhc3M9XCJtdFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJwYW5lbCBwYW5lbC1kZWZhdWx0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicGFuZWwtaGVhZGluZ1wiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJwYW5lbC10aXRsZVwiPnt7cGFnZWluZm8/LnRpdGxlfX08L2gzPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRlbnQtZnJhbWVcIiBzdHlsZT1cImJhY2tncm91bmQ6ICNmZmY7aGVpZ2h0OjEwMHZoO1wiPlxyXG4gICAgPCEtLSBTVEFSVCBDT05URU5UIEZSQU1FIExFRlQgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1mcmFtZS1sZWZ0XCIgKm5nSWY9XCJmYWxzZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGFuZWwgcGFuZWwtZGVmYXVsdFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1ib2R5XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1ncm91cCBib3JkZXItYm90dG9tXCI+XHJcbiAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJyA6aSA9PSAnY0xpbmsnfVwiICpuZ0Zvcj1cImxldCBuYXYgb2YgbmF2aWdhdGlvbjtsZXQgaT1pbmRleFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRpb25GdW4obmF2LGkpO1wiPnt7bmF2Py5mb3JtX2ZpZWxkX3RpdGxlfX08L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gRU5EIENPTlRFTlQgRlJBTUUgTEVGVCAtLT5cclxuICAgIDwhLS0gU1RBUlQgQ09OVEVOVCBGUkFNRSBCT0RZIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtZnJhbWUtYm9keVwiIFtuZ1N0eWxlXT1cInsnbWFyZ2luLWxlZnQnOiBmYWxzZSA/ICcwJyA6ICcyNTBweCd9XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbCBwYW5lbC1kZWZhdWx0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsLWJvZHlcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMlwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb250cm9sLWxhYmVsXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweDtcIj5BcHBsaWNhdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJhcHBcIiBuYW1lPVwiYXBwXCIgKGNoYW5nZSk9XCJmaWxsTW9kdWxlKGFwcClcIj5cclxuICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgbG92IG9mIGFwcGxpY2F0aW9uTGlzdFwiIHZhbHVlPVwie3tsb3Yua319XCI+e3tsb3Yudn19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIiAqbmdJZj1cIm1kbGxpc3Q/Lmxlbmd0aCA+IDEgXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbnRyb2wtbGFiZWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMnB4O1wiPk1vZHVsZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJ2XCIgbmFtZT1cInZcIiAoY2hhbmdlKT1cImZpbGxMZXZlbDEodilcIj5cclxuICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgbG92IG9mIG1kbGxpc3RcIiB2YWx1ZT1cInt7bG92Lmt9fVwiPnt7bG92LnZ9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIiAqbmdJZj1cIm1lbnVsdmwxTGlzdD8ubGVuZ3RoID4gMSBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAycHg7XCI+TWFpbiBNZW51PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInYxXCIgbmFtZT1cInYxXCIgKGNoYW5nZSk9XCJmaWxsTGV2ZWwyKHYsdjEpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGxvdiBvZiBtZW51bHZsMUxpc3RcIiB2YWx1ZT1cInt7bG92Lmt9fVwiPnt7bG92LnZ9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIiAqbmdJZj1cIm1lbnVsdmwyTGlzdD8ubGVuZ3RoID4gMSBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAycHg7XCI+U3ViIE1lbnU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwidjJcIiBuYW1lPVwidjJcIiAoY2hhbmdlKT1cInN1Ym1lbnVDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBsb3Ygb2YgbWVudWx2bDJMaXN0XCIgdmFsdWU9XCJ7e2xvdi5rfX1cIj57e2xvdi52fX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJhZGRCdG5cIiBjbGFzcz1cImJ0biBidG4taW5mbyBcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDIzcHg7XCIgKGNsaWNrKT1cImdldFVzZXJSaWdodCh2LHYxLHYyLGFwcClcIj57e2J0bj8uZm9ybV9maWVsZF90aXRsZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IHN0eWxlPVwicGFkZGluZzogMCAxMHB4O1wiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiYm9yZGVyOjFweCBzb2xpZCAjZTVlNWU1O21hcmdpbi10b3A6IDMwcHhcIiAqbmdJZj1cInVzckxzdC5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwidXNyTHN0Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbCBwYW5lbC1kZWZhdWx0XCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAyNXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWwtaGVhZGluZ1wiIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInBhbmVsLXRpdGxlXCIgc3R5bGU9XCJwYWRkaW5nOiA4cHg7IGZvbnQtc2l6ZTogMTRweDtcIj5Vc2VyczwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGNoa0FsbFwiIHN0eWxlPVwibWFyZ2luOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIHN0eWxlPVwicGFkZGluZzogMTBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwic3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJzd2l0Y2hcIiAoY2hhbmdlKT1cIm9uQ2hhbmdlQWxsKCRldmVudCx2LHYxLHYyLGFwcClcIiBuYW1lPVwiY2hrQWxsXCIgaWQ9XCJjaGtBbGxcIiBbY2hlY2tlZF09XCIodXNyTHN0Lmxlbmd0aCA9PSB1c3JSaWdodExzdC5sZW5ndGggPyAnY2hlY2tlZCcgOiAnJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLW1kLTQgY29udHJvbC1sYWJlbCB0ZXh0LWxlZnRcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XCI+QWxsIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz1cImZvcm0taG9yaXpvbnRhbFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIiAqbmdGb3I9XCJsZXQgdXNlciBvZiB1c3JMc3QgO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJzd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJzd2l0Y2hcIiAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudCx2LHYxLHVzZXIudXNlcl9pZG4sdjIsYXBwKVwiIFtjaGVja2VkXT1cIihmYWxzZSAhPT0gdXNyUmlnaHRMc3QuaW5jbHVkZXModXNlcj8udXNlcl9pZG4pID8gJ2NoZWNrZWQnIDogJycpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjaGtcIiBpZD1cImNoa3t7dXNlci51c2VyX2lkbn19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbWQtNCBjb250cm9sLWxhYmVsIHRleHQtbGVmdFwiIHN0eWxlPVwicGFkZGluZy10b3A6IDNweDtwYWRkaW5nLWxlZnQ6IDQwcHg7dGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XCI+e3t1c2VyPy51c2VybmFtZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIEVORCBDT05URU5UIEZSQU1FIEJPRFkgLS0+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class NumberWithCommasPipe {
4
+ transform(value, args) {
5
+ value = value || '';
6
+ if (value != '') {
7
+ var parts = value.toString().split(".");
8
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
9
+ return parts.join(".");
10
+ }
11
+ else {
12
+ return value;
13
+ }
14
+ }
15
+ }
16
+ /** @nocollapse */ /** @nocollapse */ NumberWithCommasPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: NumberWithCommasPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
17
+ /** @nocollapse */ /** @nocollapse */ NumberWithCommasPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: NumberWithCommasPipe, name: "numberWithCommas" });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: NumberWithCommasPipe, decorators: [{
19
+ type: Pipe,
20
+ args: [{
21
+ name: 'numberWithCommas'
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXdpdGgtY29tbWFzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lemxpYi9zcmMvbGliL3BpcGVzL251bWJlci13aXRoLWNvbW1hcy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFNBQVMsQ0FBQyxLQUFVLEVBQUUsSUFBVTtRQUM5QixLQUFLLEdBQUMsS0FBSyxJQUFFLEVBQUUsQ0FBQztRQUNoQixJQUFHLEtBQUssSUFBRSxFQUFFLEVBQUM7WUFDYixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN0QjthQUFJO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7O3VKQVhVLG9CQUFvQjtxSkFBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSGhDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGtCQUFrQjtpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ251bWJlcldpdGhDb21tYXMnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOdW1iZXJXaXRoQ29tbWFzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgYXJncz86IGFueSk6IGFueSB7XHJcbiAgICB2YWx1ZT12YWx1ZXx8Jyc7XHJcbiAgICBpZih2YWx1ZSE9Jycpe1xyXG4gICAgdmFyIHBhcnRzID0gdmFsdWUudG9TdHJpbmcoKS5zcGxpdChcIi5cIik7XHJcbiAgICBwYXJ0c1swXSA9IHBhcnRzWzBdLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKTtcclxuICAgIHJldHVybiBwYXJ0cy5qb2luKFwiLlwiKTtcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { orderBy } from 'lodash';
3
+ import * as i0 from "@angular/core";
4
+ export class OrderByPipePipe {
5
+ constructor() {
6
+ this.transform = orderBy;
7
+ }
8
+ }
9
+ /** @nocollapse */ /** @nocollapse */ OrderByPipePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: OrderByPipePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
10
+ /** @nocollapse */ /** @nocollapse */ OrderByPipePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: OrderByPipePipe, name: "orderByPipe" });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: OrderByPipePipe, decorators: [{
12
+ type: Pipe,
13
+ args: [{
14
+ name: 'orderByPipe'
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItYnktcGlwZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXpsaWIvc3JjL2xpYi9waXBlcy9vcmRlci1ieS1waXBlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFLakMsTUFBTSxPQUFPLGVBQWU7SUFINUI7UUFJRSxjQUFTLEdBQUcsT0FBTyxDQUFDO0tBQ3JCOztrSkFGWSxlQUFlO2dKQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFIM0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsYUFBYTtpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG9yZGVyQnkgfSBmcm9tICdsb2Rhc2gnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdvcmRlckJ5UGlwZSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE9yZGVyQnlQaXBlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybSA9IG9yZGVyQnk7XHJcbn1cclxuIl19
@@ -0,0 +1,19 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ //@Injectable()
4
+ export class GetSelectedPipe {
5
+ transform(items) {
6
+ // take out only selected values
7
+ return items.filter(item => item.selected === true);
8
+ }
9
+ }
10
+ /** @nocollapse */ /** @nocollapse */ GetSelectedPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: GetSelectedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
11
+ /** @nocollapse */ /** @nocollapse */ GetSelectedPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: GetSelectedPipe, name: "getSelcted", pure: false });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: GetSelectedPipe, decorators: [{
13
+ type: Pipe,
14
+ args: [{
15
+ name: 'getSelcted',
16
+ pure: false
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWRDb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V6bGliL3NyYy9saWIvcGlwZXMvc2VsZWN0ZWRDb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFNcEQsZUFBZTtBQUNmLE1BQU0sT0FBTyxlQUFlO0lBQ3hCLFNBQVMsQ0FBQyxLQUFZO1FBQ2xCLGdDQUFnQztRQUNoQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7O2tKQUpRLGVBQWU7Z0pBQWYsZUFBZTsyRkFBZixlQUFlO2tCQUwzQixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxZQUFZO29CQUNsQixJQUFJLEVBQUUsS0FBSztpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdnZXRTZWxjdGVkJyxcclxuICAgIHB1cmU6IGZhbHNlXHJcbn0pXHJcbi8vQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgR2V0U2VsZWN0ZWRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICB0cmFuc2Zvcm0oaXRlbXM6IGFueVtdKTogYW55IHtcclxuICAgICAgICAvLyB0YWtlIG91dCBvbmx5IHNlbGVjdGVkIHZhbHVlc1xyXG4gICAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLnNlbGVjdGVkID09PSB0cnVlKTtcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,16 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SumPipe {
4
+ transform(value, args) {
5
+ return null;
6
+ }
7
+ }
8
+ /** @nocollapse */ /** @nocollapse */ SumPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SumPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
+ /** @nocollapse */ /** @nocollapse */ SumPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SumPipe, name: "sum" });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SumPipe, decorators: [{
11
+ type: Pipe,
12
+ args: [{
13
+ name: 'sum'
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lemxpYi9zcmMvbGliL3BpcGVzL3N1bS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sT0FBTztJQUVsQixTQUFTLENBQUMsS0FBVSxFQUFFLElBQVU7UUFDOUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzswSUFKVSxPQUFPO3dJQUFQLE9BQU87MkZBQVAsT0FBTztrQkFIbkIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsS0FBSztpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnc3VtJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3VtUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgYXJncz86IGFueSk6IGFueSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==