survey-core 1.12.1 → 1.12.3

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.
Files changed (276) hide show
  1. package/defaultV2.css +52 -12
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +52 -12
  4. package/defaultV2.fontless.css.map +1 -1
  5. package/defaultV2.fontless.min.css +2 -2
  6. package/defaultV2.min.css +2 -2
  7. package/i18n/arabic.js +1 -1
  8. package/i18n/arabic.min.js +1 -1
  9. package/i18n/basque.js +1 -1
  10. package/i18n/basque.min.js +1 -1
  11. package/i18n/bulgarian.js +1 -1
  12. package/i18n/bulgarian.min.js +1 -1
  13. package/i18n/catalan.js +1 -1
  14. package/i18n/catalan.min.js +1 -1
  15. package/i18n/croatian.js +1 -1
  16. package/i18n/croatian.min.js +1 -1
  17. package/i18n/czech.js +1 -1
  18. package/i18n/czech.min.js +1 -1
  19. package/i18n/danish.js +1 -1
  20. package/i18n/danish.min.js +1 -1
  21. package/i18n/dutch.js +1 -1
  22. package/i18n/dutch.min.js +1 -1
  23. package/i18n/english.js +1 -1
  24. package/i18n/english.min.js +1 -1
  25. package/i18n/estonian.js +1 -1
  26. package/i18n/estonian.min.js +1 -1
  27. package/i18n/finnish.js +1 -1
  28. package/i18n/finnish.min.js +1 -1
  29. package/i18n/french.js +1 -1
  30. package/i18n/french.min.js +1 -1
  31. package/i18n/georgian.js +1 -1
  32. package/i18n/georgian.min.js +1 -1
  33. package/i18n/german.js +1 -1
  34. package/i18n/german.min.js +1 -1
  35. package/i18n/greek.js +1 -1
  36. package/i18n/greek.min.js +1 -1
  37. package/i18n/hebrew.js +1 -1
  38. package/i18n/hebrew.min.js +1 -1
  39. package/i18n/hindi.js +1 -1
  40. package/i18n/hindi.min.js +1 -1
  41. package/i18n/hungarian.js +1 -1
  42. package/i18n/hungarian.min.js +1 -1
  43. package/i18n/icelandic.js +1 -1
  44. package/i18n/icelandic.min.js +1 -1
  45. package/i18n/index.js +45 -45
  46. package/i18n/index.js.map +1 -1
  47. package/i18n/index.min.js +2 -2
  48. package/i18n/indonesian.js +1 -1
  49. package/i18n/indonesian.min.js +1 -1
  50. package/i18n/italian.js +1 -1
  51. package/i18n/italian.min.js +1 -1
  52. package/i18n/japanese.js +45 -45
  53. package/i18n/japanese.js.map +1 -1
  54. package/i18n/japanese.min.js +2 -2
  55. package/i18n/kazakh.js +1 -1
  56. package/i18n/kazakh.min.js +1 -1
  57. package/i18n/korean.js +1 -1
  58. package/i18n/korean.min.js +1 -1
  59. package/i18n/latvian.js +1 -1
  60. package/i18n/latvian.min.js +1 -1
  61. package/i18n/lithuanian.js +1 -1
  62. package/i18n/lithuanian.min.js +1 -1
  63. package/i18n/macedonian.js +1 -1
  64. package/i18n/macedonian.min.js +1 -1
  65. package/i18n/malay.js +1 -1
  66. package/i18n/malay.min.js +1 -1
  67. package/i18n/nl-BE.js +1 -1
  68. package/i18n/nl-BE.min.js +1 -1
  69. package/i18n/norwegian.js +1 -1
  70. package/i18n/norwegian.min.js +1 -1
  71. package/i18n/persian.js +1 -1
  72. package/i18n/persian.min.js +1 -1
  73. package/i18n/philippines.js +1 -1
  74. package/i18n/philippines.min.js +1 -1
  75. package/i18n/polish.js +1 -1
  76. package/i18n/polish.min.js +1 -1
  77. package/i18n/portuguese-br.js +1 -1
  78. package/i18n/portuguese-br.min.js +1 -1
  79. package/i18n/portuguese.js +1 -1
  80. package/i18n/portuguese.min.js +1 -1
  81. package/i18n/romanian.js +1 -1
  82. package/i18n/romanian.min.js +1 -1
  83. package/i18n/russian.js +1 -1
  84. package/i18n/russian.min.js +1 -1
  85. package/i18n/serbian.js +1 -1
  86. package/i18n/serbian.min.js +1 -1
  87. package/i18n/simplified-chinese.js +1 -1
  88. package/i18n/simplified-chinese.min.js +1 -1
  89. package/i18n/slovak.js +1 -1
  90. package/i18n/slovak.min.js +1 -1
  91. package/i18n/spanish.js +1 -1
  92. package/i18n/spanish.min.js +1 -1
  93. package/i18n/swahili.js +1 -1
  94. package/i18n/swahili.min.js +1 -1
  95. package/i18n/swedish.js +1 -1
  96. package/i18n/swedish.min.js +1 -1
  97. package/i18n/tajik.js +1 -1
  98. package/i18n/tajik.min.js +1 -1
  99. package/i18n/telugu.js +1 -1
  100. package/i18n/telugu.min.js +1 -1
  101. package/i18n/thai.js +1 -1
  102. package/i18n/thai.min.js +1 -1
  103. package/i18n/traditional-chinese.js +1 -1
  104. package/i18n/traditional-chinese.min.js +1 -1
  105. package/i18n/turkish.js +1 -1
  106. package/i18n/turkish.min.js +1 -1
  107. package/i18n/ukrainian.js +1 -1
  108. package/i18n/ukrainian.min.js +1 -1
  109. package/i18n/urdu.js +1 -1
  110. package/i18n/urdu.min.js +1 -1
  111. package/i18n/vietnamese.js +1 -1
  112. package/i18n/vietnamese.min.js +1 -1
  113. package/i18n/welsh.js +1 -1
  114. package/i18n/welsh.min.js +1 -1
  115. package/modern.css +47 -8
  116. package/modern.css.map +1 -1
  117. package/modern.fontless.css +47 -8
  118. package/modern.fontless.css.map +1 -1
  119. package/modern.fontless.min.css +2 -2
  120. package/modern.min.css +2 -2
  121. package/package.json +1 -1
  122. package/plugins/bootstrap-integration/index.js +1 -1
  123. package/plugins/bootstrap-integration/index.min.js +1 -1
  124. package/plugins/bootstrap-material-integration/cssbootstrapmaterial.d.ts +1 -0
  125. package/plugins/bootstrap-material-integration/index.js +2 -1
  126. package/plugins/bootstrap-material-integration/index.js.map +1 -1
  127. package/plugins/bootstrap-material-integration/index.min.js +2 -2
  128. package/survey.core.js +1023 -346
  129. package/survey.core.js.map +1 -1
  130. package/survey.core.min.js +3 -3
  131. package/survey.css +49 -8
  132. package/survey.css.map +1 -1
  133. package/survey.i18n.js +45 -45
  134. package/survey.i18n.js.map +1 -1
  135. package/survey.i18n.min.js +2 -2
  136. package/survey.min.css +2 -2
  137. package/themes/borderless-dark-panelless.js +1 -1
  138. package/themes/borderless-dark-panelless.min.js +1 -1
  139. package/themes/borderless-dark.js +1 -1
  140. package/themes/borderless-dark.min.js +1 -1
  141. package/themes/borderless-light-panelless..js +1 -1
  142. package/themes/borderless-light-panelless..min.js +1 -1
  143. package/themes/borderless-light.js +1 -1
  144. package/themes/borderless-light.min.js +1 -1
  145. package/themes/contrast-dark-panelless.js +1 -1
  146. package/themes/contrast-dark-panelless.min.js +1 -1
  147. package/themes/contrast-dark.js +1 -1
  148. package/themes/contrast-dark.min.js +1 -1
  149. package/themes/contrast-light-panelless.js +1 -1
  150. package/themes/contrast-light-panelless.min.js +1 -1
  151. package/themes/contrast-light.js +1 -1
  152. package/themes/contrast-light.min.js +1 -1
  153. package/themes/default-dark-panelless.js +1 -1
  154. package/themes/default-dark-panelless.min.js +1 -1
  155. package/themes/default-dark.js +1 -1
  156. package/themes/default-dark.min.js +1 -1
  157. package/themes/default-light-panelless.js +1 -1
  158. package/themes/default-light-panelless.min.js +1 -1
  159. package/themes/default-light.js +1 -1
  160. package/themes/default-light.min.js +1 -1
  161. package/themes/doubleborder-dark-panelless.js +1 -1
  162. package/themes/doubleborder-dark-panelless.min.js +1 -1
  163. package/themes/doubleborder-dark.js +1 -1
  164. package/themes/doubleborder-dark.min.js +1 -1
  165. package/themes/doubleborder-light-panelles.js +1 -1
  166. package/themes/doubleborder-light-panelles.min.js +1 -1
  167. package/themes/doubleborder-light.js +1 -1
  168. package/themes/doubleborder-light.min.js +1 -1
  169. package/themes/flat-dark-panelless.js +1 -1
  170. package/themes/flat-dark-panelless.min.js +1 -1
  171. package/themes/flat-dark.js +1 -1
  172. package/themes/flat-dark.min.js +1 -1
  173. package/themes/flat-light-panelless.js +1 -1
  174. package/themes/flat-light-panelless.min.js +1 -1
  175. package/themes/flat-light.js +1 -1
  176. package/themes/flat-light.min.js +1 -1
  177. package/themes/index.js +1 -1
  178. package/themes/index.min.js +1 -1
  179. package/themes/layered-dark-panelless.js +1 -1
  180. package/themes/layered-dark-panelless.min.js +1 -1
  181. package/themes/layered-dark.js +1 -1
  182. package/themes/layered-dark.min.js +1 -1
  183. package/themes/layered-light-panelless.js +1 -1
  184. package/themes/layered-light-panelless.min.js +1 -1
  185. package/themes/layered-light.js +1 -1
  186. package/themes/layered-light.min.js +1 -1
  187. package/themes/plain-dark-panelless.js +1 -1
  188. package/themes/plain-dark-panelless.min.js +1 -1
  189. package/themes/plain-dark.js +1 -1
  190. package/themes/plain-dark.min.js +1 -1
  191. package/themes/plain-light-panelless.js +1 -1
  192. package/themes/plain-light-panelless.min.js +1 -1
  193. package/themes/plain-light.js +1 -1
  194. package/themes/plain-light.min.js +1 -1
  195. package/themes/sharp-dark-panelless.js +1 -1
  196. package/themes/sharp-dark-panelless.min.js +1 -1
  197. package/themes/sharp-dark.js +1 -1
  198. package/themes/sharp-dark.min.js +1 -1
  199. package/themes/sharp-light-panelless.js +1 -1
  200. package/themes/sharp-light-panelless.min.js +1 -1
  201. package/themes/sharp-light.js +1 -1
  202. package/themes/sharp-light.min.js +1 -1
  203. package/themes/solid-dark-panelless.js +1 -1
  204. package/themes/solid-dark-panelless.min.js +1 -1
  205. package/themes/solid-dark.js +1 -1
  206. package/themes/solid-dark.min.js +1 -1
  207. package/themes/solid-light-panelless.js +1 -1
  208. package/themes/solid-light-panelless.min.js +1 -1
  209. package/themes/solid-light.js +1 -1
  210. package/themes/solid-light.min.js +1 -1
  211. package/themes/three-dimensional-dark-panelless.js +1 -1
  212. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  213. package/themes/three-dimensional-dark.js +1 -1
  214. package/themes/three-dimensional-dark.min.js +1 -1
  215. package/themes/three-dimensional-light-panelless.js +1 -1
  216. package/themes/three-dimensional-light-panelless.min.js +1 -1
  217. package/themes/three-dimensional-light.js +1 -1
  218. package/themes/three-dimensional-light.min.js +1 -1
  219. package/ts3.4/typings/packages/survey-core/entries/chunks/model.d.ts +2 -1
  220. package/ts3.4/typings/packages/survey-core/src/base-interfaces.d.ts +13 -1
  221. package/ts3.4/typings/packages/survey-core/src/base.d.ts +1 -1
  222. package/ts3.4/typings/packages/survey-core/src/defaultCss/defaultV2Css.d.ts +2 -2
  223. package/ts3.4/typings/packages/survey-core/src/dragdrop/choices.d.ts +2 -1
  224. package/ts3.4/typings/packages/survey-core/src/header.d.ts +1 -0
  225. package/ts3.4/typings/packages/survey-core/src/helpers.d.ts +1 -1
  226. package/ts3.4/typings/packages/survey-core/src/martixBase.d.ts +7 -6
  227. package/ts3.4/typings/packages/survey-core/src/page.d.ts +4 -0
  228. package/ts3.4/typings/packages/survey-core/src/panel.d.ts +5 -4
  229. package/ts3.4/typings/packages/survey-core/src/question.d.ts +13 -6
  230. package/ts3.4/typings/packages/survey-core/src/question_baseselect.d.ts +4 -1
  231. package/ts3.4/typings/packages/survey-core/src/question_comment.d.ts +4 -0
  232. package/ts3.4/typings/packages/survey-core/src/question_custom.d.ts +1 -0
  233. package/ts3.4/typings/packages/survey-core/src/question_matrix.d.ts +9 -1
  234. package/ts3.4/typings/packages/survey-core/src/question_matrixdropdown.d.ts +4 -1
  235. package/ts3.4/typings/packages/survey-core/src/question_matrixdropdownbase.d.ts +24 -3
  236. package/ts3.4/typings/packages/survey-core/src/question_matrixdropdowncolumn.d.ts +1 -0
  237. package/ts3.4/typings/packages/survey-core/src/question_matrixdynamic.d.ts +1 -0
  238. package/ts3.4/typings/packages/survey-core/src/question_multipletext.d.ts +1 -1
  239. package/ts3.4/typings/packages/survey-core/src/question_ranking.d.ts +1 -0
  240. package/ts3.4/typings/packages/survey-core/src/question_rating.d.ts +1 -1
  241. package/ts3.4/typings/packages/survey-core/src/survey-element.d.ts +2 -0
  242. package/ts3.4/typings/packages/survey-core/src/survey.d.ts +3 -4
  243. package/ts3.4/typings/packages/survey-core/src/textPreProcessor.d.ts +2 -2
  244. package/ts3.4/typings/packages/survey-core/src/utils/text-area.d.ts +56 -0
  245. package/ts3.4/typings/packages/survey-core/src/validator.d.ts +59 -16
  246. package/ts3.4/typings/src/defaultCss/cssmodern.d.ts +2 -0
  247. package/ts3.4/typings/src/defaultCss/cssstandard.d.ts +1 -0
  248. package/typings/packages/survey-core/entries/chunks/model.d.ts +2 -1
  249. package/typings/packages/survey-core/src/base-interfaces.d.ts +13 -1
  250. package/typings/packages/survey-core/src/base.d.ts +1 -1
  251. package/typings/packages/survey-core/src/defaultCss/defaultV2Css.d.ts +2 -2
  252. package/typings/packages/survey-core/src/dragdrop/choices.d.ts +2 -1
  253. package/typings/packages/survey-core/src/header.d.ts +1 -0
  254. package/typings/packages/survey-core/src/helpers.d.ts +1 -1
  255. package/typings/packages/survey-core/src/martixBase.d.ts +7 -6
  256. package/typings/packages/survey-core/src/page.d.ts +4 -0
  257. package/typings/packages/survey-core/src/panel.d.ts +5 -4
  258. package/typings/packages/survey-core/src/question.d.ts +13 -6
  259. package/typings/packages/survey-core/src/question_baseselect.d.ts +4 -1
  260. package/typings/packages/survey-core/src/question_comment.d.ts +4 -0
  261. package/typings/packages/survey-core/src/question_custom.d.ts +1 -0
  262. package/typings/packages/survey-core/src/question_matrix.d.ts +9 -1
  263. package/typings/packages/survey-core/src/question_matrixdropdown.d.ts +4 -1
  264. package/typings/packages/survey-core/src/question_matrixdropdownbase.d.ts +25 -3
  265. package/typings/packages/survey-core/src/question_matrixdropdowncolumn.d.ts +1 -0
  266. package/typings/packages/survey-core/src/question_matrixdynamic.d.ts +1 -0
  267. package/typings/packages/survey-core/src/question_multipletext.d.ts +1 -1
  268. package/typings/packages/survey-core/src/question_ranking.d.ts +2 -0
  269. package/typings/packages/survey-core/src/question_rating.d.ts +1 -1
  270. package/typings/packages/survey-core/src/survey-element.d.ts +2 -0
  271. package/typings/packages/survey-core/src/survey.d.ts +3 -4
  272. package/typings/packages/survey-core/src/textPreProcessor.d.ts +2 -2
  273. package/typings/packages/survey-core/src/utils/text-area.d.ts +56 -0
  274. package/typings/packages/survey-core/src/validator.d.ts +60 -16
  275. package/typings/src/defaultCss/cssmodern.d.ts +2 -0
  276. package/typings/src/defaultCss/cssstandard.d.ts +1 -0
package/survey.core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.1
2
+ * surveyjs - Survey JavaScript library v1.12.3
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -962,9 +962,9 @@ module.exports = "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\
962
962
 
963
963
  /***/ "./src/entries/core.ts":
964
964
  /*!*******************************************!*\
965
- !*** ./src/entries/core.ts + 126 modules ***!
965
+ !*** ./src/entries/core.ts + 127 modules ***!
966
966
  \*******************************************/
967
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedErrorRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, InputMaskBase, InputMaskPattern, InputMaskNumeric, InputMaskDateTime, InputMaskCurrency, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, StylesManager, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, createPopupModelWithListModel, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AnimationUtils, AnimationPropertyUtils, AnimationGroupUtils, AnimationProperty, AnimationBoolean, AnimationGroup, AnimationTab, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model */
967
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedErrorRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, prepareElementForVerticalAnimation, cleanHtmlElementAfterAnimation, classesToSelector, InputMaskBase, InputMaskPattern, InputMaskNumeric, InputMaskDateTime, InputMaskCurrency, CssClassBuilder, TextAreaModel, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, StylesManager, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, createPopupModelWithListModel, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AnimationUtils, AnimationPropertyUtils, AnimationGroupUtils, AnimationProperty, AnimationBoolean, AnimationGroup, AnimationTab, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model */
968
968
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
969
969
 
970
970
  "use strict";
@@ -1158,12 +1158,16 @@ __webpack_require__.d(__webpack_exports__, "increaseHeightByContent", function()
1158
1158
  __webpack_require__.d(__webpack_exports__, "createSvg", function() { return /* reexport */ createSvg; });
1159
1159
  __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return /* reexport */ chooseFiles; });
1160
1160
  __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return /* reexport */ sanitizeEditableContent; });
1161
+ __webpack_require__.d(__webpack_exports__, "prepareElementForVerticalAnimation", function() { return /* reexport */ prepareElementForVerticalAnimation; });
1162
+ __webpack_require__.d(__webpack_exports__, "cleanHtmlElementAfterAnimation", function() { return /* reexport */ cleanHtmlElementAfterAnimation; });
1163
+ __webpack_require__.d(__webpack_exports__, "classesToSelector", function() { return /* reexport */ classesToSelector; });
1161
1164
  __webpack_require__.d(__webpack_exports__, "InputMaskBase", function() { return /* reexport */ mask_base_InputMaskBase; });
1162
1165
  __webpack_require__.d(__webpack_exports__, "InputMaskPattern", function() { return /* reexport */ mask_pattern_InputMaskPattern; });
1163
1166
  __webpack_require__.d(__webpack_exports__, "InputMaskNumeric", function() { return /* reexport */ mask_numeric_InputMaskNumeric; });
1164
1167
  __webpack_require__.d(__webpack_exports__, "InputMaskDateTime", function() { return /* reexport */ mask_datetime_InputMaskDateTime; });
1165
1168
  __webpack_require__.d(__webpack_exports__, "InputMaskCurrency", function() { return /* reexport */ mask_currency_InputMaskCurrency; });
1166
1169
  __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return /* reexport */ CssClassBuilder; });
