@glowgreen/gg-questionnaire-v2 0.0.12 → 0.0.14
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 +1187 -1132
- 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/glowgreen-gg-questionnaire-v2.js +1 -1
- package/esm2015/lib/enums/condition-relationship.enum.js +1 -1
- package/esm2015/lib/enums/condition-type.enum.js +1 -1
- package/esm2015/lib/enums/input-type.enum.js +1 -1
- package/esm2015/lib/enums/question-type.enum.js +1 -1
- package/esm2015/lib/enums/repeater-question-type.enum.js +1 -1
- package/esm2015/lib/enums/validation-type.enum.js +1 -1
- package/esm2015/lib/gg-questionnaire-v2.module.js +1 -1
- package/esm2015/lib/interfaces/attachment.js +1 -1
- package/esm2015/lib/interfaces/checklist-item.js +1 -1
- package/esm2015/lib/interfaces/condition-group.js +1 -1
- package/esm2015/lib/interfaces/condition.js +1 -1
- package/esm2015/lib/interfaces/question.js +1 -1
- package/esm2015/lib/interfaces/questionnaire-options.js +1 -1
- package/esm2015/lib/interfaces/questionnaire.js +1 -1
- package/esm2015/lib/interfaces/repeater-question.js +1 -1
- package/esm2015/lib/interfaces/section.js +1 -1
- package/esm2015/lib/interfaces/select-option.js +1 -1
- package/esm2015/lib/interfaces/validator.js +1 -1
- package/esm2015/lib/services/filter.service.js +2 -2
- package/esm2015/lib/services/form-constructor.service.js +2 -2
- package/esm2015/lib/services/questionnaire.service.js +5 -5
- package/esm2015/public_api.js +1 -1
- package/esm5/glowgreen-gg-questionnaire-v2.js +1 -1
- package/esm5/lib/enums/condition-relationship.enum.js +1 -1
- package/esm5/lib/enums/condition-type.enum.js +1 -1
- package/esm5/lib/enums/input-type.enum.js +1 -1
- package/esm5/lib/enums/question-type.enum.js +1 -1
- package/esm5/lib/enums/repeater-question-type.enum.js +1 -1
- package/esm5/lib/enums/validation-type.enum.js +1 -1
- package/esm5/lib/gg-questionnaire-v2.module.js +1 -1
- package/esm5/lib/interfaces/attachment.js +1 -1
- package/esm5/lib/interfaces/checklist-item.js +1 -1
- package/esm5/lib/interfaces/condition-group.js +1 -1
- package/esm5/lib/interfaces/condition.js +1 -1
- package/esm5/lib/interfaces/question.js +1 -1
- package/esm5/lib/interfaces/questionnaire-options.js +1 -1
- package/esm5/lib/interfaces/questionnaire.js +1 -1
- package/esm5/lib/interfaces/repeater-question.js +1 -1
- package/esm5/lib/interfaces/section.js +1 -1
- package/esm5/lib/interfaces/select-option.js +1 -1
- package/esm5/lib/interfaces/validator.js +1 -1
- package/esm5/lib/services/filter.service.js +6 -6
- package/esm5/lib/services/form-constructor.service.js +5 -5
- package/esm5/lib/services/questionnaire.service.js +12 -11
- package/esm5/public_api.js +1 -1
- package/fesm2015/glowgreen-gg-questionnaire-v2.js +97 -23
- package/fesm2015/glowgreen-gg-questionnaire-v2.js.map +1 -1
- package/fesm5/glowgreen-gg-questionnaire-v2.js +109 -34
- package/fesm5/glowgreen-gg-questionnaire-v2.js.map +1 -1
- package/lib/services/questionnaire.service.d.ts +8 -8
- package/package.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
import { Injectable } from '@angular/core';
|
|
@@ -382,7 +382,7 @@ var FormConstructorService = /** @class */ (function () {
|
|
|
382
382
|
for (var sections_2 = tslib_1.__values(sections), sections_2_1 = sections_2.next(); !sections_2_1.done; sections_2_1 = sections_2.next()) {
|
|
383
383
|
var section = sections_2_1.value;
|
|
384
384
|
try {
|
|
385
|
-
for (var _d = tslib_1.__values(section.questions), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
385
|
+
for (var _d = (e_7 = void 0, tslib_1.__values(section.questions)), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
386
386
|
var question = _e.value;
|
|
387
387
|
if (question.type !== QuestionType.Repeater) {
|
|
388
388
|
continue;
|
|
@@ -399,7 +399,7 @@ var FormConstructorService = /** @class */ (function () {
|
|
|
399
399
|
}
|
|
400
400
|
try {
|
|
401
401
|
// For each item that used to be there push a new empty template there to be populated.
|
|
402
|
-
for (var repeaterArray_1 = tslib_1.__values(repeaterArray), repeaterArray_1_1 = repeaterArray_1.next(); !repeaterArray_1_1.done; repeaterArray_1_1 = repeaterArray_1.next()) {
|
|
402
|
+
for (var repeaterArray_1 = (e_8 = void 0, tslib_1.__values(repeaterArray)), repeaterArray_1_1 = repeaterArray_1.next(); !repeaterArray_1_1.done; repeaterArray_1_1 = repeaterArray_1.next()) {
|
|
403
403
|
var repeaterItem = repeaterArray_1_1.value;
|
|
404
404
|
/** @type {?} */
|
|
405
405
|
var repeaterItemTemplate = this.generateFormsForRepeater(question);
|
|
@@ -442,7 +442,7 @@ var FormConstructorService = /** @class */ (function () {
|
|
|
442
442
|
{ type: FormBuilder },
|
|
443
443
|
{ type: FilterService }
|
|
444
444
|
]; };
|
|
445
|
-
/** @nocollapse */ FormConstructorService.ngInjectableDef = i0
|
|
445
|
+
/** @nocollapse */ FormConstructorService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function FormConstructorService_Factory() { return new FormConstructorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(i2.FilterService)); }, token: FormConstructorService, providedIn: "root" });
|
|
446
446
|
return FormConstructorService;
|
|
447
447
|
}());
|
|
448
448
|
export { FormConstructorService };
|
|
@@ -458,4 +458,4 @@ if (false) {
|
|
|
458
458
|
*/
|
|
459
459
|
FormConstructorService.prototype.filterService;
|
|
460
460
|
}
|
|
461
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb25zdHJ1Y3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdsb3dncmVlbi9nZy1xdWVzdGlvbm5haXJlLXYyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2Zvcm0tY29uc3RydWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBd0QsVUFBVSxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFJMUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFLL0Q7SUFLRSxnQ0FDVSxFQUFlLEVBQ2YsYUFBNEI7UUFENUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQ2xDLENBQUM7SUFFTDs7Ozs7O09BTUc7Ozs7Ozs7Ozs7O0lBQ0ksOERBQTZCOzs7Ozs7Ozs7O0lBQXBDLFVBQ0UsYUFBNEIsRUFDNUIsd0JBQW1DLEVBQ25DLGNBQXVCLEVBQ3ZCLFVBQW9COztZQUVkLFFBQVEsR0FBRyxVQUFVLENBQUMsQ0FBQztZQUMzQixhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxjQUFjLENBQUM7O1lBQy9GLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCLENBQUM7UUFDNUYsT0FBTyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFDLENBQUM7SUFDekQsQ0FBQzs7Ozs7OztJQUVPLHlEQUF3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NEJBRUssYUFBYSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQzt3QkFDN0QsSUFBSSxDQUFDLGFBQWEsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTs0QkFDaEQsU0FBUzt5QkFDVjs7NEJBRUssaUJBQWlCLEdBQUcsbUJBQUEsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBYTt3QkFFbEcsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxNQUFNLEVBQUU7NEJBQzlELFNBQVM7eUJBQ1Y7OzRCQUVELHVGQUF1Rjs0QkFDdkYsS0FBMkIsSUFBQSxrQkFBQSxpQkFBQSxhQUFhLENBQUEsNENBQUEsdUVBQUU7Z0NBQXJDLElBQU0sWUFBWSwwQkFBQTs7b0NBQ2Ysb0JBQW9CLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQztnQ0FDcEUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7NkJBQzlDOzs7Ozs7Ozs7cUJBQ0Y7Ozs7Ozs7OzthQUNGOzs7Ozs7Ozs7SUFDSCxDQUFDOztnQkE5TEYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFkUSxXQUFXO2dCQUtYLGFBQWE7OztpQ0FOdEI7Q0E0TUMsQUEvTEQsSUErTEM7U0E1TFksc0JBQXNCOzs7Ozs7SUFHL0Isb0NBQXVCOzs7OztJQUN2QiwrQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCwgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycywgRm9ybUFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2VjdGlvbic7XG5pbXBvcnQgeyBRdWVzdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcXVlc3Rpb24nO1xuaW1wb3J0IHsgUXVlc3Rpb25uYWlyZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcXVlc3Rpb25uYWlyZSc7XG5pbXBvcnQgeyBRdWVzdGlvblR5cGUgfSBmcm9tICcuLi9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgRmlsdGVyU2VydmljZSB9IGZyb20gJy4vZmlsdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy92YWxpZGF0b3InO1xuaW1wb3J0IHsgVmFsaWRhdGlvblR5cGUgfSBmcm9tICcuLi9lbnVtcy92YWxpZGF0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBSZXBlYXRlclF1ZXN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBlYXRlci1xdWVzdGlvbic7XG5pbXBvcnQgeyBDaGVja2xpc3RJdGVtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jaGVja2xpc3QtaXRlbSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Db25zdHJ1Y3RvclNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZmlsdGVyU2VydmljZTogRmlsdGVyU2VydmljZVxuICApIHsgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgZm9ybSBncm91cCBiYXNlZCBvbiB0aGUgcXVlc3Rpb25uYWlyZSBkYXRhLlxuICAgKiBUaGlzIGZvcm0gZ3JvdXAgaGFzIGJlZW4gZmlsdGVyZWQgZG93biBiYXNlZCBvbiB0aGUgY29uZGl0aW9ucyBvZiB0aGUgc2VjdGlvbnMgYW5kIHF1ZXN0aW9ucy5cbiAgICogQHBhcmFtIHF1ZXN0aW9ubmFpcmUgVGhlIHF1ZXN0aW9ubmFpcmUgZGF0YSB0byBidWlsZCB0aGUgZm9ybSBncm91cCBvbi5cbiAgICogQHJldHVybnMgQSBmaWx0ZWQgZm9ybSBncm91cC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBnZW5lcmF0ZUZvcm1zRm9yUXVlc3Rpb25uYWlyZShcbiAgICBxdWVzdGlvbm5haXJlOiBRdWVzdGlvbm5haXJlLFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwLFxuICAgIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0LFxuICAgIHNraXBGaWx0ZXI/OiBib29sZWFuXG4gICk6IHtzZWN0aW9uczogQXJyYXk8U2VjdGlvbj47IGZvcm1zOiBGb3JtR3JvdXB9IHtcbiAgICBjb25zdCBzZWN0aW9ucyA9IHNraXBGaWx0ZXIgP1xuICAgICAgcXVlc3Rpb25uYWlyZS5zZWN0aW9ucyA6XG4gICAgICB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyU2VjdGlvbnMocXVlc3Rpb25uYWlyZS5zZWN0aW9ucywgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSk7XG4gICAgY29uc3QgcXVlc3Rpb25uYWlyZUZvcm1zID0gdGhpcy5nZW5lcmF0ZUZvcm1zRm9yU2VjdGlvbnMoc2VjdGlvbnMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSk7XG4gICAgcmV0dXJuIHtzZWN0aW9uczogc2VjdGlvbnMsIGZvcm1zOiBxdWVzdGlvbm5haXJlRm9ybXN9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUZvcm1zRm9yU2VjdGlvbnMoc2VjdGlvbnM6IEFycmF5PFNlY3Rpb24+LCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCkge1xuICAgIGNvbnN0IHF1ZXN0aW9ubmFpcmVGb3JtczogRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7fSk7XG4gICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHNlY3Rpb25zKSB7XG4gICAgICBjb25zdCBzZWN0aW9uRm9ybXMgPSB0aGlzLmdlbmVyYXRlRm9ybXNGb3JTZWN0aW9uKHNlY3Rpb24sIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSk7XG4gICAgICBxdWVzdGlvbm5haXJlRm9ybXMuYWRkQ29udHJvbChzZWN0aW9uLm5hbWUsIHNlY3Rpb25Gb3Jtcyk7XG4gICAgfVxuICAgIHJldHVybiBxdWVzdGlvbm5haXJlRm9ybXM7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIGZvcm0gZ3JvdXAgYmFzZWQgb24gdGhlIHNlY3Rpb24gZGF0YS5cbiAgICogVGhpcyBmb3JtIGdyb3VwIGhhcyBiZWVuIGZpbHRlcmVkIGRvd24gYmFzZWQgb24gdGhlIGNvbmRpdGlvbnMgb2YgdGhlIHF1ZXN0aW9ucy5cbiAgICogQHBhcmFtIHNlY3Rpb24gVGhlIHNlY3Rpb24gZGF0YSB0byBidWlsZCB0aGUgZm9ybSBncm91cCBvbi5cbiAgICogQHJldHVybnMgQSBmaWx0ZXJlZCBmb3JtIGdyb3VwLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZUZvcm1zRm9yU2VjdGlvbihzZWN0aW9uOiBTZWN0aW9uLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCk6IEZvcm1Hcm91cCB7XG4gICAgY29uc3Qgc2VjdGlvbkZvcm1zOiBGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcbiAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIG9mIHNlY3Rpb24ucXVlc3Rpb25zKSB7XG4gICAgICBjb25zdCBxdWVzdGlvbkNvbnRyb2wgPSB0aGlzLmdlbmVyYXRlQ29udHJvbEZvclF1ZXN0aW9uKHF1ZXN0aW9uLCBzZWN0aW9uLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0pO1xuICAgICAgc2VjdGlvbkZvcm1zLmFkZENvbnRyb2wocXVlc3Rpb24ubmFtZSwgcXVlc3Rpb25Db250cm9sKTtcbiAgICB9XG4gICAgcmV0dXJuIHNlY3Rpb25Gb3JtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGFuIGFzdHJhY3QgZm9ybSBjb250cm9sIGJhc2VkIG9uIHRoZSBxdWVzdGlvbiBkYXRhLlxuICAgKiBAcGFyYW0gcXVlc3Rpb24gVGhlIHF1ZXN0aW9uIGRhdGEgdG8gYnVpbGQgdGhlIGFic3RyYWN0IGNvbnRyb2wgb24uXG4gICAqIEByZXR1cm5zIEFuIGFic3RyYWN0IGNvbnRyb2wuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlQ29udHJvbEZvclF1ZXN0aW9uKHF1ZXN0aW9uOiBRdWVzdGlvbiwgc2VjdGlvbjogU2VjdGlvbiwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXApOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIGNvbnN0IGNvbnZlcnRlZFZhbGlkYXRvcnMgPSB0aGlzLmNvbnZlcnRWYWxpZGF0b3JzKHF1ZXN0aW9uLnZhbGlkYXRvcnMpO1xuICAgIHN3aXRjaCAocXVlc3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBRdWVzdGlvblR5cGUuUmVwZWF0ZXI6XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBcnJheSA9IGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSA/IChjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0uZ2V0KFtzZWN0aW9uLm5hbWUsIHF1ZXN0aW9uLm5hbWVdKSBhcyBGb3JtQXJyYXkpIDogZmFsc2U7XG4gICAgICAgIHJldHVybiBjdXJyZW50QXJyYXkgPyBjdXJyZW50QXJyYXkgOiB0aGlzLmZiLmFycmF5KFtdLCBjb252ZXJ0ZWRWYWxpZGF0b3JzKTtcbiAgICAgIGNhc2UgUXVlc3Rpb25UeXBlLkNoZWNrbGlzdDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVHcm91cEZvckNoZWNrbGlzdChxdWVzdGlvbiwgY29udmVydGVkVmFsaWRhdG9ycyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5mYi5jb250cm9sKG51bGwsIHsgdmFsaWRhdG9yczogY29udmVydGVkVmFsaWRhdG9ycywgdXBkYXRlT246ICdibHVyJyB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSBmb3JtIGdyb3VwIGZvciBhIGNoZWNrbGlzdCBxdWVzdGlvbi5cbiAgICogQHBhcmFtIHF1ZXN0aW9uIFRoZSBxdWVzdGlvbi4gTXVzdCBiZSBvZiB0eXBlIGNoZWNrbGlzdCBvciBlbHNlIG51bGwgaXMgcmV0dXJuZWQuXG4gICAqIEByZXR1cm5zIEEgZm9ybSBncm91cC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVHcm91cEZvckNoZWNrbGlzdChxdWVzdGlvbjogUXVlc3Rpb24sIGNvbnZlcnRlZFZhbGlkYXRvcnMpIHtcbiAgICBpZiAocXVlc3Rpb24udHlwZSAhPT0gUXVlc3Rpb25UeXBlLkNoZWNrbGlzdCB8fCBxdWVzdGlvbi5jaGVja2xpc3RJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNoZWNrbGlzdEZvcm1zOiBGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcbiAgICBmb3IgKGNvbnN0IGNoZWNrbGlzdEl0ZW0gb2YgcXVlc3Rpb24uY2hlY2tsaXN0SXRlbXMpIHtcbiAgICAgIGNvbnN0IGNoZWNrbGlzdEl0ZW1Db250cm9sID0gdGhpcy5mYi5jb250cm9sKG51bGwsIGNvbnZlcnRlZFZhbGlkYXRvcnMpO1xuICAgICAgY2hlY2tsaXN0Rm9ybXMuYWRkQ29udHJvbChjaGVja2xpc3RJdGVtLm5hbWUsIGNoZWNrbGlzdEl0ZW1Db250cm9sKTtcbiAgICB9XG4gICAgcmV0dXJuIGNoZWNrbGlzdEZvcm1zO1xuICB9XG5cblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSBmb3JtIHRlbXBsYXRlIGZvciBhIHJlcGVhdGVyIHF1ZXN0aW9uLlxuICAgKiBAcGFyYW0gcXVlc3Rpb24gVGhlIHF1ZXN0aW9uLiBNdXN0IGJlIG9mIHR5cGUgcmVwZWF0ZXIgb3IgZWxzZSBudWxsIGlzIHJldHVybmVkLlxuICAgKiBAcmV0dXJucyBBIGZvcm0gZ3JvdXAuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwdWJsaWMgZ2VuZXJhdGVGb3Jtc0ZvclJlcGVhdGVyKHF1ZXN0aW9uOiBRdWVzdGlvbik6IEZvcm1Hcm91cCB7XG4gICAgaWYgKHF1ZXN0aW9uLnR5cGUgIT09IFF1ZXN0aW9uVHlwZS5SZXBlYXRlciB8fCBxdWVzdGlvbi5yZXBlYXRlclF1ZXN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnNvbGUubG9nKCdRdWVzdGlvbiBpc250IGEgcmVwZWF0ZXIgb3IgaGFzIG5vIHF1ZXN0aW9ucywgcmV0dXJuaW5nIG51bGwnKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcGVhdGVyRm9ybXM6IEZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe30pO1xuICAgIGZvciAoY29uc3QgcmVwZWF0ZXJRdWVzdGlvbiBvZiBxdWVzdGlvbi5yZXBlYXRlclF1ZXN0aW9ucykge1xuICAgICAgY29uc3QgcmVwZWF0ZXJRdWVzdGlvbkNvbnRyb2wgPSB0aGlzLmdlbmVyYXRlQ29udHJvbEZvclJlcGVhdGVyUXVlc3Rpb24ocmVwZWF0ZXJRdWVzdGlvbik7XG4gICAgICByZXBlYXRlckZvcm1zLmFkZENvbnRyb2wocmVwZWF0ZXJRdWVzdGlvbi5uYW1lLCByZXBlYXRlclF1ZXN0aW9uQ29udHJvbCk7XG4gICAgfVxuICAgIHJldHVybiByZXBlYXRlckZvcm1zO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIGNvbnRyb2wgZm9yIGEgcmVwZWF0ZXJzIHF1ZXN0aW9uLlxuICAgKiBAcGFyYW0gcmVwZWF0ZXJRdWVzdGlvbiBBIHJlcGVhdGVyIHF1ZXN0aW9uLlxuICAgKiBAcmV0dXJucyBBbiBhYnN0cmFjdCBjb250cm9sLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNvbnRyb2xGb3JSZXBlYXRlclF1ZXN0aW9uKHJlcGVhdGVyUXVlc3Rpb246IFJlcGVhdGVyUXVlc3Rpb24pOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIGNvbnN0IGNvbnZlcnRlZFZhbGlkYXRvcnMgPSB0aGlzLmNvbnZlcnRWYWxpZGF0b3JzKHJlcGVhdGVyUXVlc3Rpb24udmFsaWRhdG9ycyk7XG4gICAgcmV0dXJuIHRoaXMuZmIuY29udHJvbChudWxsLCB7IHZhbGlkYXRvcnM6IGNvbnZlcnRlZFZhbGlkYXRvcnMsIHVwZGF0ZU9uOiAnYmx1cicgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gYXJyYXkgb2YgdmFsaWRhdG9ycyBpbnRvIGZvcm0gdmFsaWRhdG9ycy5cbiAgICogQHBhcmFtIHZhbGlkYXRvcnMgVGhlIHVuY292ZXJ0ZWQgYXJyYXkgb2YgdmFsaWRhdG9ycy5cbiAgICogQHJldHVybnMgQSBjb252ZXJlZCBhcnJheSBvZiBmb3JtIHZhbGlkYXRvcnMuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnRWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IEFycmF5PFZhbGlkYXRvcj4pOiBBcnJheTxWYWxpZGF0b3JGbj4ge1xuICAgIGlmICghdmFsaWRhdG9ycyB8fCB2YWxpZGF0b3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCBjb252ZXJ0ZWRWYWxpZGF0b3JzOiBBcnJheTxWYWxpZGF0b3JGbj4gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHZhbGlkYXRvciBvZiB2YWxpZGF0b3JzKSB7XG4gICAgICBjb25zdCBjb252ZXJ0ZWRWYWxpZGF0b3IgPSB0aGlzLmNvbnZlcnRWYWxpZGF0b3IodmFsaWRhdG9yKTtcbiAgICAgIGlmIChjb252ZXJ0ZWRWYWxpZGF0b3IpIHtcbiAgICAgICAgY29udmVydGVkVmFsaWRhdG9ycy5wdXNoKGNvbnZlcnRlZFZhbGlkYXRvcik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb252ZXJ0ZWRWYWxpZGF0b3JzO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgc2luZ2xlIHZhbGlkYXRvciBpbnRvIGEgZm9ybSB2YWxpZGF0b3IuXG4gICAqIEBwYXJhbSB2YWxpZGF0b3IgVGhlIHVuY29udmVydGVkIHZhbGlkYXRvci5cbiAgICogQHJldHVybnMgQSBjb252ZXJ0ZWQgZm9ybSB2YWxpZGF0b3IuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnRWYWxpZGF0b3IodmFsaWRhdG9yOiBWYWxpZGF0b3IpOiBWYWxpZGF0b3JGbiB8IG51bGwge1xuICAgIHN3aXRjaCAodmFsaWRhdG9yLnR5cGUpIHtcbiAgICAgIGNhc2UgVmFsaWRhdGlvblR5cGUuUmVxdWlyZWQ6XG4gICAgICAgIHJldHVybiBWYWxpZGF0b3JzLnJlcXVpcmVkO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgdGhlIGZvcm1zIGZvciByZXBlYXRlcnMgZnJvbSBzYXZlZCBzdGF0ZS5cbiAgICogQHBhcmFtIHNhdmVkU3RhdGUgVGhlIHNhdmVkIHN0YXRlIHRvIGxvYWQuXG4gICAqIEBwYXJhbSBzZWN0aW9ucyBUaGUgc2VjdGlvbnMgYWxyZWFkeSBnZW5lcmF0ZWQgYnkgdGhlIGZvcm0gY29uc3RydWN0b3IuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0UmVwZWF0ZXJGcm9tc0Zyb21TdGF0ZShzYXZlZFN0YXRlOiBhbnksIHNlY3Rpb25zOiBBcnJheTxTZWN0aW9uPiwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXApIHtcbiAgICBmb3IgKGNvbnN0IHNlY3Rpb24gb2Ygc2VjdGlvbnMpIHtcbiAgICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2Ygc2VjdGlvbi5xdWVzdGlvbnMpIHtcbiAgICAgICAgaWYgKHF1ZXN0aW9uLnR5cGUgIT09IFF1ZXN0aW9uVHlwZS5SZXBlYXRlcikge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVwZWF0ZXJBcnJheSA9IHNhdmVkU3RhdGVbc2VjdGlvbi5uYW1lXVtxdWVzdGlvbi5uYW1lXTtcbiAgICAgICAgaWYgKCFyZXBlYXRlckFycmF5IHx8IHJlcGVhdGVyQXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXBlYXRlckZvcm1BcnJheSA9IGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybS5nZXQoW3NlY3Rpb24ubmFtZSwgcXVlc3Rpb24ubmFtZV0pIGFzIEZvcm1BcnJheTtcblxuICAgICAgICBpZiAocmVwZWF0ZXJGb3JtQXJyYXkuY29udHJvbHMubGVuZ3RoID09PSByZXBlYXRlckFycmF5Lmxlbmd0aCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9yIGVhY2ggaXRlbSB0aGF0IHVzZWQgdG8gYmUgdGhlcmUgcHVzaCBhIG5ldyBlbXB0eSB0ZW1wbGF0ZSB0aGVyZSB0byBiZSBwb3B1bGF0ZWQuXG4gICAgICAgIGZvciAoY29uc3QgcmVwZWF0ZXJJdGVtIG9mIHJlcGVhdGVyQXJyYXkpIHtcbiAgICAgICAgICBjb25zdCByZXBlYXRlckl0ZW1UZW1wbGF0ZSA9IHRoaXMuZ2VuZXJhdGVGb3Jtc0ZvclJlcGVhdGVyKHF1ZXN0aW9uKTtcbiAgICAgICAgICByZXBlYXRlckZvcm1BcnJheS5wdXNoKHJlcGVhdGVySXRlbVRlbXBsYXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
461
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb25zdHJ1Y3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdsb3dncmVlbi9nZy1xdWVzdGlvbm5haXJlLXYyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2Zvcm0tY29uc3RydWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBd0QsVUFBVSxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFJMUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFLL0Q7SUFLRSxnQ0FDVSxFQUFlLEVBQ2YsYUFBNEI7UUFENUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQ2xDLENBQUM7SUFFTDs7Ozs7O09BTUc7Ozs7Ozs7Ozs7O0lBQ0ksOERBQTZCOzs7Ozs7Ozs7O0lBQXBDLFVBQ0UsYUFBNEIsRUFDNUIsd0JBQW1DLEVBQ25DLGNBQXVCLEVBQ3ZCLFVBQW9COztZQUVkLFFBQVEsR0FBRyxVQUFVLENBQUMsQ0FBQztZQUMzQixhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxjQUFjLENBQUM7O1lBQy9GLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCLENBQUM7UUFDNUYsT0FBTyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFDLENBQUM7SUFDekQsQ0FBQzs7Ozs7OztJQUVPLHlEQUF3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QkFDVjs7NEJBRUssYUFBYSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQzt3QkFDN0QsSUFBSSxDQUFDLGFBQWEsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTs0QkFDaEQsU0FBUzt5QkFDVjs7NEJBRUssaUJBQWlCLEdBQUcsbUJBQUEsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBYTt3QkFFbEcsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxNQUFNLEVBQUU7NEJBQzlELFNBQVM7eUJBQ1Y7OzRCQUVELHVGQUF1Rjs0QkFDdkYsS0FBMkIsSUFBQSxpQ0FBQSxpQkFBQSxhQUFhLENBQUEsQ0FBQSw0Q0FBQSx1RUFBRTtnQ0FBckMsSUFBTSxZQUFZLDBCQUFBOztvQ0FDZixvQkFBb0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDO2dDQUNwRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQzs2QkFDOUM7Ozs7Ozs7OztxQkFDRjs7Ozs7Ozs7O2FBQ0Y7Ozs7Ozs7OztJQUNILENBQUM7O2dCQTlMRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2dCQWRRLFdBQVc7Z0JBS1gsYUFBYTs7O2lDQU50QjtDQTRNQyxBQS9MRCxJQStMQztTQTVMWSxzQkFBc0I7Ozs7OztJQUcvQixvQ0FBdUI7Ozs7O0lBQ3ZCLCtDQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIEZvcm1Db250cm9sLCBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzLCBGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zZWN0aW9uJztcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9xdWVzdGlvbic7XG5pbXBvcnQgeyBRdWVzdGlvbm5haXJlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9xdWVzdGlvbm5haXJlJztcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZSB9IGZyb20gJy4uL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9maWx0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZhbGlkYXRvcic7XG5pbXBvcnQgeyBWYWxpZGF0aW9uVHlwZSB9IGZyb20gJy4uL2VudW1zL3ZhbGlkYXRpb24tdHlwZS5lbnVtJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFJlcGVhdGVyUXVlc3Rpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcGVhdGVyLXF1ZXN0aW9uJztcbmltcG9ydCB7IENoZWNrbGlzdEl0ZW0gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NoZWNrbGlzdC1pdGVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbnN0cnVjdG9yU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBGaWx0ZXJTZXJ2aWNlXG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBmb3JtIGdyb3VwIGJhc2VkIG9uIHRoZSBxdWVzdGlvbm5haXJlIGRhdGEuXG4gICAqIFRoaXMgZm9ybSBncm91cCBoYXMgYmVlbiBmaWx0ZXJlZCBkb3duIGJhc2VkIG9uIHRoZSBjb25kaXRpb25zIG9mIHRoZSBzZWN0aW9ucyBhbmQgcXVlc3Rpb25zLlxuICAgKiBAcGFyYW0gcXVlc3Rpb25uYWlyZSBUaGUgcXVlc3Rpb25uYWlyZSBkYXRhIHRvIGJ1aWxkIHRoZSBmb3JtIGdyb3VwIG9uLlxuICAgKiBAcmV0dXJucyBBIGZpbHRlZCBmb3JtIGdyb3VwLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHVibGljIGdlbmVyYXRlRm9ybXNGb3JRdWVzdGlvbm5haXJlKFxuICAgIHF1ZXN0aW9ubmFpcmU6IFF1ZXN0aW9ubmFpcmUsXG4gICAgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAsXG4gICAgYWRkaXRpb25hbERhdGE/OiBPYmplY3QsXG4gICAgc2tpcEZpbHRlcj86IGJvb2xlYW5cbiAgKToge3NlY3Rpb25zOiBBcnJheTxTZWN0aW9uPjsgZm9ybXM6IEZvcm1Hcm91cH0ge1xuICAgIGNvbnN0IHNlY3Rpb25zID0gc2tpcEZpbHRlciA/XG4gICAgICBxdWVzdGlvbm5haXJlLnNlY3Rpb25zIDpcbiAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJTZWN0aW9ucyhxdWVzdGlvbm5haXJlLnNlY3Rpb25zLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhKTtcbiAgICBjb25zdCBxdWVzdGlvbm5haXJlRm9ybXMgPSB0aGlzLmdlbmVyYXRlRm9ybXNGb3JTZWN0aW9ucyhzZWN0aW9ucywgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtKTtcbiAgICByZXR1cm4ge3NlY3Rpb25zOiBzZWN0aW9ucywgZm9ybXM6IHF1ZXN0aW9ubmFpcmVGb3Jtc307XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlRm9ybXNGb3JTZWN0aW9ucyhzZWN0aW9uczogQXJyYXk8U2VjdGlvbj4sIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwKSB7XG4gICAgY29uc3QgcXVlc3Rpb25uYWlyZUZvcm1zOiBGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcbiAgICBmb3IgKGNvbnN0IHNlY3Rpb24gb2Ygc2VjdGlvbnMpIHtcbiAgICAgIGNvbnN0IHNlY3Rpb25Gb3JtcyA9IHRoaXMuZ2VuZXJhdGVGb3Jtc0ZvclNlY3Rpb24oc2VjdGlvbiwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtKTtcbiAgICAgIHF1ZXN0aW9ubmFpcmVGb3Jtcy5hZGRDb250cm9sKHNlY3Rpb24ubmFtZSwgc2VjdGlvbkZvcm1zKTtcbiAgICB9XG4gICAgcmV0dXJuIHF1ZXN0aW9ubmFpcmVGb3JtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgZm9ybSBncm91cCBiYXNlZCBvbiB0aGUgc2VjdGlvbiBkYXRhLlxuICAgKiBUaGlzIGZvcm0gZ3JvdXAgaGFzIGJlZW4gZmlsdGVyZWQgZG93biBiYXNlZCBvbiB0aGUgY29uZGl0aW9ucyBvZiB0aGUgcXVlc3Rpb25zLlxuICAgKiBAcGFyYW0gc2VjdGlvbiBUaGUgc2VjdGlvbiBkYXRhIHRvIGJ1aWxkIHRoZSBmb3JtIGdyb3VwIG9uLlxuICAgKiBAcmV0dXJucyBBIGZpbHRlcmVkIGZvcm0gZ3JvdXAuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlRm9ybXNGb3JTZWN0aW9uKHNlY3Rpb246IFNlY3Rpb24sIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwKTogRm9ybUdyb3VwIHtcbiAgICBjb25zdCBzZWN0aW9uRm9ybXM6IEZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe30pO1xuICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2Ygc2VjdGlvbi5xdWVzdGlvbnMpIHtcbiAgICAgIGNvbnN0IHF1ZXN0aW9uQ29udHJvbCA9IHRoaXMuZ2VuZXJhdGVDb250cm9sRm9yUXVlc3Rpb24ocXVlc3Rpb24sIHNlY3Rpb24sIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSk7XG4gICAgICBzZWN0aW9uRm9ybXMuYWRkQ29udHJvbChxdWVzdGlvbi5uYW1lLCBxdWVzdGlvbkNvbnRyb2wpO1xuICAgIH1cbiAgICByZXR1cm4gc2VjdGlvbkZvcm1zO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYW4gYXN0cmFjdCBmb3JtIGNvbnRyb2wgYmFzZWQgb24gdGhlIHF1ZXN0aW9uIGRhdGEuXG4gICAqIEBwYXJhbSBxdWVzdGlvbiBUaGUgcXVlc3Rpb24gZGF0YSB0byBidWlsZCB0aGUgYWJzdHJhY3QgY29udHJvbCBvbi5cbiAgICogQHJldHVybnMgQW4gYWJzdHJhY3QgY29udHJvbC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVDb250cm9sRm9yUXVlc3Rpb24ocXVlc3Rpb246IFF1ZXN0aW9uLCBzZWN0aW9uOiBTZWN0aW9uLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgY29uc3QgY29udmVydGVkVmFsaWRhdG9ycyA9IHRoaXMuY29udmVydFZhbGlkYXRvcnMocXVlc3Rpb24udmFsaWRhdG9ycyk7XG4gICAgc3dpdGNoIChxdWVzdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIFF1ZXN0aW9uVHlwZS5SZXBlYXRlcjpcbiAgICAgICAgY29uc3QgY3VycmVudEFycmF5ID0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtID8gKGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybS5nZXQoW3NlY3Rpb24ubmFtZSwgcXVlc3Rpb24ubmFtZV0pIGFzIEZvcm1BcnJheSkgOiBmYWxzZTtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRBcnJheSA/IGN1cnJlbnRBcnJheSA6IHRoaXMuZmIuYXJyYXkoW10sIGNvbnZlcnRlZFZhbGlkYXRvcnMpO1xuICAgICAgY2FzZSBRdWVzdGlvblR5cGUuQ2hlY2tsaXN0OlxuICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZUdyb3VwRm9yQ2hlY2tsaXN0KHF1ZXN0aW9uLCBjb252ZXJ0ZWRWYWxpZGF0b3JzKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aGlzLmZiLmNvbnRyb2wobnVsbCwgeyB2YWxpZGF0b3JzOiBjb252ZXJ0ZWRWYWxpZGF0b3JzLCB1cGRhdGVPbjogJ2JsdXInIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIGZvcm0gZ3JvdXAgZm9yIGEgY2hlY2tsaXN0IHF1ZXN0aW9uLlxuICAgKiBAcGFyYW0gcXVlc3Rpb24gVGhlIHF1ZXN0aW9uLiBNdXN0IGJlIG9mIHR5cGUgY2hlY2tsaXN0IG9yIGVsc2UgbnVsbCBpcyByZXR1cm5lZC5cbiAgICogQHJldHVybnMgQSBmb3JtIGdyb3VwLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZUdyb3VwRm9yQ2hlY2tsaXN0KHF1ZXN0aW9uOiBRdWVzdGlvbiwgY29udmVydGVkVmFsaWRhdG9ycykge1xuICAgIGlmIChxdWVzdGlvbi50eXBlICE9PSBRdWVzdGlvblR5cGUuQ2hlY2tsaXN0IHx8IHF1ZXN0aW9uLmNoZWNrbGlzdEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgY2hlY2tsaXN0Rm9ybXM6IEZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe30pO1xuICAgIGZvciAoY29uc3QgY2hlY2tsaXN0SXRlbSBvZiBxdWVzdGlvbi5jaGVja2xpc3RJdGVtcykge1xuICAgICAgY29uc3QgY2hlY2tsaXN0SXRlbUNvbnRyb2wgPSB0aGlzLmZiLmNvbnRyb2wobnVsbCwgY29udmVydGVkVmFsaWRhdG9ycyk7XG4gICAgICBjaGVja2xpc3RGb3Jtcy5hZGRDb250cm9sKGNoZWNrbGlzdEl0ZW0ubmFtZSwgY2hlY2tsaXN0SXRlbUNvbnRyb2wpO1xuICAgIH1cbiAgICByZXR1cm4gY2hlY2tsaXN0Rm9ybXM7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIGZvcm0gdGVtcGxhdGUgZm9yIGEgcmVwZWF0ZXIgcXVlc3Rpb24uXG4gICAqIEBwYXJhbSBxdWVzdGlvbiBUaGUgcXVlc3Rpb24uIE11c3QgYmUgb2YgdHlwZSByZXBlYXRlciBvciBlbHNlIG51bGwgaXMgcmV0dXJuZWQuXG4gICAqIEByZXR1cm5zIEEgZm9ybSBncm91cC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBnZW5lcmF0ZUZvcm1zRm9yUmVwZWF0ZXIocXVlc3Rpb246IFF1ZXN0aW9uKTogRm9ybUdyb3VwIHtcbiAgICBpZiAocXVlc3Rpb24udHlwZSAhPT0gUXVlc3Rpb25UeXBlLlJlcGVhdGVyIHx8IHF1ZXN0aW9uLnJlcGVhdGVyUXVlc3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc29sZS5sb2coJ1F1ZXN0aW9uIGlzbnQgYSByZXBlYXRlciBvciBoYXMgbm8gcXVlc3Rpb25zLCByZXR1cm5pbmcgbnVsbCcpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgcmVwZWF0ZXJGb3JtczogRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7fSk7XG4gICAgZm9yIChjb25zdCByZXBlYXRlclF1ZXN0aW9uIG9mIHF1ZXN0aW9uLnJlcGVhdGVyUXVlc3Rpb25zKSB7XG4gICAgICBjb25zdCByZXBlYXRlclF1ZXN0aW9uQ29udHJvbCA9IHRoaXMuZ2VuZXJhdGVDb250cm9sRm9yUmVwZWF0ZXJRdWVzdGlvbihyZXBlYXRlclF1ZXN0aW9uKTtcbiAgICAgIHJlcGVhdGVyRm9ybXMuYWRkQ29udHJvbChyZXBlYXRlclF1ZXN0aW9uLm5hbWUsIHJlcGVhdGVyUXVlc3Rpb25Db250cm9sKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcGVhdGVyRm9ybXM7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgY29udHJvbCBmb3IgYSByZXBlYXRlcnMgcXVlc3Rpb24uXG4gICAqIEBwYXJhbSByZXBlYXRlclF1ZXN0aW9uIEEgcmVwZWF0ZXIgcXVlc3Rpb24uXG4gICAqIEByZXR1cm5zIEFuIGFic3RyYWN0IGNvbnRyb2wuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlQ29udHJvbEZvclJlcGVhdGVyUXVlc3Rpb24ocmVwZWF0ZXJRdWVzdGlvbjogUmVwZWF0ZXJRdWVzdGlvbik6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgY29uc3QgY29udmVydGVkVmFsaWRhdG9ycyA9IHRoaXMuY29udmVydFZhbGlkYXRvcnMocmVwZWF0ZXJRdWVzdGlvbi52YWxpZGF0b3JzKTtcbiAgICByZXR1cm4gdGhpcy5mYi5jb250cm9sKG51bGwsIHsgdmFsaWRhdG9yczogY29udmVydGVkVmFsaWRhdG9ycywgdXBkYXRlT246ICdibHVyJyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhbiBhcnJheSBvZiB2YWxpZGF0b3JzIGludG8gZm9ybSB2YWxpZGF0b3JzLlxuICAgKiBAcGFyYW0gdmFsaWRhdG9ycyBUaGUgdW5jb3ZlcnRlZCBhcnJheSBvZiB2YWxpZGF0b3JzLlxuICAgKiBAcmV0dXJucyBBIGNvbnZlcmVkIGFycmF5IG9mIGZvcm0gdmFsaWRhdG9ycy5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgY29udmVydFZhbGlkYXRvcnModmFsaWRhdG9yczogQXJyYXk8VmFsaWRhdG9yPik6IEFycmF5PFZhbGlkYXRvckZuPiB7XG4gICAgaWYgKCF2YWxpZGF0b3JzIHx8IHZhbGlkYXRvcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IGNvbnZlcnRlZFZhbGlkYXRvcnM6IEFycmF5PFZhbGlkYXRvckZuPiA9IFtdO1xuICAgIGZvciAoY29uc3QgdmFsaWRhdG9yIG9mIHZhbGlkYXRvcnMpIHtcbiAgICAgIGNvbnN0IGNvbnZlcnRlZFZhbGlkYXRvciA9IHRoaXMuY29udmVydFZhbGlkYXRvcih2YWxpZGF0b3IpO1xuICAgICAgaWYgKGNvbnZlcnRlZFZhbGlkYXRvcikge1xuICAgICAgICBjb252ZXJ0ZWRWYWxpZGF0b3JzLnB1c2goY29udmVydGVkVmFsaWRhdG9yKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvbnZlcnRlZFZhbGlkYXRvcnM7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBzaW5nbGUgdmFsaWRhdG9yIGludG8gYSBmb3JtIHZhbGlkYXRvci5cbiAgICogQHBhcmFtIHZhbGlkYXRvciBUaGUgdW5jb252ZXJ0ZWQgdmFsaWRhdG9yLlxuICAgKiBAcmV0dXJucyBBIGNvbnZlcnRlZCBmb3JtIHZhbGlkYXRvci5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgY29udmVydFZhbGlkYXRvcih2YWxpZGF0b3I6IFZhbGlkYXRvcik6IFZhbGlkYXRvckZuIHwgbnVsbCB7XG4gICAgc3dpdGNoICh2YWxpZGF0b3IudHlwZSkge1xuICAgICAgY2FzZSBWYWxpZGF0aW9uVHlwZS5SZXF1aXJlZDpcbiAgICAgICAgcmV0dXJuIFZhbGlkYXRvcnMucmVxdWlyZWQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0cyB0aGUgZm9ybXMgZm9yIHJlcGVhdGVycyBmcm9tIHNhdmVkIHN0YXRlLlxuICAgKiBAcGFyYW0gc2F2ZWRTdGF0ZSBUaGUgc2F2ZWQgc3RhdGUgdG8gbG9hZC5cbiAgICogQHBhcmFtIHNlY3Rpb25zIFRoZSBzZWN0aW9ucyBhbHJlYWR5IGdlbmVyYXRlZCBieSB0aGUgZm9ybSBjb25zdHJ1Y3Rvci5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RSZXBlYXRlckZyb21zRnJvbVN0YXRlKHNhdmVkU3RhdGU6IGFueSwgc2VjdGlvbnM6IEFycmF5PFNlY3Rpb24+LCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCkge1xuICAgIGZvciAoY29uc3Qgc2VjdGlvbiBvZiBzZWN0aW9ucykge1xuICAgICAgZm9yIChjb25zdCBxdWVzdGlvbiBvZiBzZWN0aW9uLnF1ZXN0aW9ucykge1xuICAgICAgICBpZiAocXVlc3Rpb24udHlwZSAhPT0gUXVlc3Rpb25UeXBlLlJlcGVhdGVyKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXBlYXRlckFycmF5ID0gc2F2ZWRTdGF0ZVtzZWN0aW9uLm5hbWVdW3F1ZXN0aW9uLm5hbWVdO1xuICAgICAgICBpZiAoIXJlcGVhdGVyQXJyYXkgfHwgcmVwZWF0ZXJBcnJheS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlcGVhdGVyRm9ybUFycmF5ID0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldChbc2VjdGlvbi5uYW1lLCBxdWVzdGlvbi5uYW1lXSkgYXMgRm9ybUFycmF5O1xuXG4gICAgICAgIGlmIChyZXBlYXRlckZvcm1BcnJheS5jb250cm9scy5sZW5ndGggPT09IHJlcGVhdGVyQXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGb3IgZWFjaCBpdGVtIHRoYXQgdXNlZCB0byBiZSB0aGVyZSBwdXNoIGEgbmV3IGVtcHR5IHRlbXBsYXRlIHRoZXJlIHRvIGJlIHBvcHVsYXRlZC5cbiAgICAgICAgZm9yIChjb25zdCByZXBlYXRlckl0ZW0gb2YgcmVwZWF0ZXJBcnJheSkge1xuICAgICAgICAgIGNvbnN0IHJlcGVhdGVySXRlbVRlbXBsYXRlID0gdGhpcy5nZW5lcmF0ZUZvcm1zRm9yUmVwZWF0ZXIocXVlc3Rpb24pO1xuICAgICAgICAgIHJlcGVhdGVyRm9ybUFycmF5LnB1c2gocmVwZWF0ZXJJdGVtVGVtcGxhdGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
import { Injectable, Inject, EventEmitter } from '@angular/core';
|
|
@@ -15,7 +15,7 @@ var QuestionnaireService = /** @class */ (function () {
|
|
|
15
15
|
this.formConstuctor = formConstuctor;
|
|
16
16
|
this.options = options;
|
|
17
17
|
this.dataChangedEvent = new EventEmitter();
|
|
18
|
-
this.skippable =
|
|
18
|
+
this.skippable = true;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* Loads a questionnaire from data.
|
|
@@ -42,7 +42,8 @@ var QuestionnaireService = /** @class */ (function () {
|
|
|
42
42
|
*/
|
|
43
43
|
function (questionnaire, savedState, additionalData) {
|
|
44
44
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
45
|
-
var
|
|
45
|
+
var newData, _a, _b, section, _c, _d, question, control;
|
|
46
|
+
var e_1, _e, e_2, _f;
|
|
46
47
|
return tslib_1.__generator(this, function (_g) {
|
|
47
48
|
switch (_g.label) {
|
|
48
49
|
case 0:
|
|
@@ -59,11 +60,11 @@ var QuestionnaireService = /** @class */ (function () {
|
|
|
59
60
|
case 1:
|
|
60
61
|
_g.sent();
|
|
61
62
|
try {
|
|
62
|
-
for (
|
|
63
|
-
section =
|
|
63
|
+
for (_a = tslib_1.__values(this.currentQuestionnaire.sections), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
64
|
+
section = _b.value;
|
|
64
65
|
try {
|
|
65
|
-
for (
|
|
66
|
-
question =
|
|
66
|
+
for (_c = (e_2 = void 0, tslib_1.__values(section.questions)), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
67
|
+
question = _d.value;
|
|
67
68
|
control = this.currentQuestionnaireForm.get([section.name, question.name]);
|
|
68
69
|
if (!control.value && question.defaultValue) {
|
|
69
70
|
control.setValue(question.defaultValue);
|
|
@@ -73,7 +74,7 @@ var QuestionnaireService = /** @class */ (function () {
|
|
|
73
74
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
74
75
|
finally {
|
|
75
76
|
try {
|
|
76
|
-
if (
|
|
77
|
+
if (_d && !_d.done && (_f = _c.return)) _f.call(_c);
|
|
77
78
|
}
|
|
78
79
|
finally { if (e_2) throw e_2.error; }
|
|
79
80
|
}
|
|
@@ -82,7 +83,7 @@ var QuestionnaireService = /** @class */ (function () {
|
|
|
82
83
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
83
84
|
finally {
|
|
84
85
|
try {
|
|
85
|
-
if (
|
|
86
|
+
if (_b && !_b.done && (_e = _a.return)) _e.call(_a);
|
|
86
87
|
}
|
|
87
88
|
finally { if (e_1) throw e_1.error; }
|
|
88
89
|
}
|
|
@@ -886,7 +887,7 @@ var QuestionnaireService = /** @class */ (function () {
|
|
|
886
887
|
{ type: FormConstructorService },
|
|
887
888
|
{ type: undefined, decorators: [{ type: Inject, args: ['options',] }] }
|
|
888
889
|
]; };
|
|
889
|
-
/** @nocollapse */ QuestionnaireService.ngInjectableDef = i0
|
|
890
|
+
/** @nocollapse */ QuestionnaireService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function QuestionnaireService_Factory() { return new QuestionnaireService(i0.ɵɵinject(i1.FormConstructorService), i0.ɵɵinject("options")); }, token: QuestionnaireService, providedIn: "root" });
|
|
890
891
|
return QuestionnaireService;
|
|
891
892
|
}());
|
|
892
893
|
export { QuestionnaireService };
|
|
@@ -949,4 +950,4 @@ if (false) {
|
|
|
949
950
|
*/
|
|
950
951
|
QuestionnaireService.prototype.options;
|
|
951
952
|
}
|
|
952
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb25uYWlyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdsb3dncmVlbi9nZy1xdWVzdGlvbm5haXJlLXYyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3F1ZXN0aW9ubmFpcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVwRSxPQUFPLEVBQThCLFNBQVMsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBSXBGLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRTNEO0lBcUJFLDhCQUNVLGNBQXNDLEVBQ25CLE9BQTZCO1FBRGhELG1CQUFjLEdBQWQsY0FBYyxDQUF3QjtRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQW5CbkQscUJBQWdCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFlN0QsY0FBUyxHQUFHLEtBQUssQ0FBQztJQUt0QixDQUFDO0lBRUw7Ozs7OztPQU1HOzs7Ozs7Ozs7SUFDVSxnREFBaUI7Ozs7Ozs7O0lBQTlCLFVBQStCLGFBQTRCLEVBQUUsVUFBbUIsRUFBRSxjQUF1Qjs7Ozs7O3dCQUN2RyxJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQzt3QkFDeEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7d0JBRXZELElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO3dCQUVyQyxJQUFJLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFD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QSw0Q0FBQSx1RUFBRTtnQkFBckMsSUFBTSxZQUFZLDBCQUFBO2dCQUNyQixJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUU7O3dCQUMzQixJQUFJLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDOzt3QkFDNUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDOzt3QkFDN0IsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUc7b0JBQzNDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzFCO3FCQUFNO29CQUNMLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ2pDO2FBQ0Y7Ozs7Ozs7Ozs7WUFFSyxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDdEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7Z0JBemVGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBWlEsc0JBQXNCO2dEQWlDMUIsTUFBTSxTQUFDLFNBQVM7OzsrQkFsQ3JCO0NBcWZDLEFBMWVELElBMGVDO1NBdmVZLG9CQUFvQjs7O0lBQy9CLGdEQUFxRTs7Ozs7SUFFckUscURBQTZDOzs7OztJQUU3QyxvREFBNEM7Ozs7O0lBQzVDLHdEQUE0Qzs7Ozs7SUFFNUMsa0RBQW1DOzs7OztJQUNuQyxtREFBb0M7Ozs7O0lBRXBDLG9FQUEyRDs7Ozs7SUFDM0QsK0RBQXNEOzs7OztJQUV0RCw4Q0FBK0I7Ozs7O0lBRS9CLHlDQUEwQjs7Ozs7SUFHeEIsOENBQThDOzs7OztJQUM5Qyx1Q0FBd0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnN0cnVjdG9yU2VydmljZSB9IGZyb20gJy4vZm9ybS1jb25zdHJ1Y3Rvci5zZXJ2aWNlJztcbmltcG9ydCB7IFF1ZXN0aW9ubmFpcmUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3F1ZXN0aW9ubmFpcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zZWN0aW9uJztcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9xdWVzdGlvbic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFF1ZXN0aW9ubmFpcmVPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9xdWVzdGlvbm5haXJlLW9wdGlvbnMnO1xuaW1wb3J0IHsgUXVlc3Rpb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25uYWlyZVNlcnZpY2Uge1xuICBwdWJsaWMgZGF0YUNoYW5nZWRFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwcml2YXRlIG9yaWdpbmFsUXVlc3Rpb25uYWlyZTogUXVlc3Rpb25uYWlyZTtcblxuICBwcml2YXRlIGN1cnJlbnRRdWVzdGlvbm5haXJlOiBRdWVzdGlvbm5haXJlO1xuICBwcml2YXRlIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwO1xuXG4gIHByaXZhdGUgY3VycmVudFNlY3Rpb25OYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgY3VycmVudFF1ZXN0aW9uTmFtZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgcXVlc3Rpb25uYWlyZVZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcXVlc3Rpb25WYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgYWRkaXRpb25hbERhdGE6IE9iamVjdDtcblxuICBwcml2YXRlIHNraXBwYWJsZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybUNvbnN0dWN0b3I6IEZvcm1Db25zdHJ1Y3RvclNlcnZpY2UsXG4gICAgQEluamVjdCgnb3B0aW9ucycpIHByaXZhdGUgb3B0aW9uczogUXVlc3Rpb25uYWlyZU9wdGlvbnNcbiAgKSB7IH1cblxuICAvKipcbiAgICogTG9hZHMgYSBxdWVzdGlvbm5haXJlIGZyb20gZGF0YS5cbiAgICogQHBhcmFtIHF1ZXN0aW9ubmFpcmUgVGhlIHF1ZXN0aW9ubmFpcmUgZGF0YSB0byBsb2FkLCBvZnRlbiBwYXJzZWQgSlNPTiBmcm9tIHRoZSBlZGl0b3IuXG4gICAqIEBwYXJhbSBzYXZlZFN0YXRlIFRoZSBzYXZlZCBzdGF0ZSBvZiB0aGUgcXVlc3Rpb25uYWlyZSwgb2Z0ZW4gZnJvbSBsb2NhbHN0b3JhZ2UuXG4gICAqIEByZXR1cm5zIG51bGxcbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkUXVlc3Rpb25uYWlyZShxdWVzdGlvbm5haXJlOiBRdWVzdGlvbm5haXJlLCBzYXZlZFN0YXRlPzogT2JqZWN0LCBhZGRpdGlvbmFsRGF0YT86IE9iamVjdCk6IFByb21pc2U8YW55PiB7XG4gICAgdGhpcy5vcmlnaW5hbFF1ZXN0aW9ubmFpcmUgPSBfLmNsb25lRGVlcChxdWVzdGlvbm5haXJlKTtcbiAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlID0gXy5jbG9uZURlZXAocXVlc3Rpb25uYWlyZSk7XG5cbiAgICB0aGlzLmFkZGl0aW9uYWxEYXRhID0gYWRkaXRpb25hbERhdGE7XG5cbiAgICBpZiAoc2F2ZWRTdGF0ZSAmJiBPYmplY3Qua2V5cyhzYXZlZFN0YXRlKS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBuZXdEYXRhID0gdGhpcy5mb3JtQ29uc3R1Y3Rvci5nZW5lcmF0ZUZvcm1zRm9yUXVlc3Rpb25uYWlyZShcbiAgICAgICAgXy5jbG9uZURlZXAodGhpcy5vcmlnaW5hbFF1ZXN0aW9ubmFpcmUpLFxuICAgICAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSxcbiAgICAgICAgdGhpcy5hZGRpdGlvbmFsRGF0YSxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcbiAgICAgIHRoaXMuZm9ybUNvbnN0dWN0b3IuY29uc3RydWN0UmVwZWF0ZXJGcm9tc0Zyb21TdGF0ZShzYXZlZFN0YXRlLCBuZXdEYXRhLnNlY3Rpb25zLCBuZXdEYXRhLmZvcm1zKTtcbiAgICAgIHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtID0gbmV3RGF0YS5mb3JtcztcbiAgICAgIHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLnBhdGNoVmFsdWUoc2F2ZWRTdGF0ZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy51cGRhdGVRdWVzdGlvbm5haXJlKHNhdmVkU3RhdGUpO1xuXG4gICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmUuc2VjdGlvbnMpIHtcbiAgICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2Ygc2VjdGlvbi5xdWVzdGlvbnMpIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldChbc2VjdGlvbi5uYW1lLCBxdWVzdGlvbi5uYW1lXSk7XG4gICAgICAgIGlmICghY29udHJvbC52YWx1ZSAmJiBxdWVzdGlvbi5kZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHF1ZXN0aW9uLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnNraXBUb0ZpcnN0U2VjdGlvbikge1xuICAgICAgdGhpcy5jdXJyZW50U2VjdGlvbk5hbWUgPSBPYmplY3Qua2V5cyh0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybS5jb250cm9scylbMF07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5za2lwVG9GaXJzdFF1ZXN0aW9uKSB7XG4gICAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbk5hbWUgPSBPYmplY3Qua2V5cyh0aGlzLmN1cnJlbnRTZWN0aW9uLmZvcm1Hcm91cC5jb250cm9scylbMF07XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGN1cnJlbnQgcXVlc3Rpb25uYWlyZSwgdXNlZCB3aGVuIGEgdmFsdWUgaXMgdXBkYXRlZCB0byBjaGVjayBjb25kaXRpb25zLlxuICAgKiBAcGFyYW0gc2F2ZWRTdGF0ZSBUaGUgc2F2ZWQgc3RhdGUgb2YgdGhlIHF1ZXN0aW9ubmFpcmUsIG9mdGVuIGZyb20gbG9jYWxzdG9yYWdlLlxuICAgKiBAcmV0dXJucyBudWxsXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlUXVlc3Rpb25uYWlyZShzYXZlZFN0YXRlPzogT2JqZWN0KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBuZXdEYXRhID0gdGhpcy5mb3JtQ29uc3R1Y3Rvci5nZW5lcmF0ZUZvcm1zRm9yUXVlc3Rpb25uYWlyZShcbiAgICAgIF8uY2xvbmVEZWVwKHRoaXMub3JpZ2luYWxRdWVzdGlvbm5haXJlKSxcbiAgICAgIHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLFxuICAgICAgdGhpcy5hZGRpdGlvbmFsRGF0YVxuICAgICk7XG4gICAgdGhpcy5jdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gPSBuZXdEYXRhLmZvcm1zO1xuICAgIHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmUuc2VjdGlvbnMgPSBuZXdEYXRhLnNlY3Rpb25zO1xuXG4gICAgaWYgKHNhdmVkU3RhdGUgJiYgT2JqZWN0LmtleXMoc2F2ZWRTdGF0ZSkubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0ucGF0Y2hWYWx1ZShzYXZlZFN0YXRlKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbm5haXJlVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucXVlc3Rpb25uYWlyZVZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb25WYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5xdWVzdGlvblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5xdWVzdGlvbm5haXJlVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZGF0YUNoYW5nZWRFdmVudC5lbWl0KCk7XG4gICAgICB0aGlzLnVwZGF0ZVF1ZXN0aW9ubmFpcmUodGhpcy5jdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5jdXJyZW50UXVlc3Rpb24pIHtcbiAgICAgIHRoaXMucXVlc3Rpb25WYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuY3VycmVudFF1ZXN0aW9uLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsZWFyRmllbGRzKHRoaXMuY3VycmVudFF1ZXN0aW9uLmRhdGEuY2xlYXJmaWVsZHMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1ZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybS52YWxpZDtcbiAgfVxuXG4gIHB1YmxpYyBzZWN0aW9uVmFsaWQobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldChuYW1lKS52YWxpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgYWxsIHRoZSBmaWVsZHMgcGFyc2VkXG4gICAqIEBwYXJhbSBjbGVhcmZpZWxkcyBBbiBhcnJheSBvZiBzdHJpbmdzLCBwYXRocyB0byBjbGVhci5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgY2xlYXJGaWVsZHMoY2xlYXJmaWVsZHM6IEFycmF5PHN0cmluZz4pIHtcbiAgICBpZiAoIWNsZWFyZmllbGRzIHx8IGNsZWFyZmllbGRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY2xlYXJmaWVsZCBvZiBjbGVhcmZpZWxkcykge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldChjbGVhcmZpZWxkKTtcblxuICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgY29udHJvbC5yZXNldCh1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVbmxvYWRzIHRoZSBjdXJyZW50IHF1ZXN0aW9ubmFpcmUuXG4gICAqIFVzZWZ1bCB3aGVuIGV4aXRpbmcgYSBxdWVzdGlvbm5haXJlIHBhZ2Ugb3IgY29tcGxldGluZyBhIHF1ZXN0aW9ubmFpcmUuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwdWJsaWMgdW5sb2FkUXVlc3Rpb25uYWlyZSgpIHtcbiAgICB0aGlzLm9yaWdpbmFsUXVlc3Rpb25uYWlyZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY3VycmVudFNlY3Rpb25OYW1lID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY3VycmVudFF1ZXN0aW9uTmFtZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmFkZGl0aW9uYWxEYXRhID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgc2VjdGlvbi5cbiAgICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHNlY3Rpb24gZGF0YSBhbmQgdGhlIHJlbGF0ZWQgZm9ybSBncm91cC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBnZXQgY3VycmVudFNlY3Rpb24oKTogeyBkYXRhOiBTZWN0aW9uOyBmb3JtR3JvdXA6IEZvcm1Hcm91cDsgfSB8IG51bGwge1xuICAgIGlmICghdGhpcy5jdXJyZW50U2VjdGlvbk5hbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlLnNlY3Rpb25zLmZpbmQoKHgpID0+IHtcbiAgICAgIHJldHVybiB4Lm5hbWUgPT09IHRoaXMuY3VycmVudFNlY3Rpb25OYW1lO1xuICAgIH0pO1xuXG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogZGF0YSxcbiAgICAgIGZvcm1Hcm91cDogdGhpcy5jdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0uZ2V0KGRhdGEubmFtZSkgYXMgRm9ybUdyb3VwXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFsbCB0aGUgYXZhaWFsYmxlIHNlY3Rpb25zLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBhbGwgYXZhaWFsYmxlIHNlY3Rpb25zLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHVibGljIGdldCBhdmFpbGFibGVTZWN0aW9ucygpOiBBcnJheTxTZWN0aW9uPiB7XG4gICAgaWYgKCF0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlIHx8ICF0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlLnNlY3Rpb25zKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlLnNlY3Rpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgZGF0YSBmb3IgdGhlIGVudGlyZSBxdWVzdGlvbm5haXJlLlxuICAgKiBAcmV0dXJucyBBbiBvYmplY3Qgb2YgZGF0YS5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBnZXQgY3VycmVudERhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldFJhd1ZhbHVlKCk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHNlbGVjdGVkIHF1ZXN0aW9uLlxuICAgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgcXVlc3Rpb24gZGF0YSBhbmQgdGhlIHJlbGF0ZWQgZm9ybSBjb250cm9sLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHVibGljIGdldCBjdXJyZW50UXVlc3Rpb24oKTogeyBkYXRhOiBRdWVzdGlvbjsgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDsgfSB8IG51bGwge1xuICAgIGlmICghdGhpcy5jdXJyZW50UXVlc3Rpb25OYW1lKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gdGhpcy5jdXJyZW50U2VjdGlvbi5kYXRhLnF1ZXN0aW9ucy5maW5kKCh4KSA9PiB7XG4gICAgICByZXR1cm4geC5uYW1lID09PSB0aGlzLmN1cnJlbnRRdWVzdGlvbk5hbWU7XG4gICAgfSk7XG5cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiBkYXRhLFxuICAgICAgZm9ybUNvbnRyb2w6IHRoaXMuY3VycmVudFNlY3Rpb24uZm9ybUdyb3VwLmdldChkYXRhLm5hbWUpIGFzIEFic3RyYWN0Q29udHJvbFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSBuZXh0IHF1ZXN0aW9uLlxuICAgKiBJZiB0aGVyZSBpcyBubyBxdWVzdGlvbiB0byBuYXZpZ2F0ZSB0byBpdCB3aWxsIHJlamVjdCB3aXRoIGEgb3V0IG9mIGJvdW5kcyBleGNlcHRpb24uXG4gICAqIElmIGFsbG93U2tpcFJlcXVpcmVkRmllbGQgaXMgZmFsc2UgdGhlbiBpdCB3aWxsIHJlamVjdCBpZiB0aGUgY3VycmVudCBxdWVzdGlvbiBpcyBpbnZhbGlkLlxuICAgKiBJZiBlbWl0U2VjdGlvbkZpbmlzaEV2ZW50IGlzIHRydWUgdGhlbiBpdCB3aWxsIGVtaXQgYW4gZXZlbnQgaWYgaXQncyBuYXZpZ2F0aW5nIHBhc3QgdGhlIGxlbmd0aCBvZiBxdWVzdGlvbnMuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCB3aWxsIHJlc29sdmUgd2hlbiB0aGUgcXVlc3Rpb24gaGFzIGJlZW4gbmF2aWdhdGVkIHRvLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHVibGljIG5leHRRdWVzdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuYWxsb3dTa2lwUmVxdWlyZWRGaWVsZCkge1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudFF1ZXN0aW9uLmZvcm1Db250cm9sLnZhbGlkKSB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdCgnQ3VycmVudCBxdWVzdGlvbiBpcyBpbnZhbGlkJyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5nZXRDdXJyZW50UXVlc3Rpb25JbmRleCgpLnRoZW4oKGN1cnJlbnRJbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBuZXdJbmRleCA9IGN1cnJlbnRJbmRleCArIDE7XG5cbiAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvUXVlc3Rpb24obmV3SW5kZXgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlcyB0byB0aGUgcHJldmlvdXMgcXVlc3Rpb24uXG4gICAqIElmIHRoZXJlIGlzIG5vIHF1ZXN0aW9uIHRvIG5hdmlnYXRlIHRvIGl0IHdpbGwgcmVqZWN0IHdpdGggYSBvdXQgb2YgYm91bmRzIGV4Y2VwdGlvbi5cbiAgICogSWYgYWxsb3dOYXZpZ2F0ZUJhY2t3YXJkcyBpcyBmYWxzZSB0aGVuIGl0IHdpbGwgcmVqZWN0LlxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugd2hpY2ggd2lsbCByZXNvbHZlIHdoZW4gdGhlIHF1ZXN0aW9uIGhhcyBiZWVuIG5hdmlnYXRlZCB0by5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBwcmV2UXVlc3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5vcHRpb25zLmFsbG93TmF2aWdhdGVCYWNrd2FyZHMpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdCgnVGhpcyBxdWVzdGlvbm5haXJlIGRvZXMgbm90IGFsbG93IGZvciBiYWNrd2FyZHMgbmF2aWdhdGlvbicpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmdldEN1cnJlbnRRdWVzdGlvbkluZGV4KCkudGhlbigoY3VycmVudEluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0luZGV4ID0gY3VycmVudEluZGV4IC0gMTtcblxuICAgICAgICB0aGlzLm5hdmlnYXRlVG9RdWVzdGlvbihuZXdJbmRleCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCBxdWVzdGlvbnMgaW5kZXguXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCByZXNvbHZlcyBhIG51bWJlci5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgZ2V0Q3VycmVudFF1ZXN0aW9uSW5kZXgoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5jdXJyZW50U2VjdGlvbi5kYXRhLnF1ZXN0aW9ucy5pbmRleE9mKHRoaXMuY3VycmVudFF1ZXN0aW9uLmRhdGEpO1xuXG4gICAgICBpZiAoY3VycmVudEluZGV4ID09PSAtMSkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KCdDb3VsZCBub3QgZmluZCBjdXJyZW50IHF1ZXN0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNvbHZlKGN1cnJlbnRJbmRleCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGEgcXVlc3Rpb24gaXMgaW4gYm91bmRzIHRoZW4gbmF2aWdhdGVzIHRvIGl0LlxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IHRvIG5hdmlnYXRlIHRvLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugd2hpY2ggd2lsbCByZXNvbHZlIHdoZW4gdGhlIHF1ZXN0aW9uIGhhcyBiZWVuIG5hdmlnYXRlZCB0by5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvUXVlc3Rpb24oaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAodGhpcy5jdXJyZW50U2VjdGlvbi5kYXRhLnF1ZXN0aW9ucy5sZW5ndGggLSAxIDwgaW5kZXggfHwgaW5kZXggPCAwKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoJ091dCBvZiBib3VuZHMgZXhjZXB0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY3VycmVudFF1ZXN0aW9uTmFtZSA9IHRoaXMuY3VycmVudFNlY3Rpb24uZGF0YS5xdWVzdGlvbnNbaW5kZXhdLm5hbWU7XG4gICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlcyB0byB0aGUgbmV4dCBzZWN0aW9uLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugd2hpY2ggd2lsbCByZXNvbHZlIHdoZW4gdGhlIHNlY3Rpb24gaGFzIGJlZW4gbmF2aWdhdGVkIHRvLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHVibGljIG5leHRTZWN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmdldEN1cnJlbnRTZWN0aW9uSW5kZXgoKS50aGVuKChjdXJyZW50SW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgbmV3SW5kZXggPSBjdXJyZW50SW5kZXggKyAxO1xuICAgICAgICB0aGlzLm5hdmlnYXRlVG9TZWN0aW9uKG5ld0luZGV4KS50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOYXZpZ2F0ZXMgdG8gdGhlIHByZXZpb3VzIHNlY3Rpb24uXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCB3aWxsIHJlc29sdmUgd2hlbiB0aGUgc2VjdGlvbiBoYXMgYmVlbiBuYXZpZ2F0ZWQgdG8uXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwdWJsaWMgcHJldlNlY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuZ2V0Q3VycmVudFNlY3Rpb25JbmRleCgpLnRoZW4oKGN1cnJlbnRJbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBuZXdJbmRleCA9IGN1cnJlbnRJbmRleCAtIDE7XG4gICAgICAgIHRoaXMubmF2aWdhdGVUb1F1ZXN0aW9uKG5ld0luZGV4KS50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHNlY3Rpb24gaW5kZXguXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCByZXNvbHZlcyBhIG51bWJlci5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgZ2V0Q3VycmVudFNlY3Rpb25JbmRleCgpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlLnNlY3Rpb25zLmluZGV4T2YodGhpcy5jdXJyZW50U2VjdGlvbi5kYXRhKTtcblxuICAgICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdCgnQ291bGQgbm90IGZpbmQgY3VycmVudCBzZWN0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNvbHZlKGN1cnJlbnRJbmRleCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGEgc2VjdGlvbiBpcyBpbiBib3VuZHMgdGhlbiBuYXZpZ2F0ZXMgdG8gaXQuXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggdG8gbmF2aWdhdGUgdG8uXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCB3aWxsIHJlc29sdmUgd2hlbiB0aGUgc2VjdGlvbiBoYXMgYmVlbiBuYXZpZ2F0ZWQgdG8uXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwdWJsaWMgbmF2aWdhdGVUb1NlY3Rpb24oaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAodGhpcy5jdXJyZW50UXVlc3Rpb25uYWlyZS5zZWN0aW9ucy5sZW5ndGggLSAxIDwgaW5kZXggfHwgaW5kZXggPCAwKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoJ091dCBvZiBib3VuZHMgZXhjZXB0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY3VycmVudFNlY3Rpb25OYW1lID0gdGhpcy5jdXJyZW50UXVlc3Rpb25uYWlyZS5zZWN0aW9uc1tpbmRleF0ubmFtZTtcbiAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQW5zd2VycyB0aGUgY3VycmVudCBxdWVzdGlvbiB3aXRoIHRoZSBwYXJzZWQgdmFsdWUuXG4gICAqIEBwYXJhbSBhbnN3ZXIgVGhlIHZhbHVlIHRvIGFuc3dlciB0aGUgcXVlc3Rpb24gd2l0aC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBhbnN3ZXJDdXJyZW50UXVlc3Rpb24oYW5zd2VyOiBhbnksIHNlbmRUb05leHRRdWVzdGlvbj86IGJvb2xlYW4pIHtcbiAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbi5mb3JtQ29udHJvbC5zZXRWYWx1ZShhbnN3ZXIpO1xuICAgIGlmIChzZW5kVG9OZXh0UXVlc3Rpb24gJiYgdGhpcy5za2lwcGFibGUpIHsgLy8gVGltZW91dCB0byBwcmV2ZW50IHNraXBwaW5nIGdsaXRjaC5cbiAgICAgIHRoaXMuc2tpcHBhYmxlID0gZmFsc2U7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5uZXh0UXVlc3Rpb24oKTtcbiAgICAgICAgdGhpcy5za2lwcGFibGUgPSB0cnVlO1xuICAgICAgfSwgMTUwKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlcGVhdGVyIGl0ZW0gdG8gdGhlIGN1cnJlbnQgcXVlc3Rpb24uXG4gICAqIEN1cnJlbnQgcXVlc3Rpb24gbXVzdCBiZSBvZiB0eXBlIFJlcGVhdGVyLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugd2hpY2ggcmVzb2x2ZXMgd2hlbiB0aGUgcmVwZWF0ZXIgaXRlbSBoYXMgYmVlbiBhZGRlZC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBhZGRSZXBlYXRlckl0ZW0oKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRRdWVzdGlvbi5kYXRhLnR5cGUgIT09IFF1ZXN0aW9uVHlwZS5SZXBlYXRlcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGBDdXJyZW50IHF1ZXN0aW9uIGlzbid0IGEgcmVwZWF0ZXJgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlcGVhdGVyRm9ybSA9IHRoaXMuZm9ybUNvbnN0dWN0b3IuZ2VuZXJhdGVGb3Jtc0ZvclJlcGVhdGVyKHRoaXMuY3VycmVudFF1ZXN0aW9uLmRhdGEpO1xuXG4gICAgICBpZiAoIXJlcGVhdGVyRm9ybSkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGBSZXBlYXRlciB0ZW1wbGF0ZSBmYWlsZWQgdG8gZ2VuZXJhdGUuIE1heSBiZSBkdWUgdG8gdGhlIHJlcGVhdGVyIGhhdmluZyBubyBpdGVtcyBpbiB0aGUgZWRpdG9yLmApO1xuICAgICAgfVxuXG5cbiAgICAgIGlmICghKHRoaXMuY3VycmVudFF1ZXN0aW9uLmZvcm1Db250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGBUaGUgY3VycmVudCBxdWVzdGlvbnMgY29udHJvbCBpc24ndCBvZiB0eXBlIEZvcm1BcnJheWApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbi5mb3JtQ29udHJvbC5wdXNoKHJlcGVhdGVyRm9ybSk7XG4gICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSByZXBlYXRlciBpdGVtIG9uIHRoZSBjdXJyZW50IHF1ZXN0aW9uLlxuICAgKiBDdXJyZW50IHF1ZXN0aW9uIG11c3QgYmUgb2YgdHlwZSBSZXBlYXRlci5cbiAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBhdCB3aGljaCB0byByZW1vdmUuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCByZXNvbHZlcyB3aGVuIHRoZSByZXBlYXRlciBpdGVtIGhhcyBiZWVuIHJlbW92ZWQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlUmVwZWF0ZXJJdGVtKGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY3VycmVudFF1ZXN0aW9uLmRhdGEudHlwZSAhPT0gUXVlc3Rpb25UeXBlLlJlcGVhdGVyKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoYEN1cnJlbnQgcXVlc3Rpb24gaXNuJ3QgYSByZXBlYXRlcmApO1xuICAgICAgfVxuXG4gICAgICBpZiAoISh0aGlzLmN1cnJlbnRRdWVzdGlvbi5mb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChgVGhlIGN1cnJlbnQgcXVlc3Rpb25zIGNvbnRyb2wgaXNuJ3Qgb2YgdHlwZSBGb3JtQXJyYXlgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jdXJyZW50UXVlc3Rpb24uZm9ybUNvbnRyb2wucmVtb3ZlQXQoaW5kZXgpO1xuICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkaXNwbGF5IHRleHQgZm9yIGEgZ2l2ZW4gcmVwZWF0ZXIgaXRlbVxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IGF0IHdoaWNoIHRvIGdldCB0aGUgbGFiZWwgZm9yLlxuICAgKiBAcmV0dXJucyBBIHN0cmluZyB3aGljaCBpcyB0aGUgZGlzcGxheSB0ZXh0LlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHVibGljIGdldFJlcGVhdGVySXRlbUxhYmVsKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5jdXJyZW50UXVlc3Rpb24uZm9ybUNvbnRyb2wgfHwgISh0aGlzLmN1cnJlbnRRdWVzdGlvbi5mb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCByZXBlYXRlckl0ZW0gPSB0aGlzLmN1cnJlbnRRdWVzdGlvbi5mb3JtQ29udHJvbC5jb250cm9sc1tpbmRleF07XG5cbiAgICBpZiAoIXJlcGVhdGVySXRlbSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IHRlbXBsYXRlID0gdGhpcy5jdXJyZW50UXVlc3Rpb24uZGF0YS5yZXBlYXRlckRpc3BsYXlOYW1lO1xuICAgIGNvbnN0IHNwbGl0VGVtcGxhdGUgPSB0ZW1wbGF0ZS5zcGxpdCgnICcpO1xuXG4gICAgY29uc3QgZGlzcGxheUFycmF5ID0gW107XG4gICAgZm9yIChjb25zdCB0ZW1wbGF0ZUl0ZW0gb2Ygc3BsaXRUZW1wbGF0ZSkge1xuICAgICAgaWYgKHRlbXBsYXRlSXRlbS5tYXRjaCgvXFxbLio/XFxdLykpIHtcbiAgICAgICAgY29uc3QgcGF0aCA9IHRlbXBsYXRlSXRlbS5yZXBsYWNlKC9bXFxbXFxdJ10rL2csICcnKTtcbiAgICAgICAgY29uc3QgaXRlbSA9IHJlcGVhdGVySXRlbS5nZXQocGF0aCk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gaXRlbS52YWx1ZSA/IGl0ZW0udmFsdWUgOiAnPyc7XG4gICAgICAgIGRpc3BsYXlBcnJheS5wdXNoKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRpc3BsYXlBcnJheS5wdXNoKHRlbXBsYXRlSXRlbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZGlzcGxheSA9IGRpc3BsYXlBcnJheS5qb2luKCcgJyk7XG4gICAgcmV0dXJuIGRpc3BsYXk7XG4gIH1cbn1cbiJdfQ==
|
|
953
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb25uYWlyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdsb3dncmVlbi9nZy1xdWVzdGlvbm5haXJlLXYyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3F1ZXN0aW9ubmFpcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVwRSxPQUFPLEVBQThCLFNBQVMsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBSXBGLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRTNEO0lBcUJFLDhCQUNVLGNBQXNDLEVBQ25CLE9BQTZCO1FBRGhELG1CQUFjLEdBQWQsY0FBYyxDQUF3QjtRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQW5CbkQscUJBQWdCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFlN0QsY0FBUyxHQUFHLElBQUksQ0FBQztJQUtyQixDQUFDO0lBRUw7Ozs7OztPQU1HOzs7Ozs7Ozs7SUFDVSxnREFBaUI7Ozs7Ozs7O0lBQTlCLFVBQStCLGFBQTRCLEVBQUUsVUFBbUIsRUFBRSxjQUF1Qjs7Ozs7Ozt3QkFDdkcsSUFBSSxDQUFDLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7d0JBQ3hELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUV2RCxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQzt3QkFFckMsSUFBSSxVQUFVLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FB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QUFhLENBQUEsNENBQUEsdUVBQUU7Z0JBQXJDLElBQU0sWUFBWSwwQkFBQTtnQkFDckIsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFOzt3QkFDM0IsSUFBSSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQzs7d0JBQzVDLElBQUksR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQzs7d0JBQzdCLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHO29CQUMzQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUMxQjtxQkFBTTtvQkFDTCxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNqQzthQUNGOzs7Ozs7Ozs7O1lBRUssT0FBTyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3RDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7O2dCQXplRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2dCQVpRLHNCQUFzQjtnREFpQzFCLE1BQU0sU0FBQyxTQUFTOzs7K0JBbENyQjtDQXFmQyxBQTFlRCxJQTBlQztTQXZlWSxvQkFBb0I7OztJQUMvQixnREFBcUU7Ozs7O0lBRXJFLHFEQUE2Qzs7Ozs7SUFFN0Msb0RBQTRDOzs7OztJQUM1Qyx3REFBNEM7Ozs7O0lBRTVDLGtEQUFtQzs7Ozs7SUFDbkMsbURBQW9DOzs7OztJQUVwQyxvRUFBMkQ7Ozs7O0lBQzNELCtEQUFzRDs7Ozs7SUFFdEQsOENBQStCOzs7OztJQUUvQix5Q0FBeUI7Ozs7O0lBR3ZCLDhDQUE4Qzs7Ozs7SUFDOUMsdUNBQXdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db25zdHJ1Y3RvclNlcnZpY2UgfSBmcm9tICcuL2Zvcm0tY29uc3RydWN0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBRdWVzdGlvbm5haXJlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9xdWVzdGlvbm5haXJlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2VjdGlvbic7XG5pbXBvcnQgeyBRdWVzdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcXVlc3Rpb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBRdWVzdGlvbm5haXJlT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvcXVlc3Rpb25uYWlyZS1vcHRpb25zJztcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZSB9IGZyb20gJy4uL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9ubmFpcmVTZXJ2aWNlIHtcbiAgcHVibGljIGRhdGFDaGFuZ2VkRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBvcmlnaW5hbFF1ZXN0aW9ubmFpcmU6IFF1ZXN0aW9ubmFpcmU7XG5cbiAgcHJpdmF0ZSBjdXJyZW50UXVlc3Rpb25uYWlyZTogUXVlc3Rpb25uYWlyZTtcbiAgcHJpdmF0ZSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cDtcblxuICBwcml2YXRlIGN1cnJlbnRTZWN0aW9uTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIGN1cnJlbnRRdWVzdGlvbk5hbWU6IHN0cmluZztcblxuICBwcml2YXRlIHF1ZXN0aW9ubmFpcmVWYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHF1ZXN0aW9uVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGFkZGl0aW9uYWxEYXRhOiBPYmplY3Q7XG5cbiAgcHJpdmF0ZSBza2lwcGFibGUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybUNvbnN0dWN0b3I6IEZvcm1Db25zdHJ1Y3RvclNlcnZpY2UsXG4gICAgQEluamVjdCgnb3B0aW9ucycpIHByaXZhdGUgb3B0aW9uczogUXVlc3Rpb25uYWlyZU9wdGlvbnNcbiAgKSB7IH1cblxuICAvKipcbiAgICogTG9hZHMgYSBxdWVzdGlvbm5haXJlIGZyb20gZGF0YS5cbiAgICogQHBhcmFtIHF1ZXN0aW9ubmFpcmUgVGhlIHF1ZXN0aW9ubmFpcmUgZGF0YSB0byBsb2FkLCBvZnRlbiBwYXJzZWQgSlNPTiBmcm9tIHRoZSBlZGl0b3IuXG4gICAqIEBwYXJhbSBzYXZlZFN0YXRlIFRoZSBzYXZlZCBzdGF0ZSBvZiB0aGUgcXVlc3Rpb25uYWlyZSwgb2Z0ZW4gZnJvbSBsb2NhbHN0b3JhZ2UuXG4gICAqIEByZXR1cm5zIG51bGxcbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkUXVlc3Rpb25uYWlyZShxdWVzdGlvbm5haXJlOiBRdWVzdGlvbm5haXJlLCBzYXZlZFN0YXRlPzogT2JqZWN0LCBhZGRpdGlvbmFsRGF0YT86IE9iamVjdCk6IFByb21pc2U8YW55PiB7XG4gICAgdGhpcy5vcmlnaW5hbFF1ZXN0aW9ubmFpcmUgPSBfLmNsb25lRGVlcChxdWVzdGlvbm5haXJlKTtcbiAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlID0gXy5jbG9uZURlZXAocXVlc3Rpb25uYWlyZSk7XG5cbiAgICB0aGlzLmFkZGl0aW9uYWxEYXRhID0gYWRkaXRpb25hbERhdGE7XG5cbiAgICBpZiAoc2F2ZWRTdGF0ZSAmJiBPYmplY3Qua2V5cyhzYXZlZFN0YXRlKS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBuZXdEYXRhID0gdGhpcy5mb3JtQ29uc3R1Y3Rvci5nZW5lcmF0ZUZvcm1zRm9yUXVlc3Rpb25uYWlyZShcbiAgICAgICAgXy5jbG9uZURlZXAodGhpcy5vcmlnaW5hbFF1ZXN0aW9ubmFpcmUpLFxuICAgICAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSxcbiAgICAgICAgdGhpcy5hZGRpdGlvbmFsRGF0YSxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcbiAgICAgIHRoaXMuZm9ybUNvbnN0dWN0b3IuY29uc3RydWN0UmVwZWF0ZXJGcm9tc0Zyb21TdGF0ZShzYXZlZFN0YXRlLCBuZXdEYXRhLnNlY3Rpb25zLCBuZXdEYXRhLmZvcm1zKTtcbiAgICAgIHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtID0gbmV3RGF0YS5mb3JtcztcbiAgICAgIHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLnBhdGNoVmFsdWUoc2F2ZWRTdGF0ZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy51cGRhdGVRdWVzdGlvbm5haXJlKHNhdmVkU3RhdGUpO1xuXG4gICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmUuc2VjdGlvbnMpIHtcbiAgICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2Ygc2VjdGlvbi5xdWVzdGlvbnMpIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldChbc2VjdGlvbi5uYW1lLCBxdWVzdGlvbi5uYW1lXSk7XG4gICAgICAgIGlmICghY29udHJvbC52YWx1ZSAmJiBxdWVzdGlvbi5kZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHF1ZXN0aW9uLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnNraXBUb0ZpcnN0U2VjdGlvbikge1xuICAgICAgdGhpcy5jdXJyZW50U2VjdGlvbk5hbWUgPSBPYmplY3Qua2V5cyh0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybS5jb250cm9scylbMF07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5za2lwVG9GaXJzdFF1ZXN0aW9uKSB7XG4gICAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbk5hbWUgPSBPYmplY3Qua2V5cyh0aGlzLmN1cnJlbnRTZWN0aW9uLmZvcm1Hcm91cC5jb250cm9scylbMF07XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGN1cnJlbnQgcXVlc3Rpb25uYWlyZSwgdXNlZCB3aGVuIGEgdmFsdWUgaXMgdXBkYXRlZCB0byBjaGVjayBjb25kaXRpb25zLlxuICAgKiBAcGFyYW0gc2F2ZWRTdGF0ZSBUaGUgc2F2ZWQgc3RhdGUgb2YgdGhlIHF1ZXN0aW9ubmFpcmUsIG9mdGVuIGZyb20gbG9jYWxzdG9yYWdlLlxuICAgKiBAcmV0dXJucyBudWxsXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlUXVlc3Rpb25uYWlyZShzYXZlZFN0YXRlPzogT2JqZWN0KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBuZXdEYXRhID0gdGhpcy5mb3JtQ29uc3R1Y3Rvci5nZW5lcmF0ZUZvcm1zRm9yUXVlc3Rpb25uYWlyZShcbiAgICAgIF8uY2xvbmVEZWVwKHRoaXMub3JpZ2luYWxRdWVzdGlvbm5haXJlKSxcbiAgICAgIHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLFxuICAgICAgdGhpcy5hZGRpdGlvbmFsRGF0YVxuICAgICk7XG4gICAgdGhpcy5jdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gPSBuZXdEYXRhLmZvcm1zO1xuICAgIHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmUuc2VjdGlvbnMgPSBuZXdEYXRhLnNlY3Rpb25zO1xuXG4gICAgaWYgKHNhdmVkU3RhdGUgJiYgT2JqZWN0LmtleXMoc2F2ZWRTdGF0ZSkubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0ucGF0Y2hWYWx1ZShzYXZlZFN0YXRlKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbm5haXJlVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucXVlc3Rpb25uYWlyZVZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb25WYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5xdWVzdGlvblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5xdWVzdGlvbm5haXJlVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZGF0YUNoYW5nZWRFdmVudC5lbWl0KCk7XG4gICAgICB0aGlzLnVwZGF0ZVF1ZXN0aW9ubmFpcmUodGhpcy5jdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5jdXJyZW50UXVlc3Rpb24pIHtcbiAgICAgIHRoaXMucXVlc3Rpb25WYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuY3VycmVudFF1ZXN0aW9uLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsZWFyRmllbGRzKHRoaXMuY3VycmVudFF1ZXN0aW9uLmRhdGEuY2xlYXJmaWVsZHMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1ZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybS52YWxpZDtcbiAgfVxuXG4gIHB1YmxpYyBzZWN0aW9uVmFsaWQobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldChuYW1lKS52YWxpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgYWxsIHRoZSBmaWVsZHMgcGFyc2VkXG4gICAqIEBwYXJhbSBjbGVhcmZpZWxkcyBBbiBhcnJheSBvZiBzdHJpbmdzLCBwYXRocyB0byBjbGVhci5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgY2xlYXJGaWVsZHMoY2xlYXJmaWVsZHM6IEFycmF5PHN0cmluZz4pIHtcbiAgICBpZiAoIWNsZWFyZmllbGRzIHx8IGNsZWFyZmllbGRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY2xlYXJmaWVsZCBvZiBjbGVhcmZpZWxkcykge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldChjbGVhcmZpZWxkKTtcblxuICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgY29udHJvbC5yZXNldCh1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVbmxvYWRzIHRoZSBjdXJyZW50IHF1ZXN0aW9ubmFpcmUuXG4gICAqIFVzZWZ1bCB3aGVuIGV4aXRpbmcgYSBxdWVzdGlvbm5haXJlIHBhZ2Ugb3IgY29tcGxldGluZyBhIHF1ZXN0aW9ubmFpcmUuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwdWJsaWMgdW5sb2FkUXVlc3Rpb25uYWlyZSgpIHtcbiAgICB0aGlzLm9yaWdpbmFsUXVlc3Rpb25uYWlyZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY3VycmVudFNlY3Rpb25OYW1lID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY3VycmVudFF1ZXN0aW9uTmFtZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmFkZGl0aW9uYWxEYXRhID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgc2VjdGlvbi5cbiAgICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHNlY3Rpb24gZGF0YSBhbmQgdGhlIHJlbGF0ZWQgZm9ybSBncm91cC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBnZXQgY3VycmVudFNlY3Rpb24oKTogeyBkYXRhOiBTZWN0aW9uOyBmb3JtR3JvdXA6IEZvcm1Hcm91cDsgfSB8IG51bGwge1xuICAgIGlmICghdGhpcy5jdXJyZW50U2VjdGlvbk5hbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlLnNlY3Rpb25zLmZpbmQoKHgpID0+IHtcbiAgICAgIHJldHVybiB4Lm5hbWUgPT09IHRoaXMuY3VycmVudFNlY3Rpb25OYW1lO1xuICAgIH0pO1xuXG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogZGF0YSxcbiAgICAgIGZvcm1Hcm91cDogdGhpcy5jdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0uZ2V0KGRhdGEubmFtZSkgYXMgRm9ybUdyb3VwXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFsbCB0aGUgYXZhaWFsYmxlIHNlY3Rpb25zLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBhbGwgYXZhaWFsYmxlIHNlY3Rpb25zLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHVibGljIGdldCBhdmFpbGFibGVTZWN0aW9ucygpOiBBcnJheTxTZWN0aW9uPiB7XG4gICAgaWYgKCF0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlIHx8ICF0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlLnNlY3Rpb25zKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlLnNlY3Rpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgZGF0YSBmb3IgdGhlIGVudGlyZSBxdWVzdGlvbm5haXJlLlxuICAgKiBAcmV0dXJucyBBbiBvYmplY3Qgb2YgZGF0YS5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBnZXQgY3VycmVudERhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldFJhd1ZhbHVlKCk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHNlbGVjdGVkIHF1ZXN0aW9uLlxuICAgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgcXVlc3Rpb24gZGF0YSBhbmQgdGhlIHJlbGF0ZWQgZm9ybSBjb250cm9sLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHVibGljIGdldCBjdXJyZW50UXVlc3Rpb24oKTogeyBkYXRhOiBRdWVzdGlvbjsgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDsgfSB8IG51bGwge1xuICAgIGlmICghdGhpcy5jdXJyZW50UXVlc3Rpb25OYW1lKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gdGhpcy5jdXJyZW50U2VjdGlvbi5kYXRhLnF1ZXN0aW9ucy5maW5kKCh4KSA9PiB7XG4gICAgICByZXR1cm4geC5uYW1lID09PSB0aGlzLmN1cnJlbnRRdWVzdGlvbk5hbWU7XG4gICAgfSk7XG5cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiBkYXRhLFxuICAgICAgZm9ybUNvbnRyb2w6IHRoaXMuY3VycmVudFNlY3Rpb24uZm9ybUdyb3VwLmdldChkYXRhLm5hbWUpIGFzIEFic3RyYWN0Q29udHJvbFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSBuZXh0IHF1ZXN0aW9uLlxuICAgKiBJZiB0aGVyZSBpcyBubyBxdWVzdGlvbiB0byBuYXZpZ2F0ZSB0byBpdCB3aWxsIHJlamVjdCB3aXRoIGEgb3V0IG9mIGJvdW5kcyBleGNlcHRpb24uXG4gICAqIElmIGFsbG93U2tpcFJlcXVpcmVkRmllbGQgaXMgZmFsc2UgdGhlbiBpdCB3aWxsIHJlamVjdCBpZiB0aGUgY3VycmVudCBxdWVzdGlvbiBpcyBpbnZhbGlkLlxuICAgKiBJZiBlbWl0U2VjdGlvbkZpbmlzaEV2ZW50IGlzIHRydWUgdGhlbiBpdCB3aWxsIGVtaXQgYW4gZXZlbnQgaWYgaXQncyBuYXZpZ2F0aW5nIHBhc3QgdGhlIGxlbmd0aCBvZiBxdWVzdGlvbnMuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCB3aWxsIHJlc29sdmUgd2hlbiB0aGUgcXVlc3Rpb24gaGFzIGJlZW4gbmF2aWdhdGVkIHRvLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHVibGljIG5leHRRdWVzdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuYWxsb3dTa2lwUmVxdWlyZWRGaWVsZCkge1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudFF1ZXN0aW9uLmZvcm1Db250cm9sLnZhbGlkKSB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdCgnQ3VycmVudCBxdWVzdGlvbiBpcyBpbnZhbGlkJyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5nZXRDdXJyZW50UXVlc3Rpb25JbmRleCgpLnRoZW4oKGN1cnJlbnRJbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBuZXdJbmRleCA9IGN1cnJlbnRJbmRleCArIDE7XG5cbiAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvUXVlc3Rpb24obmV3SW5kZXgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlcyB0byB0aGUgcHJldmlvdXMgcXVlc3Rpb24uXG4gICAqIElmIHRoZXJlIGlzIG5vIHF1ZXN0aW9uIHRvIG5hdmlnYXRlIHRvIGl0IHdpbGwgcmVqZWN0IHdpdGggYSBvdXQgb2YgYm91bmRzIGV4Y2VwdGlvbi5cbiAgICogSWYgYWxsb3dOYXZpZ2F0ZUJhY2t3YXJkcyBpcyBmYWxzZSB0aGVuIGl0IHdpbGwgcmVqZWN0LlxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugd2hpY2ggd2lsbCByZXNvbHZlIHdoZW4gdGhlIHF1ZXN0aW9uIGhhcyBiZWVuIG5hdmlnYXRlZCB0by5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBwcmV2UXVlc3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5vcHRpb25zLmFsbG93TmF2aWdhdGVCYWNrd2FyZHMpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdCgnVGhpcyBxdWVzdGlvbm5haXJlIGRvZXMgbm90IGFsbG93IGZvciBiYWNrd2FyZHMgbmF2aWdhdGlvbicpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmdldEN1cnJlbnRRdWVzdGlvbkluZGV4KCkudGhlbigoY3VycmVudEluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0luZGV4ID0gY3VycmVudEluZGV4IC0gMTtcblxuICAgICAgICB0aGlzLm5hdmlnYXRlVG9RdWVzdGlvbihuZXdJbmRleCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCBxdWVzdGlvbnMgaW5kZXguXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCByZXNvbHZlcyBhIG51bWJlci5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgZ2V0Q3VycmVudFF1ZXN0aW9uSW5kZXgoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5jdXJyZW50U2VjdGlvbi5kYXRhLnF1ZXN0aW9ucy5pbmRleE9mKHRoaXMuY3VycmVudFF1ZXN0aW9uLmRhdGEpO1xuXG4gICAgICBpZiAoY3VycmVudEluZGV4ID09PSAtMSkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KCdDb3VsZCBub3QgZmluZCBjdXJyZW50IHF1ZXN0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNvbHZlKGN1cnJlbnRJbmRleCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGEgcXVlc3Rpb24gaXMgaW4gYm91bmRzIHRoZW4gbmF2aWdhdGVzIHRvIGl0LlxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IHRvIG5hdmlnYXRlIHRvLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugd2hpY2ggd2lsbCByZXNvbHZlIHdoZW4gdGhlIHF1ZXN0aW9uIGhhcyBiZWVuIG5hdmlnYXRlZCB0by5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvUXVlc3Rpb24oaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAodGhpcy5jdXJyZW50U2VjdGlvbi5kYXRhLnF1ZXN0aW9ucy5sZW5ndGggLSAxIDwgaW5kZXggfHwgaW5kZXggPCAwKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoJ091dCBvZiBib3VuZHMgZXhjZXB0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY3VycmVudFF1ZXN0aW9uTmFtZSA9IHRoaXMuY3VycmVudFNlY3Rpb24uZGF0YS5xdWVzdGlvbnNbaW5kZXhdLm5hbWU7XG4gICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlcyB0byB0aGUgbmV4dCBzZWN0aW9uLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugd2hpY2ggd2lsbCByZXNvbHZlIHdoZW4gdGhlIHNlY3Rpb24gaGFzIGJlZW4gbmF2aWdhdGVkIHRvLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHVibGljIG5leHRTZWN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmdldEN1cnJlbnRTZWN0aW9uSW5kZXgoKS50aGVuKChjdXJyZW50SW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgbmV3SW5kZXggPSBjdXJyZW50SW5kZXggKyAxO1xuICAgICAgICB0aGlzLm5hdmlnYXRlVG9TZWN0aW9uKG5ld0luZGV4KS50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOYXZpZ2F0ZXMgdG8gdGhlIHByZXZpb3VzIHNlY3Rpb24uXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCB3aWxsIHJlc29sdmUgd2hlbiB0aGUgc2VjdGlvbiBoYXMgYmVlbiBuYXZpZ2F0ZWQgdG8uXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwdWJsaWMgcHJldlNlY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuZ2V0Q3VycmVudFNlY3Rpb25JbmRleCgpLnRoZW4oKGN1cnJlbnRJbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBuZXdJbmRleCA9IGN1cnJlbnRJbmRleCAtIDE7XG4gICAgICAgIHRoaXMubmF2aWdhdGVUb1F1ZXN0aW9uKG5ld0luZGV4KS50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHNlY3Rpb24gaW5kZXguXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCByZXNvbHZlcyBhIG51bWJlci5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgZ2V0Q3VycmVudFNlY3Rpb25JbmRleCgpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmN1cnJlbnRRdWVzdGlvbm5haXJlLnNlY3Rpb25zLmluZGV4T2YodGhpcy5jdXJyZW50U2VjdGlvbi5kYXRhKTtcblxuICAgICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdCgnQ291bGQgbm90IGZpbmQgY3VycmVudCBzZWN0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNvbHZlKGN1cnJlbnRJbmRleCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGEgc2VjdGlvbiBpcyBpbiBib3VuZHMgdGhlbiBuYXZpZ2F0ZXMgdG8gaXQuXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggdG8gbmF2aWdhdGUgdG8uXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCB3aWxsIHJlc29sdmUgd2hlbiB0aGUgc2VjdGlvbiBoYXMgYmVlbiBuYXZpZ2F0ZWQgdG8uXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwdWJsaWMgbmF2aWdhdGVUb1NlY3Rpb24oaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAodGhpcy5jdXJyZW50UXVlc3Rpb25uYWlyZS5zZWN0aW9ucy5sZW5ndGggLSAxIDwgaW5kZXggfHwgaW5kZXggPCAwKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoJ091dCBvZiBib3VuZHMgZXhjZXB0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY3VycmVudFNlY3Rpb25OYW1lID0gdGhpcy5jdXJyZW50UXVlc3Rpb25uYWlyZS5zZWN0aW9uc1tpbmRleF0ubmFtZTtcbiAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQW5zd2VycyB0aGUgY3VycmVudCBxdWVzdGlvbiB3aXRoIHRoZSBwYXJzZWQgdmFsdWUuXG4gICAqIEBwYXJhbSBhbnN3ZXIgVGhlIHZhbHVlIHRvIGFuc3dlciB0aGUgcXVlc3Rpb24gd2l0aC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBhbnN3ZXJDdXJyZW50UXVlc3Rpb24oYW5zd2VyOiBhbnksIHNlbmRUb05leHRRdWVzdGlvbj86IGJvb2xlYW4pIHtcbiAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbi5mb3JtQ29udHJvbC5zZXRWYWx1ZShhbnN3ZXIpO1xuICAgIGlmIChzZW5kVG9OZXh0UXVlc3Rpb24gJiYgdGhpcy5za2lwcGFibGUpIHsgLy8gVGltZW91dCB0byBwcmV2ZW50IHNraXBwaW5nIGdsaXRjaC5cbiAgICAgIHRoaXMuc2tpcHBhYmxlID0gZmFsc2U7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5uZXh0UXVlc3Rpb24oKTtcbiAgICAgICAgdGhpcy5za2lwcGFibGUgPSB0cnVlO1xuICAgICAgfSwgMTUwKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlcGVhdGVyIGl0ZW0gdG8gdGhlIGN1cnJlbnQgcXVlc3Rpb24uXG4gICAqIEN1cnJlbnQgcXVlc3Rpb24gbXVzdCBiZSBvZiB0eXBlIFJlcGVhdGVyLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugd2hpY2ggcmVzb2x2ZXMgd2hlbiB0aGUgcmVwZWF0ZXIgaXRlbSBoYXMgYmVlbiBhZGRlZC5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBhZGRSZXBlYXRlckl0ZW0oKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRRdWVzdGlvbi5kYXRhLnR5cGUgIT09IFF1ZXN0aW9uVHlwZS5SZXBlYXRlcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGBDdXJyZW50IHF1ZXN0aW9uIGlzbid0IGEgcmVwZWF0ZXJgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlcGVhdGVyRm9ybSA9IHRoaXMuZm9ybUNvbnN0dWN0b3IuZ2VuZXJhdGVGb3Jtc0ZvclJlcGVhdGVyKHRoaXMuY3VycmVudFF1ZXN0aW9uLmRhdGEpO1xuXG4gICAgICBpZiAoIXJlcGVhdGVyRm9ybSkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGBSZXBlYXRlciB0ZW1wbGF0ZSBmYWlsZWQgdG8gZ2VuZXJhdGUuIE1heSBiZSBkdWUgdG8gdGhlIHJlcGVhdGVyIGhhdmluZyBubyBpdGVtcyBpbiB0aGUgZWRpdG9yLmApO1xuICAgICAgfVxuXG5cbiAgICAgIGlmICghKHRoaXMuY3VycmVudFF1ZXN0aW9uLmZvcm1Db250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGBUaGUgY3VycmVudCBxdWVzdGlvbnMgY29udHJvbCBpc24ndCBvZiB0eXBlIEZvcm1BcnJheWApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmN1cnJlbnRRdWVzdGlvbi5mb3JtQ29udHJvbC5wdXNoKHJlcGVhdGVyRm9ybSk7XG4gICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSByZXBlYXRlciBpdGVtIG9uIHRoZSBjdXJyZW50IHF1ZXN0aW9uLlxuICAgKiBDdXJyZW50IHF1ZXN0aW9uIG11c3QgYmUgb2YgdHlwZSBSZXBlYXRlci5cbiAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBhdCB3aGljaCB0byByZW1vdmUuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCByZXNvbHZlcyB3aGVuIHRoZSByZXBlYXRlciBpdGVtIGhhcyBiZWVuIHJlbW92ZWQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlUmVwZWF0ZXJJdGVtKGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY3VycmVudFF1ZXN0aW9uLmRhdGEudHlwZSAhPT0gUXVlc3Rpb25UeXBlLlJlcGVhdGVyKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoYEN1cnJlbnQgcXVlc3Rpb24gaXNuJ3QgYSByZXBlYXRlcmApO1xuICAgICAgfVxuXG4gICAgICBpZiAoISh0aGlzLmN1cnJlbnRRdWVzdGlvbi5mb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChgVGhlIGN1cnJlbnQgcXVlc3Rpb25zIGNvbnRyb2wgaXNuJ3Qgb2YgdHlwZSBGb3JtQXJyYXlgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jdXJyZW50UXVlc3Rpb24uZm9ybUNvbnRyb2wucmVtb3ZlQXQoaW5kZXgpO1xuICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkaXNwbGF5IHRleHQgZm9yIGEgZ2l2ZW4gcmVwZWF0ZXIgaXRlbVxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IGF0IHdoaWNoIHRvIGdldCB0aGUgbGFiZWwgZm9yLlxuICAgKiBAcmV0dXJucyBBIHN0cmluZyB3aGljaCBpcyB0aGUgZGlzcGxheSB0ZXh0LlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHVibGljIGdldFJlcGVhdGVySXRlbUxhYmVsKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5jdXJyZW50UXVlc3Rpb24uZm9ybUNvbnRyb2wgfHwgISh0aGlzLmN1cnJlbnRRdWVzdGlvbi5mb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCByZXBlYXRlckl0ZW0gPSB0aGlzLmN1cnJlbnRRdWVzdGlvbi5mb3JtQ29udHJvbC5jb250cm9sc1tpbmRleF07XG5cbiAgICBpZiAoIXJlcGVhdGVySXRlbSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IHRlbXBsYXRlID0gdGhpcy5jdXJyZW50UXVlc3Rpb24uZGF0YS5yZXBlYXRlckRpc3BsYXlOYW1lO1xuICAgIGNvbnN0IHNwbGl0VGVtcGxhdGUgPSB0ZW1wbGF0ZS5zcGxpdCgnICcpO1xuXG4gICAgY29uc3QgZGlzcGxheUFycmF5ID0gW107XG4gICAgZm9yIChjb25zdCB0ZW1wbGF0ZUl0ZW0gb2Ygc3BsaXRUZW1wbGF0ZSkge1xuICAgICAgaWYgKHRlbXBsYXRlSXRlbS5tYXRjaCgvXFxbLio/XFxdLykpIHtcbiAgICAgICAgY29uc3QgcGF0aCA9IHRlbXBsYXRlSXRlbS5yZXBsYWNlKC9bXFxbXFxdJ10rL2csICcnKTtcbiAgICAgICAgY29uc3QgaXRlbSA9IHJlcGVhdGVySXRlbS5nZXQocGF0aCk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gaXRlbS52YWx1ZSA/IGl0ZW0udmFsdWUgOiAnPyc7XG4gICAgICAgIGRpc3BsYXlBcnJheS5wdXNoKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRpc3BsYXlBcnJheS5wdXNoKHRlbXBsYXRlSXRlbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZGlzcGxheSA9IGRpc3BsYXlBcnJheS5qb2luKCcgJyk7XG4gICAgcmV0dXJuIGRpc3BsYXk7XG4gIH1cbn1cbiJdfQ==
|
package/esm5/public_api.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
5
|
// Services
|
|
6
6
|
export { QuestionnaireService } from './lib/services/questionnaire.service';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
|
+
import { Injectable, ɵɵdefineInjectable, ɵɵinject, EventEmitter, Inject, NgModule } from '@angular/core';
|
|
3
|
+
import { Validators, FormBuilder, FormArray, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
2
4
|
import { get, keys, cloneDeep } from 'lodash';
|
|
3
|
-
import { Injectable, NgModule, defineInjectable, inject, EventEmitter, Inject } from '@angular/core';
|
|
4
|
-
import { FormBuilder, Validators, FormsModule, ReactiveFormsModule, FormArray } from '@angular/forms';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @fileoverview added by tsickle
|
|
8
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
8
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
9
9
|
*/
|
|
10
10
|
/** @enum {string} */
|
|
11
11
|
const QuestionType = {
|
|
@@ -21,7 +21,7 @@ const QuestionType = {
|
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* @fileoverview added by tsickle
|
|
24
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
24
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
25
25
|
*/
|
|
26
26
|
/** @enum {string} */
|
|
27
27
|
const ConditionType = {
|
|
@@ -35,7 +35,7 @@ const ConditionType = {
|
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
37
|
* @fileoverview added by tsickle
|
|
38
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
38
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
39
39
|
*/
|
|
40
40
|
/** @enum {string} */
|
|
41
41
|
const ConditionRelationship = {
|
|
@@ -45,7 +45,7 @@ const ConditionRelationship = {
|
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
* @fileoverview added by tsickle
|
|
48
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
48
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
49
49
|
*/
|
|
50
50
|
class FilterService {
|
|
51
51
|
constructor() { }
|
|
@@ -71,8 +71,12 @@ class FilterService {
|
|
|
71
71
|
continue;
|
|
72
72
|
}
|
|
73
73
|
if (question.repeaterQuestions) {
|
|
74
|
+
/** @type {?} */
|
|
75
|
+
const filteredRepeaterQuestions = [];
|
|
74
76
|
for (const repeaterQuestion of question.repeaterQuestions) {
|
|
75
|
-
if (this.meetsConditionGroups(repeaterQuestion.conditionGroups, currentQuestionnaireForm, additionalData))
|
|
77
|
+
if (this.meetsConditionGroups(repeaterQuestion.conditionGroups, currentQuestionnaireForm, additionalData)) {
|
|
78
|
+
filteredRepeaterQuestions.push(repeaterQuestion);
|
|
79
|
+
}
|
|
76
80
|
}
|
|
77
81
|
}
|
|
78
82
|
if (question.fetchPath) {
|
|
@@ -355,11 +359,11 @@ FilterService.decorators = [
|
|
|
355
359
|
];
|
|
356
360
|
/** @nocollapse */
|
|
357
361
|
FilterService.ctorParameters = () => [];
|
|
358
|
-
/** @nocollapse */ FilterService.ngInjectableDef =
|
|
362
|
+
/** @nocollapse */ FilterService.ngInjectableDef = ɵɵdefineInjectable({ factory: function FilterService_Factory() { return new FilterService(); }, token: FilterService, providedIn: "root" });
|
|
359
363
|
|
|
360
364
|
/**
|
|
361
365
|
* @fileoverview added by tsickle
|
|
362
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
366
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
363
367
|
*/
|
|
364
368
|
/** @enum {string} */
|
|
365
369
|
const ValidationType = {
|
|
@@ -373,7 +377,7 @@ const ValidationType = {
|
|
|
373
377
|
|
|
374
378
|
/**
|
|
375
379
|
* @fileoverview added by tsickle
|
|
376
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
380
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
377
381
|
*/
|
|
378
382
|
class FormConstructorService {
|
|
379
383
|
/**
|
|
@@ -594,11 +598,23 @@ FormConstructorService.ctorParameters = () => [
|
|
|
594
598
|
{ type: FormBuilder },
|
|
595
599
|
{ type: FilterService }
|
|
596
600
|
];
|
|
597
|
-
/** @nocollapse */ FormConstructorService.ngInjectableDef =
|
|
601
|
+
/** @nocollapse */ FormConstructorService.ngInjectableDef = ɵɵdefineInjectable({ factory: function FormConstructorService_Factory() { return new FormConstructorService(ɵɵinject(FormBuilder), ɵɵinject(FilterService)); }, token: FormConstructorService, providedIn: "root" });
|
|
602
|
+
if (false) {
|
|
603
|
+
/**
|
|
604
|
+
* @type {?}
|
|
605
|
+
* @private
|
|
606
|
+
*/
|
|
607
|
+
FormConstructorService.prototype.fb;
|
|
608
|
+
/**
|
|
609
|
+
* @type {?}
|
|
610
|
+
* @private
|
|
611
|
+
*/
|
|
612
|
+
FormConstructorService.prototype.filterService;
|
|
613
|
+
}
|
|
598
614
|
|
|
599
615
|
/**
|
|
600
616
|
* @fileoverview added by tsickle
|
|
601
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
617
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
602
618
|
*/
|
|
603
619
|
class QuestionnaireService {
|
|
604
620
|
/**
|
|
@@ -609,7 +625,7 @@ class QuestionnaireService {
|
|
|
609
625
|
this.formConstuctor = formConstuctor;
|
|
610
626
|
this.options = options;
|
|
611
627
|
this.dataChangedEvent = new EventEmitter();
|
|
612
|
-
this.skippable =
|
|
628
|
+
this.skippable = true;
|
|
613
629
|
}
|
|
614
630
|
/**
|
|
615
631
|
* Loads a questionnaire from data.
|
|
@@ -620,7 +636,7 @@ class QuestionnaireService {
|
|
|
620
636
|
* @return {?} null
|
|
621
637
|
*/
|
|
622
638
|
loadQuestionnaire(questionnaire, savedState, additionalData) {
|
|
623
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
639
|
+
return __awaiter(this, void 0, void 0, /** @this {!QuestionnaireService} */ function* () {
|
|
624
640
|
this.originalQuestionnaire = cloneDeep(questionnaire);
|
|
625
641
|
this.currentQuestionnaire = cloneDeep(questionnaire);
|
|
626
642
|
this.additionalData = additionalData;
|
|
@@ -1179,11 +1195,70 @@ QuestionnaireService.ctorParameters = () => [
|
|
|
1179
1195
|
{ type: FormConstructorService },
|
|
1180
1196
|
{ type: undefined, decorators: [{ type: Inject, args: ['options',] }] }
|
|
1181
1197
|
];
|
|
1182
|
-
/** @nocollapse */ QuestionnaireService.ngInjectableDef =
|
|
1198
|
+
/** @nocollapse */ QuestionnaireService.ngInjectableDef = ɵɵdefineInjectable({ factory: function QuestionnaireService_Factory() { return new QuestionnaireService(ɵɵinject(FormConstructorService), ɵɵinject("options")); }, token: QuestionnaireService, providedIn: "root" });
|
|
1199
|
+
if (false) {
|
|
1200
|
+
/** @type {?} */
|
|
1201
|
+
QuestionnaireService.prototype.dataChangedEvent;
|
|
1202
|
+
/**
|
|
1203
|
+
* @type {?}
|
|
1204
|
+
* @private
|
|
1205
|
+
*/
|
|
1206
|
+
QuestionnaireService.prototype.originalQuestionnaire;
|
|
1207
|
+
/**
|
|
1208
|
+
* @type {?}
|
|
1209
|
+
* @private
|
|
1210
|
+
*/
|
|
1211
|
+
QuestionnaireService.prototype.currentQuestionnaire;
|
|
1212
|
+
/**
|
|
1213
|
+
* @type {?}
|
|
1214
|
+
* @private
|
|
1215
|
+
*/
|
|
1216
|
+
QuestionnaireService.prototype.currentQuestionnaireForm;
|
|
1217
|
+
/**
|
|
1218
|
+
* @type {?}
|
|
1219
|
+
* @private
|
|
1220
|
+
*/
|
|
1221
|
+
QuestionnaireService.prototype.currentSectionName;
|
|
1222
|
+
/**
|
|
1223
|
+
* @type {?}
|
|
1224
|
+
* @private
|
|
1225
|
+
*/
|
|
1226
|
+
QuestionnaireService.prototype.currentQuestionName;
|
|
1227
|
+
/**
|
|
1228
|
+
* @type {?}
|
|
1229
|
+
* @private
|
|
1230
|
+
*/
|
|
1231
|
+
QuestionnaireService.prototype.questionnaireValueChangeSubscription;
|
|
1232
|
+
/**
|
|
1233
|
+
* @type {?}
|
|
1234
|
+
* @private
|
|
1235
|
+
*/
|
|
1236
|
+
QuestionnaireService.prototype.questionValueChangeSubscription;
|
|
1237
|
+
/**
|
|
1238
|
+
* @type {?}
|
|
1239
|
+
* @private
|
|
1240
|
+
*/
|
|
1241
|
+
QuestionnaireService.prototype.additionalData;
|
|
1242
|
+
/**
|
|
1243
|
+
* @type {?}
|
|
1244
|
+
* @private
|
|
1245
|
+
*/
|
|
1246
|
+
QuestionnaireService.prototype.skippable;
|
|
1247
|
+
/**
|
|
1248
|
+
* @type {?}
|
|
1249
|
+
* @private
|
|
1250
|
+
*/
|
|
1251
|
+
QuestionnaireService.prototype.formConstuctor;
|
|
1252
|
+
/**
|
|
1253
|
+
* @type {?}
|
|
1254
|
+
* @private
|
|
1255
|
+
*/
|
|
1256
|
+
QuestionnaireService.prototype.options;
|
|
1257
|
+
}
|
|
1183
1258
|
|
|
1184
1259
|
/**
|
|
1185
1260
|
* @fileoverview added by tsickle
|
|
1186
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
1261
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
1187
1262
|
*/
|
|
1188
1263
|
class GgQuestionnaireV2Module {
|
|
1189
1264
|
/**
|
|
@@ -1219,7 +1294,7 @@ GgQuestionnaireV2Module.decorators = [
|
|
|
1219
1294
|
|
|
1220
1295
|
/**
|
|
1221
1296
|
* @fileoverview added by tsickle
|
|
1222
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
1297
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
1223
1298
|
*/
|
|
1224
1299
|
/** @enum {string} */
|
|
1225
1300
|
const InputType = {
|
|
@@ -1238,7 +1313,7 @@ const InputType = {
|
|
|
1238
1313
|
|
|
1239
1314
|
/**
|
|
1240
1315
|
* @fileoverview added by tsickle
|
|
1241
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
1316
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
1242
1317
|
*/
|
|
1243
1318
|
/** @enum {string} */
|
|
1244
1319
|
const RepeaterQuestionType = {
|
|
@@ -1248,14 +1323,13 @@ const RepeaterQuestionType = {
|
|
|
1248
1323
|
|
|
1249
1324
|
/**
|
|
1250
1325
|
* @fileoverview added by tsickle
|
|
1251
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
1326
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
1252
1327
|
*/
|
|
1253
1328
|
|
|
1254
1329
|
/**
|
|
1255
1330
|
* @fileoverview added by tsickle
|
|
1256
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
1331
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
1257
1332
|
*/
|
|
1258
1333
|
|
|
1259
|
-
export {
|
|
1260
|
-
|
|
1261
|
-
//# sourceMappingURL=glowgreen-gg-questionnaire-v2.js.map
|
|
1334
|
+
export { ConditionRelationship, ConditionType, GgQuestionnaireV2Module, InputType, QuestionType, QuestionnaireService, RepeaterQuestionType, ValidationType, FormConstructorService as ɵa, FilterService as ɵb };
|
|
1335
|
+
//# sourceMappingURL=glowgreen-gg-questionnaire-v2.js.map
|