release notes

SurveyJS v1.9.94

Released: June 28, 2023

SurveyJS v1.9.94 introduces support for right-to-left languages in PDF Generator, renaming in global survey settings API and matrix-related events API, and several bug fixes.

PDF Generator: Right-To-Left Language Support

SurveyJS PDF Generator v1.9.94 introduces full support for right-to-left (RTL) languages in generated PDF forms. If your survey or form contains RTL content, enable the isRTL property in document options:

import { SurveyPDF } from "survey-pdf";
const surveyPdf = new SurveyPDF(surveyJson, { isRTL: true });

Grouping in Global Survey Settings API

Global survey settings are now arranged in groups. This change helps us structure the diverse API and make it more clear. The following table lists previous property names and their substitutions:

Old property name New property name
allowShowEmptyDescriptionInDesignMode designMode.showEmptyDescriptions
allowShowEmptyTitleInDesignMode designMode.showEmptyTitles
changeNavigationButtonsOnCompleteTrigger triggers.changeNavigationButtonsOnComplete
defaultLocaleName localization.defaultLocaleName
disableOnGettingChoicesFromWeb web.disableQuestionWhileLoadingChoices
executeCompleteTriggerOnValueChanged triggers.executeCompleteOnValueChanged
executeSkipTriggerOnValueChanged triggers.executeSkipOnValueChanged
itemValueAlwaysSerializeAsObject serialization.itemValueSerializeAsObject
itemValueAlwaysSerializeText serialization.itemValueSerializeDisplayText
lazyRowsRendering lazyRender.enabled
matrixDefaultCellType matrix.defaultCellType
matrixDefaultRowName matrix.defaultRowName
matrixMaximumRowCount matrix.maxRowCount
matrixMaxRowCountInCondition matrix.maxRowCountInCondition
matrixRenderRemoveAsIcon matrix.renderRemoveAsIcon
matrixTotalValuePostFix matrix.totalsSuffix
maximumConditionRunCountOnValueChanged maxConditionRunCountOnValueChanged
panelDynamicMaxPanelCountInCondition panel.maxPanelCountInCondition
panelMaximumPanelCount panel.maxPanelCount
readOnlyCommentRenderMode readOnlyMode.commentRenderMode
readOnlyTextRenderMode readOnlyMode.textRenderMode
serializeLocalizableStringAsObject serialization.localizableStringSerializeAsObject
setQuestionVisibleIndexForHiddenNumber questionNumbering.includeQuestionsWithHiddenNumber
setQuestionVisibleIndexForHiddenTitle questionNumbering.includeQuestionsWithHiddenTitle
storeDuplicatedTranslations localization.storeDuplicatedTranslations
surveyServiceUrl web.surveyServiceUrl
useCachingForChoicesRestful web.cacheLoadedChoices
useLocalTimeZone localization.useLocalTimeZone
webserviceEncodeParameters web.encodeUrlParams

Previous property names will continue to work until further notice. However, we urge you to migrate your code to the new names to make sure that future updates won't break it.

The following matrix-related events are renamed to better reflect their function and maintain consistency across the entire events API:

Old event name New event name
onMatrixBeforeRowAdded onMatrixRowAdding
onMatrixAllowRemoveRow onMatrixRenderRemoveButton
onMatrixAfterCellRender onAfterRenderMatrixCell

Similar to obsolete global survey settings, previous events will continue to work, but it is better to replace them with new events in your code.

Updated Demos

Visualize Survey Data from SurveyJS Service

New Blog Post

Pros and Cons: Custom-built in-house survey applications vs On-premise vs Cloud-based survey software

Bug Fixes

Form Library

  • Signature Pad: Placeholder doesn't disappear, and an eraser icon do not appear (#6403)
  • The Add Panel button does not show for a Dynamic Panel that is read-only when the survey loads but becomes enabled later (#6292)
  • Dropdown: displayValue is incorrect when lazy loading is enabled and value is an object (#6418)

Survey Creator

  • Image Picker with disabled image upload throws an exception on an attempt to drag and drop images (#4236)
  • A choice value that equals 0 is not displayed in the Translation tab (#4242)
  • Prevent body from being scrolled when a popup is open (#4254)

Your cookie settings

We use cookies on our site to make your browsing experience more convenient and personal. In some cases, they are essential to making the site work properly. By clicking "Accept All", you consent to the use of all cookies in accordance with our Terms of Use & Privacy Statement. However, you may visit "Cookie settings" to provide a controlled consent.

Your renewal subscription expires soon.

Since the license is perpetual, you will still have permanent access to the product versions released within the first 12 month of the original purchase date.

If you wish to continue receiving technical support from our Help Desk specialists and maintain access to the latest product updates, make sure to renew your subscription by clicking the "Renew" button below.

Your renewal subscription has expired.

Since the license is perpetual, you will still have permanent access to the product versions released within the first 12 month of the original purchase date.

If you wish to continue receiving technical support from our Help Desk specialists and maintain access to the latest product updates, make sure to renew your subscription by clicking the "Renew" button below.