diff --git a/src/question.ts b/src/question.ts index acefde8a35..bfd8a97b3e 100644 --- a/src/question.ts +++ b/src/question.ts @@ -1540,7 +1540,7 @@ export class Question extends SurveyElement } public get hasFilteredValue(): boolean { return false; } public getFilteredValue(): any { return this.value; } - public getFilteredName(): any { return this.getValueName(); } + public getFilteredName(): string { return this.getValueName(); } public get valueForSurvey(): any { if (!!this.valueToDataCallback) { return this.valueToDataCallback(this.value); diff --git a/src/question_checkbox.ts b/src/question_checkbox.ts index d4e43fa414..31b20b3711 100644 --- a/src/question_checkbox.ts +++ b/src/question_checkbox.ts @@ -252,7 +252,7 @@ export class QuestionCheckboxModel extends QuestionCheckboxBase { } public get selectedItems(): Array { return this.selectedChoices; } public get hasFilteredValue(): boolean { return !!this.valuePropertyName; } - public getFilteredName(): any { + public getFilteredName(): string { let res = super.getFilteredName(); if(this.hasFilteredValue) { res += "-unwrapped"; diff --git a/src/survey.ts b/src/survey.ts index 5931895545..9800a8310a 100644 --- a/src/survey.ts +++ b/src/survey.ts @@ -3073,31 +3073,31 @@ export class SurveyModel extends SurveyElementCore } return result; } - getFilteredValues(): any { - var values: { [index: string]: any } = {}; - for (var key in this.variablesHash) values[key] = this.variablesHash[key]; + + getFilteredValues(): Record { + const values: { [index: string]: any } = { + ...this.variablesHash, + + }; this.addCalculatedValuesIntoFilteredValues(values); - var keys = this.getValuesKeys(); - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; + for (let key of this.getValuesKeys()) { values[key] = this.getDataValueCore(this.valuesHash, key); } - this.getAllQuestions().forEach(q => { - if (q.hasFilteredValue) { - values[q.getFilteredName()] = q.getFilteredValue(); + for (let question of this.getAllQuestions()) { + if (question.hasFilteredValue) { + values[question.getFilteredName()] = question.getFilteredValue(); } - }); - + } return values; } private addCalculatedValuesIntoFilteredValues(values: { - [index: string]: any, + [index: string]: CalculatedValue["value"], }) { - var caclValues = this.calculatedValues; - for (var i = 0; i < caclValues.length; i++) - values[caclValues[i].name] = caclValues[i].value; + for (let calculatedValue of this.calculatedValues) { + values[calculatedValue.name] = calculatedValue.value; + } } - getFilteredProperties(): any { + getFilteredProperties(): { survey: SurveyModel } { return { survey: this }; } private getValuesKeys(): Array {