bpm-core 0.0.17 → 0.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/app/app.component.mjs +25 -13
- package/esm2022/lib/components/app-component-sections/form-section/form-section.component.mjs +6 -6
- package/esm2022/lib/components/app-component-sections/layout/header/header.component.mjs +3 -3
- package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +9 -6
- package/esm2022/lib/components/app-component-sections/workflow-section/workflow-section.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/form-field/date-picker/date-picker.component.mjs +1 -1
- package/esm2022/lib/interfaces/form.interface.mjs +1 -1
- package/esm2022/lib/services/core.service.ts.mjs +318 -168
- package/esm2022/lib/testComponent/config/segment-dynamic-loader.config.mjs +8 -0
- package/esm2022/lib/testComponent/general-approver-section/general-approver-section.component.mjs +52 -0
- package/esm2022/lib/testComponent/request-details-section/request-details-section.component.mjs +50 -0
- package/esm2022/lib/testComponent/services/i18n.service.mjs +39 -0
- package/esm2022/lib/testComponent/services/segment-dynamic-loader.service.mjs +54 -0
- package/esm2022/lib/testComponent/services/state-machine.service.mjs +148 -0
- package/fesm2022/bpm-core.mjs +4758 -4270
- package/fesm2022/bpm-core.mjs.map +1 -1
- package/lib/app/app.component.d.ts +4 -2
- package/lib/components/app-component-sections/form-section/form-section.component.d.ts +1 -1
- package/lib/components/app-component-sections/layout/header/header.component.d.ts +1 -1
- package/lib/components/app-component-sections/service-header/service-header.component.d.ts +5 -5
- package/lib/interfaces/form.interface.d.ts +2 -2
- package/lib/services/core.service.ts.d.ts +2 -0
- package/lib/testComponent/config/segment-dynamic-loader.config.d.ts +8 -0
- package/lib/testComponent/general-approver-section/general-approver-section.component.d.ts +21 -0
- package/lib/testComponent/request-details-section/request-details-section.component.d.ts +20 -0
- package/lib/testComponent/services/i18n.service.d.ts +11 -0
- package/lib/testComponent/services/segment-dynamic-loader.service.d.ts +17 -0
- package/lib/testComponent/services/state-machine.service.d.ts +29 -0
- package/package.json +1 -1
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Messages } from "../../interfaces";
|
|
3
|
+
import * as constants from "../../constants";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
import * as i2 from "../../services";
|
|
7
|
+
export class StateMachineService {
|
|
8
|
+
http;
|
|
9
|
+
coreStateMachineService;
|
|
10
|
+
currentSubmitter;
|
|
11
|
+
feedbackForm = false;
|
|
12
|
+
formName;
|
|
13
|
+
serviceName;
|
|
14
|
+
refreshToken;
|
|
15
|
+
pendingForm = false;
|
|
16
|
+
responderForm = false;
|
|
17
|
+
feedBackSent = false;
|
|
18
|
+
feedbackReponse = {
|
|
19
|
+
requestFrom: null,
|
|
20
|
+
requestTo: null,
|
|
21
|
+
requestFeedback: null,
|
|
22
|
+
responseFeedback: null
|
|
23
|
+
};
|
|
24
|
+
transitions;
|
|
25
|
+
state;
|
|
26
|
+
authToken;
|
|
27
|
+
formId;
|
|
28
|
+
isReadOnly;
|
|
29
|
+
inboxUrl;
|
|
30
|
+
isMobile;
|
|
31
|
+
requesterEmail;
|
|
32
|
+
authorizedEmail;
|
|
33
|
+
constructor(http, coreStateMachineService) {
|
|
34
|
+
this.http = http;
|
|
35
|
+
this.coreStateMachineService = coreStateMachineService;
|
|
36
|
+
this.isMobile = window.wmConfig.isMobile;
|
|
37
|
+
this.state = constants.STATE_MACHINE_STATUS_IDLE;
|
|
38
|
+
this.currentSubmitter = null;
|
|
39
|
+
this.authToken = '';
|
|
40
|
+
this.refreshToken = '';
|
|
41
|
+
this.formId = window.wmConfig.formId;
|
|
42
|
+
this.formName = window.wmConfig.formPrefix;
|
|
43
|
+
if (this.formName.includes('-new')) {
|
|
44
|
+
const myArray = this.formName.split("-");
|
|
45
|
+
this.formName = myArray['0'];
|
|
46
|
+
}
|
|
47
|
+
this.inboxUrl = window.wmConfig.inboxUri;
|
|
48
|
+
console.log('inboxUrl', this.inboxUrl);
|
|
49
|
+
console.log('inboxUrl', location.host + this.inboxUrl);
|
|
50
|
+
/* istanbul ignore next */
|
|
51
|
+
this.transitions = {
|
|
52
|
+
idle: {
|
|
53
|
+
mockApi: function (filterData, ...args) {
|
|
54
|
+
let body = {
|
|
55
|
+
method: constants.HTTP_METHOD_GET, //GET - PUT - POST
|
|
56
|
+
destination: constants.TARGET_SERVER_WM,
|
|
57
|
+
serviceName: 'serviceName', //,
|
|
58
|
+
formName: this.formName,
|
|
59
|
+
queryParameters: {}
|
|
60
|
+
};
|
|
61
|
+
let options = this.getRequestOptions();
|
|
62
|
+
let succ = 'serviceResponce';
|
|
63
|
+
return this.callPost(body, succ, options);
|
|
64
|
+
},
|
|
65
|
+
getFileTemplate: function (...args) {
|
|
66
|
+
let [formID] = args;
|
|
67
|
+
this.state = constants.STATE_MACHINE_STATUS_FETCHING;
|
|
68
|
+
let body = {
|
|
69
|
+
method: constants.HTTP_METHOD_GET,
|
|
70
|
+
destination: constants.TARGET_SERVER_WM,
|
|
71
|
+
serviceName: "getFileTemplate",
|
|
72
|
+
formName: "WPO",
|
|
73
|
+
queryParameters: {
|
|
74
|
+
formID: formID,
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
let options = this.getRequestOptions();
|
|
78
|
+
let succ = constants.STATE_MACHINE_ACTION_SUCCESS_RESPONSE;
|
|
79
|
+
return this.callPost(body, succ, options);
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
fetching: {
|
|
83
|
+
serviceResponce: function (...args) {
|
|
84
|
+
let [payload] = args;
|
|
85
|
+
let result = payload;
|
|
86
|
+
this.state = constants.STATE_MACHINE_STATUS_IDLE;
|
|
87
|
+
return result;
|
|
88
|
+
},
|
|
89
|
+
failure: function (...args) {
|
|
90
|
+
let [errors] = args;
|
|
91
|
+
this.state = constants.STATE_MACHINE_STATUS_ERROR;
|
|
92
|
+
return this.dispatch(constants.STATE_MACHINE_ACTION_HANDLE_ERROR, errors);
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
error: {
|
|
96
|
+
handleError: function (...args) {
|
|
97
|
+
let [errors] = args;
|
|
98
|
+
let result = new Messages({}, [], [], []);
|
|
99
|
+
if (errors?.meta?.messages) {
|
|
100
|
+
errors.meta.messages.forEach((message) => {
|
|
101
|
+
result[message.type].push(message.message);
|
|
102
|
+
if (message.payloadReference) {
|
|
103
|
+
let payloadReferenceTokens = message.payloadReference.split('/');
|
|
104
|
+
payloadReferenceTokens.slice(1, payloadReferenceTokens.length - 1);
|
|
105
|
+
let element = result.errorFields;
|
|
106
|
+
payloadReferenceTokens.forEach((token) => {
|
|
107
|
+
element[token] = {};
|
|
108
|
+
element = element[token];
|
|
109
|
+
});
|
|
110
|
+
element = true;
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
else if (errors?.errors) {
|
|
115
|
+
errors.errors.forEach((message) => {
|
|
116
|
+
result['error'].push(message.message);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
this.state = constants.STATE_MACHINE_STATUS_IDLE;
|
|
120
|
+
return result;
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
sending: {
|
|
124
|
+
failure: function (...args) {
|
|
125
|
+
let [errors] = args;
|
|
126
|
+
this.state = constants.STATE_MACHINE_STATUS_ERROR;
|
|
127
|
+
return this.dispatch(constants.STATE_MACHINE_ACTION_HANDLE_ERROR, errors);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
dispatch(actionName, ...args) {
|
|
133
|
+
const actions = this.transitions[this.state];
|
|
134
|
+
const action = actions[actionName];
|
|
135
|
+
if (action) {
|
|
136
|
+
return action.apply(this, args);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StateMachineService, deps: [{ token: i1.HttpClient }, { token: i2.CoreService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
140
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StateMachineService, providedIn: 'any' });
|
|
141
|
+
}
|
|
142
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StateMachineService, decorators: [{
|
|
143
|
+
type: Injectable,
|
|
144
|
+
args: [{
|
|
145
|
+
providedIn: 'any',
|
|
146
|
+
}]
|
|
147
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.CoreService }] });
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtbWFjaGluZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi90ZXN0Q29tcG9uZW50L3NlcnZpY2VzL3N0YXRlLW1hY2hpbmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEtBQUssU0FBUyxNQUFNLGlCQUFpQixDQUFDOzs7O0FBSzdDLE1BQU0sT0FBTyxtQkFBbUI7SUF3QlY7SUFBMEI7SUF2QnRDLGdCQUFnQixDQUFNO0lBQzlCLFlBQVksR0FBWSxLQUFLLENBQUM7SUFDdEIsUUFBUSxDQUFTO0lBQ2pCLFdBQVcsQ0FBVTtJQUNyQixZQUFZLENBQVM7SUFDN0IsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixhQUFhLEdBQVksS0FBSyxDQUFDO0lBQy9CLFlBQVksR0FBWSxLQUFLLENBQUM7SUFDOUIsZUFBZSxHQUFRO1FBQ3JCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFNBQVMsRUFBRSxJQUFJO1FBQ2YsZUFBZSxFQUFFLElBQUk7UUFDckIsZ0JBQWdCLEVBQUUsSUFBSTtLQUN2QixDQUFDO0lBQ00sV0FBVyxDQUFpRDtJQUM1RCxLQUFLLENBQVM7SUFDZCxTQUFTLENBQVM7SUFDbEIsTUFBTSxDQUFTO0lBQ2hCLFVBQVUsQ0FBUztJQUNuQixRQUFRLENBQVM7SUFDaEIsUUFBUSxDQUFVO0lBQ2xCLGNBQWMsQ0FBVTtJQUN4QixlQUFlLENBQVU7SUFDakMsWUFBb0IsSUFBZ0IsRUFBVSx1QkFBb0M7UUFBOUQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBYTtRQUNoRixJQUFJLENBQUMsUUFBUSxHQUFJLE1BQWMsQ0FBQyxR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O0lBQ0gsQ0FBQzt1R0E5SVUsbUJBQW1COzJHQUFuQixtQkFBbUIsY0FGaEIsS0FBSzs7MkZBRVIsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxLQUFLO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7Q29yZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgeyBNZXNzYWdlc30gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdhbnknLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RhdGVNYWNoaW5lU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjdXJyZW50U3VibWl0dGVyOiBhbnk7XHJcbiAgZmVlZGJhY2tGb3JtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBmb3JtTmFtZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgc2VydmljZU5hbWUhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSByZWZyZXNoVG9rZW46IHN0cmluZztcclxuICBwZW5kaW5nRm9ybTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHJlc3BvbmRlckZvcm06IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmZWVkQmFja1NlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmZWVkYmFja1JlcG9uc2U6IGFueSA9IHtcclxuICAgIHJlcXVlc3RGcm9tOiBudWxsLFxyXG4gICAgcmVxdWVzdFRvOiBudWxsLFxyXG4gICAgcmVxdWVzdEZlZWRiYWNrOiBudWxsLFxyXG4gICAgcmVzcG9uc2VGZWVkYmFjazogbnVsbFxyXG4gIH07XHJcbiAgcHJpdmF0ZSB0cmFuc2l0aW9uczogeyBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IEZ1bmN0aW9uIH0gfTtcclxuICBwcml2YXRlIHN0YXRlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBhdXRoVG9rZW46IHN0cmluZztcclxuICBwcml2YXRlIGZvcm1JZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc1JlYWRPbmx5OiBzdHJpbmc7XHJcbiAgcHVibGljIGluYm94VXJsOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBpc01vYmlsZTogYm9vbGVhbjtcclxuICBwcml2YXRlIHJlcXVlc3RlckVtYWlsITogc3RyaW5nO1xyXG4gIHByaXZhdGUgYXV0aG9yaXplZEVtYWlsITogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBjb3JlU3RhdGVNYWNoaW5lU2VydmljZTogQ29yZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuaXNNb2JpbGUgPSAod2luZG93IGFzIGFueSkud21Db25maWcuaXNNb2JpbGU7XHJcbiAgICB0aGlzLnN0YXRlID0gY29uc3RhbnRzLlNUQVRFX01BQ0hJTkVfU1RBVFVTX0lETEU7XHJcbiAgICB0aGlzLmN1cnJlbnRTdWJtaXR0ZXIgPSBudWxsO1xyXG4gICAgdGhpcy5hdXRoVG9rZW4gPSAnJztcclxuICAgIHRoaXMucmVmcmVzaFRva2VuID0gJyc7XHJcbiAgICB0aGlzLmZvcm1JZCA9ICh3aW5kb3cgYXMgYW55KS53bUNvbmZpZy5mb3JtSWQ7XHJcbiAgICB0aGlzLmZvcm1OYW1lID0od2luZG93IGFzIGFueSkud21Db25maWcuZm9ybVByZWZpeDtcclxuICAgIGlmKHRoaXMuZm9ybU5hbWUuaW5jbHVkZXMoJy1uZXcnKSl7XHJcbiAgICAgIGNvbnN0IG15QXJyYXkgPSB0aGlzLmZvcm1OYW1lLnNwbGl0KFwiLVwiKTtcclxuICAgICAgdGhpcy5mb3JtTmFtZSA9IG15QXJyYXlbJzAnXVxyXG4gICAgfVxyXG4gICAgdGhpcy5pbmJveFVybCA9ICh3aW5kb3cgYXMgYW55KS53bUNvbmZpZy5pbmJveFVyaTtcclxuICAgIGNvbnNvbGUubG9nKCdpbmJveFVybCcsIHRoaXMuaW5ib3hVcmwpO1xyXG4gICAgY29uc29sZS5sb2coJ2luYm94VXJsJywgbG9jYXRpb24uaG9zdCArIHRoaXMuaW5ib3hVcmwpO1xyXG5cclxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xyXG4gICAgdGhpcy50cmFuc2l0aW9ucyA9IHtcclxuICAgICAgaWRsZToge1xyXG4gICAgICAgIG1vY2tBcGk6IGZ1bmN0aW9uIChmaWx0ZXJEYXRhLCAuLi5hcmdzKSB7XHJcbiAgICAgICAgICBsZXQgYm9keSA9IHtcclxuICAgICAgICAgICAgbWV0aG9kOiBjb25zdGFudHMuSFRUUF9NRVRIT0RfR0VULCAvL0dFVCAtIFBVVCAtIFBPU1RcclxuICAgICAgICAgICAgZGVzdGluYXRpb246IGNvbnN0YW50cy5UQVJHRVRfU0VSVkVSX1dNLFxyXG4gICAgICAgICAgICBzZXJ2aWNlTmFtZTogJ3NlcnZpY2VOYW1lJywgLy8sXHJcbiAgICAgICAgICAgIGZvcm1OYW1lOiB0aGlzLmZvcm1OYW1lLFxyXG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnM6IHtcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGxldCBvcHRpb25zID0gdGhpcy5nZXRSZXF1ZXN0T3B0aW9ucygpO1xyXG4gICAgICAgICAgbGV0IHN1Y2MgPSAnc2VydmljZVJlc3BvbmNlJztcclxuICAgICAgICAgIHJldHVybiB0aGlzLmNhbGxQb3N0KGJvZHksIHN1Y2MsIG9wdGlvbnMpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIGdldEZpbGVUZW1wbGF0ZTogZnVuY3Rpb24oLi4uYXJncykge1xyXG4gICAgICAgICAgbGV0IFtmb3JtSURdID0gYXJncztcclxuICAgICAgICAgIHRoaXMuc3RhdGUgPSBjb25zdGFudHMuU1RBVEVfTUFDSElORV9TVEFUVVNfRkVUQ0hJTkc7XHJcbiAgICAgICAgICBsZXQgYm9keSA9IHtcclxuICAgICAgICAgICAgbWV0aG9kOiBjb25zdGFudHMuSFRUUF9NRVRIT0RfR0VULFxyXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogY29uc3RhbnRzLlRBUkdFVF9TRVJWRVJfV00sXHJcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lOiBcImdldEZpbGVUZW1wbGF0ZVwiLFxyXG4gICAgICAgICAgICBmb3JtTmFtZTogXCJXUE9cIixcclxuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzOiB7XHJcbiAgICAgICAgICAgICAgZm9ybUlEOiBmb3JtSUQsXHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgbGV0IG9wdGlvbnMgPSB0aGlzLmdldFJlcXVlc3RPcHRpb25zKCk7XHJcbiAgICAgICAgICBsZXQgc3VjYyA9IGNvbnN0YW50cy5TVEFURV9NQUNISU5FX0FDVElPTl9TVUNDRVNTX1JFU1BPTlNFO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbFBvc3QoYm9keSwgc3VjYywgb3B0aW9ucyk7XHJcbiAgICAgICAgfSxcclxuXHJcblxyXG5cclxuXHJcbiAgICAgIH0sXHJcbiAgICAgIGZldGNoaW5nOiB7XHJcbiAgICAgICAgc2VydmljZVJlc3BvbmNlOiBmdW5jdGlvbiAoLi4uYXJnczogYW55KSB7XHJcbiAgICAgICAgICBsZXQgW3BheWxvYWRdID0gYXJncztcclxuICAgICAgICAgIGxldCByZXN1bHQgPSBwYXlsb2FkO1xyXG4gICAgICAgICAgdGhpcy5zdGF0ZSA9IGNvbnN0YW50cy5TVEFURV9NQUNISU5FX1NUQVRVU19JRExFO1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGZhaWx1cmU6IGZ1bmN0aW9uICguLi5hcmdzKSB7XHJcbiAgICAgICAgICBsZXQgW2Vycm9yc10gPSBhcmdzO1xyXG4gICAgICAgICAgdGhpcy5zdGF0ZSA9IGNvbnN0YW50cy5TVEFURV9NQUNISU5FX1NUQVRVU19FUlJPUjtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKGNvbnN0YW50cy5TVEFURV9NQUNISU5FX0FDVElPTl9IQU5ETEVfRVJST1IsIGVycm9ycyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjoge1xyXG4gICAgICAgIGhhbmRsZUVycm9yOiBmdW5jdGlvbiAoLi4uYXJncykge1xyXG4gICAgICAgICAgbGV0IFtlcnJvcnNdID0gYXJncztcclxuICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgTWVzc2FnZXMoXHJcbiAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICBbXSxcclxuICAgICAgICAgICAgW10sXHJcbiAgICAgICAgICAgIFtdXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgaWYgKGVycm9ycz8ubWV0YT8ubWVzc2FnZXMpIHtcclxuICAgICAgICAgICAgZXJyb3JzLm1ldGEubWVzc2FnZXMuZm9yRWFjaCgobWVzc2FnZSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJlc3VsdFttZXNzYWdlLnR5cGVdLnB1c2gobWVzc2FnZS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICBpZiAobWVzc2FnZS5wYXlsb2FkUmVmZXJlbmNlKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcGF5bG9hZFJlZmVyZW5jZVRva2VucyA9IG1lc3NhZ2UucGF5bG9hZFJlZmVyZW5jZS5zcGxpdCgnLycpO1xyXG4gICAgICAgICAgICAgICAgcGF5bG9hZFJlZmVyZW5jZVRva2Vucy5zbGljZSgxLCBwYXlsb2FkUmVmZXJlbmNlVG9rZW5zLmxlbmd0aCAtIDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IGVsZW1lbnQgPSByZXN1bHQuZXJyb3JGaWVsZHM7XHJcbiAgICAgICAgICAgICAgICBwYXlsb2FkUmVmZXJlbmNlVG9rZW5zLmZvckVhY2goKHRva2VuKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGVsZW1lbnRbdG9rZW5dID0ge307XHJcbiAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50W3Rva2VuXTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICBlbGVtZW50ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChlcnJvcnM/LmVycm9ycykge1xyXG4gICAgICAgICAgICBlcnJvcnMuZXJyb3JzLmZvckVhY2goKG1lc3NhZ2UpID0+IHtcclxuICAgICAgICAgICAgICByZXN1bHRbJ2Vycm9yJ10ucHVzaChtZXNzYWdlLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc3RhdGUgPSBjb25zdGFudHMuU1RBVEVfTUFDSElORV9TVEFUVVNfSURMRTtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBzZW5kaW5nOiB7XHJcbiAgICAgICAgZmFpbHVyZTogZnVuY3Rpb24gKC4uLmFyZ3MpIHtcclxuICAgICAgICAgIGxldCBbZXJyb3JzXSA9IGFyZ3M7XHJcbiAgICAgICAgICB0aGlzLnN0YXRlID0gY29uc3RhbnRzLlNUQVRFX01BQ0hJTkVfU1RBVFVTX0VSUk9SO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goY29uc3RhbnRzLlNUQVRFX01BQ0hJTkVfQUNUSU9OX0hBTkRMRV9FUlJPUiwgZXJyb3JzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkaXNwYXRjaChhY3Rpb25OYW1lLCAuLi5hcmdzKSB7XHJcbiAgICBjb25zdCBhY3Rpb25zID0gdGhpcy50cmFuc2l0aW9uc1t0aGlzLnN0YXRlXTtcclxuICAgIGNvbnN0IGFjdGlvbiA9IGFjdGlvbnNbYWN0aW9uTmFtZV07XHJcblxyXG4gICAgaWYgKGFjdGlvbikge1xyXG4gICAgICByZXR1cm4gYWN0aW9uLmFwcGx5KHRoaXMsIGFyZ3MpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbi8qICBwcml2YXRlIGdldFJlcXVlc3RPcHRpb25zKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICBhdXRoVG9rZW46IHRoaXMuY29yZVN0YXRlTWFjaGluZVNlcnZpY2UuZ2V0U2Vzc2lvblRva2VuKCksXHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6IGNvbnN0YW50cy5IRUFERVJfQ09OVEVOVF9UWVBFX0ZPUk1cclxuICAgICAgfSksXHJcbiAgICAgIG9ic2VydmU6ICdyZXNwb25zZSdcclxuICAgIH1cclxuICB9Ki9cclxuXHJcbiAgLypwdWJsaWMgY2FsbFBvc3QoYm9keSwgc3VjYywgb3B0aW9ucykge1xyXG4gICAgbGV0IGFwaVVybCA9IGVudmlyb25tZW50LnByb3h5U2VydmljZUJhc2VVcmwgKyAod2luZG93IGFzIGFueSkud21Db25maWcubGFuZ3VhZ2UgKyBlbnZpcm9ubWVudC5wcm94eUZ1bGxBZGRyZXNzICsgZW52aXJvbm1lbnQucHJveHlTZXJ2aWNlRXhlY3V0ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlVcmwsIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShib2R5KSksIG9wdGlvbnMpLnRvUHJvbWlzZSgpXHJcbiAgICAgIC50aGVuKFxyXG4gICAgICAgIChyZXNwb25zZU9iamVjdDogYW55KSA9PiB7XHJcbiAgICAgICAgICBsZXQgcGF5bG9hZCA9IHJlc3BvbnNlT2JqZWN0LmJvZHk7XHJcbiAgICAgICAgICB0aGlzLnN0YXRlID0gY29uc3RhbnRzLlNUQVRFX01BQ0hJTkVfU1RBVFVTX0ZFVENISU5HO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goc3VjYywgcGF5bG9hZCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgKS5jYXRjaChcclxuICAgICAgICAoaHR0cEVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCByZXNwb25zZUVycm9yID0gaHR0cEVycm9yLmVycm9yO1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlRXJyb3IpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IGNvbnN0YW50cy5TVEFURV9NQUNISU5FX1NUQVRVU19GRVRDSElORztcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goY29uc3RhbnRzLlNUQVRFX01BQ0hJTkVfQUNUSU9OX0ZBSUxVUkUsIHJlc3BvbnNlRXJyb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBjb25zdGFudHMuU1RBVEVfTUFDSElORV9TVEFUVVNfSURMRTtcclxuICAgICAgICAgICAgdGhyb3cgaHR0cEVycm9yO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9Ki9cclxufVxyXG4iXX0=
|