ezlibrary_v2 2.0.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.
Files changed (118) hide show
  1. package/README.md +24 -0
  2. package/esm2020/ezlibrary_v2.mjs +5 -0
  3. package/esm2020/lib/admin-service/admin-service.service.mjs +34 -0
  4. package/esm2020/lib/analysis-search/analysis-search.component.mjs +1077 -0
  5. package/esm2020/lib/assort-service/assort-service.service.mjs +28 -0
  6. package/esm2020/lib/attribute-definition/attribute-definition.component.mjs +225 -0
  7. package/esm2020/lib/auth/auth.guard.mjs +37 -0
  8. package/esm2020/lib/bi-service/bi.service.mjs +57 -0
  9. package/esm2020/lib/call-info/callinfo.component.mjs +125 -0
  10. package/esm2020/lib/comman-service/comman-service.service.mjs +678 -0
  11. package/esm2020/lib/comman-service/share-data-service.service.mjs +23 -0
  12. package/esm2020/lib/contact-search/contact-search.component.mjs +690 -0
  13. package/esm2020/lib/contact-service/contact-service.service.mjs +45 -0
  14. package/esm2020/lib/ez-lib.component.mjs +26 -0
  15. package/esm2020/lib/ez-lib.module.mjs +232 -0
  16. package/esm2020/lib/ez-lib.service.mjs +14 -0
  17. package/esm2020/lib/ezheader/header.component.mjs +400 -0
  18. package/esm2020/lib/file-upload/fileupload.component.mjs +918 -0
  19. package/esm2020/lib/file-upload-log/file-upload-log.component.mjs +169 -0
  20. package/esm2020/lib/fileupload-module/fileupload-dashboard/fileupload-dashboard.component.mjs +14 -0
  21. package/esm2020/lib/fileupload-module/fileupload-routing.module.mjs +28 -0
  22. package/esm2020/lib/fileupload-module/fileupload.module.mjs +80 -0
  23. package/esm2020/lib/footer/footer.component.mjs +18 -0
  24. package/esm2020/lib/globle/common-pdf.service.mjs +28 -0
  25. package/esm2020/lib/globle/globle-env.service.mjs +45 -0
  26. package/esm2020/lib/globle/memo-report.service.mjs +2798 -0
  27. package/esm2020/lib/globle/shared-services.service.mjs +25 -0
  28. package/esm2020/lib/globle/upload-service.service.mjs +63 -0
  29. package/esm2020/lib/header/header.component.mjs +172 -0
  30. package/esm2020/lib/invalid/invalid.component.mjs +70 -0
  31. package/esm2020/lib/logout/logout.component.mjs +104 -0
  32. package/esm2020/lib/menu-right/menu-right.component.mjs +258 -0
  33. package/esm2020/lib/pipes/number-with-commas.pipe.mjs +24 -0
  34. package/esm2020/lib/pipes/order-by-pipe.pipe.mjs +17 -0
  35. package/esm2020/lib/pipes/selectedCount.mjs +19 -0
  36. package/esm2020/lib/pipes/sum.pipe.mjs +17 -0
  37. package/esm2020/lib/pkt-data/pkt-data.component.mjs +1109 -0
  38. package/esm2020/lib/pricing-service/pricing.service.mjs +64 -0
  39. package/esm2020/lib/qa-analysis/qa-analysis.component.mjs +1028 -0
  40. package/esm2020/lib/report-format/report-format.component.mjs +403 -0
  41. package/esm2020/lib/sessionend/session-end.guard.mjs +27 -0
  42. package/esm2020/lib/stock-service/lazyload.service.mjs +21 -0
  43. package/esm2020/lib/stock-service/stock-service.service.mjs +58 -0
  44. package/esm2020/lib/system-module/subform/subform.component.mjs +2817 -0
  45. package/esm2020/lib/system-module/system/system.component.mjs +970 -0
  46. package/esm2020/lib/system-module/system-service/system-service.service.mjs +83 -0
  47. package/esm2020/lib/system-module/system-service/upload-file.service.mjs +83 -0
  48. package/esm2020/lib/utility/app-no-dbl-click.directive.mjs +24 -0
  49. package/esm2020/lib/utility/constants.mjs +5 -0
  50. package/esm2020/lib/utility/contact-table-search.pipe.mjs +25 -0
  51. package/esm2020/lib/utility/formate-num-field.pipe.mjs +19 -0
  52. package/esm2020/lib/utility/search-pipe.pipe.mjs +26 -0
  53. package/esm2020/lib/utility/selective-preloading-strategy.mjs +23 -0
  54. package/esm2020/lib/utility/table-search.pipe.mjs +25 -0
  55. package/esm2020/lib/utility/tranform.directive.mjs +27 -0
  56. package/esm2020/lib/websearch-history/websearch-history.component.mjs +273 -0
  57. package/esm2020/public-api.mjs +59 -0
  58. package/ezlibrary_v2.d.ts +5 -0
  59. package/fesm2015/ezlibrary_v2.mjs +15300 -0
  60. package/fesm2015/ezlibrary_v2.mjs.map +1 -0
  61. package/fesm2020/ezlibrary_v2.mjs +15291 -0
  62. package/fesm2020/ezlibrary_v2.mjs.map +1 -0
  63. package/lib/admin-service/admin-service.service.d.ts +13 -0
  64. package/lib/analysis-search/analysis-search.component.d.ts +118 -0
  65. package/lib/assort-service/assort-service.service.d.ts +12 -0
  66. package/lib/attribute-definition/attribute-definition.component.d.ts +43 -0
  67. package/lib/auth/auth.guard.d.ts +14 -0
  68. package/lib/bi-service/bi.service.d.ts +16 -0
  69. package/lib/call-info/callinfo.component.d.ts +26 -0
  70. package/lib/comman-service/comman-service.service.d.ts +106 -0
  71. package/lib/comman-service/share-data-service.service.d.ts +10 -0
  72. package/lib/contact-search/contact-search.component.d.ts +111 -0
  73. package/lib/contact-service/contact-service.service.d.ts +15 -0
  74. package/lib/ez-lib.component.d.ts +8 -0
  75. package/lib/ez-lib.module.d.ts +43 -0
  76. package/lib/ez-lib.service.d.ts +6 -0
  77. package/lib/ezheader/header.component.d.ts +57 -0
  78. package/lib/file-upload/fileupload.component.d.ts +127 -0
  79. package/lib/file-upload-log/file-upload-log.component.d.ts +49 -0
  80. package/lib/fileupload-module/fileupload-dashboard/fileupload-dashboard.component.d.ts +8 -0
  81. package/lib/fileupload-module/fileupload-routing.module.d.ts +7 -0
  82. package/lib/fileupload-module/fileupload.module.d.ts +15 -0
  83. package/lib/footer/footer.component.d.ts +9 -0
  84. package/lib/globle/common-pdf.service.d.ts +9 -0
  85. package/lib/globle/globle-env.service.d.ts +16 -0
  86. package/lib/globle/memo-report.service.d.ts +107 -0
  87. package/lib/globle/shared-services.service.d.ts +12 -0
  88. package/lib/globle/upload-service.service.d.ts +16 -0
  89. package/lib/header/header.component.d.ts +41 -0
  90. package/lib/invalid/invalid.component.d.ts +12 -0
  91. package/lib/logout/logout.component.d.ts +19 -0
  92. package/lib/menu-right/menu-right.component.d.ts +43 -0
  93. package/lib/pipes/number-with-commas.pipe.d.ts +7 -0
  94. package/lib/pipes/order-by-pipe.pipe.d.ts +7 -0
  95. package/lib/pipes/selectedCount.d.ts +7 -0
  96. package/lib/pipes/sum.pipe.d.ts +7 -0
  97. package/lib/pkt-data/pkt-data.component.d.ts +184 -0
  98. package/lib/pricing-service/pricing.service.d.ts +16 -0
  99. package/lib/qa-analysis/qa-analysis.component.d.ts +95 -0
  100. package/lib/report-format/report-format.component.d.ts +74 -0
  101. package/lib/sessionend/session-end.guard.d.ts +10 -0
  102. package/lib/stock-service/lazyload.service.d.ts +7 -0
  103. package/lib/stock-service/stock-service.service.d.ts +15 -0
  104. package/lib/system-module/subform/subform.component.d.ts +222 -0
  105. package/lib/system-module/system/system.component.d.ts +109 -0
  106. package/lib/system-module/system-service/system-service.service.d.ts +23 -0
  107. package/lib/system-module/system-service/upload-file.service.d.ts +12 -0
  108. package/lib/utility/app-no-dbl-click.directive.d.ts +7 -0
  109. package/lib/utility/constants.d.ts +4 -0
  110. package/lib/utility/contact-table-search.pipe.d.ts +7 -0
  111. package/lib/utility/formate-num-field.pipe.d.ts +7 -0
  112. package/lib/utility/search-pipe.pipe.d.ts +7 -0
  113. package/lib/utility/selective-preloading-strategy.d.ts +9 -0
  114. package/lib/utility/table-search.pipe.d.ts +7 -0
  115. package/lib/utility/tranform.directive.d.ts +10 -0
  116. package/lib/websearch-history/websearch-history.component.d.ts +56 -0
  117. package/package.json +31 -0
  118. package/public-api.d.ts +54 -0
