SurveyJS v2.5.20
Released: April 14, 2026
SurveyJS v2.5.20 extends the minInArray and maxInArray expression functions by adding support for returning values from related fields.
Expressions: minInArray and maxInArray support returning values from related fields
The minInArray and maxInArray functions compute the minimum or maximum numeric value from a specified field within an array (for example, Multi-Select Matrix, Dynamic Matrix, or Dynamic Panel responses).
Previously, these functions always returned only the computed numeric value from the target field. With this update, they can optionally return a value from another field in the same array item that produced the min/max result.
To accommodate this enhancement, the argument order has been updated:
- The third argument can specify either a return field or a filter condition.
- When a return field is provided as the third argument, the filter condition must now be passed as the fourth argument.
Updated signature (same applies to maxInArray):
minInArray(array, valueField)
minInArray(array, valueField, returnField)
minInArray(array, valueField, filterCondition)
minInArray(array, valueField, returnField, filterCondition)
Examples:
{
matrixdynamic: [
{ name: "A", price: 10, active: false },
{ name: "B", price: 20, active: true },
{ name: "C", price: 30, active: true }
{ name: "D", price: 40, active: false }
]
}
"minInArray({matrixdynamic}, 'price')" // 10
"minInArray({matrixdynamic}, 'price', 'name')" // A
"minInArray({matrixdynamic}, 'price', active = true)" // 20
"minInArray({matrixdynamic}, 'price', 'name', active = true)" // B
"maxInArray({matrixdynamic}, 'price')" // 40
"maxInArray({matrixdynamic}, 'price', 'name')" // D
"maxInArray({matrixdynamic}, 'price', active = true)" // 30
"maxInArray({matrixdynamic}, 'price', 'name', active = true)" // C
New Demo
Bug Fixes and Minor Enhancements
Form Library
age()is not calculated when the DateTime value doesn't match the specified mask andsaveMaskedValueis enabled (#11157)- Single-Line Input: Display value ignores the mask when using
"defaultValueExpression": "today()"(#11158) - [Survey Creator] Multi-Select Matrix:
allowClearis preserved when changingcellTypefrom"default"to"radiogroup", although radio columns do not support it (#11146) - Matrix cell values in expressions: Reference placeholder is displayed until the actual cell value is defined (#11140)
isContainerReady()expression function returnstrueeven when not all required questions are specified (#11142)- Dropdown: Custom item template is not rendered in read-only mode (#11143)
- Visibility expression evaluates incorrectly when it relies on RegExp validation and references a calculated value and the
containsErrorsproperty (#11152) - Dynamic Matrix column: Unique value validation is bypassed when expression validator is used (#11155)
Survey Creator
- [Vanilla JS] TypeScript build breaks after migrating from Webpack to Rollup (#7616)
- Property Grid: Survey element selector persists in a custom sidebar component (#7552)
- Design surface: "Choices are loaded from a web service" message overflows its container in certain cases (#7614)
How to Update SurveyJS Libraries in Your Application
Angular
npm i survey-core@v2.5.20 survey-angular-ui@v2.5.20 --save
npm i survey-creator-core@v2.5.20 survey-creator-angular@v2.5.20 --save
npm i survey-analytics@v2.5.20 --save
npm i survey-pdf@v2.5.20 --save
React
npm i survey-core@v2.5.20 survey-react-ui@v2.5.20 --save
npm i survey-creator-core@v2.5.20 survey-creator-react@v2.5.20 --save
npm i survey-analytics@v2.5.20 --save
npm i survey-pdf@v2.5.20 --save
Vue.js
npm i survey-core@v2.5.20 survey-vue3-ui@v2.5.20 --save
npm i survey-creator-core@v2.5.20 survey-creator-vue@2.5.20 --save
npm i survey-analytics@2.5.20 --save
npm i survey-pdf@2.5.20 --save
HTML/CSS/JavaScript
<link href="https://unpkg.com/survey-core@2.5.20/survey-core.min.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="https://unpkg.com/survey-core@2.5.20/survey.core.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/survey-js-ui@2.5.20/survey-js-ui.min.js"></script>
<script src="https://unpkg.com/survey-core@2.5.20/themes/index.min.js"></script>
<script src="https://unpkg.com/survey-creator-core@2.5.20/themes/index.min.js"></script>
<link href="https://unpkg.com/survey-creator-core@2.5.20/survey-creator-core.min.css" type="text/css" rel="stylesheet">
<script src="https://unpkg.com/survey-creator-core@2.5.20/survey-creator-core.min.js"></script>
<script src="https://unpkg.com/survey-creator-js@2.5.20/survey-creator-js.min.js"></script>
<link href="https://unpkg.com/survey-analytics@2.5.20/survey.analytics.min.css" rel="stylesheet">
<script src="https://unpkg.com/survey-analytics@2.5.20/survey.analytics.min.js"></script>
<script src="https://unpkg.com/survey-pdf@2.5.20/survey.pdf.min.js"></script>
<script src="https://unpkg.com/survey-pdf@2.5.20/pdf-form-filler.min.js"></script>