cloud-ide-core 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -10
- package/fesm2022/{cloud-ide-core-general-master-type.component-B26auJZw.mjs → cloud-ide-core-general-master-type.component-BNYoP_bS.mjs} +132 -134
- package/fesm2022/{cloud-ide-core-general-master-type.component-B26auJZw.mjs.map → cloud-ide-core-general-master-type.component-BNYoP_bS.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-core-general-master-type.service-Ab64Jjps.mjs → cloud-ide-core-general-master-type.service-8JWTVijZ.mjs} +7 -7
- package/fesm2022/{cloud-ide-core-general-master-type.service-Ab64Jjps.mjs.map → cloud-ide-core-general-master-type.service-8JWTVijZ.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-core-general-master.component-B6llTVoV.mjs → cloud-ide-core-general-master.component-CFGGHinl.mjs} +152 -154
- package/fesm2022/{cloud-ide-core-general-master.component-B6llTVoV.mjs.map → cloud-ide-core-general-master.component-CFGGHinl.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-core-page-form.component-CaEca3mB.mjs → cloud-ide-core-page-form.component-vfE-LkTS.mjs} +25 -25
- package/fesm2022/{cloud-ide-core-page-form.component-CaEca3mB.mjs.map → cloud-ide-core-page-form.component-vfE-LkTS.mjs.map} +1 -1
- package/fesm2022/cloud-ide-core.mjs +1113 -1110
- package/fesm2022/cloud-ide-core.mjs.map +1 -1
- package/index.d.ts +1736 -3
- package/package.json +3 -5
- package/esm2022/cloud-ide-core.mjs +0 -5
- package/esm2022/lib/cloud-ide-core.component.mjs +0 -19
- package/esm2022/lib/cloud-ide-core.routes.mjs +0 -137
- package/esm2022/lib/cloud-ide-core.service.mjs +0 -14
- package/esm2022/lib/core/department-management/components/department-list/department-list.component.mjs +0 -768
- package/esm2022/lib/core/department-management/index.mjs +0 -5
- package/esm2022/lib/core/department-management/services/department-management.service.mjs +0 -187
- package/esm2022/lib/core/designation-management/components/designation-list/designation-list.component.mjs +0 -1122
- package/esm2022/lib/core/designation-management/index.mjs +0 -5
- package/esm2022/lib/core/designation-management/services/designation-management.service.mjs +0 -194
- package/esm2022/lib/core/general-master-management/components/general-master/general-master.component.mjs +0 -738
- package/esm2022/lib/core/general-master-management/components/general-master-type/general-master-type.component.mjs +0 -608
- package/esm2022/lib/core/general-master-management/services/general-master-type.service.mjs +0 -203
- package/esm2022/lib/core/general-master-management/services/general-master.service.mjs +0 -166
- package/esm2022/lib/core/grade-level-management/components/grade-level-list/grade-level-list.component.mjs +0 -794
- package/esm2022/lib/core/grade-level-management/index.mjs +0 -5
- package/esm2022/lib/core/grade-level-management/services/grade-level-management.service.mjs +0 -172
- package/esm2022/lib/core/menu-management/components/menu-list/menu-list.component.mjs +0 -1135
- package/esm2022/lib/core/menu-management/index.mjs +0 -10
- package/esm2022/lib/core/menu-management/interfaces/menu-item.interface.mjs +0 -11
- package/esm2022/lib/core/menu-management/mock-data/menu-items.json +0 -311
- package/esm2022/lib/core/menu-management/services/menu-management.service.mjs +0 -230
- package/esm2022/lib/core/page-management/components/page-controls/page-controls.component.mjs +0 -483
- package/esm2022/lib/core/page-management/components/page-form/page-form.component.mjs +0 -212
- package/esm2022/lib/core/page-management/components/page-list/page-list.component.mjs +0 -393
- package/esm2022/lib/core/page-management/components/page-theme/page-theme.component.mjs +0 -767
- package/esm2022/lib/core/page-management/index.mjs +0 -10
- package/esm2022/lib/core/page-management/services/page-controls.service.mjs +0 -136
- package/esm2022/lib/core/page-management/services/page-management.service.mjs +0 -98
- package/esm2022/lib/core/page-management/services/page-theme.service.mjs +0 -107
- package/esm2022/public-api.mjs +0 -17
- package/lib/cloud-ide-core.component.d.ts +0 -5
- package/lib/cloud-ide-core.routes.d.ts +0 -2
- package/lib/cloud-ide-core.service.d.ts +0 -6
- package/lib/core/department-management/components/department-list/department-list.component.d.ts +0 -178
- package/lib/core/department-management/index.d.ts +0 -2
- package/lib/core/department-management/services/department-management.service.d.ts +0 -68
- package/lib/core/designation-management/components/designation-list/designation-list.component.d.ts +0 -242
- package/lib/core/designation-management/index.d.ts +0 -2
- package/lib/core/designation-management/services/designation-management.service.d.ts +0 -69
- package/lib/core/general-master-management/components/general-master/general-master.component.d.ts +0 -167
- package/lib/core/general-master-management/components/general-master-type/general-master-type.component.d.ts +0 -129
- package/lib/core/general-master-management/services/general-master-type.service.d.ts +0 -75
- package/lib/core/general-master-management/services/general-master.service.d.ts +0 -62
- package/lib/core/grade-level-management/components/grade-level-list/grade-level-list.component.d.ts +0 -199
- package/lib/core/grade-level-management/index.d.ts +0 -2
- package/lib/core/grade-level-management/services/grade-level-management.service.d.ts +0 -69
- package/lib/core/menu-management/components/menu-list/menu-list.component.d.ts +0 -278
- package/lib/core/menu-management/index.d.ts +0 -3
- package/lib/core/menu-management/interfaces/menu-item.interface.d.ts +0 -30
- package/lib/core/menu-management/services/menu-management.service.d.ts +0 -85
- package/lib/core/page-management/components/page-controls/page-controls.component.d.ts +0 -126
- package/lib/core/page-management/components/page-form/page-form.component.d.ts +0 -35
- package/lib/core/page-management/components/page-list/page-list.component.d.ts +0 -91
- package/lib/core/page-management/components/page-theme/page-theme.component.d.ts +0 -189
- package/lib/core/page-management/index.d.ts +0 -6
- package/lib/core/page-management/services/page-controls.service.d.ts +0 -54
- package/lib/core/page-management/services/page-management.service.d.ts +0 -42
- package/lib/core/page-management/services/page-theme.service.d.ts +0 -43
- package/public-api.d.ts +0 -8
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import { Injectable, inject } from '@angular/core';
|
|
2
|
-
import { HttpClient } from '@angular/common/http';
|
|
3
|
-
import { throwError, BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { catchError, tap } from 'rxjs/operators';
|
|
5
|
-
import { cidePath, coreRoutesUrl, generateStringFromObject, hostManagerRoutesUrl } from 'cloud-ide-lms-model';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class GeneralMasterTypeService {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.http = inject(HttpClient);
|
|
10
|
-
this.generalMasterTypeListSubject = new BehaviorSubject([]);
|
|
11
|
-
this.generalMasterTypeList$ = this.generalMasterTypeListSubject.asObservable();
|
|
12
|
-
console.log('GeneralMasterTypeService initialized - using real API');
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Get general master type list from API
|
|
16
|
-
*/
|
|
17
|
-
getTypeList(body) {
|
|
18
|
-
const query = generateStringFromObject(body);
|
|
19
|
-
return this.http?.get(cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, coreRoutesUrl?.module, coreRoutesUrl?.generalMasterType, query]))
|
|
20
|
-
.pipe(tap((response) => {
|
|
21
|
-
if (response?.success) {
|
|
22
|
-
this.generalMasterTypeListSubject.next(response?.data || []);
|
|
23
|
-
}
|
|
24
|
-
}), catchError(error => {
|
|
25
|
-
console.error('GeneralMasterTypeService API error:', error);
|
|
26
|
-
return this.handleError(error);
|
|
27
|
-
}));
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Get general master type list from cache (if available)
|
|
31
|
-
*/
|
|
32
|
-
getTypeListFromCache() {
|
|
33
|
-
return this.generalMasterTypeListSubject.value;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Create or update general master type
|
|
37
|
-
* POST ${coreRoutesUrl?.generalMasterType} - payload: IGeneralMasterTypeCreateUpdatePayload, response: generalMasterTypeInsertUpdateControllerResponse
|
|
38
|
-
* If type._id exists, it will update; otherwise, it will create a new type
|
|
39
|
-
*/
|
|
40
|
-
saveType(type) {
|
|
41
|
-
const isUpdate = !!type._id;
|
|
42
|
-
console.log(`${isUpdate ? 'Updating' : 'Creating'} general master type:`, type);
|
|
43
|
-
// Create proper payload - backend will determine create vs update based on _id presence
|
|
44
|
-
const payload = {
|
|
45
|
-
...(type._id && { _id: type._id }), // Only include _id if it exists
|
|
46
|
-
sygmt_code: type.sygmt_code,
|
|
47
|
-
sygmt_title: type.sygmt_title,
|
|
48
|
-
sygmt_desc: type.sygmt_desc,
|
|
49
|
-
sygmt_isactive: type.sygmt_isactive,
|
|
50
|
-
sygmt_configuration: type.sygmt_configuration,
|
|
51
|
-
sygmt_id_sygmt: type.sygmt_id_sygmt
|
|
52
|
-
};
|
|
53
|
-
const url = cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, coreRoutesUrl?.module, coreRoutesUrl?.generalMasterType]);
|
|
54
|
-
return this.http.post(url, payload)
|
|
55
|
-
.pipe(tap((response) => {
|
|
56
|
-
if (response.success) {
|
|
57
|
-
this.refreshTypeList();
|
|
58
|
-
}
|
|
59
|
-
}), catchError(this.handleError));
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Get general master type by ID
|
|
63
|
-
* GET ${coreRoutesUrl?.generalMasterType}/byId/:query - payload: { sygmt_id: string }, response: generalMasterTypeByIdControllerResponse
|
|
64
|
-
*/
|
|
65
|
-
getTypeById(id) {
|
|
66
|
-
console.log('Getting general master type by ID:', id);
|
|
67
|
-
const payload = { sygmt_id: id };
|
|
68
|
-
const query = generateStringFromObject(payload);
|
|
69
|
-
const url = cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, coreRoutesUrl?.module, coreRoutesUrl?.generalMasterType, 'byId', query]);
|
|
70
|
-
return this.http.get(url)
|
|
71
|
-
.pipe(catchError(this.handleError));
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Delete general master type
|
|
75
|
-
* DELETE ${coreRoutesUrl?.generalMasterType}/:query - payload: { sygmt_id: string }, response: generalMasterTypeDeleteControllerResponse
|
|
76
|
-
*/
|
|
77
|
-
deleteType(id) {
|
|
78
|
-
const payload = { sygmt_id: id };
|
|
79
|
-
const query = generateStringFromObject(payload);
|
|
80
|
-
const url = cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, coreRoutesUrl?.module, coreRoutesUrl?.generalMasterType, query]);
|
|
81
|
-
return this.http.delete(url)
|
|
82
|
-
.pipe(tap((response) => {
|
|
83
|
-
if (response.success) {
|
|
84
|
-
this.refreshTypeList();
|
|
85
|
-
}
|
|
86
|
-
}), catchError(this.handleError));
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Delete multiple general master types
|
|
90
|
-
*/
|
|
91
|
-
deleteMultipleTypes(ids) {
|
|
92
|
-
console.log('Deleting multiple general master types:', ids);
|
|
93
|
-
const payload = { ids };
|
|
94
|
-
const query = generateStringFromObject(payload);
|
|
95
|
-
const url = cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, coreRoutesUrl?.module, coreRoutesUrl?.generalMasterType, query]);
|
|
96
|
-
return this.http.delete(url)
|
|
97
|
-
.pipe(tap((response) => {
|
|
98
|
-
if (response.success) {
|
|
99
|
-
this.refreshTypeList();
|
|
100
|
-
}
|
|
101
|
-
}), catchError(this.handleError));
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Toggle general master type active status
|
|
105
|
-
*/
|
|
106
|
-
toggleTypeStatus(payload) {
|
|
107
|
-
const query = generateStringFromObject(payload);
|
|
108
|
-
const url = cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, coreRoutesUrl?.module, coreRoutesUrl?.generalMasterType, query]);
|
|
109
|
-
return this.http.put(url, {})
|
|
110
|
-
.pipe(tap((response) => {
|
|
111
|
-
if (response.success) {
|
|
112
|
-
this.refreshTypeList();
|
|
113
|
-
}
|
|
114
|
-
}), catchError(this.handleError));
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Check if type code exists
|
|
118
|
-
*/
|
|
119
|
-
checkTypeCodeExists(code, excludeId) {
|
|
120
|
-
const payload = { code };
|
|
121
|
-
if (excludeId) {
|
|
122
|
-
payload['excludeId'] = excludeId;
|
|
123
|
-
}
|
|
124
|
-
const query = generateStringFromObject(payload);
|
|
125
|
-
const url = cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, coreRoutesUrl?.module, coreRoutesUrl?.generalMasterType, 'checkCodeExists', query]);
|
|
126
|
-
return this.http.get(url)
|
|
127
|
-
.pipe(catchError(this.handleError));
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Get hierarchical tree structure
|
|
131
|
-
*/
|
|
132
|
-
getTypeTree() {
|
|
133
|
-
const url = cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, coreRoutesUrl?.module, coreRoutesUrl?.generalMasterType, 'tree']);
|
|
134
|
-
return this.http.get(url)
|
|
135
|
-
.pipe(catchError(this.handleError));
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Find general master type by ID
|
|
139
|
-
*/
|
|
140
|
-
findTypeById(id, items = this.generalMasterTypeListSubject.value) {
|
|
141
|
-
for (const item of items) {
|
|
142
|
-
if (item._id === id) {
|
|
143
|
-
return item;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
return null;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Get parent general master types for dropdown selection
|
|
150
|
-
*/
|
|
151
|
-
getParentTypes(excludeId) {
|
|
152
|
-
const allItems = [];
|
|
153
|
-
const flattenItems = (items, level = 0) => {
|
|
154
|
-
items.forEach(item => {
|
|
155
|
-
if (item._id !== excludeId) {
|
|
156
|
-
allItems.push({
|
|
157
|
-
...item,
|
|
158
|
-
sygmt_title: ' '.repeat(level) + item.sygmt_title
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
};
|
|
163
|
-
flattenItems(this.generalMasterTypeListSubject.value);
|
|
164
|
-
return allItems;
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Refresh general master type list from server
|
|
168
|
-
*/
|
|
169
|
-
refreshTypeList() {
|
|
170
|
-
const defaultBody = {};
|
|
171
|
-
this.getTypeList(defaultBody).subscribe({
|
|
172
|
-
next: () => {
|
|
173
|
-
console.log('General master type list refreshed successfully');
|
|
174
|
-
},
|
|
175
|
-
error: (error) => {
|
|
176
|
-
console.error('Error refreshing general master type list:', error);
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Handle errors
|
|
182
|
-
*/
|
|
183
|
-
handleError(error) {
|
|
184
|
-
let errorMessage = 'An error occurred';
|
|
185
|
-
if (error instanceof Error) {
|
|
186
|
-
errorMessage = error.message;
|
|
187
|
-
}
|
|
188
|
-
else if (typeof error === 'string') {
|
|
189
|
-
errorMessage = error;
|
|
190
|
-
}
|
|
191
|
-
console.error('General Master Type Service Error:', errorMessage);
|
|
192
|
-
return throwError(() => new Error(errorMessage));
|
|
193
|
-
}
|
|
194
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: GeneralMasterTypeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
195
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: GeneralMasterTypeService, providedIn: 'root' }); }
|
|
196
|
-
}
|
|
197
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: GeneralMasterTypeService, decorators: [{
|
|
198
|
-
type: Injectable,
|
|
199
|
-
args: [{
|
|
200
|
-
providedIn: 'root'
|
|
201
|
-
}]
|
|
202
|
-
}], ctorParameters: () => [] });
|
|
203
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC1tYXN0ZXItdHlwZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xvdWQtaWRlLWNvcmUvc3JjL2xpYi9jb3JlL2dlbmVyYWwtbWFzdGVyLW1hbmFnZW1lbnQvc2VydmljZXMvZ2VuZXJhbC1tYXN0ZXItdHlwZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQWMsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFDTCxRQUFRLEVBQ1IsYUFBYSxFQUNiLHdCQUF3QixFQUN4QixvQkFBb0IsRUFTckIsTUFBTSxxQkFBcUIsQ0FBQzs7QUFLN0IsTUFBTSxPQUFPLHdCQUF3QjtJQUtuQztRQUpRLFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUIsaUNBQTRCLEdBQUcsSUFBSSxlQUFlLENBQWUsRUFBRSxDQUFDLENBQUM7UUFDdEUsMkJBQXNCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRy9FLE9BQU8sQ0FBQyxHQUFHLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXLENBQUMsSUFBd0I7UUFDbEMsTUFBTSxLQUFLLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBMEMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLG9CQUFvQixFQUFFLGFBQWEsRUFB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RUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQzs4R0FsT1Usd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTs7MkZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgXG4gIGNpZGVQYXRoLFxuICBjb3JlUm91dGVzVXJsLFxuICBnZW5lcmF0ZVN0cmluZ0Zyb21PYmplY3QsXG4gIGhvc3RNYW5hZ2VyUm91dGVzVXJsLFxuICBnZW5lcmFsTWFzdGVyVHlwZUxpc3RDb250cm9sbGVyUmVzcG9uc2UsXG4gIGdlbmVyYWxNYXN0ZXJUeXBlQnlJZENvbnRyb2xsZXJSZXNwb25zZSxcbiAgZ2VuZXJhbE1hc3RlclR5cGVJbnNlcnRVcGRhdGVDb250cm9sbGVyUmVzcG9uc2UsXG4gIGdlbmVyYWxNYXN0ZXJUeXBlRGVsZXRlQ29udHJvbGxlclJlc3BvbnNlLFxuICBnZW5lcmFsTWFzdGVyVHlwZVRvZ2dsZVN0YXR1c0NvbnRyb2xsZXJSZXNwb25zZSxcbiAgTUdlbmVyYWxNYXN0ZXJUeXBlLFxuICBNR2VuZXJhbE1hc3RlclR5cGVUb2dnbGVTdGF0dXNQYXlsb2FkLFxuICBJQ29yZVN5Z210XG59IGZyb20gJ2Nsb3VkLWlkZS1sbXMtbW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBHZW5lcmFsTWFzdGVyVHlwZVNlcnZpY2Uge1xuICBwcml2YXRlIGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByaXZhdGUgZ2VuZXJhbE1hc3RlclR5cGVMaXN0U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUNvcmVTeWdtdFtdPihbXSk7XG4gIHB1YmxpYyBnZW5lcmFsTWFzdGVyVHlwZUxpc3QkID0gdGhpcy5nZW5lcmFsTWFzdGVyVHlwZUxpc3RTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnNvbGUubG9nKCdHZW5lcmFsTWFzdGVyVHlwZVNlcnZpY2UgaW5pdGlhbGl6ZWQgLSB1c2luZyByZWFsIEFQSScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBnZW5lcmFsIG1hc3RlciB0eXBlIGxpc3QgZnJvbSBBUElcbiAgICovXG4gIGdldFR5cGVMaXN0KGJvZHk6IE1HZW5lcmFsTWFzdGVyVHlwZSk6IE9ic2VydmFibGU8Z2VuZXJhbE1hc3RlclR5cGVMaXN0Q29udHJvbGxlclJlc3BvbnNlPiB7XG4gICAgY29uc3QgcXVlcnkgPSBnZW5lcmF0ZVN0cmluZ0Zyb21PYmplY3QoYm9keSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cD8uZ2V0PGdlbmVyYWxNYXN0ZXJUeXBlTGlzdENvbnRyb2xsZXJSZXNwb25zZT4oY2lkZVBhdGg/LmpvaW4oW2hvc3RNYW5hZ2VyUm91dGVzVXJsPy5jaWRlU3VpdGVIb3N0LCBjb3JlUm91dGVzVXJsPy5tb2R1bGUsIGNvcmVSb3V0ZXNVcmw/LmdlbmVyYWxNYXN0ZXJUeXBlLCBxdWVyeV0pKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgocmVzcG9uc2U6IGdlbmVyYWxNYXN0ZXJUeXBlTGlzdENvbnRyb2xsZXJSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGlmIChyZXNwb25zZT8uc3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5nZW5lcmFsTWFzdGVyVHlwZUxpc3RTdWJqZWN0Lm5leHQocmVzcG9uc2U/LmRhdGEgfHwgW10pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0dlbmVyYWxNYXN0ZXJUeXBlU2VydmljZSBBUEkgZXJyb3I6JywgZXJyb3IpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGdlbmVyYWwgbWFzdGVyIHR5cGUgbGlzdCBmcm9tIGNhY2hlIChpZiBhdmFpbGFibGUpXG4gICAqL1xuICBnZXRUeXBlTGlzdEZyb21DYWNoZSgpOiBJQ29yZVN5Z210W10ge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYWxNYXN0ZXJUeXBlTGlzdFN1YmplY3QudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIG9yIHVwZGF0ZSBnZW5lcmFsIG1hc3RlciB0eXBlXG4gICAqIFBPU1QgJHtjb3JlUm91dGVzVXJsPy5nZW5lcmFsTWFzdGVyVHlwZX0gLSBwYXlsb2FkOiBJR2VuZXJhbE1hc3RlclR5cGVDcmVhdGVVcGRhdGVQYXlsb2FkLCByZXNwb25zZTogZ2VuZXJhbE1hc3RlclR5cGVJbnNlcnRVcGRhdGVDb250cm9sbGVyUmVzcG9uc2VcbiAgICogSWYgdHlwZS5faWQgZXhpc3RzLCBpdCB3aWxsIHVwZGF0ZTsgb3RoZXJ3aXNlLCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyB0eXBlXG4gICAqL1xuICBzYXZlVHlwZSh0eXBlOiBJQ29yZVN5Z210KTogT2JzZXJ2YWJsZTxnZW5lcmFsTWFzdGVyVHlwZUluc2VydFVwZGF0ZUNvbnRyb2xsZXJSZXNwb25zZT4ge1xuICAgIGNvbnN0IGlzVXBkYXRlID0gISF0eXBlLl9pZDtcbiAgICBjb25zb2xlLmxvZyhgJHtpc1VwZGF0ZSA/ICdVcGRhdGluZycgOiAnQ3JlYXRpbmcnfSBnZW5lcmFsIG1hc3RlciB0eXBlOmAsIHR5cGUpO1xuICAgIFxuICAgIC8vIENyZWF0ZSBwcm9wZXIgcGF5bG9hZCAtIGJhY2tlbmQgd2lsbCBkZXRlcm1pbmUgY3JlYXRlIHZzIHVwZGF0ZSBiYXNlZCBvbiBfaWQgcHJlc2VuY2VcbiAgICBjb25zdCBwYXlsb2FkOiBJQ29yZVN5Z210ID0ge1xuICAgICAgLi4uKHR5cGUuX2lkICYmIHsgX2lkOiB0eXBlLl9pZCB9KSwgLy8gT25seSBpbmNsdWRlIF9pZCBpZiBpdCBleGlzdHNcbiAgICAgIHN5Z210X2NvZGU6IHR5cGUuc3lnbXRfY29kZSxcbiAgICAgIHN5Z210X3RpdGxlOiB0eXBlLnN5Z210X3RpdGxlLFxuICAgICAgc3lnbXRfZGVzYzogdHlwZS5zeWdtdF9kZXNjLFxuICAgICAgc3lnbXRfaXNhY3RpdmU6IHR5cGUuc3lnbXRfaXNhY3RpdmUsXG4gICAgICBzeWdtdF9jb25maWd1cmF0aW9uOiB0eXBlLnN5Z210X2NvbmZpZ3VyYXRpb24sXG4gICAgICBzeWdtdF9pZF9zeWdtdDogdHlwZS5zeWdtdF9pZF9zeWdtdFxuICAgIH07XG4gICAgXG4gICAgY29uc3QgdXJsID0gY2lkZVBhdGg/LmpvaW4oW2hvc3RNYW5hZ2VyUm91dGVzVXJsPy5jaWRlU3VpdGVIb3N0LCBjb3JlUm91dGVzVXJsPy5tb2R1bGUsIGNvcmVSb3V0ZXNVcmw/LmdlbmVyYWxNYXN0ZXJUeXBlXSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGdlbmVyYWxNYXN0ZXJUeXBlSW5zZXJ0VXBkYXRlQ29udHJvbGxlclJlc3BvbnNlPih1cmwsIHBheWxvYWQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChyZXNwb25zZTogZ2VuZXJhbE1hc3RlclR5cGVJbnNlcnRVcGRhdGVDb250cm9sbGVyUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoVHlwZUxpc3QoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBnZW5lcmFsIG1hc3RlciB0eXBlIGJ5IElEXG4gICAqIEdFVCAke2NvcmVSb3V0ZXNVcmw/LmdlbmVyYWxNYXN0ZXJUeXBlfS9ieUlkLzpxdWVyeSAtIHBheWxvYWQ6IHsgc3lnbXRfaWQ6IHN0cmluZyB9LCByZXNwb25zZTogZ2VuZXJhbE1hc3RlclR5cGVCeUlkQ29udHJvbGxlclJlc3BvbnNlXG4gICAqL1xuICBnZXRUeXBlQnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxnZW5lcmFsTWFzdGVyVHlwZUJ5SWRDb250cm9sbGVyUmVzcG9uc2U+IHtcbiAgICBjb25zb2xlLmxvZygnR2V0dGluZyBnZW5lcmFsIG1hc3RlciB0eXBlIGJ5IElEOicsIGlkKTtcbiAgICBjb25zdCBwYXlsb2FkID0geyBzeWdtdF9pZDogaWQgfTtcbiAgICBjb25zdCBxdWVyeSA9IGdlbmVyYXRlU3RyaW5nRnJvbU9iamVjdChwYXlsb2FkKTtcbiAgICBjb25zdCB1cmwgPSBjaWRlUGF0aD8uam9pbihbaG9zdE1hbmFnZXJSb3V0ZXNVcmw/LmNpZGVTdWl0ZUhvc3QsIGNvcmVSb3V0ZXNVcmw/Lm1vZHVsZSwgY29yZVJvdXRlc1VybD8uZ2VuZXJhbE1hc3RlclR5cGUsICdieUlkJywgcXVlcnldKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxnZW5lcmFsTWFzdGVyVHlwZUJ5SWRDb250cm9sbGVyUmVzcG9uc2U+KHVybClcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBnZW5lcmFsIG1hc3RlciB0eXBlXG4gICAqIERFTEVURSAke2NvcmVSb3V0ZXNVcmw/LmdlbmVyYWxNYXN0ZXJUeXBlfS86cXVlcnkgLSBwYXlsb2FkOiB7IHN5Z210X2lkOiBzdHJpbmcgfSwgcmVzcG9uc2U6IGdlbmVyYWxNYXN0ZXJUeXBlRGVsZXRlQ29udHJvbGxlclJlc3BvbnNlXG4gICAqL1xuICBkZWxldGVUeXBlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGdlbmVyYWxNYXN0ZXJUeXBlRGVsZXRlQ29udHJvbGxlclJlc3BvbnNlPiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IHsgc3lnbXRfaWQ6IGlkIH07XG4gICAgY29uc3QgcXVlcnkgPSBnZW5lcmF0ZVN0cmluZ0Zyb21PYmplY3QocGF5bG9hZCk7XG4gICAgY29uc3QgdXJsID0gY2lkZVBhdGg/LmpvaW4oW2hvc3RNYW5hZ2VyUm91dGVzVXJsPy5jaWRlU3VpdGVIb3N0LCBjb3JlUm91dGVzVXJsPy5tb2R1bGUsIGNvcmVSb3V0ZXNVcmw/LmdlbmVyYWxNYXN0ZXJUeXBlLCBxdWVyeV0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGdlbmVyYWxNYXN0ZXJUeXBlRGVsZXRlQ29udHJvbGxlclJlc3BvbnNlPih1cmwpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChyZXNwb25zZTogZ2VuZXJhbE1hc3RlclR5cGVEZWxldGVDb250cm9sbGVyUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoVHlwZUxpc3QoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBtdWx0aXBsZSBnZW5lcmFsIG1hc3RlciB0eXBlc1xuICAgKi9cbiAgZGVsZXRlTXVsdGlwbGVUeXBlcyhpZHM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTx7IHN1Y2Nlc3M6IGJvb2xlYW47IG1lc3NhZ2U/OiBzdHJpbmc7IGRhdGE/OiB1bmtub3duIH0+IHtcbiAgICBjb25zb2xlLmxvZygnRGVsZXRpbmcgbXVsdGlwbGUgZ2VuZXJhbCBtYXN0ZXIgdHlwZXM6JywgaWRzKTtcbiAgICBjb25zdCBwYXlsb2FkID0geyBpZHMgfTtcbiAgICBjb25zdCBxdWVyeSA9IGdlbmVyYXRlU3RyaW5nRnJvbU9iamVjdChwYXlsb2FkKTtcbiAgICBjb25zdCB1cmwgPSBjaWRlUGF0aD8uam9pbihbaG9zdE1hbmFnZXJSb3V0ZXNVcmw/LmNpZGVTdWl0ZUhvc3QsIGNvcmVSb3V0ZXNVcmw/Lm1vZHVsZSwgY29yZVJvdXRlc1VybD8uZ2VuZXJhbE1hc3RlclR5cGUsIHF1ZXJ5XSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8eyBzdWNjZXNzOiBib29sZWFuOyBtZXNzYWdlPzogc3RyaW5nOyBkYXRhPzogdW5rbm93biB9Pih1cmwpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChyZXNwb25zZTogeyBzdWNjZXNzOiBib29sZWFuOyBtZXNzYWdlPzogc3RyaW5nOyBkYXRhPzogdW5rbm93biB9KSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaFR5cGVMaXN0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgZ2VuZXJhbCBtYXN0ZXIgdHlwZSBhY3RpdmUgc3RhdHVzXG4gICAqL1xuICB0b2dnbGVUeXBlU3RhdHVzKHBheWxvYWQ6IE1HZW5lcmFsTWFzdGVyVHlwZVRvZ2dsZVN0YXR1c1BheWxvYWQpOiBPYnNlcnZhYmxlPGdlbmVyYWxNYXN0ZXJUeXBlVG9nZ2xlU3RhdHVzQ29udHJvbGxlclJlc3BvbnNlPiB7XG4gICAgY29uc3QgcXVlcnkgPSBnZW5lcmF0ZVN0cmluZ0Zyb21PYmplY3QocGF5bG9hZCk7XG4gICAgY29uc3QgdXJsID0gY2lkZVBhdGg/LmpvaW4oW2hvc3RNYW5hZ2VyUm91dGVzVXJsPy5jaWRlU3VpdGVIb3N0LCBjb3JlUm91dGVzVXJsPy5tb2R1bGUsIGNvcmVSb3V0ZXNVcmw/LmdlbmVyYWxNYXN0ZXJUeXBlLCBxdWVyeV0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGdlbmVyYWxNYXN0ZXJUeXBlVG9nZ2xlU3RhdHVzQ29udHJvbGxlclJlc3BvbnNlPih1cmwsIHt9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgocmVzcG9uc2U6IGdlbmVyYWxNYXN0ZXJUeXBlVG9nZ2xlU3RhdHVzQ29udHJvbGxlclJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaFR5cGVMaXN0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0eXBlIGNvZGUgZXhpc3RzXG4gICAqL1xuICBjaGVja1R5cGVDb2RlRXhpc3RzKGNvZGU6IHN0cmluZywgZXhjbHVkZUlkPzogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IHN1Y2Nlc3M6IGJvb2xlYW47IG1lc3NhZ2U6IHN0cmluZzsgZXhpc3RzOiBib29sZWFuIH0+IHtcbiAgICBjb25zdCBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0geyBjb2RlIH07XG4gICAgaWYgKGV4Y2x1ZGVJZCkge1xuICAgICAgcGF5bG9hZFsnZXhjbHVkZUlkJ10gPSBleGNsdWRlSWQ7XG4gICAgfVxuICAgIGNvbnN0IHF1ZXJ5ID0gZ2VuZXJhdGVTdHJpbmdGcm9tT2JqZWN0KHBheWxvYWQpO1xuICAgIGNvbnN0IHVybCA9IGNpZGVQYXRoPy5qb2luKFtob3N0TWFuYWdlclJvdXRlc1VybD8uY2lkZVN1aXRlSG9zdCwgY29yZVJvdXRlc1VybD8ubW9kdWxlLCBjb3JlUm91dGVzVXJsPy5nZW5lcmFsTWFzdGVyVHlwZSwgJ2NoZWNrQ29kZUV4aXN0cycsIHF1ZXJ5XSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8eyBzdWNjZXNzOiBib29sZWFuOyBtZXNzYWdlOiBzdHJpbmc7IGV4aXN0czogYm9vbGVhbiB9Pih1cmwpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgaGllcmFyY2hpY2FsIHRyZWUgc3RydWN0dXJlXG4gICAqL1xuICBnZXRUeXBlVHJlZSgpOiBPYnNlcnZhYmxlPGdlbmVyYWxNYXN0ZXJUeXBlTGlzdENvbnRyb2xsZXJSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGNpZGVQYXRoPy5qb2luKFtob3N0TWFuYWdlclJvdXRlc1VybD8uY2lkZVN1aXRlSG9zdCwgY29yZVJvdXRlc1VybD8ubW9kdWxlLCBjb3JlUm91dGVzVXJsPy5nZW5lcmFsTWFzdGVyVHlwZSwgJ3RyZWUnXSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Z2VuZXJhbE1hc3RlclR5cGVMaXN0Q29udHJvbGxlclJlc3BvbnNlPih1cmwpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGdlbmVyYWwgbWFzdGVyIHR5cGUgYnkgSURcbiAgICovXG4gIGZpbmRUeXBlQnlJZChpZDogc3RyaW5nLCBpdGVtczogSUNvcmVTeWdtdFtdID0gdGhpcy5nZW5lcmFsTWFzdGVyVHlwZUxpc3RTdWJqZWN0LnZhbHVlKTogSUNvcmVTeWdtdCB8IG51bGwge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgaWYgKGl0ZW0uX2lkID09PSBpZCkge1xuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHBhcmVudCBnZW5lcmFsIG1hc3RlciB0eXBlcyBmb3IgZHJvcGRvd24gc2VsZWN0aW9uXG4gICAqL1xuICBnZXRQYXJlbnRUeXBlcyhleGNsdWRlSWQ/OiBzdHJpbmcpOiBJQ29yZVN5Z210W10ge1xuICAgIGNvbnN0IGFsbEl0ZW1zOiBJQ29yZVN5Z210W10gPSBbXTtcblxuICAgIGNvbnN0IGZsYXR0ZW5JdGVtcyA9IChpdGVtczogSUNvcmVTeWdtdFtdLCBsZXZlbDogbnVtYmVyID0gMCkgPT4ge1xuICAgICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaWYgKGl0ZW0uX2lkICE9PSBleGNsdWRlSWQpIHtcbiAgICAgICAgICBhbGxJdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICBzeWdtdF90aXRsZTogJyAgJy5yZXBlYXQobGV2ZWwpICsgaXRlbS5zeWdtdF90aXRsZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZmxhdHRlbkl0ZW1zKHRoaXMuZ2VuZXJhbE1hc3RlclR5cGVMaXN0U3ViamVjdC52YWx1ZSk7XG4gICAgcmV0dXJuIGFsbEl0ZW1zO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggZ2VuZXJhbCBtYXN0ZXIgdHlwZSBsaXN0IGZyb20gc2VydmVyXG4gICAqL1xuICBwcml2YXRlIHJlZnJlc2hUeXBlTGlzdCgpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0Qm9keTogTUdlbmVyYWxNYXN0ZXJUeXBlID0ge307XG4gICAgdGhpcy5nZXRUeXBlTGlzdChkZWZhdWx0Qm9keSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ0dlbmVyYWwgbWFzdGVyIHR5cGUgbGlzdCByZWZyZXNoZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciByZWZyZXNoaW5nIGdlbmVyYWwgbWFzdGVyIHR5cGUgbGlzdDonLCBlcnJvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGVycm9yc1xuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogdW5rbm93bik6IE9ic2VydmFibGU8bmV2ZXI+IHtcbiAgICBsZXQgZXJyb3JNZXNzYWdlID0gJ0FuIGVycm9yIG9jY3VycmVkJztcblxuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3I7XG4gICAgfVxuXG4gICAgY29uc29sZS5lcnJvcignR2VuZXJhbCBNYXN0ZXIgVHlwZSBTZXJ2aWNlIEVycm9yOicsIGVycm9yTWVzc2FnZSk7XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGVycm9yTWVzc2FnZSkpO1xuICB9XG59ICJdfQ==
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import { Injectable, inject } from '@angular/core';
|
|
2
|
-
import { HttpClient } from '@angular/common/http';
|
|
3
|
-
import { throwError, BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { catchError, tap } from 'rxjs/operators';
|
|
5
|
-
import { cidePath, coreRoutesUrl, generateStringFromObject, hostManagerRoutesUrl, } from 'cloud-ide-lms-model';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class GeneralMasterService {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.http = inject(HttpClient);
|
|
10
|
-
this.generalMasterListSubject = new BehaviorSubject([]);
|
|
11
|
-
this.generalMasterList$ = this.generalMasterListSubject.asObservable();
|
|
12
|
-
console.log('GeneralMasterService initialized - using real API');
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Get general master list from API
|
|
16
|
-
*/
|
|
17
|
-
getMasterList(payload) {
|
|
18
|
-
const query = generateStringFromObject(payload);
|
|
19
|
-
return this.http?.get(cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, coreRoutesUrl?.module, coreRoutesUrl?.generalMaster, query]))
|
|
20
|
-
.pipe(tap((response) => {
|
|
21
|
-
if (response?.success) {
|
|
22
|
-
this.generalMasterListSubject.next(response?.data || []);
|
|
23
|
-
}
|
|
24
|
-
}), catchError(error => {
|
|
25
|
-
console.error('GeneralMasterService API error:', error);
|
|
26
|
-
return this.handleError(error);
|
|
27
|
-
}));
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Get general master list from cache (if available)
|
|
31
|
-
*/
|
|
32
|
-
getMasterListFromCache() {
|
|
33
|
-
return this.generalMasterListSubject.value;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Save general master (create or update)
|
|
37
|
-
* POST ${coreRoutesUrl?.generalMaster} - payload: ICoreSygms, response: generalMasterInsertUpdateControllerResponse
|
|
38
|
-
*/
|
|
39
|
-
saveMaster(master) {
|
|
40
|
-
const isUpdate = !!master._id;
|
|
41
|
-
console.log(`${isUpdate ? 'Updating' : 'Creating'} general master:`, master);
|
|
42
|
-
// Create proper payload
|
|
43
|
-
const payload = {
|
|
44
|
-
...(master._id && { _id: master._id }), // Only include _id if it exists
|
|
45
|
-
sygms_code: master.sygms_code,
|
|
46
|
-
sygms_id_sygmt: master.sygms_id_sygmt,
|
|
47
|
-
sygms_title: master.sygms_title,
|
|
48
|
-
sygms_desc: master.sygms_desc,
|
|
49
|
-
sygms_isactive: master.sygms_isactive,
|
|
50
|
-
sygms_id_sygms: master.sygms_id_sygms,
|
|
51
|
-
sygms_configuration: master.sygms_configuration,
|
|
52
|
-
sygms_entity_id_syen: master.sygms_entity_id_syen
|
|
53
|
-
};
|
|
54
|
-
const url = cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, coreRoutesUrl?.module, coreRoutesUrl?.generalMaster]);
|
|
55
|
-
return this.http.post(url, payload)
|
|
56
|
-
.pipe(tap((response) => {
|
|
57
|
-
if (response.success) {
|
|
58
|
-
this.refreshMasterList();
|
|
59
|
-
}
|
|
60
|
-
}), catchError(this.handleError));
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Create new general master (backward compatibility)
|
|
64
|
-
*/
|
|
65
|
-
createMaster(master) {
|
|
66
|
-
return this.saveMaster(master);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Update existing general master (backward compatibility)
|
|
70
|
-
*/
|
|
71
|
-
updateMaster(id, master) {
|
|
72
|
-
return this.saveMaster({ ...master, _id: id });
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Get general master by ID
|
|
76
|
-
* GET ${coreRoutesUrl?.generalMaster}/byId/:query - payload: { sygms_id: string }, response: generalMasterByIdControllerResponse
|
|
77
|
-
*/
|
|
78
|
-
getMasterById(id) {
|
|
79
|
-
console.log('Getting general master by ID:', id);
|
|
80
|
-
const payload = { sygms_id: id };
|
|
81
|
-
const query = generateStringFromObject(payload);
|
|
82
|
-
const url = cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, coreRoutesUrl?.module, coreRoutesUrl?.generalMaster, 'byId', query]);
|
|
83
|
-
return this.http.get(url)
|
|
84
|
-
.pipe(catchError(this.handleError));
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Delete general master
|
|
88
|
-
* DELETE ${coreRoutesUrl?.generalMaster}/:query - payload: { sygms_id: string }, response: generalMasterDeleteControllerResponse
|
|
89
|
-
*/
|
|
90
|
-
deleteMaster(id) {
|
|
91
|
-
const payload = { sygms_id: id };
|
|
92
|
-
const query = generateStringFromObject(payload);
|
|
93
|
-
const url = cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, coreRoutesUrl?.module, coreRoutesUrl?.generalMaster, query]);
|
|
94
|
-
return this.http.delete(url)
|
|
95
|
-
.pipe(tap((response) => {
|
|
96
|
-
if (response.success) {
|
|
97
|
-
this.refreshMasterList();
|
|
98
|
-
}
|
|
99
|
-
}), catchError(this.handleError));
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Toggle general master active status
|
|
103
|
-
*/
|
|
104
|
-
toggleMasterStatus(id) {
|
|
105
|
-
console.log('Toggling general master status:', id);
|
|
106
|
-
const payload = { id };
|
|
107
|
-
const query = generateStringFromObject(payload);
|
|
108
|
-
const url = cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, coreRoutesUrl?.module, coreRoutesUrl?.generalMaster, query]);
|
|
109
|
-
return this.http.put(url, {})
|
|
110
|
-
.pipe(tap((response) => {
|
|
111
|
-
if (response.success) {
|
|
112
|
-
this.refreshMasterList();
|
|
113
|
-
}
|
|
114
|
-
}), catchError(this.handleError));
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Check if master code exists
|
|
118
|
-
*/
|
|
119
|
-
checkMasterCodeExists(code, typeId, excludeId) {
|
|
120
|
-
const payload = { code, typeId };
|
|
121
|
-
if (excludeId) {
|
|
122
|
-
payload['excludeId'] = excludeId;
|
|
123
|
-
}
|
|
124
|
-
const query = generateStringFromObject(payload);
|
|
125
|
-
const url = cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, coreRoutesUrl?.module, coreRoutesUrl?.generalMaster, 'checkCodeExists', query]);
|
|
126
|
-
return this.http.get(url)
|
|
127
|
-
.pipe(catchError(this.handleError));
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Refresh general master list from server
|
|
131
|
-
*/
|
|
132
|
-
refreshMasterList() {
|
|
133
|
-
const defaultPayload = {};
|
|
134
|
-
this.getMasterList(defaultPayload).subscribe({
|
|
135
|
-
next: () => {
|
|
136
|
-
console.log('General master list refreshed successfully');
|
|
137
|
-
},
|
|
138
|
-
error: (error) => {
|
|
139
|
-
console.error('Error refreshing general master list:', error);
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Handle errors
|
|
145
|
-
*/
|
|
146
|
-
handleError(error) {
|
|
147
|
-
let errorMessage = 'An error occurred';
|
|
148
|
-
if (error instanceof Error) {
|
|
149
|
-
errorMessage = error.message;
|
|
150
|
-
}
|
|
151
|
-
else if (typeof error === 'string') {
|
|
152
|
-
errorMessage = error;
|
|
153
|
-
}
|
|
154
|
-
console.error('General Master Service Error:', errorMessage);
|
|
155
|
-
return throwError(() => new Error(errorMessage));
|
|
156
|
-
}
|
|
157
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: GeneralMasterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
158
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: GeneralMasterService, providedIn: 'root' }); }
|
|
159
|
-
}
|
|
160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: GeneralMasterService, decorators: [{
|
|
161
|
-
type: Injectable,
|
|
162
|
-
args: [{
|
|
163
|
-
providedIn: 'root'
|
|
164
|
-
}]
|
|
165
|
-
}], ctorParameters: () => [] });
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC1tYXN0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nsb3VkLWlkZS1jb3JlL3NyYy9saWIvY29yZS9nZW5lcmFsLW1hc3Rlci1tYW5hZ2VtZW50L3NlcnZpY2VzL2dlbmVyYWwtbWFzdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBYyxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUNMLFFBQVEsRUFDUixhQUFhLEVBQ2Isd0JBQXdCLEVBQ3hCLG9CQUFvQixHQVFyQixNQUFNLHFCQUFxQixDQUFDOztBQUs3QixNQUFNLE9BQU8sb0JBQW9CO0lBSy9CO1FBSlEsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQiw2QkFBd0IsR0FBRyxJQUFJLGVBQWUsQ0FBZSxFQUFFLENBQUMsQ0FBQztRQUNsRSx1QkFBa0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFHdkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxPQUFrQztRQUM5QyxNQUFNLEtBQUssR0FBRyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFzQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFB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SSxDQUNILFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQzdCLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUI7UUFDdkIsTUFBTSxjQUFjLEdBQThCLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMzQyxJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNoRSxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssV0FBVyxDQUFDLEtBQWM7UUFDaEMsSUFBSSxZQUFZLEdBQUcsbUJBQW1CLENBQUM7UUFFdkMsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7WUFDM0IsWUFBWSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0IsQ0FBQzthQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDckMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUN2QixDQUFDO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUM3RCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7OEdBcExVLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFxuICBjaWRlUGF0aCxcbiAgY29yZVJvdXRlc1VybCxcbiAgZ2VuZXJhdGVTdHJpbmdGcm9tT2JqZWN0LFxuICBob3N0TWFuYWdlclJvdXRlc1VybCxcbiAgZ2VuZXJhbE1hc3Rlckxpc3RDb250cm9sbGVyUmVzcG9uc2UsXG4gIGdlbmVyYWxNYXN0ZXJCeUlkQ29udHJvbGxlclJlc3BvbnNlLFxuICBnZW5lcmFsTWFzdGVySW5zZXJ0VXBkYXRlQ29udHJvbGxlclJlc3BvbnNlLFxuICBnZW5lcmFsTWFzdGVyRGVsZXRlQ29udHJvbGxlclJlc3BvbnNlLFxuICBnZW5lcmFsTWFzdGVyVG9nZ2xlU3RhdHVzQ29udHJvbGxlclJlc3BvbnNlLFxuICBJQ29yZVN5Z21zLFxuICBJR2VuZXJhbE1hc3Rlckxpc3RSZXF1ZXN0LFxufSBmcm9tICdjbG91ZC1pZGUtbG1zLW1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJhbE1hc3RlclNlcnZpY2Uge1xuICBwcml2YXRlIGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByaXZhdGUgZ2VuZXJhbE1hc3Rlckxpc3RTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJQ29yZVN5Z21zW10+KFtdKTtcbiAgcHVibGljIGdlbmVyYWxNYXN0ZXJMaXN0JCA9IHRoaXMuZ2VuZXJhbE1hc3Rlckxpc3RTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnNvbGUubG9nKCdHZW5lcmFsTWFzdGVyU2VydmljZSBpbml0aWFsaXplZCAtIHVzaW5nIHJlYWwgQVBJJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGdlbmVyYWwgbWFzdGVyIGxpc3QgZnJvbSBBUElcbiAgICovXG4gIGdldE1hc3Rlckxpc3QocGF5bG9hZDogSUdlbmVyYWxNYXN0ZXJMaXN0UmVxdWVzdCk6IE9ic2VydmFibGU8Z2VuZXJhbE1hc3Rlckxpc3RDb250cm9sbGVyUmVzcG9uc2U+IHtcbiAgICBjb25zdCBxdWVyeSA9IGdlbmVyYXRlU3RyaW5nRnJvbU9iamVjdChwYXlsb2FkKTtcbiAgICByZXR1cm4gdGhpcy5odHRwPy5nZXQ8Z2VuZXJhbE1hc3Rlckxpc3RDb250cm9sbGVyUmVzcG9uc2U+KGNpZGVQYXRoPy5qb2luKFtob3N0TWFuYWdlclJvdXRlc1VybD8uY2lkZVN1aXRlSG9zdCwgY29yZVJvdXRlc1VybD8ubW9kdWxlLCBjb3JlUm91dGVzVXJsPy5nZW5lcmFsTWFzdGVyLCBxdWVyeV0pKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgocmVzcG9uc2U6IGdlbmVyYWxNYXN0ZXJMaXN0Q29udHJvbGxlclJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlPy5zdWNjZXNzKSB7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYWxNYXN0ZXJMaXN0U3ViamVjdC5uZXh0KHJlc3BvbnNlPy5kYXRhIHx8IFtdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdHZW5lcmFsTWFzdGVyU2VydmljZSBBUEkgZXJyb3I6JywgZXJyb3IpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGdlbmVyYWwgbWFzdGVyIGxpc3QgZnJvbSBjYWNoZSAoaWYgYXZhaWxhYmxlKVxuICAgKi9cbiAgZ2V0TWFzdGVyTGlzdEZyb21DYWNoZSgpOiBJQ29yZVN5Z21zW10ge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYWxNYXN0ZXJMaXN0U3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIGdlbmVyYWwgbWFzdGVyIChjcmVhdGUgb3IgdXBkYXRlKVxuICAgKiBQT1NUICR7Y29yZVJvdXRlc1VybD8uZ2VuZXJhbE1hc3Rlcn0gLSBwYXlsb2FkOiBJQ29yZVN5Z21zLCByZXNwb25zZTogZ2VuZXJhbE1hc3Rlckluc2VydFVwZGF0ZUNvbnRyb2xsZXJSZXNwb25zZVxuICAgKi9cbiAgc2F2ZU1hc3RlcihtYXN0ZXI6IElDb3JlU3lnbXMpOiBPYnNlcnZhYmxlPGdlbmVyYWxNYXN0ZXJJbnNlcnRVcGRhdGVDb250cm9sbGVyUmVzcG9uc2U+IHtcbiAgICBjb25zdCBpc1VwZGF0ZSA9ICEhbWFzdGVyLl9pZDtcbiAgICBjb25zb2xlLmxvZyhgJHtpc1VwZGF0ZSA/ICdVcGRhdGluZycgOiAnQ3JlYXRpbmcnfSBnZW5lcmFsIG1hc3RlcjpgLCBtYXN0ZXIpO1xuICAgIFxuICAgIC8vIENyZWF0ZSBwcm9wZXIgcGF5bG9hZFxuICAgIGNvbnN0IHBheWxvYWQ6IElDb3JlU3lnbXMgPSB7XG4gICAgICAuLi4obWFzdGVyLl9pZCAmJiB7IF9pZDogbWFzdGVyLl9pZCB9KSwgLy8gT25seSBpbmNsdWRlIF9pZCBpZiBpdCBleGlzdHNcbiAgICAgIHN5Z21zX2NvZGU6IG1hc3Rlci5zeWdtc19jb2RlLFxuICAgICAgc3lnbXNfaWRfc3lnbXQ6IG1hc3Rlci5zeWdtc19pZF9zeWdtdCxcbiAgICAgIHN5Z21zX3RpdGxlOiBtYXN0ZXIuc3lnbXNfdGl0bGUsXG4gICAgICBzeWdtc19kZXNjOiBtYXN0ZXIuc3lnbXNfZGVzYyxcbiAgICAgIHN5Z21zX2lzYWN0aXZlOiBtYXN0ZXIuc3lnbXNfaXNhY3RpdmUsXG4gICAgICBzeWdtc19pZF9zeWdtczogbWFzdGVyLnN5Z21zX2lkX3N5Z21zLFxuICAgICAgc3lnbXNfY29uZmlndXJhdGlvbjogbWFzdGVyLnN5Z21zX2NvbmZpZ3VyYXRpb24sXG4gICAgICBzeWdtc19lbnRpdHlfaWRfc3llbjogbWFzdGVyLnN5Z21zX2VudGl0eV9pZF9zeWVuXG4gICAgfTtcbiAgICBcbiAgICBjb25zdCB1cmwgPSBjaWRlUGF0aD8uam9pbihbaG9zdE1hbmFnZXJSb3V0ZXNVcmw/LmNpZGVTdWl0ZUhvc3QsIGNvcmVSb3V0ZXNVcmw/Lm1vZHVsZSwgY29yZVJvdXRlc1VybD8uZ2VuZXJhbE1hc3Rlcl0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxnZW5lcmFsTWFzdGVySW5zZXJ0VXBkYXRlQ29udHJvbGxlclJlc3BvbnNlPih1cmwsIHBheWxvYWQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChyZXNwb25zZTogZ2VuZXJhbE1hc3Rlckluc2VydFVwZGF0ZUNvbnRyb2xsZXJSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hNYXN0ZXJMaXN0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgbmV3IGdlbmVyYWwgbWFzdGVyIChiYWNrd2FyZCBjb21wYXRpYmlsaXR5KVxuICAgKi9cbiAgY3JlYXRlTWFzdGVyKG1hc3RlcjogSUNvcmVTeWdtcyk6IE9ic2VydmFibGU8Z2VuZXJhbE1hc3Rlckluc2VydFVwZGF0ZUNvbnRyb2xsZXJSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLnNhdmVNYXN0ZXIobWFzdGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgZXhpc3RpbmcgZ2VuZXJhbCBtYXN0ZXIgKGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpXG4gICAqL1xuICB1cGRhdGVNYXN0ZXIoaWQ6IHN0cmluZywgbWFzdGVyOiBJQ29yZVN5Z21zKTogT2JzZXJ2YWJsZTxnZW5lcmFsTWFzdGVySW5zZXJ0VXBkYXRlQ29udHJvbGxlclJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuc2F2ZU1hc3Rlcih7IC4uLm1hc3RlciwgX2lkOiBpZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZ2VuZXJhbCBtYXN0ZXIgYnkgSURcbiAgICogR0VUICR7Y29yZVJvdXRlc1VybD8uZ2VuZXJhbE1hc3Rlcn0vYnlJZC86cXVlcnkgLSBwYXlsb2FkOiB7IHN5Z21zX2lkOiBzdHJpbmcgfSwgcmVzcG9uc2U6IGdlbmVyYWxNYXN0ZXJCeUlkQ29udHJvbGxlclJlc3BvbnNlXG4gICAqL1xuICBnZXRNYXN0ZXJCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGdlbmVyYWxNYXN0ZXJCeUlkQ29udHJvbGxlclJlc3BvbnNlPiB7XG4gICAgY29uc29sZS5sb2coJ0dldHRpbmcgZ2VuZXJhbCBtYXN0ZXIgYnkgSUQ6JywgaWQpO1xuICAgIGNvbnN0IHBheWxvYWQgPSB7IHN5Z21zX2lkOiBpZCB9O1xuICAgIGNvbnN0IHF1ZXJ5ID0gZ2VuZXJhdGVTdHJpbmdGcm9tT2JqZWN0KHBheWxvYWQpO1xuICAgIGNvbnN0IHVybCA9IGNpZGVQYXRoPy5qb2luKFtob3N0TWFuYWdlclJvdXRlc1VybD8uY2lkZVN1aXRlSG9zdCwgY29yZVJvdXRlc1VybD8ubW9kdWxlLCBjb3JlUm91dGVzVXJsPy5nZW5lcmFsTWFzdGVyLCAnYnlJZCcsIHF1ZXJ5XSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Z2VuZXJhbE1hc3RlckJ5SWRDb250cm9sbGVyUmVzcG9uc2U+KHVybClcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBnZW5lcmFsIG1hc3RlclxuICAgKiBERUxFVEUgJHtjb3JlUm91dGVzVXJsPy5nZW5lcmFsTWFzdGVyfS86cXVlcnkgLSBwYXlsb2FkOiB7IHN5Z21zX2lkOiBzdHJpbmcgfSwgcmVzcG9uc2U6IGdlbmVyYWxNYXN0ZXJEZWxldGVDb250cm9sbGVyUmVzcG9uc2VcbiAgICovXG4gIGRlbGV0ZU1hc3RlcihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxnZW5lcmFsTWFzdGVyRGVsZXRlQ29udHJvbGxlclJlc3BvbnNlPiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IHsgc3lnbXNfaWQ6IGlkIH07XG4gICAgY29uc3QgcXVlcnkgPSBnZW5lcmF0ZVN0cmluZ0Zyb21PYmplY3QocGF5bG9hZCk7XG4gICAgY29uc3QgdXJsID0gY2lkZVBhdGg/LmpvaW4oW2hvc3RNYW5hZ2VyUm91dGVzVXJsPy5jaWRlU3VpdGVIb3N0LCBjb3JlUm91dGVzVXJsPy5tb2R1bGUsIGNvcmVSb3V0ZXNVcmw/LmdlbmVyYWxNYXN0ZXIsIHF1ZXJ5XSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8Z2VuZXJhbE1hc3RlckRlbGV0ZUNvbnRyb2xsZXJSZXNwb25zZT4odXJsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgocmVzcG9uc2U6IGdlbmVyYWxNYXN0ZXJEZWxldGVDb250cm9sbGVyUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoTWFzdGVyTGlzdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIGdlbmVyYWwgbWFzdGVyIGFjdGl2ZSBzdGF0dXNcbiAgICovXG4gIHRvZ2dsZU1hc3RlclN0YXR1cyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxnZW5lcmFsTWFzdGVyVG9nZ2xlU3RhdHVzQ29udHJvbGxlclJlc3BvbnNlPiB7XG4gICAgY29uc29sZS5sb2coJ1RvZ2dsaW5nIGdlbmVyYWwgbWFzdGVyIHN0YXR1czonLCBpZCk7XG4gICAgY29uc3QgcGF5bG9hZCA9IHsgaWQgfTtcbiAgICBjb25zdCBxdWVyeSA9IGdlbmVyYXRlU3RyaW5nRnJvbU9iamVjdChwYXlsb2FkKTtcbiAgICBjb25zdCB1cmwgPSBjaWRlUGF0aD8uam9pbihbaG9zdE1hbmFnZXJSb3V0ZXNVcmw/LmNpZGVTdWl0ZUhvc3QsIGNvcmVSb3V0ZXNVcmw/Lm1vZHVsZSwgY29yZVJvdXRlc1VybD8uZ2VuZXJhbE1hc3RlciwgcXVlcnldKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxnZW5lcmFsTWFzdGVyVG9nZ2xlU3RhdHVzQ29udHJvbGxlclJlc3BvbnNlPih1cmwsIHt9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgocmVzcG9uc2U6IGdlbmVyYWxNYXN0ZXJUb2dnbGVTdGF0dXNDb250cm9sbGVyUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoTWFzdGVyTGlzdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgbWFzdGVyIGNvZGUgZXhpc3RzXG4gICAqL1xuICBjaGVja01hc3RlckNvZGVFeGlzdHMoY29kZTogc3RyaW5nLCB0eXBlSWQ6IHN0cmluZywgZXhjbHVkZUlkPzogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IHN1Y2Nlc3M6IGJvb2xlYW47IG1lc3NhZ2U6IHN0cmluZzsgZXhpc3RzOiBib29sZWFuIH0+IHtcbiAgICBjb25zdCBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0geyBjb2RlLCB0eXBlSWQgfTtcbiAgICBpZiAoZXhjbHVkZUlkKSB7XG4gICAgICBwYXlsb2FkWydleGNsdWRlSWQnXSA9IGV4Y2x1ZGVJZDtcbiAgICB9XG4gICAgY29uc3QgcXVlcnkgPSBnZW5lcmF0ZVN0cmluZ0Zyb21PYmplY3QocGF5bG9hZCk7XG4gICAgY29uc3QgdXJsID0gY2lkZVBhdGg/LmpvaW4oW2hvc3RNYW5hZ2VyUm91dGVzVXJsPy5jaWRlU3VpdGVIb3N0LCBjb3JlUm91dGVzVXJsPy5tb2R1bGUsIGNvcmVSb3V0ZXNVcmw/LmdlbmVyYWxNYXN0ZXIsICdjaGVja0NvZGVFeGlzdHMnLCBxdWVyeV0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHsgc3VjY2VzczogYm9vbGVhbjsgbWVzc2FnZTogc3RyaW5nOyBleGlzdHM6IGJvb2xlYW4gfT4odXJsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaCBnZW5lcmFsIG1hc3RlciBsaXN0IGZyb20gc2VydmVyXG4gICAqL1xuICBwcml2YXRlIHJlZnJlc2hNYXN0ZXJMaXN0KCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRQYXlsb2FkOiBJR2VuZXJhbE1hc3Rlckxpc3RSZXF1ZXN0ID0ge307XG4gICAgdGhpcy5nZXRNYXN0ZXJMaXN0KGRlZmF1bHRQYXlsb2FkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnR2VuZXJhbCBtYXN0ZXIgbGlzdCByZWZyZXNoZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciByZWZyZXNoaW5nIGdlbmVyYWwgbWFzdGVyIGxpc3Q6JywgZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBlcnJvcnNcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IHVua25vd24pOiBPYnNlcnZhYmxlPG5ldmVyPiB7XG4gICAgbGV0IGVycm9yTWVzc2FnZSA9ICdBbiBlcnJvciBvY2N1cnJlZCc7XG5cbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9IGVycm9yO1xuICAgIH1cblxuICAgIGNvbnNvbGUuZXJyb3IoJ0dlbmVyYWwgTWFzdGVyIFNlcnZpY2UgRXJyb3I6JywgZXJyb3JNZXNzYWdlKTtcbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKSk7XG4gIH1cbn0gIl19
|