1170
+ __webpack_require__.d(__webpack_exports__, "TextAreaModel", function() { return /* reexport */ text_area_TextAreaModel; });
1167
1171
  __webpack_require__.d(__webpack_exports__, "surveyCss", function() { return /* reexport */ surveyCss; });
1168
1172
  __webpack_require__.d(__webpack_exports__, "defaultV2Css", function() { return /* reexport */ defaultV2Css; });
1169
1173
  __webpack_require__.d(__webpack_exports__, "defaultV2ThemeName", function() { return /* reexport */ defaultV2ThemeName; });
@@ -1597,7 +1601,7 @@ var helpers_Helpers = /** @class */ (function () {
1597
1601
  var value = newValue ? newValue.length : "0";
1598
1602
  return [value, maxLength].join("/");
1599
1603
  };
1600
- Helpers.getNumberByIndex = function (index, startIndexStr) {
1604
+ Helpers.getNumberByIndex = function (index, startIndexStr, parentIndex) {
1601
1605
  if (index < 0)
1602
1606
  return "";
1603
1607
  var startIndex = 1;
@@ -1606,16 +1610,19 @@ var helpers_Helpers = /** @class */ (function () {
1606
1610
  var isNumeric = true;
1607
1611
  var strIndex = "A";
1608
1612
  var str = "";
1613
+ var hasDigitFunc = function (str) {
1614
+ if (!str)
1615
+ return false;
1616
+ for (var i = 0; i < str.length; i++) {
1617
+ if (Helpers.isCharDigit(str[i]))
1618
+ return true;
1619
+ }
1620
+ return false;
1621
+ };
1609
1622
  if (!!startIndexStr) {
1610
1623
  str = startIndexStr;
1611
1624
  var ind = str.length - 1;
1612
- var hasDigit = false;
1613
- for (var i = 0; i < str.length; i++) {
1614
- if (Helpers.isCharDigit(str[i])) {
1615
- hasDigit = true;
1616
- break;
1617
- }
1618
- }
1625
+ var hasDigit = hasDigitFunc(str);
1619
1626
  var checkLetter = function () {
1620
1627
  return ((hasDigit && !Helpers.isCharDigit(str[ind])) ||
1621
1628
  Helpers.isCharNotLetterAndDigit(str[ind]));
@@ -1645,6 +1652,9 @@ var helpers_Helpers = /** @class */ (function () {
1645
1652
  postfix = newPostfix;
1646
1653
  }
1647
1654
  }
1655
+ if (parentIndex > -1 && hasDigitFunc(prefix)) {
1656
+ prefix = this.getNumberByIndex(parentIndex, prefix);
1657
+ }
1648
1658
  if (isNumeric) {
1649
1659
  var val = (index + startIndex).toString();
1650
1660
  while (val.length < strIndex.length)
@@ -1779,7 +1789,7 @@ var helpers_Helpers = /** @class */ (function () {
1779
1789
  return Helpers.convertDateTimeToString(val);
1780
1790
  return Helpers.convertDateToString(val);
1781
1791
  }
1782
- return val;
1792
+ return this.getUnbindValue(val);
1783
1793
  };
1784
1794
  Helpers.compareVerions = function (ver1, ver2) {
1785
1795
  if (!ver1 && !ver2)
@@ -12665,7 +12675,7 @@ var survey_element_SurveyElementCore = /** @class */ (function (_super) {
12665
12675
  return this.getLocalizableStringText("title", this.getDefaultTitleValue());
12666
12676
  },
12667
12677
  set: function (val) {
12668
- this.setLocalizableStringText("title", val);
12678
+ this.setTitleValue(val);
12669
12679
  },
12670
12680
  enumerable: false,
12671
12681
  configurable: true
@@ -12678,6 +12688,9 @@ var survey_element_SurveyElementCore = /** @class */ (function (_super) {
12678
12688
  configurable: true
12679
12689
  });
12680
12690
  SurveyElementCore.prototype.getDefaultTitleValue = function () { return undefined; };
12691
+ SurveyElementCore.prototype.setTitleValue = function (val) {
12692
+ this.setLocalizableStringText("title", val);
12693
+ };
12681
12694
  SurveyElementCore.prototype.updateDescriptionVisibility = function (newDescription) {
12682
12695
  var showPlaceholder = false;
12683
12696
  if (this.isDesignMode) {
@@ -13376,6 +13389,14 @@ var survey_element_SurveyElement = /** @class */ (function (_super) {
13376
13389
  enumerable: false,
13377
13390
  configurable: true
13378
13391
  });
13392
+ Object.defineProperty(SurveyElement.prototype, "cssRequiredText", {
13393
+ get: function () {
13394
+ var css = this.cssClasses;
13395
+ return css.requiredText || (css.panel && css.panel.requiredText);
13396
+ },
13397
+ enumerable: false,
13398
+ configurable: true
13399
+ });
13379
13400
  SurveyElement.prototype.calcCssClasses = function (css) { return undefined; };
13380
13401
  SurveyElement.prototype.updateElementCssCore = function (cssClasses) { };
13381
13402
  Object.defineProperty(SurveyElement.prototype, "cssError", {
@@ -14808,9 +14829,131 @@ function navigateToUrl(url) {
14808
14829
  function wrapUrlForBackgroundImage(url) {
14809
14830
  return !!url ? ["url(", url, ")"].join("") : "";
14810
14831
  }
14811
- //new-name: old-name
14832
+ // new-name: old-name
14812
14833
  var renamedIcons = {
14813
- "folder": "chooseFile"
14834
+ "flip-24x24": "changecamera",
14835
+ "toolbox-file-24x24": "choosefile",
14836
+ "clear-24x24": "clear",
14837
+ "close-24x24": "closecamera",
14838
+ "file-72x72": "defaultfile",
14839
+ "chevronleft-16x16": "left",
14840
+ "plus-32x32": "modernbooleancheckchecked",
14841
+ "minus-32x32": "modernbooleancheckunchecked",
14842
+ "more-24x24": "more",
14843
+ "navmenu-24x24": "navmenu_24x24",
14844
+ "error-24x24": "removefile",
14845
+ "camera-32x32": "takepicture",
14846
+ "camera-24x24": "takepicture_24x24",
14847
+ "pg-quiz-24x24": "timercircle",
14848
+ "check-16x16": "v2check",
14849
+ "check-24x24": "v2check_24x24",
14850
+ "restoredown-16x16": "back-to-panel_16x16",
14851
+ "clear-16x16": "clear_16x16",
14852
+ "close-16x16": "close_16x16",
14853
+ "collapsedetails-16x16": "collapsedetail",
14854
+ "expanddetails-16x16": "expanddetail",
14855
+ "maximize-16x16": "full-screen_16x16",
14856
+ "loading-48x48": "loading",
14857
+ "minimize-16x16": "minimize_16x16",
14858
+ "chevronright-16x16": "next_16x16",
14859
+ "noimage-48x48": "no-image",
14860
+ "reorder-24x24": "ranking-arrows",
14861
+ "fullsize-16x16": "restore_16x16",
14862
+ "search-24x24": "search",
14863
+ "smiley-rate5-24x24": "average",
14864
+ "smiley-rate9-24x24": "excellent",
14865
+ "smiley-rate7-24x24": "good",
14866
+ "smiley-rate6-24x24": "normal",
14867
+ "smiley-rate4-24x24": "not-good",
14868
+ "smiley-rate10-24x24": "perfect",
14869
+ "smiley-rate3-24x24": "poor",
14870
+ "smiley-rate1-24x24": "terrible",
14871
+ "smiley-rate8-24x24": "very-good",
14872
+ "smiley-rate2-24x24": "very-poor",
14873
+ "add-16x16": "add_16x16",
14874
+ "add-24x24": "add_24x24",
14875
+ "warning-24x24": "alert_24x24",
14876
+ "apply-24x24": "apply",
14877
+ "arrowdown-24x24": "arrow-down",
14878
+ "arrowleft-24x24": "arrow-left",
14879
+ "arrowleft-16x16": "arrow-left_16x16",
14880
+ "arrowright-24x24": "arrow-right",
14881
+ "arrowright-16x16": "arrow-right_16x16",
14882
+ "arrowup-24x24": "arrow-up",
14883
+ "toolbox-boolean-24x24": "boolean",
14884
+ "speechbubble-16x16": "change-question-type_16x16",
14885
+ "toolbox-checkbox-24x24": "checkbox",
14886
+ "minusbox-16x16": "collapse-detail_16x16",
14887
+ "collapse-pg-24x24": "collapse-panel",
14888
+ "collapse-16x16": "collapse_16x16",
14889
+ "dropper-16x16": "color-picker",
14890
+ "toolbox-longtext-24x24": "comment",
14891
+ "wrench-24x24": "config",
14892
+ "copy-24x24": "copy",
14893
+ "toolbox-customquestion-24x24": "default",
14894
+ "delete-16x16": "delete_16x16",
14895
+ "delete-24x24": "delete_24x24",
14896
+ "hidehint-24x24": "description-hide",
14897
+ "hint-24x24": "description",
14898
+ "desktop-24x24": "device-desktop",
14899
+ "phone-24x24": "device-phone",
14900
+ "rotate-24x24": "device-rotate",
14901
+ "tablet-24x24": "device-tablet",
14902
+ "download-24x24": "download",
14903
+ "drag-24x24": "drag-area-indicator",
14904
+ "draghorizontal-24x16": "drag-area-indicator_24x16",
14905
+ "chevrondown-24x24": "drop-down-arrow",
14906
+ "chevrondown-16x16": "drop-down-arrow_16x16",
14907
+ "toolbox-dropdown-24x24": "dropdown",
14908
+ "copy-16x16": "duplicate_16x16",
14909
+ "edit-24x24": "edit",
14910
+ "edit-16x16": "edit_16x16",
14911
+ "finishedit-24x24": "editing-finish",
14912
+ "error-16x16": "error",
14913
+ "plusbox-16x16": "expand-detail_16x16",
14914
+ "expand-pg-24x24": "expand-panel",
14915
+ "expand-16x16": "expand_16x16",
14916
+ "toolbox-expression-24x24": "expression",
14917
+ "textedit-24x24": "fast-entry",
14918
+ "fix-24x24": "fix",
14919
+ "toolbox-html-24x24": "html",
14920
+ "toolbox-image-24x24": "image",
14921
+ "toolbox-imagepicker-24x24": "imagepicker",
14922
+ "import-24x24": "import",
14923
+ "invisible-24x24": "invisible-items",
14924
+ "language-24x24": "language",
14925
+ "folder-24x24": "load",
14926
+ "collapsepage-16x16": "logic-collapse",
14927
+ "expandpage-16x16": "logic-expand",
14928
+ "image-48x48": "logo",
14929
+ "toolbox-matrix-24x24": "matrix",
14930
+ "toolbox-multimatrix-24x24": "matrixdropdown",
14931
+ "toolbox-dynamicmatrix-24x24": "matrixdynamic",
14932
+ "toolbox-multipletext-24x24": "multipletext",
14933
+ "toolbox-panel-24x24": "panel",
14934
+ "toolbox-dynamicpanel-24x24": "paneldynamic",
14935
+ "preview-24x24": "preview",
14936
+ "toolbox-radiogroup-24x24": "radiogroup",
14937
+ "toolbox-ranking-24x24": "ranking",
14938
+ "toolbox-rating-24x24": "rating",
14939
+ "redo-24x24": "redo",
14940
+ "remove-16x16": "remove_16x16",
14941
+ "required-16x16": "required",
14942
+ "restore-24x24": "reset",
14943
+ "save-24x24": "save",
14944
+ "selectpage-24x24": "select-page",
14945
+ "settings-24x24": "settings",
14946
+ "settings-16x16": "settings_16x16",
14947
+ "toolbox-signature-24x24": "signaturepad",
14948
+ "switchon-16x16": "switch-active_16x16",
14949
+ "switchoff-16x16": "switch-inactive_16x16",
14950
+ "toolbox-tagbox-24x24": "tagbox",
14951
+ "toolbox-singleline-24x24": "text",
14952
+ "theme-24x24": "theme",
14953
+ "toolbox-24x24": "toolbox",
14954
+ "undo-24x24": "undo",
14955
+ "visible-24x24": "visible",
14956
+ "wand-24x24": "wizard"
14814
14957
  };
14815
14958
  function getIconNameFromProxy(iconName) {
14816
14959
  if (!iconName)
@@ -16400,7 +16543,9 @@ var ValidatorResult = /** @class */ (function () {
16400
16543
  }());
16401
16544
 
16402
16545
  /**
16403
- * Base SurveyJS validator class.
16546
+ * A base class for all classes that implement validators.
16547
+ *
16548
+ * [View Demo](https://surveyjs.io/form-library/examples/javascript-form-validation/ (linkStyle))
16404
16549
  */
16405
16550
  var validator_SurveyValidator = /** @class */ (function (_super) {
16406
16551
  validator_extends(SurveyValidator, _super);
@@ -16416,6 +16561,9 @@ var validator_SurveyValidator = /** @class */ (function (_super) {
16416
16561
  : null;
16417
16562
  };
16418
16563
  Object.defineProperty(SurveyValidator.prototype, "text", {
16564
+ /**
16565
+ * An error message to display when a value fails validation.
16566
+ */
16419
16567
  get: function () {
16420
16568
  return this.getLocalizableStringText("text");
16421
16569
  },
@@ -16556,7 +16704,9 @@ var ValidatorRunner = /** @class */ (function () {
16556
16704
  }());
16557
16705
 
16558
16706
  /**
16559
- * Validate numeric values.
16707
+ * A class that implements a validator for numeric values.
16708
+ *
16709
+ * [View Demo](https://surveyjs.io/form-library/examples/javascript-form-validation/ (linkStyle))
16560
16710
  */
16561
16711
  var validator_NumericValidator = /** @class */ (function (_super) {
16562
16712
  validator_extends(NumericValidator, _super);
@@ -16605,7 +16755,9 @@ var validator_NumericValidator = /** @class */ (function (_super) {
16605
16755
  };
16606
16756
  Object.defineProperty(NumericValidator.prototype, "minValue", {
16607
16757
  /**
16608
- * The minValue property.
16758
+ * A minimum allowed numeric value.
16759
+ *
16760
+ * [View Demo](https://surveyjs.io/form-library/examples/javascript-form-validation/ (linkStyle))
16609
16761
  */
16610
16762
  get: function () {
16611
16763
  return this.getPropertyValue("minValue");
@@ -16618,7 +16770,9 @@ var validator_NumericValidator = /** @class */ (function (_super) {
16618
16770
  });
16619
16771
  Object.defineProperty(NumericValidator.prototype, "maxValue", {
16620
16772
  /**
16621
- * The maxValue property.
16773
+ * A maximum allowed numeric value.
16774
+ *
16775
+ * [View Demo](https://surveyjs.io/form-library/examples/javascript-form-validation/ (linkStyle))
16622
16776
  */
16623
16777
  get: function () {
16624
16778
  return this.getPropertyValue("maxValue");
@@ -16633,7 +16787,9 @@ var validator_NumericValidator = /** @class */ (function (_super) {
16633
16787
  }(validator_SurveyValidator));
16634
16788
 
16635
16789
  /**
16636
- * Validate text values.
16790
+ * A class that implements a validator for text values.
16791
+ *
16792
+ * [View Demo](https://surveyjs.io/form-library/examples/javascript-form-validation/ (linkStyle))
16637
16793
  */
16638
16794
  var TextValidator = /** @class */ (function (_super) {
16639
16795
  validator_extends(TextValidator, _super);
@@ -16672,7 +16828,11 @@ var TextValidator = /** @class */ (function (_super) {
16672
16828
  };
16673
16829
  Object.defineProperty(TextValidator.prototype, "minLength", {
16674
16830
  /**
16675
- * The minLength property.
16831
+ * The minimum length of a text value measured in characters.
16832
+ *
16833
+ * Default value: 0
16834
+ *
16835
+ * [View Demo](https://surveyjs.io/form-library/examples/javascript-form-validation/ (linkStyle))
16676
16836
  */
16677
16837
  get: function () {
16678
16838
  return this.getPropertyValue("minLength");
@@ -16685,7 +16845,11 @@ var TextValidator = /** @class */ (function (_super) {
16685
16845
  });
16686
16846
  Object.defineProperty(TextValidator.prototype, "maxLength", {
16687
16847
  /**
16688
- * The maxLength property.
16848
+ * The maximum length of a text value measured in characters.
16849
+ *
16850
+ * Default value: 0 (unlimited)
16851
+ *
16852
+ * [View Demo](https://surveyjs.io/form-library/examples/javascript-form-validation/ (linkStyle))
16689
16853
  */
16690
16854
  get: function () {
16691
16855
  return this.getPropertyValue("maxLength");
@@ -16698,7 +16862,9 @@ var TextValidator = /** @class */ (function (_super) {
16698
16862
  });
16699
16863
  Object.defineProperty(TextValidator.prototype, "allowDigits", {
16700
16864
  /**
16701
- * The allowDigits property.
16865
+ * Specifies whether a text value can include numerical digits.
16866
+ *
16867
+ * Default value: `true`
16702
16868
  */
16703
16869
  get: function () {
16704
16870
  return this.getPropertyValue("allowDigits");
@@ -16713,7 +16879,9 @@ var TextValidator = /** @class */ (function (_super) {
16713
16879
  }(validator_SurveyValidator));
16714
16880
 
16715
16881
  /**
16716
- * Validates the number of answers.
16882
+ * A class that implements answer count validation in the question types that can have multiple values (for instance, [Checkboxes](https://surveyjs.io/form-library/documentation/api-reference/checkbox-question-model)).
16883
+ *
16884
+ * [View Demo](https://surveyjs.io/form-library/examples/javascript-form-validation/ (linkStyle))
16717
16885
  */
16718
16886
  var AnswerCountValidator = /** @class */ (function (_super) {
16719
16887
  validator_extends(AnswerCountValidator, _super);
@@ -16750,7 +16918,9 @@ var AnswerCountValidator = /** @class */ (function (_super) {
16750
16918
  };
16751
16919
  Object.defineProperty(AnswerCountValidator.prototype, "minCount", {
16752
16920
  /**
16753
- * The minCount property.
16921
+ * A minimum number of selected answers.
16922
+ *
16923
+ * [View Demo](https://surveyjs.io/form-library/examples/javascript-form-validation/ (linkStyle))
16754
16924
  */
16755
16925
  get: function () {
16756
16926
  return this.getPropertyValue("minCount");
@@ -16763,7 +16933,9 @@ var AnswerCountValidator = /** @class */ (function (_super) {
16763
16933
  });
16764
16934
  Object.defineProperty(AnswerCountValidator.prototype, "maxCount", {
16765
16935
  /**
16766
- * The maxCount property.
16936
+ * A maximum number of selected answers.
16937
+ *
16938
+ * [View Demo](https://surveyjs.io/form-library/examples/javascript-form-validation/ (linkStyle))
16767
16939
  */
16768
16940
  get: function () {
16769
16941
  return this.getPropertyValue("maxCount");
@@ -16778,7 +16950,7 @@ var AnswerCountValidator = /** @class */ (function (_super) {
16778
16950
  }(validator_SurveyValidator));
16779
16951
 
16780
16952
  /**
16781
- * Use it to validate the text by regular expressions.
16953
+ * A class that implements validation using regular expressions.
16782
16954
  *
16783
16955
  * [View Demo](https://surveyjs.io/form-library/examples/javascript-form-validation/ (linkStyle))
16784
16956
  */
@@ -16816,7 +16988,9 @@ var RegexValidator = /** @class */ (function (_super) {
16816
16988
  };
16817
16989
  Object.defineProperty(RegexValidator.prototype, "regex", {
16818
16990
  /**
16819
- * The regex property.
16991
+ * A regular expression used to validate values.
16992
+ *
16993
+ * [View Demo](https://surveyjs.io/form-library/examples/javascript-form-validation/ (linkStyle))
16820
16994
  */
16821
16995
  get: function () {
16822
16996
  return this.getPropertyValue("regex");
@@ -16827,24 +17001,39 @@ var RegexValidator = /** @class */ (function (_super) {
16827
17001
  enumerable: false,
16828
17002
  configurable: true
16829
17003
  });
16830
- Object.defineProperty(RegexValidator.prototype, "insensitive", {
17004
+ Object.defineProperty(RegexValidator.prototype, "caseInsensitive", {
17005
+ /**
17006
+ * Specifies whether uppercase and lowercase letters must be treated as distinct or equivalent when validating values.
17007
+ *
17008
+ * Default value: `false` (uppercase and lowercase letters are treated as distinct)
17009
+ */
16831
17010
  get: function () {
16832
- return this.getPropertyValue("insensitive");
17011
+ return this.getPropertyValue("caseInsensitive");
16833
17012
  },
16834
17013
  set: function (val) {
16835
- this.setPropertyValue("insensitive", val);
17014
+ this.setPropertyValue("caseInsensitive", val);
17015
+ },
17016
+ enumerable: false,
17017
+ configurable: true
17018
+ });
17019
+ Object.defineProperty(RegexValidator.prototype, "insensitive", {
17020
+ get: function () { return this.caseInsensitive; },
17021
+ set: function (val) {
17022
+ this.caseInsensitive = val;
16836
17023
  },
16837
17024
  enumerable: false,
16838
17025
  configurable: true
16839
17026
  });
16840
17027
  RegexValidator.prototype.createRegExp = function () {
16841
- return new RegExp(this.regex, this.insensitive ? "i" : "");
17028
+ return new RegExp(this.regex, this.caseInsensitive ? "i" : "");
16842
17029
  };
16843
17030
  return RegexValidator;
16844
17031
  }(validator_SurveyValidator));
16845
17032
 
16846
17033
  /**
16847
- * Validate e-mail address in the text input
17034
+ * A class that implements a validator for e-mail addresses.
17035
+ *
17036
+ * [View Demo](https://surveyjs.io/form-library/examples/javascript-form-validation/ (linkStyle))
16848
17037
  */
16849
17038
  var EmailValidator = /** @class */ (function (_super) {
16850
17039
  validator_extends(EmailValidator, _super);
@@ -16873,7 +17062,9 @@ var EmailValidator = /** @class */ (function (_super) {
16873
17062
  }(validator_SurveyValidator));
16874
17063
 
16875
17064
  /**
16876
- * Show error if expression returns false
17065
+ * A class that implements validation using [expressions](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions).
17066
+ *
17067
+ * [View Demo](https://surveyjs.io/form-library/examples/javascript-form-validation/ (linkStyle))
16877
17068
  */
16878
17069
  var validator_ExpressionValidator = /** @class */ (function (_super) {
16879
17070
  validator_extends(ExpressionValidator, _super);
@@ -16952,7 +17143,9 @@ var validator_ExpressionValidator = /** @class */ (function (_super) {
16952
17143
  };
16953
17144
  Object.defineProperty(ExpressionValidator.prototype, "expression", {
16954
17145
  /**
16955
- * The expression property.
17146
+ * A Boolean [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions). If it evaluates to `false`, validation fails.
17147
+ *
17148
+ * [View Demo](https://surveyjs.io/form-library/examples/javascript-form-validation/ (linkStyle))
16956
17149
  */
16957
17150
  get: function () {
16958
17151
  return this.getPropertyValue("expression");
@@ -16980,7 +17173,7 @@ Serializer.addClass("textvalidator", [{ name: "minLength:number", default: 0 },
16980
17173
  Serializer.addClass("answercountvalidator", ["minCount:number", "maxCount:number"], function () {
16981
17174
  return new AnswerCountValidator();
16982
17175
  }, "surveyvalidator");
16983
- Serializer.addClass("regexvalidator", ["regex", { name: "insensitive:boolean", visible: false }], function () {
17176
+ Serializer.addClass("regexvalidator", ["regex", { name: "caseInsensitive:boolean", alternativeName: "insensitive" }], function () {
16984
17177
  return new RegexValidator();
16985
17178
  }, "surveyvalidator");
16986
17179
  Serializer.addClass("emailvalidator", [], function () {
@@ -17210,6 +17403,188 @@ var RendererFactory = /** @class */ (function () {
17210
17403
  }());
17211
17404
 
17212
17405
 
17406
+ // CONCATENATED MODULE: ./packages/survey-core/src/utils/text-area.ts
17407
+
17408
+ var text_area_TextAreaModel = /** @class */ (function () {
17409
+ function TextAreaModel(options) {
17410
+ var _this = this;
17411
+ this.options = options;
17412
+ this.onPropertyChangedCallback = function () {
17413
+ if (_this.element) {
17414
+ _this.element.value = _this.getTextValue();
17415
+ if (_this.autoGrow) {
17416
+ increaseHeightByContent(_this.element);
17417
+ }
17418
+ }
17419
+ };
17420
+ this.question.registerFunctionOnPropertyValueChanged(this.options.propertyName, this.onPropertyChangedCallback, "__textarea");
17421
+ }
17422
+ TextAreaModel.prototype.setElement = function (element) {
17423
+ if (!!element) {
17424
+ this.element = element;
17425
+ }
17426
+ };
17427
+ TextAreaModel.prototype.getTextValue = function () {
17428
+ if (!!this.options.getTextValue)
17429
+ return this.options.getTextValue();
17430
+ return "";
17431
+ };
17432
+ TextAreaModel.prototype.onTextAreaChange = function (event) {
17433
+ if (!!this.options.onTextAreaChange)
17434
+ this.options.onTextAreaChange(event);
17435
+ };
17436
+ TextAreaModel.prototype.onTextAreaInput = function (event) {
17437
+ if (!!this.options.onTextAreaInput)
17438
+ this.options.onTextAreaInput(event);
17439
+ if (this.element && this.autoGrow) {
17440
+ increaseHeightByContent(this.element);
17441
+ }
17442
+ };
17443
+ TextAreaModel.prototype.onTextAreaKeyDown = function (event) {
17444
+ if (!!this.options.onTextAreaKeyDown)
17445
+ this.options.onTextAreaKeyDown(event);
17446
+ };
17447
+ TextAreaModel.prototype.onTextAreaBlur = function (event) {
17448
+ this.onTextAreaChange(event);
17449
+ if (!!this.options.onTextAreaBlur)
17450
+ this.options.onTextAreaBlur(event);
17451
+ };
17452
+ TextAreaModel.prototype.onTextAreaFocus = function (event) {
17453
+ if (!!this.options.onTextAreaFocus)
17454
+ this.options.onTextAreaFocus(event);
17455
+ };
17456
+ Object.defineProperty(TextAreaModel.prototype, "question", {
17457
+ get: function () {
17458
+ return this.options.question;
17459
+ },
17460
+ enumerable: false,
17461
+ configurable: true
17462
+ });
17463
+ Object.defineProperty(TextAreaModel.prototype, "id", {
17464
+ get: function () {
17465
+ return this.options.id();
17466
+ },
17467
+ enumerable: false,
17468
+ configurable: true
17469
+ });
17470
+ Object.defineProperty(TextAreaModel.prototype, "placeholder", {
17471
+ get: function () {
17472
+ return this.options.placeholder();
17473
+ },
17474
+ enumerable: false,
17475
+ configurable: true
17476
+ });
17477
+ Object.defineProperty(TextAreaModel.prototype, "className", {
17478
+ get: function () {
17479
+ return this.options.className();
17480
+ },
17481
+ enumerable: false,
17482
+ configurable: true
17483
+ });
17484
+ Object.defineProperty(TextAreaModel.prototype, "maxLength", {
17485
+ get: function () {
17486
+ if (this.options.maxLength)
17487
+ return this.options.maxLength();
17488
+ },
17489
+ enumerable: false,
17490
+ configurable: true
17491
+ });
17492
+ Object.defineProperty(TextAreaModel.prototype, "autoGrow", {
17493
+ get: function () {
17494
+ if (this.options.autoGrow)
17495
+ return this.options.autoGrow();
17496
+ },
17497
+ enumerable: false,
17498
+ configurable: true
17499
+ });
17500
+ Object.defineProperty(TextAreaModel.prototype, "rows", {
17501
+ get: function () {
17502
+ if (this.options.rows)
17503
+ return this.options.rows();
17504
+ },
17505
+ enumerable: false,
17506
+ configurable: true
17507
+ });
17508
+ Object.defineProperty(TextAreaModel.prototype, "cols", {
17509
+ get: function () {
17510
+ if (this.options.cols)
17511
+ return this.options.cols();
17512
+ },
17513
+ enumerable: false,
17514
+ configurable: true
17515
+ });
17516
+ Object.defineProperty(TextAreaModel.prototype, "isDisabledAttr", {
17517
+ get: function () {
17518
+ return this.options.isDisabledAttr();
17519
+ },
17520
+ enumerable: false,
17521
+ configurable: true
17522
+ });
17523
+ Object.defineProperty(TextAreaModel.prototype, "isReadOnlyAttr", {
17524
+ get: function () {
17525
+ if (this.options.isReadOnlyAttr)
17526
+ return this.options.isReadOnlyAttr();
17527
+ },
17528
+ enumerable: false,
17529
+ configurable: true
17530
+ });
17531
+ Object.defineProperty(TextAreaModel.prototype, "ariaRequired", {
17532
+ get: function () {
17533
+ if (this.options.ariaRequired)
17534
+ return this.options.ariaRequired();
17535
+ },
17536
+ enumerable: false,
17537
+ configurable: true
17538
+ });
17539
+ Object.defineProperty(TextAreaModel.prototype, "ariaLabel", {
17540
+ get: function () {
17541
+ if (this.options.ariaLabel)
17542
+ return this.options.ariaLabel();
17543
+ },
17544
+ enumerable: false,
17545
+ configurable: true
17546
+ });
17547
+ Object.defineProperty(TextAreaModel.prototype, "ariaInvalid", {
17548
+ get: function () {
17549
+ if (this.options.ariaInvalid)
17550
+ return this.options.ariaInvalid();
17551
+ },
17552
+ enumerable: false,
17553
+ configurable: true
17554
+ });
17555
+ Object.defineProperty(TextAreaModel.prototype, "ariaLabelledBy", {
17556
+ get: function () {
17557
+ if (this.options.ariaLabelledBy)
17558
+ return this.options.ariaLabelledBy();
17559
+ },
17560
+ enumerable: false,
17561
+ configurable: true
17562
+ });
17563
+ Object.defineProperty(TextAreaModel.prototype, "ariaDescribedBy", {
17564
+ get: function () {
17565
+ if (this.options.ariaDescribedBy)
17566
+ return this.options.ariaDescribedBy();
17567
+ },
17568
+ enumerable: false,
17569
+ configurable: true
17570
+ });
17571
+ Object.defineProperty(TextAreaModel.prototype, "ariaErrormessage", {
17572
+ get: function () {
17573
+ if (this.options.ariaErrormessage)
17574
+ return this.options.ariaErrormessage();
17575
+ },
17576
+ enumerable: false,
17577
+ configurable: true
17578
+ });
17579
+ TextAreaModel.prototype.dispose = function () {
17580
+ if (this.question) {
17581
+ this.question.unRegisterFunctionOnPropertyValueChanged(this.options.propertyName, "__textarea");
17582
+ }
17583
+ };
17584
+ return TextAreaModel;
17585
+ }());
17586
+
17587
+
17213
17588
  // CONCATENATED MODULE: ./packages/survey-core/src/question.ts
17214
17589
  var question_extends = (undefined && undefined.__extends) || (function () {
17215
17590
  var extendStatics = function (d, b) {
@@ -17247,6 +17622,7 @@ var question_decorate = (undefined && undefined.__decorate) || function (decorat
17247
17622
 
17248
17623
 
17249
17624
 
17625
+
17250
17626
  var TriggerExpressionInfo = /** @class */ (function () {
17251
17627
  function TriggerExpressionInfo(name, canRun, doComplete) {
17252
17628
  this.name = name;
@@ -17289,6 +17665,7 @@ var question_Question = /** @class */ (function (_super) {
17289
17665
  _this.createNewArray("validators", function (validator) {
17290
17666
  validator.errorOwner = _this;
17291
17667
  });
17668
+ _this.commentTextAreaModel = new text_area_TextAreaModel(_this.getCommentTextAreaOptions());
17292
17669
  _this.addExpressionProperty("visibleIf", function (obj, res) { _this.visible = res === true; }, function (obj) { return !_this.areInvisibleElementsShowing; });
17293
17670
  _this.addExpressionProperty("enableIf", function (obj, res) { _this.readOnly = res === false; });
17294
17671
  _this.addExpressionProperty("requiredIf", function (obj, res) { _this.isRequired = res === true; });
@@ -17329,6 +17706,26 @@ var question_Question = /** @class */ (function (_super) {
17329
17706
  Question.getQuestionId = function () {
17330
17707
  return "sq_" + Question.questionCounter++;
17331
17708
  };
17709
+ Question.prototype.getCommentTextAreaOptions = function () {
17710
+ var _this = this;
17711
+ var options = {
17712
+ question: this,
17713
+ id: function () { return _this.commentId; },
17714
+ propertyName: "comment",
17715
+ className: function () { return _this.cssClasses.comment; },
17716
+ placeholder: function () { return _this.renderedCommentPlaceholder; },
17717
+ isDisabledAttr: function () { return _this.isInputReadOnly || false; },
17718
+ rows: function () { return _this.commentAreaRows; },
17719
+ autoGrow: function () { return _this.autoGrowComment; },
17720
+ maxLength: function () { return _this.getOthersMaxLength(); },
17721
+ ariaRequired: function () { return _this.a11y_input_ariaRequired; },
17722
+ ariaLabel: function () { return _this.a11y_input_ariaLabel; },
17723
+ getTextValue: function () { return _this.comment; },
17724
+ onTextAreaChange: function (e) { _this.onCommentChange(e); },
17725
+ onTextAreaInput: function (e) { _this.onCommentInput(e); },
17726
+ };
17727
+ return options;
17728
+ };
17332
17729
  Question.prototype.isReadOnlyRenderDiv = function () {
17333
17730
  return this.isReadOnly && settings.readOnly.commentRenderMode === "div";
17334
17731
  };
@@ -18251,13 +18648,6 @@ var question_Question = /** @class */ (function (_super) {
18251
18648
  configurable: true
18252
18649
  });
18253
18650
  Question.prototype.updateCommentElements = function () {
18254
- if (!this.autoGrowComment || !Array.isArray(this.commentElements))
18255
- return;
18256
- for (var i = 0; i < this.commentElements.length; i++) {
18257
- var el = this.commentElements[i];
18258
- if (el)
18259
- increaseHeightByContent(el);
18260
- }
18261
18651
  };
18262
18652
  Question.prototype.onCommentInput = function (event) {
18263
18653
  if (this.isInputTextUpdate) {
@@ -18934,6 +19324,8 @@ var question_Question = /** @class */ (function (_super) {
18934
19324
  * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.
18935
19325
  *
18936
19326
  * Refer to the following help topic for more information: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#conditional-visibility).
19327
+ *
19328
+ * [View Demo](https://surveyjs.io/form-library/examples/how-to-conditionally-make-input-field-read-only/ (linkStyle))
18937
19329
  * @see readOnly
18938
19330
  * @see isReadOnly
18939
19331
  */
@@ -18959,6 +19351,20 @@ var question_Question = /** @class */ (function (_super) {
18959
19351
  this.runDefaultValueExpression(this.defaultValueRunner, values, properties);
18960
19352
  }
18961
19353
  };
19354
+ Object.defineProperty(Question.prototype, "isInDesignMode", {
19355
+ get: function () {
19356
+ return !this.isContentElement && this.isDesignMode;
19357
+ },
19358
+ enumerable: false,
19359
+ configurable: true
19360
+ });
19361
+ Object.defineProperty(Question.prototype, "isInDesignModeV2", {
19362
+ get: function () {
19363
+ return !this.isContentElement && this.isDesignModeV2;
19364
+ },
19365
+ enumerable: false,
19366
+ configurable: true
19367
+ });
18962
19368
  Object.defineProperty(Question.prototype, "no", {
18963
19369
  /**
18964
19370
  * A question number or letter (depends on the `questionStartIndex` property of the question container (panel, page, or survey)).
@@ -18976,9 +19382,11 @@ var question_Question = /** @class */ (function (_super) {
18976
19382
  configurable: true
18977
19383
  });
18978
19384
  Question.prototype.calcNo = function () {
19385
+ var _a;
18979
19386
  if (!this.hasTitle || this.hideNumber)
18980
19387
  return "";
18981
- var no = helpers_Helpers.getNumberByIndex(this.visibleIndex, this.getStartIndex());
19388
+ var parentIndex = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.visibleIndex;
19389
+ var no = helpers_Helpers.getNumberByIndex(this.visibleIndex, this.getStartIndex(), parentIndex);
18982
19390
  if (!!this.survey) {
18983
19391
  no = this.survey.getUpdatedQuestionNo(this, no);
18984
19392
  }
@@ -19354,11 +19762,11 @@ var question_Question = /** @class */ (function (_super) {
19354
19762
  });
19355
19763
  Object.defineProperty(Question.prototype, "resetValueIf", {
19356
19764
  /**
19357
- * A Boolean expression. If it evaluates to `true`, the question value is reset to [default](#defaultValue).
19765
+ * A Boolean [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions). If it evaluates to `true`, the question value is reset to [default](#defaultValue).
19358
19766
  *
19359
19767
  * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.
19360
19768
  *
19361
- * [Expressions](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions (linkStyle))
19769
+ * [View Demo](https://surveyjs.io/form-library/examples/set-question-value-dynamically/ (linkStyle))
19362
19770
  * @see setValueIf
19363
19771
  */
19364
19772
  get: function () {
@@ -19372,11 +19780,11 @@ var question_Question = /** @class */ (function (_super) {
19372
19780
  });
19373
19781
  Object.defineProperty(Question.prototype, "setValueIf", {
19374
19782
  /**
19375
- * A Boolean expression. If it evaluates to `true`, the question value is set to a value calculated using the [`setValueExpression`](#setValueExpression).
19783
+ * A Boolean [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions). If it evaluates to `true`, the question value is set to a value calculated using the [`setValueExpression`](#setValueExpression).
19376
19784
  *
19377
19785
  * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.
19378
19786
  *
19379
- * [Expressions](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions (linkStyle))
19787
+ * [View Demo](https://surveyjs.io/form-library/examples/set-question-value-dynamically/ (linkStyle))
19380
19788
  * @see resetValueIf
19381
19789
  */
19382
19790
  get: function () {
@@ -19390,11 +19798,11 @@ var question_Question = /** @class */ (function (_super) {
19390
19798
  });
19391
19799
  Object.defineProperty(Question.prototype, "setValueExpression", {
19392
19800
  /**
19393
- * An expression used to calculate the question value.
19801
+ * An [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) used to calculate the question value.
19394
19802
  *
19395
19803
  * You can use `setValueExpression` as a standalone property or in conjunction with the [`setValueIf`](#setValueIf) expression, in which case the calculated question value applies only when `setValueIf` evaluates to `true`.
19396
19804
  *
19397
- * [Expressions](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions (linkStyle))
19805
+ * [View Demo](https://surveyjs.io/form-library/examples/set-question-value-dynamically/ (linkStyle))
19398
19806
  * @see defaultValueExpression
19399
19807
  * @see resetValueIf
19400
19808
  */
@@ -20566,7 +20974,7 @@ Serializer.addClass("question", [
20566
20974
  name: "title:text", serializationProperty: "locTitle", layout: "row", dependsOn: "name",
20567
20975
  onPropertyEditorUpdate: function (obj, editor) {
20568
20976
  if (!!obj && !!editor) {
20569
- editor.placeholder = obj.name;
20977
+ editor.placeholder = obj.getDefaultTitle();
20570
20978
  }
20571
20979
  }
20572
20980
  },
@@ -21809,8 +22217,8 @@ var choicesRestful_ChoicesRestful = /** @class */ (function (_super) {
21809
22217
  .replace(ChoicesRestful.noCacheText, "");
21810
22218
  }
21811
22219
  if (textProcessor) {
21812
- var pUrl = textProcessor.processTextEx(urlText, false, settings.web.encodeUrlParams);
21813
- var pPath = textProcessor.processTextEx(this.path, false, settings.web.encodeUrlParams);
22220
+ var pUrl = textProcessor.processTextEx({ text: urlText, runAtDesign: true });
22221
+ var pPath = textProcessor.processTextEx({ text: this.path, runAtDesign: true });
21814
22222
  if (!pUrl.hasAllValuesOnLastRun || !pPath.hasAllValuesOnLastRun) {
21815
22223
  this.processedUrl = "";
21816
22224
  this.processedPath = "";
@@ -22333,7 +22741,6 @@ var martixBase_decorate = (undefined && undefined.__decorate) || function (decor
22333
22741
 
22334
22742
 
22335
22743
 
22336
-
22337
22744
  /**
22338
22745
  * A base class for all matrix question types.
22339
22746
  */
@@ -22344,7 +22751,6 @@ var martixBase_QuestionMatrixBaseModel = /** @class */ (function (_super) {
22344
22751
  _this.generatedVisibleRows = null;
22345
22752
  _this.generatedTotalRow = null;
22346
22753
  _this.filteredRows = null;
22347
- _this.filteredColumns = null;
22348
22754
  _this.columns = _this.createColumnValues();
22349
22755
  _this.rows = _this.createItemValues("rows");
22350
22756
  return _this;
@@ -22404,11 +22810,19 @@ var martixBase_QuestionMatrixBaseModel = /** @class */ (function (_super) {
22404
22810
  });
22405
22811
  Object.defineProperty(QuestionMatrixBaseModel.prototype, "visibleColumns", {
22406
22812
  get: function () {
22407
- return !!this.filteredColumns ? this.filteredColumns : this.columns;
22813
+ var _this = this;
22814
+ var res = [];
22815
+ this.columns.forEach(function (col) { if (_this.isColumnVisible(col)) {
22816
+ res.push(col);
22817
+ } });
22818
+ return res;
22408
22819
  },
22409
22820
  enumerable: false,
22410
22821
  configurable: true
22411
22822
  });
22823
+ QuestionMatrixBaseModel.prototype.isColumnVisible = function (column) {
22824
+ return column.isVisible;
22825
+ };
22412
22826
  Object.defineProperty(QuestionMatrixBaseModel.prototype, "rows", {
22413
22827
  /**
22414
22828
  * An array of matrix rows.
@@ -22423,7 +22837,6 @@ var martixBase_QuestionMatrixBaseModel = /** @class */ (function (_super) {
22423
22837
  set: function (newValue) {
22424
22838
  var newRows = this.processRowsOnSet(newValue);
22425
22839
  this.setPropertyValue("rows", newRows);
22426
- this.filterItems();
22427
22840
  },
22428
22841
  enumerable: false,
22429
22842
  configurable: true
@@ -22462,7 +22875,9 @@ var martixBase_QuestionMatrixBaseModel = /** @class */ (function (_super) {
22462
22875
  },
22463
22876
  set: function (val) {
22464
22877
  this.setPropertyValue("rowsVisibleIf", val);
22465
- this.filterItems();
22878
+ if (!this.isLoadingFromJsonValue) {
22879
+ this.runCondition(this.getDataFilteredValues(), this.getDataFilteredProperties());
22880
+ }
22466
22881
  },
22467
22882
  enumerable: false,
22468
22883
  configurable: true
@@ -22483,7 +22898,9 @@ var martixBase_QuestionMatrixBaseModel = /** @class */ (function (_super) {
22483
22898
  },
22484
22899
  set: function (val) {
22485
22900
  this.setPropertyValue("columnsVisibleIf", val);
22486
- this.filterItems();
22901
+ if (!this.isLoadingFromJson) {
22902
+ this.runCondition(this.getDataFilteredValues(), this.getDataFilteredProperties());
22903
+ }
22487
22904
  },
22488
22905
  enumerable: false,
22489
22906
  configurable: true
@@ -22492,15 +22909,6 @@ var martixBase_QuestionMatrixBaseModel = /** @class */ (function (_super) {
22492
22909
  _super.prototype.runCondition.call(this, values, properties);
22493
22910
  this.runItemsCondition(values, properties);
22494
22911
  };
22495
- QuestionMatrixBaseModel.prototype.filterItems = function () {
22496
- if (this.areInvisibleElementsShowing) {
22497
- this.onRowsChanged();
22498
- return false;
22499
- }
22500
- if (this.isLoadingFromJson || !this.data)
22501
- return false;
22502
- return this.runItemsCondition(this.getDataFilteredValues(), this.getDataFilteredProperties());
22503
- };
22504
22912
  QuestionMatrixBaseModel.prototype.onColumnsChanged = function () { };
22505
22913
  QuestionMatrixBaseModel.prototype.onRowsChanged = function () {
22506
22914
  this.updateVisibilityBasedOnRows();
@@ -22512,10 +22920,11 @@ var martixBase_QuestionMatrixBaseModel = /** @class */ (function (_super) {
22512
22920
  }
22513
22921
  };
22514
22922
  QuestionMatrixBaseModel.prototype.isVisibleCore = function () {
22923
+ var _a;
22515
22924
  var res = _super.prototype.isVisibleCore.call(this);
22516
22925
  if (!res || !this.hideIfRowsEmpty)
22517
22926
  return res;
22518
- return this.rows.length > 0 && (!this.filteredRows || this.filteredRows.length > 0);
22927
+ return ((_a = this.visibleRows) === null || _a === void 0 ? void 0 : _a.length) > 0;
22519
22928
  };
22520
22929
  QuestionMatrixBaseModel.prototype.shouldRunColumnExpression = function () {
22521
22930
  return !this.survey || !this.survey.areInvisibleElementsShowing;
@@ -22524,22 +22933,12 @@ var martixBase_QuestionMatrixBaseModel = /** @class */ (function (_super) {
22524
22933
  return true;
22525
22934
  };
22526
22935
  QuestionMatrixBaseModel.prototype.runItemsCondition = function (values, properties) {
22527
- var oldVisibleRows = null;
22528
- if (!!this.filteredRows && !helpers_Helpers.isValueEmpty(this.defaultValue)) {
22529
- oldVisibleRows = [];
22530
- for (var i = 0; i < this.filteredRows.length; i++) {
22531
- oldVisibleRows.push(this.filteredRows[i]);
22532
- }
22533
- }
22534
22936
  var hasChanges = this.hasRowsAsItems() && this.runConditionsForRows(values, properties);
22535
22937
  var hasColumnsChanged = this.runConditionsForColumns(values, properties);
22536
22938
  hasChanges = hasColumnsChanged || hasChanges;
22537
22939
  if (hasChanges) {
22538
- if (this.isClearValueOnHidden && (!!this.filteredColumns || !!this.filteredRows)) {
22539
- this.clearIncorrectValues();
22540
- }
22541
- if (!!oldVisibleRows) {
22542
- this.restoreNewVisibleRowsValues(oldVisibleRows);
22940
+ if (this.isClearValueOnHidden && hasColumnsChanged) {
22941
+ this.clearInvisibleColumnValues();
22543
22942
  }
22544
22943
  this.clearGeneratedRows();
22545
22944
  if (hasColumnsChanged) {
@@ -22547,16 +22946,15 @@ var martixBase_QuestionMatrixBaseModel = /** @class */ (function (_super) {
22547
22946
  }
22548
22947
  this.onRowsChanged();
22549
22948
  }
22550
- return hasChanges;
22551
22949
  };
22950
+ QuestionMatrixBaseModel.prototype.isRowsFiltered = function () { return !!this.filteredRows; };
22552
22951
  QuestionMatrixBaseModel.prototype.clearGeneratedRows = function () {
22553
22952
  this.generatedVisibleRows = null;
22554
22953
  };
22954
+ QuestionMatrixBaseModel.prototype.createRowsVisibleIfRunner = function () { return null; };
22555
22955
  QuestionMatrixBaseModel.prototype.runConditionsForRows = function (values, properties) {
22556
22956
  var showInvisibile = !!this.survey && this.survey.areInvisibleElementsShowing;
22557
- var runner = !showInvisibile && !!this.rowsVisibleIf
22558
- ? new ConditionRunner(this.rowsVisibleIf)
22559
- : null;
22957
+ var runner = !showInvisibile ? this.createRowsVisibleIfRunner() : null;
22560
22958
  this.filteredRows = [];
22561
22959
  var hasChanged = itemvalue_ItemValue.runConditionsForItems(this.rows, this.filteredRows, runner, values, properties, !showInvisibile);
22562
22960
  itemvalue_ItemValue.runEnabledConditionsForItems(this.rows, undefined, values, properties);
@@ -22567,73 +22965,11 @@ var martixBase_QuestionMatrixBaseModel = /** @class */ (function (_super) {
22567
22965
  };
22568
22966
  QuestionMatrixBaseModel.prototype.runConditionsForColumns = function (values, properties) {
22569
22967
  var useColumnsExpression = !!this.survey && !this.survey.areInvisibleElementsShowing;
22570
- var runner = useColumnsExpression && !!this.columnsVisibleIf
22571
- ? new ConditionRunner(this.columnsVisibleIf)
22572
- : null;
22573
- this.filteredColumns = [];
22574
- var hasChanged = itemvalue_ItemValue.runConditionsForItems(this.columns, this.filteredColumns, runner, values, properties, this.shouldRunColumnExpression());
22575
- if (this.filteredColumns.length === this.columns.length) {
22576
- this.filteredColumns = null;
22577
- }
22578
- return hasChanged;
22579
- };
22580
- QuestionMatrixBaseModel.prototype.clearIncorrectValues = function () {
22581
- var val = this.value;
22582
- if (!val)
22583
- return;
22584
- var newVal = null;
22585
- var isChanged = false;
22586
- var rows = !!this.filteredRows ? this.filteredRows : this.rows;
22587
- var columns = !!this.filteredColumns ? this.filteredColumns : this.columns;
22588
- for (var key in val) {
22589
- if (itemvalue_ItemValue.getItemByValue(rows, key) &&
22590
- itemvalue_ItemValue.getItemByValue(columns, val[key])) {
22591
- if (newVal == null)
22592
- newVal = {};
22593
- newVal[key] = val[key];
22594
- }
22595
- else {
22596
- isChanged = true;
22597
- }
22598
- }
22599
- if (isChanged) {
22600
- this.value = newVal;
22601
- }
22602
- _super.prototype.clearIncorrectValues.call(this);
22603
- };
22604
- QuestionMatrixBaseModel.prototype.clearInvisibleValuesInRows = function () {
22605
- if (this.isEmpty())
22606
- return;
22607
- var newData = this.getUnbindValue(this.value);
22608
- var rows = this.rows;
22609
- for (var i = 0; i < rows.length; i++) {
22610
- var key = rows[i].value;
22611
- if (!!newData[key] && !rows[i].isVisible) {
22612
- delete newData[key];
22613
- }
22614
- }
22615
- if (this.isTwoValueEquals(newData, this.value))
22616
- return;
22617
- this.value = newData;
22618
- };
22619
- QuestionMatrixBaseModel.prototype.restoreNewVisibleRowsValues = function (oldVisibleRows) {
22620
- var rows = !!this.filteredRows ? this.filteredRows : this.rows;
22621
- var val = this.defaultValue;
22622
- var newValue = this.getUnbindValue(this.value);
22623
- var isChanged = false;
22624
- for (var key in val) {
22625
- if (itemvalue_ItemValue.getItemByValue(rows, key) &&
22626
- !itemvalue_ItemValue.getItemByValue(oldVisibleRows, key)) {
22627
- if (newValue == null)
22628
- newValue = {};
22629
- newValue[key] = val[key];
22630
- isChanged = true;
22631
- }
22632
- }
22633
- if (isChanged) {
22634
- this.value = newValue;
22635
- }
22968
+ var runner = useColumnsExpression && !!this.columnsVisibleIf ? new ConditionRunner(this.columnsVisibleIf) : null;
22969
+ return itemvalue_ItemValue.runConditionsForItems(this.columns, undefined, runner, values, properties, this.shouldRunColumnExpression());
22636
22970
  };
22971
+ QuestionMatrixBaseModel.prototype.clearInvisibleColumnValues = function () { };
22972
+ QuestionMatrixBaseModel.prototype.clearInvisibleValuesInRows = function () { };
22637
22973
  QuestionMatrixBaseModel.prototype.needResponsiveWidth = function () {
22638
22974
  //TODO: make it mor intelligent
22639
22975
  return true;
@@ -22940,12 +23276,12 @@ var textPreProcessor_QuestionTextProcessor = /** @class */ (function () {
22940
23276
  text = this.processTextCore(this.getParentTextProcessor(), text, returnDisplayValue);
22941
23277
  return this.processTextCore(this.survey, text, returnDisplayValue);
22942
23278
  };
22943
- QuestionTextProcessor.prototype.processTextEx = function (text, returnDisplayValue) {
22944
- text = this.processText(text, returnDisplayValue);
23279
+ QuestionTextProcessor.prototype.processTextEx = function (params) {
23280
+ params.text = this.processText(params.text, params.returnDisplayValue);
22945
23281
  var hasAllValuesOnLastRun = this.textPreProcessor.hasAllValuesOnLastRun;
22946
- var res = { hasAllValuesOnLastRun: true, text: text };
23282
+ var res = { hasAllValuesOnLastRun: true, text: params.text };
22947
23283
  if (this.survey) {
22948
- res = this.survey.processTextEx(text, returnDisplayValue, false);
23284
+ res = this.survey.processTextEx(params);
22949
23285
  }
22950
23286
  res.hasAllValuesOnLastRun =
22951
23287
  res.hasAllValuesOnLastRun && hasAllValuesOnLastRun;
@@ -24095,6 +24431,13 @@ var question_custom_QuestionCompositeModel = /** @class */ (function (_super) {
24095
24431
  };
24096
24432
  }
24097
24433
  };
24434
+ Object.defineProperty(QuestionCompositeModel.prototype, "ariaRole", {
24435
+ get: function () {
24436
+ return "group";
24437
+ },
24438
+ enumerable: false,
24439
+ configurable: true
24440
+ });
24098
24441
  QuestionCompositeModel.ItemVariableName = "composite";
24099
24442
  return QuestionCompositeModel;
24100
24443
  }(question_custom_QuestionCustomModelBase));
@@ -24842,6 +25185,7 @@ var question_matrixdropdowncolumn_MatrixDropdownColumn = /** @class */ (function
24842
25185
  _this.colOwnerValue = null;
24843
25186
  _this.indexValue = -1;
24844
25187
  _this._hasVisibleCell = true;
25188
+ _this.isColumnsVisibleIf = true;
24845
25189
  _this.previousChoicesId = undefined;
24846
25190
  _this.createLocalizableString("totalFormat", _this);
24847
25191
  _this.createLocalizableString("cellHint", _this);
@@ -26541,8 +26885,8 @@ var question_matrixdropdownrendered_QuestionMatrixDropdownRenderedTable = /** @c
26541
26885
  this.headerRow.cells.push(this.createHeaderCell(null));
26542
26886
  }
26543
26887
  if (this.matrix.isColumnLayoutHorizontal) {
26544
- for (var i = 0; i < this.matrix.visibleColumns.length; i++) {
26545
- var column = this.matrix.visibleColumns[i];
26888
+ for (var i = 0; i < this.matrix.columns.length; i++) {
26889
+ var column = this.matrix.columns[i];
26546
26890
  if (!column.isColumnVisible)
26547
26891
  continue;
26548
26892
  if (this.matrix.IsMultiplyColumn(column)) {
@@ -27174,6 +27518,7 @@ var question_matrixdropdownbase_extends = (undefined && undefined.__extends) ||
27174
27518
 
27175
27519
 
27176
27520
 
27521
+
27177
27522
  var question_matrixdropdownbase_MatrixDropdownCell = /** @class */ (function () {
27178
27523
  function MatrixDropdownCell(column, row, data) {
27179
27524
  this.column = column;
@@ -27343,6 +27688,7 @@ var question_matrixdropdownbase_MatrixDropdownRowModelBase = /** @class */ (func
27343
27688
  var _this = this;
27344
27689
  this.isSettingValue = false;
27345
27690
  this.detailPanelValue = null;
27691
+ this.visibleValue = true;
27346
27692
  this.cells = [];
27347
27693
  this.isCreatingDetailPanel = false;
27348
27694
  this.data = data;
@@ -27388,6 +27734,24 @@ var question_matrixdropdownbase_MatrixDropdownRowModelBase = /** @class */ (func
27388
27734
  });
27389
27735
  MatrixDropdownRowModelBase.prototype.isRowEnabled = function () { return true; };
27390
27736
  MatrixDropdownRowModelBase.prototype.isRowHasEnabledCondition = function () { return false; };
27737
+ Object.defineProperty(MatrixDropdownRowModelBase.prototype, "isVisible", {
27738
+ get: function () { return this.visible && this.isItemVisible(); },
27739
+ enumerable: false,
27740
+ configurable: true
27741
+ });
27742
+ Object.defineProperty(MatrixDropdownRowModelBase.prototype, "visible", {
27743
+ get: function () { return this.visibleValue; },
27744
+ set: function (val) {
27745
+ var _a;
27746
+ if (this.visible !== val) {
27747
+ this.visibleValue = val;
27748
+ (_a = this.data) === null || _a === void 0 ? void 0 : _a.onRowVisibilityChanged(this);
27749
+ }
27750
+ },
27751
+ enumerable: false,
27752
+ configurable: true
27753
+ });
27754
+ MatrixDropdownRowModelBase.prototype.isItemVisible = function () { return true; };
27391
27755
  Object.defineProperty(MatrixDropdownRowModelBase.prototype, "value", {
27392
27756
  get: function () {
27393
27757
  var result = {};
@@ -27545,15 +27909,23 @@ var question_matrixdropdownbase_MatrixDropdownRowModelBase = /** @class */ (func
27545
27909
  res[MatrixDropdownRowModelBase.IndexVariableName] = rowIndex;
27546
27910
  res[MatrixDropdownRowModelBase.RowValueVariableName] = this.rowName;
27547
27911
  };
27548
- MatrixDropdownRowModelBase.prototype.runCondition = function (values, properties) {
27912
+ MatrixDropdownRowModelBase.prototype.runCondition = function (values, properties, rowsVisibleIf) {
27549
27913
  if (!!this.data) {
27550
- values[MatrixDropdownRowModelBase.OwnerVariableName] = this.data.value;
27914
+ values[MatrixDropdownRowModelBase.OwnerVariableName] = this.data.getFilteredData();
27551
27915
  }
27552
27916
  var rowIndex = this.rowIndex;
27553
27917
  this.applyRowVariablesToValues(values, rowIndex);
27554
27918
  var newProps = helpers_Helpers.createCopy(properties);
27555
27919
  newProps[MatrixDropdownRowModelBase.RowVariableName] = this;
27556
27920
  var rowValues = rowIndex > 0 ? this.data.getRowValue(this.rowIndex - 1) : this.value;
27921
+ if (!!rowsVisibleIf) {
27922
+ values[MatrixDropdownRowModelBase.RowVariableName] = rowValues;
27923
+ this.setRowsVisibleIfValues(values);
27924
+ this.visible = new ConditionRunner(rowsVisibleIf).run(values, properties);
27925
+ }
27926
+ else {
27927
+ this.visible = true;
27928
+ }
27557
27929
  for (var i = 0; i < this.cells.length; i++) {
27558
27930
  if (i > 0) {
27559
27931
  mergeValues(this.value, rowValues);
@@ -27568,6 +27940,7 @@ var question_matrixdropdownbase_MatrixDropdownRowModelBase = /** @class */ (func
27568
27940
  this.onQuestionReadOnlyChanged();
27569
27941
  }
27570
27942
  };
27943
+ MatrixDropdownRowModelBase.prototype.setRowsVisibleIfValues = function (values) { };
27571
27944
  MatrixDropdownRowModelBase.prototype.getNamesWithDefaultValues = function () {
27572
27945
  var res = [];
27573
27946
  this.questions.forEach(function (q) {
@@ -28011,12 +28384,12 @@ var question_matrixdropdownbase_MatrixDropdownTotalRowModel = /** @class */ (fun
28011
28384
  this.data.onTotalValueChanged();
28012
28385
  }
28013
28386
  };
28014
- MatrixDropdownTotalRowModel.prototype.runCondition = function (values, properties) {
28387
+ MatrixDropdownTotalRowModel.prototype.runCondition = function (values, properties, rowsVisibleIf) {
28015
28388
  var counter = 0;
28016
28389
  var prevValue;
28017
28390
  do {
28018
28391
  prevValue = helpers_Helpers.getUnbindValue(this.value);
28019
- _super.prototype.runCondition.call(this, values, properties);
28392
+ _super.prototype.runCondition.call(this, values, properties, "");
28020
28393
  counter++;
28021
28394
  } while (!helpers_Helpers.isTwoValueEquals(prevValue, this.value) && counter < 3);
28022
28395
  };
@@ -28347,6 +28720,7 @@ var question_matrixdropdownbase_QuestionMatrixDropdownModelBase = /** @class */
28347
28720
  };
28348
28721
  QuestionMatrixDropdownModelBase.prototype.onPointerDown = function (pointerDownEvent, row) { };
28349
28722
  QuestionMatrixDropdownModelBase.prototype.onRowsChanged = function () {
28723
+ this.clearVisibleRows();
28350
28724
  this.resetRenderedTable();
28351
28725
  _super.prototype.onRowsChanged.call(this);
28352
28726
  };
@@ -28400,6 +28774,7 @@ var question_matrixdropdownbase_QuestionMatrixDropdownModelBase = /** @class */
28400
28774
  this.fireCallback(this.onRenderedTableResetCallback);
28401
28775
  };
28402
28776
  QuestionMatrixDropdownModelBase.prototype.clearGeneratedRows = function () {
28777
+ this.clearVisibleRows();
28403
28778
  if (!this.generatedVisibleRows)
28404
28779
  return;
28405
28780
  for (var i = 0; i < this.generatedVisibleRows.length; i++) {
@@ -28442,8 +28817,8 @@ var question_matrixdropdownbase_QuestionMatrixDropdownModelBase = /** @class */
28442
28817
  cellQuestion: null,
28443
28818
  value: null,
28444
28819
  };
28445
- for (var i = 0; i < this.visibleColumns.length; i++) {
28446
- options.column = this.visibleColumns[i];
28820
+ for (var i = 0; i < this.columns.length; i++) {
28821
+ options.column = this.columns[i];
28447
28822
  options.columnName = options.column.name;
28448
28823
  var cell = row.cells[i];
28449
28824
  options.cell = cell;
@@ -28689,6 +29064,7 @@ var question_matrixdropdownbase_QuestionMatrixDropdownModelBase = /** @class */
28689
29064
  counter++;
28690
29065
  } while (!helpers_Helpers.isTwoValueEquals(prevTotalValue, this.totalValue) &&
28691
29066
  counter < 3);
29067
+ this.updateVisibilityBasedOnRows();
28692
29068
  };
28693
29069
  QuestionMatrixDropdownModelBase.prototype.runTriggers = function (name, value) {
28694
29070
  _super.prototype.runTriggers.call(this, name, value);
@@ -28698,25 +29074,40 @@ var question_matrixdropdownbase_QuestionMatrixDropdownModelBase = /** @class */
28698
29074
  return false;
28699
29075
  };
28700
29076
  QuestionMatrixDropdownModelBase.prototype.runCellsCondition = function (values, properties) {
28701
- if (!this.generatedVisibleRows)
28702
- return;
28703
- var newValues = this.getRowConditionValues(values);
28704
29077
  var rows = this.generatedVisibleRows;
28705
- for (var i = 0; i < rows.length; i++) {
28706
- rows[i].runCondition(newValues, properties);
29078
+ if (!!rows) {
29079
+ var newValues = this.getRowConditionValues(values);
29080
+ for (var i = 0; i < rows.length; i++) {
29081
+ rows[i].runCondition(newValues, properties, this.rowsVisibleIf);
29082
+ }
28707
29083
  }
28708
29084
  this.checkColumnsVisibility();
28709
29085
  this.checkColumnsRenderedRequired();
28710
29086
  };
29087
+ QuestionMatrixDropdownModelBase.prototype.runConditionsForColumns = function (values, properties) {
29088
+ var _this = this;
29089
+ this.columns.forEach(function (column) {
29090
+ if (!_this.columnsVisibleIf) {
29091
+ column.isColumnsVisibleIf = true;
29092
+ }
29093
+ else {
29094
+ var condition = new ConditionRunner(_this.columnsVisibleIf);
29095
+ values["item"] = column.name;
29096
+ column.isColumnsVisibleIf = condition.run(values, properties) === true;
29097
+ }
29098
+ });
29099
+ return false;
29100
+ };
28711
29101
  QuestionMatrixDropdownModelBase.prototype.checkColumnsVisibility = function () {
28712
29102
  if (this.isDesignMode)
28713
29103
  return;
28714
29104
  var hasChanged = false;
28715
- for (var i = 0; i < this.visibleColumns.length; i++) {
28716
- var column = this.visibleColumns[i];
28717
- if (!column.visibleIf && !column.isFilteredMultipleColumns)
29105
+ for (var i = 0; i < this.columns.length; i++) {
29106
+ var column = this.columns[i];
29107
+ var isCellsVisibilty = !!column.visibleIf || column.isFilteredMultipleColumns;
29108
+ if (!isCellsVisibilty && !this.columnsVisibleIf && column.isColumnVisible)
28718
29109
  continue;
28719
- hasChanged = this.isColumnVisibilityChanged(column) || hasChanged;
29110
+ hasChanged = this.isColumnVisibilityChanged(column, isCellsVisibilty) || hasChanged;
28720
29111
  }
28721
29112
  if (hasChanged) {
28722
29113
  this.resetRenderedTable();
@@ -28724,9 +29115,11 @@ var question_matrixdropdownbase_QuestionMatrixDropdownModelBase = /** @class */
28724
29115
  };
28725
29116
  QuestionMatrixDropdownModelBase.prototype.checkColumnsRenderedRequired = function () {
28726
29117
  var rows = this.generatedVisibleRows;
28727
- for (var i = 0; i < this.visibleColumns.length; i++) {
28728
- var column = this.visibleColumns[i];
28729
- if (!column.requiredIf)
29118
+ if (!rows)
29119
+ return;
29120
+ for (var i = 0; i < this.columns.length; i++) {
29121
+ var column = this.columns[i];
29122
+ if (!column.requiredIf || !column.isColumnVisible)
28730
29123
  continue;
28731
29124
  var required = rows.length > 0;
28732
29125
  for (var j = 0; j < rows.length; j++) {
@@ -28738,26 +29131,29 @@ var question_matrixdropdownbase_QuestionMatrixDropdownModelBase = /** @class */
28738
29131
  column.updateIsRenderedRequired(required);
28739
29132
  }
28740
29133
  };
28741
- QuestionMatrixDropdownModelBase.prototype.isColumnVisibilityChanged = function (column) {
29134
+ QuestionMatrixDropdownModelBase.prototype.isColumnVisibilityChanged = function (column, checkCellsVisiblity) {
28742
29135
  var curVis = column.isColumnVisible;
28743
- var isMultipleColumnsVisibility = column.isFilteredMultipleColumns;
29136
+ var hasVisCell = !checkCellsVisiblity;
29137
+ var rows = this.generatedVisibleRows;
29138
+ var checkRows = checkCellsVisiblity && rows;
29139
+ var isMultipleColumnsVisibility = checkRows && column.isFilteredMultipleColumns;
28744
29140
  var curVisibleChoices = isMultipleColumnsVisibility ? column.getVisibleChoicesInCell : [];
28745
29141
  var newVisibleChoices = new Array();
28746
- var hasVisCell = false;
28747
- var rows = this.generatedVisibleRows;
28748
- for (var i = 0; i < rows.length; i++) {
28749
- var cell = rows[i].cells[column.index];
28750
- var q = cell === null || cell === void 0 ? void 0 : cell.question;
28751
- if (!!q && q.isVisible) {
28752
- hasVisCell = true;
28753
- if (isMultipleColumnsVisibility) {
28754
- this.updateNewVisibleChoices(q, newVisibleChoices);
29142
+ if (checkRows) {
29143
+ for (var i = 0; i < rows.length; i++) {
29144
+ var cell = rows[i].cells[column.index];
29145
+ var q = cell === null || cell === void 0 ? void 0 : cell.question;
29146
+ if (!!q && q.isVisible) {
29147
+ hasVisCell = true;
29148
+ if (isMultipleColumnsVisibility) {
29149
+ this.updateNewVisibleChoices(q, newVisibleChoices);
29150
+ }
29151
+ else
29152
+ break;
28755
29153
  }
28756
- else
28757
- break;
28758
29154
  }
28759
29155
  }
28760
- column.hasVisibleCell = hasVisCell;
29156
+ column.hasVisibleCell = hasVisCell && column.isColumnsVisibleIf;
28761
29157
  if (isMultipleColumnsVisibility) {
28762
29158
  column.setVisibleChoicesInCell(newVisibleChoices);
28763
29159
  if (!helpers_Helpers.isArraysEqual(curVisibleChoices, newVisibleChoices, true, false, false))
@@ -28849,7 +29245,7 @@ var question_matrixdropdownbase_QuestionMatrixDropdownModelBase = /** @class */
28849
29245
  * }
28850
29246
  * ```
28851
29247
  *
28852
- * To enable Markdown support for the `text` property, implement Markdown-to-HTML conversion in the [onTextMarkdown](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTextMarkdown) event handler. For an example, refer to the following demo: [Convert Markdown to HTML with Showdown](https://surveyjs.io/form-library/examples/edit-survey-questions-markdown/).
29248
+ * To enable Markdown support for the `text` property, implement Markdown-to-HTML conversion in the [onTextMarkdown](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTextMarkdown) event handler. For an example, refer to the following demo: [Convert Markdown to HTML with markdown-it](https://surveyjs.io/form-library/examples/edit-survey-questions-markdown/).
28853
29249
  *
28854
29250
  * If you add custom properties, refer to the following help topic to learn how to serialize them into JSON: [Add Custom Properties to Property Grid](https://surveyjs.io/survey-creator/documentation/property-grid#add-custom-properties-to-the-property-grid).
28855
29251
  *
@@ -28932,20 +29328,46 @@ var question_matrixdropdownbase_QuestionMatrixDropdownModelBase = /** @class */
28932
29328
  this.columns.push(column);
28933
29329
  return column;
28934
29330
  };
29331
+ QuestionMatrixDropdownModelBase.prototype.clearVisibleRows = function () {
29332
+ this.visibleRowsArray = null;
29333
+ };
29334
+ QuestionMatrixDropdownModelBase.prototype.isColumnVisible = function (column) {
29335
+ return column.isColumnVisible;
29336
+ };
28935
29337
  QuestionMatrixDropdownModelBase.prototype.getVisibleRows = function () {
28936
- var _this = this;
28937
29338
  if (this.isUpdateLocked)
28938
29339
  return null;
28939
- if (!this.generatedVisibleRows) {
29340
+ if (this.isGenereatingRows)
29341
+ return [];
29342
+ if (!!this.visibleRowsArray)
29343
+ return this.visibleRowsArray;
29344
+ this.generateVisibleRowsIfNeeded();
29345
+ this.visibleRowsArray = this.getVisibleFromGenerated(this.generatedVisibleRows);
29346
+ return this.visibleRowsArray;
29347
+ };
29348
+ QuestionMatrixDropdownModelBase.prototype.generateVisibleRowsIfNeeded = function () {
29349
+ var _this = this;
29350
+ if (!this.isUpdateLocked && !this.generatedVisibleRows && !this.generatedVisibleRows) {
29351
+ this.isGenereatingRows = true;
28940
29352
  this.generatedVisibleRows = this.generateRows();
29353
+ this.isGenereatingRows = false;
28941
29354
  this.generatedVisibleRows.forEach(function (row) { return _this.onMatrixRowCreated(row); });
28942
29355
  if (this.data) {
28943
29356
  this.runCellsCondition(this.data.getFilteredValues(), this.data.getFilteredProperties());
28944
29357
  }
28945
- this.updateValueOnRowsGeneration(this.generatedVisibleRows);
28946
- this.updateIsAnswered();
29358
+ if (!!this.generatedVisibleRows) {
29359
+ this.updateValueOnRowsGeneration(this.generatedVisibleRows);
29360
+ this.updateIsAnswered();
29361
+ }
28947
29362
  }
28948
- return this.generatedVisibleRows;
29363
+ };
29364
+ QuestionMatrixDropdownModelBase.prototype.getVisibleFromGenerated = function (rows) {
29365
+ var res = [];
29366
+ if (!rows)
29367
+ return res;
29368
+ rows.forEach(function (row) { if (row.isVisible)
29369
+ res.push(row); });
29370
+ return res.length === rows.length ? rows : res;
28949
29371
  };
28950
29372
  QuestionMatrixDropdownModelBase.prototype.updateValueOnRowsGeneration = function (rows) {
28951
29373
  var oldValue = this.createNewValue(true);
@@ -29533,7 +29955,7 @@ var question_matrixdropdownbase_QuestionMatrixDropdownModelBase = /** @class */
29533
29955
  !this.generatedVisibleRows)
29534
29956
  return;
29535
29957
  this.isDoingonAnyValueChanged = true;
29536
- var rows = this.visibleRows;
29958
+ var rows = this.generatedVisibleRows;
29537
29959
  for (var i = 0; i < rows.length; i++) {
29538
29960
  rows[i].onAnyValueChanged(name, questionName);
29539
29961
  }
@@ -29582,6 +30004,19 @@ var question_matrixdropdownbase_QuestionMatrixDropdownModelBase = /** @class */
29582
30004
  enumerable: false,
29583
30005
  configurable: true
29584
30006
  });
30007
+ Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "hasInvisibleRows", {
30008
+ get: function () {
30009
+ return !!this.visibleRowsArray && this.visibleRowsArray.length !== this.generatedVisibleRows.length;
30010
+ },
30011
+ enumerable: false,
30012
+ configurable: true
30013
+ });
30014
+ QuestionMatrixDropdownModelBase.prototype.getFilteredData = function () {
30015
+ if (this.isEmpty() || !this.generatedVisibleRows || !this.hasInvisibleRows)
30016
+ return this.value;
30017
+ return this.getFilteredDataCore();
30018
+ };
30019
+ QuestionMatrixDropdownModelBase.prototype.getFilteredDataCore = function () { return this.value; };
29585
30020
  QuestionMatrixDropdownModelBase.prototype.onRowChanging = function (row, columnName, rowValue) {
29586
30021
  if (!this.survey && !this.cellValueChangingCallback)
29587
30022
  return !!rowValue ? rowValue[columnName] : null;
@@ -29772,6 +30207,26 @@ var question_matrixdropdownbase_QuestionMatrixDropdownModelBase = /** @class */
29772
30207
  return null;
29773
30208
  };
29774
30209
  QuestionMatrixDropdownModelBase.prototype.isMatrixReadOnly = function () { return this.isReadOnly; };
30210
+ QuestionMatrixDropdownModelBase.prototype.onRowVisibilityChanged = function (row) {
30211
+ this.clearVisibleRows();
30212
+ this.resetRenderedTable();
30213
+ };
30214
+ QuestionMatrixDropdownModelBase.prototype.clearValueIfInvisibleCore = function (reason) {
30215
+ _super.prototype.clearValueIfInvisibleCore.call(this, reason);
30216
+ this.clearInvisibleValuesInRows();
30217
+ };
30218
+ QuestionMatrixDropdownModelBase.prototype.clearInvisibleValuesInRows = function () {
30219
+ var _a;
30220
+ if (this.isEmpty() || !this.isRowsFiltered)
30221
+ return;
30222
+ var sharedQuestions = ((_a = this.survey) === null || _a === void 0 ? void 0 : _a.questionsByValueName(this.getValueName())) || [];
30223
+ if (sharedQuestions.length < 2) {
30224
+ this.value = this.getFilteredData();
30225
+ }
30226
+ };
30227
+ QuestionMatrixDropdownModelBase.prototype.isRowsFiltered = function () {
30228
+ return _super.prototype.isRowsFiltered.call(this) || (this.visibleRows !== this.generatedVisibleRows);
30229
+ };
29775
30230
  QuestionMatrixDropdownModelBase.prototype.getQuestionFromArray = function (name, index) {
29776
30231
  if (index >= this.visibleRows.length)
29777
30232
  return null;
@@ -29855,7 +30310,6 @@ Serializer.addClass("matrixdropdownbase", [
29855
30310
  visible: false,
29856
30311
  isLightSerializable: false,
29857
30312
  },
29858
- { name: "columnsVisibleIf", visible: false },
29859
30313
  {
29860
30314
  name: "detailPanelMode",
29861
30315
  choices: ["none", "underRow", "underRowSingle"],
@@ -29941,8 +30395,13 @@ var MatrixDropdownRowModel = /** @class */ (function (_super) {
29941
30395
  enumerable: false,
29942
30396
  configurable: true
29943
30397
  });
30398
+ MatrixDropdownRowModel.prototype.isItemVisible = function () { return this.item.isVisible; };
29944
30399
  MatrixDropdownRowModel.prototype.isRowEnabled = function () { return this.item.isEnabled; };
29945
30400
  MatrixDropdownRowModel.prototype.isRowHasEnabledCondition = function () { return !!this.item.enableIf; };
30401
+ MatrixDropdownRowModel.prototype.setRowsVisibleIfValues = function (values) {
30402
+ values["item"] = this.item.value;
30403
+ values["choice"] = this.item.value;
30404
+ };
29946
30405
  return MatrixDropdownRowModel;
29947
30406
  }(question_matrixdropdownbase_MatrixDropdownRowModelBase));
29948
30407
 
@@ -29958,11 +30417,11 @@ var question_matrixdropdown_QuestionMatrixDropdownModel = /** @class */ (functio
29958
30417
  _this.defaultValuesInRows = {};
29959
30418
  _this.createLocalizableString("totalText", _this, true);
29960
30419
  _this.registerPropertyChangedHandlers(["rows"], function () {
30420
+ if (!_this.generatedVisibleRows)
30421
+ return;
29961
30422
  _this.clearGeneratedRows();
29962
30423
  _this.resetRenderedTable();
29963
- if (!_this.filterItems()) {
29964
- _this.onRowsChanged();
29965
- }
30424
+ _this.getVisibleRows();
29966
30425
  _this.clearIncorrectValues();
29967
30426
  });
29968
30427
  _this.registerPropertyChangedHandlers(["hideIfRowsEmpty"], function () {
@@ -30053,30 +30512,29 @@ var question_matrixdropdown_QuestionMatrixDropdownModel = /** @class */ (functio
30053
30512
  return helpers_Helpers.isValueObject(val, true);
30054
30513
  };
30055
30514
  QuestionMatrixDropdownModel.prototype.clearIncorrectValues = function () {
30056
- var val = this.value;
30057
- if (!val)
30058
- return;
30059
- var newVal = null;
30060
- var isChanged = false;
30061
- var rows = !!this.filteredRows ? this.filteredRows : this.rows;
30062
- for (var key in val) {
30063
- if (itemvalue_ItemValue.getItemByValue(rows, key)) {
30064
- if (newVal == null)
30065
- newVal = {};
30066
- newVal[key] = val[key];
30067
- }
30068
- else {
30069
- isChanged = true;
30515
+ if (!this.isEmpty()) {
30516
+ this.getVisibleRows();
30517
+ var newVal = {};
30518
+ var val = this.value;
30519
+ for (var key in val) {
30520
+ var row = this.getRowByKey(key);
30521
+ if (!!row && row.isVisible) {
30522
+ newVal[key] = val[key];
30523
+ }
30070
30524
  }
30071
- }
30072
- if (isChanged) {
30073
30525
  this.value = newVal;
30074
30526
  }
30075
30527
  _super.prototype.clearIncorrectValues.call(this);
30076
30528
  };
30077
- QuestionMatrixDropdownModel.prototype.clearValueIfInvisibleCore = function (reason) {
30078
- _super.prototype.clearValueIfInvisibleCore.call(this, reason);
30079
- this.clearInvisibleValuesInRows();
30529
+ QuestionMatrixDropdownModel.prototype.getRowByKey = function (val) {
30530
+ var rows = this.generatedVisibleRows;
30531
+ if (!rows)
30532
+ return null;
30533
+ for (var i = 0; i < rows.length; i++) {
30534
+ if (rows[i].rowName === val)
30535
+ return rows[i];
30536
+ }
30537
+ return null;
30080
30538
  };
30081
30539
  QuestionMatrixDropdownModel.prototype.clearGeneratedRows = function () {
30082
30540
  var _this = this;
@@ -30103,7 +30561,7 @@ var question_matrixdropdown_QuestionMatrixDropdownModel = /** @class */ (functio
30103
30561
  };
30104
30562
  QuestionMatrixDropdownModel.prototype.generateRows = function () {
30105
30563
  var result = new Array();
30106
- var rows = !!this.filteredRows ? this.filteredRows : this.rows;
30564
+ var rows = this.rows;
30107
30565
  if (!rows || rows.length === 0)
30108
30566
  return result;
30109
30567
  var val = this.value;
@@ -30120,6 +30578,17 @@ var question_matrixdropdown_QuestionMatrixDropdownModel = /** @class */ (functio
30120
30578
  QuestionMatrixDropdownModel.prototype.createMatrixRow = function (item, value) {
30121
30579
  return new MatrixDropdownRowModel(item.value, item, this, value);
30122
30580
  };
30581
+ QuestionMatrixDropdownModel.prototype.getFilteredDataCore = function () {
30582
+ var res = {};
30583
+ var val = this.createValueCopy();
30584
+ this.generatedVisibleRows.forEach(function (row) {
30585
+ var rowVal = val[row.rowName];
30586
+ if (row.isVisible && !helpers_Helpers.isValueEmpty(rowVal)) {
30587
+ res[row.rowName] = rowVal;
30588
+ }
30589
+ });
30590
+ return res;
30591
+ };
30123
30592
  QuestionMatrixDropdownModel.prototype.getSearchableItemValueKeys = function (keys) {
30124
30593
  keys.push("rows");
30125
30594
  };
@@ -30955,6 +31424,7 @@ var question_matrixdynamic_extends = (undefined && undefined.__extends) || (func
30955
31424
 
30956
31425
 
30957
31426
 
31427
+
30958
31428
  var MatrixDynamicRowModel = /** @class */ (function (_super) {
30959
31429
  question_matrixdynamic_extends(MatrixDynamicRowModel, _super);
30960
31430
  function MatrixDynamicRowModel(index, data, value) {
@@ -31030,7 +31500,7 @@ var question_matrixdynamic_QuestionMatrixDynamicModel = /** @class */ (function
31030
31500
  _this.registerPropertyChangedHandlers(["hideColumnsIfEmpty", "allowAddRows"], function () {
31031
31501
  _this.updateShowTableAndAddRow();
31032
31502
  });
31033
- _this.registerPropertyChangedHandlers(["allowRowsDragAndDrop", "isReadOnly", "lockedRowCount"], function () { _this.clearRowsAndResetRenderedTable(); });
31503
+ _this.registerPropertyChangedHandlers(["allowRowsDragAndDrop", "isReadOnly", "lockedRowCount"], function () { _this.resetRenderedTable(); });
31034
31504
  _this.dragOrClickHelper = new dragOrClickHelper_DragOrClickHelper(_this.startDragMatrixRow);
31035
31505
  return _this;
31036
31506
  }
@@ -31179,7 +31649,7 @@ var question_matrixdynamic_QuestionMatrixDynamicModel = /** @class */ (function
31179
31649
  };
31180
31650
  QuestionMatrixDynamicModel.prototype.initDataUI = function () {
31181
31651
  if (!this.generatedVisibleRows) {
31182
- this.visibleRows;
31652
+ this.getVisibleRows();
31183
31653
  }
31184
31654
  };
31185
31655
  Object.defineProperty(QuestionMatrixDynamicModel.prototype, "rowCount", {
@@ -31208,6 +31678,7 @@ var question_matrixdynamic_QuestionMatrixDynamicModel = /** @class */ (function
31208
31678
  }
31209
31679
  if (this.generatedVisibleRows || prevValue == 0) {
31210
31680
  if (!this.generatedVisibleRows) {
31681
+ this.clearGeneratedRows();
31211
31682
  this.generatedVisibleRows = [];
31212
31683
  }
31213
31684
  this.generatedVisibleRows.splice(val);
@@ -31897,9 +32368,29 @@ var question_matrixdynamic_QuestionMatrixDynamicModel = /** @class */ (function
31897
32368
  QuestionMatrixDynamicModel.prototype.updateValueFromSurvey = function (newValue, clearData) {
31898
32369
  if (clearData === void 0) { clearData = false; }
31899
32370
  this.setRowCountValueFromData = true;
32371
+ if (this.minRowCount > 0 && helpers_Helpers.isValueEmpty(newValue) && !helpers_Helpers.isValueEmpty(this.defaultRowValue)) {
32372
+ newValue = [];
32373
+ for (var i = 0; i < this.minRowCount; i++) {
32374
+ newValue.push(helpers_Helpers.createCopy(this.defaultRowValue));
32375
+ }
32376
+ }
31900
32377
  _super.prototype.updateValueFromSurvey.call(this, newValue, clearData);
31901
32378
  this.setRowCountValueFromData = false;
31902
32379
  };
32380
+ QuestionMatrixDynamicModel.prototype.getFilteredDataCore = function () {
32381
+ var res = [];
32382
+ var val = this.createValueCopy();
32383
+ if (!Array.isArray(val))
32384
+ return res;
32385
+ var rows = this.generatedVisibleRows;
32386
+ for (var i = 0; i < rows.length && i < val.length; i++) {
32387
+ var rowVal = val[i];
32388
+ if (rows[i].isVisible && !helpers_Helpers.isValueEmpty(rowVal)) {
32389
+ res.push(rowVal);
32390
+ }
32391
+ }
32392
+ return res;
32393
+ };
31903
32394
  QuestionMatrixDynamicModel.prototype.onBeforeValueChanged = function (val) {
31904
32395
  if (!val || !Array.isArray(val))
31905
32396
  return;
@@ -31924,7 +32415,7 @@ var question_matrixdynamic_QuestionMatrixDynamicModel = /** @class */ (function
31924
32415
  }
31925
32416
  else {
31926
32417
  this.clearGeneratedRows();
31927
- this.generatedVisibleRows = this.visibleRows;
32418
+ this.getVisibleRows();
31928
32419
  this.onRowsChanged();
31929
32420
  }
31930
32421
  this.setRowCountValueFromData = false;
@@ -32000,7 +32491,6 @@ var QuestionMatrixDynamicRenderedTable = /** @class */ (function (_super) {
32000
32491
  return QuestionMatrixDynamicRenderedTable;
32001
32492
  }(question_matrixdropdownrendered_QuestionMatrixDropdownRenderedTable));
32002
32493
  Serializer.addClass("matrixdynamic", [
32003
- { name: "rowsVisibleIf:condition", visible: false },
32004
32494
  { name: "allowAddRows:boolean", default: true },
32005
32495
  { name: "allowRemoveRows:boolean", default: true },
32006
32496
  { name: "rowCount:number", default: 2, minValue: 0, isBindable: true },
@@ -32128,7 +32618,6 @@ var defaultV2Css = {
32128
32618
  titleExpanded: "sd-element__title--expanded",
32129
32619
  titleCollapsed: "sd-element__title--collapsed",
32130
32620
  titleDisabled: "sd-element__title--disabled",
32131
- titleHidden: "sd-element__title--hidden",
32132
32621
  titleOnExpand: "sd-panel__title--expanded",
32133
32622
  titleOnError: "sd-panel__title--error",
32134
32623
  titleBar: "sd-action-title-bar",
@@ -32141,7 +32630,6 @@ var defaultV2Css = {
32141
32630
  footer: "sd-panel__footer",
32142
32631
  requiredText: "sd-panel__required-text",
32143
32632
  header: "sd-panel__header sd-element__header sd-element__header--location-top",
32144
- headerHidden: "sd-panel__header--hidden",
32145
32633
  collapsed: "sd-element--collapsed",
32146
32634
  expanded: "sd-element--expanded",
32147
32635
  expandable: "sd-element--expandable",
@@ -32230,6 +32718,7 @@ var defaultV2Css = {
32230
32718
  emptyHeaderRoot: "sd-page__empty-header",
32231
32719
  title: "sd-title sd-page__title",
32232
32720
  description: "sd-description sd-page__description",
32721
+ number: "sd-page__num",
32233
32722
  errorsContainer: "sd-page__errbox"
32234
32723
  },
32235
32724
  pageTitle: "sd-title sd-page__title",
@@ -32839,6 +33328,7 @@ var defaultV2Css = {
32839
33328
  rootSelectToRankEmptyValueMod: "sv-ranking--select-to-rank-empty-value",
32840
33329
  rootSelectToRankAlignVertical: "sv-ranking--select-to-rank-vertical",
32841
33330
  rootSelectToRankAlignHorizontal: "sv-ranking--select-to-rank-horizontal",
33331
+ rootSelectToRankSwapAreas: "sv-ranking--select-to-rank-swap-areas",
32842
33332
  item: "sv-ranking-item",
32843
33333
  itemContent: "sv-ranking-item__content sd-ranking-item__content",
32844
33334
  itemIndex: "sv-ranking-item__index sd-ranking-item__index",
@@ -33654,7 +34144,13 @@ var header_Cover = /** @class */ (function (_super) {
33654
34144
  };
33655
34145
  Object.defineProperty(Cover.prototype, "renderedHeight", {
33656
34146
  get: function () {
33657
- return this.height && (this.survey && !this.survey.isMobile || !this.survey) ? Math.max(this.height, this.actualHeight + 40) + "px" : undefined;
34147
+ if (this.survey && !this.survey.isMobile || !this.survey) {
34148
+ return this.height ? Math.max(this.height, this.actualHeight + 40) + "px" : undefined;
34149
+ }
34150
+ if (this.survey && this.survey.isMobile) {
34151
+ return this.mobileHeight ? Math.max(this.mobileHeight, this.actualHeight + 40) + "px" : undefined;
34152
+ }
34153
+ return undefined;
33658
34154
  },
33659
34155
  enumerable: false,
33660
34156
  configurable: true
@@ -33755,6 +34251,9 @@ var header_Cover = /** @class */ (function (_super) {
33755
34251
  header_decorate([
33756
34252
  jsonobject_property()
33757
34253
  ], Cover.prototype, "height", void 0);
34254
+ header_decorate([
34255
+ jsonobject_property()
34256
+ ], Cover.prototype, "mobileHeight", void 0);
33758
34257
  header_decorate([
33759
34258
  jsonobject_property()
33760
34259
  ], Cover.prototype, "inheritWidthFrom", void 0);
@@ -33836,6 +34335,7 @@ var header_Cover = /** @class */ (function (_super) {
33836
34335
 
33837
34336
  Serializer.addClass("cover", [
33838
34337
  { name: "height:number", minValue: 0, default: 256 },
34338
+ { name: "mobileHeight:number", minValue: 0, default: 0 },
33839
34339
  { name: "inheritWidthFrom", default: "container" },
33840
34340
  { name: "textAreaWidth:number", minValue: 0, default: 512 },
33841
34341
  { name: "textGlowEnabled:boolean" },
@@ -34526,6 +35026,9 @@ var panel_PanelModelBase = /** @class */ (function (_super) {
34526
35026
  _this.registerPropertyChangedHandlers(["questionStartIndex", "showQuestionNumbers"], function () {
34527
35027
  _this.updateVisibleIndexes();
34528
35028
  });
35029
+ _this.registerPropertyChangedHandlers(["title"], function () {
35030
+ _this.calcHasTextInTitle();
35031
+ });
34529
35032
  _this.dragDropPanelHelper = new drag_drop_panel_helper_v1_DragDropPanelHelperV1(_this);
34530
35033
  return _this;
34531
35034
  }
@@ -34600,10 +35103,13 @@ var panel_PanelModelBase = /** @class */ (function (_super) {
34600
35103
  col.onPropertyValueChangedCallback = _this.onColumnPropertyValueChangedCallback;
34601
35104
  });
34602
35105
  };
35106
+ PanelModelBase.prototype.calcHasTextInTitle = function () {
35107
+ this.hasTextInTitle = !!this.title;
35108
+ };
34603
35109
  Object.defineProperty(PanelModelBase.prototype, "hasTitle", {
34604
35110
  get: function () {
34605
- return ((this.canShowTitle() && this.locTitle.textOrHtml.length > 0) ||
34606
- (this.isDesignMode && (this.showTitle && this.isInteractiveDesignElement && settings.designMode.showEmptyTitles)));
35111
+ return ((this.canShowTitle() && (this.hasTextInTitle || this.locTitle.textOrHtml.length > 0)) ||
35112
+ (this.isDesignMode && !(settings.supportCreatorV2 && this.isPanel) && this.showTitle && settings.designMode.showEmptyTitles));
34607
35113
  },
34608
35114
  enumerable: false,
34609
35115
  configurable: true
@@ -35091,6 +35597,7 @@ var panel_PanelModelBase = /** @class */ (function (_super) {
35091
35597
  * @see questions
35092
35598
  */
35093
35599
  get: function () {
35600
+ base_Base.collectDependency(this, "elements");
35094
35601
  return this.elementsValue;
35095
35602
  },
35096
35603
  enumerable: false,
@@ -35603,6 +36110,7 @@ var panel_PanelModelBase = /** @class */ (function (_super) {
35603
36110
  }
35604
36111
  this.onElementVisibilityChanged(this);
35605
36112
  this.releaseAnimations();
36113
+ this.calcHasTextInTitle();
35606
36114
  };
35607
36115
  PanelModelBase.prototype.onFirstRendering = function () {
35608
36116
  _super.prototype.onFirstRendering.call(this);
@@ -36294,12 +36802,27 @@ var panel_PanelModelBase = /** @class */ (function (_super) {
36294
36802
  return this.parent.getQuestionErrorLocation();
36295
36803
  return this.survey ? this.survey.questionErrorLocation : "top";
36296
36804
  };
36805
+ //ITitleOwner
36806
+ PanelModelBase.prototype.getTitleOwner = function () { return this; };
36297
36807
  Object.defineProperty(PanelModelBase.prototype, "no", {
36298
- //ITitleOwner
36299
36808
  get: function () { return ""; },
36300
36809
  enumerable: false,
36301
36810
  configurable: true
36302
36811
  });
36812
+ Object.defineProperty(PanelModelBase.prototype, "cssTitleNumber", {
36813
+ get: function () {
36814
+ return this.cssClasses.panel.number;
36815
+ },
36816
+ enumerable: false,
36817
+ configurable: true
36818
+ });
36819
+ Object.defineProperty(PanelModelBase.prototype, "cssRequiredText", {
36820
+ get: function () {
36821
+ return this.cssClasses.panel.requiredText;
36822
+ },
36823
+ enumerable: false,
36824
+ configurable: true
36825
+ });
36303
36826
  Object.defineProperty(PanelModelBase.prototype, "cssError", {
36304
36827
  get: function () {
36305
36828
  return this.getCssError(this.cssClasses);
@@ -36340,6 +36863,9 @@ var panel_PanelModelBase = /** @class */ (function (_super) {
36340
36863
  panel_decorate([
36341
36864
  jsonobject_property({ defaultValue: true })
36342
36865
  ], PanelModelBase.prototype, "showTitle", void 0);
36866
+ panel_decorate([
36867
+ jsonobject_property({ defaultValue: false })
36868
+ ], PanelModelBase.prototype, "hasTextInTitle", void 0);
36343
36869
  panel_decorate([
36344
36870
  jsonobject_property({ defaultValue: true })
36345
36871
  ], PanelModelBase.prototype, "showDescription", void 0);
@@ -36370,9 +36896,6 @@ var panel_PanelModel = /** @class */ (function (_super) {
36370
36896
  });
36371
36897
  _this.registerPropertyChangedHandlers(["indent", "innerIndent", "rightIndent"], function () { _this.onIndentChanged(); });
36372
36898
  _this.registerPropertyChangedHandlers(["colSpan"], function () { var _a; (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.updateColumns(); });
36373
- _this.registerPropertyChangedHandlers(["title"], function () {
36374
- _this.calcHasTextInTitle();
36375
- });
36376
36899
  return _this;
36377
36900
  }
36378
36901
  PanelModel.prototype.getType = function () {
@@ -36392,37 +36915,15 @@ var panel_PanelModel = /** @class */ (function (_super) {
36392
36915
  }
36393
36916
  return _super.prototype.getSurvey.call(this, live);
36394
36917
  };
36395
- Object.defineProperty(PanelModel.prototype, "hasTextInTitle", {
36396
- get: function () {
36397
- return this.getPropertyValue("hasTextInTitle");
36398
- },
36399
- enumerable: false,
36400
- configurable: true
36401
- });
36402
- PanelModel.prototype.calcHasTextInTitle = function () {
36403
- this.setPropertyValue("hasTextInTitle", !!this.title);
36404
- };
36405
36918
  PanelModel.prototype.onSurveyLoad = function () {
36406
36919
  _super.prototype.onSurveyLoad.call(this);
36407
36920
  this.onIndentChanged();
36408
- this.calcHasTextInTitle();
36409
36921
  };
36410
36922
  PanelModel.prototype.onSetData = function () {
36411
36923
  _super.prototype.onSetData.call(this);
36412
36924
  this.onIndentChanged();
36413
36925
  this.calcHasTextInTitle();
36414
36926
  };
36415
- Object.defineProperty(PanelModel.prototype, "cssHeader", {
36416
- get: function () {
36417
- return new CssClassBuilder()
36418
- .append(this.cssClasses.panel.header)
36419
- .append(this.cssClasses.panel.headerHidden, !this.hasTextInTitle &&
36420
- !this.hasDescription &&
36421
- this.isDesignMode).toString();
36422
- },
36423
- enumerable: false,
36424
- configurable: true
36425
- });
36426
36927
  Object.defineProperty(PanelModel.prototype, "isPanel", {
36427
36928
  get: function () {
36428
36929
  return true;
@@ -36465,7 +36966,6 @@ var panel_PanelModel = /** @class */ (function (_super) {
36465
36966
  enumerable: false,
36466
36967
  configurable: true
36467
36968
  });
36468
- PanelModel.prototype.getTitleOwner = function () { return this; };
36469
36969
  Object.defineProperty(PanelModel.prototype, "showNumber", {
36470
36970
  /**
36471
36971
  * Specifies whether to show the panel number in the title.
@@ -36562,7 +37062,7 @@ var panel_PanelModel = /** @class */ (function (_super) {
36562
37062
  var _this = this;
36563
37063
  var locTitleValue = _super.prototype.createLocTitleProperty.call(this);
36564
37064
  locTitleValue.onGetTextCallback = function (text) {
36565
- if (!text && (_this.state !== "default" || (_this.isDesignMode && _this.isDefaultV2Theme && _this.isInteractiveDesignElement))) {
37065
+ if (!text && (_this.state !== "default")) {
36566
37066
  text = _this.name;
36567
37067
  }
36568
37068
  return text;
@@ -36725,10 +37225,7 @@ var panel_PanelModel = /** @class */ (function (_super) {
36725
37225
  };
36726
37226
  Object.defineProperty(PanelModel.prototype, "cssTitle", {
36727
37227
  get: function () {
36728
- return new CssClassBuilder()
36729
- .append(this.getCssTitle(this.cssClasses.panel))
36730
- .append(this.cssClasses.panel.titleHidden, !this.hasTextInTitle && this.isDesignMode)
36731
- .toString();
37228
+ return this.getCssTitle(this.cssClasses.panel);
36732
37229
  },
36733
37230
  enumerable: false,
36734
37231
  configurable: true
@@ -37167,11 +37664,6 @@ var page_PageModel = /** @class */ (function (_super) {
37167
37664
  * @see maxTimeToFinish
37168
37665
  */
37169
37666
  _this.timeSpent = 0;
37170
- _this.locTitle.onGetTextCallback = function (text) {
37171
- if (_this.canShowPageNumber() && text)
37172
- return _this.num + ". " + text;
37173
- return text;
37174
- };
37175
37667
  _this.createLocalizableString("navigationDescription", _this, true);
37176
37668
  _this.dragDropPageHelper = new drag_drop_page_helper_v1_DragDropPageHelperV1(_this);
37177
37669
  return _this;
@@ -37189,12 +37681,37 @@ var page_PageModel = /** @class */ (function (_super) {
37189
37681
  enumerable: false,
37190
37682
  configurable: true
37191
37683
  });
37684
+ Object.defineProperty(PageModel.prototype, "no", {
37685
+ get: function () {
37686
+ return this.canShowPageNumber() ? this.num + ". " : "";
37687
+ },
37688
+ enumerable: false,
37689
+ configurable: true
37690
+ });
37691
+ Object.defineProperty(PageModel.prototype, "cssTitleNumber", {
37692
+ get: function () {
37693
+ return this.cssClasses.page.number;
37694
+ },
37695
+ enumerable: false,
37696
+ configurable: true
37697
+ });
37698
+ Object.defineProperty(PageModel.prototype, "cssRequiredText", {
37699
+ get: function () {
37700
+ return "";
37701
+ },
37702
+ enumerable: false,
37703
+ configurable: true
37704
+ });
37192
37705
  PageModel.prototype.canShowPageNumber = function () {
37193
37706
  return this.survey && this.survey.showPageNumbers;
37194
37707
  };
37195
37708
  PageModel.prototype.canShowTitle = function () {
37196
37709
  return this.survey && this.survey.showPageTitles;
37197
37710
  };
37711
+ PageModel.prototype.setTitleValue = function (val) {
37712
+ _super.prototype.setTitleValue.call(this, val);
37713
+ this.navigationLocStrChanged();
37714
+ };
37198
37715
  Object.defineProperty(PageModel.prototype, "navigationTitle", {
37199
37716
  /**
37200
37717
  * A caption displayed on a navigation button in the TOC or progress bar. Applies when [`showTOC`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showTOC) is `true` or when the [progress bar is visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showProgressBar), [`progressBarType`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarType) is set to `"pages"`, and [`progressBarShowPageTitles`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarShowPageTitles) is `true`.
@@ -37779,24 +38296,8 @@ function tryFocusPage(survey, panel) {
37779
38296
  return true;
37780
38297
  }
37781
38298
  function createTOCListModel(survey, onAction) {
37782
- var _a;
37783
- var pagesSource = survey.questionsOnPageMode === "singlePage" ? (_a = survey.pages[0]) === null || _a === void 0 ? void 0 : _a.elements : survey.pages;
37784
- var items = (pagesSource || []).map(function (page) {
37785
- return new action_Action({
37786
- id: page.name,
37787
- locTitle: page.locNavigationTitle,
37788
- action: function () {
37789
- DomDocumentHelper.activeElementBlur();
37790
- !!onAction && onAction();
37791
- if (page instanceof page_PageModel) {
37792
- return survey.tryNavigateToPage(page);
37793
- }
37794
- return tryFocusPage(survey, page);
37795
- },
37796
- visible: new ComputedUpdater(function () { return page.isVisible && !(page["isStartPage"]); })
37797
- });
37798
- });
37799
- var selectedItem = items.filter(function (i) { return !!survey.currentPage && i.id === survey.currentPage.name; })[0] || items.filter(function (i) { return i.id === pagesSource[0].name; })[0];
38299
+ var items = getTOCItems(survey, onAction);
38300
+ var selectedItem = items.filter(function (i) { return !!survey.currentPage && i.id === survey.currentPage.name; })[0] || items[0];
37800
38301
  var listOptions = {
37801
38302
  items: items,
37802
38303
  onSelectionChanged: function (item) {
@@ -37812,10 +38313,35 @@ function createTOCListModel(survey, onAction) {
37812
38313
  var listModel = new list_ListModel(listOptions);
37813
38314
  listModel.allowSelection = false;
37814
38315
  survey.onCurrentPageChanged.add(function (s, o) {
37815
- listModel.selectedItem = items.filter(function (i) { return !!survey.currentPage && i.id === survey.currentPage.name; })[0];
38316
+ listModel.selectedItem = listModel.actions.filter(function (i) { return !!survey.currentPage && i.id === survey.currentPage.name; })[0];
37816
38317
  });
38318
+ survey.registerFunctionOnPropertyValueChanged("pages", function () {
38319
+ listModel.setItems(getTOCItems(survey, onAction));
38320
+ }, "toc");
37817
38321
  return listModel;
37818
38322
  }
38323
+ function getTOCItems(survey, onAction) {
38324
+ var _a;
38325
+ var pagesSource = survey.questionsOnPageMode === "singlePage" ? (_a = survey.pages[0]) === null || _a === void 0 ? void 0 : _a.elements : survey.pages;
38326
+ var items = (pagesSource || []).map(function (page) {
38327
+ return new action_Action({
38328
+ id: page.name,
38329
+ locTitle: page.locNavigationTitle,
38330
+ action: function () {
38331
+ DomDocumentHelper.activeElementBlur();
38332
+ !!onAction && onAction();
38333
+ if (page instanceof page_PageModel) {
38334
+ return survey.tryNavigateToPage(page);
38335
+ }
38336
+ return tryFocusPage(survey, page);
38337
+ },
38338
+ visible: new ComputedUpdater(function () {
38339
+ return page.isVisible && !(page["isStartPage"]);
38340
+ })
38341
+ });
38342
+ });
38343
+ return items;
38344
+ }
37819
38345
  function getTocRootCss(survey, isMobile) {
37820
38346
  if (isMobile === void 0) { isMobile = false; }
37821
38347
  var rootCss = surveyToc_TOCModel.RootStyle;
@@ -37886,6 +38412,7 @@ var surveyToc_TOCModel = /** @class */ (function () {
37886
38412
  configurable: true
37887
38413
  });
37888
38414
  TOCModel.prototype.dispose = function () {
38415
+ this.survey.unRegisterFunctionOnPropertyValueChanged("pages", "toc");
37889
38416
  this.popupModel.dispose();
37890
38417
  this.listModel.dispose();
37891
38418
  };
@@ -37963,7 +38490,7 @@ var survey_SurveyModel = /** @class */ (function (_super) {
37963
38490
  *
37964
38491
  * For information on event handler parameters, refer to descriptions within the interface.
37965
38492
  *
37966
- * [Conditional Survey Logic (Triggers)](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#conditional-survey-logic-triggers (linkStyle)).
38493
+ * [Conditional Survey Logic (Triggers)](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#conditional-survey-logic-triggers (linkStyle))
37967
38494
  * @see triggers
37968
38495
  * @see runTriggers
37969
38496
  */
@@ -45340,13 +45867,15 @@ var survey_SurveyModel = /** @class */ (function (_super) {
45340
45867
  return this.processText(options.html, true);
45341
45868
  };
45342
45869
  SurveyModel.prototype.processText = function (text, returnDisplayValue) {
45343
- return this.processTextEx(text, returnDisplayValue, false).text;
45870
+ return this.processTextEx({ text: text, returnDisplayValue: returnDisplayValue, doEncoding: false }).text;
45344
45871
  };
45345
- SurveyModel.prototype.processTextEx = function (text, returnDisplayValue, doEncoding) {
45346
- var res = {
45347
- text: this.processTextCore(text, returnDisplayValue, doEncoding),
45348
- hasAllValuesOnLastRun: true,
45349
- };
45872
+ SurveyModel.prototype.processTextEx = function (params) {
45873
+ var doEncoding = params.doEncoding === undefined ? settings.web.encodeUrlParams : params.doEncoding;
45874
+ var text = params.text;
45875
+ if (params.runAtDesign || !this.isDesignMode) {
45876
+ text = this.textPreProcessor.process(text, params.returnDisplayValue === true, doEncoding);
45877
+ }
45878
+ var res = { text: text, hasAllValuesOnLastRun: true };
45350
45879
  res.hasAllValuesOnLastRun = this.textPreProcessor.hasAllValuesOnLastRun;
45351
45880
  return res;
45352
45881
  };
@@ -45364,12 +45893,6 @@ var survey_SurveyModel = /** @class */ (function (_super) {
45364
45893
  enumerable: false,
45365
45894
  configurable: true
45366
45895
  });
45367
- SurveyModel.prototype.processTextCore = function (text, returnDisplayValue, doEncoding) {
45368
- if (doEncoding === void 0) { doEncoding = false; }
45369
- if (this.isDesignMode)
45370
- return text;
45371
- return this.textPreProcessor.process(text, returnDisplayValue, doEncoding);
45372
- };
45373
45896
  SurveyModel.prototype.getSurveyMarkdownHtml = function (element, text, name) {
45374
45897
  var options = {
45375
45898
  element: element,
@@ -46701,6 +47224,7 @@ var question_baseselect_decorate = (undefined && undefined.__decorate) || functi
46701
47224
 
46702
47225
 
46703
47226
 
47227
+
46704
47228
  /**
46705
47229
  * A base class for multiple-choice question types ([Checkboxes](https://surveyjs.io/form-library/documentation/questioncheckboxmodel), [Dropdown](https://surveyjs.io/form-library/documentation/questiondropdownmodel), [Radio Button Group](https://surveyjs.io/form-library/documentation/questionradiogroupmodel), etc.).
46706
47230
  */
@@ -46738,6 +47262,7 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
46738
47262
  _this.registerPropertyChangedHandlers(["hideIfChoicesEmpty"], function () {
46739
47263
  _this.onVisibleChanged();
46740
47264
  });
47265
+ _this.otherTextAreaModel = new text_area_TextAreaModel(_this.getOtherTextAreaOptions());
46741
47266
  _this.createNewArray("visibleChoices", function () { return _this.updateRenderedChoices(); }, function () { return _this.updateRenderedChoices(); });
46742
47267
  _this.setNewRestfulProperty();
46743
47268
  var locOtherText = _this.createLocalizableString("otherText", _this.otherItemValue, true, "otherItemText");
@@ -46768,6 +47293,26 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
46768
47293
  enumerable: false,
46769
47294
  configurable: true
46770
47295
  });
47296
+ QuestionSelectBase.prototype.getOtherTextAreaOptions = function () {
47297
+ var _this = this;
47298
+ var options = {
47299
+ question: this,
47300
+ id: function () { return _this.otherId; },
47301
+ propertyName: "otherValue",
47302
+ className: function () { return _this.cssClasses.other; },
47303
+ placeholder: function () { return _this.otherPlaceholder; },
47304
+ isDisabledAttr: function () { return _this.isInputReadOnly || false; },
47305
+ rows: function () { return _this.commentAreaRows; },
47306
+ maxLength: function () { return _this.getOthersMaxLength(); },
47307
+ autoGrow: function () { return _this.survey && _this.survey.autoGrowComment; },
47308
+ ariaRequired: function () { return _this.ariaRequired || _this.a11y_input_ariaRequired; },
47309
+ ariaLabel: function () { return _this.ariaLabel || _this.a11y_input_ariaLabel; },
47310
+ getTextValue: function () { return _this.otherValue; },
47311
+ onTextAreaChange: function (e) { _this.onOtherValueChange(e); },
47312
+ onTextAreaInput: function (e) { _this.onOtherValueInput(e); },
47313
+ };
47314
+ return options;
47315
+ };
46771
47316
  QuestionSelectBase.prototype.getType = function () {
46772
47317
  return "selectbase";
46773
47318
  };
@@ -47582,7 +48127,7 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
47582
48127
  * }
47583
48128
  * ```
47584
48129
  *
47585
- * To enable Markdown support for the `text` property, implement Markdown-to-HTML conversion in the [onTextMarkdown](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTextMarkdown) event handler. For an example, refer to the following demo: [Convert Markdown to HTML with Showdown](https://surveyjs.io/form-library/examples/edit-survey-questions-markdown/).
48130
+ * To enable Markdown support for the `text` property, implement Markdown-to-HTML conversion in the [`onTextMarkdown`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTextMarkdown) event handler. For an example, refer to the following demo: [Convert Markdown to HTML with markdown-it](https://surveyjs.io/form-library/examples/edit-survey-questions-markdown/).
47586
48131
  *
47587
48132
  * If you add custom properties, refer to the following help topic to learn how to serialize them into JSON: [Add Custom Properties to Property Grid](https://surveyjs.io/survey-creator/documentation/property-grid#add-custom-properties-to-the-property-grid).
47588
48133
  *
@@ -47618,7 +48163,7 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
47618
48163
  this.isLockVisibleChoices = !!question && question.name === val;
47619
48164
  if (!!question && question.name !== val) {
47620
48165
  question.removeDependedQuestion(this);
47621
- if (this.isDesignMode && !this.isLoadingFromJson && !!val) {
48166
+ if (this.isInDesignMode && !this.isLoadingFromJson && !!val) {
47622
48167
  this.setPropertyValue("choicesFromQuestion", undefined);
47623
48168
  }
47624
48169
  }
@@ -47965,8 +48510,8 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
47965
48510
  };
47966
48511
  Object.defineProperty(QuestionSelectBase.prototype, "isAddDefaultItems", {
47967
48512
  get: function () {
47968
- return settings.showDefaultItemsInCreatorV2 && this.isDesignModeV2 &&
47969
- !this.customWidget && !this.isContentElement;
48513
+ return settings.showDefaultItemsInCreatorV2 && this.isInDesignModeV2 &&
48514
+ !this.customWidget;
47970
48515
  },
47971
48516
  enumerable: false,
47972
48517
  configurable: true
@@ -48092,7 +48637,7 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
48092
48637
  });
48093
48638
  Object.defineProperty(QuestionSelectBase.prototype, "isEmptyActiveChoicesInDesign", {
48094
48639
  get: function () {
48095
- return this.isDesignModeV2 && (this.hasChoicesUrl || this.isMessagePanelVisible);
48640
+ return this.isInDesignModeV2 && (this.hasChoicesUrl || this.isMessagePanelVisible);
48096
48641
  },
48097
48642
  enumerable: false,
48098
48643
  configurable: true
@@ -48132,7 +48677,7 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
48132
48677
  return !!question && question.isValueArray ? question : null;
48133
48678
  };
48134
48679
  QuestionSelectBase.prototype.getChoicesFromArrayQuestion = function (question) {
48135
- if (this.isDesignMode)
48680
+ if (this.isInDesignMode)
48136
48681
  return [];
48137
48682
  var val = question.value;
48138
48683
  if (!Array.isArray(val))
@@ -48157,7 +48702,7 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
48157
48702
  return keys.length > 0 ? keys[0] : undefined;
48158
48703
  };
48159
48704
  QuestionSelectBase.prototype.getChoicesFromSelectQuestion = function (question) {
48160
- if (this.isDesignMode)
48705
+ if (this.isInDesignMode)
48161
48706
  return [];
48162
48707
  var res = [];
48163
48708
  var isSelected = this.choicesFromQuestionMode == "selected"
@@ -48332,7 +48877,7 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
48332
48877
  };
48333
48878
  QuestionSelectBase.prototype.runChoicesByUrl = function () {
48334
48879
  this.updateIsUsingRestful();
48335
- if (!this.choicesByUrl || this.isLoadingFromJson || this.isRunningChoices || this.isDesignModeV2)
48880
+ if (!this.choicesByUrl || this.isLoadingFromJson || this.isRunningChoices || this.isInDesignModeV2)
48336
48881
  return;
48337
48882
  var processor = this.surveyImpl
48338
48883
  ? this.surveyImpl.getTextProcessor()
@@ -48500,7 +49045,7 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
48500
49045
  return !choices || choices.length > 0;
48501
49046
  };
48502
49047
  QuestionSelectBase.prototype.sortVisibleChoices = function (array) {
48503
- if (this.isDesignMode)
49048
+ if (this.isInDesignMode)
48504
49049
  return array;
48505
49050
  var order = this.choicesOrder.toLowerCase();
48506
49051
  if (order == "asc")
@@ -48725,10 +49270,13 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
48725
49270
  });
48726
49271
  Object.defineProperty(QuestionSelectBase.prototype, "headItems", {
48727
49272
  get: function () {
48728
- var count = (this.separateSpecialChoices || this.isDesignMode) ? this.headItemsCount : 0;
49273
+ var count = (this.separateSpecialChoices || this.isInDesignMode) ? this.headItemsCount : 0;
48729
49274
  var res = [];
48730
- for (var i = 0; i < count; i++)
48731
- this.renderedChoices[i] && res.push(this.renderedChoices[i]);
49275
+ for (var i = 0; i < count; i++) {
49276
+ if (this.renderedChoices[i]) {
49277
+ res.push(this.renderedChoices[i]);
49278
+ }
49279
+ }
48732
49280
  return res;
48733
49281
  },
48734
49282
  enumerable: false,
@@ -48736,11 +49284,14 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
48736
49284
  });
48737
49285
  Object.defineProperty(QuestionSelectBase.prototype, "footItems", {
48738
49286
  get: function () {
48739
- var count = (this.separateSpecialChoices || this.isDesignMode) ? this.footItemsCount : 0;
49287
+ var count = (this.separateSpecialChoices || this.isInDesignMode) ? this.footItemsCount : 0;
48740
49288
  var res = [];
48741
49289
  var items = this.renderedChoices;
48742
- for (var i = 0; i < count; i++)
48743
- this.renderedChoices[items.length - count + i] && res.push(this.renderedChoices[items.length - count + i]);
49290
+ for (var i = 0; i < count; i++) {
49291
+ if (this.renderedChoices[items.length - count + i]) {
49292
+ res.push(this.renderedChoices[items.length - count + i]);
49293
+ }
49294
+ }
48744
49295
  return res;
48745
49296
  },
48746
49297
  enumerable: false,
@@ -48780,7 +49331,7 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
48780
49331
  var columns = [];
48781
49332
  var colCount = this.getCurrentColCount();
48782
49333
  if (this.hasColumns && this.renderedChoices.length > 0) {
48783
- var choicesToBuildColumns = (!this.separateSpecialChoices && !this.isDesignMode) ?
49334
+ var choicesToBuildColumns = (!this.separateSpecialChoices && !this.isInDesignMode) ?
48784
49335
  this.renderedChoices : this.dataChoices;
48785
49336
  if (settings.showItemsInOrder == "column") {
48786
49337
  var prevIndex = 0;
@@ -48967,9 +49518,11 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
48967
49518
  return classes;
48968
49519
  };
48969
49520
  question_baseselect_decorate([
48970
- jsonobject_property({ onSet: function (newVal, target) {
49521
+ jsonobject_property({
49522
+ onSet: function (newVal, target) {
48971
49523
  target.onSelectedItemValuesChangedHandler(newVal);
48972
- } })
49524
+ }
49525
+ })
48973
49526
  ], QuestionSelectBase.prototype, "selectedItemValues", void 0);
48974
49527
  question_baseselect_decorate([
48975
49528
  jsonobject_property()
@@ -51310,6 +51863,7 @@ var question_matrix_extends = (undefined && undefined.__extends) || (function ()
51310
51863
 
51311
51864
 
51312
51865
 
51866
+
51313
51867
  var question_matrix_MatrixRowModel = /** @class */ (function (_super) {
51314
51868
  question_matrix_extends(MatrixRowModel, _super);
51315
51869
  function MatrixRowModel(item, fullName, data, value) {
@@ -51597,9 +52151,8 @@ var question_matrix_QuestionMatrixModel = /** @class */ (function (_super) {
51597
52151
  _this.onColumnsChanged();
51598
52152
  });
51599
52153
  _this.registerPropertyChangedHandlers(["rows"], function () {
51600
- if (!_this.filterItems()) {
51601
- _this.onRowsChanged();
51602
- }
52154
+ _this.runCondition(_this.getDataFilteredValues(), _this.getDataFilteredProperties());
52155
+ _this.onRowsChanged();
51603
52156
  });
51604
52157
  _this.registerPropertyChangedHandlers(["hideIfRowsEmpty"], function () {
51605
52158
  _this.updateVisibilityBasedOnRows();
@@ -51769,21 +52322,31 @@ var question_matrix_QuestionMatrixModel = /** @class */ (function (_super) {
51769
52322
  }
51770
52323
  return res;
51771
52324
  };
51772
- QuestionMatrixModel.prototype.runItemsCondition = function (values, properties) {
52325
+ QuestionMatrixModel.prototype.runCondition = function (values, properties) {
51773
52326
  itemvalue_ItemValue.runEnabledConditionsForItems(this.rows, undefined, values, properties);
51774
- return _super.prototype.runItemsCondition.call(this, values, properties);
52327
+ _super.prototype.runCondition.call(this, values, properties);
52328
+ };
52329
+ QuestionMatrixModel.prototype.createRowsVisibleIfRunner = function () {
52330
+ return !!this.rowsVisibleIf ? new ConditionRunner(this.rowsVisibleIf) : null;
52331
+ };
52332
+ QuestionMatrixModel.prototype.onRowsChanged = function () {
52333
+ this.clearGeneratedRows();
52334
+ _super.prototype.onRowsChanged.call(this);
51775
52335
  };
51776
52336
  QuestionMatrixModel.prototype.getVisibleRows = function () {
52337
+ if (!!this.generatedVisibleRows)
52338
+ return this.generatedVisibleRows;
51777
52339
  var result = new Array();
51778
52340
  var val = this.value;
51779
52341
  if (!val)
51780
52342
  val = {};
51781
- var rows = !!this.filteredRows ? this.filteredRows : this.rows;
52343
+ var rows = this.filteredRows || this.rows;
51782
52344
  for (var i = 0; i < rows.length; i++) {
51783
52345
  var row = rows[i];
51784
52346
  if (this.isValueEmpty(row.value))
51785
52347
  continue;
51786
- result.push(this.createMatrixRow(row, this.id + "_" + row.value.toString().replace(/\s/g, "_"), val[row.value]));
52348
+ var rowId = this.id + "_" + row.value.toString().replace(/\s/g, "_");
52349
+ result.push(this.createMatrixRow(row, rowId, val[row.value]));
51787
52350
  }
51788
52351
  this.generatedVisibleRows = result;
51789
52352
  return result;
@@ -51799,6 +52362,8 @@ var question_matrix_QuestionMatrixModel = /** @class */ (function (_super) {
51799
52362
  QuestionMatrixModel.prototype.endLoadingFromJson = function () {
51800
52363
  _super.prototype.endLoadingFromJson.call(this);
51801
52364
  this.rows = this.sortVisibleRows(this.rows);
52365
+ this.onRowsChanged();
52366
+ this.onColumnsChanged();
51802
52367
  };
51803
52368
  QuestionMatrixModel.prototype.isNewValueCorrect = function (val) {
51804
52369
  return helpers_Helpers.isValueObject(val, true);
@@ -52031,11 +52596,47 @@ var question_matrix_QuestionMatrixModel = /** @class */ (function (_super) {
52031
52596
  json["type"] = question.getType();
52032
52597
  return json;
52033
52598
  };
52599
+ QuestionMatrixModel.prototype.clearIncorrectValues = function () {
52600
+ this.clearInvisibleValuesInRowsAndColumns(true, true, true);
52601
+ _super.prototype.clearIncorrectValues.call(this);
52602
+ };
52034
52603
  QuestionMatrixModel.prototype.clearValueIfInvisibleCore = function (reason) {
52035
52604
  _super.prototype.clearValueIfInvisibleCore.call(this, reason);
52036
- if (this.hasRows) {
52037
- this.clearInvisibleValuesInRows();
52605
+ this.clearInvisibleValuesInRowsAndColumns(true, true, false);
52606
+ };
52607
+ QuestionMatrixModel.prototype.clearInvisibleColumnValues = function () {
52608
+ this.clearInvisibleValuesInRowsAndColumns(false, true, false);
52609
+ };
52610
+ QuestionMatrixModel.prototype.clearInvisibleValuesInRows = function () {
52611
+ this.clearInvisibleValuesInRowsAndColumns(true, false, false);
52612
+ };
52613
+ QuestionMatrixModel.prototype.clearInvisibleValuesInRowsAndColumns = function (inRows, inColumns, inCorrectRows) {
52614
+ if (this.isEmpty())
52615
+ return;
52616
+ var updatedData = this.getUnbindValue(this.value);
52617
+ var newData = {};
52618
+ var rows = this.rows;
52619
+ for (var i = 0; i < rows.length; i++) {
52620
+ var key = rows[i].value;
52621
+ if (!!updatedData[key]) {
52622
+ if (inRows && !rows[i].isVisible || inColumns && !this.getVisibleColumnByValue(updatedData[key])) {
52623
+ delete updatedData[key];
52624
+ }
52625
+ else {
52626
+ newData[key] = updatedData[key];
52627
+ }
52628
+ }
52629
+ }
52630
+ if (inCorrectRows) {
52631
+ updatedData = newData;
52038
52632
  }
52633
+ if (this.isTwoValueEquals(updatedData, this.value))
52634
+ return;
52635
+ this.value = updatedData;
52636
+ };
52637
+ QuestionMatrixModel.prototype.getVisibleColumnByValue = function (val) {
52638
+ var col = itemvalue_ItemValue.getItemByValue(this.columns, val);
52639
+ return !!col && col.isVisible ? col : null;
52039
52640
  };
52040
52641
  QuestionMatrixModel.prototype.getFirstInputElementId = function () {
52041
52642
  var rows = this.generatedVisibleRows;
@@ -52941,6 +53542,7 @@ var question_text_QuestionTextModel = /** @class */ (function (_super) {
52941
53542
  }
52942
53543
  var valName = this.getValidatorTitle();
52943
53544
  var emailValidator = new EmailValidator();
53545
+ emailValidator.errorOwner = this;
52944
53546
  if (this.inputType === "email" &&
52945
53547
  !this.validators.some(function (v) { return v.getType() === "emailvalidator"; })) {
52946
53548
  var validateResult = emailValidator.validate(this.value, valName);
@@ -54056,7 +54658,7 @@ var question_multipletext_QuestionMultipleTextModel = /** @class */ (function (_
54056
54658
  * }
54057
54659
  * ```
54058
54660
  *
54059
- * To enable Markdown support for the `title` property, implement Markdown-to-HTML conversion in the [`onTextMarkdown`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTextMarkdown) event handler. For an example, refer to the following demo: [Convert Markdown to HTML with Showdown](https://surveyjs.io/form-library/examples/edit-survey-questions-markdown/).
54661
+ * To enable Markdown support for the `title` property, implement Markdown-to-HTML conversion in the [`onTextMarkdown`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTextMarkdown) event handler. For an example, refer to the following demo: [Convert Markdown to HTML with markdown-it](https://surveyjs.io/form-library/examples/edit-survey-questions-markdown/).
54060
54662
  * @see itemTitleWidth
54061
54663
  * @see addItem
54062
54664
  */
@@ -56571,19 +57173,31 @@ var choices_DragDropChoices = /** @class */ (function (_super) {
56571
57173
  return false;
56572
57174
  return true;
56573
57175
  };
56574
- DragDropChoices.prototype.calculateIsBottom = function (clientY) {
56575
- var choices = this.getVisibleChoices();
56576
- return (choices.indexOf(this.dropTarget) - choices.indexOf(this.draggedElement) >
56577
- 0);
57176
+ DragDropChoices.prototype.isDropTargetDoesntChanged = function (newIsBottom) {
57177
+ return (this.dropTarget === this.prevDropTarget && newIsBottom === this.isBottom);
57178
+ };
57179
+ DragDropChoices.prototype.calculateIsBottom = function (clientY, dropTargetNode) {
57180
+ var rect = dropTargetNode.getBoundingClientRect();
57181
+ return clientY >= rect.y + rect.height / 2;
56578
57182
  };
56579
57183
  DragDropChoices.prototype.afterDragOver = function (dropTargetNode) {
56580
- if (this.isDropTargetDoesntChanged(this.isBottom))
56581
- return;
57184
+ //if (this.isDropTargetDoesntChanged(this.isBottom)) return;
56582
57185
  var choices = this.getVisibleChoices();
56583
57186
  var dropTargetIndex = choices.indexOf(this.dropTarget);
56584
57187
  var draggedElementIndex = choices.indexOf(this.draggedElement);
56585
- choices.splice(draggedElementIndex, 1);
56586
- choices.splice(dropTargetIndex, 0, this.draggedElement);
57188
+ if (draggedElementIndex < dropTargetIndex && this.isBottom === true) {
57189
+ // drag "down"
57190
+ choices.splice(draggedElementIndex, 1);
57191
+ choices.splice(dropTargetIndex, 0, this.draggedElement);
57192
+ }
57193
+ else if (draggedElementIndex > dropTargetIndex && this.isBottom === false) {
57194
+ // drag "up"
57195
+ choices.splice(dropTargetIndex, 1);
57196
+ choices.splice(draggedElementIndex, 0, this.dropTarget);
57197
+ }
57198
+ else {
57199
+ return;
57200
+ }
56587
57201
  if (this.parentElement.getType() === "imagepicker")
56588
57202
  return;
56589
57203
  if (draggedElementIndex !== dropTargetIndex) {
@@ -56743,10 +57357,9 @@ var ranking_choices_DragDropRankingChoices = /** @class */ (function (_super) {
56743
57357
  };
56744
57358
  DragDropRankingChoices.prototype.calculateIsBottom = function (clientY, dropTargetNode) {
56745
57359
  if (this.dropTarget instanceof itemvalue_ItemValue && this.draggedElement !== this.dropTarget) {
56746
- var rect = dropTargetNode.getBoundingClientRect();
56747
- return clientY >= rect.y + rect.height / 2;
57360
+ return _super.prototype.calculateIsBottom.call(this, clientY, dropTargetNode);
56748
57361
  }
56749
- return _super.prototype.calculateIsBottom.call(this, clientY);
57362
+ return false;
56750
57363
  };
56751
57364
  DragDropRankingChoices.prototype.getIndices = function (model, fromChoicesArray, toChoicesArray) {
56752
57365
  var fromIndex = fromChoicesArray.indexOf(this.draggedElement);
@@ -57104,6 +57717,7 @@ var question_ranking_QuestionRankingModel = /** @class */ (function (_super) {
57104
57717
  .append(this.cssClasses.rootSelectToRankEmptyValueMod, this.isEmpty())
57105
57718
  .append(this.cssClasses.rootSelectToRankAlignHorizontal, this.selectToRankEnabled && this.renderedSelectToRankAreasLayout === "horizontal")
57106
57719
  .append(this.cssClasses.rootSelectToRankAlignVertical, this.selectToRankEnabled && this.renderedSelectToRankAreasLayout === "vertical")
57720
+ .append(this.cssClasses.rootSelectToRankSwapAreas, this.selectToRankEnabled && this.renderedSelectToRankAreasLayout === "horizontal" && this.selectToRankSwapAreas)
57107
57721
  .toString();
57108
57722
  },
57109
57723
  enumerable: false,
@@ -57525,6 +58139,16 @@ var question_ranking_QuestionRankingModel = /** @class */ (function (_super) {
57525
58139
  enumerable: false,
57526
58140
  configurable: true
57527
58141
  });
58142
+ Object.defineProperty(QuestionRankingModel.prototype, "selectToRankSwapAreas", {
58143
+ get: function () {
58144
+ return this.getPropertyValue("selectToRankSwapAreas", false);
58145
+ },
58146
+ set: function (val) {
58147
+ this.setPropertyValue("selectToRankSwapAreas", val);
58148
+ },
58149
+ enumerable: false,
58150
+ configurable: true
58151
+ });
57528
58152
  Object.defineProperty(QuestionRankingModel.prototype, "selectToRankAreasLayout", {
57529
58153
  /**
57530
58154
  * Specifies the layout of the ranked and unranked areas. Applies when [`selectToRankEnabled`](https://surveyjs.io/form-library/documentation/api-reference/ranking-question-model#selectToRankEnabled) is `true`.
@@ -57654,6 +58278,13 @@ Serializer.addClass("ranking", [
57654
58278
  visible: true,
57655
58279
  isSerializable: true,
57656
58280
  },
58281
+ {
58282
+ name: "selectToRankSwapAreas:switch",
58283
+ default: false,
58284
+ visible: false,
58285
+ isSerializable: true,
58286
+ dependsOn: "selectToRankEnabled",
58287
+ },
57657
58288
  {
57658
58289
  name: "selectToRankAreasLayout",
57659
58290
  default: "horizontal",
@@ -57730,6 +58361,8 @@ var question_comment_extends = (undefined && undefined.__extends) || (function (
57730
58361
 
57731
58362
 
57732
58363
 
58364
+
58365
+
57733
58366
  /**
57734
58367
  * A class that describes the Long Text question type.
57735
58368
  *
@@ -57737,9 +58370,46 @@ var question_comment_extends = (undefined && undefined.__extends) || (function (
57737
58370
  */
57738
58371
  var question_comment_QuestionCommentModel = /** @class */ (function (_super) {
57739
58372
  question_comment_extends(QuestionCommentModel, _super);
57740
- function QuestionCommentModel() {
57741
- return _super !== null && _super.apply(this, arguments) || this;
58373
+ function QuestionCommentModel(name) {
58374
+ var _this_1 = _super.call(this, name) || this;
58375
+ _this_1.textAreaModel = new text_area_TextAreaModel(_this_1.getTextAreaOptions());
58376
+ return _this_1;
57742
58377
  }
58378
+ QuestionCommentModel.prototype.getTextAreaOptions = function () {
58379
+ var _this_1 = this;
58380
+ var _this = this;
58381
+ var updateQuestionValue = function (newValue) {
58382
+ if (!helpers_Helpers.isTwoValueEquals(_this.value, newValue, false, true, false)) {
58383
+ _this.value = newValue;
58384
+ }
58385
+ };
58386
+ var options = {
58387
+ question: this,
58388
+ id: function () { return _this_1.inputId; },
58389
+ propertyName: "value",
58390
+ className: function () { return _this_1.className; },
58391
+ placeholder: function () { return _this_1.renderedPlaceholder; },
58392
+ isDisabledAttr: function () { return _this_1.isDisabledAttr; },
58393
+ isReadOnlyAttr: function () { return _this_1.isReadOnlyAttr; },
58394
+ autoGrow: function () { return _this_1.renderedAutoGrow; },
58395
+ maxLength: function () { return _this_1.getMaxLength(); },
58396
+ rows: function () { return _this_1.rows; },
58397
+ cols: function () { return _this_1.cols; },
58398
+ ariaRequired: function () { return _this_1.a11y_input_ariaRequired; },
58399
+ ariaLabel: function () { return _this_1.a11y_input_ariaLabel; },
58400
+ ariaLabelledBy: function () { return _this_1.a11y_input_ariaLabelledBy; },
58401
+ ariaDescribedBy: function () { return _this_1.a11y_input_ariaDescribedBy; },
58402
+ ariaInvalid: function () { return _this_1.a11y_input_ariaInvalid; },
58403
+ ariaErrormessage: function () { return _this_1.a11y_input_ariaErrormessage; },
58404
+ getTextValue: function () { return _this_1.value; },
58405
+ onTextAreaChange: function (e) { updateQuestionValue(e.target.value); },
58406
+ onTextAreaInput: function (event) { _this_1.onInput(event); },
58407
+ onTextAreaKeyDown: function (event) { _this_1.onKeyDown(event); },
58408
+ onTextAreaFocus: function (event) { _this_1.onFocus(event); },
58409
+ onTextAreaBlur: function (event) { _this_1.onBlur(event); }
58410
+ };
58411
+ return options;
58412
+ };
57743
58413
  Object.defineProperty(QuestionCommentModel.prototype, "rows", {
57744
58414
  /**
57745
58415
  * Specifies the visible height of the comment area, measured in lines.
@@ -57845,9 +58515,9 @@ var question_comment_QuestionCommentModel = /** @class */ (function (_super) {
57845
58515
  _super.prototype.afterRenderQuestionElement.call(this, el);
57846
58516
  };
57847
58517
  QuestionCommentModel.prototype.updateElement = function () {
57848
- var _this = this;
58518
+ var _this_1 = this;
57849
58519
  if (this.element && this.renderedAutoGrow) {
57850
- setTimeout(function () { return increaseHeightByContent(_this.element); }, 1);
58520
+ setTimeout(function () { return increaseHeightByContent(_this_1.element); }, 1);
57851
58521
  }
57852
58522
  };
57853
58523
  QuestionCommentModel.prototype.beforeDestroyQuestionElement = function (el) {
@@ -59968,7 +60638,7 @@ var question_rating_QuestionRatingModel = /** @class */ (function (_super) {
59968
60638
  *
59969
60639
  * If you add custom properties, refer to the following help topic to learn how to serialize them into JSON: [Add Custom Properties to Property Grid](https://surveyjs.io/survey-creator/documentation/property-grid#add-custom-properties-to-the-property-grid).
59970
60640
  *
59971
- * To enable Markdown support for the `text` property, implement Markdown-to-HTML conversion in the [onTextMarkdown](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTextMarkdown) event handler. For an example, refer to the following demo: [Convert Markdown to HTML with Showdown](https://surveyjs.io/form-library/examples/edit-survey-questions-markdown/).
60641
+ * To enable Markdown support for the `text` property, implement Markdown-to-HTML conversion in the [onTextMarkdown](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTextMarkdown) event handler. For an example, refer to the following demo: [Convert Markdown to HTML with markdown-it](https://surveyjs.io/form-library/examples/edit-survey-questions-markdown/).
59972
60642
  *
59973
60643
  * If you need to specify only the `value` property, you can set the `rateValues` property to an array of numbers, for example, `[ 3, 6, 10 ]`. These values are both saved in survey results and used as display text.
59974
60644
  *
@@ -64612,8 +65282,11 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
64612
65282
  value = [];
64613
65283
  if (value.length == this.panelCount)
64614
65284
  return;
64615
- for (var i = value.length; i < this.panelCount; i++)
64616
- value.push({});
65285
+ for (var i = value.length; i < this.panelCount; i++) {
65286
+ var panelValue = this.panels[i].getValue();
65287
+ var val = !helpers_Helpers.isValueEmpty(panelValue) ? panelValue : {};
65288
+ value.push(val);
65289
+ }
64617
65290
  if (value.length > this.panelCount) {
64618
65291
  value.splice(this.panelCount, value.length - this.panelCount);
64619
65292
  }
@@ -69334,8 +70007,8 @@ Serializer.addClass("currencymask", [
69334
70007
 
69335
70008
  var Version;
69336
70009
  var ReleaseDate;
69337
- Version = "" + "1.12.1";
69338
- ReleaseDate = "" + "2024-09-10";
70010
+ Version = "" + "1.12.3";
70011
+ ReleaseDate = "" + "2024-09-24";
69339
70012
  function checkLibraryVersion(ver, libraryName) {
69340
70013
  if (Version != ver) {
69341
70014
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -69500,6 +70173,7 @@ function checkPrefix(prefix) {
69500
70173
 
69501
70174
 
69502
70175
 
70176
+
69503
70177
 
69504
70178
 
69505
70179
  //Uncomment to include the "date" question type.
@@ -70035,6 +70709,7 @@ var defaultStandardCss = {
70035
70709
  rootSelectToRankMod: "sv-ranking--select-to-rank",
70036
70710
  rootSelectToRankAlignVertical: "sv-ranking--select-to-rank-vertical",
70037
70711
  rootSelectToRankAlignHorizontal: "sv-ranking--select-to-rank-horizontal",
70712
+ rootSelectToRankSwapAreas: "sv-ranking--select-to-rank-swap-areas",
70038
70713
  item: "sv-ranking-item",
70039
70714
  itemContent: "sv-ranking-item__content",
70040
70715
  itemIndex: "sv-ranking-item__index",
@@ -70394,6 +71069,7 @@ var modernCss = {
70394
71069
  page: {
70395
71070
  root: "sv-page sv-body__page",
70396
71071
  title: "sv-title sv-page__title",
71072
+ number: "sv-page__num",
70397
71073
  description: "sv-description sv-page__description",
70398
71074
  },
70399
71075
  pageTitle: "sv-title sv-page__title",
@@ -70468,6 +71144,7 @@ var modernCss = {
70468
71144
  rootSelectToRankMod: "sv-ranking--select-to-rank",
70469
71145
  rootSelectToRankAlignVertical: "sv-ranking--select-to-rank-vertical",
70470
71146
  rootSelectToRankAlignHorizontal: "sv-ranking--select-to-rank-horizontal",
71147
+ rootSelectToRankSwapAreas: "sv-ranking--select-to-rank-swap-areas",
70471
71148
  item: "sv-ranking-item",
70472
71149
  itemContent: "sv-ranking-item__content",
70473
71150
  itemIndex: "sv-ranking-item__index",