@glowgreen/gg-questionnaire-v2 0.0.84 → 0.0.85
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 +362 -288
- package/bundles/glowgreen-gg-questionnaire-v2.umd.js.map +1 -1
- package/bundles/glowgreen-gg-questionnaire-v2.umd.min.js +2 -2
- package/bundles/glowgreen-gg-questionnaire-v2.umd.min.js.map +1 -1
- package/esm2015/glowgreen-gg-questionnaire-v2.js +3 -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 +5 -17
- 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 +7 -8
- package/esm2015/lib/services/form-constructor.service.js +10 -8
- package/esm2015/lib/services/questionnaire.service.js +10 -11
- package/esm2015/public_api.js +1 -1
- package/fesm2015/glowgreen-gg-questionnaire-v2.js +30 -41
- package/fesm2015/glowgreen-gg-questionnaire-v2.js.map +1 -1
- package/glowgreen-gg-questionnaire-v2.d.ts +2 -1
- package/glowgreen-gg-questionnaire-v2.metadata.json +1 -0
- package/lib/gg-questionnaire-v2.module.d.ts +0 -4
- package/lib/services/filter.service.d.ts +0 -3
- package/lib/services/form-constructor.service.d.ts +0 -3
- package/lib/services/questionnaire.service.d.ts +0 -3
- package/package.json +9 -13
- package/esm5/glowgreen-gg-questionnaire-v2.js +0 -5
- package/esm5/lib/enums/condition-relationship.enum.js +0 -6
- package/esm5/lib/enums/condition-type.enum.js +0 -10
- package/esm5/lib/enums/input-type.enum.js +0 -15
- package/esm5/lib/enums/question-type.enum.js +0 -15
- package/esm5/lib/enums/repeater-question-type.enum.js +0 -7
- package/esm5/lib/enums/validation-type.enum.js +0 -10
- package/esm5/lib/gg-questionnaire-v2.module.js +0 -49
- package/esm5/lib/interfaces/attachment.js +0 -1
- package/esm5/lib/interfaces/checklist-item.js +0 -1
- package/esm5/lib/interfaces/condition-group.js +0 -1
- package/esm5/lib/interfaces/condition.js +0 -1
- package/esm5/lib/interfaces/question.js +0 -1
- package/esm5/lib/interfaces/questionnaire-options.js +0 -1
- package/esm5/lib/interfaces/questionnaire.js +0 -1
- package/esm5/lib/interfaces/repeater-question.js +0 -1
- package/esm5/lib/interfaces/section.js +0 -1
- package/esm5/lib/interfaces/select-option.js +0 -1
- package/esm5/lib/interfaces/validator.js +0 -1
- package/esm5/lib/services/filter.service.js +0 -384
- package/esm5/lib/services/form-constructor.service.js +0 -349
- package/esm5/lib/services/questionnaire.service.js +0 -572
- package/esm5/public_api.js +0 -12
- package/fesm5/glowgreen-gg-questionnaire-v2.js +0 -1397
- package/fesm5/glowgreen-gg-questionnaire-v2.js.map +0 -1
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { FormConstructorService } from './services/form-constructor.service';
|
|
3
|
-
import { QuestionnaireService } from './services/questionnaire.service';
|
|
4
|
-
import { FilterService } from './services/filter.service';
|
|
5
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
var GgQuestionnaireV2Module = /** @class */ (function () {
|
|
8
|
-
function GgQuestionnaireV2Module() {
|
|
9
|
-
}
|
|
10
|
-
GgQuestionnaireV2Module.forRoot = function (options) {
|
|
11
|
-
return {
|
|
12
|
-
ngModule: GgQuestionnaireV2Module,
|
|
13
|
-
providers: [
|
|
14
|
-
QuestionnaireService,
|
|
15
|
-
{
|
|
16
|
-
provide: 'options',
|
|
17
|
-
useValue: options
|
|
18
|
-
}
|
|
19
|
-
]
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
GgQuestionnaireV2Module.ɵmod = i0.ɵɵdefineNgModule({ type: GgQuestionnaireV2Module });
|
|
23
|
-
GgQuestionnaireV2Module.ɵinj = i0.ɵɵdefineInjector({ factory: function GgQuestionnaireV2Module_Factory(t) { return new (t || GgQuestionnaireV2Module)(); }, providers: [
|
|
24
|
-
FormConstructorService,
|
|
25
|
-
FilterService
|
|
26
|
-
], imports: [[
|
|
27
|
-
FormsModule,
|
|
28
|
-
ReactiveFormsModule
|
|
29
|
-
]] });
|
|
30
|
-
return GgQuestionnaireV2Module;
|
|
31
|
-
}());
|
|
32
|
-
export { GgQuestionnaireV2Module };
|
|
33
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(GgQuestionnaireV2Module, { imports: [FormsModule,
|
|
34
|
-
ReactiveFormsModule] }); })();
|
|
35
|
-
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(GgQuestionnaireV2Module, [{
|
|
36
|
-
type: NgModule,
|
|
37
|
-
args: [{
|
|
38
|
-
declarations: [],
|
|
39
|
-
providers: [
|
|
40
|
-
FormConstructorService,
|
|
41
|
-
FilterService
|
|
42
|
-
],
|
|
43
|
-
imports: [
|
|
44
|
-
FormsModule,
|
|
45
|
-
ReactiveFormsModule
|
|
46
|
-
],
|
|
47
|
-
}]
|
|
48
|
-
}], null, null); })();
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2ctcXVlc3Rpb25uYWlyZS12Mi5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2xvd2dyZWVuL2dnLXF1ZXN0aW9ubmFpcmUtdjIvIiwic291cmNlcyI6WyJsaWIvZ2ctcXVlc3Rpb25uYWlyZS12Mi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUlsRTtJQUFBO0tBd0JDO0lBWmUsK0JBQU8sR0FBckIsVUFBc0IsT0FBNkI7UUFDakQsT0FBTztZQUNILFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsU0FBUyxFQUFFO2dCQUNQLG9CQUFvQjtnQkFDcEI7b0JBQ0ksT0FBTyxFQUFFLFNBQVM7b0JBQ2xCLFFBQVEsRUFBRSxPQUFPO2lCQUNwQjthQUNKO1NBQ0osQ0FBQztJQUNKLENBQUM7K0RBWlUsdUJBQXVCO2lJQUF2Qix1QkFBdUIsbUJBVHZCO1lBQ1Qsc0JBQXNCO1lBQ3RCLGFBQWE7U0FDZCxZQUNRO2dCQUNQLFdBQVc7Z0JBQ1gsbUJBQW1CO2FBQ3BCO2tDQWpCSDtDQWdDQyxBQXhCRCxJQXdCQztTQWJZLHVCQUF1Qjt3RkFBdkIsdUJBQXVCLGNBSmhDLFdBQVc7UUFDWCxtQkFBbUI7a0RBR1YsdUJBQXVCO2NBWG5DLFFBQVE7ZUFBQztnQkFDUixZQUFZLEVBQUUsRUFBRTtnQkFDaEIsU0FBUyxFQUFFO29CQUNULHNCQUFzQjtvQkFDdEIsYUFBYTtpQkFDZDtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsV0FBVztvQkFDWCxtQkFBbUI7aUJBQ3BCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnN0cnVjdG9yU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZm9ybS1jb25zdHJ1Y3Rvci5zZXJ2aWNlJztcbmltcG9ydCB7IFF1ZXN0aW9ubmFpcmVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9xdWVzdGlvbm5haXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsdGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZmlsdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBRdWVzdGlvbm5haXJlT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcy9xdWVzdGlvbm5haXJlLW9wdGlvbnMnO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBwcm92aWRlcnM6IFtcbiAgICBGb3JtQ29uc3RydWN0b3JTZXJ2aWNlLFxuICAgIEZpbHRlclNlcnZpY2VcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR2dRdWVzdGlvbm5haXJlVjJNb2R1bGUge1xuICBwdWJsaWMgc3RhdGljIGZvclJvb3Qob3B0aW9uczogUXVlc3Rpb25uYWlyZU9wdGlvbnMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEdnUXVlc3Rpb25uYWlyZVYyTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbmdNb2R1bGU6IEdnUXVlc3Rpb25uYWlyZVYyTW9kdWxlLFxuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgIFF1ZXN0aW9ubmFpcmVTZXJ2aWNlLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6ICdvcHRpb25zJyxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9uc1xuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnbG93Z3JlZW4vZ2ctcXVlc3Rpb25uYWlyZS12Mi8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcmZhY2VzL2F0dGFjaG1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudCB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIG1pbWVUeXBlOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LWl0ZW0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2xvd2dyZWVuL2dnLXF1ZXN0aW9ubmFpcmUtdjIvIiwic291cmNlcyI6WyJsaWIvaW50ZXJmYWNlcy9jaGVja2xpc3QtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBDaGVja2xpc3RJdGVtIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLWdyb3VwLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdsb3dncmVlbi9nZy1xdWVzdGlvbm5haXJlLXYyLyIsInNvdXJjZXMiOlsibGliL2ludGVyZmFjZXMvY29uZGl0aW9uLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25kaXRpb25SZWxhdGlvbnNoaXAgfSBmcm9tICcuLi9lbnVtcy9jb25kaXRpb24tcmVsYXRpb25zaGlwLmVudW0nO1xuaW1wb3J0IHsgQ29uZGl0aW9uIH0gZnJvbSAnLi9jb25kaXRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbmRpdGlvbkdyb3VwIHtcbiAgICByZWxhdGlvbnNoaXA6IENvbmRpdGlvblJlbGF0aW9uc2hpcDtcbiAgICBjb25kaXRpb25zOiBBcnJheTxDb25kaXRpb24+O1xufVxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdsb3dncmVlbi9nZy1xdWVzdGlvbm5haXJlLXYyLyIsInNvdXJjZXMiOlsibGliL2ludGVyZmFjZXMvY29uZGl0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25kaXRpb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvY29uZGl0aW9uLXR5cGUuZW51bSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZGl0aW9uIHtcbiAgICB2MXM6IEFycmF5PHN0cmluZz47XG4gICAgdHlwZTogQ29uZGl0aW9uVHlwZTtcbiAgICB2MnM6IEFycmF5PHN0cmluZz47XG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2xvd2dyZWVuL2dnLXF1ZXN0aW9ubmFpcmUtdjIvIiwic291cmNlcyI6WyJsaWIvaW50ZXJmYWNlcy9xdWVzdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlc3Rpb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IENvbmRpdGlvbkdyb3VwIH0gZnJvbSAnLi9jb25kaXRpb24tZ3JvdXAnO1xuaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi92YWxpZGF0b3InO1xuaW1wb3J0IHsgUmVwZWF0ZXJRdWVzdGlvbiB9IGZyb20gJy4vcmVwZWF0ZXItcXVlc3Rpb24nO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi9zZWxlY3Qtb3B0aW9uJztcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uL2VudW1zL2lucHV0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBDaGVja2xpc3RJdGVtIH0gZnJvbSAnLi9jaGVja2xpc3QtaXRlbSc7XG5pbXBvcnQgeyBBdHRhY2htZW50IH0gZnJvbSAnLi9hdHRhY2htZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBRdWVzdGlvbiB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBzdWJ0aXRsZT86IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdHlwZTogUXVlc3Rpb25UeXBlO1xuICAgIGlucHV0VHlwZT86IElucHV0VHlwZTtcbiAgICBhdHRhY2htZW50X3BhdGg/OiBzdHJpbmc7XG4gICAgYXR0YWNobWVudF9taW1lX3R5cGU/OiBzdHJpbmc7XG4gICAgZGVmYXVsdFZhbHVlPzogYW55O1xuICAgIGZldGNoUGF0aD86IHN0cmluZztcbiAgICBmZXRjaFNlbGVjdG9ycz86IEFycmF5PHN0cmluZz47XG4gICAgY29uZGl0aW9uR3JvdXBzPzogQXJyYXk8Q29uZGl0aW9uR3JvdXA+O1xuICAgIHJlcGVhdGVyUXVlc3Rpb25zPzogQXJyYXk8UmVwZWF0ZXJRdWVzdGlvbj47XG4gICAgZmlsdGVyZWRSZXBlYXRlclF1ZXN0aW9ucz86IEFycmF5PEFycmF5PFJlcGVhdGVyUXVlc3Rpb24+PjtcbiAgICByZXBlYXRlckl0ZW1MYWJlbD86IHN0cmluZztcbiAgICByZXBlYXRlckRpc3BsYXlOYW1lPzogc3RyaW5nO1xuICAgIHNlbGVjdE9wdGlvbnM/OiBBcnJheTxTZWxlY3RPcHRpb24+O1xuICAgIGRlc2NyaXB0aW9uTW9kZT86IHN0cmluZztcbiAgICBjaGVja2xpc3RJdGVtcz86IEFycmF5PENoZWNrbGlzdEl0ZW0+O1xuICAgIHNsaWRlck1pbj86IG51bWJlcjtcbiAgICBzbGlkZXJNYXg/OiBudW1iZXI7XG4gICAgc2xpZGVyVW5pdD86IHN0cmluZztcbiAgICBpbmZvSFRNTD86IHN0cmluZztcbiAgICB2YWxpZGF0b3JzPzogQXJyYXk8VmFsaWRhdG9yPjtcbiAgICBjbGVhcmZpZWxkcz86IEFycmF5PHN0cmluZz47XG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb25uYWlyZS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdsb3dncmVlbi9nZy1xdWVzdGlvbm5haXJlLXYyLyIsInNvdXJjZXMiOlsibGliL2ludGVyZmFjZXMvcXVlc3Rpb25uYWlyZS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFF1ZXN0aW9ubmFpcmVPcHRpb25zIHtcbiAgICBlbWl0U2VjdGlvbkZpbmlzaEV2ZW50OiBib29sZWFuO1xuICAgIHNraXBUb0ZpcnN0U2VjdGlvbjogYm9vbGVhbjtcbiAgICBza2lwVG9GaXJzdFF1ZXN0aW9uOiBib29sZWFuO1xuICAgIGFsbG93U2tpcFJlcXVpcmVkRmllbGQ6IGJvb2xlYW47XG4gICAgYWxsb3dOYXZpZ2F0ZUJhY2t3YXJkczogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb25uYWlyZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnbG93Z3JlZW4vZ2ctcXVlc3Rpb25uYWlyZS12Mi8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcmZhY2VzL3F1ZXN0aW9ubmFpcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlY3Rpb24gfSBmcm9tICcuL3NlY3Rpb24nO1xuaW1wb3J0IHsgUXVlc3Rpb25uYWlyZU9wdGlvbnMgfSBmcm9tICcuL3F1ZXN0aW9ubmFpcmUtb3B0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlc3Rpb25uYWlyZSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHNlY3Rpb25zOiBBcnJheTxTZWN0aW9uPjtcbn1cbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXItcXVlc3Rpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2xvd2dyZWVuL2dnLXF1ZXN0aW9ubmFpcmUtdjIvIiwic291cmNlcyI6WyJsaWIvaW50ZXJmYWNlcy9yZXBlYXRlci1xdWVzdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi92YWxpZGF0b3InO1xuaW1wb3J0IHsgUmVwZWF0ZXJRdWVzdGlvblR5cGUgfSBmcm9tICcuLi9lbnVtcy9yZXBlYXRlci1xdWVzdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi9zZWxlY3Qtb3B0aW9uJztcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uL2VudW1zL2lucHV0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBDb25kaXRpb25Hcm91cCB9IGZyb20gJy4vY29uZGl0aW9uLWdyb3VwJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXBlYXRlclF1ZXN0aW9uIHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBSZXBlYXRlclF1ZXN0aW9uVHlwZTtcbiAgICBpbnB1dFR5cGU/OiBJbnB1dFR5cGU7XG4gICAgdXBsb2FkVHlwZT86IGFueTtcbiAgICBkZWZhdWx0VmFsdWU/OiBhbnk7XG4gICAgdmFsaWRhdG9ycz86IEFycmF5PFZhbGlkYXRvcj47XG4gICAgc2VsZWN0T3B0aW9ucz86IEFycmF5PFNlbGVjdE9wdGlvbj47XG4gICAgY29uZGl0aW9uR3JvdXBzPzogQXJyYXk8Q29uZGl0aW9uR3JvdXA+O1xuICAgIGZldGNoUGF0aD86IHN0cmluZztcbiAgICBmZXRjaFNlbGVjdG9ycz86IEFycmF5PHN0cmluZz47XG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnbG93Z3JlZW4vZ2ctcXVlc3Rpb25uYWlyZS12Mi8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcmZhY2VzL3NlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUXVlc3Rpb24sXG59IGZyb20gJy4vcXVlc3Rpb24nO1xuaW1wb3J0IHsgQ29uZGl0aW9uR3JvdXAgfSBmcm9tICcuL2NvbmRpdGlvbi1ncm91cCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdGlvbiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgcXVlc3Rpb25zOiBBcnJheTxRdWVzdGlvbj47XG4gICAgY29uZGl0aW9uR3JvdXBzPzogQXJyYXk8Q29uZGl0aW9uR3JvdXA+O1xufVxuXG5cbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnbG93Z3JlZW4vZ2ctcXVlc3Rpb25uYWlyZS12Mi8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcmZhY2VzL3NlbGVjdC1vcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0T3B0aW9uIHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHZhbHVlOiBhbnk7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdsb3dncmVlbi9nZy1xdWVzdGlvbm5haXJlLXYyLyIsInNvdXJjZXMiOlsibGliL2ludGVyZmFjZXMvdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0aW9uVHlwZSB9IGZyb20gJy4uL2VudW1zL3ZhbGlkYXRpb24tdHlwZS5lbnVtJztcblxuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0b3Ige1xuICAgIHR5cGU6IFZhbGlkYXRpb25UeXBlO1xuICAgIGRhdGE6IE9iamVjdDtcbn1cbiJdfQ==
|
|
@@ -1,384 +0,0 @@
|
|
|
1
|
-
import { __values } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { ConditionType } from '../enums/condition-type.enum';
|
|
4
|
-
import { ConditionRelationship } from '../enums/condition-relationship.enum';
|
|
5
|
-
import * as _ from 'lodash';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
var FilterService = /** @class */ (function () {
|
|
8
|
-
function FilterService() {
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Filters an array of sections based on their condition groups.
|
|
12
|
-
* @param sections The array of sections to filter.
|
|
13
|
-
* @param currentQuestionnaireForm The current form data, can be null/undefined.
|
|
14
|
-
* @returns An array of filtered sections with their filtered questions.
|
|
15
|
-
* @author Will Poulson
|
|
16
|
-
*/
|
|
17
|
-
FilterService.prototype.filterSections = function (sections, currentQuestionnaireForm, additionalData) {
|
|
18
|
-
var e_1, _a, e_2, _b, e_3, _c, e_4, _d;
|
|
19
|
-
var filteredSections = [];
|
|
20
|
-
try {
|
|
21
|
-
for (var sections_1 = __values(sections), sections_1_1 = sections_1.next(); !sections_1_1.done; sections_1_1 = sections_1.next()) {
|
|
22
|
-
var section = sections_1_1.value;
|
|
23
|
-
if (!this.meetsConditionGroups(section.conditionGroups, currentQuestionnaireForm, additionalData)) {
|
|
24
|
-
continue;
|
|
25
|
-
}
|
|
26
|
-
var filteredQuestions = [];
|
|
27
|
-
try {
|
|
28
|
-
for (var _e = (e_2 = void 0, __values(section.questions)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
29
|
-
var question = _f.value;
|
|
30
|
-
if (!this.meetsConditionGroups(question.conditionGroups, currentQuestionnaireForm, additionalData)) {
|
|
31
|
-
continue;
|
|
32
|
-
}
|
|
33
|
-
// If it's a repeater we need to do a lot of extra filtering due to per item conditions.
|
|
34
|
-
if (question.type === 'repeater' && currentQuestionnaireForm) {
|
|
35
|
-
var items = currentQuestionnaireForm.get([section.name, question.name]);
|
|
36
|
-
if (items && items.controls) {
|
|
37
|
-
try {
|
|
38
|
-
for (var _g = (e_3 = void 0, __values(items.controls)), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
39
|
-
var repeaterItem = _h.value;
|
|
40
|
-
var filteredRepeaterItemQuestions = [];
|
|
41
|
-
try {
|
|
42
|
-
for (var _j = (e_4 = void 0, __values(question.repeaterQuestions)), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
43
|
-
var repeaterQuestion = _k.value;
|
|
44
|
-
var meetsConditions = this.meetsConditionGroups(repeaterQuestion.conditionGroups, currentQuestionnaireForm, additionalData, repeaterItem);
|
|
45
|
-
if (meetsConditions) {
|
|
46
|
-
var cloneQuestion = _.clone(repeaterQuestion);
|
|
47
|
-
cloneQuestion.selectOptions = this.getFetchOptionsForQuestion(repeaterQuestion, additionalData, currentQuestionnaireForm, repeaterItem);
|
|
48
|
-
filteredRepeaterItemQuestions.push(cloneQuestion);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
53
|
-
finally {
|
|
54
|
-
try {
|
|
55
|
-
if (_k && !_k.done && (_d = _j.return)) _d.call(_j);
|
|
56
|
-
}
|
|
57
|
-
finally { if (e_4) throw e_4.error; }
|
|
58
|
-
}
|
|
59
|
-
var index = items.controls.indexOf(repeaterItem);
|
|
60
|
-
if (!question.filteredRepeaterQuestions) {
|
|
61
|
-
question.filteredRepeaterQuestions = [];
|
|
62
|
-
}
|
|
63
|
-
question.filteredRepeaterQuestions[index] = filteredRepeaterItemQuestions;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
67
|
-
finally {
|
|
68
|
-
try {
|
|
69
|
-
if (_h && !_h.done && (_c = _g.return)) _c.call(_g);
|
|
70
|
-
}
|
|
71
|
-
finally { if (e_3) throw e_3.error; }
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
question.selectOptions = this.getFetchOptionsForQuestion(question, additionalData, currentQuestionnaireForm);
|
|
76
|
-
filteredQuestions.push(question);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
80
|
-
finally {
|
|
81
|
-
try {
|
|
82
|
-
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
83
|
-
}
|
|
84
|
-
finally { if (e_2) throw e_2.error; }
|
|
85
|
-
}
|
|
86
|
-
if (filteredQuestions.length === 0) {
|
|
87
|
-
continue;
|
|
88
|
-
}
|
|
89
|
-
section.questions = filteredQuestions;
|
|
90
|
-
filteredSections.push(section);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
94
|
-
finally {
|
|
95
|
-
try {
|
|
96
|
-
if (sections_1_1 && !sections_1_1.done && (_a = sections_1.return)) _a.call(sections_1);
|
|
97
|
-
}
|
|
98
|
-
finally { if (e_1) throw e_1.error; }
|
|
99
|
-
}
|
|
100
|
-
return filteredSections;
|
|
101
|
-
};
|
|
102
|
-
FilterService.prototype.getFetchOptionsForQuestion = function (question, additionalData, currentQuestionnaireForm, repeaterItem) {
|
|
103
|
-
if (!question.fetchPath) {
|
|
104
|
-
return question.selectOptions;
|
|
105
|
-
}
|
|
106
|
-
var options = additionalData[question.fetchPath];
|
|
107
|
-
if (question.fetchSelectors && question.fetchSelectors.length > 0) {
|
|
108
|
-
var values = this.getValuesForArray(question.fetchSelectors, currentQuestionnaireForm, additionalData, repeaterItem);
|
|
109
|
-
options = _.get(additionalData[question.fetchPath], values);
|
|
110
|
-
}
|
|
111
|
-
options = this.getFinalFetchArray(options);
|
|
112
|
-
if (!question.selectOptions) {
|
|
113
|
-
question.selectOptions = [];
|
|
114
|
-
}
|
|
115
|
-
return question.selectOptions.concat(options);
|
|
116
|
-
};
|
|
117
|
-
FilterService.prototype.getFinalFetchArray = function (items) {
|
|
118
|
-
var e_5, _a;
|
|
119
|
-
if (!items) {
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
if (!Array.isArray(items)) {
|
|
123
|
-
items = _.keys(items);
|
|
124
|
-
}
|
|
125
|
-
if (items.length <= 0) {
|
|
126
|
-
return null;
|
|
127
|
-
}
|
|
128
|
-
var convertedArray = [];
|
|
129
|
-
try {
|
|
130
|
-
for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
|
|
131
|
-
var item = items_1_1.value;
|
|
132
|
-
if (item) {
|
|
133
|
-
if (item instanceof Object && (item.value !== undefined) && item.label) {
|
|
134
|
-
convertedArray.push(item);
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
convertedArray.push({ label: this.uppercase(item), value: item });
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
143
|
-
finally {
|
|
144
|
-
try {
|
|
145
|
-
if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
|
|
146
|
-
}
|
|
147
|
-
finally { if (e_5) throw e_5.error; }
|
|
148
|
-
}
|
|
149
|
-
return convertedArray;
|
|
150
|
-
};
|
|
151
|
-
FilterService.prototype.uppercase = function (item) {
|
|
152
|
-
if (!isNaN(item)) {
|
|
153
|
-
return item;
|
|
154
|
-
}
|
|
155
|
-
return item.charAt(0).toUpperCase() + item.slice(1);
|
|
156
|
-
};
|
|
157
|
-
/**
|
|
158
|
-
* Checks if each condition groups conditions have been met.
|
|
159
|
-
* @param conditionGroups The array of condition groups.
|
|
160
|
-
* @param currentQuestionnaireForm The current form data, can be null/undefined.
|
|
161
|
-
* @returns A boolean stating if the condition groups conditions has been met.
|
|
162
|
-
* @author Will Poulson
|
|
163
|
-
*/
|
|
164
|
-
FilterService.prototype.meetsConditionGroups = function (conditionGroups, currentQuestionnaireForm, additionalData, repeaterItem) {
|
|
165
|
-
var _this = this;
|
|
166
|
-
if (!conditionGroups || conditionGroups.length === 0) {
|
|
167
|
-
return true;
|
|
168
|
-
}
|
|
169
|
-
return conditionGroups.every(function (x) {
|
|
170
|
-
return _this.meetsConditionGroup(x, currentQuestionnaireForm, additionalData, repeaterItem) === true;
|
|
171
|
-
});
|
|
172
|
-
};
|
|
173
|
-
/**
|
|
174
|
-
* Checks if a condition groups conditions have been met.
|
|
175
|
-
* @param conditionGroup The condition group to check.
|
|
176
|
-
* @param currentQuestionnaireForm The current form data, can be null/undefined.
|
|
177
|
-
* @returns A boolean stating if the condition group conditions has been met.
|
|
178
|
-
* @author Will Poulson
|
|
179
|
-
*/
|
|
180
|
-
FilterService.prototype.meetsConditionGroup = function (conditionGroup, currentQuestionnaireForm, additionalData, repeaterItem) {
|
|
181
|
-
var e_6, _a;
|
|
182
|
-
if (!conditionGroup.conditions || conditionGroup.conditions.length === 0) {
|
|
183
|
-
return true;
|
|
184
|
-
}
|
|
185
|
-
var results = [];
|
|
186
|
-
try {
|
|
187
|
-
for (var _b = __values(conditionGroup.conditions), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
188
|
-
var condition = _c.value;
|
|
189
|
-
results.push(this.meetsCondition(condition, currentQuestionnaireForm, additionalData, repeaterItem));
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
193
|
-
finally {
|
|
194
|
-
try {
|
|
195
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
196
|
-
}
|
|
197
|
-
finally { if (e_6) throw e_6.error; }
|
|
198
|
-
}
|
|
199
|
-
switch (conditionGroup.relationship) {
|
|
200
|
-
case ConditionRelationship.Every:
|
|
201
|
-
return results.every(function (x) {
|
|
202
|
-
return x === true;
|
|
203
|
-
});
|
|
204
|
-
case ConditionRelationship.Any:
|
|
205
|
-
return !!results.find(function (x) {
|
|
206
|
-
return x === true;
|
|
207
|
-
});
|
|
208
|
-
default:
|
|
209
|
-
return true;
|
|
210
|
-
}
|
|
211
|
-
};
|
|
212
|
-
/**
|
|
213
|
-
* Checks if a condition has been met.
|
|
214
|
-
* @param condition The condition to check.
|
|
215
|
-
* @param currentQuestionnaireForm The current form data, can be null/undefined.
|
|
216
|
-
* @returns A boolean stating if the condition group conditions has been met.
|
|
217
|
-
* @author Will Poulson
|
|
218
|
-
*/
|
|
219
|
-
FilterService.prototype.meetsCondition = function (condition, currentQuestionnaireForm, additionalData, repeaterItem) {
|
|
220
|
-
var e_7, _a, e_8, _b;
|
|
221
|
-
var v1s = this.getValuesForArray(condition.v1s, currentQuestionnaireForm, additionalData, repeaterItem);
|
|
222
|
-
var v2s = this.getValuesForArray(condition.v2s, currentQuestionnaireForm, additionalData, repeaterItem);
|
|
223
|
-
var result = false;
|
|
224
|
-
switch (condition.type) {
|
|
225
|
-
case ConditionType.Excludes:
|
|
226
|
-
result = v1s.filter(function (v1) {
|
|
227
|
-
return v2s.indexOf(v1) > -1;
|
|
228
|
-
}).length === 0;
|
|
229
|
-
break;
|
|
230
|
-
case ConditionType.Includes:
|
|
231
|
-
result = v1s.filter(function (v1) {
|
|
232
|
-
return v2s.indexOf(v1) > -1;
|
|
233
|
-
}).length !== 0;
|
|
234
|
-
break;
|
|
235
|
-
default: try {
|
|
236
|
-
for (var v2s_1 = __values(v2s), v2s_1_1 = v2s_1.next(); !v2s_1_1.done; v2s_1_1 = v2s_1.next()) {
|
|
237
|
-
var v2 = v2s_1_1.value;
|
|
238
|
-
try {
|
|
239
|
-
for (var v1s_1 = (e_8 = void 0, __values(v1s)), v1s_1_1 = v1s_1.next(); !v1s_1_1.done; v1s_1_1 = v1s_1.next()) {
|
|
240
|
-
var v1 = v1s_1_1.value;
|
|
241
|
-
switch (condition.type) {
|
|
242
|
-
case ConditionType.EqualTo:
|
|
243
|
-
v1 = this.getStringForValue(v1);
|
|
244
|
-
v2 = this.getStringForValue(v2);
|
|
245
|
-
if (v1 === v2) {
|
|
246
|
-
result = true;
|
|
247
|
-
}
|
|
248
|
-
break;
|
|
249
|
-
case ConditionType.NotEqualTo:
|
|
250
|
-
v1 = this.getStringForValue(v1);
|
|
251
|
-
v2 = this.getStringForValue(v2);
|
|
252
|
-
if (v1 !== v2) {
|
|
253
|
-
result = true;
|
|
254
|
-
}
|
|
255
|
-
break;
|
|
256
|
-
case ConditionType.GreaterThan:
|
|
257
|
-
v1 = parseFloat(v1);
|
|
258
|
-
v2 = parseFloat(v2);
|
|
259
|
-
if (v1 >= v2) {
|
|
260
|
-
result = true;
|
|
261
|
-
}
|
|
262
|
-
break;
|
|
263
|
-
case ConditionType.LessThan:
|
|
264
|
-
v1 = parseFloat(v1);
|
|
265
|
-
v2 = parseFloat(v2);
|
|
266
|
-
if (v1 <= v2) {
|
|
267
|
-
result = true;
|
|
268
|
-
}
|
|
269
|
-
break;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
274
|
-
finally {
|
|
275
|
-
try {
|
|
276
|
-
if (v1s_1_1 && !v1s_1_1.done && (_b = v1s_1.return)) _b.call(v1s_1);
|
|
277
|
-
}
|
|
278
|
-
finally { if (e_8) throw e_8.error; }
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
283
|
-
finally {
|
|
284
|
-
try {
|
|
285
|
-
if (v2s_1_1 && !v2s_1_1.done && (_a = v2s_1.return)) _a.call(v2s_1);
|
|
286
|
-
}
|
|
287
|
-
finally { if (e_7) throw e_7.error; }
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
return result;
|
|
291
|
-
};
|
|
292
|
-
FilterService.prototype.getStringForValue = function (value) {
|
|
293
|
-
switch (value) {
|
|
294
|
-
case null:
|
|
295
|
-
return 'null';
|
|
296
|
-
default:
|
|
297
|
-
return value.toString();
|
|
298
|
-
}
|
|
299
|
-
};
|
|
300
|
-
/**
|
|
301
|
-
* Gets the current values for an array of strings.
|
|
302
|
-
* @param paths The array of strings to check.
|
|
303
|
-
* @param currentQuestionnaireForm The current form data, can be null/undefined.
|
|
304
|
-
* @returns An array of strings/values
|
|
305
|
-
* @author Will Poulson
|
|
306
|
-
*/
|
|
307
|
-
FilterService.prototype.getValuesForArray = function (paths, currentQuestionnaireForm, additionalData, repeaterItem) {
|
|
308
|
-
var e_9, _a;
|
|
309
|
-
if (currentQuestionnaireForm) {
|
|
310
|
-
var values = [];
|
|
311
|
-
try {
|
|
312
|
-
for (var paths_1 = __values(paths), paths_1_1 = paths_1.next(); !paths_1_1.done; paths_1_1 = paths_1.next()) {
|
|
313
|
-
var path = paths_1_1.value;
|
|
314
|
-
var value = this.getValueForString(path, currentQuestionnaireForm, additionalData, repeaterItem);
|
|
315
|
-
values.push(value);
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
319
|
-
finally {
|
|
320
|
-
try {
|
|
321
|
-
if (paths_1_1 && !paths_1_1.done && (_a = paths_1.return)) _a.call(paths_1);
|
|
322
|
-
}
|
|
323
|
-
finally { if (e_9) throw e_9.error; }
|
|
324
|
-
}
|
|
325
|
-
return values;
|
|
326
|
-
}
|
|
327
|
-
else {
|
|
328
|
-
return paths;
|
|
329
|
-
}
|
|
330
|
-
};
|
|
331
|
-
/**
|
|
332
|
-
* Gets a current value for a string.
|
|
333
|
-
* @param path The string value to check.
|
|
334
|
-
* @param currentQuestionnaireForm The current form data, can be null/undefined.
|
|
335
|
-
* @returns A string/value.
|
|
336
|
-
* @author Will Poulson
|
|
337
|
-
*/
|
|
338
|
-
FilterService.prototype.getValueForString = function (path, currentQuestionnaireForm, additionalData, repeaterItem) {
|
|
339
|
-
if (currentQuestionnaireForm) {
|
|
340
|
-
if (!additionalData) {
|
|
341
|
-
additionalData = {};
|
|
342
|
-
}
|
|
343
|
-
var control = currentQuestionnaireForm.get(path.toString());
|
|
344
|
-
if (!control && repeaterItem) {
|
|
345
|
-
control = repeaterItem.get(path);
|
|
346
|
-
}
|
|
347
|
-
var value = control ? control.value : this.convertStringToValue(path);
|
|
348
|
-
return _.get(additionalData, path, value);
|
|
349
|
-
}
|
|
350
|
-
else {
|
|
351
|
-
return this.convertStringToValue(path);
|
|
352
|
-
}
|
|
353
|
-
};
|
|
354
|
-
/**
|
|
355
|
-
* Converts a string to a value.
|
|
356
|
-
* Eg. true/false.
|
|
357
|
-
* @param path The string value to check for conversion;
|
|
358
|
-
* @returns Either a string or the converted value.
|
|
359
|
-
* @author Will Poulson
|
|
360
|
-
*/
|
|
361
|
-
FilterService.prototype.convertStringToValue = function (path) {
|
|
362
|
-
switch (path) {
|
|
363
|
-
case 'true':
|
|
364
|
-
return true;
|
|
365
|
-
case 'false':
|
|
366
|
-
return false;
|
|
367
|
-
case 'null':
|
|
368
|
-
return null;
|
|
369
|
-
default:
|
|
370
|
-
return path;
|
|
371
|
-
}
|
|
372
|
-
};
|
|
373
|
-
FilterService.ɵfac = function FilterService_Factory(t) { return new (t || FilterService)(); };
|
|
374
|
-
FilterService.ɵprov = i0.ɵɵdefineInjectable({ token: FilterService, factory: FilterService.ɵfac, providedIn: 'root' });
|
|
375
|
-
return FilterService;
|
|
376
|
-
}());
|
|
377
|
-
export { FilterService };
|
|
378
|
-
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(FilterService, [{
|
|
379
|
-
type: Injectable,
|
|
380
|
-
args: [{
|
|
381
|
-
providedIn: 'root'
|
|
382
|
-
}]
|
|
383
|
-
}], function () { return []; }, null); })();
|
|
384
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2xvd2dyZWVuL2dnLXF1ZXN0aW9ubmFpcmUtdjIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOztBQUk1QjtJQUtFO0lBQWdCLENBQUM7SUFFakI7Ozs7OztPQU1HO0lBQ0ksc0NBQWMsR0FBckIsVUFBc0IsUUFBd0IsRUFBRSx3QkFBMEMsRUFBRSxjQUF1Qjs7UUFDakgsSUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7O1lBQzVCLEtBQXNCLElBQUEsYUFBQSxTQUFBLFFBQVEsQ0FBQSxrQ0FBQSx3REFBRTtnQkFBM0IsSUFBTSxPQUFPLHFCQUFBO2dCQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxDQUFDLEVBQUU7b0JBQ2pHLFNBQVM7aUJBQ1Y7Z0JBRUQsSUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7O29CQUM3QixLQUF1QixJQUFBLG9CQUFBLFNBQUEsT0FBTyxDQUFDLFNBQVMsQ0FBQSxDQUFBLGdCQUFBLDRCQUFFO3dCQUFyQyxJQUFNLFFBQVEsV0FBQTt3QkFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLHdCQUF3QixFQUFFLGNBQWMsQ0FBQyxFQUFFOzRCQUNsRyxTQUFTO3lCQUNWO3dCQUVELHdGQUF3Rjt3QkFDeEYsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFVB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aW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2VjdGlvbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbmRpdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZGl0aW9uJztcbmltcG9ydCB7IENvbmRpdGlvbkdyb3VwIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25kaXRpb24tZ3JvdXAnO1xuaW1wb3J0IHsgQ29uZGl0aW9uVHlwZSB9IGZyb20gJy4uL2VudW1zL2NvbmRpdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgQ29uZGl0aW9uUmVsYXRpb25zaGlwIH0gZnJvbSAnLi4vZW51bXMvY29uZGl0aW9uLXJlbGF0aW9uc2hpcC5lbnVtJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9xdWVzdGlvbic7XG5pbXBvcnQgeyBSZXBlYXRlclF1ZXN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBlYXRlci1xdWVzdGlvbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlclNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYW4gYXJyYXkgb2Ygc2VjdGlvbnMgYmFzZWQgb24gdGhlaXIgY29uZGl0aW9uIGdyb3Vwcy5cbiAgICogQHBhcmFtIHNlY3Rpb25zIFRoZSBhcnJheSBvZiBzZWN0aW9ucyB0byBmaWx0ZXIuXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGZpbHRlcmVkIHNlY3Rpb25zIHdpdGggdGhlaXIgZmlsdGVyZWQgcXVlc3Rpb25zLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHVibGljIGZpbHRlclNlY3Rpb25zKHNlY3Rpb25zOiBBcnJheTxTZWN0aW9uPiwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAgfCBudWxsLCBhZGRpdGlvbmFsRGF0YT86IE9iamVjdCk6IEFycmF5PFNlY3Rpb24+IHtcbiAgICBjb25zdCBmaWx0ZXJlZFNlY3Rpb25zID0gW107XG4gICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHNlY3Rpb25zKSB7XG4gICAgICBpZiAoIXRoaXMubWVldHNDb25kaXRpb25Hcm91cHMoc2VjdGlvbi5jb25kaXRpb25Hcm91cHMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmaWx0ZXJlZFF1ZXN0aW9ucyA9IFtdO1xuICAgICAgZm9yIChjb25zdCBxdWVzdGlvbiBvZiBzZWN0aW9uLnF1ZXN0aW9ucykge1xuICAgICAgICBpZiAoIXRoaXMubWVldHNDb25kaXRpb25Hcm91cHMocXVlc3Rpb24uY29uZGl0aW9uR3JvdXBzLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgaXQncyBhIHJlcGVhdGVyIHdlIG5lZWQgdG8gZG8gYSBsb3Qgb2YgZXh0cmEgZmlsdGVyaW5nIGR1ZSB0byBwZXIgaXRlbSBjb25kaXRpb25zLlxuICAgICAgICBpZiAocXVlc3Rpb24udHlwZSA9PT0gJ3JlcGVhdGVyJyAmJiBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0pIHtcbiAgICAgICAgICBjb25zdCBpdGVtcyA9IGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybS5nZXQoW3NlY3Rpb24ubmFtZSwgcXVlc3Rpb24ubmFtZV0pIGFzIEZvcm1BcnJheTtcblxuICAgICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5jb250cm9scykge1xuICAgICAgICAgICAgZm9yIChjb25zdCByZXBlYXRlckl0ZW0gb2YgaXRlbXMuY29udHJvbHMpIHtcbiAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRSZXBlYXRlckl0ZW1RdWVzdGlvbnM6IEFycmF5PFJlcGVhdGVyUXVlc3Rpb24+ID0gW107XG5cbiAgICAgICAgICAgICAgZm9yIChjb25zdCByZXBlYXRlclF1ZXN0aW9uIG9mIHF1ZXN0aW9uLnJlcGVhdGVyUXVlc3Rpb25zKSB7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBtZWV0c0NvbmRpdGlvbnMgPSB0aGlzLm1lZXRzQ29uZGl0aW9uR3JvdXBzKFxuICAgICAgICAgICAgICAgICAgcmVwZWF0ZXJRdWVzdGlvbi5jb25kaXRpb25Hcm91cHMsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sXG4gICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsRGF0YSxcbiAgICAgICAgICAgICAgICAgIHJlcGVhdGVySXRlbSBhcyBGb3JtR3JvdXBcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgaWYgKG1lZXRzQ29uZGl0aW9ucykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgY2xvbmVRdWVzdGlvbiA9IF8uY2xvbmUocmVwZWF0ZXJRdWVzdGlvbik7XG5cbiAgICAgICAgICAgICAgICAgIGNsb25lUXVlc3Rpb24uc2VsZWN0T3B0aW9ucyA9IHRoaXMuZ2V0RmV0Y2hPcHRpb25zRm9yUXVlc3Rpb24oXG4gICAgICAgICAgICAgICAgICAgIHJlcGVhdGVyUXVlc3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxEYXRhLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sXG4gICAgICAgICAgICAgICAgICAgIHJlcGVhdGVySXRlbSBhcyBGb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgIGZpbHRlcmVkUmVwZWF0ZXJJdGVtUXVlc3Rpb25zLnB1c2goY2xvbmVRdWVzdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBpdGVtcy5jb250cm9scy5pbmRleE9mKHJlcGVhdGVySXRlbSk7XG5cbiAgICAgICAgICAgICAgaWYgKCFxdWVzdGlvbi5maWx0ZXJlZFJlcGVhdGVyUXVlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgcXVlc3Rpb24uZmlsdGVyZWRSZXBlYXRlclF1ZXN0aW9ucyA9IFtdO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcXVlc3Rpb24uZmlsdGVyZWRSZXBlYXRlclF1ZXN0aW9uc1tpbmRleF0gPSBmaWx0ZXJlZFJlcGVhdGVySXRlbVF1ZXN0aW9ucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIHF1ZXN0aW9uLnNlbGVjdE9wdGlvbnMgPSB0aGlzLmdldEZldGNoT3B0aW9uc0ZvclF1ZXN0aW9uKHF1ZXN0aW9uLCBhZGRpdGlvbmFsRGF0YSwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtKTtcblxuICAgICAgICBmaWx0ZXJlZFF1ZXN0aW9ucy5wdXNoKHF1ZXN0aW9uKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZpbHRlcmVkUXVlc3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgc2VjdGlvbi5xdWVzdGlvbnMgPSBmaWx0ZXJlZFF1ZXN0aW9ucztcbiAgICAgIGZpbHRlcmVkU2VjdGlvbnMucHVzaChzZWN0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyZWRTZWN0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmV0Y2hPcHRpb25zRm9yUXVlc3Rpb24oXG4gICAgcXVlc3Rpb246IFF1ZXN0aW9uIHwgUmVwZWF0ZXJRdWVzdGlvbixcbiAgICBhZGRpdGlvbmFsRGF0YSxcbiAgICBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sXG4gICAgcmVwZWF0ZXJJdGVtPzogRm9ybUdyb3VwXG4gICkge1xuXG4gICAgaWYgKCFxdWVzdGlvbi5mZXRjaFBhdGgpIHtcbiAgICAgIHJldHVybiBxdWVzdGlvbi5zZWxlY3RPcHRpb25zO1xuICAgIH1cblxuICAgIGxldCBvcHRpb25zID0gYWRkaXRpb25hbERhdGFbcXVlc3Rpb24uZmV0Y2hQYXRoXTtcbiAgICBpZiAocXVlc3Rpb24uZmV0Y2hTZWxlY3RvcnMgJiYgcXVlc3Rpb24uZmV0Y2hTZWxlY3RvcnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5nZXRWYWx1ZXNGb3JBcnJheShxdWVzdGlvbi5mZXRjaFNlbGVjdG9ycywgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSwgcmVwZWF0ZXJJdGVtKTtcbiAgICAgIG9wdGlvbnMgPSBfLmdldChhZGRpdGlvbmFsRGF0YVtxdWVzdGlvbi5mZXRjaFBhdGhdLCB2YWx1ZXMpO1xuICAgIH1cblxuICAgIG9wdGlvbnMgPSB0aGlzLmdldEZpbmFsRmV0Y2hBcnJheShvcHRpb25zKTtcblxuICAgIGlmICghcXVlc3Rpb24uc2VsZWN0T3B0aW9ucykge1xuICAgICAgcXVlc3Rpb24uc2VsZWN0T3B0aW9ucyA9IFtdO1xuICAgIH1cblxuICAgIHJldHVybiBxdWVzdGlvbi5zZWxlY3RPcHRpb25zLmNvbmNhdChvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmluYWxGZXRjaEFycmF5KGl0ZW1zOiBhbnkpOiBBcnJheTxPYmplY3Q+IHtcbiAgICBpZiAoIWl0ZW1zKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xuICAgICAgaXRlbXMgPSBfLmtleXMoaXRlbXMpO1xuICAgIH1cbiAgICBpZiAoaXRlbXMubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBjb252ZXJ0ZWRBcnJheTogQXJyYXk8T2JqZWN0PiA9IFtdO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBPYmplY3QgJiYgKGl0ZW0udmFsdWUgIT09IHVuZGVmaW5lZCkgJiYgaXRlbS5sYWJlbCkge1xuICAgICAgICAgIGNvbnZlcnRlZEFycmF5LnB1c2goaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udmVydGVkQXJyYXkucHVzaCh7bGFiZWw6IHRoaXMudXBwZXJjYXNlKGl0ZW0pLCB2YWx1ZTogaXRlbX0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb252ZXJ0ZWRBcnJheTtcbiAgfVxuXG4gIHByaXZhdGUgdXBwZXJjYXNlKGl0ZW06IGFueSkge1xuICAgIGlmICghaXNOYU4oaXRlbSkpIHtcbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGl0ZW0uc2xpY2UoMSk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgZWFjaCBjb25kaXRpb24gZ3JvdXBzIGNvbmRpdGlvbnMgaGF2ZSBiZWVuIG1ldC5cbiAgICogQHBhcmFtIGNvbmRpdGlvbkdyb3VwcyBUaGUgYXJyYXkgb2YgY29uZGl0aW9uIGdyb3Vwcy5cbiAgICogQHBhcmFtIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSBUaGUgY3VycmVudCBmb3JtIGRhdGEsIGNhbiBiZSBudWxsL3VuZGVmaW5lZC5cbiAgICogQHJldHVybnMgQSBib29sZWFuIHN0YXRpbmcgaWYgdGhlIGNvbmRpdGlvbiBncm91cHMgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uR3JvdXBzKFxuICAgIGNvbmRpdGlvbkdyb3VwczogQXJyYXk8Q29uZGl0aW9uR3JvdXA+LFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCxcbiAgICBhZGRpdGlvbmFsRGF0YT86IE9iamVjdCxcbiAgICByZXBlYXRlckl0ZW0/OiBGb3JtR3JvdXBcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjb25kaXRpb25Hcm91cHMgfHwgY29uZGl0aW9uR3JvdXBzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBjb25kaXRpb25Hcm91cHMuZXZlcnkoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLm1lZXRzQ29uZGl0aW9uR3JvdXAoeCwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSwgcmVwZWF0ZXJJdGVtKSA9PT0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBjb25kaXRpb24gZ3JvdXBzIGNvbmRpdGlvbnMgaGF2ZSBiZWVuIG1ldC5cbiAgICogQHBhcmFtIGNvbmRpdGlvbkdyb3VwIFRoZSBjb25kaXRpb24gZ3JvdXAgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEEgYm9vbGVhbiBzdGF0aW5nIGlmIHRoZSBjb25kaXRpb24gZ3JvdXAgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uR3JvdXAoXG4gICAgY29uZGl0aW9uR3JvdXA6IENvbmRpdGlvbkdyb3VwLFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCxcbiAgICBhZGRpdGlvbmFsRGF0YT86IE9iamVjdCxcbiAgICByZXBlYXRlckl0ZW0/OiBGb3JtR3JvdXBcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjb25kaXRpb25Hcm91cC5jb25kaXRpb25zIHx8IGNvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHRzID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBjb25kaXRpb25Hcm91cC5jb25kaXRpb25zKSB7XG4gICAgICByZXN1bHRzLnB1c2godGhpcy5tZWV0c0NvbmRpdGlvbihjb25kaXRpb24sIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEsIHJlcGVhdGVySXRlbSkpO1xuICAgIH1cblxuICAgIHN3aXRjaCAoY29uZGl0aW9uR3JvdXAucmVsYXRpb25zaGlwKSB7XG4gICAgICBjYXNlIENvbmRpdGlvblJlbGF0aW9uc2hpcC5FdmVyeTpcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZXZlcnkoKHgpID0+IHtcbiAgICAgICAgICByZXR1cm4geCA9PT0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICBjYXNlIENvbmRpdGlvblJlbGF0aW9uc2hpcC5Bbnk6XG4gICAgICAgIHJldHVybiAhIXJlc3VsdHMuZmluZCgoeCkgPT4ge1xuICAgICAgICAgIHJldHVybiB4ID09PSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBjb25kaXRpb24gaGFzIGJlZW4gbWV0LlxuICAgKiBAcGFyYW0gY29uZGl0aW9uIFRoZSBjb25kaXRpb24gdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEEgYm9vbGVhbiBzdGF0aW5nIGlmIHRoZSBjb25kaXRpb24gZ3JvdXAgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uKFxuICAgIGNvbmRpdGlvbjogQ29uZGl0aW9uLFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwLFxuICAgIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0LFxuICAgIHJlcGVhdGVySXRlbT86IEZvcm1Hcm91cFxuICApOiBib29sZWFuIHtcbiAgICBjb25zdCB2MXM6IEFycmF5PGFueT4gPSB0aGlzLmdldFZhbHVlc0ZvckFycmF5KGNvbmRpdGlvbi52MXMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEsIHJlcGVhdGVySXRlbSk7XG4gICAgY29uc3QgdjJzOiBBcnJheTxhbnk+ID0gdGhpcy5nZXRWYWx1ZXNGb3JBcnJheShjb25kaXRpb24udjJzLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhLCByZXBlYXRlckl0ZW0pO1xuXG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgc3dpdGNoIChjb25kaXRpb24udHlwZSkge1xuICAgICAgY2FzZSBDb25kaXRpb25UeXBlLkV4Y2x1ZGVzOlxuICAgICAgICByZXN1bHQgPSAgdjFzLmZpbHRlcigodjEpID0+IHtcbiAgICAgICAgICByZXR1cm4gdjJzLmluZGV4T2YodjEpID4gLTE7XG4gICAgICAgIH0pLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbmRpdGlvblR5cGUuSW5jbHVkZXM6XG4gICAgICAgIHJlc3VsdCA9IHYxcy5maWx0ZXIoKHYxKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHYycy5pbmRleE9mKHYxKSA+IC0xO1xuICAgICAgICB9KS5sZW5ndGggIT09IDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgZm9yIChsZXQgdjIgb2YgdjJzKSB7XG4gICAgICAgICAgZm9yIChsZXQgdjEgb2YgdjFzKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGNvbmRpdGlvbi50eXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5FcXVhbFRvOlxuICAgICAgICAgICAgICAgIHYxID0gdGhpcy5nZXRTdHJpbmdGb3JWYWx1ZSh2MSk7XG4gICAgICAgICAgICAgICAgdjIgPSB0aGlzLmdldFN0cmluZ0ZvclZhbHVlKHYyKTtcbiAgICAgICAgICAgICAgICBpZiAodjEgPT09IHYyKSB7IHJlc3VsdCA9IHRydWU7IH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBDb25kaXRpb25UeXBlLk5vdEVxdWFsVG86XG4gICAgICAgICAgICAgICAgdjEgPSB0aGlzLmdldFN0cmluZ0ZvclZhbHVlKHYxKTtcbiAgICAgICAgICAgICAgICB2MiA9IHRoaXMuZ2V0U3RyaW5nRm9yVmFsdWUodjIpO1xuICAgICAgICAgICAgICAgIGlmICh2MSAhPT0gdjIpIHsgcmVzdWx0ID0gdHJ1ZTsgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIENvbmRpdGlvblR5cGUuR3JlYXRlclRoYW46XG4gICAgICAgICAgICAgICAgdjEgPSBwYXJzZUZsb2F0KHYxKTtcbiAgICAgICAgICAgICAgICB2MiA9IHBhcnNlRmxvYXQodjIpO1xuICAgICAgICAgICAgICAgIGlmICh2MSA+PSB2MikgeyByZXN1bHQgPSB0cnVlOyB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5MZXNzVGhhbjpcbiAgICAgICAgICAgICAgICB2MSA9IHBhcnNlRmxvYXQodjEpO1xuICAgICAgICAgICAgICAgIHYyID0gcGFyc2VGbG9hdCh2Mik7XG4gICAgICAgICAgICAgICAgaWYgKHYxIDw9IHYyKSB7IHJlc3VsdCA9IHRydWU7IH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdHJpbmdGb3JWYWx1ZSh2YWx1ZSkge1xuICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgIGNhc2UgbnVsbDpcbiAgICAgICAgcmV0dXJuICdudWxsJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHZhbHVlcyBmb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAgICogQHBhcmFtIHBhdGhzIFRoZSBhcnJheSBvZiBzdHJpbmdzIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBzdHJpbmdzL3ZhbHVlc1xuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBnZXRWYWx1ZXNGb3JBcnJheShcbiAgICBwYXRoczogQXJyYXk8c3RyaW5nPixcbiAgICBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCxcbiAgICBhZGRpdGlvbmFsRGF0YT86IE9iamVjdCxcbiAgICByZXBlYXRlckl0ZW0/OiBGb3JtR3JvdXBcbiAgKTogQXJyYXk8YW55PiB7XG4gICAgaWYgKGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSkge1xuICAgICAgY29uc3QgdmFsdWVzID0gW107XG4gICAgICBmb3IgKGNvbnN0IHBhdGggb2YgcGF0aHMpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlRm9yU3RyaW5nKHBhdGgsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEsIHJlcGVhdGVySXRlbSk7XG4gICAgICAgIHZhbHVlcy5wdXNoKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXRocztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGN1cnJlbnQgdmFsdWUgZm9yIGEgc3RyaW5nLlxuICAgKiBAcGFyYW0gcGF0aCBUaGUgc3RyaW5nIHZhbHVlIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBIHN0cmluZy92YWx1ZS5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgZ2V0VmFsdWVGb3JTdHJpbmcoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwLFxuICAgIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0LFxuICAgIHJlcGVhdGVySXRlbT86IEZvcm1Hcm91cFxuICApIHtcbiAgICBpZiAoY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtKSB7XG4gICAgICBpZiAoIWFkZGl0aW9uYWxEYXRhKSB7XG4gICAgICAgIGFkZGl0aW9uYWxEYXRhID0ge307XG4gICAgICB9XG5cbiAgICAgIGxldCBjb250cm9sID0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldChwYXRoLnRvU3RyaW5nKCkpO1xuXG4gICAgICBpZiAoIWNvbnRyb2wgJiYgcmVwZWF0ZXJJdGVtKSB7XG4gICAgICAgIGNvbnRyb2wgPSByZXBlYXRlckl0ZW0uZ2V0KHBhdGgpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wgPyBjb250cm9sLnZhbHVlIDogdGhpcy5jb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoKTtcbiAgICAgIHJldHVybiBfLmdldChhZGRpdGlvbmFsRGF0YSwgcGF0aCwgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBzdHJpbmcgdG8gYSB2YWx1ZS5cbiAgICogRWcuIHRydWUvZmFsc2UuXG4gICAqIEBwYXJhbSBwYXRoIFRoZSBzdHJpbmcgdmFsdWUgdG8gY2hlY2sgZm9yIGNvbnZlcnNpb247XG4gICAqIEByZXR1cm5zIEVpdGhlciBhIHN0cmluZyBvciB0aGUgY29udmVydGVkIHZhbHVlLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHBhdGgpIHtcbiAgICAgIGNhc2UgJ3RydWUnOlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGNhc2UgJ2ZhbHNlJzpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgY2FzZSAnbnVsbCc6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICB9XG59XG4iXX0=
|