@muraai/mnl-form 0.0.1-alpha-2edbad0 → 0.0.1-alpha-10829d9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/formly-lib/formly-lib.component.mjs +6 -3
- package/esm2022/lib/services/scoring.service.mjs +19 -7
- package/esm2022/lib/types/mu-helper-text.type.mjs +78 -26
- package/fesm2022/muraai-mnl-form.mjs +98 -31
- package/fesm2022/muraai-mnl-form.mjs.map +1 -1
- package/lib/formly-lib/formly-lib.component.d.ts +2 -1
- package/lib/types/mu-helper-text.type.d.ts +7 -0
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import { CommonModule } from '@angular/common';
|
|
|
2
2
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
3
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
4
|
import { CommonsModule } from '@muraai/mnl-commons';
|
|
5
|
-
import { FormlyModule
|
|
5
|
+
import { FormlyModule } from '@ngx-formly/core';
|
|
6
6
|
import { FormlyMatCheckboxModule } from '@ngx-formly/material/checkbox';
|
|
7
7
|
import { FormlyMatInputModule } from '@ngx-formly/material/input';
|
|
8
8
|
import { FormlyMatTextAreaModule } from '@ngx-formly/material/textarea';
|
|
@@ -37,6 +37,7 @@ export class MnlFormLibComponent {
|
|
|
37
37
|
...this.options.formState,
|
|
38
38
|
showOldValues: this.showOldValues,
|
|
39
39
|
oldValues: this.oldValues,
|
|
40
|
+
helperModel: this.helperModel,
|
|
40
41
|
},
|
|
41
42
|
};
|
|
42
43
|
}
|
|
@@ -142,7 +143,7 @@ export class MnlFormLibComponent {
|
|
|
142
143
|
});
|
|
143
144
|
}
|
|
144
145
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MnlFormLibComponent, deps: [{ token: i1.TranslateService }, { token: i2.ScoringService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
145
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: MnlFormLibComponent, isStandalone: true, selector: "mnl-form", inputs: { readonly: "readonly", form: "form", fields: "fields", model: "model", options: "options", userRoles: "userRoles", userCountries: "userCountries", oldValues: "oldValues", showOldValues: "showOldValues" }, outputs: { noOfTabs: "noOfTabs", scoreChange: "scoreChange" }, ngImport: i0, template: "@if(formPrepared) {\n<formly-form\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n [options]=\"options\"\n (modelChange)=\"onModelChange($event)\"\n class=\"mnl-formly-form\"\n></formly-form>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: CommonsModule }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i3.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: FormlyMatTextAreaModule }, { kind: "ngmodule", type: FormlyMatInputModule }, { kind: "ngmodule", type: FormlyMatCheckboxModule }, { kind: "ngmodule", type: FormlyMatRadioModule }] }); }
|
|
146
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: MnlFormLibComponent, isStandalone: true, selector: "mnl-form", inputs: { readonly: "readonly", form: "form", fields: "fields", model: "model", helperModel: "helperModel", options: "options", userRoles: "userRoles", userCountries: "userCountries", oldValues: "oldValues", showOldValues: "showOldValues" }, outputs: { noOfTabs: "noOfTabs", scoreChange: "scoreChange" }, ngImport: i0, template: "@if(formPrepared) {\n<formly-form\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n [options]=\"options\"\n (modelChange)=\"onModelChange($event)\"\n class=\"mnl-formly-form\"\n></formly-form>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: CommonsModule }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i3.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: FormlyMatTextAreaModule }, { kind: "ngmodule", type: FormlyMatInputModule }, { kind: "ngmodule", type: FormlyMatCheckboxModule }, { kind: "ngmodule", type: FormlyMatRadioModule }] }); }
|
|
146
147
|
}
|
|
147
148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MnlFormLibComponent, decorators: [{
|
|
148
149
|
type: Component,
|
|
@@ -166,6 +167,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
166
167
|
type: Input
|
|
167
168
|
}], model: [{
|
|
168
169
|
type: Input
|
|
170
|
+
}], helperModel: [{
|
|
171
|
+
type: Input
|
|
169
172
|
}], options: [{
|
|
170
173
|
type: Input
|
|
171
174
|
}], userRoles: [{
|
|
@@ -181,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
181
184
|
}], scoreChange: [{
|
|
182
185
|
type: Output
|
|
183
186
|
}] } });
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWxpYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLWxpYi9zcmMvbGliL2Zvcm1seS1saWIvZm9ybWx5LWxpYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLWxpYi9zcmMvbGliL2Zvcm1seS1saWIvZm9ybWx5LWxpYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWEsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFFTCxZQUFZLEdBQ2IsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBcUJsRSxNQUFNLE9BQU8sbUJBQW1CO0lBb0M5QixZQUNVLGdCQUFrQyxFQUNsQyxPQUF1QjtRQUR2QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBcENqQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBcUJqQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVM5QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFdEMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUtaLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsT0FBTyxHQUFHO2dCQUNiLFNBQVMsRUFBRTtvQkFDVCxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUztvQkFDekIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO29CQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7aUJBQzFCO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsb0NBQW9DLENBQUMsTUFBVztRQUM5QyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDNUIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLHdCQUF3QixFQUFFLENBQUM7Z0JBQzVDLEtBQUssQ0FBQyxLQUFLLEdBQUc7b0JBQ1osTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7d0JBQ3JCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7d0JBQ3RDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQzt3QkFFM0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7NEJBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO3dCQUN2RCxDQUFDOzZCQUFNLENBQUM7NEJBQ04sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7Z0NBQzdDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDOzRCQUN2RCxDQUFDLENBQUMsQ0FBQzt3QkFDTCxDQUFDO29CQUNILENBQUM7aUJBQ0YsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsV0FBZ0IsRUFBRSxLQUFVLEVBQUUsT0FBWTtRQUMzRCxJQUFJLFdBQVcsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN6QixXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QyxDQUFDO1lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUMsY0FBcUIsRUFBRSxFQUFFO2dCQUM3RCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUMvQyxXQUFXLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEQsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFDRCxxQkFBcUIsQ0FBQyxNQUFXO1FBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUM1QixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckMsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxxQkFBcUIsQ0FDbkIsTUFBaUM7UUFFakMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0MsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssQ0FBQyxLQUFLLEdBQUc7b0JBQ1osR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO29CQUN0QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7aUJBQ3hCLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxvQ0FBb0MsQ0FBQyxNQUFpQztRQUNwRSxPQUFPLE1BQU07YUFDVixHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNsQixJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDakQsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsb0NBQW9DLENBQzFELEtBQUssQ0FBQyxVQUFVLENBQ2pCLENBQUM7WUFDSixDQUFDO1lBQ0QsMkNBQTJDO1lBQzNDLDhFQUE4RTtZQUM5RSxZQUFZO1lBQ1osa0RBQWtEO1lBQ2xELDRGQUE0RjtZQUM1RixZQUFZO1lBRVosTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksVUFBVSxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbkMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsb0NBQW9DLENBQzFELEtBQUssQ0FBQyxVQUFVLENBQ2pCLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxVQUFVLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDO2dCQUN6QyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDL0IsQ0FBQztZQUNELE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxrQ0FBa0MsQ0FBQyxNQUFXO1FBQzVDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDekMsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBM0tVLG1CQUFtQjttR0FBbkIsbUJBQW1CLHlWQ25DaEMseU5BVUEseUREV0ksWUFBWSw4QkFDWixhQUFhLDhCQUNiLFlBQVksNktBQ1osbUJBQW1CLDhCQUNuQixXQUFXLDhCQUNYLGVBQWUsOEJBQ2YsdUJBQXVCLDhCQUN2QixvQkFBb0IsOEJBQ3BCLHVCQUF1Qiw4QkFDdkIsb0JBQW9COzs0RkFLWCxtQkFBbUI7a0JBbEIvQixTQUFTOytCQUNFLFVBQVUsY0FDUixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLHVCQUF1Qjt3QkFDdkIsb0JBQW9CO3FCQUNyQjtrSEFNRCxRQUFRO3NCQURQLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxNQUFNO2dCQUlQLFNBQVM7c0JBRFIsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25zTW9kdWxlIH0gZnJvbSAnQG11cmFhaS9tbmwtY29tbW9ucyc7XG5pbXBvcnQge1xuICBGb3JtbHlGb3JtT3B0aW9ucyxcbiAgRm9ybWx5TW9kdWxlLFxufSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEZvcm1seU1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgRm9ybWx5TWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBGb3JtbHlNYXRUZXh0QXJlYU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L21hdGVyaWFsL3RleHRhcmVhJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEN1c3RvbUZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2N1c3RvbS1mb3JtLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEZvcm1seU1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwvcmFkaW8nO1xuaW1wb3J0IHsgU2NvcmluZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zY29yaW5nLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtbmwtZm9ybScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ29tbW9uc01vZHVsZSxcbiAgICBGb3JtbHlNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgRm9ybWx5TWF0VGV4dEFyZWFNb2R1bGUsXG4gICAgRm9ybWx5TWF0SW5wdXRNb2R1bGUsXG4gICAgRm9ybWx5TWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgRm9ybWx5TWF0UmFkaW9Nb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtbHktbGliLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Zvcm1seS1saWIuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBNbmxGb3JtTGliQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgcmVhZG9ubHkgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBmb3JtITogRm9ybUdyb3VwO1xuXG4gIEBJbnB1dCgpXG4gIGZpZWxkcyE6IEN1c3RvbUZvcm1seUZpZWxkQ29uZmlnW107XG5cbiAgQElucHV0KClcbiAgbW9kZWw6IGFueTtcblxuICBASW5wdXQoKVxuICBvcHRpb25zITogRm9ybWx5Rm9ybU9wdGlvbnM7XG5cbiAgQElucHV0KClcbiAgdXNlclJvbGVzITogc3RyaW5nW107XG5cbiAgQElucHV0KClcbiAgdXNlckNvdW50cmllcyE6IHN0cmluZ1tdO1xuXG4gIEBPdXRwdXQoKVxuICBub09mVGFicyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKVxuICBvbGRWYWx1ZXM6IGFueTtcblxuICBASW5wdXQoKVxuICBzaG93T2xkVmFsdWVzITogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgXG4gIHNjb3JlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgZm9ybVByZXBhcmVkID0gZmFsc2U7XG4gIHRvdGFsVGFicyA9IDA7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHNjb3Jpbmc6IFNjb3JpbmdTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZXREZWZhdWx0TGFuZygnZW4nKTtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWVsZHMpIHtcbiAgICAgIHRoaXMuYXBwbHlSZWFkb25seVRvRmllbGRzKHRoaXMuZmllbGRzKTtcbiAgICAgIHRoaXMuZmlsdGVyRmllbGRHcm91cHNCeVJvbGVzQW5kQ291bnRyaWVzKHRoaXMuZmllbGRzKTtcbiAgICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB0aGlzLmZvcm1QcmVwYXJlZCA9IHRydWU7XG4gICAgICB0aGlzLmdldE51bWJlck9mQWN0aXZlVGFicyh0aGlzLmZpZWxkcyk7XG4gICAgICB0aGlzLnNldEF1dG9jb21wbGV0ZVNpbmdsZU9wdGlvbkJ5RGVmYXVsdCh0aGlzLmZpZWxkcyk7XG4gICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgIGZvcm1TdGF0ZToge1xuICAgICAgICAgIC4uLnRoaXMub3B0aW9ucy5mb3JtU3RhdGUsXG4gICAgICAgICAgc2hvd09sZFZhbHVlczogdGhpcy5zaG93T2xkVmFsdWVzLFxuICAgICAgICAgIG9sZFZhbHVlczogdGhpcy5vbGRWYWx1ZXMsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIG9uTW9kZWxDaGFuZ2UobW9kZWw6IGFueSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc2NvcmluZy51cGRhdGVTY29yZShtb2RlbCwgdGhpcy5maWVsZHMpO1xuICAgIHRoaXMuc2NvcmVDaGFuZ2UuZW1pdChyZXN1bHQpO1xuICB9XG5cbiAgc2V0QXV0b2NvbXBsZXRlU2luZ2xlT3B0aW9uQnlEZWZhdWx0KGZpZWxkczogYW55KSB7XG4gICAgZmllbGRzLmZvckVhY2goKGZpZWxkOiBhbnkpID0+IHtcbiAgICAgIGlmIChmaWVsZC50eXBlID09PSAnbXUtc2VsZWN0LWF1dG9jb21wbGV0ZScpIHtcbiAgICAgICAgZmllbGQuaG9va3MgPSB7XG4gICAgICAgICAgb25Jbml0OiAoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSBmaWVsZC5mb3JtQ29udHJvbDtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSBmaWVsZC5wcm9wcz8ub3B0aW9ucyB8fCBbXTtcblxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucykpIHtcbiAgICAgICAgICAgICAgdGhpcy5zZXRPcHRpb25CeURlZmF1bHQoZm9ybUNvbnRyb2wsIGZpZWxkLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIChvcHRpb25zIHx8IG9mKFtdKSkuc3Vic2NyaWJlKChvcHRpb25zOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldE9wdGlvbkJ5RGVmYXVsdChmb3JtQ29udHJvbCwgZmllbGQsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKGZpZWxkLmZpZWxkR3JvdXApIHtcbiAgICAgICAgdGhpcy5zZXRBdXRvY29tcGxldGVTaW5nbGVPcHRpb25CeURlZmF1bHQoZmllbGQuZmllbGRHcm91cCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzZXRPcHRpb25CeURlZmF1bHQoZm9ybUNvbnRyb2w6IGFueSwgZmllbGQ6IGFueSwgb3B0aW9uczogYW55KSB7XG4gICAgaWYgKGZvcm1Db250cm9sICYmIGZpZWxkLnByb3BzICYmIGZpZWxkLnByb3BzLm9wdGlvbnMpIHtcbiAgICAgIGlmIChvcHRpb25zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShvcHRpb25zWzBdLnZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgZmllbGQucHJvcHMub3B0aW9uc0NoYW5nZT8uc3Vic2NyaWJlKCh1cGRhdGVkT3B0aW9uczogYW55W10pID0+IHtcbiAgICAgICAgaWYgKHVwZGF0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMSAmJiBmb3JtQ29udHJvbCkge1xuICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKHVwZGF0ZWRPcHRpb25zWzBdLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGdldE51bWJlck9mQWN0aXZlVGFicyhmaWVsZHM6IGFueSkge1xuICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZDogYW55KSA9PiB7XG4gICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ211LXRhYnMnKSB7XG4gICAgICAgIHRoaXMudG90YWxUYWJzID0gZmllbGQuZmllbGRHcm91cD8ubGVuZ3RoIHx8IDA7XG4gICAgICAgIHRoaXMubm9PZlRhYnMuZW1pdCh0aGlzLnRvdGFsVGFicyk7XG4gICAgICB9XG4gICAgICBpZiAoZmllbGQuZmllbGRHcm91cCkge1xuICAgICAgICB0aGlzLmdldE51bWJlck9mQWN0aXZlVGFicyhmaWVsZC5maWVsZEdyb3VwKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFwcGx5UmVhZG9ubHlUb0ZpZWxkcyhcbiAgICBmaWVsZHM6IEN1c3RvbUZvcm1seUZpZWxkQ29uZmlnW11cbiAgKTogQ3VzdG9tRm9ybWx5RmllbGRDb25maWdbXSB7XG4gICAgcmV0dXJuIGZpZWxkcy5tYXAoKGZpZWxkKSA9PiB7XG4gICAgICBpZiAoZmllbGQuZmllbGRHcm91cCkge1xuICAgICAgICB0aGlzLmFwcGx5UmVhZG9ubHlUb0ZpZWxkcyhmaWVsZC5maWVsZEdyb3VwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpZWxkLnByb3BzID0ge1xuICAgICAgICAgIC4uLihmaWVsZC5wcm9wcyB8fCB7fSksXG4gICAgICAgICAgcmVhZG9ubHk6IHRoaXMucmVhZG9ubHksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfSk7XG4gIH1cblxuICBmaWx0ZXJGaWVsZEdyb3Vwc0J5Um9sZXNBbmRDb3VudHJpZXMoZmllbGRzOiBDdXN0b21Gb3JtbHlGaWVsZENvbmZpZ1tdKSB7XG4gICAgcmV0dXJuIGZpZWxkc1xuICAgICAgLm1hcCgoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgICBpZiAoZmllbGQuZmllbGRHcm91cCAmJiAhZmllbGQudmlzc2libGVDb3VudHJpZXMpIHtcbiAgICAgICAgICBmaWVsZC5maWVsZEdyb3VwID0gdGhpcy5maWx0ZXJGaWVsZEdyb3Vwc0J5Um9sZXNBbmRDb3VudHJpZXMoXG4gICAgICAgICAgICBmaWVsZC5maWVsZEdyb3VwXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zdCBoYXNWYWxpZFJvbGUgPSBmaWVsZC52aXNzaWJsZVJvbGVzXG4gICAgICAgIC8vICAgPyBmaWVsZC52aXNzaWJsZVJvbGVzLnNvbWUoKHJvbGU6IGFueSkgPT4gdGhpcy51c2VyUm9sZXM/LmluY2x1ZGVzKHJvbGUpKVxuICAgICAgICAvLyAgIDogdHJ1ZTtcbiAgICAgICAgLy8gY29uc3QgaGFzVmFsaWRDb3VudHJ5ID0gZmllbGQudmlzc2libGVDb3VudHJpZXNcbiAgICAgICAgLy8gICA/IGZpZWxkLnZpc3NpYmxlQ291bnRyaWVzLnNvbWUoKGNvdW50cnk6IGFueSkgPT4gdGhpcy51c2VyQ291bnRyaWVzPy5pbmNsdWRlcyhjb3VudHJ5KSlcbiAgICAgICAgLy8gICA6IHRydWU7XG5cbiAgICAgICAgY29uc3QgdmFsaWRHcm91cCA9IGZpZWxkO1xuICAgICAgICBpZiAodmFsaWRHcm91cCAmJiBmaWVsZC5maWVsZEdyb3VwKSB7XG4gICAgICAgICAgZmllbGQuZmllbGRHcm91cCA9IHRoaXMuZmlsdGVyRmllbGRHcm91cHNCeVJvbGVzQW5kQ291bnRyaWVzKFxuICAgICAgICAgICAgZmllbGQuZmllbGRHcm91cFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbGlkR3JvdXAgPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlVmFsaWRhdGlvbnNGb3JGaWx0ZXJlZEZpZWxkcyhmaWVsZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2YWxpZEdyb3VwICYmIGZpZWxkLnByb3BzPy5yZXF1aXJlZCkge1xuICAgICAgICAgIGZpZWxkLnByb3BzLnJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbGlkR3JvdXA7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoZmllbGQ6IGFueSkgPT4gZmllbGQgIT09IG51bGwpO1xuICB9XG5cbiAgcmVtb3ZlVmFsaWRhdGlvbnNGb3JGaWx0ZXJlZEZpZWxkcyhmaWVsZHM6IGFueSkge1xuICAgIGZpZWxkcz8uZmllbGRHcm91cD8uZm9yRWFjaCgoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmZpZWxkR3JvdXApIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGF0aW9uc0ZvckZpbHRlcmVkRmllbGRzKGZpZWxkKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmZvcm0uZ2V0KGZpZWxkLmtleSkpIHtcbiAgICAgICAgdGhpcy5mb3JtLnJlbW92ZUNvbnRyb2woZmllbGQua2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmKGZvcm1QcmVwYXJlZCkge1xuPGZvcm1seS1mb3JtXG4gIFtmb3JtXT1cImZvcm1cIlxuICBbZmllbGRzXT1cImZpZWxkc1wiXG4gIFttb2RlbF09XCJtb2RlbFwiXG4gIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICAobW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgY2xhc3M9XCJtbmwtZm9ybWx5LWZvcm1cIlxuPjwvZm9ybWx5LWZvcm0+XG59XG4iXX0=
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWxpYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLWxpYi9zcmMvbGliL2Zvcm1seS1saWIvZm9ybWx5LWxpYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLWxpYi9zcmMvbGliL2Zvcm1seS1saWIvZm9ybWx5LWxpYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWEsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBcUIsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQXFCbEUsTUFBTSxPQUFPLG1CQUFtQjtJQXVDOUIsWUFDVSxnQkFBa0MsRUFDbEMsT0FBdUI7UUFEdkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQXZDakMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQXdCakIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFTOUIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXRDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFLWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsb0NBQW9DLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLE9BQU8sR0FBRztnQkFDYixTQUFTLEVBQUU7b0JBQ1QsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVM7b0JBQ3pCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtvQkFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO29CQUN6QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7aUJBQzlCO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsb0NBQW9DLENBQUMsTUFBVztRQUM5QyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDNUIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLHdCQUF3QixFQUFFLENBQUM7Z0JBQzVDLEtBQUssQ0FBQyxLQUFLLEdBQUc7b0JBQ1osTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7d0JBQ3JCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7d0JBQ3RDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQzt3QkFFM0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7NEJBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO3dCQUN2RCxDQUFDOzZCQUFNLENBQUM7NEJBQ04sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7Z0NBQzdDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDOzRCQUN2RCxDQUFDLENBQUMsQ0FBQzt3QkFDTCxDQUFDO29CQUNILENBQUM7aUJBQ0YsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsV0FBZ0IsRUFBRSxLQUFVLEVBQUUsT0FBWTtRQUMzRCxJQUFJLFdBQVcsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN6QixXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QyxDQUFDO1lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUMsY0FBcUIsRUFBRSxFQUFFO2dCQUM3RCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUMvQyxXQUFXLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEQsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFDRCxxQkFBcUIsQ0FBQyxNQUFXO1FBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUM1QixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckMsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxxQkFBcUIsQ0FDbkIsTUFBaUM7UUFFakMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0MsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssQ0FBQyxLQUFLLEdBQUc7b0JBQ1osR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO29CQUN0QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7aUJBQ3hCLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxvQ0FBb0MsQ0FBQyxNQUFpQztRQUNwRSxPQUFPLE1BQU07YUFDVixHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNsQixJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDakQsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsb0NBQW9DLENBQzFELEtBQUssQ0FBQyxVQUFVLENBQ2pCLENBQUM7WUFDSixDQUFDO1lBQ0QsMkNBQTJDO1lBQzNDLDhFQUE4RTtZQUM5RSxZQUFZO1lBQ1osa0RBQWtEO1lBQ2xELDRGQUE0RjtZQUM1RixZQUFZO1lBRVosTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksVUFBVSxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbkMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsb0NBQW9DLENBQzFELEtBQUssQ0FBQyxVQUFVLENBQ2pCLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxVQUFVLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDO2dCQUN6QyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDL0IsQ0FBQztZQUNELE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxrQ0FBa0MsQ0FBQyxNQUFXO1FBQzVDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDekMsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBL0tVLG1CQUFtQjttR0FBbkIsbUJBQW1CLHFYQ2hDaEMseU5BVUEseUREUUksWUFBWSw4QkFDWixhQUFhLDhCQUNiLFlBQVksNktBQ1osbUJBQW1CLDhCQUNuQixXQUFXLDhCQUNYLGVBQWUsOEJBQ2YsdUJBQXVCLDhCQUN2QixvQkFBb0IsOEJBQ3BCLHVCQUF1Qiw4QkFDdkIsb0JBQW9COzs0RkFLWCxtQkFBbUI7a0JBbEIvQixTQUFTOytCQUNFLFVBQVUsY0FDUixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLHVCQUF1Qjt3QkFDdkIsb0JBQW9CO3FCQUNyQjtrSEFNRCxRQUFRO3NCQURQLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsTUFBTTtnQkFJUCxTQUFTO3NCQURSLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uc01vZHVsZSB9IGZyb20gJ0BtdXJhYWkvbW5sLWNvbW1vbnMnO1xuaW1wb3J0IHsgRm9ybWx5Rm9ybU9wdGlvbnMsIEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgRm9ybWx5TWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBGb3JtbHlNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IEZvcm1seU1hdFRleHRBcmVhTW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwvdGV4dGFyZWEnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ3VzdG9tRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY3VzdG9tLWZvcm0tZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybWx5TWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBTY29yaW5nU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Njb3Jpbmcuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21ubC1mb3JtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb21tb25zTW9kdWxlLFxuICAgIEZvcm1seU1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBGb3JtbHlNYXRUZXh0QXJlYU1vZHVsZSxcbiAgICBGb3JtbHlNYXRJbnB1dE1vZHVsZSxcbiAgICBGb3JtbHlNYXRDaGVja2JveE1vZHVsZSxcbiAgICBGb3JtbHlNYXRSYWRpb01vZHVsZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm1seS1saWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZm9ybWx5LWxpYi5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIE1ubEZvcm1MaWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICByZWFkb25seSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGZvcm0hOiBGb3JtR3JvdXA7XG5cbiAgQElucHV0KClcbiAgZmllbGRzITogQ3VzdG9tRm9ybWx5RmllbGRDb25maWdbXTtcblxuICBASW5wdXQoKVxuICBtb2RlbDogYW55O1xuXG4gIEBJbnB1dCgpXG4gIGhlbHBlck1vZGVsOiBhbnk7XG5cbiAgQElucHV0KClcbiAgb3B0aW9ucyE6IEZvcm1seUZvcm1PcHRpb25zO1xuXG4gIEBJbnB1dCgpXG4gIHVzZXJSb2xlcyE6IHN0cmluZ1tdO1xuXG4gIEBJbnB1dCgpXG4gIHVzZXJDb3VudHJpZXMhOiBzdHJpbmdbXTtcblxuICBAT3V0cHV0KClcbiAgbm9PZlRhYnMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KClcbiAgb2xkVmFsdWVzOiBhbnk7XG5cbiAgQElucHV0KClcbiAgc2hvd09sZFZhbHVlcyE6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpXG4gIHNjb3JlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgZm9ybVByZXBhcmVkID0gZmFsc2U7XG4gIHRvdGFsVGFicyA9IDA7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHNjb3Jpbmc6IFNjb3JpbmdTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZXREZWZhdWx0TGFuZygnZW4nKTtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWVsZHMpIHtcbiAgICAgIHRoaXMuYXBwbHlSZWFkb25seVRvRmllbGRzKHRoaXMuZmllbGRzKTtcbiAgICAgIHRoaXMuZmlsdGVyRmllbGRHcm91cHNCeVJvbGVzQW5kQ291bnRyaWVzKHRoaXMuZmllbGRzKTtcbiAgICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB0aGlzLmZvcm1QcmVwYXJlZCA9IHRydWU7XG4gICAgICB0aGlzLmdldE51bWJlck9mQWN0aXZlVGFicyh0aGlzLmZpZWxkcyk7XG4gICAgICB0aGlzLnNldEF1dG9jb21wbGV0ZVNpbmdsZU9wdGlvbkJ5RGVmYXVsdCh0aGlzLmZpZWxkcyk7XG4gICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgIGZvcm1TdGF0ZToge1xuICAgICAgICAgIC4uLnRoaXMub3B0aW9ucy5mb3JtU3RhdGUsXG4gICAgICAgICAgc2hvd09sZFZhbHVlczogdGhpcy5zaG93T2xkVmFsdWVzLFxuICAgICAgICAgIG9sZFZhbHVlczogdGhpcy5vbGRWYWx1ZXMsXG4gICAgICAgICAgaGVscGVyTW9kZWw6IHRoaXMuaGVscGVyTW9kZWwsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIG9uTW9kZWxDaGFuZ2UobW9kZWw6IGFueSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc2NvcmluZy51cGRhdGVTY29yZShtb2RlbCwgdGhpcy5maWVsZHMpO1xuICAgIHRoaXMuc2NvcmVDaGFuZ2UuZW1pdChyZXN1bHQpO1xuICB9XG5cbiAgc2V0QXV0b2NvbXBsZXRlU2luZ2xlT3B0aW9uQnlEZWZhdWx0KGZpZWxkczogYW55KSB7XG4gICAgZmllbGRzLmZvckVhY2goKGZpZWxkOiBhbnkpID0+IHtcbiAgICAgIGlmIChmaWVsZC50eXBlID09PSAnbXUtc2VsZWN0LWF1dG9jb21wbGV0ZScpIHtcbiAgICAgICAgZmllbGQuaG9va3MgPSB7XG4gICAgICAgICAgb25Jbml0OiAoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSBmaWVsZC5mb3JtQ29udHJvbDtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSBmaWVsZC5wcm9wcz8ub3B0aW9ucyB8fCBbXTtcblxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucykpIHtcbiAgICAgICAgICAgICAgdGhpcy5zZXRPcHRpb25CeURlZmF1bHQoZm9ybUNvbnRyb2wsIGZpZWxkLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIChvcHRpb25zIHx8IG9mKFtdKSkuc3Vic2NyaWJlKChvcHRpb25zOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldE9wdGlvbkJ5RGVmYXVsdChmb3JtQ29udHJvbCwgZmllbGQsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKGZpZWxkLmZpZWxkR3JvdXApIHtcbiAgICAgICAgdGhpcy5zZXRBdXRvY29tcGxldGVTaW5nbGVPcHRpb25CeURlZmF1bHQoZmllbGQuZmllbGRHcm91cCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzZXRPcHRpb25CeURlZmF1bHQoZm9ybUNvbnRyb2w6IGFueSwgZmllbGQ6IGFueSwgb3B0aW9uczogYW55KSB7XG4gICAgaWYgKGZvcm1Db250cm9sICYmIGZpZWxkLnByb3BzICYmIGZpZWxkLnByb3BzLm9wdGlvbnMpIHtcbiAgICAgIGlmIChvcHRpb25zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShvcHRpb25zWzBdLnZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgZmllbGQucHJvcHMub3B0aW9uc0NoYW5nZT8uc3Vic2NyaWJlKCh1cGRhdGVkT3B0aW9uczogYW55W10pID0+IHtcbiAgICAgICAgaWYgKHVwZGF0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMSAmJiBmb3JtQ29udHJvbCkge1xuICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKHVwZGF0ZWRPcHRpb25zWzBdLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGdldE51bWJlck9mQWN0aXZlVGFicyhmaWVsZHM6IGFueSkge1xuICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZDogYW55KSA9PiB7XG4gICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ211LXRhYnMnKSB7XG4gICAgICAgIHRoaXMudG90YWxUYWJzID0gZmllbGQuZmllbGRHcm91cD8ubGVuZ3RoIHx8IDA7XG4gICAgICAgIHRoaXMubm9PZlRhYnMuZW1pdCh0aGlzLnRvdGFsVGFicyk7XG4gICAgICB9XG4gICAgICBpZiAoZmllbGQuZmllbGRHcm91cCkge1xuICAgICAgICB0aGlzLmdldE51bWJlck9mQWN0aXZlVGFicyhmaWVsZC5maWVsZEdyb3VwKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFwcGx5UmVhZG9ubHlUb0ZpZWxkcyhcbiAgICBmaWVsZHM6IEN1c3RvbUZvcm1seUZpZWxkQ29uZmlnW11cbiAgKTogQ3VzdG9tRm9ybWx5RmllbGRDb25maWdbXSB7XG4gICAgcmV0dXJuIGZpZWxkcy5tYXAoKGZpZWxkKSA9PiB7XG4gICAgICBpZiAoZmllbGQuZmllbGRHcm91cCkge1xuICAgICAgICB0aGlzLmFwcGx5UmVhZG9ubHlUb0ZpZWxkcyhmaWVsZC5maWVsZEdyb3VwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpZWxkLnByb3BzID0ge1xuICAgICAgICAgIC4uLihmaWVsZC5wcm9wcyB8fCB7fSksXG4gICAgICAgICAgcmVhZG9ubHk6IHRoaXMucmVhZG9ubHksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfSk7XG4gIH1cblxuICBmaWx0ZXJGaWVsZEdyb3Vwc0J5Um9sZXNBbmRDb3VudHJpZXMoZmllbGRzOiBDdXN0b21Gb3JtbHlGaWVsZENvbmZpZ1tdKSB7XG4gICAgcmV0dXJuIGZpZWxkc1xuICAgICAgLm1hcCgoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgICBpZiAoZmllbGQuZmllbGRHcm91cCAmJiAhZmllbGQudmlzc2libGVDb3VudHJpZXMpIHtcbiAgICAgICAgICBmaWVsZC5maWVsZEdyb3VwID0gdGhpcy5maWx0ZXJGaWVsZEdyb3Vwc0J5Um9sZXNBbmRDb3VudHJpZXMoXG4gICAgICAgICAgICBmaWVsZC5maWVsZEdyb3VwXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zdCBoYXNWYWxpZFJvbGUgPSBmaWVsZC52aXNzaWJsZVJvbGVzXG4gICAgICAgIC8vICAgPyBmaWVsZC52aXNzaWJsZVJvbGVzLnNvbWUoKHJvbGU6IGFueSkgPT4gdGhpcy51c2VyUm9sZXM/LmluY2x1ZGVzKHJvbGUpKVxuICAgICAgICAvLyAgIDogdHJ1ZTtcbiAgICAgICAgLy8gY29uc3QgaGFzVmFsaWRDb3VudHJ5ID0gZmllbGQudmlzc2libGVDb3VudHJpZXNcbiAgICAgICAgLy8gICA/IGZpZWxkLnZpc3NpYmxlQ291bnRyaWVzLnNvbWUoKGNvdW50cnk6IGFueSkgPT4gdGhpcy51c2VyQ291bnRyaWVzPy5pbmNsdWRlcyhjb3VudHJ5KSlcbiAgICAgICAgLy8gICA6IHRydWU7XG5cbiAgICAgICAgY29uc3QgdmFsaWRHcm91cCA9IGZpZWxkO1xuICAgICAgICBpZiAodmFsaWRHcm91cCAmJiBmaWVsZC5maWVsZEdyb3VwKSB7XG4gICAgICAgICAgZmllbGQuZmllbGRHcm91cCA9IHRoaXMuZmlsdGVyRmllbGRHcm91cHNCeVJvbGVzQW5kQ291bnRyaWVzKFxuICAgICAgICAgICAgZmllbGQuZmllbGRHcm91cFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbGlkR3JvdXAgPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlVmFsaWRhdGlvbnNGb3JGaWx0ZXJlZEZpZWxkcyhmaWVsZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2YWxpZEdyb3VwICYmIGZpZWxkLnByb3BzPy5yZXF1aXJlZCkge1xuICAgICAgICAgIGZpZWxkLnByb3BzLnJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbGlkR3JvdXA7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoZmllbGQ6IGFueSkgPT4gZmllbGQgIT09IG51bGwpO1xuICB9XG5cbiAgcmVtb3ZlVmFsaWRhdGlvbnNGb3JGaWx0ZXJlZEZpZWxkcyhmaWVsZHM6IGFueSkge1xuICAgIGZpZWxkcz8uZmllbGRHcm91cD8uZm9yRWFjaCgoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmZpZWxkR3JvdXApIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGF0aW9uc0ZvckZpbHRlcmVkRmllbGRzKGZpZWxkKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmZvcm0uZ2V0KGZpZWxkLmtleSkpIHtcbiAgICAgICAgdGhpcy5mb3JtLnJlbW92ZUNvbnRyb2woZmllbGQua2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmKGZvcm1QcmVwYXJlZCkge1xuPGZvcm1seS1mb3JtXG4gIFtmb3JtXT1cImZvcm1cIlxuICBbZmllbGRzXT1cImZpZWxkc1wiXG4gIFttb2RlbF09XCJtb2RlbFwiXG4gIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICAobW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgY2xhc3M9XCJtbmwtZm9ybWx5LWZvcm1cIlxuPjwvZm9ybWx5LWZvcm0+XG59XG4iXX0=
|
|
@@ -8,11 +8,21 @@ export class ScoringService {
|
|
|
8
8
|
calculateScore(model, fields) {
|
|
9
9
|
let totalScore = 0;
|
|
10
10
|
let categoryResults = {};
|
|
11
|
-
|
|
12
|
-
const categoryLabel = category.props?.label
|
|
13
|
-
const categoryWeight = category.props?.weight
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
const processCategory = (category) => {
|
|
12
|
+
const categoryLabel = category.props?.label;
|
|
13
|
+
const categoryWeight = category.props?.weight ?? 0;
|
|
14
|
+
// Only treat as scoring category if it has a label + weight
|
|
15
|
+
if (!categoryLabel || !categoryWeight) {
|
|
16
|
+
// Still need to go deeper in case children have categories
|
|
17
|
+
if (category.fieldGroup?.length) {
|
|
18
|
+
category.fieldGroup.forEach(processCategory);
|
|
19
|
+
}
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const questions = (category.fieldGroup || []).filter(q => q.props?.scoring);
|
|
23
|
+
if (questions.length === 0)
|
|
24
|
+
return;
|
|
25
|
+
const perQuestionWeight = categoryWeight / questions.length;
|
|
16
26
|
let categoryScore = 0;
|
|
17
27
|
for (const q of questions) {
|
|
18
28
|
const parentKey = category.key;
|
|
@@ -53,7 +63,9 @@ export class ScoringService {
|
|
|
53
63
|
score: categoryScore,
|
|
54
64
|
weight: categoryWeight,
|
|
55
65
|
};
|
|
56
|
-
}
|
|
66
|
+
};
|
|
67
|
+
// start recursive walk
|
|
68
|
+
fields.forEach(processCategory);
|
|
57
69
|
return {
|
|
58
70
|
totalScore,
|
|
59
71
|
categoryResults,
|
|
@@ -72,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
72
84
|
type: Injectable,
|
|
73
85
|
args: [{ providedIn: 'root' }]
|
|
74
86
|
}] });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcmluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zY29yaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLGNBQWM7SUFFekIsV0FBVyxDQUFDLEtBQVUsRUFBRSxNQUEyQjtRQUNqRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQVUsRUFBRSxNQUF1RDtRQUN6RixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDbkIsSUFBSSxlQUFlLEdBQXNELEVBQUUsQ0FBQztRQUU1RSxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQXFELEVBQUUsRUFBRTtZQUNoRixNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUM1QyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7WUFFbkQsNERBQTREO1lBQzVELElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdEMsMkRBQTJEO2dCQUMzRCxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBQ2hDLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUMvQyxDQUFDO2dCQUNELE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFD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QUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7K0dBNUZVLGNBQWM7bUhBQWQsY0FBYyxjQURELE1BQU07OzRGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEN1c3RvbUZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU2NvcmluZ1NlcnZpY2Uge1xuXG4gIHVwZGF0ZVNjb3JlKG1vZGVsOiBhbnksIGZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY2FsY3VsYXRlU2NvcmUobW9kZWwsIGZpZWxkcyk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gcHJpdmF0ZSBjYWxjdWxhdGVTY29yZShtb2RlbDogYW55LCBmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gfCBDdXN0b21Gb3JtbHlGaWVsZENvbmZpZ1tdKSB7XG4gIGxldCB0b3RhbFNjb3JlID0gMDtcbiAgbGV0IGNhdGVnb3J5UmVzdWx0czogUmVjb3JkPHN0cmluZywgeyBzY29yZTogbnVtYmVyOyB3ZWlnaHQ6IG51bWJlciB9PiA9IHt9O1xuXG4gIGNvbnN0IHByb2Nlc3NDYXRlZ29yeSA9IChjYXRlZ29yeTogRm9ybWx5RmllbGRDb25maWcgfCBDdXN0b21Gb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNhdGVnb3J5TGFiZWwgPSBjYXRlZ29yeS5wcm9wcz8ubGFiZWw7XG4gICAgY29uc3QgY2F0ZWdvcnlXZWlnaHQgPSBjYXRlZ29yeS5wcm9wcz8ud2VpZ2h0ID8/IDA7XG5cbiAgICAvLyBPbmx5IHRyZWF0IGFzIHNjb3JpbmcgY2F0ZWdvcnkgaWYgaXQgaGFzIGEgbGFiZWwgKyB3ZWlnaHRcbiAgICBpZiAoIWNhdGVnb3J5TGFiZWwgfHwgIWNhdGVnb3J5V2VpZ2h0KSB7XG4gICAgICAvLyBTdGlsbCBuZWVkIHRvIGdvIGRlZXBlciBpbiBjYXNlIGNoaWxkcmVuIGhhdmUgY2F0ZWdvcmllc1xuICAgICAgaWYgKGNhdGVnb3J5LmZpZWxkR3JvdXA/Lmxlbmd0aCkge1xuICAgICAgICBjYXRlZ29yeS5maWVsZEdyb3VwLmZvckVhY2gocHJvY2Vzc0NhdGVnb3J5KTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVzdGlvbnMgPSAoY2F0ZWdvcnkuZmllbGRHcm91cCB8fCBbXSkuZmlsdGVyKHEgPT4gcS5wcm9wcz8uc2NvcmluZyk7XG4gICAgaWYgKHF1ZXN0aW9ucy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIGNvbnN0IHBlclF1ZXN0aW9uV2VpZ2h0ID0gY2F0ZWdvcnlXZWlnaHQgLyBxdWVzdGlvbnMubGVuZ3RoO1xuICAgIGxldCBjYXRlZ29yeVNjb3JlID0gMDtcblxuICAgIGZvciAoY29uc3QgcSBvZiBxdWVzdGlvbnMpIHtcbiAgICAgIGNvbnN0IHBhcmVudEtleSA9IGNhdGVnb3J5LmtleSBhcyBhbnk7XG4gICAgICBjb25zdCBuZXN0ZWRQYXRoID0gQXJyYXkuaXNBcnJheShwYXJlbnRLZXkpXG4gICAgICAgID8gWy4uLihwYXJlbnRLZXkgYXMgYW55W10pLCBxLmtleSBhcyBhbnldXG4gICAgICAgIDogW3BhcmVudEtleSBhcyBhbnksIHEua2V5IGFzIGFueV07XG4gICAgICBjb25zdCBhbnN3ZXIgPSB0aGlzLmdldE5lc3RlZFZhbHVlKG1vZGVsLCBuZXN0ZWRQYXRoIGFzIGFueSk7XG5cbiAgICAgIGNvbnN0IHNjb3JpbmcgPSBxLnByb3BzPy5zY29yaW5nO1xuICAgICAgaWYgKCFzY29yaW5nKSBjb250aW51ZTtcblxuICAgICAgbGV0IGNvcnJlY3QgPSBmYWxzZTtcblxuICAgICAgc3dpdGNoIChzY29yaW5nLmNyaXRlcmlhKSB7XG4gICAgICAgIGNhc2UgJ2F0dGVtcHRlZCc6XG4gICAgICAgICAgY29ycmVjdCA9XG4gICAgICAgICAgICBhbnN3ZXIgIT09IG51bGwgJiZcbiAgICAgICAgICAgIGFuc3dlciAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAodHlwZW9mIGFuc3dlciA9PT0gJ3N0cmluZycgPyBhbnN3ZXIudHJpbSgpICE9PSAnJyA6IHRydWUpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2V4YWN0TWF0Y2gnOlxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjb3JpbmcuYW5zd2VyKSkge1xuICAgICAgICAgICAgY29ycmVjdCA9IHNjb3JpbmcuYW5zd2VyLmluY2x1ZGVzKGFuc3dlcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3JhbmdlJzpcbiAgICAgICAgICBjb25zdCBudW0gPSB0eXBlb2YgYW5zd2VyID09PSAnbnVtYmVyJyA/IGFuc3dlciA6IE51bWJlcihhbnN3ZXIpO1xuICAgICAgICAgIGNvcnJlY3QgPVxuICAgICAgICAgICAgTnVtYmVyLmlzRmluaXRlKG51bSkgJiZcbiAgICAgICAgICAgIG51bSA+PSBzY29yaW5nLmFuc3dlci5taW4gJiZcbiAgICAgICAgICAgIG51bSA8PSBzY29yaW5nLmFuc3dlci5tYXg7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb3JyZWN0KSB7XG4gICAgICAgIGNhdGVnb3J5U2NvcmUgKz0gcGVyUXVlc3Rpb25XZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdG90YWxTY29yZSArPSBjYXRlZ29yeVNjb3JlO1xuICAgIGNhdGVnb3J5UmVzdWx0c1tjYXRlZ29yeUxhYmVsXSA9IHtcbiAgICAgIHNjb3JlOiBjYXRlZ29yeVNjb3JlLFxuICAgICAgd2VpZ2h0OiBjYXRlZ29yeVdlaWdodCxcbiAgICB9O1xuICB9O1xuXG4gIC8vIHN0YXJ0IHJlY3Vyc2l2ZSB3YWxrXG4gIGZpZWxkcy5mb3JFYWNoKHByb2Nlc3NDYXRlZ29yeSk7XG5cbiAgcmV0dXJuIHtcbiAgICB0b3RhbFNjb3JlLFxuICAgIGNhdGVnb3J5UmVzdWx0cyxcbiAgfTtcbn1cblxuXG4gIHByaXZhdGUgZ2V0TmVzdGVkVmFsdWUob2JqOiBhbnksIGtleTogc3RyaW5nIHwgbnVtYmVyIHwgKHN0cmluZyB8IG51bWJlcilbXSk6IGFueSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoa2V5KSkge1xuICAgICAgcmV0dXJuIGtleS5yZWR1Y2UoKGN1cnJlbnQsIGspID0+IGN1cnJlbnQ/LltrXSwgb2JqKTtcbiAgICB9XG4gICAgcmV0dXJuIG9iaj8uW2tleV07XG4gIH1cbn0iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { Component } from '@angular/core';
|
|
3
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
4
|
import { MatNativeDateModule } from '@angular/material/core';
|
|
5
5
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
6
6
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
@@ -23,14 +23,44 @@ export class MnlFormHelperTextInputComponent extends FieldType {
|
|
|
23
23
|
get defaultHelperText() {
|
|
24
24
|
return this.to['helperProps']?.['defaultHelperText'] || '';
|
|
25
25
|
}
|
|
26
|
+
// Get value from primary model (answers)
|
|
27
|
+
get originalValue() {
|
|
28
|
+
const fieldKey = this.field.key;
|
|
29
|
+
return this.field.model?.[fieldKey];
|
|
30
|
+
}
|
|
31
|
+
// Get/Set value from secondary model (helper)
|
|
32
|
+
get helperModel() {
|
|
33
|
+
return (this.to['helperModel'] ||
|
|
34
|
+
this.props['helperModel'] ||
|
|
35
|
+
this.options?.formState?.['helperModel']);
|
|
36
|
+
}
|
|
37
|
+
get helperKey() {
|
|
38
|
+
return this.to['helperKey'] || this.field.key;
|
|
39
|
+
}
|
|
40
|
+
get currentHelperValue() {
|
|
41
|
+
if (this.helperModel && this.helperKey) {
|
|
42
|
+
return this.helperModel[this.helperKey];
|
|
43
|
+
}
|
|
44
|
+
return '';
|
|
45
|
+
}
|
|
46
|
+
set currentHelperValue(value) {
|
|
47
|
+
if (this.helperModel && this.helperKey) {
|
|
48
|
+
this.helperModel[this.helperKey] = value;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
26
51
|
constructor(cdr) {
|
|
27
52
|
super();
|
|
28
53
|
this.cdr = cdr;
|
|
29
54
|
this.checked = false;
|
|
30
55
|
}
|
|
31
56
|
ngOnInit() {
|
|
57
|
+
// Initialize helper form control with value from helper model
|
|
58
|
+
this.helperFormControl = new FormControl(this.currentHelperValue || '');
|
|
59
|
+
// Subscribe to changes in helper form control and update helper model
|
|
60
|
+
this.helperFormControl.valueChanges.subscribe((value) => {
|
|
61
|
+
this.currentHelperValue = value;
|
|
62
|
+
});
|
|
32
63
|
this.setupDefaultField();
|
|
33
|
-
// If mode is helper, set up the initial state based on scoring
|
|
34
64
|
if (this.to['enableHelper']) {
|
|
35
65
|
this.setCorrectValue();
|
|
36
66
|
this.determineInitialState();
|
|
@@ -38,6 +68,16 @@ export class MnlFormHelperTextInputComponent extends FieldType {
|
|
|
38
68
|
}
|
|
39
69
|
toggleSlide() {
|
|
40
70
|
this.checked = !this.checked;
|
|
71
|
+
if (this.checked) {
|
|
72
|
+
// When toggle is opened, check if helper field is empty
|
|
73
|
+
const currenthelper = this.helperFormControl.value;
|
|
74
|
+
if (!currenthelper || currenthelper.trim() === '') {
|
|
75
|
+
this.helperFormControl.setValue(this.defaultHelperText);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.helperFormControl.setValue('');
|
|
80
|
+
}
|
|
41
81
|
this.cdr.detectChanges();
|
|
42
82
|
}
|
|
43
83
|
setupDefaultField() {
|
|
@@ -47,7 +87,6 @@ export class MnlFormHelperTextInputComponent extends FieldType {
|
|
|
47
87
|
...fieldConfig,
|
|
48
88
|
key: this.field.key || fieldConfig.key || 'defaultKey',
|
|
49
89
|
formControl: this.formControl,
|
|
50
|
-
// Add required properties that formly expects
|
|
51
90
|
modelOptions: fieldConfig.modelOptions || this.field.modelOptions || {},
|
|
52
91
|
validators: fieldConfig.validators || this.field.validators || {},
|
|
53
92
|
asyncValidators: fieldConfig.asyncValidators || this.field.asyncValidators || {},
|
|
@@ -58,7 +97,6 @@ export class MnlFormHelperTextInputComponent extends FieldType {
|
|
|
58
97
|
fieldGroupClassName: fieldConfig.fieldGroupClassName ||
|
|
59
98
|
this.field.fieldGroupClassName ||
|
|
60
99
|
'',
|
|
61
|
-
// Inherit parent field's form and model
|
|
62
100
|
parent: this.field.parent,
|
|
63
101
|
options: this.field.options,
|
|
64
102
|
model: this.field.model,
|
|
@@ -71,12 +109,12 @@ export class MnlFormHelperTextInputComponent extends FieldType {
|
|
|
71
109
|
switch (this.to['scoring']?.['criteria']) {
|
|
72
110
|
case 'exactMatch':
|
|
73
111
|
if (Array.isArray(this.to['scoring']?.['answer']) &&
|
|
74
|
-
!this.to['scoring']?.['answer'].includes(this.
|
|
112
|
+
!this.to['scoring']?.['answer'].includes(this.originalValue)) {
|
|
75
113
|
this.checked = true;
|
|
76
114
|
}
|
|
77
115
|
break;
|
|
78
116
|
case 'range':
|
|
79
|
-
const answer = this.
|
|
117
|
+
const answer = this.originalValue;
|
|
80
118
|
const num = typeof answer === 'number' ? answer : Number(answer);
|
|
81
119
|
const correct = Number.isFinite(num) &&
|
|
82
120
|
num >= this.to['scoring']?.['answer'].min &&
|
|
@@ -88,28 +126,44 @@ export class MnlFormHelperTextInputComponent extends FieldType {
|
|
|
88
126
|
}
|
|
89
127
|
}
|
|
90
128
|
setCorrectValue() {
|
|
129
|
+
const currentHelperValue = this.currentHelperValue;
|
|
130
|
+
// If helper already has a value (user edited), don't override
|
|
131
|
+
if (currentHelperValue && currentHelperValue.trim() !== '') {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
91
134
|
switch (this.to['scoring']?.['criteria']) {
|
|
92
135
|
case 'attempted':
|
|
93
|
-
|
|
136
|
+
// For attempted, set defaultHelperText
|
|
137
|
+
this.helperFormControl.setValue('');
|
|
94
138
|
break;
|
|
95
139
|
case 'exactMatch':
|
|
96
|
-
if (Array.isArray(this.to['scoring']?.['answer'])
|
|
97
|
-
|
|
98
|
-
|
|
140
|
+
if (Array.isArray(this.to['scoring']?.['answer'])) {
|
|
141
|
+
if (this.to['scoring']?.['answer'].includes(this.originalValue)) {
|
|
142
|
+
// Answer is correct - set empty value in helper
|
|
143
|
+
this.helperFormControl.setValue('');
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
// Answer is incorrect - set defaultHelperText in helper
|
|
147
|
+
this.helperFormControl.setValue(this.defaultHelperText);
|
|
148
|
+
}
|
|
99
149
|
}
|
|
100
150
|
break;
|
|
101
151
|
case 'range':
|
|
102
|
-
const answer = this.
|
|
152
|
+
const answer = this.originalValue;
|
|
103
153
|
const num = typeof answer === 'number' ? answer : Number(answer);
|
|
104
154
|
const correct = Number.isFinite(num) &&
|
|
105
155
|
num >= this.to['scoring']?.['answer'].min &&
|
|
106
156
|
num <= this.to['scoring']?.['answer'].max;
|
|
107
|
-
if (
|
|
108
|
-
|
|
157
|
+
if (correct) {
|
|
158
|
+
// Answer is correct - set empty value in helper
|
|
159
|
+
this.helperFormControl.setValue('');
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
// Answer is incorrect - set defaultHelperText in helper
|
|
163
|
+
this.helperFormControl.setValue(this.defaultHelperText);
|
|
109
164
|
}
|
|
110
165
|
break;
|
|
111
166
|
default:
|
|
112
|
-
this.formControl?.setValue(this.defaultHelperText);
|
|
113
167
|
break;
|
|
114
168
|
}
|
|
115
169
|
}
|
|
@@ -119,20 +173,19 @@ export class MnlFormHelperTextInputComponent extends FieldType {
|
|
|
119
173
|
<!-- Helper Mode - Show toggle and conditional content -->
|
|
120
174
|
<div *ngIf="to['enableHelper']">
|
|
121
175
|
<mat-label>{{ to.label }}</mat-label>
|
|
122
|
-
<div *ngIf="
|
|
123
|
-
<span class="answer">{{
|
|
176
|
+
<div *ngIf="originalValue" class="flex-row">
|
|
177
|
+
<span class="answer">{{ originalValue }}</span>
|
|
124
178
|
<mat-slide-toggle
|
|
125
179
|
[(ngModel)]="checked"
|
|
126
180
|
(toggleChange)="toggleSlide()"
|
|
127
|
-
>{{helperLabel}}</mat-slide-toggle
|
|
181
|
+
>{{ helperLabel }}</mat-slide-toggle
|
|
128
182
|
>
|
|
129
183
|
</div>
|
|
130
184
|
|
|
131
185
|
<mat-form-field class="textarea" appearance="outline" *ngIf="checked">
|
|
132
186
|
<textarea
|
|
133
187
|
matInput
|
|
134
|
-
[formControl]="
|
|
135
|
-
[formlyAttributes]="field"
|
|
188
|
+
[formControl]="helperFormControl"
|
|
136
189
|
[readonly]="to['readonly']"
|
|
137
190
|
>
|
|
138
191
|
</textarea>
|
|
@@ -145,7 +198,7 @@ export class MnlFormHelperTextInputComponent extends FieldType {
|
|
|
145
198
|
</formly-field>
|
|
146
199
|
</div>
|
|
147
200
|
</div>
|
|
148
|
-
`, isInline: true, styles: [".helper-text-container{display:flex;flex-direction:column}.answer{font-size:12px}.textarea{margin:0!important;width:100%}.flex-row{display:flex;flex-direction:row;justify-content:space-between}.w-full{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i4.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "
|
|
201
|
+
`, isInline: true, styles: [".helper-text-container{display:flex;flex-direction:column}.answer{font-size:12px}.textarea{margin:0!important;width:100%}.flex-row{display:flex;flex-direction:row;justify-content:space-between}.w-full{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i4.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i6.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "ngmodule", type: MatNativeDateModule }] }); }
|
|
149
202
|
}
|
|
150
203
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MnlFormHelperTextInputComponent, decorators: [{
|
|
151
204
|
type: Component,
|
|
@@ -165,20 +218,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
165
218
|
<!-- Helper Mode - Show toggle and conditional content -->
|
|
166
219
|
<div *ngIf="to['enableHelper']">
|
|
167
220
|
<mat-label>{{ to.label }}</mat-label>
|
|
168
|
-
<div *ngIf="
|
|
169
|
-
<span class="answer">{{
|
|
221
|
+
<div *ngIf="originalValue" class="flex-row">
|
|
222
|
+
<span class="answer">{{ originalValue }}</span>
|
|
170
223
|
<mat-slide-toggle
|
|
171
224
|
[(ngModel)]="checked"
|
|
172
225
|
(toggleChange)="toggleSlide()"
|
|
173
|
-
>{{helperLabel}}</mat-slide-toggle
|
|
226
|
+
>{{ helperLabel }}</mat-slide-toggle
|
|
174
227
|
>
|
|
175
228
|
</div>
|
|
176
229
|
|
|
177
230
|
<mat-form-field class="textarea" appearance="outline" *ngIf="checked">
|
|
178
231
|
<textarea
|
|
179
232
|
matInput
|
|
180
|
-
[formControl]="
|
|
181
|
-
[formlyAttributes]="field"
|
|
233
|
+
[formControl]="helperFormControl"
|
|
182
234
|
[readonly]="to['readonly']"
|
|
183
235
|
>
|
|
184
236
|
</textarea>
|
|
@@ -193,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
193
245
|
</div>
|
|
194
246
|
`, styles: [".helper-text-container{display:flex;flex-direction:column}.answer{font-size:12px}.textarea{margin:0!important;width:100%}.flex-row{display:flex;flex-direction:row;justify-content:space-between}.w-full{width:100%}\n"] }]
|
|
195
247
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXUtaGVscGVyLXRleHQudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tbGliL3NyYy9saWIvdHlwZXMvbXUtaGVscGVyLXRleHQudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFxQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUdMLFlBQVksR0FDYixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7QUF1RWpELE1BQU0sT0FBTywrQkFDWCxTQUFRLFNBQTBCO0lBSWxDLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFlBQVksQ0FBQztJQUNqRSxDQUFDO0lBQ0QsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7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QixvQkFBb0IseVhBQ3BCLGVBQWUsOEJBQ2YsbUJBQW1CLDhCQUNuQixtQkFBbUI7OzRGQXdEViwrQkFBK0I7a0JBckUzQyxTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixtQkFBbUI7cUJBQ3BCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHtcbiAgRmllbGRUeXBlQ29uZmlnLFxuICBGb3JtbHlGaWVsZENvbmZpZyxcbiAgRm9ybWx5TW9kdWxlLFxufSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L21hdGVyaWFsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXUtaGVscGVyLXRleHQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIEZvcm1seU1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJoZWxwZXItdGV4dC1jb250YWluZXJcIj5cbiAgICAgIDwhLS0gSGVscGVyIE1vZGUgLSBTaG93IHRvZ2dsZSBhbmQgY29uZGl0aW9uYWwgY29udGVudCAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCJ0b1snZW5hYmxlSGVscGVyJ11cIj5cbiAgICAgICAgPG1hdC1sYWJlbD57eyB0by5sYWJlbCB9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidG9bJ3ZhbHVlJ11cIiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbnN3ZXJcIj57e3RvWyd2YWx1ZSddIH19PC9zcGFuPlxuICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNoZWNrZWRcIlxuICAgICAgICAgICAgKHRvZ2dsZUNoYW5nZSk9XCJ0b2dnbGVTbGlkZSgpXCJcbiAgICAgICAgICAgID57e2hlbHBlckxhYmVsfX08L21hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInRleHRhcmVhXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiAqbmdJZj1cImNoZWNrZWRcIj5cbiAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgICAgICAgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRvWydyZWFkb25seSddXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIERlZmF1bHQgTW9kZSAtIFNob3cgZmllbGQgZGlyZWN0bHkgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIXRvWydlbmFibGVIZWxwZXInXVwiPlxuICAgICAgICA8Zm9ybWx5LWZpZWxkICpuZ0lmPVwiZGVmYXVsdEZpZWxkQ29uZmlnXCIgW2ZpZWxkXT1cImRlZmF1bHRGaWVsZENvbmZpZ1wiPlxuICAgICAgICA8L2Zvcm1seS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IGBcbiAgICAgLmhlbHBlci10ZXh0LWNvbnRhaW5lcntcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICB9XG4gICAgIC5hbnN3ZXJ7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgIH1cbiAgICAgIC50ZXh0YXJlYXtcbiAgICAgIG1hcmdpbjogMHB4ICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgfVxuICAgICAuZmxleC1yb3d7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgfVxuICAgICAudy1mdWxse1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTW5sRm9ybUhlbHBlclRleHRJbnB1dENvbXBvbmVudFxuICBleHRlbmRzIEZpZWxkVHlwZTxGaWVsZFR5cGVDb25maWc+XG4gIGltcGxlbWVudHMgT25Jbml0XG57XG4gIGNoZWNrZWQgPSBmYWxzZTtcbiAgZ2V0IGhlbHBlckxhYmVsKCkge1xuICAgIHJldHVybiB0aGlzLnRvWydoZWxwZXJQcm9wcyddPy5bJ2hlbHBlckxhYmVsJ10gfHwgJ05lZWQgaGVscD8nO1xuICB9XG4gIGdldCBkZWZhdWx0SGVscGVyVGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy50b1snaGVscGVyUHJvcHMnXT8uWydkZWZhdWx0SGVscGVyVGV4dCddIHx8ICcnO1xuICB9XG4gIGRlZmF1bHRGaWVsZENvbmZpZz86IEZvcm1seUZpZWxkQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldHVwRGVmYXVsdEZpZWxkKCk7XG5cbiAgICAvLyBJZiBtb2RlIGlzIGhlbHBlciwgc2V0IHVwIHRoZSBpbml0aWFsIHN0YXRlIGJhc2VkIG9uIHNjb3JpbmdcbiAgICBpZiAodGhpcy50b1snZW5hYmxlSGVscGVyJ10pIHtcbiAgICAgICAgdGhpcy5zZXRDb3JyZWN0VmFsdWUoKTtcbiAgICAgIHRoaXMuZGV0ZXJtaW5lSW5pdGlhbFN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlU2xpZGUoKSB7XG4gICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBzZXR1cERlZmF1bHRGaWVsZCgpIHtcbiAgICBjb25zdCBmaWVsZENvbmZpZyA9IHRoaXMudG9bJ2RlZmF1bHRGaWVsZENvbmZpZyddO1xuICAgIGlmIChmaWVsZENvbmZpZykge1xuICAgICAgdGhpcy5kZWZhdWx0RmllbGRDb25maWcgPSB7XG4gICAgICAgIC4uLmZpZWxkQ29uZmlnLFxuICAgICAgICBrZXk6IHRoaXMuZmllbGQua2V5IHx8IGZpZWxkQ29uZmlnLmtleSB8fCAnZGVmYXVsdEtleScsXG4gICAgICAgIGZvcm1Db250cm9sOiB0aGlzLmZvcm1Db250cm9sLFxuICAgICAgICAvLyBBZGQgcmVxdWlyZWQgcHJvcGVydGllcyB0aGF0IGZvcm1seSBleHBlY3RzXG4gICAgICAgIG1vZGVsT3B0aW9uczogZmllbGRDb25maWcubW9kZWxPcHRpb25zIHx8IHRoaXMuZmllbGQubW9kZWxPcHRpb25zIHx8IHt9LFxuICAgICAgICB2YWxpZGF0b3JzOiBmaWVsZENvbmZpZy52YWxpZGF0b3JzIHx8IHRoaXMuZmllbGQudmFsaWRhdG9ycyB8fCB7fSxcbiAgICAgICAgYXN5bmNWYWxpZGF0b3JzOlxuICAgICAgICAgIGZpZWxkQ29uZmlnLmFzeW5jVmFsaWRhdG9ycyB8fCB0aGlzLmZpZWxkLmFzeW5jVmFsaWRhdG9ycyB8fCB7fSxcbiAgICAgICAgaG9va3M6IGZpZWxkQ29uZmlnLmhvb2tzIHx8IHRoaXMuZmllbGQuaG9va3MgfHwge30sXG4gICAgICAgIGV4cHJlc3Npb25zOiBmaWVsZENvbmZpZy5leHByZXNzaW9ucyB8fCB0aGlzLmZpZWxkLmV4cHJlc3Npb25zIHx8IHt9LFxuICAgICAgICBoaWRlOiBmaWVsZENvbmZpZy5oaWRlICE9PSB1bmRlZmluZWQgPyBmaWVsZENvbmZpZy5oaWRlIDogZmFsc2UsXG4gICAgICAgIGNsYXNzTmFtZTogZmllbGRDb25maWcuY2xhc3NOYW1lIHx8IHRoaXMuZmllbGQuY2xhc3NOYW1lIHx8ICcnLFxuICAgICAgICBmaWVsZEdyb3VwQ2xhc3NOYW1lOlxuICAgICAgICAgIGZpZWxkQ29uZmlnLmZpZWxkR3JvdXBDbGFzc05hbWUgfHxcbiAgICAgICAgICB0aGlzLmZpZWxkLmZpZWxkR3JvdXBDbGFzc05hbWUgfHxcbiAgICAgICAgICAnJyxcbiAgICAgICAgLy8gSW5oZXJpdCBwYXJlbnQgZmllbGQncyBmb3JtIGFuZCBtb2RlbFxuICAgICAgICBwYXJlbnQ6IHRoaXMuZmllbGQucGFyZW50LFxuICAgICAgICBvcHRpb25zOiB0aGlzLmZpZWxkLm9wdGlvbnMsXG4gICAgICAgIG1vZGVsOiB0aGlzLmZpZWxkLm1vZGVsLFxuICAgICAgICBmb3JtOiB0aGlzLmZpZWxkLmZvcm0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGRldGVybWluZUluaXRpYWxTdGF0ZSgpIHtcbiAgICAvLyBBdXRvLW9wZW4gaGVscGVyIGJhc2VkIG9uIHNjb3JpbmcgY3JpdGVyaWFcbiAgICBzd2l0Y2ggKHRoaXMudG9bJ3Njb3JpbmcnXT8uWydjcml0ZXJpYSddKSB7XG4gICAgICBjYXNlICdleGFjdE1hdGNoJzpcbiAgICAgICAgaWYgKFxuICAgICAgICAgIEFycmF5LmlzQXJyYXkodGhpcy50b1snc2NvcmluZyddPy5bJ2Fuc3dlciddKSAmJlxuICAgICAgICAgICF0aGlzLnRvWydzY29yaW5nJ10/LlsnYW5zd2VyJ10uaW5jbHVkZXModGhpcy50b1sndmFsdWUnXSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncmFuZ2UnOlxuICAgICAgICBjb25zdCBhbnN3ZXIgPSB0aGlzLnRvWyd2YWx1ZSddO1xuICAgICAgICBjb25zdCBudW0gPSB0eXBlb2YgYW5zd2VyID09PSAnbnVtYmVyJyA/IGFuc3dlciA6IE51bWJlcihhbnN3ZXIpO1xuXG4gICAgICAgIGNvbnN0IGNvcnJlY3QgPVxuICAgICAgICAgIE51bWJlci5pc0Zpbml0ZShudW0pICYmXG4gICAgICAgICAgbnVtID49IHRoaXMudG9bJ3Njb3JpbmcnXT8uWydhbnN3ZXInXS5taW4gJiZcbiAgICAgICAgICBudW0gPD0gdGhpcy50b1snc2NvcmluZyddPy5bJ2Fuc3dlciddLm1heDtcblxuICAgICAgICBpZiAoIWNvcnJlY3QpIHtcbiAgICAgICAgICB0aGlzLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHNldENvcnJlY3RWYWx1ZSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMudG9bJ3Njb3JpbmcnXT8uWydjcml0ZXJpYSddKSB7XG4gICAgICBjYXNlICdhdHRlbXB0ZWQnOlxuICAgICAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRWYWx1ZSh0aGlzLmRlZmF1bHRIZWxwZXJUZXh0KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2V4YWN0TWF0Y2gnOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgQXJyYXkuaXNBcnJheSh0aGlzLnRvWydzY29yaW5nJ10/LlsnYW5zd2VyJ10pICYmXG4gICAgICAgICAgIXRoaXMudG9bJ3Njb3JpbmcnXT8uWydhbnN3ZXInXS5pbmNsdWRlcyh0aGlzLnRvWyd2YWx1ZSddKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRWYWx1ZSh0aGlzLmRlZmF1bHRIZWxwZXJUZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncmFuZ2UnOlxuICAgICAgICBjb25zdCBhbnN3ZXIgPSB0aGlzLnRvWyd2YWx1ZSddO1xuICAgICAgICBjb25zdCBudW0gPSB0eXBlb2YgYW5zd2VyID09PSAnbnVtYmVyJyA/IGFuc3dlciA6IE51bWJlcihhbnN3ZXIpO1xuXG4gICAgICAgIGNvbnN0IGNvcnJlY3QgPVxuICAgICAgICAgIE51bWJlci5pc0Zpbml0ZShudW0pICYmXG4gICAgICAgICAgbnVtID49IHRoaXMudG9bJ3Njb3JpbmcnXT8uWydhbnN3ZXInXS5taW4gJiZcbiAgICAgICAgICBudW0gPD0gdGhpcy50b1snc2NvcmluZyddPy5bJ2Fuc3dlciddLm1heDtcblxuICAgICAgICBpZiAoIWNvcnJlY3QpIHtcbiAgICAgICAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRWYWx1ZSh0aGlzLmRlZmF1bHRIZWxwZXJUZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0VmFsdWUodGhpcy5kZWZhdWx0SGVscGVyVGV4dCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXUtaGVscGVyLXRleHQudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tbGliL3NyYy9saWIvdHlwZXMvbXUtaGVscGVyLXRleHQudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFxQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFHTCxZQUFZLEdBQ2IsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBc0VqRCxNQUFNLE9BQU8sK0JBQ1gsU0FBUSxTQUEwQjtJQU1sQyxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxZQUFZLENBQUM7SUFDakUsQ0FBQztJQUNELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLElBQUks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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXROYXRpdmVEYXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7XG4gIEZpZWxkVHlwZUNvbmZpZyxcbiAgRm9ybWx5RmllbGRDb25maWcsXG4gIEZvcm1seU1vZHVsZSxcbn0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ211LWhlbHBlci10ZXh0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBGb3JtbHlNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiaGVscGVyLXRleHQtY29udGFpbmVyXCI+XG4gICAgICA8IS0tIEhlbHBlciBNb2RlIC0gU2hvdyB0b2dnbGUgYW5kIGNvbmRpdGlvbmFsIGNvbnRlbnQgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwidG9bJ2VuYWJsZUhlbHBlciddXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+e3sgdG8ubGFiZWwgfX08L21hdC1sYWJlbD5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm9yaWdpbmFsVmFsdWVcIiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbnN3ZXJcIj57eyBvcmlnaW5hbFZhbHVlIH19PC9zcGFuPlxuICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNoZWNrZWRcIlxuICAgICAgICAgICAgKHRvZ2dsZUNoYW5nZSk9XCJ0b2dnbGVTbGlkZSgpXCJcbiAgICAgICAgICAgID57eyBoZWxwZXJMYWJlbCB9fTwvbWF0LXNsaWRlLXRvZ2dsZVxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidGV4dGFyZWFcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiICpuZ0lmPVwiY2hlY2tlZFwiPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJoZWxwZXJGb3JtQ29udHJvbFwiXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwidG9bJ3JlYWRvbmx5J11cIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gRGVmYXVsdCBNb2RlIC0gU2hvdyBmaWVsZCBkaXJlY3RseSAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCIhdG9bJ2VuYWJsZUhlbHBlciddXCI+XG4gICAgICAgIDxmb3JtbHktZmllbGQgKm5nSWY9XCJkZWZhdWx0RmllbGRDb25maWdcIiBbZmllbGRdPVwiZGVmYXVsdEZpZWxkQ29uZmlnXCI+XG4gICAgICAgIDwvZm9ybWx5LWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogYFxuICAgICAuaGVscGVyLXRleHQtY29udGFpbmVye1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgIH1cbiAgICAgLmFuc3dlcntcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgfVxuICAgICAgLnRleHRhcmVhe1xuICAgICAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICB9XG4gICAgIC5mbGV4LXJvd3tcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICB9XG4gICAgIC53LWZ1bGx7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgfVxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBNbmxGb3JtSGVscGVyVGV4dElucHV0Q29tcG9uZW50XG4gIGV4dGVuZHMgRmllbGRUeXBlPEZpZWxkVHlwZUNvbmZpZz5cbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgY2hlY2tlZCA9IGZhbHNlO1xuICBoZWxwZXJGb3JtQ29udHJvbCE6IEZvcm1Db250cm9sOyAvLyBTZXBhcmF0ZSBmb3JtIGNvbnRyb2wgZm9yIGhlbHBlciBtb2RlbFxuXG4gIGdldCBoZWxwZXJMYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy50b1snaGVscGVyUHJvcHMnXT8uWydoZWxwZXJMYWJlbCddIHx8ICdOZWVkIGhlbHA/JztcbiAgfVxuICBnZXQgZGVmYXVsdEhlbHBlclRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9bJ2hlbHBlclByb3BzJ10/LlsnZGVmYXVsdEhlbHBlclRleHQnXSB8fCAnJztcbiAgfVxuXG4gIC8vIEdldCB2YWx1ZSBmcm9tIHByaW1hcnkgbW9kZWwgKGFuc3dlcnMpXG4gIGdldCBvcmlnaW5hbFZhbHVlKCkge1xuICAgIGNvbnN0IGZpZWxkS2V5ID0gdGhpcy5maWVsZC5rZXkgYXMgc3RyaW5nO1xuICAgIHJldHVybiB0aGlzLmZpZWxkLm1vZGVsPy5bZmllbGRLZXldO1xuICB9XG5cbiAgLy8gR2V0L1NldCB2YWx1ZSBmcm9tIHNlY29uZGFyeSBtb2RlbCAoaGVscGVyKVxuICBnZXQgaGVscGVyTW9kZWwoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudG9bJ2hlbHBlck1vZGVsJ10gfHxcbiAgICAgIHRoaXMucHJvcHNbJ2hlbHBlck1vZGVsJ10gfHxcbiAgICAgIHRoaXMub3B0aW9ucz8uZm9ybVN0YXRlPy5bJ2hlbHBlck1vZGVsJ11cbiAgICApO1xuICB9XG5cbiAgZ2V0IGhlbHBlcktleSgpIHtcbiAgICByZXR1cm4gdGhpcy50b1snaGVscGVyS2V5J10gfHwgdGhpcy5maWVsZC5rZXk7XG4gIH1cblxuICBnZXQgY3VycmVudEhlbHBlclZhbHVlKCkge1xuICAgIGlmICh0aGlzLmhlbHBlck1vZGVsICYmIHRoaXMuaGVscGVyS2V5KSB7XG4gICAgICByZXR1cm4gdGhpcy5oZWxwZXJNb2RlbFt0aGlzLmhlbHBlcktleSBhcyBzdHJpbmddO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBzZXQgY3VycmVudEhlbHBlclZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5oZWxwZXJNb2RlbCAmJiB0aGlzLmhlbHBlcktleSkge1xuICAgICAgdGhpcy5oZWxwZXJNb2RlbFt0aGlzLmhlbHBlcktleSBhcyBzdHJpbmddID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZGVmYXVsdEZpZWxkQ29uZmlnPzogRm9ybWx5RmllbGRDb25maWc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIEluaXRpYWxpemUgaGVscGVyIGZvcm0gY29udHJvbCB3aXRoIHZhbHVlIGZyb20gaGVscGVyIG1vZGVsXG4gICAgdGhpcy5oZWxwZXJGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh0aGlzLmN1cnJlbnRIZWxwZXJWYWx1ZSB8fCAnJyk7XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gY2hhbmdlcyBpbiBoZWxwZXIgZm9ybSBjb250cm9sIGFuZCB1cGRhdGUgaGVscGVyIG1vZGVsXG4gICAgdGhpcy5oZWxwZXJGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5jdXJyZW50SGVscGVyVmFsdWUgPSB2YWx1ZTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2V0dXBEZWZhdWx0RmllbGQoKTtcblxuICAgIGlmICh0aGlzLnRvWydlbmFibGVIZWxwZXInXSkge1xuICAgICAgdGhpcy5zZXRDb3JyZWN0VmFsdWUoKTtcbiAgICAgIHRoaXMuZGV0ZXJtaW5lSW5pdGlhbFN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlU2xpZGUoKSB7XG4gICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICBpZiAodGhpcy5jaGVja2VkKSB7XG4gICAgICAvLyBXaGVuIHRvZ2dsZSBpcyBvcGVuZWQsIGNoZWNrIGlmIGhlbHBlciBmaWVsZCBpcyBlbXB0eVxuICAgICAgY29uc3QgY3VycmVudGhlbHBlciA9IHRoaXMuaGVscGVyRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICBpZiAoIWN1cnJlbnRoZWxwZXIgfHwgY3VycmVudGhlbHBlci50cmltKCkgPT09ICcnKSB7XG4gICAgICAgIHRoaXMuaGVscGVyRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5kZWZhdWx0SGVscGVyVGV4dCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGVscGVyRm9ybUNvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBzZXR1cERlZmF1bHRGaWVsZCgpIHtcbiAgICBjb25zdCBmaWVsZENvbmZpZyA9IHRoaXMudG9bJ2RlZmF1bHRGaWVsZENvbmZpZyddO1xuICAgIGlmIChmaWVsZENvbmZpZykge1xuICAgICAgdGhpcy5kZWZhdWx0RmllbGRDb25maWcgPSB7XG4gICAgICAgIC4uLmZpZWxkQ29uZmlnLFxuICAgICAgICBrZXk6IHRoaXMuZmllbGQua2V5IHx8IGZpZWxkQ29uZmlnLmtleSB8fCAnZGVmYXVsdEtleScsXG4gICAgICAgIGZvcm1Db250cm9sOiB0aGlzLmZvcm1Db250cm9sLFxuICAgICAgICBtb2RlbE9wdGlvbnM6IGZpZWxkQ29uZmlnLm1vZGVsT3B0aW9ucyB8fCB0aGlzLmZpZWxkLm1vZGVsT3B0aW9ucyB8fCB7fSxcbiAgICAgICAgdmFsaWRhdG9yczogZmllbGRDb25maWcudmFsaWRhdG9ycyB8fCB0aGlzLmZpZWxkLnZhbGlkYXRvcnMgfHwge30sXG4gICAgICAgIGFzeW5jVmFsaWRhdG9yczpcbiAgICAgICAgICBmaWVsZENvbmZpZy5hc3luY1ZhbGlkYXRvcnMgfHwgdGhpcy5maWVsZC5hc3luY1ZhbGlkYXRvcnMgfHwge30sXG4gICAgICAgIGhvb2tzOiBmaWVsZENvbmZpZy5ob29rcyB8fCB0aGlzLmZpZWxkLmhvb2tzIHx8IHt9LFxuICAgICAgICBleHByZXNzaW9uczogZmllbGRDb25maWcuZXhwcmVzc2lvbnMgfHwgdGhpcy5maWVsZC5leHByZXNzaW9ucyB8fCB7fSxcbiAgICAgICAgaGlkZTogZmllbGRDb25maWcuaGlkZSAhPT0gdW5kZWZpbmVkID8gZmllbGRDb25maWcuaGlkZSA6IGZhbHNlLFxuICAgICAgICBjbGFzc05hbWU6IGZpZWxkQ29uZmlnLmNsYXNzTmFtZSB8fCB0aGlzLmZpZWxkLmNsYXNzTmFtZSB8fCAnJyxcbiAgICAgICAgZmllbGRHcm91cENsYXNzTmFtZTpcbiAgICAgICAgICBmaWVsZENvbmZpZy5maWVsZEdyb3VwQ2xhc3NOYW1lIHx8XG4gICAgICAgICAgdGhpcy5maWVsZC5maWVsZEdyb3VwQ2xhc3NOYW1lIHx8XG4gICAgICAgICAgJycsXG4gICAgICAgIHBhcmVudDogdGhpcy5maWVsZC5wYXJlbnQsXG4gICAgICAgIG9wdGlvbnM6IHRoaXMuZmllbGQub3B0aW9ucyxcbiAgICAgICAgbW9kZWw6IHRoaXMuZmllbGQubW9kZWwsXG4gICAgICAgIGZvcm06IHRoaXMuZmllbGQuZm9ybSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgZGV0ZXJtaW5lSW5pdGlhbFN0YXRlKCkge1xuICAgIC8vIEF1dG8tb3BlbiBoZWxwZXIgYmFzZWQgb24gc2NvcmluZyBjcml0ZXJpYVxuICAgIHN3aXRjaCAodGhpcy50b1snc2NvcmluZyddPy5bJ2NyaXRlcmlhJ10pIHtcbiAgICAgIGNhc2UgJ2V4YWN0TWF0Y2gnOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgQXJyYXkuaXNBcnJheSh0aGlzLnRvWydzY29yaW5nJ10/LlsnYW5zd2VyJ10pICYmXG4gICAgICAgICAgIXRoaXMudG9bJ3Njb3JpbmcnXT8uWydhbnN3ZXInXS5pbmNsdWRlcyh0aGlzLm9yaWdpbmFsVmFsdWUpXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3JhbmdlJzpcbiAgICAgICAgY29uc3QgYW5zd2VyID0gdGhpcy5vcmlnaW5hbFZhbHVlO1xuICAgICAgICBjb25zdCBudW0gPSB0eXBlb2YgYW5zd2VyID09PSAnbnVtYmVyJyA/IGFuc3dlciA6IE51bWJlcihhbnN3ZXIpO1xuXG4gICAgICAgIGNvbnN0IGNvcnJlY3QgPVxuICAgICAgICAgIE51bWJlci5pc0Zpbml0ZShudW0pICYmXG4gICAgICAgICAgbnVtID49IHRoaXMudG9bJ3Njb3JpbmcnXT8uWydhbnN3ZXInXS5taW4gJiZcbiAgICAgICAgICBudW0gPD0gdGhpcy50b1snc2NvcmluZyddPy5bJ2Fuc3dlciddLm1heDtcblxuICAgICAgICBpZiAoIWNvcnJlY3QpIHtcbiAgICAgICAgICB0aGlzLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHNldENvcnJlY3RWYWx1ZSgpIHtcbiAgICBjb25zdCBjdXJyZW50SGVscGVyVmFsdWUgPSB0aGlzLmN1cnJlbnRIZWxwZXJWYWx1ZTtcblxuICAgIC8vIElmIGhlbHBlciBhbHJlYWR5IGhhcyBhIHZhbHVlICh1c2VyIGVkaXRlZCksIGRvbid0IG92ZXJyaWRlXG4gICAgaWYgKGN1cnJlbnRIZWxwZXJWYWx1ZSAmJiBjdXJyZW50SGVscGVyVmFsdWUudHJpbSgpICE9PSAnJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy50b1snc2NvcmluZyddPy5bJ2NyaXRlcmlhJ10pIHtcbiAgICAgIGNhc2UgJ2F0dGVtcHRlZCc6XG4gICAgICAgIC8vIEZvciBhdHRlbXB0ZWQsIHNldCBkZWZhdWx0SGVscGVyVGV4dFxuICAgICAgICB0aGlzLmhlbHBlckZvcm1Db250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2V4YWN0TWF0Y2gnOlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnRvWydzY29yaW5nJ10/LlsnYW5zd2VyJ10pKSB7XG4gICAgICAgICAgaWYgKHRoaXMudG9bJ3Njb3JpbmcnXT8uWydhbnN3ZXInXS5pbmNsdWRlcyh0aGlzLm9yaWdpbmFsVmFsdWUpKSB7XG4gICAgICAgICAgICAvLyBBbnN3ZXIgaXMgY29ycmVjdCAtIHNldCBlbXB0eSB2YWx1ZSBpbiBoZWxwZXJcbiAgICAgICAgICAgIHRoaXMuaGVscGVyRm9ybUNvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBBbnN3ZXIgaXMgaW5jb3JyZWN0IC0gc2V0IGRlZmF1bHRIZWxwZXJUZXh0IGluIGhlbHBlclxuICAgICAgICAgICAgdGhpcy5oZWxwZXJGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmRlZmF1bHRIZWxwZXJUZXh0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3JhbmdlJzpcbiAgICAgICAgY29uc3QgYW5zd2VyID0gdGhpcy5vcmlnaW5hbFZhbHVlO1xuICAgICAgICBjb25zdCBudW0gPSB0eXBlb2YgYW5zd2VyID09PSAnbnVtYmVyJyA/IGFuc3dlciA6IE51bWJlcihhbnN3ZXIpO1xuXG4gICAgICAgIGNvbnN0IGNvcnJlY3QgPVxuICAgICAgICAgIE51bWJlci5pc0Zpbml0ZShudW0pICYmXG4gICAgICAgICAgbnVtID49IHRoaXMudG9bJ3Njb3JpbmcnXT8uWydhbnN3ZXInXS5taW4gJiZcbiAgICAgICAgICBudW0gPD0gdGhpcy50b1snc2NvcmluZyddPy5bJ2Fuc3dlciddLm1heDtcblxuICAgICAgICBpZiAoY29ycmVjdCkge1xuICAgICAgICAgIC8vIEFuc3dlciBpcyBjb3JyZWN0IC0gc2V0IGVtcHR5IHZhbHVlIGluIGhlbHBlclxuICAgICAgICAgIHRoaXMuaGVscGVyRm9ybUNvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEFuc3dlciBpcyBpbmNvcnJlY3QgLSBzZXQgZGVmYXVsdEhlbHBlclRleHQgaW4gaGVscGVyXG4gICAgICAgICAgdGhpcy5oZWxwZXJGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmRlZmF1bHRIZWxwZXJUZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iXX0=
|