@luigi-project/client-support-angular 2.9.1-dev.202402191429 → 2.9.1-dev.202402210024
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/esm2020/lib/luigi-mock/luigi-mock.module.mjs +113 -116
- package/esm2020/lib/service/luigi-auto-routing.service.mjs +29 -12
- package/fesm2015/luigi-project-client-support-angular.mjs +138 -124
- package/fesm2015/luigi-project-client-support-angular.mjs.map +1 -1
- package/fesm2020/luigi-project-client-support-angular.mjs +138 -124
- package/fesm2020/luigi-project-client-support-angular.mjs.map +1 -1
- package/lib/service/luigi-auto-routing.service.d.ts +5 -1
- package/package.json +3 -3
|
@@ -18,124 +18,121 @@ export class LuigiMockModule {
|
|
|
18
18
|
// Add a hook to the post message api to mock the LuigiCore response to the Client
|
|
19
19
|
static initPostMessageHook() {
|
|
20
20
|
return async () => {
|
|
21
|
-
console.log('luigiMockModule sapluigi client-support-angular');
|
|
22
21
|
// Check if Luigi Client is running standalone
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
mockListener(e);
|
|
22
|
+
if (window.parent === window) {
|
|
23
|
+
console.debug('Detected standalone mode');
|
|
24
|
+
// Check and skip if Luigi environment is already mocked
|
|
25
|
+
if (window.luigiMockEnvironment) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// mock target origin
|
|
29
|
+
if (window.LuigiClient) {
|
|
30
|
+
window.LuigiClient.setTargetOrigin('*');
|
|
31
|
+
}
|
|
32
|
+
window.luigiMockEnvironment = {
|
|
33
|
+
msgListener: function (e) {
|
|
34
|
+
if (e.data.msg && (e.data.msg.startsWith('luigi.') || e.data.msg === 'storage')) {
|
|
35
|
+
console.debug('Luigi msg', e.data);
|
|
36
|
+
if (e.data.msg === 'luigi.get-context') {
|
|
37
|
+
window.postMessage({
|
|
38
|
+
msg: 'luigi.init',
|
|
39
|
+
emulated: true,
|
|
40
|
+
internal: {
|
|
41
|
+
viewStackSize: 1
|
|
42
|
+
},
|
|
43
|
+
context: e.data.context
|
|
44
|
+
}, '*');
|
|
45
|
+
}
|
|
46
|
+
// vizualise retrieved event data
|
|
47
|
+
LuigiMockEngine.visualize(JSON.stringify(e.data));
|
|
48
|
+
// Check and run mocked callback if it exists
|
|
49
|
+
const mockListener = window.luigiMockEnvironment.mockListeners[e.data.msg];
|
|
50
|
+
if (mockListener) {
|
|
51
|
+
mockListener(e);
|
|
52
|
+
}
|
|
55
53
|
}
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
mockListeners: {
|
|
59
|
-
'luigi.navigation.pathExists': (event) => {
|
|
60
|
-
const mockData = window.sessionStorage.getItem('luigiMockData');
|
|
61
|
-
let mockDataParsed = mockData ? JSON.parse(mockData) : undefined;
|
|
62
|
-
const inputPath = event.data.data.link;
|
|
63
|
-
const pathExists = mockDataParsed && mockDataParsed.pathExists && mockDataParsed.pathExists[inputPath];
|
|
64
|
-
const response = {
|
|
65
|
-
msg: 'luigi.navigation.pathExists.answer',
|
|
66
|
-
data: {
|
|
67
|
-
correlationId: event.data.data.id,
|
|
68
|
-
pathExists: pathExists ? pathExists : false
|
|
69
|
-
},
|
|
70
|
-
emulated: true
|
|
71
|
-
};
|
|
72
|
-
window.postMessage(response, '*');
|
|
73
|
-
},
|
|
74
|
-
//ux
|
|
75
|
-
'luigi.ux.confirmationModal.show': (event) => {
|
|
76
|
-
const response = {
|
|
77
|
-
msg: 'luigi.ux.confirmationModal.hide',
|
|
78
|
-
data: event.data,
|
|
79
|
-
emulated: true
|
|
80
|
-
};
|
|
81
|
-
window.postMessage(response, '*');
|
|
82
|
-
},
|
|
83
|
-
'luigi.ux.alert.show': (event) => {
|
|
84
|
-
const response = {
|
|
85
|
-
msg: 'luigi.ux.alert.hide',
|
|
86
|
-
data: event.data,
|
|
87
|
-
emulated: true
|
|
88
|
-
};
|
|
89
|
-
window.postMessage(response, '*');
|
|
90
54
|
},
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
55
|
+
mockListeners: {
|
|
56
|
+
'luigi.navigation.pathExists': (event) => {
|
|
57
|
+
const mockData = window.sessionStorage.getItem('luigiMockData');
|
|
58
|
+
let mockDataParsed = mockData ? JSON.parse(mockData) : undefined;
|
|
59
|
+
const inputPath = event.data.data.link;
|
|
60
|
+
const pathExists = mockDataParsed && mockDataParsed.pathExists && mockDataParsed.pathExists[inputPath];
|
|
61
|
+
const response = {
|
|
62
|
+
msg: 'luigi.navigation.pathExists.answer',
|
|
63
|
+
data: {
|
|
64
|
+
correlationId: event.data.data.id,
|
|
65
|
+
pathExists: pathExists ? pathExists : false
|
|
66
|
+
},
|
|
67
|
+
emulated: true
|
|
68
|
+
};
|
|
69
|
+
window.postMessage(response, '*');
|
|
70
|
+
},
|
|
71
|
+
//ux
|
|
72
|
+
'luigi.ux.confirmationModal.show': (event) => {
|
|
73
|
+
const response = {
|
|
74
|
+
msg: 'luigi.ux.confirmationModal.hide',
|
|
75
|
+
data: event.data,
|
|
76
|
+
emulated: true
|
|
77
|
+
};
|
|
78
|
+
window.postMessage(response, '*');
|
|
79
|
+
},
|
|
80
|
+
'luigi.ux.alert.show': (event) => {
|
|
81
|
+
const response = {
|
|
82
|
+
msg: 'luigi.ux.alert.hide',
|
|
83
|
+
data: event.data,
|
|
84
|
+
emulated: true
|
|
85
|
+
};
|
|
86
|
+
window.postMessage(response, '*');
|
|
87
|
+
},
|
|
88
|
+
'luigi.ux.set-current-locale': (event) => {
|
|
89
|
+
const response = {
|
|
90
|
+
msg: 'luigi.current-locale-changed',
|
|
91
|
+
currentLocale: event.data.data.currentLocale,
|
|
92
|
+
emulated: true
|
|
93
|
+
};
|
|
94
|
+
window.postMessage(response, '*');
|
|
95
|
+
},
|
|
96
|
+
// linkManager
|
|
97
|
+
'luigi.navigation.open': (event) => {
|
|
98
|
+
const response = {
|
|
99
|
+
msg: 'luigi.navigate.ok',
|
|
100
|
+
data: event.data,
|
|
101
|
+
emulated: true
|
|
102
|
+
};
|
|
103
|
+
window.postMessage(response, '*');
|
|
104
|
+
},
|
|
105
|
+
'luigi.navigation.splitview.close': (event) => {
|
|
106
|
+
const response = {
|
|
107
|
+
msg: 'luigi.navigate.ok',
|
|
108
|
+
data: event.data,
|
|
109
|
+
emulated: true
|
|
110
|
+
};
|
|
111
|
+
window.postMessage(response, '*');
|
|
112
|
+
},
|
|
113
|
+
'luigi.navigation.splitview.collapse': (event) => {
|
|
114
|
+
const response = {
|
|
115
|
+
msg: 'luigi.navigate.ok',
|
|
116
|
+
data: event.data,
|
|
117
|
+
emulated: true
|
|
118
|
+
};
|
|
119
|
+
window.postMessage(response, '*');
|
|
120
|
+
},
|
|
121
|
+
'luigi.navigation.splitview.expand': (event) => {
|
|
122
|
+
const response = {
|
|
123
|
+
msg: 'luigi.navigate.ok',
|
|
124
|
+
data: event.data,
|
|
125
|
+
emulated: true
|
|
126
|
+
};
|
|
127
|
+
window.postMessage(response, '*');
|
|
128
|
+
},
|
|
129
|
+
// storage
|
|
130
|
+
storage: () => { }
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
// Listen to the global 'message' event of the window object
|
|
134
|
+
window.addEventListener('message', window.luigiMockEnvironment.msgListener);
|
|
135
|
+
}
|
|
139
136
|
};
|
|
140
137
|
}
|
|
141
138
|
/*
|
|
@@ -178,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
178
175
|
]
|
|
179
176
|
}]
|
|
180
177
|
}] });
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktbW9jay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvbHVpZ2ktbW9jay9sdWlnaS1tb2NrLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRW5FLFdBQVc7QUFVWDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQzFCLGtGQUFrRjtJQUMzRSxNQUFNLENBQUMsbUJBQW1CO1FBQy9CLE9BQU8sS0FBSyxJQUFtQixFQUFFO1lBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsaURBQWlELENBQUMsQ0FBQztZQUMvRCw4Q0FBOEM7WUFDOUMsa0NBQWtDO1lBQ2xDLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztZQUUxQyx3REFBd0Q7WUFDeEQsSUFBSyxNQUFjLENBQUMsb0JBQW9CLEVBQUU7Z0JBQ3hDLE9BQU87YUFDUjtZQUVELHFCQUFxQjtZQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFHLE1BQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4RSxJQUFLLE1BQWMsQ0FBQyxXQUFXLEVBQUU7Z0JBQzlCLE1BQWMsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xEO1lBRUEsTUFBYyxDQUFDLG9CQUFvQixHQUFHO2dCQUNyQyxXQUFXLEVBQUUsVUFBVSxDQUFNO29CQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7b0JBQzlILElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDLEVBQUU7d0JBQy9FLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFFbkMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxtQkFBbUIsRUFBRTs0QkFDdEMsTUFBTSxDQUFDLFdBQVcsQ0FDaEI7Z0NBQ0UsR0FBRyxFQUFFLFlBQVk7Z0NBQ2pCLFFBQVEsRUFBRSxJQUFJO2dDQUNkLFFBQVEsRUFBRTtvQ0FDUixhQUFhLEVBQUUsQ0FBQztpQ0FDakI7Z0NBQ0QsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTzs2QkFDeEIsRUFDRCxHQUFHLENBQ0osQ0FBQzt5QkFDSDt3QkFFRCxpQ0FBaUM7d0JBQ2pDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFFbEQsNkNBQTZDO3dCQUM3QyxNQUFNLFlBQVksR0FBSSxNQUFjLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ3BGLElBQUksWUFBWSxFQUFFOzRCQUNoQixZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ2pCO3FCQUNGO2dCQUNILENBQUM7Z0JBQ0QsYUFBYSxFQUFFO29CQUNiLDZCQUE2QixFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7d0JBQzVDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO3dCQUNoRSxJQUFJLGNBQWMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQzt3QkFDakUsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO3dCQUN2QyxNQUFNLFVBQVUsR0FBRyxjQUFjLElBQUksY0FBYyxDQUFDLFVBQVUsSUFBSSxjQUFjLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3dCQUV2RyxNQUFNLFFBQVEsR0FBRzs0QkFDZixHQUFHLEVBQUUsb0NBQW9DOzRCQUN6QyxJQUFJLEVBQUU7Z0NBQ0osYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0NBQ2pDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSzs2QkFDNUM7NEJBQ0QsUUFBUSxFQUFFLElBQUk7eUJBQ2YsQ0FBQzt3QkFDRixNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDcEMsQ0FBQztvQkFDRCxJQUFJO29CQUNKLGlDQUFpQyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7d0JBQ2hELE1BQU0sUUFBUSxHQUFHOzRCQUNmLEdBQUcsRUFBRSxpQ0FBaUM7NEJBQ3RDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTs0QkFDaEIsUUFBUSxFQUFFLElBQUk7eUJBQ2YsQ0FBQzt3QkFDRixNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDcEMsQ0FBQztvQkFDRCxxQkFBcUIsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO3dCQUNwQyxNQUFNLFFBQVEsR0FBRzs0QkFDZixHQUFHLEVBQUUscUJBQXFCOzRCQUMxQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7NEJBQ2hCLFFBQVEsRUFBRSxJQUFJO3lCQUNmLENBQUM7d0JBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3BDLENBQUM7b0JBQ0QsNkJBQTZCLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTt3QkFDNUMsTUFBTSxRQUFRLEdBQUc7NEJBQ2YsR0FBRyxFQUFFLDhCQUE4Qjs0QkFDbkMsYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7NEJBQzVDLFFBQVEsRUFBRSxJQUFJO3lCQUNmLENBQUM7d0JBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3BDLENBQUM7b0JBQ0QsY0FBYztvQkFDZCx1QkFBdUIsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO3dCQUN0QyxNQUFNLFFBQVEsR0FBRzs0QkFDZixHQUFHLEVBQUUsbUJBQW1COzRCQUN4QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7NEJBQ2hCLFFBQVEsRUFBRSxJQUFJO3lCQUNmLENBQUM7d0JBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3BDLENBQUM7b0JBQ0Qsa0NBQWtDLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTt3QkFDakQsTUFBTSxRQUFRLEdBQUc7NEJBQ2YsR0FBRyxFQUFFLG1CQUFtQjs0QkFDeEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJOzRCQUNoQixRQUFRLEVBQUUsSUFBSTt5QkFDZixDQUFDO3dCQUNGLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUNwQyxDQUFDO29CQUNELHFDQUFxQyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7d0JBQ3BELE1BQU0sUUFBUSxHQUFHOzRCQUNmLEdBQUcsRUFBRSxtQkFBbUI7NEJBQ3hCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTs0QkFDaEIsUUFBUSxFQUFFLElBQUk7eUJBQ2YsQ0FBQzt3QkFDRixNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDcEMsQ0FBQztvQkFDRCxtQ0FBbUMsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO3dCQUNsRCxNQUFNLFFBQVEsR0FBRzs0QkFDZixHQUFHLEVBQUUsbUJBQW1COzRCQUN4QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7NEJBQ2hCLFFBQVEsRUFBRSxJQUFJO3lCQUNmLENBQUM7d0JBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3BDLENBQUM7b0JBQ0QsVUFBVTtvQkFDVixPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztpQkFDbkI7YUFDRixDQUFDO1lBRUYsNERBQTREO1lBQzVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUcsTUFBYyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3JGLElBQUk7UUFDTixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ2xDLElBQUksMkJBQTJCLEdBQW1CLFFBQVEsQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNqRyx5REFBeUQ7UUFDekQsSUFBSSxDQUFDLDJCQUEyQixFQUFFO1lBQ2hDLDJCQUEyQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUQsMkJBQTJCLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3RFLG1HQUFtRztZQUNuRywyQkFBMkIsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ2xFLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDeEQ7UUFDRCxNQUFNLElBQUksR0FBbUIsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QiwyQkFBMkIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7NkdBekpVLGVBQWU7OEdBQWYsZUFBZTs4R0FBZixlQUFlLGFBcEJmO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsZUFBZSxDQUFDLG1CQUFtQjtZQUMvQyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0Y7NEZBY1UsZUFBZTtrQkFyQjNCLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixVQUFVLEVBQUUsZUFBZSxDQUFDLG1CQUFtQjs0QkFDL0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMdWlnaU1vY2tFbmdpbmUgfSBmcm9tICdAbHVpZ2ktcHJvamVjdC90ZXN0aW5nLXV0aWxpdGllcyc7XG5cbi8vIEBkeW5hbWljXG5ATmdNb2R1bGUoe1xuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiBMdWlnaU1vY2tFbmdpbmUuaW5pdFBvc3RNZXNzYWdlSG9vayxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuLypcbiAqIFRoaXMgY2xhc3MgbW9ja3MgTHVpZ2kgQ29yZSByZWxhdGVkIGZ1bmN0aW9uYWxpdHkuXG4gKlxuICogTWljcm8gRnJvbnRlbmRzIHRoYXQgdXNlIEx1aWdpIENsaWVudCB3b3VsZCB1c3VhbGx5IGNvbW11bmljYXRlIHdpdGggTHVpZ2kgQ29yZVxuICogYmFjayBhbmQgZm9ydGguIFdoZW4gdGVzdGluZyBMdWlnaSBDbGllbnQgYmFzZWQgY29tcG9uZW50cywgTHVpZ2kgQ29yZSBtaWdodFxuICogbm90IGJlIHByZXNlbnQgd2hpY2ggbGVhZHMgaW50byBsaW1pdGF0aW9ucyBvbiBpbnRlZ3JhdGlvbi9lMmUgdGVzdGluZyBmb3Igc3RhbmRhbG9uZVxuICogbWljcm9mcm9udGVuZHMuXG4gKlxuICogVGhpcyBtb2R1bGUgYWRkcyBhIGhvb2sgdG8gdGhlIHdpbmRvdyBwb3N0TWVzc2FnZSBBUEkgYnkgYWRkaW5nIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZVxuICogZ2xvYmFsIG1lc3NhZ2UgZXZlbnQgb2YgdGhlIHdpbmRvdyBvYmplY3QgYW5kIG1vY2tpbmcgdGhlIGNhbGxiYWNrLlxuICogSW4gdGhlIG5vcm1hbCB3b3JrZmxvdyB0aGlzIG1lc3NhZ2Ugd291bGQgcGlja2VkIHVwIGJ5IEx1aWdpIENvcmUgd2hpY2ggdGhlbiBzZW5kcyB0aGUgcmVzcG9uc2UgYmFjay5cbiAqL1xuZXhwb3J0IGNsYXNzIEx1aWdpTW9ja01vZHVsZSB7XG4gIC8vIEFkZCBhIGhvb2sgdG8gdGhlIHBvc3QgbWVzc2FnZSBhcGkgdG8gbW9jayB0aGUgTHVpZ2lDb3JlIHJlc3BvbnNlIHRvIHRoZSBDbGllbnRcbiAgcHVibGljIHN0YXRpYyBpbml0UG9zdE1lc3NhZ2VIb29rKCkge1xuICAgIHJldHVybiBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnbHVpZ2lNb2NrTW9kdWxlIHNhcGx1aWdpIGNsaWVudC1zdXBwb3J0LWFuZ3VsYXInKTtcbiAgICAgIC8vIENoZWNrIGlmIEx1aWdpIENsaWVudCBpcyBydW5uaW5nIHN0YW5kYWxvbmVcbiAgICAgIC8vIGlmICh3aW5kb3cucGFyZW50ID09PSB3aW5kb3cpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoJ0RldGVjdGVkIHN0YW5kYWxvbmUgbW9kZScpO1xuXG4gICAgICAvLyBDaGVjayBhbmQgc2tpcCBpZiBMdWlnaSBlbnZpcm9ubWVudCBpcyBhbHJlYWR5IG1vY2tlZFxuICAgICAgaWYgKCh3aW5kb3cgYXMgYW55KS5sdWlnaU1vY2tFbnZpcm9ubWVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIG1vY2sgdGFyZ2V0IG9yaWdpblxuICAgICAgY29uc29sZS5sb2coJyh3aW5kb3cgYXMgYW55KS5MdWlnaUNsaWVudCcsICh3aW5kb3cgYXMgYW55KS5MdWlnaUNsaWVudCk7XG4gICAgICBpZiAoKHdpbmRvdyBhcyBhbnkpLkx1aWdpQ2xpZW50KSB7XG4gICAgICAgICh3aW5kb3cgYXMgYW55KS5MdWlnaUNsaWVudC5zZXRUYXJnZXRPcmlnaW4oJyonKTtcbiAgICAgIH1cblxuICAgICAgKHdpbmRvdyBhcyBhbnkpLmx1aWdpTW9ja0Vudmlyb25tZW50ID0ge1xuICAgICAgICBtc2dMaXN0ZW5lcjogZnVuY3Rpb24gKGU6IGFueSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdtc2cgc3RhcnRzIHdpdGggbHVpZ2kuIG9yIHN0b3JhZ2UnLCBlLmRhdGEubXNnICYmIChlLmRhdGEubXNnLnN0YXJ0c1dpdGgoJ2x1aWdpLicpIHx8IGUuZGF0YS5tc2cgPT09ICdzdG9yYWdlJykpO1xuICAgICAgICAgIGlmIChlLmRhdGEubXNnICYmIChlLmRhdGEubXNnLnN0YXJ0c1dpdGgoJ2x1aWdpLicpIHx8IGUuZGF0YS5tc2cgPT09ICdzdG9yYWdlJykpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ0x1aWdpIG1zZycsIGUuZGF0YSk7XG5cbiAgICAgICAgICAgIGlmIChlLmRhdGEubXNnID09PSAnbHVpZ2kuZ2V0LWNvbnRleHQnKSB7XG4gICAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBtc2c6ICdsdWlnaS5pbml0JyxcbiAgICAgICAgICAgICAgICAgIGVtdWxhdGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgaW50ZXJuYWw6IHtcbiAgICAgICAgICAgICAgICAgICAgdmlld1N0YWNrU2l6ZTogMVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IGUuZGF0YS5jb250ZXh0XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnKidcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gdml6dWFsaXNlIHJldHJpZXZlZCBldmVudCBkYXRhXG4gICAgICAgICAgICBMdWlnaU1vY2tFbmdpbmUudmlzdWFsaXplKEpTT04uc3RyaW5naWZ5KGUuZGF0YSkpO1xuXG4gICAgICAgICAgICAvLyBDaGVjayBhbmQgcnVuIG1vY2tlZCBjYWxsYmFjayBpZiBpdCBleGlzdHNcbiAgICAgICAgICAgIGNvbnN0IG1vY2tMaXN0ZW5lciA9ICh3aW5kb3cgYXMgYW55KS5sdWlnaU1vY2tFbnZpcm9ubWVudC5tb2NrTGlzdGVuZXJzW2UuZGF0YS5tc2ddO1xuICAgICAgICAgICAgaWYgKG1vY2tMaXN0ZW5lcikge1xuICAgICAgICAgICAgICBtb2NrTGlzdGVuZXIoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb2NrTGlzdGVuZXJzOiB7XG4gICAgICAgICAgJ2x1aWdpLm5hdmlnYXRpb24ucGF0aEV4aXN0cyc6IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtb2NrRGF0YSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdsdWlnaU1vY2tEYXRhJyk7XG4gICAgICAgICAgICBsZXQgbW9ja0RhdGFQYXJzZWQgPSBtb2NrRGF0YSA/IEpTT04ucGFyc2UobW9ja0RhdGEpIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaW5wdXRQYXRoID0gZXZlbnQuZGF0YS5kYXRhLmxpbms7XG4gICAgICAgICAgICBjb25zdCBwYXRoRXhpc3RzID0gbW9ja0RhdGFQYXJzZWQgJiYgbW9ja0RhdGFQYXJzZWQucGF0aEV4aXN0cyAmJiBtb2NrRGF0YVBhcnNlZC5wYXRoRXhpc3RzW2lucHV0UGF0aF07XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgICAgICAgICBtc2c6ICdsdWlnaS5uYXZpZ2F0aW9uLnBhdGhFeGlzdHMuYW5zd2VyJyxcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGNvcnJlbGF0aW9uSWQ6IGV2ZW50LmRhdGEuZGF0YS5pZCxcbiAgICAgICAgICAgICAgICBwYXRoRXhpc3RzOiBwYXRoRXhpc3RzID8gcGF0aEV4aXN0cyA6IGZhbHNlXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGVtdWxhdGVkOiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKHJlc3BvbnNlLCAnKicpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgLy91eFxuICAgICAgICAgICdsdWlnaS51eC5jb25maXJtYXRpb25Nb2RhbC5zaG93JzogKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgICAgICAgICBtc2c6ICdsdWlnaS51eC5jb25maXJtYXRpb25Nb2RhbC5oaWRlJyxcbiAgICAgICAgICAgICAgZGF0YTogZXZlbnQuZGF0YSxcbiAgICAgICAgICAgICAgZW11bGF0ZWQ6IHRydWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UocmVzcG9uc2UsICcqJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICAnbHVpZ2kudXguYWxlcnQuc2hvdyc6IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgICAgICAgICAgbXNnOiAnbHVpZ2kudXguYWxlcnQuaGlkZScsXG4gICAgICAgICAgICAgIGRhdGE6IGV2ZW50LmRhdGEsXG4gICAgICAgICAgICAgIGVtdWxhdGVkOiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKHJlc3BvbnNlLCAnKicpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgJ2x1aWdpLnV4LnNldC1jdXJyZW50LWxvY2FsZSc6IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgICAgICAgICAgbXNnOiAnbHVpZ2kuY3VycmVudC1sb2NhbGUtY2hhbmdlZCcsXG4gICAgICAgICAgICAgIGN1cnJlbnRMb2NhbGU6IGV2ZW50LmRhdGEuZGF0YS5jdXJyZW50TG9jYWxlLFxuICAgICAgICAgICAgICBlbXVsYXRlZDogdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShyZXNwb25zZSwgJyonKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIC8vIGxpbmtNYW5hZ2VyXG4gICAgICAgICAgJ2x1aWdpLm5hdmlnYXRpb24ub3Blbic6IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgICAgICAgICAgbXNnOiAnbHVpZ2kubmF2aWdhdGUub2snLFxuICAgICAgICAgICAgICBkYXRhOiBldmVudC5kYXRhLFxuICAgICAgICAgICAgICBlbXVsYXRlZDogdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShyZXNwb25zZSwgJyonKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgICdsdWlnaS5uYXZpZ2F0aW9uLnNwbGl0dmlldy5jbG9zZSc6IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgICAgICAgICAgbXNnOiAnbHVpZ2kubmF2aWdhdGUub2snLFxuICAgICAgICAgICAgICBkYXRhOiBldmVudC5kYXRhLFxuICAgICAgICAgICAgICBlbXVsYXRlZDogdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShyZXNwb25zZSwgJyonKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgICdsdWlnaS5uYXZpZ2F0aW9uLnNwbGl0dmlldy5jb2xsYXBzZSc6IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgICAgICAgICAgbXNnOiAnbHVpZ2kubmF2aWdhdGUub2snLFxuICAgICAgICAgICAgICBkYXRhOiBldmVudC5kYXRhLFxuICAgICAgICAgICAgICBlbXVsYXRlZDogdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShyZXNwb25zZSwgJyonKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgICdsdWlnaS5uYXZpZ2F0aW9uLnNwbGl0dmlldy5leHBhbmQnOiAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICAgICAgICAgIG1zZzogJ2x1aWdpLm5hdmlnYXRlLm9rJyxcbiAgICAgICAgICAgICAgZGF0YTogZXZlbnQuZGF0YSxcbiAgICAgICAgICAgICAgZW11bGF0ZWQ6IHRydWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UocmVzcG9uc2UsICcqJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICAvLyBzdG9yYWdlXG4gICAgICAgICAgc3RvcmFnZTogKCkgPT4geyB9XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIC8vIExpc3RlbiB0byB0aGUgZ2xvYmFsICdtZXNzYWdlJyBldmVudCBvZiB0aGUgd2luZG93IG9iamVjdFxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAod2luZG93IGFzIGFueSkubHVpZ2lNb2NrRW52aXJvbm1lbnQubXNnTGlzdGVuZXIpO1xuICAgICAgLy8gfVxuICAgIH07XG4gIH1cblxuICAvKlxuICAgKiBUaGlzIG1ldGhvZCB0YWtlcyBhIGRhdGEgb2JqZWN0IG9mIHR5cGUgJ2FueScgYW5kIHZpenVhbGl6ZXMgYSBzaW1wbGUgY29udGFpbmVyXG4gICAqIHdoaWNoIGhvbGRzIGRhdGEgdGhhdCBpcyB1c2VmdWwgZm9yIGUyZSB0ZXN0aW5nLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2aXN1YWxpemUoZGF0YTogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IGx1aWdpVmlzdWFsaXphdGlvbkNvbnRhaW5lcjogRWxlbWVudCB8IG51bGwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbHVpZ2ktZGVidWctdmlzLWNudCcpO1xuICAgIC8vIENvbnN0cnVjdCBlbGVtZW50IHN0cnVjdHVyZSBpZiBub3QgYWxyZWFkeSBjb25zdHJ1Y3RlZFxuICAgIGlmICghbHVpZ2lWaXN1YWxpemF0aW9uQ29udGFpbmVyKSB7XG4gICAgICBsdWlnaVZpc3VhbGl6YXRpb25Db250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIGx1aWdpVmlzdWFsaXphdGlvbkNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2x1aWdpLWRlYnVnLXZpcy1jbnQnKTtcbiAgICAgIC8vIEhpZGUgdGhlIGFkZGVkIERPTSBlbGVtZW50IHRvIGF2b2lkIGludGVyZmVycmluZy9vdmVybGFwcGluZyB3aXRoIG90aGVyIGVsZW1lbnRzIGR1cmluZyB0ZXN0aW5nLlxuICAgICAgbHVpZ2lWaXN1YWxpemF0aW9uQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTpub25lJyk7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGx1aWdpVmlzdWFsaXphdGlvbkNvbnRhaW5lcik7XG4gICAgfVxuICAgIGNvbnN0IGxpbmU6IEhUTUxEaXZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgbGluZS50ZXh0Q29udGVudCA9IGRhdGE7XG4gICAgbHVpZ2lWaXN1YWxpemF0aW9uQ29udGFpbmVyLmFwcGVuZENoaWxkKGxpbmUpO1xuICB9XG59XG4iXX0=
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktbW9jay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvbHVpZ2ktbW9jay9sdWlnaS1tb2NrLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRW5FLFdBQVc7QUFVWDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQzFCLGtGQUFrRjtJQUMzRSxNQUFNLENBQUMsbUJBQW1CO1FBQy9CLE9BQU8sS0FBSyxJQUFtQixFQUFFO1lBQy9CLDhDQUE4QztZQUM5QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFO2dCQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7Z0JBRTFDLHdEQUF3RDtnQkFDeEQsSUFBSyxNQUFjLENBQUMsb0JBQW9CLEVBQUU7b0JBQ3hDLE9BQU87aUJBQ1I7Z0JBRUQscUJBQXFCO2dCQUNyQixJQUFLLE1BQWMsQ0FBQyxXQUFXLEVBQUU7b0JBQzlCLE1BQWMsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNsRDtnQkFFQSxNQUFjLENBQUMsb0JBQW9CLEdBQUc7b0JBQ3JDLFdBQVcsRUFBRSxVQUFTLENBQU07d0JBQzFCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDLEVBQUU7NEJBQy9FLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENB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LEVBQUUsZUFBZTs0QkFDeEIsVUFBVSxFQUFFLGVBQWUsQ0FBQyxtQkFBbUI7NEJBQy9DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTHVpZ2lNb2NrRW5naW5lIH0gZnJvbSAnQGx1aWdpLXByb2plY3QvdGVzdGluZy11dGlsaXRpZXMnO1xuXG4vLyBAZHluYW1pY1xuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgdXNlRmFjdG9yeTogTHVpZ2lNb2NrRW5naW5lLmluaXRQb3N0TWVzc2FnZUhvb2ssXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbi8qXG4gKiBUaGlzIGNsYXNzIG1vY2tzIEx1aWdpIENvcmUgcmVsYXRlZCBmdW5jdGlvbmFsaXR5LlxuICpcbiAqIE1pY3JvIEZyb250ZW5kcyB0aGF0IHVzZSBMdWlnaSBDbGllbnQgd291bGQgdXN1YWxseSBjb21tdW5pY2F0ZSB3aXRoIEx1aWdpIENvcmVcbiAqIGJhY2sgYW5kIGZvcnRoLiBXaGVuIHRlc3RpbmcgTHVpZ2kgQ2xpZW50IGJhc2VkIGNvbXBvbmVudHMsIEx1aWdpIENvcmUgbWlnaHRcbiAqIG5vdCBiZSBwcmVzZW50IHdoaWNoIGxlYWRzIGludG8gbGltaXRhdGlvbnMgb24gaW50ZWdyYXRpb24vZTJlIHRlc3RpbmcgZm9yIHN0YW5kYWxvbmVcbiAqIG1pY3JvZnJvbnRlbmRzLlxuICpcbiAqIFRoaXMgbW9kdWxlIGFkZHMgYSBob29rIHRvIHRoZSB3aW5kb3cgcG9zdE1lc3NhZ2UgQVBJIGJ5IGFkZGluZyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGVcbiAqIGdsb2JhbCBtZXNzYWdlIGV2ZW50IG9mIHRoZSB3aW5kb3cgb2JqZWN0IGFuZCBtb2NraW5nIHRoZSBjYWxsYmFjay5cbiAqIEluIHRoZSBub3JtYWwgd29ya2Zsb3cgdGhpcyBtZXNzYWdlIHdvdWxkIHBpY2tlZCB1cCBieSBMdWlnaSBDb3JlIHdoaWNoIHRoZW4gc2VuZHMgdGhlIHJlc3BvbnNlIGJhY2suXG4gKi9cbmV4cG9ydCBjbGFzcyBMdWlnaU1vY2tNb2R1bGUge1xuICAvLyBBZGQgYSBob29rIHRvIHRoZSBwb3N0IG1lc3NhZ2UgYXBpIHRvIG1vY2sgdGhlIEx1aWdpQ29yZSByZXNwb25zZSB0byB0aGUgQ2xpZW50XG4gIHB1YmxpYyBzdGF0aWMgaW5pdFBvc3RNZXNzYWdlSG9vaygpIHtcbiAgICByZXR1cm4gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgLy8gQ2hlY2sgaWYgTHVpZ2kgQ2xpZW50IGlzIHJ1bm5pbmcgc3RhbmRhbG9uZVxuICAgICAgaWYgKHdpbmRvdy5wYXJlbnQgPT09IHdpbmRvdykge1xuICAgICAgICBjb25zb2xlLmRlYnVnKCdEZXRlY3RlZCBzdGFuZGFsb25lIG1vZGUnKTtcblxuICAgICAgICAvLyBDaGVjayBhbmQgc2tpcCBpZiBMdWlnaSBlbnZpcm9ubWVudCBpcyBhbHJlYWR5IG1vY2tlZFxuICAgICAgICBpZiAoKHdpbmRvdyBhcyBhbnkpLmx1aWdpTW9ja0Vudmlyb25tZW50KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gbW9jayB0YXJnZXQgb3JpZ2luXG4gICAgICAgIGlmICgod2luZG93IGFzIGFueSkuTHVpZ2lDbGllbnQpIHtcbiAgICAgICAgICAod2luZG93IGFzIGFueSkuTHVpZ2lDbGllbnQuc2V0VGFyZ2V0T3JpZ2luKCcqJyk7XG4gICAgICAgIH1cblxuICAgICAgICAod2luZG93IGFzIGFueSkubHVpZ2lNb2NrRW52aXJvbm1lbnQgPSB7XG4gICAgICAgICAgbXNnTGlzdGVuZXI6IGZ1bmN0aW9uKGU6IGFueSkge1xuICAgICAgICAgICAgaWYgKGUuZGF0YS5tc2cgJiYgKGUuZGF0YS5tc2cuc3RhcnRzV2l0aCgnbHVpZ2kuJykgfHwgZS5kYXRhLm1zZyA9PT0gJ3N0b3JhZ2UnKSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKCdMdWlnaSBtc2cnLCBlLmRhdGEpO1xuXG4gICAgICAgICAgICAgIGlmIChlLmRhdGEubXNnID09PSAnbHVpZ2kuZ2V0LWNvbnRleHQnKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBtc2c6ICdsdWlnaS5pbml0JyxcbiAgICAgICAgICAgICAgICAgICAgZW11bGF0ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGludGVybmFsOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdmlld1N0YWNrU2l6ZTogMVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBlLmRhdGEuY29udGV4dFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICcqJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyB2aXp1YWxpc2UgcmV0cmlldmVkIGV2ZW50IGRhdGFcbiAgICAgICAgICAgICAgTHVpZ2lNb2NrRW5naW5lLnZpc3VhbGl6ZShKU09OLnN0cmluZ2lmeShlLmRhdGEpKTtcblxuICAgICAgICAgICAgICAvLyBDaGVjayBhbmQgcnVuIG1vY2tlZCBjYWxsYmFjayBpZiBpdCBleGlzdHNcbiAgICAgICAgICAgICAgY29uc3QgbW9ja0xpc3RlbmVyID0gKHdpbmRvdyBhcyBhbnkpLmx1aWdpTW9ja0Vudmlyb25tZW50Lm1vY2tMaXN0ZW5lcnNbZS5kYXRhLm1zZ107XG4gICAgICAgICAgICAgIGlmIChtb2NrTGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICBtb2NrTGlzdGVuZXIoZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIG1vY2tMaXN0ZW5lcnM6IHtcbiAgICAgICAgICAgICdsdWlnaS5uYXZpZ2F0aW9uLnBhdGhFeGlzdHMnOiAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBtb2NrRGF0YSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdsdWlnaU1vY2tEYXRhJyk7XG4gICAgICAgICAgICAgIGxldCBtb2NrRGF0YVBhcnNlZCA9IG1vY2tEYXRhID8gSlNPTi5wYXJzZShtb2NrRGF0YSkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGNvbnN0IGlucHV0UGF0aCA9IGV2ZW50LmRhdGEuZGF0YS5saW5rO1xuICAgICAgICAgICAgICBjb25zdCBwYXRoRXhpc3RzID0gbW9ja0RhdGFQYXJzZWQgJiYgbW9ja0RhdGFQYXJzZWQucGF0aEV4aXN0cyAmJiBtb2NrRGF0YVBhcnNlZC5wYXRoRXhpc3RzW2lucHV0UGF0aF07XG5cbiAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICAgICAgICAgICAgbXNnOiAnbHVpZ2kubmF2aWdhdGlvbi5wYXRoRXhpc3RzLmFuc3dlcicsXG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgY29ycmVsYXRpb25JZDogZXZlbnQuZGF0YS5kYXRhLmlkLFxuICAgICAgICAgICAgICAgICAgcGF0aEV4aXN0czogcGF0aEV4aXN0cyA/IHBhdGhFeGlzdHMgOiBmYWxzZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW11bGF0ZWQ6IHRydWVcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKHJlc3BvbnNlLCAnKicpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vdXhcbiAgICAgICAgICAgICdsdWlnaS51eC5jb25maXJtYXRpb25Nb2RhbC5zaG93JzogKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICAgICAgICAgICAgbXNnOiAnbHVpZ2kudXguY29uZmlybWF0aW9uTW9kYWwuaGlkZScsXG4gICAgICAgICAgICAgICAgZGF0YTogZXZlbnQuZGF0YSxcbiAgICAgICAgICAgICAgICBlbXVsYXRlZDogdHJ1ZVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UocmVzcG9uc2UsICcqJyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgJ2x1aWdpLnV4LmFsZXJ0LnNob3cnOiAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgICAgICAgICAgICBtc2c6ICdsdWlnaS51eC5hbGVydC5oaWRlJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBldmVudC5kYXRhLFxuICAgICAgICAgICAgICAgIGVtdWxhdGVkOiB0cnVlXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShyZXNwb25zZSwgJyonKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAnbHVpZ2kudXguc2V0LWN1cnJlbnQtbG9jYWxlJzogKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICAgICAgICAgICAgbXNnOiAnbHVpZ2kuY3VycmVudC1sb2NhbGUtY2hhbmdlZCcsXG4gICAgICAgICAgICAgICAgY3VycmVudExvY2FsZTogZXZlbnQuZGF0YS5kYXRhLmN1cnJlbnRMb2NhbGUsXG4gICAgICAgICAgICAgICAgZW11bGF0ZWQ6IHRydWVcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKHJlc3BvbnNlLCAnKicpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIGxpbmtNYW5hZ2VyXG4gICAgICAgICAgICAnbHVpZ2kubmF2aWdhdGlvbi5vcGVuJzogKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICAgICAgICAgICAgbXNnOiAnbHVpZ2kubmF2aWdhdGUub2snLFxuICAgICAgICAgICAgICAgIGRhdGE6IGV2ZW50LmRhdGEsXG4gICAgICAgICAgICAgICAgZW11bGF0ZWQ6IHRydWVcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKHJlc3BvbnNlLCAnKicpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdsdWlnaS5uYXZpZ2F0aW9uLnNwbGl0dmlldy5jbG9zZSc6IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgICAgICAgICAgIG1zZzogJ2x1aWdpLm5hdmlnYXRlLm9rJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBldmVudC5kYXRhLFxuICAgICAgICAgICAgICAgIGVtdWxhdGVkOiB0cnVlXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShyZXNwb25zZSwgJyonKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAnbHVpZ2kubmF2aWdhdGlvbi5zcGxpdHZpZXcuY29sbGFwc2UnOiAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgICAgICAgICAgICBtc2c6ICdsdWlnaS5uYXZpZ2F0ZS5vaycsXG4gICAgICAgICAgICAgICAgZGF0YTogZXZlbnQuZGF0YSxcbiAgICAgICAgICAgICAgICBlbXVsYXRlZDogdHJ1ZVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UocmVzcG9uc2UsICcqJyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgJ2x1aWdpLm5hdmlnYXRpb24uc3BsaXR2aWV3LmV4cGFuZCc6IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgICAgICAgICAgIG1zZzogJ2x1aWdpLm5hdmlnYXRlLm9rJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBldmVudC5kYXRhLFxuICAgICAgICAgICAgICAgIGVtdWxhdGVkOiB0cnVlXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShyZXNwb25zZSwgJyonKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBzdG9yYWdlXG4gICAgICAgICAgICBzdG9yYWdlOiAoKSA9PiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBMaXN0ZW4gdG8gdGhlIGdsb2JhbCAnbWVzc2FnZScgZXZlbnQgb2YgdGhlIHdpbmRvdyBvYmplY3RcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAod2luZG93IGFzIGFueSkubHVpZ2lNb2NrRW52aXJvbm1lbnQubXNnTGlzdGVuZXIpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKlxuICAgKiBUaGlzIG1ldGhvZCB0YWtlcyBhIGRhdGEgb2JqZWN0IG9mIHR5cGUgJ2FueScgYW5kIHZpenVhbGl6ZXMgYSBzaW1wbGUgY29udGFpbmVyXG4gICAqIHdoaWNoIGhvbGRzIGRhdGEgdGhhdCBpcyB1c2VmdWwgZm9yIGUyZSB0ZXN0aW5nLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2aXN1YWxpemUoZGF0YTogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IGx1aWdpVmlzdWFsaXphdGlvbkNvbnRhaW5lcjogRWxlbWVudCB8IG51bGwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbHVpZ2ktZGVidWctdmlzLWNudCcpO1xuICAgIC8vIENvbnN0cnVjdCBlbGVtZW50IHN0cnVjdHVyZSBpZiBub3QgYWxyZWFkeSBjb25zdHJ1Y3RlZFxuICAgIGlmICghbHVpZ2lWaXN1YWxpemF0aW9uQ29udGFpbmVyKSB7XG4gICAgICBsdWlnaVZpc3VhbGl6YXRpb25Db250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIGx1aWdpVmlzdWFsaXphdGlvbkNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2x1aWdpLWRlYnVnLXZpcy1jbnQnKTtcbiAgICAgIC8vIEhpZGUgdGhlIGFkZGVkIERPTSBlbGVtZW50IHRvIGF2b2lkIGludGVyZmVycmluZy9vdmVybGFwcGluZyB3aXRoIG90aGVyIGVsZW1lbnRzIGR1cmluZyB0ZXN0aW5nLlxuICAgICAgbHVpZ2lWaXN1YWxpemF0aW9uQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTpub25lJyk7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGx1aWdpVmlzdWFsaXphdGlvbkNvbnRhaW5lcik7XG4gICAgfVxuICAgIGNvbnN0IGxpbmU6IEhUTUxEaXZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgbGluZS50ZXh0Q29udGVudCA9IGRhdGE7XG4gICAgbHVpZ2lWaXN1YWxpemF0aW9uQ29udGFpbmVyLmFwcGVuZENoaWxkKGxpbmUpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import { convertToParamMap, NavigationEnd } from '@angular/router';
|
|
2
|
+
import { NavigationEnd, convertToParamMap } from '@angular/router';
|
|
4
3
|
import { linkManager, uxManager } from '@luigi-project/client';
|
|
4
|
+
import { Subscription } from 'rxjs';
|
|
5
5
|
import { filter } from 'rxjs/operators';
|
|
6
6
|
import { LuigiActivatedRouteSnapshotHelper } from '../route/luigi-activated-route-snapshot-helper';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
@@ -61,15 +61,7 @@ export class LuigiAutoRoutingService {
|
|
|
61
61
|
let lm = linkManager().withoutSync();
|
|
62
62
|
let route;
|
|
63
63
|
if (current.data.luigiRoute) {
|
|
64
|
-
route = current
|
|
65
|
-
if (current.params) {
|
|
66
|
-
const pmap = convertToParamMap(current.params);
|
|
67
|
-
pmap.keys.forEach(key => {
|
|
68
|
-
const val = pmap.getAll(key).forEach(param => {
|
|
69
|
-
route = route?.replace(':' + key, param);
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
}
|
|
64
|
+
route = this.getResolvedLuigiRoute(current);
|
|
73
65
|
if (current.data.fromContext) {
|
|
74
66
|
if (!this.luigiContextService.getContext()) {
|
|
75
67
|
console.debug('Ignoring auto navigation request, luigi context not set');
|
|
@@ -109,6 +101,31 @@ export class LuigiAutoRoutingService {
|
|
|
109
101
|
}
|
|
110
102
|
}
|
|
111
103
|
}
|
|
104
|
+
getResolvedLuigiRoute(current) {
|
|
105
|
+
let route = current.data.luigiRoute;
|
|
106
|
+
const allParams = this.getAllParamsFromParents(current);
|
|
107
|
+
if (!route || !allParams) {
|
|
108
|
+
return route;
|
|
109
|
+
}
|
|
110
|
+
const pmap = convertToParamMap(allParams);
|
|
111
|
+
pmap.keys.forEach(key => {
|
|
112
|
+
pmap.getAll(key).forEach(param => {
|
|
113
|
+
route = route?.replace(':' + key, param);
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
return route;
|
|
117
|
+
}
|
|
118
|
+
getAllParamsFromParents(current) {
|
|
119
|
+
let allParams = {};
|
|
120
|
+
let currentToCheck = current;
|
|
121
|
+
while (currentToCheck) {
|
|
122
|
+
if (currentToCheck.params) {
|
|
123
|
+
allParams = { ...allParams, ...currentToCheck.params };
|
|
124
|
+
}
|
|
125
|
+
currentToCheck = currentToCheck.parent;
|
|
126
|
+
}
|
|
127
|
+
return allParams;
|
|
128
|
+
}
|
|
112
129
|
ngOnDestroy() {
|
|
113
130
|
this.subscription.unsubscribe();
|
|
114
131
|
}
|
|
@@ -121,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
121
138
|
providedIn: 'root'
|
|
122
139
|
}]
|
|
123
140
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.LuigiContextService }]; } });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktYXV0by1yb3V0aW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvc2VydmljZS9sdWlnaS1hdXRvLXJvdXRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBcUMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQWlDLE1BQU0saUJBQWlCLENBQUM7QUFDbEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7QUFPbkcsTUFBTSxPQUFPLHVCQUF1QjtJQUdsQyxZQUFvQixNQUFjLEVBQVUsbUJBQXdDO1FBQWhFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBRjVFLGlCQUFZLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFlLENBQUMsQ0FDakcsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQXdCLEVBQUU7WUFDNUMsT0FBTyxDQUFDLENBQUMsQ0FDUCxLQUFLLFlBQVksYUFBYTtnQkFDOUIsS0FBSyxDQUFDLEdBQUc7Z0JBQ1QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFDcEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FDL0MsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxjQUFjLENBQUMsS0FBb0I7UUFDakMsSUFBSSxPQUFPLEdBQWtDLGlDQUFpQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRTVGLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNoRCxPQUFPLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDcEMsMkJBQTJCO2dCQUMzQixJQUFJLE9BQU8sR0FBa0MsSUFBSSxDQUFDO2dCQUVsRCxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtvQkFDeEMsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTt3QkFDdEMsT0FBTyxHQUFHLGFBQWEsQ0FBQztxQkFDekI7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxPQUFPLEVBQUU7b0JBQ1gsT0FBTyxHQUFHLE9BQU8sQ0FBQztpQkFDbkI7cUJBQU0sSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO29CQUM3QixPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztpQkFDOUI7cUJBQU07b0JBQ0wsTUFBTTtpQkFDUDthQUNGO1NBQ0Y7UUFDRCxJQUFJLE9BQU8sRUFBRSxJQUFJLEVBQUU7WUFDakIsTUFBTSxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUM7WUFDdkIsSUFBSSxFQUFFLEdBQUcsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckMsSUFBSSxLQUF5QixDQUFDO1lBRTlCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQzNCLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFFaEMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO29CQUNsQixNQUFNLElBQUksR0FBYSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO3dCQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTs0QkFDM0MsS0FBSyxHQUFHLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDM0MsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7Z0JBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsRUFBRTt3QkFDMUMsT0FBTyxDQUFDLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO3dCQUN6RSxPQUFPO3FCQUNSO29CQUNELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxFQUFFO3dCQUNyQyxFQUFFLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUM7cUJBQzlCO3lCQUFNO3dCQUNMLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7cUJBQy9DO2lCQUNGO2FBQ0Y7aUJBQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUMzQyxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUNwQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQztnQkFDM0QsSUFBSSxRQUFRLEVBQUU7b0JBQ1osSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTt3QkFDL0IsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzlDLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO3FCQUMvQzt5QkFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUN0QyxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7cUJBQ25DO2lCQUNGO2dCQUNELEtBQUssR0FBRyxHQUFHLENBQUM7Z0JBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQywwQ0FBMEMsR0FBRyxLQUFLLENBQUMsQ0FBQztnQkFDbEUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2FBQy9CO1lBRUQsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ2hCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtvQkFDcEMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLEtBQWUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDekY7YUFDRjtpQkFBTSxJQUFJLEtBQUssRUFBRTtnQkFDaEIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQjtTQUNGO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7O3FIQTdHVSx1QkFBdUI7eUhBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzRGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24sIFBhcnRpYWxPYnNlcnZlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb252ZXJ0VG9QYXJhbU1hcCwgTmF2aWdhdGlvbkVuZCwgUGFyYW1NYXAsIFJvdXRlciwgUm91dGVyRXZlbnQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgbGlua01hbmFnZXIsIHV4TWFuYWdlciB9IGZyb20gJ0BsdWlnaS1wcm9qZWN0L2NsaWVudCc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMdWlnaUFjdGl2YXRlZFJvdXRlU25hcHNob3RIZWxwZXIgfSBmcm9tICcuLi9yb3V0ZS9sdWlnaS1hY3RpdmF0ZWQtcm91dGUtc25hcHNob3QtaGVscGVyJztcbmltcG9ydCB7IEx1aWdpQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL2x1aWdpLWNvbnRleHQtc2VydmljZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTHVpZ2lBdXRvUm91dGluZ1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgbHVpZ2lDb250ZXh0U2VydmljZTogTHVpZ2lDb250ZXh0U2VydmljZSkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKHRoaXMuZG9GaWx0ZXIoKSkuc3Vic2NyaWJlKHRoaXMuZG9TdWJzY3JpcHRpb24uYmluZCh0aGlzKSBhcyAoKSA9PiB2b2lkKVxuICAgICk7XG4gIH1cblxuICBkb0ZpbHRlcigpOiBPcGVyYXRvckZ1bmN0aW9uPHVua25vd24sIFJvdXRlckV2ZW50PiB7XG4gICAgcmV0dXJuIGZpbHRlcigoZXZlbnQpOiBldmVudCBpcyBSb3V0ZXJFdmVudCA9PiB7XG4gICAgICByZXR1cm4gISEoXG4gICAgICAgIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCAmJlxuICAgICAgICBldmVudC51cmwgJiZcbiAgICAgICAgZXZlbnQudXJsLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgIShoaXN0b3J5LnN0YXRlICYmIGhpc3Rvcnkuc3RhdGUubHVpZ2lJbmR1Y2VkKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIGJlIHRha2UgaW4gY29uc2lkZXJhdGlvbiBhbmd1bGFyIHJvdXRlIHRoYXQgaGF2aW5nIGluIGRhdGEgb2JqZWN0IHRoZSBwYXJhbXRlclxuICAgKiBmcm9tVmlydHVhbFRyZWVSb290OiB0cnVlLCBoZXJlIGFuIGV4YW1wbGU6XG4gICAqIHtwYXRoOiAnZGVtbycsIGNvbXBvbmVudDogRGVtb0NvbXBvbmVudCwgZGF0YTp7ZnJvbVZpcnR1YWxUcmVlUm9vdDogdHJ1ZX19XG4gICAqIEFub3RoZXIgb3B0aW9uIGlzIHRvIHNwZWNpZnkgdGhlIEx1aWdpUGF0aDogaWYgeW91IGFkZCBpbiByb3V0ZSBkYXRhIGx1aWdpUm91dGU6Jy94eHh4L3h4eCc7XG4gICAqIGluIHRoZSBjYXNlIHdlIHdpbGwgdXBkYXRlIHRoZSBwYXRoIGluIEx1aWdpQ29yZSBuYXZpZ2F0aW9uLCBoZXJlIGFuIGV4YW1wbGVcbiAgICoge3BhdGg6ICdkZW1vJywgY29tcG9uZW50OiBEZW1vQ29tcG9uZW50LCBkYXRhOntsdWlnaVJvdXRlOiAnL2hvbWUvZGVtbycnfX1cbiAgICogSWYgdXBkYXRlTW9kYWxQYXRoUGFyYW0gaXMgc3BlY2lmaWVkLCB0aGFuIG1vZGFsUGF0aFBhcmFtIHdpbGwgYmUgdXBkYXRlZCB1cG9uIGludGVybmFsIG5hdmlnYXRpb246XG4gICAqIHtwYXRoOiAnZGVtbycsIGNvbXBvbmVudDogRGVtb0NvbXBvbmVudCwgZGF0YTp7dXBkYXRlTW9kYWxQYXRoUGFyYW06IHRydWV9fVxuICAgKiBAcGFyYW0gZXZlbnQgdGhlIE5hdmlnYXRpb25FbmQgZXZlbnRcbiAgICovXG4gIGRvU3Vic2NyaXB0aW9uKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKTogdm9pZCB7XG4gICAgbGV0IGN1cnJlbnQ6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsID0gTHVpZ2lBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90SGVscGVyLmdldEN1cnJlbnQoKTtcblxuICAgIGlmICghY3VycmVudCkge1xuICAgICAgY3VycmVudCA9IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnJvb3Quc25hcHNob3Q7XG4gICAgICB3aGlsZSAoY3VycmVudD8uY2hpbGRyZW4/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgLy8gaGFuZGxlIG11bHRpcGxlIGNoaWxkcmVuXG4gICAgICAgIGxldCBwcmltYXJ5OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgY3VycmVudD8uY2hpbGRyZW4uZm9yRWFjaChjaGlsZFNuYXBzaG90ID0+IHtcbiAgICAgICAgICBpZiAoY2hpbGRTbmFwc2hvdC5vdXRsZXQgPT09ICdwcmltYXJ5Jykge1xuICAgICAgICAgICAgcHJpbWFyeSA9IGNoaWxkU25hcHNob3Q7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHByaW1hcnkpIHtcbiAgICAgICAgICBjdXJyZW50ID0gcHJpbWFyeTtcbiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50LmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5maXJzdENoaWxkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjdXJyZW50Py5kYXRhKSB7XG4gICAgICBjb25zdCB1eCA9IHV4TWFuYWdlcigpO1xuICAgICAgbGV0IGxtID0gbGlua01hbmFnZXIoKS53aXRob3V0U3luYygpO1xuICAgICAgbGV0IHJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChjdXJyZW50LmRhdGEubHVpZ2lSb3V0ZSkge1xuICAgICAgICByb3V0ZSA9IGN1cnJlbnQuZGF0YS5sdWlnaVJvdXRlO1xuXG4gICAgICAgIGlmIChjdXJyZW50LnBhcmFtcykge1xuICAgICAgICAgIGNvbnN0IHBtYXA6IFBhcmFtTWFwID0gY29udmVydFRvUGFyYW1NYXAoY3VycmVudC5wYXJhbXMpO1xuICAgICAgICAgIHBtYXAua2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBwbWFwLmdldEFsbChrZXkpLmZvckVhY2gocGFyYW0gPT4ge1xuICAgICAgICAgICAgICByb3V0ZSA9IHJvdXRlPy5yZXBsYWNlKCc6JyArIGtleSwgcGFyYW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN1cnJlbnQuZGF0YS5mcm9tQ29udGV4dCkge1xuICAgICAgICAgIGlmICghdGhpcy5sdWlnaUNvbnRleHRTZXJ2aWNlLmdldENvbnRleHQoKSkge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnSWdub3JpbmcgYXV0byBuYXZpZ2F0aW9uIHJlcXVlc3QsIGx1aWdpIGNvbnRleHQgbm90IHNldCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY3VycmVudC5kYXRhLmZyb21Db250ZXh0ID09PSB0cnVlKSB7XG4gICAgICAgICAgICBsbSA9IGxtLmZyb21DbG9zZXN0Q29udGV4dCgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsbSA9IGxtLmZyb21Db250ZXh0KGN1cnJlbnQuZGF0YS5mcm9tQ29udGV4dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnQuZGF0YS5mcm9tVmlydHVhbFRyZWVSb290KSB7XG4gICAgICAgIGxldCB1cmwgPSBldmVudC51cmw7XG4gICAgICAgIGNvbnN0IHRydW5jYXRlID0gY3VycmVudC5kYXRhLmZyb21WaXJ0dWFsVHJlZVJvb3QudHJ1bmNhdGU7XG4gICAgICAgIGlmICh0cnVuY2F0ZSkge1xuICAgICAgICAgIGlmICh0cnVuY2F0ZS5pbmRleE9mKCcqJykgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdXJsLmluZGV4T2YodHJ1bmNhdGUuc3Vic3RyKDEpKTtcbiAgICAgICAgICAgIHVybCA9IHVybC5zdWJzdHIoaW5kZXggKyB0cnVuY2F0ZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHVybC5pbmRleE9mKHRydW5jYXRlKSA9PT0gMCkge1xuICAgICAgICAgICAgdXJsID0gdXJsLnN1YnN0cih0cnVuY2F0ZS5sZW5ndGgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByb3V0ZSA9IHVybDtcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnQ2FsbGluZyBmcm9tVmlydHVhbFRyZWVSb290IGZvciB1cmwgPT0+ICcgKyByb3V0ZSk7XG4gICAgICAgIGxtID0gbG0uZnJvbVZpcnR1YWxUcmVlUm9vdCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodXguaXNNb2RhbCgpKSB7XG4gICAgICAgIGlmIChjdXJyZW50LmRhdGEudXBkYXRlTW9kYWxEYXRhUGF0aCkge1xuICAgICAgICAgIGxtLnVwZGF0ZU1vZGFsUGF0aEludGVybmFsTmF2aWdhdGlvbihyb3V0ZSBhcyBzdHJpbmcsIHt9LCBjdXJyZW50LmRhdGEuYWRkSGlzdG9yeUVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChyb3V0ZSkge1xuICAgICAgICBsbS5uYXZpZ2F0ZShyb3V0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVpZ2ktYXV0by1yb3V0aW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc3VwcG9ydC1hbmd1bGFyL3NyYy9saWIvc2VydmljZS9sdWlnaS1hdXRvLXJvdXRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBMEIsYUFBYSxFQUFpQyxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFvQixZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7O0FBTW5HLE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFBb0IsTUFBYyxFQUFVLG1CQUF3QztRQUFoRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUY1RSxpQkFBWSxHQUFpQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3RELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBZSxDQUFDLENBQ2pHLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sTUFBTSxDQUFDLENBQUMsS0FBSyxFQUF3QixFQUFFO1lBQzVDLE9BQU8sQ0FBQyxDQUFDLENBQ1AsS0FBSyxZQUFZLGFB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LENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELHVCQUF1QixDQUFDLE9BQStCO1FBQ3JELElBQUksU0FBUyxHQUE4QixFQUFFLENBQUM7UUFDOUMsSUFBSSxjQUFjLEdBQStCLE9BQU8sQ0FBQztRQUV6RCxPQUFPLGNBQWMsRUFBRTtZQUNyQixJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3pCLFNBQVMsR0FBRyxFQUFFLEdBQUcsU0FBUyxFQUFFLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3hEO1lBQ0QsY0FBYyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7U0FDeEM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7cUhBdklVLHVCQUF1Qjt5SEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07NEZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgTmF2aWdhdGlvbkVuZCwgUGFyYW1NYXAsIFJvdXRlciwgUm91dGVyRXZlbnQsIGNvbnZlcnRUb1BhcmFtTWFwIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGxpbmtNYW5hZ2VyLCB1eE1hbmFnZXIgfSBmcm9tICdAbHVpZ2ktcHJvamVjdC9jbGllbnQnO1xuaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMdWlnaUFjdGl2YXRlZFJvdXRlU25hcHNob3RIZWxwZXIgfSBmcm9tICcuLi9yb3V0ZS9sdWlnaS1hY3RpdmF0ZWQtcm91dGUtc25hcHNob3QtaGVscGVyJztcbmltcG9ydCB7IEx1aWdpQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL2x1aWdpLWNvbnRleHQtc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEx1aWdpQXV0b1JvdXRpbmdTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGx1aWdpQ29udGV4dFNlcnZpY2U6IEx1aWdpQ29udGV4dFNlcnZpY2UpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZSh0aGlzLmRvRmlsdGVyKCkpLnN1YnNjcmliZSh0aGlzLmRvU3Vic2NyaXB0aW9uLmJpbmQodGhpcykgYXMgKCkgPT4gdm9pZClcbiAgICApO1xuICB9XG5cbiAgZG9GaWx0ZXIoKTogT3BlcmF0b3JGdW5jdGlvbjx1bmtub3duLCBSb3V0ZXJFdmVudD4ge1xuICAgIHJldHVybiBmaWx0ZXIoKGV2ZW50KTogZXZlbnQgaXMgUm91dGVyRXZlbnQgPT4ge1xuICAgICAgcmV0dXJuICEhKFxuICAgICAgICBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgJiZcbiAgICAgICAgZXZlbnQudXJsICYmXG4gICAgICAgIGV2ZW50LnVybC5sZW5ndGggPiAwICYmXG4gICAgICAgICEoaGlzdG9yeS5zdGF0ZSAmJiBoaXN0b3J5LnN0YXRlLmx1aWdpSW5kdWNlZClcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2Qgd2lsbCBiZSB0YWtlIGluIGNvbnNpZGVyYXRpb24gYW5ndWxhciByb3V0ZSB0aGF0IGhhdmluZyBpbiBkYXRhIG9iamVjdCB0aGUgcGFyYW10ZXJcbiAgICogZnJvbVZpcnR1YWxUcmVlUm9vdDogdHJ1ZSwgaGVyZSBhbiBleGFtcGxlOlxuICAgKiB7cGF0aDogJ2RlbW8nLCBjb21wb25lbnQ6IERlbW9Db21wb25lbnQsIGRhdGE6e2Zyb21WaXJ0dWFsVHJlZVJvb3Q6IHRydWV9fVxuICAgKiBBbm90aGVyIG9wdGlvbiBpcyB0byBzcGVjaWZ5IHRoZSBMdWlnaVBhdGg6IGlmIHlvdSBhZGQgaW4gcm91dGUgZGF0YSBsdWlnaVJvdXRlOicveHh4eC94eHgnO1xuICAgKiBpbiB0aGUgY2FzZSB3ZSB3aWxsIHVwZGF0ZSB0aGUgcGF0aCBpbiBMdWlnaUNvcmUgbmF2aWdhdGlvbiwgaGVyZSBhbiBleGFtcGxlXG4gICAqIHtwYXRoOiAnZGVtbycsIGNvbXBvbmVudDogRGVtb0NvbXBvbmVudCwgZGF0YTp7bHVpZ2lSb3V0ZTogJy9ob21lL2RlbW8nJ319XG4gICAqIElmIHVwZGF0ZU1vZGFsUGF0aFBhcmFtIGlzIHNwZWNpZmllZCwgdGhhbiBtb2RhbFBhdGhQYXJhbSB3aWxsIGJlIHVwZGF0ZWQgdXBvbiBpbnRlcm5hbCBuYXZpZ2F0aW9uOlxuICAgKiB7cGF0aDogJ2RlbW8nLCBjb21wb25lbnQ6IERlbW9Db21wb25lbnQsIGRhdGE6e3VwZGF0ZU1vZGFsUGF0aFBhcmFtOiB0cnVlfX1cbiAgICogQHBhcmFtIGV2ZW50IHRoZSBOYXZpZ2F0aW9uRW5kIGV2ZW50XG4gICAqL1xuICBkb1N1YnNjcmlwdGlvbihldmVudDogTmF2aWdhdGlvbkVuZCk6IHZvaWQge1xuICAgIGxldCBjdXJyZW50OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbCA9IEx1aWdpQWN0aXZhdGVkUm91dGVTbmFwc2hvdEhlbHBlci5nZXRDdXJyZW50KCk7XG5cbiAgICBpZiAoIWN1cnJlbnQpIHtcbiAgICAgIGN1cnJlbnQgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5yb290LnNuYXBzaG90O1xuICAgICAgd2hpbGUgKGN1cnJlbnQ/LmNoaWxkcmVuPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIC8vIGhhbmRsZSBtdWx0aXBsZSBjaGlsZHJlblxuICAgICAgICBsZXQgcHJpbWFyeTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGN1cnJlbnQ/LmNoaWxkcmVuLmZvckVhY2goY2hpbGRTbmFwc2hvdCA9PiB7XG4gICAgICAgICAgaWYgKGNoaWxkU25hcHNob3Qub3V0bGV0ID09PSAncHJpbWFyeScpIHtcbiAgICAgICAgICAgIHByaW1hcnkgPSBjaGlsZFNuYXBzaG90O1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChwcmltYXJ5KSB7XG4gICAgICAgICAgY3VycmVudCA9IHByaW1hcnk7XG4gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudC5maXJzdENoaWxkKSB7XG4gICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuZmlyc3RDaGlsZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY3VycmVudD8uZGF0YSkge1xuICAgICAgY29uc3QgdXggPSB1eE1hbmFnZXIoKTtcbiAgICAgIGxldCBsbSA9IGxpbmtNYW5hZ2VyKCkud2l0aG91dFN5bmMoKTtcbiAgICAgIGxldCByb3V0ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgICBpZiAoY3VycmVudC5kYXRhLmx1aWdpUm91dGUpIHtcbiAgICAgICAgcm91dGUgPSB0aGlzLmdldFJlc29sdmVkTHVpZ2lSb3V0ZShjdXJyZW50KTtcbiAgICAgICAgaWYgKGN1cnJlbnQuZGF0YS5mcm9tQ29udGV4dCkge1xuICAgICAgICAgIGlmICghdGhpcy5sdWlnaUNvbnRleHRTZXJ2aWNlLmdldENvbnRleHQoKSkge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnSWdub3JpbmcgYXV0byBuYXZpZ2F0aW9uIHJlcXVlc3QsIGx1aWdpIGNvbnRleHQgbm90IHNldCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY3VycmVudC5kYXRhLmZyb21Db250ZXh0ID09PSB0cnVlKSB7XG4gICAgICAgICAgICBsbSA9IGxtLmZyb21DbG9zZXN0Q29udGV4dCgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsbSA9IGxtLmZyb21Db250ZXh0KGN1cnJlbnQuZGF0YS5mcm9tQ29udGV4dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnQuZGF0YS5mcm9tVmlydHVhbFRyZWVSb290KSB7XG4gICAgICAgIGxldCB1cmwgPSBldmVudC51cmw7XG4gICAgICAgIGNvbnN0IHRydW5jYXRlID0gY3VycmVudC5kYXRhLmZyb21WaXJ0dWFsVHJlZVJvb3QudHJ1bmNhdGU7XG4gICAgICAgIGlmICh0cnVuY2F0ZSkge1xuICAgICAgICAgIGlmICh0cnVuY2F0ZS5pbmRleE9mKCcqJykgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdXJsLmluZGV4T2YodHJ1bmNhdGUuc3Vic3RyKDEpKTtcbiAgICAgICAgICAgIHVybCA9IHVybC5zdWJzdHIoaW5kZXggKyB0cnVuY2F0ZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHVybC5pbmRleE9mKHRydW5jYXRlKSA9PT0gMCkge1xuICAgICAgICAgICAgdXJsID0gdXJsLnN1YnN0cih0cnVuY2F0ZS5sZW5ndGgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByb3V0ZSA9IHVybDtcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnQ2FsbGluZyBmcm9tVmlydHVhbFRyZWVSb290IGZvciB1cmwgPT0+ICcgKyByb3V0ZSk7XG4gICAgICAgIGxtID0gbG0uZnJvbVZpcnR1YWxUcmVlUm9vdCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodXguaXNNb2RhbCgpKSB7XG4gICAgICAgIGlmIChjdXJyZW50LmRhdGEudXBkYXRlTW9kYWxEYXRhUGF0aCkge1xuICAgICAgICAgIGxtLnVwZGF0ZU1vZGFsUGF0aEludGVybmFsTmF2aWdhdGlvbihyb3V0ZSBhcyBzdHJpbmcsIHt9LCBjdXJyZW50LmRhdGEuYWRkSGlzdG9yeUVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChyb3V0ZSkge1xuICAgICAgICBsbS5uYXZpZ2F0ZShyb3V0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0UmVzb2x2ZWRMdWlnaVJvdXRlKFxuICAgIGN1cnJlbnQ6IEFjdGl2YXRlZFJvdXRlU25hcHNob3RcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgcm91dGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IGN1cnJlbnQuZGF0YS5sdWlnaVJvdXRlO1xuICAgIGNvbnN0IGFsbFBhcmFtcyA9IHRoaXMuZ2V0QWxsUGFyYW1zRnJvbVBhcmVudHMoY3VycmVudCk7XG5cbiAgICBpZiAoIXJvdXRlIHx8ICFhbGxQYXJhbXMpIHtcbiAgICAgIHJldHVybiByb3V0ZTtcbiAgICB9XG5cbiAgICBjb25zdCBwbWFwOiBQYXJhbU1hcCA9IGNvbnZlcnRUb1BhcmFtTWFwKGFsbFBhcmFtcyk7XG5cbiAgICBwbWFwLmtleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgcG1hcC5nZXRBbGwoa2V5KS5mb3JFYWNoKHBhcmFtID0+IHtcbiAgICAgICAgcm91dGUgPSByb3V0ZT8ucmVwbGFjZSgnOicgKyBrZXksIHBhcmFtKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJvdXRlO1xuICB9XG5cbiAgZ2V0QWxsUGFyYW1zRnJvbVBhcmVudHMoY3VycmVudDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQge1xuICAgIGxldCBhbGxQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBsZXQgY3VycmVudFRvQ2hlY2s6QWN0aXZhdGVkUm91dGVTbmFwc2hvdHxudWxsID0gY3VycmVudDtcblxuICAgIHdoaWxlIChjdXJyZW50VG9DaGVjaykge1xuICAgICAgaWYgKGN1cnJlbnRUb0NoZWNrLnBhcmFtcykge1xuICAgICAgICBhbGxQYXJhbXMgPSB7IC4uLmFsbFBhcmFtcywgLi4uY3VycmVudFRvQ2hlY2sucGFyYW1zIH07XG4gICAgICB9XG4gICAgICBjdXJyZW50VG9DaGVjayA9IGN1cnJlbnRUb0NoZWNrLnBhcmVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gYWxsUGFyYW1zO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|