@glowgreen/gg-questionnaire-v2 0.0.49 → 0.0.50
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/bundles/glowgreen-gg-questionnaire-v2.umd.js +10 -10
- package/bundles/glowgreen-gg-questionnaire-v2.umd.js.map +1 -1
- package/bundles/glowgreen-gg-questionnaire-v2.umd.min.js +1 -1
- package/bundles/glowgreen-gg-questionnaire-v2.umd.min.js.map +1 -1
- package/esm2015/lib/services/filter.service.js +11 -11
- package/esm5/lib/services/filter.service.js +11 -11
- package/fesm2015/glowgreen-gg-questionnaire-v2.js +10 -10
- package/fesm2015/glowgreen-gg-questionnaire-v2.js.map +1 -1
- package/fesm5/glowgreen-gg-questionnaire-v2.js +10 -10
- package/fesm5/glowgreen-gg-questionnaire-v2.js.map +1 -1
- package/package.json +1 -1
|
@@ -36,18 +36,21 @@ export class FilterService {
|
|
|
36
36
|
const items = (/** @type {?} */ (currentQuestionnaireForm.get([section.name, question.name])));
|
|
37
37
|
console.log('Form Array', items);
|
|
38
38
|
if (items && items.controls) {
|
|
39
|
-
console.log('There are items and controls');
|
|
40
39
|
for (const repeaterItem of items.controls) {
|
|
41
40
|
/** @type {?} */
|
|
42
41
|
const filteredRepeaterItemQuestions = [];
|
|
43
|
-
console.log('Filtering repeater item questions');
|
|
44
42
|
for (const repeaterQuestion of question.repeaterQuestions) {
|
|
45
43
|
console.log('Checking condition for question', repeaterQuestion.name);
|
|
46
44
|
/** @type {?} */
|
|
47
45
|
const meetsConditions = this.meetsConditionGroups(repeaterQuestion.conditionGroups, currentQuestionnaireForm, additionalData, (/** @type {?} */ (repeaterItem)));
|
|
48
46
|
if (meetsConditions) {
|
|
49
|
-
console.log('Getting fetch options');
|
|
50
|
-
repeaterQuestion.selectOptions = this.getFetchOptionsForQuestion(
|
|
47
|
+
// console.log('Getting fetch options');
|
|
48
|
+
// repeaterQuestion.selectOptions = this.getFetchOptionsForQuestion(
|
|
49
|
+
// repeaterQuestion,
|
|
50
|
+
// additionalData,
|
|
51
|
+
// currentQuestionnaireForm,
|
|
52
|
+
// repeaterItem as FormGroup
|
|
53
|
+
// );
|
|
51
54
|
filteredRepeaterItemQuestions.push(repeaterQuestion);
|
|
52
55
|
}
|
|
53
56
|
}
|
|
@@ -323,13 +326,10 @@ export class FilterService {
|
|
|
323
326
|
additionalData = {};
|
|
324
327
|
}
|
|
325
328
|
/** @type {?} */
|
|
326
|
-
let control = currentQuestionnaireForm.get(path
|
|
329
|
+
let control = currentQuestionnaireForm.get(path);
|
|
327
330
|
if ((!control || !control.value) && repeaterItem) {
|
|
328
|
-
|
|
329
|
-
console.log('
|
|
330
|
-
console.log(repeaterItem);
|
|
331
|
-
control = repeaterItem.get(path.toString());
|
|
332
|
-
console.log('Control value', control ? control.value : null);
|
|
331
|
+
control = repeaterItem.get(path);
|
|
332
|
+
console.log('Repeater Control', control);
|
|
333
333
|
}
|
|
334
334
|
/** @type {?} */
|
|
335
335
|
const value = control ? control.value : this.convertStringToValue(path);
|
|
@@ -368,4 +368,4 @@ FilterService.decorators = [
|
|
|
368
368
|
/** @nocollapse */
|
|
369
369
|
FilterService.ctorParameters = () => [];
|
|
370
370
|
/** @nocollapse */ FilterService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function FilterService_Factory() { return new FilterService(); }, token: FilterService, providedIn: "root" });
|
|
371
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2xvd2dyZWVuL2dnLXF1ZXN0aW9ubmFpcmUtdjIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOztBQU81QixNQUFNLE9BQU8sYUFBYTtJQUV4QixnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0lBU1YsY0FBYyxDQUFDLFFBQXdCLEVBQUUsd0JBQTBDLEVBQUUsY0FBdUI7O2NBQzNHLGdCQUFnQixHQUFHLEVBQUU7UUFDM0IsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUU7WUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLHdCQUF3QixFQUFFLGNBQWMsQ0FBQyxFQUFFO2dCQUNqRyxTQUFTO2FBQ1Y7O2tCQUVLLGlCQUFpQixHQUFHLEVBQUU7WUFDNUIsS0FBSyxNQUFNLFFBQVEsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO2dCQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxDQUFDLEVBQUU7b0JBQ2xHLFNBQVM7aUJBQ1Y7Z0JBRUQsd0ZBQXdGO2dCQUN4RixJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFOzswQkFDMUIsS0FBSyxHQUFHLG1CQUFBLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FB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QUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzlEOztrQkFFSyxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDO1lBQ3ZFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzNDO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7Ozs7Ozs7OztJQVNPLG9CQUFvQixDQUFDLElBQVk7UUFDdkMsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxJQUFJLENBQUM7WUFDZCxLQUFLLE9BQU87Z0JBQ1YsT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxJQUFJLENBQUM7WUFDZDtnQkFDRSxPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0gsQ0FBQzs7O1lBL1ZGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NlY3Rpb24nO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb25kaXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmRpdGlvbic7XG5pbXBvcnQgeyBDb25kaXRpb25Hcm91cCB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZGl0aW9uLWdyb3VwJztcbmltcG9ydCB7IENvbmRpdGlvblR5cGUgfSBmcm9tICcuLi9lbnVtcy9jb25kaXRpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IENvbmRpdGlvblJlbGF0aW9uc2hpcCB9IGZyb20gJy4uL2VudW1zL2NvbmRpdGlvbi1yZWxhdGlvbnNoaXAuZW51bSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBRdWVzdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcXVlc3Rpb24nO1xuaW1wb3J0IHsgUmVwZWF0ZXJRdWVzdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwZWF0ZXItcXVlc3Rpb24nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFuIGFycmF5IG9mIHNlY3Rpb25zIGJhc2VkIG9uIHRoZWlyIGNvbmRpdGlvbiBncm91cHMuXG4gICAqIEBwYXJhbSBzZWN0aW9ucyBUaGUgYXJyYXkgb2Ygc2VjdGlvbnMgdG8gZmlsdGVyLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBmaWx0ZXJlZCBzZWN0aW9ucyB3aXRoIHRoZWlyIGZpbHRlcmVkIHF1ZXN0aW9ucy5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBmaWx0ZXJTZWN0aW9ucyhzZWN0aW9uczogQXJyYXk8U2VjdGlvbj4sIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCwgYWRkaXRpb25hbERhdGE/OiBPYmplY3QpOiBBcnJheTxTZWN0aW9uPiB7XG4gICAgY29uc3QgZmlsdGVyZWRTZWN0aW9ucyA9IFtdO1xuICAgIGZvciAoY29uc3Qgc2VjdGlvbiBvZiBzZWN0aW9ucykge1xuICAgICAgaWYgKCF0aGlzLm1lZXRzQ29uZGl0aW9uR3JvdXBzKHNlY3Rpb24uY29uZGl0aW9uR3JvdXBzLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsdGVyZWRRdWVzdGlvbnMgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2Ygc2VjdGlvbi5xdWVzdGlvbnMpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1lZXRzQ29uZGl0aW9uR3JvdXBzKHF1ZXN0aW9uLmNvbmRpdGlvbkdyb3VwcywgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGl0J3MgYSByZXBlYXRlciB3ZSBuZWVkIHRvIGRvIGEgbG90IG9mIGV4dHJhIGZpbHRlcmluZyBkdWUgdG8gcGVyIGl0ZW0gY29uZGl0aW9ucy5cbiAgICAgICAgaWYgKHF1ZXN0aW9uLnR5cGUgPT09ICdyZXBlYXRlcicpIHtcbiAgICAgICAgICBjb25zdCBpdGVtcyA9IGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybS5nZXQoW3NlY3Rpb24ubmFtZSwgcXVlc3Rpb24ubmFtZV0pIGFzIEZvcm1BcnJheTtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKCdGb3JtIEFycmF5JywgaXRlbXMpO1xuXG4gICAgICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmNvbnRyb2xzKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnVGhlcmUgYXJlIGl0ZW1zIGFuZCBjb250cm9scycpO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlcGVhdGVySXRlbSBvZiBpdGVtcy5jb250cm9scykge1xuICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZFJlcGVhdGVySXRlbVF1ZXN0aW9uczogQXJyYXk8UmVwZWF0ZXJRdWVzdGlvbj4gPSBbXTtcblxuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnRmlsdGVyaW5nIHJlcGVhdGVyIGl0ZW0gcXVlc3Rpb25zJyk7XG5cbiAgICAgICAgICAgICAgZm9yIChjb25zdCByZXBlYXRlclF1ZXN0aW9uIG9mIHF1ZXN0aW9uLnJlcGVhdGVyUXVlc3Rpb25zKSB7XG5cbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQ2hlY2tpbmcgY29uZGl0aW9uIGZvciBxdWVzdGlvbicsIHJlcGVhdGVyUXVlc3Rpb24ubmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVldHNDb25kaXRpb25zID0gdGhpcy5tZWV0c0NvbmRpdGlvbkdyb3VwcyhcbiAgICAgICAgICAgICAgICAgIHJlcGVhdGVyUXVlc3Rpb24uY29uZGl0aW9uR3JvdXBzLFxuICAgICAgICAgICAgICAgICAgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLFxuICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbERhdGEsXG4gICAgICAgICAgICAgICAgICByZXBlYXRlckl0ZW0gYXMgRm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGlmIChtZWV0c0NvbmRpdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdHZXR0aW5nIGZldGNoIG9wdGlvbnMnKTtcbiAgICAgICAgICAgICAgICAgIHJlcGVhdGVyUXVlc3Rpb24uc2VsZWN0T3B0aW9ucyA9IHRoaXMuZ2V0RmV0Y2hPcHRpb25zRm9yUXVlc3Rpb24oXG4gICAgICAgICAgICAgICAgICAgIHJlcGVhdGVyUXVlc3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxEYXRhLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sXG4gICAgICAgICAgICAgICAgICAgIHJlcGVhdGVySXRlbSBhcyBGb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBmaWx0ZXJlZFJlcGVhdGVySXRlbVF1ZXN0aW9ucy5wdXNoKHJlcGVhdGVyUXVlc3Rpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gaXRlbXMuY29udHJvbHMuaW5kZXhPZihyZXBlYXRlckl0ZW0pO1xuXG4gICAgICAgICAgICAgIGlmICghcXVlc3Rpb24uZmlsdGVyZWRSZXBlYXRlclF1ZXN0aW9ucykge1xuICAgICAgICAgICAgICAgIHF1ZXN0aW9uLmZpbHRlcmVkUmVwZWF0ZXJRdWVzdGlvbnMgPSBbXTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHF1ZXN0aW9uLmZpbHRlcmVkUmVwZWF0ZXJRdWVzdGlvbnNbaW5kZXhdID0gZmlsdGVyZWRSZXBlYXRlckl0ZW1RdWVzdGlvbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBxdWVzdGlvbi5zZWxlY3RPcHRpb25zID0gdGhpcy5nZXRGZXRjaE9wdGlvbnNGb3JRdWVzdGlvbihxdWVzdGlvbiwgYWRkaXRpb25hbERhdGEsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSk7XG5cbiAgICAgICAgZmlsdGVyZWRRdWVzdGlvbnMucHVzaChxdWVzdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGlmIChmaWx0ZXJlZFF1ZXN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHNlY3Rpb24ucXVlc3Rpb25zID0gZmlsdGVyZWRRdWVzdGlvbnM7XG4gICAgICBmaWx0ZXJlZFNlY3Rpb25zLnB1c2goc2VjdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlcmVkU2VjdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIGdldEZldGNoT3B0aW9uc0ZvclF1ZXN0aW9uKFxuICAgIHF1ZXN0aW9uOiBRdWVzdGlvbiB8IFJlcGVhdGVyUXVlc3Rpb24sXG4gICAgYWRkaXRpb25hbERhdGEsXG4gICAgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLFxuICAgIHJlcGVhdGVySXRlbT86IEZvcm1Hcm91cFxuICApIHtcblxuICAgIGlmICghcXVlc3Rpb24uZmV0Y2hQYXRoKSB7XG4gICAgICByZXR1cm4gcXVlc3Rpb24uc2VsZWN0T3B0aW9ucztcbiAgICB9XG5cbiAgICBsZXQgb3B0aW9ucyA9IGFkZGl0aW9uYWxEYXRhW3F1ZXN0aW9uLmZldGNoUGF0aF07XG4gICAgaWYgKHF1ZXN0aW9uLmZldGNoU2VsZWN0b3JzICYmIHF1ZXN0aW9uLmZldGNoU2VsZWN0b3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZ2V0VmFsdWVzRm9yQXJyYXkocXVlc3Rpb24uZmV0Y2hTZWxlY3RvcnMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEsIHJlcGVhdGVySXRlbSk7XG4gICAgICBvcHRpb25zID0gXy5nZXQoYWRkaXRpb25hbERhdGFbcXVlc3Rpb24uZmV0Y2hQYXRoXSwgdmFsdWVzKTtcbiAgICB9XG5cbiAgICBvcHRpb25zID0gdGhpcy5nZXRGaW5hbEZldGNoQXJyYXkob3B0aW9ucyk7XG5cbiAgICBpZiAoIXF1ZXN0aW9uLnNlbGVjdE9wdGlvbnMpIHtcbiAgICAgIHF1ZXN0aW9uLnNlbGVjdE9wdGlvbnMgPSBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gcXVlc3Rpb24uc2VsZWN0T3B0aW9ucy5jb25jYXQob3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbmFsRmV0Y2hBcnJheShpdGVtczogYW55KTogQXJyYXk8T2JqZWN0PiB7XG4gICAgaWYgKCFpdGVtcykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheShpdGVtcykpIHtcbiAgICAgIGl0ZW1zID0gXy5rZXlzKGl0ZW1zKTtcbiAgICB9XG4gICAgaWYgKGl0ZW1zLmxlbmd0aCA8PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgY29udmVydGVkQXJyYXk6IEFycmF5PE9iamVjdD4gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgT2JqZWN0ICYmIGl0ZW0udmFsdWUgJiYgaXRlbS5sYWJlbCkge1xuICAgICAgICAgIGNvbnZlcnRlZEFycmF5LnB1c2goaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udmVydGVkQXJyYXkucHVzaCh7bGFiZWw6IHRoaXMudXBwZXJjYXNlKGl0ZW0pLCB2YWx1ZTogaXRlbX0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb252ZXJ0ZWRBcnJheTtcbiAgfVxuXG4gIHByaXZhdGUgdXBwZXJjYXNlKGl0ZW06IGFueSkge1xuICAgIHJldHVybiBpdGVtLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgaXRlbS5zbGljZSgxKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBlYWNoIGNvbmRpdGlvbiBncm91cHMgY29uZGl0aW9ucyBoYXZlIGJlZW4gbWV0LlxuICAgKiBAcGFyYW0gY29uZGl0aW9uR3JvdXBzIFRoZSBhcnJheSBvZiBjb25kaXRpb24gZ3JvdXBzLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gc3RhdGluZyBpZiB0aGUgY29uZGl0aW9uIGdyb3VwcyBjb25kaXRpb25zIGhhcyBiZWVuIG1ldC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgbWVldHNDb25kaXRpb25Hcm91cHMoXG4gICAgY29uZGl0aW9uR3JvdXBzOiBBcnJheTxDb25kaXRpb25Hcm91cD4sXG4gICAgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAgfCBudWxsLFxuICAgIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0LFxuICAgIHJlcGVhdGVySXRlbT86IEZvcm1Hcm91cFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIWNvbmRpdGlvbkdyb3VwcyB8fCBjb25kaXRpb25Hcm91cHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbmRpdGlvbkdyb3Vwcy5ldmVyeSgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMubWVldHNDb25kaXRpb25Hcm91cCh4LCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhLCByZXBlYXRlckl0ZW0pID09PSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGNvbmRpdGlvbiBncm91cHMgY29uZGl0aW9ucyBoYXZlIGJlZW4gbWV0LlxuICAgKiBAcGFyYW0gY29uZGl0aW9uR3JvdXAgVGhlIGNvbmRpdGlvbiBncm91cCB0byBjaGVjay5cbiAgICogQHBhcmFtIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSBUaGUgY3VycmVudCBmb3JtIGRhdGEsIGNhbiBiZSBudWxsL3VuZGVmaW5lZC5cbiAgICogQHJldHVybnMgQSBib29sZWFuIHN0YXRpbmcgaWYgdGhlIGNvbmRpdGlvbiBncm91cCBjb25kaXRpb25zIGhhcyBiZWVuIG1ldC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgbWVldHNDb25kaXRpb25Hcm91cChcbiAgICBjb25kaXRpb25Hcm91cDogQ29uZGl0aW9uR3JvdXAsXG4gICAgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAgfCBudWxsLFxuICAgIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0LFxuICAgIHJlcGVhdGVySXRlbT86IEZvcm1Hcm91cFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIWNvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbnMgfHwgY29uZGl0aW9uR3JvdXAuY29uZGl0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcblxuICAgIGZvciAoY29uc3QgY29uZGl0aW9uIG9mIGNvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbnMpIHtcbiAgICAgIHJlc3VsdHMucHVzaCh0aGlzLm1lZXRzQ29uZGl0aW9uKGNvbmRpdGlvbiwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSwgcmVwZWF0ZXJJdGVtKSk7XG4gICAgfVxuXG4gICAgc3dpdGNoIChjb25kaXRpb25Hcm91cC5yZWxhdGlvbnNoaXApIHtcbiAgICAgIGNhc2UgQ29uZGl0aW9uUmVsYXRpb25zaGlwLkV2ZXJ5OlxuICAgICAgICByZXR1cm4gcmVzdWx0cy5ldmVyeSgoeCkgPT4ge1xuICAgICAgICAgIHJldHVybiB4ID09PSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIGNhc2UgQ29uZGl0aW9uUmVsYXRpb25zaGlwLkFueTpcbiAgICAgICAgcmV0dXJuICEhcmVzdWx0cy5maW5kKCh4KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHggPT09IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGNvbmRpdGlvbiBoYXMgYmVlbiBtZXQuXG4gICAqIEBwYXJhbSBjb25kaXRpb24gVGhlIGNvbmRpdGlvbiB0byBjaGVjay5cbiAgICogQHBhcmFtIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSBUaGUgY3VycmVudCBmb3JtIGRhdGEsIGNhbiBiZSBudWxsL3VuZGVmaW5lZC5cbiAgICogQHJldHVybnMgQSBib29sZWFuIHN0YXRpbmcgaWYgdGhlIGNvbmRpdGlvbiBncm91cCBjb25kaXRpb25zIGhhcyBiZWVuIG1ldC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgbWVldHNDb25kaXRpb24oXG4gICAgY29uZGl0aW9uOiBDb25kaXRpb24sXG4gICAgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAsXG4gICAgYWRkaXRpb25hbERhdGE/OiBPYmplY3QsXG4gICAgcmVwZWF0ZXJJdGVtPzogRm9ybUdyb3VwXG4gICk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHYxczogQXJyYXk8YW55PiA9IHRoaXMuZ2V0VmFsdWVzRm9yQXJyYXkoY29uZGl0aW9uLnYxcywgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSwgcmVwZWF0ZXJJdGVtKTtcbiAgICBjb25zdCB2MnM6IEFycmF5PGFueT4gPSB0aGlzLmdldFZhbHVlc0ZvckFycmF5KGNvbmRpdGlvbi52MnMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEsIHJlcGVhdGVySXRlbSk7XG5cbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICBzd2l0Y2ggKGNvbmRpdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIENvbmRpdGlvblR5cGUuRXhjbHVkZXM6XG4gICAgICAgIHJlc3VsdCA9ICB2MXMuZmlsdGVyKCh2MSkgPT4ge1xuICAgICAgICAgIHJldHVybiB2MnMuaW5kZXhPZih2MSkgPiAtMTtcbiAgICAgICAgfSkubGVuZ3RoID09PSAwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5JbmNsdWRlczpcbiAgICAgICAgcmVzdWx0ID0gdjFzLmZpbHRlcigodjEpID0+IHtcbiAgICAgICAgICByZXR1cm4gdjJzLmluZGV4T2YodjEpID4gLTE7XG4gICAgICAgIH0pLmxlbmd0aCAhPT0gMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBmb3IgKGxldCB2MiBvZiB2MnMpIHtcbiAgICAgICAgICBmb3IgKGxldCB2MSBvZiB2MXMpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoY29uZGl0aW9uLnR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBDb25kaXRpb25UeXBlLkVxdWFsVG86XG4gICAgICAgICAgICAgICAgdjEgPSB0aGlzLmdldFN0cmluZ0ZvclZhbHVlKHYxKTtcbiAgICAgICAgICAgICAgICB2MiA9IHRoaXMuZ2V0U3RyaW5nRm9yVmFsdWUodjIpO1xuICAgICAgICAgICAgICAgIGlmICh2MSA9PT0gdjIpIHsgcmVzdWx0ID0gdHJ1ZTsgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIENvbmRpdGlvblR5cGUuTm90RXF1YWxUbzpcbiAgICAgICAgICAgICAgICB2MSA9IHRoaXMuZ2V0U3RyaW5nRm9yVmFsdWUodjEpO1xuICAgICAgICAgICAgICAgIHYyID0gdGhpcy5nZXRTdHJpbmdGb3JWYWx1ZSh2Mik7XG4gICAgICAgICAgICAgICAgaWYgKHYxICE9PSB2MikgeyByZXN1bHQgPSB0cnVlOyB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5HcmVhdGVyVGhhbjpcbiAgICAgICAgICAgICAgICB2MSA9IHBhcnNlRmxvYXQodjEpO1xuICAgICAgICAgICAgICAgIHYyID0gcGFyc2VGbG9hdCh2Mik7XG4gICAgICAgICAgICAgICAgaWYgKHYxID49IHYyKSB7IHJlc3VsdCA9IHRydWU7IH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBDb25kaXRpb25UeXBlLkxlc3NUaGFuOlxuICAgICAgICAgICAgICAgIHYxID0gcGFyc2VGbG9hdCh2MSk7XG4gICAgICAgICAgICAgICAgdjIgPSBwYXJzZUZsb2F0KHYyKTtcbiAgICAgICAgICAgICAgICBpZiAodjEgPD0gdjIpIHsgcmVzdWx0ID0gdHJ1ZTsgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldFN0cmluZ0ZvclZhbHVlKHZhbHVlKSB7XG4gICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgY2FzZSBudWxsOlxuICAgICAgICByZXR1cm4gJ251bGwnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgdmFsdWVzIGZvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICAgKiBAcGFyYW0gcGF0aHMgVGhlIGFycmF5IG9mIHN0cmluZ3MgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHN0cmluZ3MvdmFsdWVzXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIGdldFZhbHVlc0ZvckFycmF5KFxuICAgIHBhdGhzOiBBcnJheTxzdHJpbmc+LFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwLFxuICAgIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0LFxuICAgIHJlcGVhdGVySXRlbT86IEZvcm1Hcm91cFxuICApOiBBcnJheTxhbnk+IHtcbiAgICBpZiAoY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtKSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgcGF0aCBvZiBwYXRocykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVGb3JTdHJpbmcocGF0aCwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSwgcmVwZWF0ZXJJdGVtKTtcbiAgICAgICAgdmFsdWVzLnB1c2godmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHBhdGhzO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgY3VycmVudCB2YWx1ZSBmb3IgYSBzdHJpbmcuXG4gICAqIEBwYXJhbSBwYXRoIFRoZSBzdHJpbmcgdmFsdWUgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEEgc3RyaW5nL3ZhbHVlLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBnZXRWYWx1ZUZvclN0cmluZyhcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAsXG4gICAgYWRkaXRpb25hbERhdGE/OiBPYmplY3QsXG4gICAgcmVwZWF0ZXJJdGVtPzogRm9ybUdyb3VwXG4gICkge1xuICAgIGlmIChjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0pIHtcbiAgICAgIGlmICghYWRkaXRpb25hbERhdGEpIHtcbiAgICAgICAgYWRkaXRpb25hbERhdGEgPSB7fTtcbiAgICAgIH1cblxuICAgICAgbGV0IGNvbnRyb2wgPSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0uZ2V0KHBhdGgudG9TdHJpbmcoKSk7XG5cbiAgICAgIGlmICgoIWNvbnRyb2wgfHwgIWNvbnRyb2wudmFsdWUpICYmIHJlcGVhdGVySXRlbSkge1xuICAgICAgICBjb25zb2xlLmxvZyhwYXRoKTtcbiAgICAgICAgY29uc29sZS5sb2coJ0dvdCByZXBlYXRlciBpdGVtIHZhbHVlIGZvciBzdHJpbmcnLCBwYXRoLnRvU3RyaW5nKCkpO1xuICAgICAgICBjb25zb2xlLmxvZyhyZXBlYXRlckl0ZW0pO1xuICAgICAgICBjb250cm9sID0gcmVwZWF0ZXJJdGVtLmdldChwYXRoLnRvU3RyaW5nKCkpO1xuICAgICAgICBjb25zb2xlLmxvZygnQ29udHJvbCB2YWx1ZScsIGNvbnRyb2wgPyBjb250cm9sLnZhbHVlIDogbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gY29udHJvbCA/IGNvbnRyb2wudmFsdWUgOiB0aGlzLmNvbnZlcnRTdHJpbmdUb1ZhbHVlKHBhdGgpO1xuICAgICAgcmV0dXJuIF8uZ2V0KGFkZGl0aW9uYWxEYXRhLCBwYXRoLCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRTdHJpbmdUb1ZhbHVlKHBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIHN0cmluZyB0byBhIHZhbHVlLlxuICAgKiBFZy4gdHJ1ZS9mYWxzZS5cbiAgICogQHBhcmFtIHBhdGggVGhlIHN0cmluZyB2YWx1ZSB0byBjaGVjayBmb3IgY29udmVyc2lvbjtcbiAgICogQHJldHVybnMgRWl0aGVyIGEgc3RyaW5nIG9yIHRoZSBjb252ZXJ0ZWQgdmFsdWUuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnRTdHJpbmdUb1ZhbHVlKHBhdGg6IHN0cmluZykge1xuICAgIHN3aXRjaCAocGF0aCkge1xuICAgICAgY2FzZSAndHJ1ZSc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSAnZmFsc2UnOlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBjYXNlICdudWxsJzpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
371
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2xvd2dyZWVuL2dnLXF1ZXN0aW9ubmFpcmUtdjIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOztBQU81QixNQUFNLE9BQU8sYUFBYTtJQUV4QixnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0lBU1YsY0FBYyxDQUFDLFFBQXdCLEVBQUUsd0JBQTBDLEVBQUUsY0FBdUI7O2NBQzNHLGdCQUFnQixHQUFHLEVBQUU7UUFDM0IsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUU7WUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLHdCQUF3QixFQUFFLGNBQWMsQ0FBQyxFQUFFO2dCQUNqRyxTQUFTO2FBQ1Y7O2tCQUVLLGlCQUFpQixHQUFHLEVBQUU7WUFDNUIsS0FBSyxNQUFNLFFBQVEsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO2dCQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxDQUFDLEVBQUU7b0JBQ2xHLFNBQVM7aUJBQ1Y7Z0JBRUQsd0ZBQXdGO2dCQUN4RixJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFOzswQkFDMUIsS0FBSyxHQUFHLG1CQUFBLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FB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O0lBU08sb0JBQW9CLENBQUMsSUFBWTtRQUN2QyxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssTUFBTTtnQkFDVCxPQUFPLElBQUksQ0FBQztZQUNkLEtBQUssT0FBTztnQkFDVixPQUFPLEtBQUssQ0FBQztZQUNmLEtBQUssTUFBTTtnQkFDVCxPQUFPLElBQUksQ0FBQztZQUNkO2dCQUNFLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDSCxDQUFDOzs7WUF4VkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2VjdGlvbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbmRpdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZGl0aW9uJztcbmltcG9ydCB7IENvbmRpdGlvbkdyb3VwIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25kaXRpb24tZ3JvdXAnO1xuaW1wb3J0IHsgQ29uZGl0aW9uVHlwZSB9IGZyb20gJy4uL2VudW1zL2NvbmRpdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgQ29uZGl0aW9uUmVsYXRpb25zaGlwIH0gZnJvbSAnLi4vZW51bXMvY29uZGl0aW9uLXJlbGF0aW9uc2hpcC5lbnVtJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9xdWVzdGlvbic7XG5pbXBvcnQgeyBSZXBlYXRlclF1ZXN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBlYXRlci1xdWVzdGlvbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlclNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYW4gYXJyYXkgb2Ygc2VjdGlvbnMgYmFzZWQgb24gdGhlaXIgY29uZGl0aW9uIGdyb3Vwcy5cbiAgICogQHBhcmFtIHNlY3Rpb25zIFRoZSBhcnJheSBvZiBzZWN0aW9ucyB0byBmaWx0ZXIuXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGZpbHRlcmVkIHNlY3Rpb25zIHdpdGggdGhlaXIgZmlsdGVyZWQgcXVlc3Rpb25zLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHVibGljIGZpbHRlclNlY3Rpb25zKHNlY3Rpb25zOiBBcnJheTxTZWN0aW9uPiwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAgfCBudWxsLCBhZGRpdGlvbmFsRGF0YT86IE9iamVjdCk6IEFycmF5PFNlY3Rpb24+IHtcbiAgICBjb25zdCBmaWx0ZXJlZFNlY3Rpb25zID0gW107XG4gICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHNlY3Rpb25zKSB7XG4gICAgICBpZiAoIXRoaXMubWVldHNDb25kaXRpb25Hcm91cHMoc2VjdGlvbi5jb25kaXRpb25Hcm91cHMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmaWx0ZXJlZFF1ZXN0aW9ucyA9IFtdO1xuICAgICAgZm9yIChjb25zdCBxdWVzdGlvbiBvZiBzZWN0aW9uLnF1ZXN0aW9ucykge1xuICAgICAgICBpZiAoIXRoaXMubWVldHNDb25kaXRpb25Hcm91cHMocXVlc3Rpb24uY29uZGl0aW9uR3JvdXBzLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgaXQncyBhIHJlcGVhdGVyIHdlIG5lZWQgdG8gZG8gYSBsb3Qgb2YgZXh0cmEgZmlsdGVyaW5nIGR1ZSB0byBwZXIgaXRlbSBjb25kaXRpb25zLlxuICAgICAgICBpZiAocXVlc3Rpb24udHlwZSA9PT0gJ3JlcGVhdGVyJykge1xuICAgICAgICAgIGNvbnN0IGl0ZW1zID0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldChbc2VjdGlvbi5uYW1lLCBxdWVzdGlvbi5uYW1lXSkgYXMgRm9ybUFycmF5O1xuXG4gICAgICAgICAgY29uc29sZS5sb2coJ0Zvcm0gQXJyYXknLCBpdGVtcyk7XG5cbiAgICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMuY29udHJvbHMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVwZWF0ZXJJdGVtIG9mIGl0ZW1zLmNvbnRyb2xzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkUmVwZWF0ZXJJdGVtUXVlc3Rpb25zOiBBcnJheTxSZXBlYXRlclF1ZXN0aW9uPiA9IFtdO1xuXG4gICAgICAgICAgICAgIGZvciAoY29uc3QgcmVwZWF0ZXJRdWVzdGlvbiBvZiBxdWVzdGlvbi5yZXBlYXRlclF1ZXN0aW9ucykge1xuXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0NoZWNraW5nIGNvbmRpdGlvbiBmb3IgcXVlc3Rpb24nLCByZXBlYXRlclF1ZXN0aW9uLm5hbWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lZXRzQ29uZGl0aW9ucyA9IHRoaXMubWVldHNDb25kaXRpb25Hcm91cHMoXG4gICAgICAgICAgICAgICAgICByZXBlYXRlclF1ZXN0aW9uLmNvbmRpdGlvbkdyb3VwcyxcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSxcbiAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxEYXRhLFxuICAgICAgICAgICAgICAgICAgcmVwZWF0ZXJJdGVtIGFzIEZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBpZiAobWVldHNDb25kaXRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnR2V0dGluZyBmZXRjaCBvcHRpb25zJyk7XG4gICAgICAgICAgICAgICAgICAvLyByZXBlYXRlclF1ZXN0aW9uLnNlbGVjdE9wdGlvbnMgPSB0aGlzLmdldEZldGNoT3B0aW9uc0ZvclF1ZXN0aW9uKFxuICAgICAgICAgICAgICAgICAgLy8gICByZXBlYXRlclF1ZXN0aW9uLFxuICAgICAgICAgICAgICAgICAgLy8gICBhZGRpdGlvbmFsRGF0YSxcbiAgICAgICAgICAgICAgICAgIC8vICAgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLFxuICAgICAgICAgICAgICAgICAgLy8gICByZXBlYXRlckl0ZW0gYXMgRm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAvLyApO1xuICAgICAgICAgICAgICAgICAgZmlsdGVyZWRSZXBlYXRlckl0ZW1RdWVzdGlvbnMucHVzaChyZXBlYXRlclF1ZXN0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGl0ZW1zLmNvbnRyb2xzLmluZGV4T2YocmVwZWF0ZXJJdGVtKTtcblxuICAgICAgICAgICAgICBpZiAoIXF1ZXN0aW9uLmZpbHRlcmVkUmVwZWF0ZXJRdWVzdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBxdWVzdGlvbi5maWx0ZXJlZFJlcGVhdGVyUXVlc3Rpb25zID0gW107XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBxdWVzdGlvbi5maWx0ZXJlZFJlcGVhdGVyUXVlc3Rpb25zW2luZGV4XSA9IGZpbHRlcmVkUmVwZWF0ZXJJdGVtUXVlc3Rpb25zO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgcXVlc3Rpb24uc2VsZWN0T3B0aW9ucyA9IHRoaXMuZ2V0RmV0Y2hPcHRpb25zRm9yUXVlc3Rpb24ocXVlc3Rpb24sIGFkZGl0aW9uYWxEYXRhLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0pO1xuXG4gICAgICAgIGZpbHRlcmVkUXVlc3Rpb25zLnB1c2gocXVlc3Rpb24pO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmlsdGVyZWRRdWVzdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBzZWN0aW9uLnF1ZXN0aW9ucyA9IGZpbHRlcmVkUXVlc3Rpb25zO1xuICAgICAgZmlsdGVyZWRTZWN0aW9ucy5wdXNoKHNlY3Rpb24pO1xuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXJlZFNlY3Rpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGZXRjaE9wdGlvbnNGb3JRdWVzdGlvbihcbiAgICBxdWVzdGlvbjogUXVlc3Rpb24gfCBSZXBlYXRlclF1ZXN0aW9uLFxuICAgIGFkZGl0aW9uYWxEYXRhLFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSxcbiAgICByZXBlYXRlckl0ZW0/OiBGb3JtR3JvdXBcbiAgKSB7XG5cbiAgICBpZiAoIXF1ZXN0aW9uLmZldGNoUGF0aCkge1xuICAgICAgcmV0dXJuIHF1ZXN0aW9uLnNlbGVjdE9wdGlvbnM7XG4gICAgfVxuXG4gICAgbGV0IG9wdGlvbnMgPSBhZGRpdGlvbmFsRGF0YVtxdWVzdGlvbi5mZXRjaFBhdGhdO1xuICAgIGlmIChxdWVzdGlvbi5mZXRjaFNlbGVjdG9ycyAmJiBxdWVzdGlvbi5mZXRjaFNlbGVjdG9ycy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldFZhbHVlc0ZvckFycmF5KHF1ZXN0aW9uLmZldGNoU2VsZWN0b3JzLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhLCByZXBlYXRlckl0ZW0pO1xuICAgICAgb3B0aW9ucyA9IF8uZ2V0KGFkZGl0aW9uYWxEYXRhW3F1ZXN0aW9uLmZldGNoUGF0aF0sIHZhbHVlcyk7XG4gICAgfVxuXG4gICAgb3B0aW9ucyA9IHRoaXMuZ2V0RmluYWxGZXRjaEFycmF5KG9wdGlvbnMpO1xuXG4gICAgaWYgKCFxdWVzdGlvbi5zZWxlY3RPcHRpb25zKSB7XG4gICAgICBxdWVzdGlvbi5zZWxlY3RPcHRpb25zID0gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1ZXN0aW9uLnNlbGVjdE9wdGlvbnMuY29uY2F0KG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaW5hbEZldGNoQXJyYXkoaXRlbXM6IGFueSk6IEFycmF5PE9iamVjdD4ge1xuICAgIGlmICghaXRlbXMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XG4gICAgICBpdGVtcyA9IF8ua2V5cyhpdGVtcyk7XG4gICAgfVxuICAgIGlmIChpdGVtcy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGNvbnZlcnRlZEFycmF5OiBBcnJheTxPYmplY3Q+ID0gW107XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIE9iamVjdCAmJiBpdGVtLnZhbHVlICYmIGl0ZW0ubGFiZWwpIHtcbiAgICAgICAgICBjb252ZXJ0ZWRBcnJheS5wdXNoKGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnZlcnRlZEFycmF5LnB1c2goe2xhYmVsOiB0aGlzLnVwcGVyY2FzZShpdGVtKSwgdmFsdWU6IGl0ZW19KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29udmVydGVkQXJyYXk7XG4gIH1cblxuICBwcml2YXRlIHVwcGVyY2FzZShpdGVtOiBhbnkpIHtcbiAgICByZXR1cm4gaXRlbS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGl0ZW0uc2xpY2UoMSk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgZWFjaCBjb25kaXRpb24gZ3JvdXBzIGNvbmRpdGlvbnMgaGF2ZSBiZWVuIG1ldC5cbiAgICogQHBhcmFtIGNvbmRpdGlvbkdyb3VwcyBUaGUgYXJyYXkgb2YgY29uZGl0aW9uIGdyb3Vwcy5cbiAgICogQHBhcmFtIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSBUaGUgY3VycmVudCBmb3JtIGRhdGEsIGNhbiBiZSBudWxsL3VuZGVmaW5lZC5cbiAgICogQHJldHVybnMgQSBib29sZWFuIHN0YXRpbmcgaWYgdGhlIGNvbmRpdGlvbiBncm91cHMgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uR3JvdXBzKFxuICAgIGNvbmRpdGlvbkdyb3VwczogQXJyYXk8Q29uZGl0aW9uR3JvdXA+LFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCxcbiAgICBhZGRpdGlvbmFsRGF0YT86IE9iamVjdCxcbiAgICByZXBlYXRlckl0ZW0/OiBGb3JtR3JvdXBcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjb25kaXRpb25Hcm91cHMgfHwgY29uZGl0aW9uR3JvdXBzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBjb25kaXRpb25Hcm91cHMuZXZlcnkoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLm1lZXRzQ29uZGl0aW9uR3JvdXAoeCwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSwgcmVwZWF0ZXJJdGVtKSA9PT0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBjb25kaXRpb24gZ3JvdXBzIGNvbmRpdGlvbnMgaGF2ZSBiZWVuIG1ldC5cbiAgICogQHBhcmFtIGNvbmRpdGlvbkdyb3VwIFRoZSBjb25kaXRpb24gZ3JvdXAgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEEgYm9vbGVhbiBzdGF0aW5nIGlmIHRoZSBjb25kaXRpb24gZ3JvdXAgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uR3JvdXAoXG4gICAgY29uZGl0aW9uR3JvdXA6IENvbmRpdGlvbkdyb3VwLFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCxcbiAgICBhZGRpdGlvbmFsRGF0YT86IE9iamVjdCxcbiAgICByZXBlYXRlckl0ZW0/OiBGb3JtR3JvdXBcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjb25kaXRpb25Hcm91cC5jb25kaXRpb25zIHx8IGNvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHRzID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBjb25kaXRpb25Hcm91cC5jb25kaXRpb25zKSB7XG4gICAgICByZXN1bHRzLnB1c2godGhpcy5tZWV0c0NvbmRpdGlvbihjb25kaXRpb24sIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEsIHJlcGVhdGVySXRlbSkpO1xuICAgIH1cblxuICAgIHN3aXRjaCAoY29uZGl0aW9uR3JvdXAucmVsYXRpb25zaGlwKSB7XG4gICAgICBjYXNlIENvbmRpdGlvblJlbGF0aW9uc2hpcC5FdmVyeTpcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZXZlcnkoKHgpID0+IHtcbiAgICAgICAgICByZXR1cm4geCA9PT0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICBjYXNlIENvbmRpdGlvblJlbGF0aW9uc2hpcC5Bbnk6XG4gICAgICAgIHJldHVybiAhIXJlc3VsdHMuZmluZCgoeCkgPT4ge1xuICAgICAgICAgIHJldHVybiB4ID09PSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBjb25kaXRpb24gaGFzIGJlZW4gbWV0LlxuICAgKiBAcGFyYW0gY29uZGl0aW9uIFRoZSBjb25kaXRpb24gdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEEgYm9vbGVhbiBzdGF0aW5nIGlmIHRoZSBjb25kaXRpb24gZ3JvdXAgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uKFxuICAgIGNvbmRpdGlvbjogQ29uZGl0aW9uLFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwLFxuICAgIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0LFxuICAgIHJlcGVhdGVySXRlbT86IEZvcm1Hcm91cFxuICApOiBib29sZWFuIHtcbiAgICBjb25zdCB2MXM6IEFycmF5PGFueT4gPSB0aGlzLmdldFZhbHVlc0ZvckFycmF5KGNvbmRpdGlvbi52MXMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEsIHJlcGVhdGVySXRlbSk7XG4gICAgY29uc3QgdjJzOiBBcnJheTxhbnk+ID0gdGhpcy5nZXRWYWx1ZXNGb3JBcnJheShjb25kaXRpb24udjJzLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhLCByZXBlYXRlckl0ZW0pO1xuXG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgc3dpdGNoIChjb25kaXRpb24udHlwZSkge1xuICAgICAgY2FzZSBDb25kaXRpb25UeXBlLkV4Y2x1ZGVzOlxuICAgICAgICByZXN1bHQgPSAgdjFzLmZpbHRlcigodjEpID0+IHtcbiAgICAgICAgICByZXR1cm4gdjJzLmluZGV4T2YodjEpID4gLTE7XG4gICAgICAgIH0pLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbmRpdGlvblR5cGUuSW5jbHVkZXM6XG4gICAgICAgIHJlc3VsdCA9IHYxcy5maWx0ZXIoKHYxKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHYycy5pbmRleE9mKHYxKSA+IC0xO1xuICAgICAgICB9KS5sZW5ndGggIT09IDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgZm9yIChsZXQgdjIgb2YgdjJzKSB7XG4gICAgICAgICAgZm9yIChsZXQgdjEgb2YgdjFzKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGNvbmRpdGlvbi50eXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5FcXVhbFRvOlxuICAgICAgICAgICAgICAgIHYxID0gdGhpcy5nZXRTdHJpbmdGb3JWYWx1ZSh2MSk7XG4gICAgICAgICAgICAgICAgdjIgPSB0aGlzLmdldFN0cmluZ0ZvclZhbHVlKHYyKTtcbiAgICAgICAgICAgICAgICBpZiAodjEgPT09IHYyKSB7IHJlc3VsdCA9IHRydWU7IH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBDb25kaXRpb25UeXBlLk5vdEVxdWFsVG86XG4gICAgICAgICAgICAgICAgdjEgPSB0aGlzLmdldFN0cmluZ0ZvclZhbHVlKHYxKTtcbiAgICAgICAgICAgICAgICB2MiA9IHRoaXMuZ2V0U3RyaW5nRm9yVmFsdWUodjIpO1xuICAgICAgICAgICAgICAgIGlmICh2MSAhPT0gdjIpIHsgcmVzdWx0ID0gdHJ1ZTsgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIENvbmRpdGlvblR5cGUuR3JlYXRlclRoYW46XG4gICAgICAgICAgICAgICAgdjEgPSBwYXJzZUZsb2F0KHYxKTtcbiAgICAgICAgICAgICAgICB2MiA9IHBhcnNlRmxvYXQodjIpO1xuICAgICAgICAgICAgICAgIGlmICh2MSA+PSB2MikgeyByZXN1bHQgPSB0cnVlOyB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5MZXNzVGhhbjpcbiAgICAgICAgICAgICAgICB2MSA9IHBhcnNlRmxvYXQodjEpO1xuICAgICAgICAgICAgICAgIHYyID0gcGFyc2VGbG9hdCh2Mik7XG4gICAgICAgICAgICAgICAgaWYgKHYxIDw9IHYyKSB7IHJlc3VsdCA9IHRydWU7IH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdHJpbmdGb3JWYWx1ZSh2YWx1ZSkge1xuICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgIGNhc2UgbnVsbDpcbiAgICAgICAgcmV0dXJuICdudWxsJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHZhbHVlcyBmb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAgICogQHBhcmFtIHBhdGhzIFRoZSBhcnJheSBvZiBzdHJpbmdzIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBzdHJpbmdzL3ZhbHVlc1xuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBnZXRWYWx1ZXNGb3JBcnJheShcbiAgICBwYXRoczogQXJyYXk8c3RyaW5nPixcbiAgICBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCxcbiAgICBhZGRpdGlvbmFsRGF0YT86IE9iamVjdCxcbiAgICByZXBlYXRlckl0ZW0/OiBGb3JtR3JvdXBcbiAgKTogQXJyYXk8YW55PiB7XG4gICAgaWYgKGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSkge1xuICAgICAgY29uc3QgdmFsdWVzID0gW107XG4gICAgICBmb3IgKGNvbnN0IHBhdGggb2YgcGF0aHMpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlRm9yU3RyaW5nKHBhdGgsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEsIHJlcGVhdGVySXRlbSk7XG4gICAgICAgIHZhbHVlcy5wdXNoKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXRocztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGN1cnJlbnQgdmFsdWUgZm9yIGEgc3RyaW5nLlxuICAgKiBAcGFyYW0gcGF0aCBUaGUgc3RyaW5nIHZhbHVlIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBIHN0cmluZy92YWx1ZS5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgZ2V0VmFsdWVGb3JTdHJpbmcoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwLFxuICAgIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0LFxuICAgIHJlcGVhdGVySXRlbT86IEZvcm1Hcm91cFxuICApIHtcbiAgICBpZiAoY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtKSB7XG4gICAgICBpZiAoIWFkZGl0aW9uYWxEYXRhKSB7XG4gICAgICAgIGFkZGl0aW9uYWxEYXRhID0ge307XG4gICAgICB9XG5cbiAgICAgIGxldCBjb250cm9sID0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldChwYXRoKTtcblxuICAgICAgaWYgKCghY29udHJvbCB8fCAhY29udHJvbC52YWx1ZSkgJiYgcmVwZWF0ZXJJdGVtKSB7XG4gICAgICAgIGNvbnRyb2wgPSByZXBlYXRlckl0ZW0uZ2V0KHBhdGgpO1xuICAgICAgICBjb25zb2xlLmxvZygnUmVwZWF0ZXIgQ29udHJvbCcsIGNvbnRyb2wpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wgPyBjb250cm9sLnZhbHVlIDogdGhpcy5jb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoKTtcbiAgICAgIHJldHVybiBfLmdldChhZGRpdGlvbmFsRGF0YSwgcGF0aCwgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBzdHJpbmcgdG8gYSB2YWx1ZS5cbiAgICogRWcuIHRydWUvZmFsc2UuXG4gICAqIEBwYXJhbSBwYXRoIFRoZSBzdHJpbmcgdmFsdWUgdG8gY2hlY2sgZm9yIGNvbnZlcnNpb247XG4gICAqIEByZXR1cm5zIEVpdGhlciBhIHN0cmluZyBvciB0aGUgY29udmVydGVkIHZhbHVlLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHBhdGgpIHtcbiAgICAgIGNhc2UgJ3RydWUnOlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGNhc2UgJ2ZhbHNlJzpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgY2FzZSAnbnVsbCc6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -58,13 +58,11 @@ var FilterService = /** @class */ (function () {
|
|
|
58
58
|
var items = (/** @type {?} */ (currentQuestionnaireForm.get([section.name, question.name])));
|
|
59
59
|
console.log('Form Array', items);
|
|
60
60
|
if (items && items.controls) {
|
|
61
|
-
console.log('There are items and controls');
|
|
62
61
|
try {
|
|
63
62
|
for (var _g = (e_3 = void 0, tslib_1.__values(items.controls)), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
64
63
|
var repeaterItem = _h.value;
|
|
65
64
|
/** @type {?} */
|
|
66
65
|
var filteredRepeaterItemQuestions = [];
|
|
67
|
-
console.log('Filtering repeater item questions');
|
|
68
66
|
try {
|
|
69
67
|
for (var _j = (e_4 = void 0, tslib_1.__values(question.repeaterQuestions)), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
70
68
|
var repeaterQuestion = _k.value;
|
|
@@ -72,8 +70,13 @@ var FilterService = /** @class */ (function () {
|
|
|
72
70
|
/** @type {?} */
|
|
73
71
|
var meetsConditions = this.meetsConditionGroups(repeaterQuestion.conditionGroups, currentQuestionnaireForm, additionalData, (/** @type {?} */ (repeaterItem)));
|
|
74
72
|
if (meetsConditions) {
|
|
75
|
-
console.log('Getting fetch options');
|
|
76
|
-
repeaterQuestion.selectOptions = this.getFetchOptionsForQuestion(
|
|
73
|
+
// console.log('Getting fetch options');
|
|
74
|
+
// repeaterQuestion.selectOptions = this.getFetchOptionsForQuestion(
|
|
75
|
+
// repeaterQuestion,
|
|
76
|
+
// additionalData,
|
|
77
|
+
// currentQuestionnaireForm,
|
|
78
|
+
// repeaterItem as FormGroup
|
|
79
|
+
// );
|
|
77
80
|
filteredRepeaterItemQuestions.push(repeaterQuestion);
|
|
78
81
|
}
|
|
79
82
|
}
|
|
@@ -543,13 +546,10 @@ var FilterService = /** @class */ (function () {
|
|
|
543
546
|
additionalData = {};
|
|
544
547
|
}
|
|
545
548
|
/** @type {?} */
|
|
546
|
-
var control = currentQuestionnaireForm.get(path
|
|
549
|
+
var control = currentQuestionnaireForm.get(path);
|
|
547
550
|
if ((!control || !control.value) && repeaterItem) {
|
|
548
|
-
|
|
549
|
-
console.log('
|
|
550
|
-
console.log(repeaterItem);
|
|
551
|
-
control = repeaterItem.get(path.toString());
|
|
552
|
-
console.log('Control value', control ? control.value : null);
|
|
551
|
+
control = repeaterItem.get(path);
|
|
552
|
+
console.log('Repeater Control', control);
|
|
553
553
|
}
|
|
554
554
|
/** @type {?} */
|
|
555
555
|
var value = control ? control.value : this.convertStringToValue(path);
|
|
@@ -605,4 +605,4 @@ var FilterService = /** @class */ (function () {
|
|
|
605
605
|
return FilterService;
|
|
606
606
|
}());
|
|
607
607
|
export { FilterService };
|
|
608
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2xvd2dyZWVuL2dnLXF1ZXN0aW9ubmFpcmUtdjIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7QUFJNUI7SUFLRTtJQUFnQixDQUFDO0lBRWpCOzs7Ozs7T0FNRzs7Ozs7Ozs7O0lBQ0ksc0NBQWM7Ozs7Ozs7O0lBQXJCLFVBQXNCLFFBQXdCLEVBQUUsd0JBQTBDLEVBQUUsY0FBdUI7OztZQUMzRyxnQkFBZ0IsR0FBRyxFQUFFOztZQUMzQixLQUFzQixJQUFBLGFBQUEsaUJBQUEsUUFBUSxDQUFBLGtDQUFBLHdEQUFFO2dCQUEzQixJQUFNLE9BQU8scUJBQUE7Z0JBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxjQUFjLENBQUMsRUFBRTtvQkFDakcsU0FBUztpQkFDVjs7b0JBRUssaUJBQWlCLEdBQUcsRUFBRTs7b0JBQzVCLEtBQXVCLElBQUEsb0JBQUEsaUJBQUEsT0FBTyxDQUFDLFNBQVMsQ0FBQSxDQUFBLGdCQUFBLDRCQUFFO3dCQUFyQyxJQUFNLFFBQVEsV0FBQTt3QkFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLHdCQUF3QixFQUFFLGNBQWMsQ0FBQyxFQUFFOzRCQUNsRyxTQUFTO3lCQUNWO3dCQUVELHdGQUF3Rjt3QkFDeEYsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFL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SUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzNDO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7Ozs7Ozs7OztJQUNLLDRDQUFvQjs7Ozs7Ozs7SUFBNUIsVUFBNkIsSUFBWTtRQUN2QyxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssTUFBTTtnQkFDVCxPQUFPLElBQUksQ0FBQztZQUNkLEtBQUssT0FBTztnQkFDVixPQUFPLEtBQUssQ0FBQztZQUNmLEtBQUssTUFBTTtnQkFDVCxPQUFPLElBQUksQ0FBQztZQUNkO2dCQUNFLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDSCxDQUFDOztnQkEvVkYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7Ozs7d0JBYkQ7Q0EyV0MsQUFoV0QsSUFnV0M7U0E3VlksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NlY3Rpb24nO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb25kaXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmRpdGlvbic7XG5pbXBvcnQgeyBDb25kaXRpb25Hcm91cCB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZGl0aW9uLWdyb3VwJztcbmltcG9ydCB7IENvbmRpdGlvblR5cGUgfSBmcm9tICcuLi9lbnVtcy9jb25kaXRpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IENvbmRpdGlvblJlbGF0aW9uc2hpcCB9IGZyb20gJy4uL2VudW1zL2NvbmRpdGlvbi1yZWxhdGlvbnNoaXAuZW51bSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBRdWVzdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcXVlc3Rpb24nO1xuaW1wb3J0IHsgUmVwZWF0ZXJRdWVzdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwZWF0ZXItcXVlc3Rpb24nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFuIGFycmF5IG9mIHNlY3Rpb25zIGJhc2VkIG9uIHRoZWlyIGNvbmRpdGlvbiBncm91cHMuXG4gICAqIEBwYXJhbSBzZWN0aW9ucyBUaGUgYXJyYXkgb2Ygc2VjdGlvbnMgdG8gZmlsdGVyLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBmaWx0ZXJlZCBzZWN0aW9ucyB3aXRoIHRoZWlyIGZpbHRlcmVkIHF1ZXN0aW9ucy5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBmaWx0ZXJTZWN0aW9ucyhzZWN0aW9uczogQXJyYXk8U2VjdGlvbj4sIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCwgYWRkaXRpb25hbERhdGE/OiBPYmplY3QpOiBBcnJheTxTZWN0aW9uPiB7XG4gICAgY29uc3QgZmlsdGVyZWRTZWN0aW9ucyA9IFtdO1xuICAgIGZvciAoY29uc3Qgc2VjdGlvbiBvZiBzZWN0aW9ucykge1xuICAgICAgaWYgKCF0aGlzLm1lZXRzQ29uZGl0aW9uR3JvdXBzKHNlY3Rpb24uY29uZGl0aW9uR3JvdXBzLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsdGVyZWRRdWVzdGlvbnMgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2Ygc2VjdGlvbi5xdWVzdGlvbnMpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1lZXRzQ29uZGl0aW9uR3JvdXBzKHF1ZXN0aW9uLmNvbmRpdGlvbkdyb3VwcywgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGl0J3MgYSByZXBlYXRlciB3ZSBuZWVkIHRvIGRvIGEgbG90IG9mIGV4dHJhIGZpbHRlcmluZyBkdWUgdG8gcGVyIGl0ZW0gY29uZGl0aW9ucy5cbiAgICAgICAgaWYgKHF1ZXN0aW9uLnR5cGUgPT09ICdyZXBlYXRlcicpIHtcbiAgICAgICAgICBjb25zdCBpdGVtcyA9IGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybS5nZXQoW3NlY3Rpb24ubmFtZSwgcXVlc3Rpb24ubmFtZV0pIGFzIEZvcm1BcnJheTtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKCdGb3JtIEFycmF5JywgaXRlbXMpO1xuXG4gICAgICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmNvbnRyb2xzKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnVGhlcmUgYXJlIGl0ZW1zIGFuZCBjb250cm9scycpO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlcGVhdGVySXRlbSBvZiBpdGVtcy5jb250cm9scykge1xuICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZFJlcGVhdGVySXRlbVF1ZXN0aW9uczogQXJyYXk8UmVwZWF0ZXJRdWVzdGlvbj4gPSBbXTtcblxuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnRmlsdGVyaW5nIHJlcGVhdGVyIGl0ZW0gcXVlc3Rpb25zJyk7XG5cbiAgICAgICAgICAgICAgZm9yIChjb25zdCByZXBlYXRlclF1ZXN0aW9uIG9mIHF1ZXN0aW9uLnJlcGVhdGVyUXVlc3Rpb25zKSB7XG5cbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQ2hlY2tpbmcgY29uZGl0aW9uIGZvciBxdWVzdGlvbicsIHJlcGVhdGVyUXVlc3Rpb24ubmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVldHNDb25kaXRpb25zID0gdGhpcy5tZWV0c0NvbmRpdGlvbkdyb3VwcyhcbiAgICAgICAgICAgICAgICAgIHJlcGVhdGVyUXVlc3Rpb24uY29uZGl0aW9uR3JvdXBzLFxuICAgICAgICAgICAgICAgICAgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLFxuICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbERhdGEsXG4gICAgICAgICAgICAgICAgICByZXBlYXRlckl0ZW0gYXMgRm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGlmIChtZWV0c0NvbmRpdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdHZXR0aW5nIGZldGNoIG9wdGlvbnMnKTtcbiAgICAgICAgICAgICAgICAgIHJlcGVhdGVyUXVlc3Rpb24uc2VsZWN0T3B0aW9ucyA9IHRoaXMuZ2V0RmV0Y2hPcHRpb25zRm9yUXVlc3Rpb24oXG4gICAgICAgICAgICAgICAgICAgIHJlcGVhdGVyUXVlc3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxEYXRhLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sXG4gICAgICAgICAgICAgICAgICAgIHJlcGVhdGVySXRlbSBhcyBGb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBmaWx0ZXJlZFJlcGVhdGVySXRlbVF1ZXN0aW9ucy5wdXNoKHJlcGVhdGVyUXVlc3Rpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gaXRlbXMuY29udHJvbHMuaW5kZXhPZihyZXBlYXRlckl0ZW0pO1xuXG4gICAgICAgICAgICAgIGlmICghcXVlc3Rpb24uZmlsdGVyZWRSZXBlYXRlclF1ZXN0aW9ucykge1xuICAgICAgICAgICAgICAgIHF1ZXN0aW9uLmZpbHRlcmVkUmVwZWF0ZXJRdWVzdGlvbnMgPSBbXTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHF1ZXN0aW9uLmZpbHRlcmVkUmVwZWF0ZXJRdWVzdGlvbnNbaW5kZXhdID0gZmlsdGVyZWRSZXBlYXRlckl0ZW1RdWVzdGlvbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBxdWVzdGlvbi5zZWxlY3RPcHRpb25zID0gdGhpcy5nZXRGZXRjaE9wdGlvbnNGb3JRdWVzdGlvbihxdWVzdGlvbiwgYWRkaXRpb25hbERhdGEsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSk7XG5cbiAgICAgICAgZmlsdGVyZWRRdWVzdGlvbnMucHVzaChxdWVzdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGlmIChmaWx0ZXJlZFF1ZXN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHNlY3Rpb24ucXVlc3Rpb25zID0gZmlsdGVyZWRRdWVzdGlvbnM7XG4gICAgICBmaWx0ZXJlZFNlY3Rpb25zLnB1c2goc2VjdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlcmVkU2VjdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIGdldEZldGNoT3B0aW9uc0ZvclF1ZXN0aW9uKFxuICAgIHF1ZXN0aW9uOiBRdWVzdGlvbiB8IFJlcGVhdGVyUXVlc3Rpb24sXG4gICAgYWRkaXRpb25hbERhdGEsXG4gICAgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLFxuICAgIHJlcGVhdGVySXRlbT86IEZvcm1Hcm91cFxuICApIHtcblxuICAgIGlmICghcXVlc3Rpb24uZmV0Y2hQYXRoKSB7XG4gICAgICByZXR1cm4gcXVlc3Rpb24uc2VsZWN0T3B0aW9ucztcbiAgICB9XG5cbiAgICBsZXQgb3B0aW9ucyA9IGFkZGl0aW9uYWxEYXRhW3F1ZXN0aW9uLmZldGNoUGF0aF07XG4gICAgaWYgKHF1ZXN0aW9uLmZldGNoU2VsZWN0b3JzICYmIHF1ZXN0aW9uLmZldGNoU2VsZWN0b3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZ2V0VmFsdWVzRm9yQXJyYXkocXVlc3Rpb24uZmV0Y2hTZWxlY3RvcnMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEsIHJlcGVhdGVySXRlbSk7XG4gICAgICBvcHRpb25zID0gXy5nZXQoYWRkaXRpb25hbERhdGFbcXVlc3Rpb24uZmV0Y2hQYXRoXSwgdmFsdWVzKTtcbiAgICB9XG5cbiAgICBvcHRpb25zID0gdGhpcy5nZXRGaW5hbEZldGNoQXJyYXkob3B0aW9ucyk7XG5cbiAgICBpZiAoIXF1ZXN0aW9uLnNlbGVjdE9wdGlvbnMpIHtcbiAgICAgIHF1ZXN0aW9uLnNlbGVjdE9wdGlvbnMgPSBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gcXVlc3Rpb24uc2VsZWN0T3B0aW9ucy5jb25jYXQob3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbmFsRmV0Y2hBcnJheShpdGVtczogYW55KTogQXJyYXk8T2JqZWN0PiB7XG4gICAgaWYgKCFpdGVtcykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheShpdGVtcykpIHtcbiAgICAgIGl0ZW1zID0gXy5rZXlzKGl0ZW1zKTtcbiAgICB9XG4gICAgaWYgKGl0ZW1zLmxlbmd0aCA8PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgY29udmVydGVkQXJyYXk6IEFycmF5PE9iamVjdD4gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgT2JqZWN0ICYmIGl0ZW0udmFsdWUgJiYgaXRlbS5sYWJlbCkge1xuICAgICAgICAgIGNvbnZlcnRlZEFycmF5LnB1c2goaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udmVydGVkQXJyYXkucHVzaCh7bGFiZWw6IHRoaXMudXBwZXJjYXNlKGl0ZW0pLCB2YWx1ZTogaXRlbX0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb252ZXJ0ZWRBcnJheTtcbiAgfVxuXG4gIHByaXZhdGUgdXBwZXJjYXNlKGl0ZW06IGFueSkge1xuICAgIHJldHVybiBpdGVtLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgaXRlbS5zbGljZSgxKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBlYWNoIGNvbmRpdGlvbiBncm91cHMgY29uZGl0aW9ucyBoYXZlIGJlZW4gbWV0LlxuICAgKiBAcGFyYW0gY29uZGl0aW9uR3JvdXBzIFRoZSBhcnJheSBvZiBjb25kaXRpb24gZ3JvdXBzLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gc3RhdGluZyBpZiB0aGUgY29uZGl0aW9uIGdyb3VwcyBjb25kaXRpb25zIGhhcyBiZWVuIG1ldC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgbWVldHNDb25kaXRpb25Hcm91cHMoXG4gICAgY29uZGl0aW9uR3JvdXBzOiBBcnJheTxDb25kaXRpb25Hcm91cD4sXG4gICAgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAgfCBudWxsLFxuICAgIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0LFxuICAgIHJlcGVhdGVySXRlbT86IEZvcm1Hcm91cFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIWNvbmRpdGlvbkdyb3VwcyB8fCBjb25kaXRpb25Hcm91cHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbmRpdGlvbkdyb3Vwcy5ldmVyeSgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMubWVldHNDb25kaXRpb25Hcm91cCh4LCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhLCByZXBlYXRlckl0ZW0pID09PSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGNvbmRpdGlvbiBncm91cHMgY29uZGl0aW9ucyBoYXZlIGJlZW4gbWV0LlxuICAgKiBAcGFyYW0gY29uZGl0aW9uR3JvdXAgVGhlIGNvbmRpdGlvbiBncm91cCB0byBjaGVjay5cbiAgICogQHBhcmFtIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSBUaGUgY3VycmVudCBmb3JtIGRhdGEsIGNhbiBiZSBudWxsL3VuZGVmaW5lZC5cbiAgICogQHJldHVybnMgQSBib29sZWFuIHN0YXRpbmcgaWYgdGhlIGNvbmRpdGlvbiBncm91cCBjb25kaXRpb25zIGhhcyBiZWVuIG1ldC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgbWVldHNDb25kaXRpb25Hcm91cChcbiAgICBjb25kaXRpb25Hcm91cDogQ29uZGl0aW9uR3JvdXAsXG4gICAgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAgfCBudWxsLFxuICAgIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0LFxuICAgIHJlcGVhdGVySXRlbT86IEZvcm1Hcm91cFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIWNvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbnMgfHwgY29uZGl0aW9uR3JvdXAuY29uZGl0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcblxuICAgIGZvciAoY29uc3QgY29uZGl0aW9uIG9mIGNvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbnMpIHtcbiAgICAgIHJlc3VsdHMucHVzaCh0aGlzLm1lZXRzQ29uZGl0aW9uKGNvbmRpdGlvbiwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSwgcmVwZWF0ZXJJdGVtKSk7XG4gICAgfVxuXG4gICAgc3dpdGNoIChjb25kaXRpb25Hcm91cC5yZWxhdGlvbnNoaXApIHtcbiAgICAgIGNhc2UgQ29uZGl0aW9uUmVsYXRpb25zaGlwLkV2ZXJ5OlxuICAgICAgICByZXR1cm4gcmVzdWx0cy5ldmVyeSgoeCkgPT4ge1xuICAgICAgICAgIHJldHVybiB4ID09PSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIGNhc2UgQ29uZGl0aW9uUmVsYXRpb25zaGlwLkFueTpcbiAgICAgICAgcmV0dXJuICEhcmVzdWx0cy5maW5kKCh4KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHggPT09IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGNvbmRpdGlvbiBoYXMgYmVlbiBtZXQuXG4gICAqIEBwYXJhbSBjb25kaXRpb24gVGhlIGNvbmRpdGlvbiB0byBjaGVjay5cbiAgICogQHBhcmFtIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSBUaGUgY3VycmVudCBmb3JtIGRhdGEsIGNhbiBiZSBudWxsL3VuZGVmaW5lZC5cbiAgICogQHJldHVybnMgQSBib29sZWFuIHN0YXRpbmcgaWYgdGhlIGNvbmRpdGlvbiBncm91cCBjb25kaXRpb25zIGhhcyBiZWVuIG1ldC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgbWVldHNDb25kaXRpb24oXG4gICAgY29uZGl0aW9uOiBDb25kaXRpb24sXG4gICAgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAsXG4gICAgYWRkaXRpb25hbERhdGE/OiBPYmplY3QsXG4gICAgcmVwZWF0ZXJJdGVtPzogRm9ybUdyb3VwXG4gICk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHYxczogQXJyYXk8YW55PiA9IHRoaXMuZ2V0VmFsdWVzRm9yQXJyYXkoY29uZGl0aW9uLnYxcywgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSwgcmVwZWF0ZXJJdGVtKTtcbiAgICBjb25zdCB2MnM6IEFycmF5PGFueT4gPSB0aGlzLmdldFZhbHVlc0ZvckFycmF5KGNvbmRpdGlvbi52MnMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEsIHJlcGVhdGVySXRlbSk7XG5cbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICBzd2l0Y2ggKGNvbmRpdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIENvbmRpdGlvblR5cGUuRXhjbHVkZXM6XG4gICAgICAgIHJlc3VsdCA9ICB2MXMuZmlsdGVyKCh2MSkgPT4ge1xuICAgICAgICAgIHJldHVybiB2MnMuaW5kZXhPZih2MSkgPiAtMTtcbiAgICAgICAgfSkubGVuZ3RoID09PSAwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5JbmNsdWRlczpcbiAgICAgICAgcmVzdWx0ID0gdjFzLmZpbHRlcigodjEpID0+IHtcbiAgICAgICAgICByZXR1cm4gdjJzLmluZGV4T2YodjEpID4gLTE7XG4gICAgICAgIH0pLmxlbmd0aCAhPT0gMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBmb3IgKGxldCB2MiBvZiB2MnMpIHtcbiAgICAgICAgICBmb3IgKGxldCB2MSBvZiB2MXMpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoY29uZGl0aW9uLnR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBDb25kaXRpb25UeXBlLkVxdWFsVG86XG4gICAgICAgICAgICAgICAgdjEgPSB0aGlzLmdldFN0cmluZ0ZvclZhbHVlKHYxKTtcbiAgICAgICAgICAgICAgICB2MiA9IHRoaXMuZ2V0U3RyaW5nRm9yVmFsdWUodjIpO1xuICAgICAgICAgICAgICAgIGlmICh2MSA9PT0gdjIpIHsgcmVzdWx0ID0gdHJ1ZTsgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIENvbmRpdGlvblR5cGUuTm90RXF1YWxUbzpcbiAgICAgICAgICAgICAgICB2MSA9IHRoaXMuZ2V0U3RyaW5nRm9yVmFsdWUodjEpO1xuICAgICAgICAgICAgICAgIHYyID0gdGhpcy5nZXRTdHJpbmdGb3JWYWx1ZSh2Mik7XG4gICAgICAgICAgICAgICAgaWYgKHYxICE9PSB2MikgeyByZXN1bHQgPSB0cnVlOyB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5HcmVhdGVyVGhhbjpcbiAgICAgICAgICAgICAgICB2MSA9IHBhcnNlRmxvYXQodjEpO1xuICAgICAgICAgICAgICAgIHYyID0gcGFyc2VGbG9hdCh2Mik7XG4gICAgICAgICAgICAgICAgaWYgKHYxID49IHYyKSB7IHJlc3VsdCA9IHRydWU7IH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBDb25kaXRpb25UeXBlLkxlc3NUaGFuOlxuICAgICAgICAgICAgICAgIHYxID0gcGFyc2VGbG9hdCh2MSk7XG4gICAgICAgICAgICAgICAgdjIgPSBwYXJzZUZsb2F0KHYyKTtcbiAgICAgICAgICAgICAgICBpZiAodjEgPD0gdjIpIHsgcmVzdWx0ID0gdHJ1ZTsgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldFN0cmluZ0ZvclZhbHVlKHZhbHVlKSB7XG4gICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgY2FzZSBudWxsOlxuICAgICAgICByZXR1cm4gJ251bGwnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgdmFsdWVzIGZvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICAgKiBAcGFyYW0gcGF0aHMgVGhlIGFycmF5IG9mIHN0cmluZ3MgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHN0cmluZ3MvdmFsdWVzXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIGdldFZhbHVlc0ZvckFycmF5KFxuICAgIHBhdGhzOiBBcnJheTxzdHJpbmc+LFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwLFxuICAgIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0LFxuICAgIHJlcGVhdGVySXRlbT86IEZvcm1Hcm91cFxuICApOiBBcnJheTxhbnk+IHtcbiAgICBpZiAoY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtKSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgcGF0aCBvZiBwYXRocykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVGb3JTdHJpbmcocGF0aCwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSwgcmVwZWF0ZXJJdGVtKTtcbiAgICAgICAgdmFsdWVzLnB1c2godmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHBhdGhzO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgY3VycmVudCB2YWx1ZSBmb3IgYSBzdHJpbmcuXG4gICAqIEBwYXJhbSBwYXRoIFRoZSBzdHJpbmcgdmFsdWUgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEEgc3RyaW5nL3ZhbHVlLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBnZXRWYWx1ZUZvclN0cmluZyhcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAsXG4gICAgYWRkaXRpb25hbERhdGE/OiBPYmplY3QsXG4gICAgcmVwZWF0ZXJJdGVtPzogRm9ybUdyb3VwXG4gICkge1xuICAgIGlmIChjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0pIHtcbiAgICAgIGlmICghYWRkaXRpb25hbERhdGEpIHtcbiAgICAgICAgYWRkaXRpb25hbERhdGEgPSB7fTtcbiAgICAgIH1cblxuICAgICAgbGV0IGNvbnRyb2wgPSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0uZ2V0KHBhdGgudG9TdHJpbmcoKSk7XG5cbiAgICAgIGlmICgoIWNvbnRyb2wgfHwgIWNvbnRyb2wudmFsdWUpICYmIHJlcGVhdGVySXRlbSkge1xuICAgICAgICBjb25zb2xlLmxvZyhwYXRoKTtcbiAgICAgICAgY29uc29sZS5sb2coJ0dvdCByZXBlYXRlciBpdGVtIHZhbHVlIGZvciBzdHJpbmcnLCBwYXRoLnRvU3RyaW5nKCkpO1xuICAgICAgICBjb25zb2xlLmxvZyhyZXBlYXRlckl0ZW0pO1xuICAgICAgICBjb250cm9sID0gcmVwZWF0ZXJJdGVtLmdldChwYXRoLnRvU3RyaW5nKCkpO1xuICAgICAgICBjb25zb2xlLmxvZygnQ29udHJvbCB2YWx1ZScsIGNvbnRyb2wgPyBjb250cm9sLnZhbHVlIDogbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gY29udHJvbCA/IGNvbnRyb2wudmFsdWUgOiB0aGlzLmNvbnZlcnRTdHJpbmdUb1ZhbHVlKHBhdGgpO1xuICAgICAgcmV0dXJuIF8uZ2V0KGFkZGl0aW9uYWxEYXRhLCBwYXRoLCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRTdHJpbmdUb1ZhbHVlKHBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIHN0cmluZyB0byBhIHZhbHVlLlxuICAgKiBFZy4gdHJ1ZS9mYWxzZS5cbiAgICogQHBhcmFtIHBhdGggVGhlIHN0cmluZyB2YWx1ZSB0byBjaGVjayBmb3IgY29udmVyc2lvbjtcbiAgICogQHJldHVybnMgRWl0aGVyIGEgc3RyaW5nIG9yIHRoZSBjb252ZXJ0ZWQgdmFsdWUuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnRTdHJpbmdUb1ZhbHVlKHBhdGg6IHN0cmluZykge1xuICAgIHN3aXRjaCAocGF0aCkge1xuICAgICAgY2FzZSAndHJ1ZSc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSAnZmFsc2UnOlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBjYXNlICdudWxsJzpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
608
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2xvd2dyZWVuL2dnLXF1ZXN0aW9ubmFpcmUtdjIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7QUFJNUI7SUFLRTtJQUFnQixDQUFDO0lBRWpCOzs7Ozs7T0FNRzs7Ozs7Ozs7O0lBQ0ksc0NBQWM7Ozs7Ozs7O0lBQXJCLFVBQXNCLFFBQXdCLEVBQUUsd0JBQTBDLEVBQUUsY0FBdUI7OztZQUMzRyxnQkFBZ0IsR0FBRyxFQUFFOztZQUMzQixLQUFzQixJQUFBLGFBQUEsaUJBQUEsUUFBUSxDQUFBLGtDQUFBLHdEQUFFO2dCQUEzQixJQUFNLE9BQU8scUJBQUE7Z0JBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxjQUFjLENBQUMsRUFBRTtvQkFDakcsU0FBUztpQkFDVjs7b0JBRUssaUJBQWlCLEdBQUcsRUFBRTs7b0JBQzVCLEtBQXVCLElBQUEsb0JBQUEsaUJBQUEsT0FBTyxDQUFDLFNBQVMsQ0FBQSxDQUFBLGdCQUFBLDRCQUFFO3dCQUFyQyxJQUFNLFFBQVEsV0FBQTt3QkFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLHdCQUF3QixFQUFFLGNBQWMsQ0FBQyxFQUFFOzRCQUNsRyxTQUFTO3lCQUNWO3dCQUVELHdGQUF3Rjt3QkFDeEYsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFL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RDtDQW9XQyxBQXpWRCxJQXlWQztTQXRWWSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2VjdGlvbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbmRpdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZGl0aW9uJztcbmltcG9ydCB7IENvbmRpdGlvbkdyb3VwIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25kaXRpb24tZ3JvdXAnO1xuaW1wb3J0IHsgQ29uZGl0aW9uVHlwZSB9IGZyb20gJy4uL2VudW1zL2NvbmRpdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgQ29uZGl0aW9uUmVsYXRpb25zaGlwIH0gZnJvbSAnLi4vZW51bXMvY29uZGl0aW9uLXJlbGF0aW9uc2hpcC5lbnVtJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9xdWVzdGlvbic7XG5pbXBvcnQgeyBSZXBlYXRlclF1ZXN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBlYXRlci1xdWVzdGlvbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlclNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYW4gYXJyYXkgb2Ygc2VjdGlvbnMgYmFzZWQgb24gdGhlaXIgY29uZGl0aW9uIGdyb3Vwcy5cbiAgICogQHBhcmFtIHNlY3Rpb25zIFRoZSBhcnJheSBvZiBzZWN0aW9ucyB0byBmaWx0ZXIuXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGZpbHRlcmVkIHNlY3Rpb25zIHdpdGggdGhlaXIgZmlsdGVyZWQgcXVlc3Rpb25zLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHVibGljIGZpbHRlclNlY3Rpb25zKHNlY3Rpb25zOiBBcnJheTxTZWN0aW9uPiwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAgfCBudWxsLCBhZGRpdGlvbmFsRGF0YT86IE9iamVjdCk6IEFycmF5PFNlY3Rpb24+IHtcbiAgICBjb25zdCBmaWx0ZXJlZFNlY3Rpb25zID0gW107XG4gICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHNlY3Rpb25zKSB7XG4gICAgICBpZiAoIXRoaXMubWVldHNDb25kaXRpb25Hcm91cHMoc2VjdGlvbi5jb25kaXRpb25Hcm91cHMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmaWx0ZXJlZFF1ZXN0aW9ucyA9IFtdO1xuICAgICAgZm9yIChjb25zdCBxdWVzdGlvbiBvZiBzZWN0aW9uLnF1ZXN0aW9ucykge1xuICAgICAgICBpZiAoIXRoaXMubWVldHNDb25kaXRpb25Hcm91cHMocXVlc3Rpb24uY29uZGl0aW9uR3JvdXBzLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgaXQncyBhIHJlcGVhdGVyIHdlIG5lZWQgdG8gZG8gYSBsb3Qgb2YgZXh0cmEgZmlsdGVyaW5nIGR1ZSB0byBwZXIgaXRlbSBjb25kaXRpb25zLlxuICAgICAgICBpZiAocXVlc3Rpb24udHlwZSA9PT0gJ3JlcGVhdGVyJykge1xuICAgICAgICAgIGNvbnN0IGl0ZW1zID0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldChbc2VjdGlvbi5uYW1lLCBxdWVzdGlvbi5uYW1lXSkgYXMgRm9ybUFycmF5O1xuXG4gICAgICAgICAgY29uc29sZS5sb2coJ0Zvcm0gQXJyYXknLCBpdGVtcyk7XG5cbiAgICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMuY29udHJvbHMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVwZWF0ZXJJdGVtIG9mIGl0ZW1zLmNvbnRyb2xzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkUmVwZWF0ZXJJdGVtUXVlc3Rpb25zOiBBcnJheTxSZXBlYXRlclF1ZXN0aW9uPiA9IFtdO1xuXG4gICAgICAgICAgICAgIGZvciAoY29uc3QgcmVwZWF0ZXJRdWVzdGlvbiBvZiBxdWVzdGlvbi5yZXBlYXRlclF1ZXN0aW9ucykge1xuXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0NoZWNraW5nIGNvbmRpdGlvbiBmb3IgcXVlc3Rpb24nLCByZXBlYXRlclF1ZXN0aW9uLm5hbWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lZXRzQ29uZGl0aW9ucyA9IHRoaXMubWVldHNDb25kaXRpb25Hcm91cHMoXG4gICAgICAgICAgICAgICAgICByZXBlYXRlclF1ZXN0aW9uLmNvbmRpdGlvbkdyb3VwcyxcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSxcbiAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxEYXRhLFxuICAgICAgICAgICAgICAgICAgcmVwZWF0ZXJJdGVtIGFzIEZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBpZiAobWVldHNDb25kaXRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnR2V0dGluZyBmZXRjaCBvcHRpb25zJyk7XG4gICAgICAgICAgICAgICAgICAvLyByZXBlYXRlclF1ZXN0aW9uLnNlbGVjdE9wdGlvbnMgPSB0aGlzLmdldEZldGNoT3B0aW9uc0ZvclF1ZXN0aW9uKFxuICAgICAgICAgICAgICAgICAgLy8gICByZXBlYXRlclF1ZXN0aW9uLFxuICAgICAgICAgICAgICAgICAgLy8gICBhZGRpdGlvbmFsRGF0YSxcbiAgICAgICAgICAgICAgICAgIC8vICAgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLFxuICAgICAgICAgICAgICAgICAgLy8gICByZXBlYXRlckl0ZW0gYXMgRm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAvLyApO1xuICAgICAgICAgICAgICAgICAgZmlsdGVyZWRSZXBlYXRlckl0ZW1RdWVzdGlvbnMucHVzaChyZXBlYXRlclF1ZXN0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGl0ZW1zLmNvbnRyb2xzLmluZGV4T2YocmVwZWF0ZXJJdGVtKTtcblxuICAgICAgICAgICAgICBpZiAoIXF1ZXN0aW9uLmZpbHRlcmVkUmVwZWF0ZXJRdWVzdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBxdWVzdGlvbi5maWx0ZXJlZFJlcGVhdGVyUXVlc3Rpb25zID0gW107XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBxdWVzdGlvbi5maWx0ZXJlZFJlcGVhdGVyUXVlc3Rpb25zW2luZGV4XSA9IGZpbHRlcmVkUmVwZWF0ZXJJdGVtUXVlc3Rpb25zO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgcXVlc3Rpb24uc2VsZWN0T3B0aW9ucyA9IHRoaXMuZ2V0RmV0Y2hPcHRpb25zRm9yUXVlc3Rpb24ocXVlc3Rpb24sIGFkZGl0aW9uYWxEYXRhLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0pO1xuXG4gICAgICAgIGZpbHRlcmVkUXVlc3Rpb25zLnB1c2gocXVlc3Rpb24pO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmlsdGVyZWRRdWVzdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBzZWN0aW9uLnF1ZXN0aW9ucyA9IGZpbHRlcmVkUXVlc3Rpb25zO1xuICAgICAgZmlsdGVyZWRTZWN0aW9ucy5wdXNoKHNlY3Rpb24pO1xuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXJlZFNlY3Rpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGZXRjaE9wdGlvbnNGb3JRdWVzdGlvbihcbiAgICBxdWVzdGlvbjogUXVlc3Rpb24gfCBSZXBlYXRlclF1ZXN0aW9uLFxuICAgIGFkZGl0aW9uYWxEYXRhLFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSxcbiAgICByZXBlYXRlckl0ZW0/OiBGb3JtR3JvdXBcbiAgKSB7XG5cbiAgICBpZiAoIXF1ZXN0aW9uLmZldGNoUGF0aCkge1xuICAgICAgcmV0dXJuIHF1ZXN0aW9uLnNlbGVjdE9wdGlvbnM7XG4gICAgfVxuXG4gICAgbGV0IG9wdGlvbnMgPSBhZGRpdGlvbmFsRGF0YVtxdWVzdGlvbi5mZXRjaFBhdGhdO1xuICAgIGlmIChxdWVzdGlvbi5mZXRjaFNlbGVjdG9ycyAmJiBxdWVzdGlvbi5mZXRjaFNlbGVjdG9ycy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldFZhbHVlc0ZvckFycmF5KHF1ZXN0aW9uLmZldGNoU2VsZWN0b3JzLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhLCByZXBlYXRlckl0ZW0pO1xuICAgICAgb3B0aW9ucyA9IF8uZ2V0KGFkZGl0aW9uYWxEYXRhW3F1ZXN0aW9uLmZldGNoUGF0aF0sIHZhbHVlcyk7XG4gICAgfVxuXG4gICAgb3B0aW9ucyA9IHRoaXMuZ2V0RmluYWxGZXRjaEFycmF5KG9wdGlvbnMpO1xuXG4gICAgaWYgKCFxdWVzdGlvbi5zZWxlY3RPcHRpb25zKSB7XG4gICAgICBxdWVzdGlvbi5zZWxlY3RPcHRpb25zID0gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1ZXN0aW9uLnNlbGVjdE9wdGlvbnMuY29uY2F0KG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaW5hbEZldGNoQXJyYXkoaXRlbXM6IGFueSk6IEFycmF5PE9iamVjdD4ge1xuICAgIGlmICghaXRlbXMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XG4gICAgICBpdGVtcyA9IF8ua2V5cyhpdGVtcyk7XG4gICAgfVxuICAgIGlmIChpdGVtcy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGNvbnZlcnRlZEFycmF5OiBBcnJheTxPYmplY3Q+ID0gW107XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIE9iamVjdCAmJiBpdGVtLnZhbHVlICYmIGl0ZW0ubGFiZWwpIHtcbiAgICAgICAgICBjb252ZXJ0ZWRBcnJheS5wdXNoKGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnZlcnRlZEFycmF5LnB1c2goe2xhYmVsOiB0aGlzLnVwcGVyY2FzZShpdGVtKSwgdmFsdWU6IGl0ZW19KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29udmVydGVkQXJyYXk7XG4gIH1cblxuICBwcml2YXRlIHVwcGVyY2FzZShpdGVtOiBhbnkpIHtcbiAgICByZXR1cm4gaXRlbS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGl0ZW0uc2xpY2UoMSk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgZWFjaCBjb25kaXRpb24gZ3JvdXBzIGNvbmRpdGlvbnMgaGF2ZSBiZWVuIG1ldC5cbiAgICogQHBhcmFtIGNvbmRpdGlvbkdyb3VwcyBUaGUgYXJyYXkgb2YgY29uZGl0aW9uIGdyb3Vwcy5cbiAgICogQHBhcmFtIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSBUaGUgY3VycmVudCBmb3JtIGRhdGEsIGNhbiBiZSBudWxsL3VuZGVmaW5lZC5cbiAgICogQHJldHVybnMgQSBib29sZWFuIHN0YXRpbmcgaWYgdGhlIGNvbmRpdGlvbiBncm91cHMgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uR3JvdXBzKFxuICAgIGNvbmRpdGlvbkdyb3VwczogQXJyYXk8Q29uZGl0aW9uR3JvdXA+LFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCxcbiAgICBhZGRpdGlvbmFsRGF0YT86IE9iamVjdCxcbiAgICByZXBlYXRlckl0ZW0/OiBGb3JtR3JvdXBcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjb25kaXRpb25Hcm91cHMgfHwgY29uZGl0aW9uR3JvdXBzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBjb25kaXRpb25Hcm91cHMuZXZlcnkoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLm1lZXRzQ29uZGl0aW9uR3JvdXAoeCwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSwgcmVwZWF0ZXJJdGVtKSA9PT0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBjb25kaXRpb24gZ3JvdXBzIGNvbmRpdGlvbnMgaGF2ZSBiZWVuIG1ldC5cbiAgICogQHBhcmFtIGNvbmRpdGlvbkdyb3VwIFRoZSBjb25kaXRpb24gZ3JvdXAgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEEgYm9vbGVhbiBzdGF0aW5nIGlmIHRoZSBjb25kaXRpb24gZ3JvdXAgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uR3JvdXAoXG4gICAgY29uZGl0aW9uR3JvdXA6IENvbmRpdGlvbkdyb3VwLFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCxcbiAgICBhZGRpdGlvbmFsRGF0YT86IE9iamVjdCxcbiAgICByZXBlYXRlckl0ZW0/OiBGb3JtR3JvdXBcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjb25kaXRpb25Hcm91cC5jb25kaXRpb25zIHx8IGNvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHRzID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBjb25kaXRpb25Hcm91cC5jb25kaXRpb25zKSB7XG4gICAgICByZXN1bHRzLnB1c2godGhpcy5tZWV0c0NvbmRpdGlvbihjb25kaXRpb24sIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEsIHJlcGVhdGVySXRlbSkpO1xuICAgIH1cblxuICAgIHN3aXRjaCAoY29uZGl0aW9uR3JvdXAucmVsYXRpb25zaGlwKSB7XG4gICAgICBjYXNlIENvbmRpdGlvblJlbGF0aW9uc2hpcC5FdmVyeTpcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZXZlcnkoKHgpID0+IHtcbiAgICAgICAgICByZXR1cm4geCA9PT0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICBjYXNlIENvbmRpdGlvblJlbGF0aW9uc2hpcC5Bbnk6XG4gICAgICAgIHJldHVybiAhIXJlc3VsdHMuZmluZCgoeCkgPT4ge1xuICAgICAgICAgIHJldHVybiB4ID09PSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBjb25kaXRpb24gaGFzIGJlZW4gbWV0LlxuICAgKiBAcGFyYW0gY29uZGl0aW9uIFRoZSBjb25kaXRpb24gdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEEgYm9vbGVhbiBzdGF0aW5nIGlmIHRoZSBjb25kaXRpb24gZ3JvdXAgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uKFxuICAgIGNvbmRpdGlvbjogQ29uZGl0aW9uLFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwLFxuICAgIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0LFxuICAgIHJlcGVhdGVySXRlbT86IEZvcm1Hcm91cFxuICApOiBib29sZWFuIHtcbiAgICBjb25zdCB2MXM6IEFycmF5PGFueT4gPSB0aGlzLmdldFZhbHVlc0ZvckFycmF5KGNvbmRpdGlvbi52MXMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEsIHJlcGVhdGVySXRlbSk7XG4gICAgY29uc3QgdjJzOiBBcnJheTxhbnk+ID0gdGhpcy5nZXRWYWx1ZXNGb3JBcnJheShjb25kaXRpb24udjJzLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhLCByZXBlYXRlckl0ZW0pO1xuXG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgc3dpdGNoIChjb25kaXRpb24udHlwZSkge1xuICAgICAgY2FzZSBDb25kaXRpb25UeXBlLkV4Y2x1ZGVzOlxuICAgICAgICByZXN1bHQgPSAgdjFzLmZpbHRlcigodjEpID0+IHtcbiAgICAgICAgICByZXR1cm4gdjJzLmluZGV4T2YodjEpID4gLTE7XG4gICAgICAgIH0pLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbmRpdGlvblR5cGUuSW5jbHVkZXM6XG4gICAgICAgIHJlc3VsdCA9IHYxcy5maWx0ZXIoKHYxKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHYycy5pbmRleE9mKHYxKSA+IC0xO1xuICAgICAgICB9KS5sZW5ndGggIT09IDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgZm9yIChsZXQgdjIgb2YgdjJzKSB7XG4gICAgICAgICAgZm9yIChsZXQgdjEgb2YgdjFzKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGNvbmRpdGlvbi50eXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5FcXVhbFRvOlxuICAgICAgICAgICAgICAgIHYxID0gdGhpcy5nZXRTdHJpbmdGb3JWYWx1ZSh2MSk7XG4gICAgICAgICAgICAgICAgdjIgPSB0aGlzLmdldFN0cmluZ0ZvclZhbHVlKHYyKTtcbiAgICAgICAgICAgICAgICBpZiAodjEgPT09IHYyKSB7IHJlc3VsdCA9IHRydWU7IH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBDb25kaXRpb25UeXBlLk5vdEVxdWFsVG86XG4gICAgICAgICAgICAgICAgdjEgPSB0aGlzLmdldFN0cmluZ0ZvclZhbHVlKHYxKTtcbiAgICAgICAgICAgICAgICB2MiA9IHRoaXMuZ2V0U3RyaW5nRm9yVmFsdWUodjIpO1xuICAgICAgICAgICAgICAgIGlmICh2MSAhPT0gdjIpIHsgcmVzdWx0ID0gdHJ1ZTsgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIENvbmRpdGlvblR5cGUuR3JlYXRlclRoYW46XG4gICAgICAgICAgICAgICAgdjEgPSBwYXJzZUZsb2F0KHYxKTtcbiAgICAgICAgICAgICAgICB2MiA9IHBhcnNlRmxvYXQodjIpO1xuICAgICAgICAgICAgICAgIGlmICh2MSA+PSB2MikgeyByZXN1bHQgPSB0cnVlOyB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5MZXNzVGhhbjpcbiAgICAgICAgICAgICAgICB2MSA9IHBhcnNlRmxvYXQodjEpO1xuICAgICAgICAgICAgICAgIHYyID0gcGFyc2VGbG9hdCh2Mik7XG4gICAgICAgICAgICAgICAgaWYgKHYxIDw9IHYyKSB7IHJlc3VsdCA9IHRydWU7IH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdHJpbmdGb3JWYWx1ZSh2YWx1ZSkge1xuICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgIGNhc2UgbnVsbDpcbiAgICAgICAgcmV0dXJuICdudWxsJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHZhbHVlcyBmb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAgICogQHBhcmFtIHBhdGhzIFRoZSBhcnJheSBvZiBzdHJpbmdzIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBzdHJpbmdzL3ZhbHVlc1xuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBnZXRWYWx1ZXNGb3JBcnJheShcbiAgICBwYXRoczogQXJyYXk8c3RyaW5nPixcbiAgICBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCxcbiAgICBhZGRpdGlvbmFsRGF0YT86IE9iamVjdCxcbiAgICByZXBlYXRlckl0ZW0/OiBGb3JtR3JvdXBcbiAgKTogQXJyYXk8YW55PiB7XG4gICAgaWYgKGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSkge1xuICAgICAgY29uc3QgdmFsdWVzID0gW107XG4gICAgICBmb3IgKGNvbnN0IHBhdGggb2YgcGF0aHMpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlRm9yU3RyaW5nKHBhdGgsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEsIHJlcGVhdGVySXRlbSk7XG4gICAgICAgIHZhbHVlcy5wdXNoKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXRocztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGN1cnJlbnQgdmFsdWUgZm9yIGEgc3RyaW5nLlxuICAgKiBAcGFyYW0gcGF0aCBUaGUgc3RyaW5nIHZhbHVlIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBIHN0cmluZy92YWx1ZS5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgZ2V0VmFsdWVGb3JTdHJpbmcoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwLFxuICAgIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0LFxuICAgIHJlcGVhdGVySXRlbT86IEZvcm1Hcm91cFxuICApIHtcbiAgICBpZiAoY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtKSB7XG4gICAgICBpZiAoIWFkZGl0aW9uYWxEYXRhKSB7XG4gICAgICAgIGFkZGl0aW9uYWxEYXRhID0ge307XG4gICAgICB9XG5cbiAgICAgIGxldCBjb250cm9sID0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldChwYXRoKTtcblxuICAgICAgaWYgKCghY29udHJvbCB8fCAhY29udHJvbC52YWx1ZSkgJiYgcmVwZWF0ZXJJdGVtKSB7XG4gICAgICAgIGNvbnRyb2wgPSByZXBlYXRlckl0ZW0uZ2V0KHBhdGgpO1xuICAgICAgICBjb25zb2xlLmxvZygnUmVwZWF0ZXIgQ29udHJvbCcsIGNvbnRyb2wpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wgPyBjb250cm9sLnZhbHVlIDogdGhpcy5jb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoKTtcbiAgICAgIHJldHVybiBfLmdldChhZGRpdGlvbmFsRGF0YSwgcGF0aCwgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBzdHJpbmcgdG8gYSB2YWx1ZS5cbiAgICogRWcuIHRydWUvZmFsc2UuXG4gICAqIEBwYXJhbSBwYXRoIFRoZSBzdHJpbmcgdmFsdWUgdG8gY2hlY2sgZm9yIGNvbnZlcnNpb247XG4gICAqIEByZXR1cm5zIEVpdGhlciBhIHN0cmluZyBvciB0aGUgY29udmVydGVkIHZhbHVlLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHBhdGgpIHtcbiAgICAgIGNhc2UgJ3RydWUnOlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGNhc2UgJ2ZhbHNlJzpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgY2FzZSAnbnVsbCc6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -77,18 +77,21 @@ class FilterService {
|
|
|
77
77
|
const items = (/** @type {?} */ (currentQuestionnaireForm.get([section.name, question.name])));
|
|
78
78
|
console.log('Form Array', items);
|
|
79
79
|
if (items && items.controls) {
|
|
80
|
-
console.log('There are items and controls');
|
|
81
80
|
for (const repeaterItem of items.controls) {
|
|
82
81
|
/** @type {?} */
|
|
83
82
|
const filteredRepeaterItemQuestions = [];
|
|
84
|
-
console.log('Filtering repeater item questions');
|
|
85
83
|
for (const repeaterQuestion of question.repeaterQuestions) {
|
|
86
84
|
console.log('Checking condition for question', repeaterQuestion.name);
|
|
87
85
|
/** @type {?} */
|
|
88
86
|
const meetsConditions = this.meetsConditionGroups(repeaterQuestion.conditionGroups, currentQuestionnaireForm, additionalData, (/** @type {?} */ (repeaterItem)));
|
|
89
87
|
if (meetsConditions) {
|
|
90
|
-
console.log('Getting fetch options');
|
|
91
|
-
repeaterQuestion.selectOptions = this.getFetchOptionsForQuestion(
|
|
88
|
+
// console.log('Getting fetch options');
|
|
89
|
+
// repeaterQuestion.selectOptions = this.getFetchOptionsForQuestion(
|
|
90
|
+
// repeaterQuestion,
|
|
91
|
+
// additionalData,
|
|
92
|
+
// currentQuestionnaireForm,
|
|
93
|
+
// repeaterItem as FormGroup
|
|
94
|
+
// );
|
|
92
95
|
filteredRepeaterItemQuestions.push(repeaterQuestion);
|
|
93
96
|
}
|
|
94
97
|
}
|
|
@@ -364,13 +367,10 @@ class FilterService {
|
|
|
364
367
|
additionalData = {};
|
|
365
368
|
}
|
|
366
369
|
/** @type {?} */
|
|
367
|
-
let control = currentQuestionnaireForm.get(path
|
|
370
|
+
let control = currentQuestionnaireForm.get(path);
|
|
368
371
|
if ((!control || !control.value) && repeaterItem) {
|
|
369
|
-
|
|
370
|
-
console.log('
|
|
371
|
-
console.log(repeaterItem);
|
|
372
|
-
control = repeaterItem.get(path.toString());
|
|
373
|
-
console.log('Control value', control ? control.value : null);
|
|
372
|
+
control = repeaterItem.get(path);
|
|
373
|
+
console.log('Repeater Control', control);
|
|
374
374
|
}
|
|
375
375
|
/** @type {?} */
|
|
376
376
|
const value = control ? control.value : this.convertStringToValue(path);
|