@@ -0,0 +1,258 @@
1
+ import { Component } from '@angular/core';
2
+ // import { Ng4LoadingSpinnerService } from 'ng4-loading-spinner';
3
+ // import { FlashMessagesService } from 'angular2-flash-messages';
4
+ import { Cookie } from 'ng2-cookies/ng2-cookies';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ import * as i2 from "@angular/router";
8
+ import * as i3 from "../admin-service/admin-service.service";
9
+ import * as i4 from "@angular/common";
10
+ import * as i5 from "@angular/forms";
11
+ export class MenuRightComponent {
12
+ constructor(http, router, as) {
13
+ this.http = http;
14
+ this.router = router;
15
+ this.as = as;
16
+ this.navigation = [];
17
+ this.mdllist = [];
18
+ this.btn = [];
19
+ this.menulvl1List = [];
20
+ this.menulvl2List = [];
21
+ this.usrLst = [];
22
+ this.userIdns = [];
23
+ this.selectedSlaves = {};
24
+ this.cblen = 0;
25
+ this.v = "";
26
+ this.v1 = "";
27
+ this.v2 = "";
28
+ this.app = "";
29
+ this.applicationList = [];
30
+ }
31
+ fillApp() {
32
+ // this.spinnerService.show();
33
+ const reqObj = {};
34
+ reqObj["formNme"] = "menuRightsMaster";
35
+ this.header['method'] = 'load';
36
+ // const options = new RequestOptions({ headers: this.header });
37
+ // const options = new HttpHeaders({ headers: this.header });
38
+ console.log("this.header", this.header);
39
+ let options = { headers: this.header };
40
+ this.as.getMenuRights(reqObj, options).then((response) => {
41
+ console.log(response);
42
+ if (response.status == 'SUCCESS') {
43
+ this.applicationList = response.applicationList;
44
+ this.btn = response.buttons[0];
45
+ // this.spinnerService.hide();
46
+ }
47
+ else {
48
+ // this.spinnerService.hide();
49
+ // this.flashMessagesService.show(response.message, { cssClass: 'alert-danger', timeout: 3000 });
50
+ }
51
+ }).catch((err) => {
52
+ // this.spinnerService.hide();
53
+ // this.flashMessagesService.show(err.message, { cssClass: 'alert-danger', timeout: 3000 });
54
+ });
55
+ }
56
+ fillModule(applId) {
57
+ // this.spinnerService.show();
58
+ const reqObj = {};
59
+ reqObj["formNme"] = "menuRightsMaster";
60
+ reqObj["applcationIdn"] = applId;
61
+ this.header['method'] = 'loadModule';
62
+ // const options = new RequestOptions({ headers: this.header });
63
+ // const options = new HttpHeaders({ headers: this.header });
64
+ let options = { headers: this.header };
65
+ this.as.getMenuRights(reqObj, options).then((response) => {
66
+ console.log(response);
67
+ if (response.status == 'SUCCESS') {
68
+ this.usrLst = [];
69
+ this.mdllist = response.moduleList;
70
+ this.pageinfo = response.pageInfo;
71
+ console.log(this.btn);
72
+ console.log(this.mdllist);
73
+ // this.spinnerService.hide();
74
+ }
75
+ else {
76
+ // this.spinnerService.hide();
77
+ // this.flashMessagesService.show(response.message, { cssClass: 'alert-danger', timeout: 3000 });
78
+ }
79
+ }).catch((err) => {
80
+ // this.spinnerService.hide();
81
+ // this.flashMessagesService.show(err.message, { cssClass: 'alert-danger', timeout: 3000 });
82
+ });
83
+ }
84
+ fillLevel1(module_idn) {
85
+ // this.spinnerService.show();
86
+ console.log(module_idn);
87
+ const reqObj = {};
88
+ reqObj["formNme"] = "menuRightsMaster";
89
+ reqObj["moduleIdn"] = module_idn;
90
+ this.header['method'] = 'loadMenulevel1';
91
+ // const options = new RequestOptions({ headers: this.header });
92
+ // const options = new HttpHeaders({ headers: this.header });
93
+ let options = { headers: this.header };
94
+ this.as.getMenuRights(reqObj, options).then((response) => {
95
+ console.log(response);
96
+ if (response.status == 'SUCCESS') {
97
+ this.usrLst = [];
98
+ this.menulvl2List = [];
99
+ this.menulvl1List = response.kv;
100
+ console.log(this.menulvl1List);
101
+ // this.spinnerService.hide();
102
+ }
103
+ else {
104
+ // this.spinnerService.hide();
105
+ // this.flashMessagesService.show(response.message, { cssClass: 'alert-danger', timeout: 3000 });
106
+ }
107
+ }).catch((err) => {
108
+ // this.spinnerService.hide();
109
+ // this.flashMessagesService.show(err.message, { cssClass: 'alert-danger', timeout: 3000 });
110
+ });
111
+ }
112
+ fillLevel2(module_idn, menuIdn) {
113
+ // this.spinnerService.show();
114
+ console.log(module_idn);
115
+ console.log(menuIdn);
116
+ const reqObj = {};
117
+ reqObj["formNme"] = "menuRightsMaster";
118
+ reqObj["moduleIdn"] = module_idn;
119
+ reqObj["menuIdn"] = menuIdn;
120
+ this.header['method'] = 'loadMenulevel2';
121
+ // const options = new HttpHeaders({ headers: this.header });
122
+ let options = { headers: this.header };
123
+ // const options = new RequestOptions({ headers: 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.flashMessagesService.show(response.message, { cssClass: 'alert-danger', timeout: 3000 });
135
+ }
136
+ }).catch((err) => {
137
+ // this.spinnerService.hide();
138
+ // this.flashMessagesService.show(err.message, { cssClass: 'alert-danger', timeout: 3000 });
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 = new RequestOptions({ headers: this.header });
155
+ // const options = new HttpHeaders({ headers: this.header });
156
+ let options = { headers: this.header };
157
+ this.as.getMenuRights(reqObj, options).then((response) => {
158
+ console.log(response);
159
+ if (response.status == 'SUCCESS') {
160
+ this.usrLst = response.userList;
161
+ this.usrRightLst = response.userRightList;
162
+ // this.spinnerService.hide();
163
+ console.log(this.usrLst);
164
+ }
165
+ else {
166
+ // this.spinnerService.hide();
167
+ // this.flashMessagesService.show(response.message, { cssClass: 'alert-danger', timeout: 3000 });
168
+ }
169
+ }).catch((err) => {
170
+ // this.spinnerService.hide();
171
+ // this.flashMessagesService.show(err.message, { cssClass: 'alert-danger', timeout: 3000 });
172
+ });
173
+ }
174
+ //e,v,v1,user.user_idn,v2,app // parameter sequence in html
175
+ onChange(e, moduleidn, menuIdn, user_idn, submenuid, applId) {
176
+ // this.spinnerService.show();
177
+ const reqObj = {};
178
+ reqObj["menuIdn"] = (submenuid == undefined || submenuid == "") ? menuIdn : submenuid;
179
+ reqObj["userIdn"] = [user_idn];
180
+ reqObj["hdrIdn"] = menuIdn; // (submenuid == undefined || submenuid == "") ? menuIdn : '';//menuidn lvl1
181
+ reqObj["stt"] = e.target.checked == true ? "1" : "0";
182
+ reqObj["formNme"] = "saveUserRightMaster";
183
+ this.header['method'] = 'saveUserRights';
184
+ console.log(reqObj);
185
+ // const options = new RequestOptions({ headers: this.header });
186
+ // const options = new HttpHeaders({ headers: this.header });
187
+ let options = { headers: this.header };
188
+ this.as.saveUserMenuRights(reqObj, options).then((response) => {
189
+ console.log(response);
190
+ if (response.status == 'SUCCESS') {
191
+ // this.spinnerService.hide();
192
+ this.getUserRight(moduleidn, menuIdn, submenuid, applId);
193
+ // this.flashMessagesService.show(response.message, { cssClass: 'alert-success', timeout: 3000 });
194
+ }
195
+ else {
196
+ // this.spinnerService.hide();
197
+ // this.flashMessagesService.show(response.message, { cssClass: 'alert-danger', timeout: 3000 });
198
+ }
199
+ }).catch((err) => {
200
+ // this.spinnerService.hide();
201
+ // this.flashMessagesService.show(err.message, { cssClass: 'alert-danger', timeout: 3000 });
202
+ });
203
+ }
204
+ onChangeAll(e, moduleidn, menuIdn, submenuid, applId) {
205
+ // this.spinnerService.show();
206
+ this.usrLst.forEach(eachObj => {
207
+ this.userIdns.push(eachObj.user_idn);
208
+ });
209
+ const reqObj = {};
210
+ reqObj["menuIdn"] = (submenuid == undefined || submenuid == "") ? menuIdn : submenuid;
211
+ reqObj["userIdn"] = this.userIdns;
212
+ reqObj["hdrIdn"] = menuIdn; //(submenuid == undefined || submenuid == "") ? menuIdn : '';
213
+ reqObj["stt"] = e.target.checked == true ? "1" : "0";
214
+ reqObj["formNme"] = "saveUserRightMaster";
215
+ this.header['method'] = 'saveUserRights';
216
+ // const options = new RequestOptions({ headers: this.header });
217
+ // const options = new HttpHeaders({ headers: this.header });
218
+ let options = { headers: this.header };
219
+ this.as.saveUserMenuRights(reqObj, options).then((response) => {
220
+ this.userIdns = [];
221
+ if (response.status == 'SUCCESS') {
222
+ // this.spinnerService.hide();
223
+ this.getUserRight(moduleidn, menuIdn, submenuid, applId);
224
+ // this.flashMessagesService.show(response.message, { cssClass: 'alert-success', timeout: 3000 });
225
+ }
226
+ else {
227
+ // this.spinnerService.hide();
228
+ // this.flashMessagesService.show(response.message, { cssClass: 'alert-danger', timeout: 3000 });
229
+ }
230
+ }).catch((err) => {
231
+ // this.spinnerService.hide();
232
+ // this.flashMessagesService.show(err.message, { cssClass: 'alert-danger', timeout: 3000 });
233
+ });
234
+ }
235
+ ngOnInit() {
236
+ let mdlk = JSON.parse(localStorage.getItem('mdlKey'));
237
+ debugger;
238
+ this.cUrl = this.router.url;
239
+ console.log(this.cUrl.split('/')[1]);
240
+ this.header = {
241
+ 'clientkey': Cookie.get('_ck'),
242
+ 'Content-Type': 'application/json',
243
+ 'modulekey': mdlk[this.cUrl.split('/')[1]],
244
+ 'loginid': Cookie.get('_logid'),
245
+ 'source': 'qs'
246
+ };
247
+ //this.fillModule();
248
+ this.fillApp();
249
+ }
250
+ navigationFun(nav, i) { }
251
+ }
252
+ MenuRightComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MenuRightComponent, deps: [{ token: i1.HttpClient }, { token: i2.Router }, { token: i3.AdminServiceService }], target: i0.ɵɵFactoryTarget.Component });
253
+ MenuRightComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MenuRightComponent, decorators: [{
255
+ type: Component,
256
+ 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"] }]
257
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Router }, { type: i3.AdminServiceService }]; } });
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1yaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lei1saWIvc3JjL2xpYi9tZW51LXJpZ2h0L21lbnUtcmlnaHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXotbGliL3NyYy9saWIvbWVudS1yaWdodC9tZW51LXJpZ2h0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFNbEQsa0VBQWtFO0FBQ2xFLGtFQUFrRTtBQUNsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7QUFRakQsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixZQUFvQixJQUFnQixFQUMxQixNQUFjLEVBQ2QsRUFBdUI7UUFGYixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQU1qQyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixRQUFHLEdBQVEsRUFBRSxDQUFDO1FBRWQsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFHZCxtQkFBYyxHQUFnQyxFQUFFLENBQUM7UUFDakQsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLE1BQUMsR0FBRyxFQUFFLENBQUM7UUFDUCxPQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1IsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUNSLFFBQUcsR0FBRyxFQUFFLENBQUM7UUFDVCxvQkFBZSxHQUFHLEVBQUUsQ0FBQztJQW5CakIsQ0FBQztJQXFCTCxPQUFPO1FBQ0wsOEJBQThCO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsa0JBQWtCLENBQUM7UUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDL0IsZ0VBQWdFO1FBQ2hFLDZEQUE2RDtRQUM3RCxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsSUFBSSxPQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RCLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxTQUFTLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUUvQiw4QkFBOEI7YUFDL0I7aUJBQU07Z0JBQ0wsOEJBQThCO2dCQUM5QixpR0FBaUc7YUFDbEc7UUFDSCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNwQiw4QkFBOEI7WUFDOUIsNEZBQTRGO1FBQzlGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFNO1FBQ2YsOEJBQThCO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsa0JBQWtCLENBQUM7UUFDdkMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFlBQVksQ0FBQztRQUNyQyxnRUFBZ0U7UUFDaEUsNkRBQTZEO1FBQzdELElBQUksT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUV2QyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDNUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QixJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDMUIsOEJBQThCO2FBRS9CO2lCQUFNO2dCQUNMLDhCQUE4QjtnQkFDOUIsaUdBQWlHO2FBQ2xHO1FBQ0gsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDcEIsOEJBQThCO1lBQzlCLDRGQUE0RjtRQUM5RixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBVTtRQUNuQiw4QkFBOEI7UUFDOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUN2QixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxnRUFBZ0U7UUFDaEUsNkRBQTZEO1FBQzdELElBQUksT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUV2QyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDNUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QixJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQy9CLDhCQUE4QjthQUUvQjtpQkFBTTtnQkFDTCw4QkFBOEI7Z0JBQzlCLGlHQUFpRzthQUNsRztRQUNILENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3BCLDhCQUE4QjtZQUM5Qiw0RkFBNEY7UUFDOUYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLFVBQVUsRUFBRSxPQUFPO1FBQzVCLDhCQUE4QjtRQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFckIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxrQkFBa0IsQ0FBQztRQUN2QyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6Qyw2REFBNkQ7UUFDN0QsSUFBSSxPQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRXZDLGdFQUFnRTtRQUNoRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDNUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QixJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO2dCQUNqQiw4QkFBOEI7Z0JBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2hDO2lCQUFNO2dCQUNMLDhCQUE4QjtnQkFDOUIsaUdBQWlHO2FBQ2xHO1FBQ0gsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDcEIsOEJBQThCO1lBQzlCLDRGQUE0RjtRQUM5RixDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFDRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUNELFlBQVksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNO1FBQy9DLDhCQUE4QjtRQUM5QixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNqQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNoRixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsa0JBQWtCLENBQUM7UUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxnRUFBZ0U7UUFDaEUsNkRBQTZEO1FBQzdELElBQUksT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUV2QyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDNUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QixJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQztnQkFDMUMsOEJBQThCO2dCQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUMxQjtpQkFBTTtnQkFDTCw4QkFBOEI7Z0JBQzlCLGlHQUFpRzthQUNsRztRQUNILENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3BCLDhCQUE4QjtZQUM5Qiw0RkFBNEY7UUFDOUYsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO0lBQ0QsNERBQTREO0lBQzVELFFBQVEsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU07UUFDekQsOEJBQThCO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLElBQUksU0FBUyxJQUFJLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDdEYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFBLDRFQUE0RTtRQUN2RyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNyRCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcscUJBQXFCLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBCLGdFQUFnRTtRQUNoRSw2REFBNkQ7UUFDN0QsSUFBSSxPQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRXZDLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ2pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEIsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLFNBQVMsRUFBRTtnQkFDaEMsOEJBQThCO2dCQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUN6RCxrR0FBa0c7YUFDbkc7aUJBQU07Z0JBQ0wsOEJBQThCO2dCQUM5QixpR0FBaUc7YUFDbEc7UUFDSCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNwQiw4QkFBOEI7WUFDOUIsNEZBQTRGO1FBQzlGLENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVELFdBQVcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTTtRQUNsRCw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxTQUFTLElBQUksU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN0RixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsNkRBQTZEO1FBQ3pGLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3JELE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxxQkFBcUIsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO1FBQ3pDLGdFQUFnRTtRQUNoRSw2REFBNkQ7UUFDN0QsSUFBSSxPQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRXZDLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ25CLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxTQUFTLEVBQUU7Z0JBQ2hDLDhCQUE4QjtnQkFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDekQsa0dBQWtHO2FBQ25HO2lCQUFNO2dCQUNMLDhCQUE4QjtnQkFDOUIsaUdBQWlHO2FBQ2xHO1FBQ0gsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDcEIsOEJBQThCO1lBQzlCLDRGQUE0RjtRQUM5RixDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDdEQsUUFBUSxDQUFBO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLFdBQVcsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUM5QixjQUFjLEVBQUUsa0JBQWtCO1lBQ2xDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQy9CLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztRQUNGLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7O2dIQXJRZCxrQkFBa0I7b0dBQWxCLGtCQUFrQixzRENoQi9CLGl2TEEwR007NEZEMUZPLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG4vLyBpbXBvcnQgeyBSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2h0dHAnO1xyXG5pbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbi8vIGltcG9ydCB7IE5nNExvYWRpbmdTcGlubmVyU2VydmljZSB9IGZyb20gJ25nNC1sb2FkaW5nLXNwaW5uZXInO1xyXG4vLyBpbXBvcnQgeyBGbGFzaE1lc3NhZ2VzU2VydmljZSB9IGZyb20gJ2FuZ3VsYXIyLWZsYXNoLW1lc3NhZ2VzJztcclxuaW1wb3J0IHsgQ29va2llIH0gZnJvbSAnbmcyLWNvb2tpZXMvbmcyLWNvb2tpZXMnO1xyXG5pbXBvcnQgeyBBZG1pblNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vYWRtaW4tc2VydmljZS9hZG1pbi1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbWVudS1yaWdodCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUtcmlnaHQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21lbnUtcmlnaHQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZW51UmlnaHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBhczogQWRtaW5TZXJ2aWNlU2VydmljZSxcclxuICAgIC8vIHByaXZhdGUgZmxhc2hNZXNzYWdlc1NlcnZpY2U6IEZsYXNoTWVzc2FnZXNTZXJ2aWNlLFxyXG4gICAgLy8gcHJpdmF0ZSBzcGlubmVyU2VydmljZTogTmc0TG9hZGluZ1NwaW5uZXJTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcblxyXG4gIG5hdmlnYXRpb24gPSBbXTtcclxuICBtZGxsaXN0ID0gW107XHJcbiAgYnRuOiBhbnkgPSBbXTtcclxuICBwYWdlaW5mbztcclxuICBtZW51bHZsMUxpc3QgPSBbXTtcclxuICBtZW51bHZsMkxpc3QgPSBbXTtcclxuICB1c3JMc3QgPSBbXTtcclxuICB1c2VySWRucyA9IFtdO1xyXG4gIHVzclJpZ2h0THN0XHJcbiAgaGVhZGVyO1xyXG4gIHNlbGVjdGVkU2xhdmVzOiB7IFtrZXk6IG51bWJlcl06IGJvb2xlYW47IH0gPSB7fTtcclxuICBjYmxlbiA9IDA7XHJcbiAgdiA9IFwiXCI7XHJcbiAgdjEgPSBcIlwiO1xyXG4gIHYyID0gXCJcIjtcclxuICBhcHAgPSBcIlwiO1xyXG4gIGFwcGxpY2F0aW9uTGlzdCA9IFtdO1xyXG5cclxuICBmaWxsQXBwKCkge1xyXG4gICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBjb25zdCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialtcImZvcm1ObWVcIl0gPSBcIm1lbnVSaWdodHNNYXN0ZXJcIjtcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdsb2FkJztcclxuICAgIC8vIGNvbnN0IG9wdGlvbnMgPSBuZXcgUmVxdWVzdE9wdGlvbnMoeyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9KTtcclxuICAgIC8vIGNvbnN0IG9wdGlvbnMgPSBuZXcgSHR0cEhlYWRlcnMoeyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9KTtcclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy5oZWFkZXJcIiwgdGhpcy5oZWFkZXIpO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH07XHJcbiAgICB0aGlzLmFzLmdldE1lbnVSaWdodHMocmVxT2JqLCBvcHRpb25zKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICB0aGlzLmFwcGxpY2F0aW9uTGlzdCA9IHJlc3BvbnNlLmFwcGxpY2F0aW9uTGlzdDtcclxuICAgICAgICB0aGlzLmJ0biA9IHJlc3BvbnNlLmJ1dHRvbnNbMF07XHJcblxyXG4gICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhyZXNwb25zZS5tZXNzYWdlLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAvLyB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coZXJyLm1lc3NhZ2UsIHsgY3NzQ2xhc3M6ICdhbGVydC1kYW5nZXInLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmaWxsTW9kdWxlKGFwcGxJZCkge1xyXG4gICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBjb25zdCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialtcImZvcm1ObWVcIl0gPSBcIm1lbnVSaWdodHNNYXN0ZXJcIjtcclxuICAgIHJlcU9ialtcImFwcGxjYXRpb25JZG5cIl0gPSBhcHBsSWQ7XHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnbG9hZE1vZHVsZSc7XHJcbiAgICAvLyBjb25zdCBvcHRpb25zID0gbmV3IFJlcXVlc3RPcHRpb25zKHsgaGVhZGVyczogdGhpcy5oZWFkZXIgfSk7XHJcbiAgICAvLyBjb25zdCBvcHRpb25zID0gbmV3IEh0dHBIZWFkZXJzKHsgaGVhZGVyczogdGhpcy5oZWFkZXIgfSk7XHJcbiAgICBsZXQgb3B0aW9ucyA9IHsgaGVhZGVyczogdGhpcy5oZWFkZXIgfTtcclxuXHJcbiAgICB0aGlzLmFzLmdldE1lbnVSaWdodHMocmVxT2JqLCBvcHRpb25zKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICB0aGlzLnVzckxzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMubWRsbGlzdCA9IHJlc3BvbnNlLm1vZHVsZUxpc3Q7XHJcbiAgICAgICAgdGhpcy5wYWdlaW5mbyA9IHJlc3BvbnNlLnBhZ2VJbmZvO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuYnRuKTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLm1kbGxpc3QpO1xyXG4gICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAvLyB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3cocmVzcG9uc2UubWVzc2FnZSwgeyBjc3NDbGFzczogJ2FsZXJ0LWRhbmdlcicsIHRpbWVvdXQ6IDMwMDAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgLy8gdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KGVyci5tZXNzYWdlLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmlsbExldmVsMShtb2R1bGVfaWRuKSB7XHJcbiAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIGNvbnNvbGUubG9nKG1vZHVsZV9pZG4pXHJcbiAgICBjb25zdCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialtcImZvcm1ObWVcIl0gPSBcIm1lbnVSaWdodHNNYXN0ZXJcIjtcclxuICAgIHJlcU9ialtcIm1vZHVsZUlkblwiXSA9IG1vZHVsZV9pZG47XHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnbG9hZE1lbnVsZXZlbDEnO1xyXG4gICAgLy8gY29uc3Qgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH0pO1xyXG4gICAgLy8gY29uc3Qgb3B0aW9ucyA9IG5ldyBIdHRwSGVhZGVycyh7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH0pO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH07XHJcblxyXG4gICAgdGhpcy5hcy5nZXRNZW51UmlnaHRzKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgdGhpcy51c3JMc3QgPSBbXTtcclxuICAgICAgICB0aGlzLm1lbnVsdmwyTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMubWVudWx2bDFMaXN0ID0gcmVzcG9uc2Uua3Y7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5tZW51bHZsMUxpc3QpO1xyXG4gICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAvLyB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3cocmVzcG9uc2UubWVzc2FnZSwgeyBjc3NDbGFzczogJ2FsZXJ0LWRhbmdlcicsIHRpbWVvdXQ6IDMwMDAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgLy8gdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KGVyci5tZXNzYWdlLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmlsbExldmVsMihtb2R1bGVfaWRuLCBtZW51SWRuKSB7XHJcbiAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIGNvbnNvbGUubG9nKG1vZHVsZV9pZG4pO1xyXG4gICAgY29uc29sZS5sb2cobWVudUlkbik7XHJcblxyXG4gICAgY29uc3QgcmVxT2JqID0ge307XHJcbiAgICByZXFPYmpbXCJmb3JtTm1lXCJdID0gXCJtZW51UmlnaHRzTWFzdGVyXCI7XHJcbiAgICByZXFPYmpbXCJtb2R1bGVJZG5cIl0gPSBtb2R1bGVfaWRuO1xyXG4gICAgcmVxT2JqW1wibWVudUlkblwiXSA9IG1lbnVJZG47XHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnbG9hZE1lbnVsZXZlbDInO1xyXG4gICAgLy8gY29uc3Qgb3B0aW9ucyA9IG5ldyBIdHRwSGVhZGVycyh7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH0pO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH07XHJcblxyXG4gICAgLy8gY29uc3Qgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH0pO1xyXG4gICAgdGhpcy5hcy5nZXRNZW51UmlnaHRzKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgdGhpcy5tZW51bHZsMkxpc3QgPSByZXNwb25zZS5rdjtcclxuICAgICAgICB0aGlzLnVzckxzdCA9IFtdO1xyXG4gICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMubWVudWx2bDJMaXN0KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAvLyB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3cocmVzcG9uc2UubWVzc2FnZSwgeyBjc3NDbGFzczogJ2FsZXJ0LWRhbmdlcicsIHRpbWVvdXQ6IDMwMDAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgLy8gdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KGVyci5tZXNzYWdlLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgc3VibWVudUNoYW5nZSgpIHtcclxuICAgIHRoaXMudXNyTHN0ID0gW107XHJcbiAgfVxyXG4gIGdldFVzZXJSaWdodChtb2R1bGVfaWRuLCBtZW51SWRuLCBzdWJtZW51LCBhcHBsaWQpIHtcclxuICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgY29uc3QgcmVxT2JqID0ge307XHJcbiAgICByZXFPYmpbXCJhcHBsY2F0aW9uSWRuXCJdID0gYXBwbGlkO1xyXG4gICAgcmVxT2JqW1wibW9kdWxlSWRuXCJdID0gbW9kdWxlX2lkbjtcclxuICAgIHJlcU9ialtcIm1lbnVJZG5cIl0gPSAoc3VibWVudSA9PSB1bmRlZmluZWQgfHwgc3VibWVudSA9PSBcIlwiKSA/IG1lbnVJZG4gOiBzdWJtZW51O1xyXG4gICAgcmVxT2JqW1wiZm9ybU5tZVwiXSA9IFwibWVudVJpZ2h0c01hc3RlclwiO1xyXG4gICAgdGhpcy5oZWFkZXJbJ21ldGhvZCddID0gJ2xvYWR1c2VyUmlnaHRzJztcclxuICAgIGNvbnNvbGUubG9nKHJlcU9iaik7XHJcbiAgICBjb25zb2xlLmxvZyhcInRoaXMuaGVhZGVyXCIsIHRoaXMuaGVhZGVyKTtcclxuICAgIC8vIGNvbnN0IG9wdGlvbnMgPSBuZXcgUmVxdWVzdE9wdGlvbnMoeyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9KTtcclxuICAgIC8vIGNvbnN0IG9wdGlvbnMgPSBuZXcgSHR0cEhlYWRlcnMoeyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9KTtcclxuICAgIGxldCBvcHRpb25zID0geyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9O1xyXG5cclxuICAgIHRoaXMuYXMuZ2V0TWVudVJpZ2h0cyhyZXFPYmosIG9wdGlvbnMpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIHRoaXMudXNyTHN0ID0gcmVzcG9uc2UudXNlckxpc3Q7XHJcbiAgICAgICAgdGhpcy51c3JSaWdodExzdCA9IHJlc3BvbnNlLnVzZXJSaWdodExpc3Q7XHJcbiAgICAgICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy51c3JMc3QpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhyZXNwb25zZS5tZXNzYWdlLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAvLyB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coZXJyLm1lc3NhZ2UsIHsgY3NzQ2xhc3M6ICdhbGVydC1kYW5nZXInLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuICAvL2Usdix2MSx1c2VyLnVzZXJfaWRuLHYyLGFwcCAgLy8gcGFyYW1ldGVyIHNlcXVlbmNlIGluIGh0bWxcclxuICBvbkNoYW5nZShlLCBtb2R1bGVpZG4sIG1lbnVJZG4sIHVzZXJfaWRuLCBzdWJtZW51aWQsIGFwcGxJZCkge1xyXG4gICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBjb25zdCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialtcIm1lbnVJZG5cIl0gPSAoc3VibWVudWlkID09IHVuZGVmaW5lZCB8fCBzdWJtZW51aWQgPT0gXCJcIikgPyBtZW51SWRuIDogc3VibWVudWlkO1xyXG4gICAgcmVxT2JqW1widXNlcklkblwiXSA9IFt1c2VyX2lkbl07XHJcbiAgICByZXFPYmpbXCJoZHJJZG5cIl0gPSBtZW51SWRuOy8vIChzdWJtZW51aWQgPT0gdW5kZWZpbmVkIHx8IHN1Ym1lbnVpZCA9PSBcIlwiKSA/IG1lbnVJZG4gOiAnJzsvL21lbnVpZG4gbHZsMVxyXG4gICAgcmVxT2JqW1wic3R0XCJdID0gZS50YXJnZXQuY2hlY2tlZCA9PSB0cnVlID8gXCIxXCIgOiBcIjBcIjtcclxuICAgIHJlcU9ialtcImZvcm1ObWVcIl0gPSBcInNhdmVVc2VyUmlnaHRNYXN0ZXJcIjtcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdzYXZlVXNlclJpZ2h0cyc7XHJcbiAgICBjb25zb2xlLmxvZyhyZXFPYmopO1xyXG5cclxuICAgIC8vIGNvbnN0IG9wdGlvbnMgPSBuZXcgUmVxdWVzdE9wdGlvbnMoeyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9KTtcclxuICAgIC8vIGNvbnN0IG9wdGlvbnMgPSBuZXcgSHR0cEhlYWRlcnMoeyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9KTtcclxuICAgIGxldCBvcHRpb25zID0geyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9O1xyXG5cclxuICAgIHRoaXMuYXMuc2F2ZVVzZXJNZW51UmlnaHRzKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy5nZXRVc2VyUmlnaHQobW9kdWxlaWRuLCBtZW51SWRuLCBzdWJtZW51aWQsIGFwcGxJZCk7XHJcbiAgICAgICAgLy8gdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KHJlc3BvbnNlLm1lc3NhZ2UsIHsgY3NzQ2xhc3M6ICdhbGVydC1zdWNjZXNzJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAvLyB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3cocmVzcG9uc2UubWVzc2FnZSwgeyBjc3NDbGFzczogJ2FsZXJ0LWRhbmdlcicsIHRpbWVvdXQ6IDMwMDAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgLy8gdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KGVyci5tZXNzYWdlLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlQWxsKGUsIG1vZHVsZWlkbiwgbWVudUlkbiwgc3VibWVudWlkLCBhcHBsSWQpIHtcclxuICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgdGhpcy51c3JMc3QuZm9yRWFjaChlYWNoT2JqID0+IHtcclxuICAgICAgdGhpcy51c2VySWRucy5wdXNoKGVhY2hPYmoudXNlcl9pZG4pO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialtcIm1lbnVJZG5cIl0gPSAoc3VibWVudWlkID09IHVuZGVmaW5lZCB8fCBzdWJtZW51aWQgPT0gXCJcIikgPyBtZW51SWRuIDogc3VibWVudWlkO1xyXG4gICAgcmVxT2JqW1widXNlcklkblwiXSA9IHRoaXMudXNlcklkbnM7XHJcbiAgICByZXFPYmpbXCJoZHJJZG5cIl0gPSBtZW51SWRuOyAvLyhzdWJtZW51aWQgPT0gdW5kZWZpbmVkIHx8IHN1Ym1lbnVpZCA9PSBcIlwiKSA/IG1lbnVJZG4gOiAnJztcclxuICAgIHJlcU9ialtcInN0dFwiXSA9IGUudGFyZ2V0LmNoZWNrZWQgPT0gdHJ1ZSA/IFwiMVwiIDogXCIwXCI7XHJcbiAgICByZXFPYmpbXCJmb3JtTm1lXCJdID0gXCJzYXZlVXNlclJpZ2h0TWFzdGVyXCI7XHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnc2F2ZVVzZXJSaWdodHMnO1xyXG4gICAgLy8gY29uc3Qgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH0pO1xyXG4gICAgLy8gY29uc3Qgb3B0aW9ucyA9IG5ldyBIdHRwSGVhZGVycyh7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH0pO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH07XHJcblxyXG4gICAgdGhpcy5hcy5zYXZlVXNlck1lbnVSaWdodHMocmVxT2JqLCBvcHRpb25zKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudXNlcklkbnMgPSBbXTtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICB0aGlzLmdldFVzZXJSaWdodChtb2R1bGVpZG4sIG1lbnVJZG4sIHN1Ym1lbnVpZCwgYXBwbElkKTtcclxuICAgICAgICAvLyB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3cocmVzcG9uc2UubWVzc2FnZSwgeyBjc3NDbGFzczogJ2FsZXJ0LXN1Y2Nlc3MnLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhyZXNwb25zZS5tZXNzYWdlLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAvLyB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coZXJyLm1lc3NhZ2UsIHsgY3NzQ2xhc3M6ICdhbGVydC1kYW5nZXInLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuICBjVXJsO1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgbGV0IG1kbGsgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtZGxLZXknKSk7XHJcbiAgICBkZWJ1Z2dlclxyXG4gICAgdGhpcy5jVXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5jVXJsLnNwbGl0KCcvJylbMV0pO1xyXG4gICAgdGhpcy5oZWFkZXIgPSB7XHJcbiAgICAgICdjbGllbnRrZXknOiBDb29raWUuZ2V0KCdfY2snKSxcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgJ21vZHVsZWtleSc6IG1kbGtbdGhpcy5jVXJsLnNwbGl0KCcvJylbMV1dLFxyXG4gICAgICAnbG9naW5pZCc6IENvb2tpZS5nZXQoJ19sb2dpZCcpLFxyXG4gICAgICAnc291cmNlJzogJ3FzJ1xyXG4gICAgfTtcclxuICAgIC8vdGhpcy5maWxsTW9kdWxlKCk7XHJcbiAgICB0aGlzLmZpbGxBcHAoKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRpb25GdW4obmF2LCBpKSB7IH1cclxuXHJcbn1cclxuXHJcbiIsIjxkaXYgY2xhc3M9XCJtdFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJwYW5lbCBwYW5lbC1kZWZhdWx0XCI+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
+ NumberWithCommasPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NumberWithCommasPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
17
+ NumberWithCommasPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NumberWithCommasPipe, name: "numberWithCommas" });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NumberWithCommasPipe, decorators: [{
19
+ type: Pipe,
20
+ args: [{
21
+ name: 'numberWithCommas'
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXdpdGgtY29tbWFzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lei1saWIvc3JjL2xpYi9waXBlcy9udW1iZXItd2l0aC1jb21tYXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixTQUFTLENBQUMsS0FBVSxFQUFFLElBQVU7UUFDOUIsS0FBSyxHQUFDLEtBQUssSUFBRSxFQUFFLENBQUM7UUFDaEIsSUFBRyxLQUFLLElBQUUsRUFBRSxFQUFDO1lBQ2IsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMxRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdEI7YUFBSTtZQUNILE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDOztrSEFYVSxvQkFBb0I7Z0hBQXBCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQUhoQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxrQkFBa0I7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdudW1iZXJXaXRoQ29tbWFzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTnVtYmVyV2l0aENvbW1hc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGFyZ3M/OiBhbnkpOiBhbnkge1xyXG4gICAgdmFsdWU9dmFsdWV8fCcnO1xyXG4gICAgaWYodmFsdWUhPScnKXtcclxuICAgIHZhciBwYXJ0cyA9IHZhbHVlLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpO1xyXG4gICAgcGFydHNbMF0gPSBwYXJ0c1swXS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCBcIixcIik7XHJcbiAgICByZXR1cm4gcGFydHMuam9pbihcIi5cIik7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -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
+ OrderByPipePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: OrderByPipePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
10
+ OrderByPipePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: OrderByPipePipe, name: "orderByPipe" });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: OrderByPipePipe, decorators: [{
12
+ type: Pipe,
13
+ args: [{
14
+ name: 'orderByPipe'
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItYnktcGlwZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXotbGliL3NyYy9saWIvcGlwZXMvb3JkZXItYnktcGlwZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7O0FBS2pDLE1BQU0sT0FBTyxlQUFlO0lBSDVCO1FBSUUsY0FBUyxHQUFHLE9BQU8sQ0FBQztLQUNyQjs7NkdBRlksZUFBZTsyR0FBZixlQUFlOzRGQUFmLGVBQWU7a0JBSDNCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGFBQWE7aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBvcmRlckJ5IH0gZnJvbSAnbG9kYXNoJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnb3JkZXJCeVBpcGUnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcmRlckJ5UGlwZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0gPSBvcmRlckJ5O1xyXG59XHJcbiJdfQ==
@@ -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
+ GetSelectedPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GetSelectedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
11
+ GetSelectedPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GetSelectedPipe, name: "getSelcted", pure: false });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GetSelectedPipe, decorators: [{
13
+ type: Pipe,
14
+ args: [{
15
+ name: 'getSelcted',
16
+ pure: false
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWRDb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V6LWxpYi9zcmMvbGliL3BpcGVzL3NlbGVjdGVkQ291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELGVBQWU7QUFDZixNQUFNLE9BQU8sZUFBZTtJQUN4QixTQUFTLENBQUMsS0FBWTtRQUNsQixnQ0FBZ0M7UUFDaEMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDOzs2R0FKUSxlQUFlOzJHQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFMM0IsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsWUFBWTtvQkFDbEIsSUFBSSxFQUFFLEtBQUs7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiAnZ2V0U2VsY3RlZCcsXHJcbiAgICBwdXJlOiBmYWxzZVxyXG59KVxyXG4vL0BJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEdldFNlbGVjdGVkUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgdHJhbnNmb3JtKGl0ZW1zOiBhbnlbXSk6IGFueSB7XHJcbiAgICAgICAgLy8gdGFrZSBvdXQgb25seSBzZWxlY3RlZCB2YWx1ZXNcclxuICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCA9PT0gdHJ1ZSk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -0,0 +1,17 @@
1
+ //commented
2
+ import { Pipe } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class SumPipe {
5
+ transform(value, args) {
6
+ return null;
7
+ }
8
+ }
9
+ SumPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SumPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
10
+ SumPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SumPipe, name: "sum" });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SumPipe, decorators: [{
12
+ type: Pipe,
13
+ args: [{
14
+ name: 'sum'
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lei1saWIvc3JjL2xpYi9waXBlcy9zdW0ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxXQUFXO0FBQ1gsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxPQUFPO0lBRWxCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsSUFBVTtRQUM5QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O3FHQUpVLE9BQU87bUdBQVAsT0FBTzs0RkFBUCxPQUFPO2tCQUhuQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxLQUFLO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiLy9jb21tZW50ZWRcclxuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdzdW0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdW1QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBhcmdzPzogYW55KTogYW55IHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbn1cclxuIl19