survey-core 1.11.4 → 1.11.5

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 (256) hide show
  1. package/defaultV2.css +126 -39
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +126 -39
  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 +2 -1
  8. package/i18n/arabic.js.map +1 -1
  9. package/i18n/arabic.min.js +2 -2
  10. package/i18n/basque.js +1 -1
  11. package/i18n/basque.min.js +1 -1
  12. package/i18n/bulgarian.js +1 -1
  13. package/i18n/bulgarian.min.js +1 -1
  14. package/i18n/catalan.js +1 -1
  15. package/i18n/catalan.min.js +1 -1
  16. package/i18n/croatian.js +1 -1
  17. package/i18n/croatian.min.js +1 -1
  18. package/i18n/czech.js +1 -1
  19. package/i18n/czech.min.js +1 -1
  20. package/i18n/danish.js +1 -1
  21. package/i18n/danish.min.js +1 -1
  22. package/i18n/dutch.js +1 -1
  23. package/i18n/dutch.min.js +1 -1
  24. package/i18n/english.js +1 -1
  25. package/i18n/english.min.js +1 -1
  26. package/i18n/estonian.js +1 -1
  27. package/i18n/estonian.min.js +1 -1
  28. package/i18n/finnish.js +1 -1
  29. package/i18n/finnish.min.js +1 -1
  30. package/i18n/french.js +1 -1
  31. package/i18n/french.min.js +1 -1
  32. package/i18n/georgian.js +1 -1
  33. package/i18n/georgian.min.js +1 -1
  34. package/i18n/german.js +1 -1
  35. package/i18n/german.min.js +1 -1
  36. package/i18n/greek.js +1 -1
  37. package/i18n/greek.min.js +1 -1
  38. package/i18n/hebrew.js +1 -1
  39. package/i18n/hebrew.min.js +1 -1
  40. package/i18n/hindi.js +1 -1
  41. package/i18n/hindi.min.js +1 -1
  42. package/i18n/hungarian.js +1 -1
  43. package/i18n/hungarian.min.js +1 -1
  44. package/i18n/icelandic.js +1 -1
  45. package/i18n/icelandic.min.js +1 -1
  46. package/i18n/index.js +2 -1
  47. package/i18n/index.js.map +1 -1
  48. package/i18n/index.min.js +2 -2
  49. package/i18n/indonesian.js +1 -1
  50. package/i18n/indonesian.min.js +1 -1
  51. package/i18n/italian.js +1 -1
  52. package/i18n/italian.min.js +1 -1
  53. package/i18n/japanese.js +1 -1
  54. package/i18n/japanese.min.js +1 -1
  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 +26 -1
  116. package/modern.css.map +1 -1
  117. package/modern.fontless.css +26 -1
  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.js +1 -1
  123. package/plugins/bootstrap-integration.min.js +1 -1
  124. package/plugins/bootstrap-material-integration.js +1 -1
  125. package/plugins/bootstrap-material-integration.min.js +1 -1
  126. package/survey.core.js +198 -70
  127. package/survey.core.js.map +1 -1
  128. package/survey.core.min.js +3 -3
  129. package/survey.css +33 -1
  130. package/survey.css.map +1 -1
  131. package/survey.i18n.js +2 -1
  132. package/survey.i18n.js.map +1 -1
  133. package/survey.i18n.min.js +2 -2
  134. package/survey.min.css +2 -2
  135. package/themes/borderless-dark-panelless.js +1 -1
  136. package/themes/borderless-dark-panelless.min.js +1 -1
  137. package/themes/borderless-dark.js +1 -1
  138. package/themes/borderless-dark.min.js +1 -1
  139. package/themes/borderless-light-panelless..js +1 -1
  140. package/themes/borderless-light-panelless..min.js +1 -1
  141. package/themes/borderless-light.js +1 -1
  142. package/themes/borderless-light.min.js +1 -1
  143. package/themes/contrast-dark-panelless.js +1 -1
  144. package/themes/contrast-dark-panelless.min.js +1 -1
  145. package/themes/contrast-dark.js +1 -1
  146. package/themes/contrast-dark.min.js +1 -1
  147. package/themes/contrast-light-panelless.js +1 -1
  148. package/themes/contrast-light-panelless.min.js +1 -1
  149. package/themes/contrast-light.js +1 -1
  150. package/themes/contrast-light.min.js +1 -1
  151. package/themes/default-dark-panelless.js +1 -1
  152. package/themes/default-dark-panelless.min.js +1 -1
  153. package/themes/default-dark.js +1 -1
  154. package/themes/default-dark.min.js +1 -1
  155. package/themes/default-light-panelless.js +1 -1
  156. package/themes/default-light-panelless.min.js +1 -1
  157. package/themes/default-light.js +1 -1
  158. package/themes/default-light.min.js +1 -1
  159. package/themes/doubleborder-dark-panelless.js +1 -1
  160. package/themes/doubleborder-dark-panelless.min.js +1 -1
  161. package/themes/doubleborder-dark.js +1 -1
  162. package/themes/doubleborder-dark.min.js +1 -1
  163. package/themes/doubleborder-light-panelles.js +1 -1
  164. package/themes/doubleborder-light-panelles.min.js +1 -1
  165. package/themes/doubleborder-light.js +1 -1
  166. package/themes/doubleborder-light.min.js +1 -1
  167. package/themes/flat-dark-panelless.js +1 -1
  168. package/themes/flat-dark-panelless.min.js +1 -1
  169. package/themes/flat-dark.js +1 -1
  170. package/themes/flat-dark.min.js +1 -1
  171. package/themes/flat-light-panelless.js +1 -1
  172. package/themes/flat-light-panelless.min.js +1 -1
  173. package/themes/flat-light.js +1 -1
  174. package/themes/flat-light.min.js +1 -1
  175. package/themes/index.js +1 -1
  176. package/themes/index.min.js +1 -1
  177. package/themes/layered-dark-panelless.js +1 -1
  178. package/themes/layered-dark-panelless.min.js +1 -1
  179. package/themes/layered-dark.js +1 -1
  180. package/themes/layered-dark.min.js +1 -1
  181. package/themes/layered-light-panelless.js +1 -1
  182. package/themes/layered-light-panelless.min.js +1 -1
  183. package/themes/layered-light.js +1 -1
  184. package/themes/layered-light.min.js +1 -1
  185. package/themes/plain-dark-panelless.js +1 -1
  186. package/themes/plain-dark-panelless.min.js +1 -1
  187. package/themes/plain-dark.js +1 -1
  188. package/themes/plain-dark.min.js +1 -1
  189. package/themes/plain-light-panelless.js +1 -1
  190. package/themes/plain-light-panelless.min.js +1 -1
  191. package/themes/plain-light.js +1 -1
  192. package/themes/plain-light.min.js +1 -1
  193. package/themes/sharp-dark-panelless.js +1 -1
  194. package/themes/sharp-dark-panelless.min.js +1 -1
  195. package/themes/sharp-dark.js +1 -1
  196. package/themes/sharp-dark.min.js +1 -1
  197. package/themes/sharp-light-panelless.js +1 -1
  198. package/themes/sharp-light-panelless.min.js +1 -1
  199. package/themes/sharp-light.js +1 -1
  200. package/themes/sharp-light.min.js +1 -1
  201. package/themes/solid-dark-panelless.js +1 -1
  202. package/themes/solid-dark-panelless.min.js +1 -1
  203. package/themes/solid-dark.js +1 -1
  204. package/themes/solid-dark.min.js +1 -1
  205. package/themes/solid-light-panelless.js +1 -1
  206. package/themes/solid-light-panelless.min.js +1 -1
  207. package/themes/solid-light.js +1 -1
  208. package/themes/solid-light.min.js +1 -1
  209. package/themes/three-dimensional-dark-panelless.js +1 -1
  210. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  211. package/themes/three-dimensional-dark.js +1 -1
  212. package/themes/three-dimensional-dark.min.js +1 -1
  213. package/themes/three-dimensional-light-panelless.js +1 -1
  214. package/themes/three-dimensional-light-panelless.min.js +1 -1
  215. package/themes/three-dimensional-light.js +1 -1
  216. package/themes/three-dimensional-light.min.js +1 -1
  217. package/ts3.4/typings/actions/action.d.ts +2 -1
  218. package/ts3.4/typings/base-interfaces.d.ts +1 -0
  219. package/ts3.4/typings/dragdrop/choices.d.ts +1 -0
  220. package/ts3.4/typings/dragdrop/ranking-choices.d.ts +1 -1
  221. package/ts3.4/typings/list.d.ts +2 -0
  222. package/ts3.4/typings/martixBase.d.ts +1 -0
  223. package/ts3.4/typings/panel.d.ts +2 -0
  224. package/ts3.4/typings/question.d.ts +4 -1
  225. package/ts3.4/typings/question_baseselect.d.ts +9 -0
  226. package/ts3.4/typings/question_checkbox.d.ts +1 -0
  227. package/ts3.4/typings/question_custom.d.ts +19 -2
  228. package/ts3.4/typings/question_expression.d.ts +1 -1
  229. package/ts3.4/typings/question_matrixdropdown.d.ts +2 -0
  230. package/ts3.4/typings/question_matrixdropdownbase.d.ts +5 -1
  231. package/ts3.4/typings/question_ranking.d.ts +1 -4
  232. package/ts3.4/typings/question_rating.d.ts +8 -3
  233. package/ts3.4/typings/settings.d.ts +9 -2
  234. package/ts3.4/typings/survey-events-api.d.ts +1 -0
  235. package/ts3.4/typings/survey.d.ts +13 -0
  236. package/ts3.4/typings/surveyStrings.d.ts +3 -0
  237. package/typings/actions/action.d.ts +2 -1
  238. package/typings/base-interfaces.d.ts +1 -0
  239. package/typings/dragdrop/choices.d.ts +1 -0
  240. package/typings/dragdrop/ranking-choices.d.ts +1 -1
  241. package/typings/list.d.ts +2 -0
  242. package/typings/martixBase.d.ts +1 -0
  243. package/typings/panel.d.ts +2 -0
  244. package/typings/question.d.ts +4 -1
  245. package/typings/question_baseselect.d.ts +9 -0
  246. package/typings/question_checkbox.d.ts +1 -0
  247. package/typings/question_custom.d.ts +19 -2
  248. package/typings/question_expression.d.ts +1 -1
  249. package/typings/question_matrixdropdown.d.ts +2 -0
  250. package/typings/question_matrixdropdownbase.d.ts +5 -1
  251. package/typings/question_ranking.d.ts +1 -4
  252. package/typings/question_rating.d.ts +8 -3
  253. package/typings/settings.d.ts +9 -2
  254. package/typings/survey-events-api.d.ts +1 -0
  255. package/typings/survey.d.ts +14 -0
  256. package/typings/surveyStrings.d.ts +3 -0
@@ -469,6 +469,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
469
469
  hasOther: boolean;
470
470
  protected hasOtherChanged(): void;
471
471
  readonly requireUpdateCommentValue: boolean;
472
+ readOnlyCallback: () => boolean;
472
473
  readonly isReadOnly: boolean;
473
474
  readonly isInputReadOnly: boolean;
474
475
  readonly renderedInputReadOnly: string;
@@ -505,6 +506,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
505
506
  protected initDataFromSurvey(): void;
506
507
  protected initCommentFromSurvey(): void;
507
508
  protected runExpression(expression: string): any;
509
+ readonly commentAreaRows: number;
508
510
  private readonly autoGrowComment: any;
509
511
  private readonly allowResizeComment: any;
510
512
  private questionValue: any;
@@ -695,6 +697,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
695
697
  protected isValueExpression(val: any): boolean;
696
698
  protected setValueAndRunExpression(runner: ExpressionRunner, defaultValue: any, setFunc: (val: any) => void, values?: HashTable<any>, properties?: HashTable<any>): void;
697
699
  protected convertFuncValuetoQuestionValue(val: any): any;
700
+ private runExpressionSetValueCore;
698
701
  private runExpressionSetValue;
699
702
  private runDefaultValueExpression;
700
703
  /*
@@ -753,7 +756,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
753
756
  protected canRunValidators(isOnValueChanged: boolean): boolean;
754
757
  private fireSurveyValidation;
755
758
  protected onCheckForErrors(errors: Array<SurveyError>, isOnValueChanged: boolean): void;
756
- protected hasRequiredError(): boolean;
759
+ hasRequiredError(): boolean;
757
760
  private validatorRunner;
758
761
  private isRunningValidatorsValue;
759
762
  onCompletedAsyncValidators: (hasErrors: boolean) => void;
@@ -459,6 +459,11 @@ export declare class QuestionSelectBase extends Question {
459
459
  readonly hasHeadItems: boolean;
460
460
  readonly hasFootItems: boolean;
461
461
  readonly columns: any[];
462
+ protected getObservedElementSelector(): string;
463
+ protected supportResponsiveness(): boolean;
464
+ allowMultiColumns: boolean;
465
+ protected onBeforeSetCompactRenderer(): void;
466
+ protected onBeforeSetDesktopRenderer(): void;
462
467
  readonly hasColumns: boolean;
463
468
  readonly rowLayout: boolean;
464
469
  readonly blockedRow: boolean;
@@ -483,6 +488,10 @@ export declare class QuestionSelectBase extends Question {
483
488
  protected getDefaultItemComponent(): string;
484
489
  /*
485
490
  * The name of a component used to render items.
491
+ *
492
+ * [View Dropdown Demo](https://surveyjs.io/form-library/examples/dropdown-box-with-custom-items/ (linkStyle))
493
+ *
494
+ * [View Ranking Demo](https://surveyjs.io/form-library/examples/dropdown-box-with-custom-items/ (linkStyle))
486
495
  */
487
496
  itemComponent: string;
488
497
  protected updateCssClasses(res: any, css: any): void;
@@ -142,4 +142,5 @@ export declare class QuestionCheckboxModel extends QuestionCheckboxBase {
142
142
  readonly checkBoxSvgPath: string;
143
143
  readonly isNewA11yStructure: boolean;
144
144
  readonly a11y_input_ariaRole: string;
145
+ readonly a11y_input_ariaRequired: "true" | "false";
145
146
  }
@@ -150,7 +150,7 @@ export interface ICustomQuestionTypeConfiguration {
150
150
  */
151
151
  onPropertyChanged?(question: Question, propertyName: string, newValue: any): void;
152
152
  /**
153
- * A function that is called after the question value is changed.
153
+ * A function that is called after the question value is changed in the UI.
154
154
  *
155
155
  * Parameters:
156
156
  *
@@ -160,10 +160,12 @@ export interface ICustomQuestionTypeConfiguration {
160
160
  * The question's [name](https://surveyjs.io/Documentation/Library?id=Question#name).
161
161
  * - `newValue`: `any`\
162
162
  * A new value for the question.
163
+ *
164
+ * If you want to perform some actions when the value is changed in code as well as in the UI, implement the [`onValueSet`](https://surveyjs.io/form-library/documentation/api-reference/icustomquestiontypeconfiguration#onValueSet) function.
163
165
  */
164
166
  onValueChanged?(question: Question, name: string, newValue: any): void;
165
167
  /**
166
- * A function that is called before a question value is changed.
168
+ * A function that is called before a question value is changed in the UI.
167
169
  *
168
170
  * This function should return the value you want to save: `newValue`, a custom value, or `undefined` if you want to clear the question value.
169
171
  *
@@ -231,6 +233,21 @@ export interface ICustomQuestionTypeConfiguration {
231
233
  * @returns An error text.
232
234
  */
233
235
  getErrorText?: (question: Question) => string;
236
+ /**
237
+ * A function that is called after the question value is set.
238
+ *
239
+ * Parameters:
240
+ *
241
+ * - `question`: [Question](https://surveyjs.io/Documentation/Library?id=Question)\
242
+ * A custom question.
243
+ * - `newValue`: `any`\
244
+ * A new value for the question.
245
+ *
246
+ * Unlike the [`onValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/icustomquestiontypeconfiguration#onValueChanged) function, which is called only when the question value is changed in the UI, `onValueSet` is called when the value is changed in code as well.
247
+ *
248
+ * [View Demo](https://surveyjs.io/survey-creator/examples/smart-search-input/ (linkStyle))
249
+ */
250
+ onValueSet?: (question: Question, newValue: any) => void;
234
251
  onSetQuestionValue?: (question: Question, newValue: any) => void;
235
252
  valueToQuestion?: (val: any) => any;
236
253
  valueFromQuestion?: (val: any) => any;
@@ -28,7 +28,7 @@ export declare class QuestionExpressionModel extends Question {
28
28
  unlocCalculation(): void;
29
29
  runCondition(values: HashTable<any>, properties: HashTable<any>): void;
30
30
  protected canCollectErrors(): boolean;
31
- protected hasRequiredError(): boolean;
31
+ hasRequiredError(): boolean;
32
32
  private createRunner;
33
33
  /*
34
34
  * The maximum number of fraction digits. Applies only if the `displayStyle` property is not `"none"`. Accepts values in the range from -1 to 20, where -1 disables the property.
@@ -9,6 +9,8 @@ export declare class MatrixDropdownRowModel extends MatrixDropdownRowModelBase {
9
9
  readonly rowName: string;
10
10
  readonly text: string;
11
11
  readonly locText: LocalizableString;
12
+ isRowEnabled(): boolean;
13
+ protected isRowHasEnabledCondition(): boolean;
12
14
  }
13
15
  /**
14
16
  * A class that describes the Multi-Select Matrix question type. Multi-Select Matrix allows you to use the [Dropdown](https://surveyjs.io/form-library/documentation/questiondropdownmodel), [Checkbox](https://surveyjs.io/form-library/documentation/questioncheckboxmodel), [Radiogroup](https://surveyjs.io/form-library/documentation/questionradiogroupmodel), [Text](https://surveyjs.io/form-library/documentation/questiontextmodel), and [Comment](https://surveyjs.io/form-library/documentation/questioncommentmodel) question types as cell editors.
@@ -34,6 +34,7 @@ export interface IMatrixDropdownData {
34
34
  onTotalValueChanged(): any;
35
35
  getSurvey(): ISurvey;
36
36
  getDataFilteredValues(): any;
37
+ isMatrixReadOnly(): boolean;
37
38
  }
38
39
  export declare class MatrixDropdownCell {
39
40
  column: MatrixDropdownColumn;
@@ -80,6 +81,8 @@ export declare class MatrixDropdownRowModelBase implements ISurveyData, ISurveyI
80
81
  readonly rowName: any;
81
82
  readonly dataName: string;
82
83
  readonly text: any;
84
+ isRowEnabled(): boolean;
85
+ protected isRowHasEnabledCondition(): boolean;
83
86
  value: any;
84
87
  readonly locText: LocalizableString;
85
88
  getAccessbilityText(): string;
@@ -131,7 +134,7 @@ export declare class MatrixDropdownRowModelBase implements ISurveyData, ISurveyI
131
134
  locStrsChanged(): void;
132
135
  updateCellQuestionOnColumnChanged(column: MatrixDropdownColumn, name: string, newValue: any): void;
133
136
  updateCellQuestionOnColumnItemValueChanged(column: MatrixDropdownColumn, propertyName: string, obj: ItemValue, name: string, newValue: any, oldValue: any): void;
134
- onQuestionReadOnlyChanged(parentIsReadOnly: boolean): void;
137
+ onQuestionReadOnlyChanged(): void;
135
138
  private validationValues;
136
139
  hasErrors(fireCallback: boolean, rec: any, raiseOnCompletedAsyncValidators: () => void): boolean;
137
140
  protected updateCellOnColumnChanged(cell: MatrixDropdownCell, name: string, newValue: any): void;
@@ -493,6 +496,7 @@ export declare class QuestionMatrixDropdownModelBase extends QuestionMatrixBaseM
493
496
  onTotalValueChanged(): any;
494
497
  getDataFilteredValues(): any;
495
498
  getParentTextProcessor(): ITextProcessor;
499
+ isMatrixReadOnly(): boolean;
496
500
  getQuestionFromArray(name: string, index: number): IQuestion;
497
501
  private isMatrixValueEmpty;
498
502
  private readonly SurveyModel: any;
@@ -54,7 +54,7 @@ export declare class QuestionRankingModel extends QuestionCheckboxModel {
54
54
  endLoadingFromJson(): void;
55
55
  private setDragDropRankingChoices;
56
56
  protected createDragDropRankingChoices(): DragDropRankingChoices;
57
- private draggedChoise;
57
+ private draggedChoiceValue;
58
58
  private draggedTargetNode;
59
59
  handlePointerDown: (event: PointerEvent, choice: ItemValue, node: HTMLElement) => void;
60
60
  startDrag: (event: PointerEvent) => void;
@@ -87,9 +87,6 @@ export declare class QuestionRankingModel extends QuestionCheckboxModel {
87
87
  * Disable this property if you want to start dragging when users perform a scroll gesture.
88
88
  */
89
89
  longTap: boolean;
90
- /**
91
- * The name of a component used to render items.
92
- */
93
90
  protected getDefaultItemComponent(): string;
94
91
  /*
95
92
  * Specifies whether users can select choices they want to rank.
@@ -244,9 +244,14 @@ export declare class QuestionRatingModel extends Question {
244
244
  getItemClassByText(item: ItemValue, text: string): string;
245
245
  private getRenderedItemColor;
246
246
  getItemStyle(item: ItemValue, highlight?: "none" | "highlighted" | "unhighlighted"): {
247
- borderColor: string;
248
- fill: string;
249
- backgroundColor: string;
247
+ "--sd-rating-item-color"?: undefined;
248
+ "--sd-rating-item-color-light"?: undefined;
249
+ } | {
250
+ "--sd-rating-item-color": string;
251
+ "--sd-rating-item-color-light": string;
252
+ } | {
253
+ "--sd-rating-item-color": string;
254
+ "--sd-rating-item-color-light"?: undefined;
250
255
  };
251
256
  getItemClass(item: ItemValue, highlight?: "none" | "highlighted" | "unhighlighted"): string;
252
257
  getControlClass(): string;
@@ -335,11 +335,18 @@ export declare var settings: {
335
335
  */
336
336
  ratingMaximumRateValueCount: number;
337
337
  /**
338
- * Specifies whether to close the drop-down menu of a [TagBox](https://surveyjs.io/form-library/examples/how-to-create-multiselect-tag-box/) question after a user selects a value.
338
+ * Specifies whether to close the drop-down menu of a [Multi-Select Dropdown (Tag Box)](https://surveyjs.io/form-library/examples/how-to-create-multiselect-tag-box/) question after a user selects a value.
339
339
  *
340
- * This setting applies to all TagBox questions on a page. You can use the [closeOnSelect](https://surveyjs.io/form-library/documentation/api-reference/dropdown-tag-box-model#closeOnSelect) property to specify the same setting for an individual TagBox question.
340
+ * This setting applies to all Multi-Select Dropdown questions on a web page. You can use the [`closeOnSelect`](https://surveyjs.io/form-library/documentation/api-reference/dropdown-tag-box-model#closeOnSelect) property to specify the same setting for an individual Multi-Select Dropdown question.
341
341
  */
342
342
  tagboxCloseOnSelect: boolean;
343
+ /**
344
+ * A time interval in milliseconds between the last entered character and the beginning of search in [Single-](https://surveyjs.io/form-library/examples/create-dropdown-menu-in-javascript/) and [Multi-Select Dropdown](https://surveyjs.io/form-library/examples/how-to-create-multiselect-tag-box/) questions. Applies only to questions with the [`choicesLazyLoadEnabled`](https://surveyjs.io/form-library/documentation/api-reference/dropdown-menu-model#choicesLazyLoadEnabled) property set to `true`.
345
+ *
346
+ * Default value: 500
347
+ *
348
+ * [View Demo](https://surveyjs.io/form-library/examples/lazy-loading-dropdown/ (linkStyle))
349
+ */
343
350
  dropdownSearchDelay: number;
344
351
  /**
345
352
  * A function that activates a browser confirm dialog.
@@ -946,6 +946,7 @@ export interface DragDropAllowEvent {
946
946
  * A Boolean property that you can set to `false` if you want to cancel the drag and drop operation.
947
947
  */
948
948
  allow: boolean;
949
+ allowMultipleElementsInRow?: boolean;
949
950
  /**
950
951
  * Obsolete. Use `options.draggedElement` instead.
951
952
  */
@@ -1033,6 +1033,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1033
1033
  *
1034
1034
  * You can override this property for individual Long Text questions: [`autoGrow`](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model#autoGrow).
1035
1035
  * @see allowResizeComment
1036
+ * @see commentAreaRows
1036
1037
  */
1037
1038
  autoGrowComment: boolean;
1038
1039
  /*
@@ -1042,9 +1043,20 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1042
1043
  *
1043
1044
  * You can override this property for individual Long Text questions: [`allowResize`](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model#allowResize).
1044
1045
  * @see autoGrowComment
1046
+ * @see commentAreaRows
1045
1047
  */
1046
1048
  allowResizeComment: boolean;
1047
1049
  /*
1050
+ * Specifies the visible height of comment areas, measured in lines. Applies to the questions with the [`showCommentArea`](https://surveyjs.io/form-library/documentation/api-reference/question#showCommentArea) or [`showOtherItem`](https://surveyjs.io/form-library/documentation/api-reference/question#showOtherItem) property enabled.
1051
+ *
1052
+ * Default value: 2
1053
+ *
1054
+ * The value of this property is passed on to the `rows` attribute of the underlying `<textarea>` element.
1055
+ * @see autoGrowComment
1056
+ * @see allowResizeComment
1057
+ */
1058
+ commentAreaRows: number;
1059
+ /*
1048
1060
  * Specifies when to update the question value in questions with a text input field.
1049
1061
  *
1050
1062
  * Possible values:
@@ -1100,6 +1112,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1100
1112
  */
1101
1113
  locale: string;
1102
1114
  private onSurveyLocaleChanged;
1115
+ readonly localeDir: string;
1103
1116
  /**
1104
1117
  * Returns an array of locales whose translations are used in the survey.
1105
1118
  *
@@ -7,6 +7,9 @@ export declare var surveyLocalization: {
7
7
  localeNames: {
8
8
  [index: string]: any;
9
9
  };
10
+ localeDirections: {
11
+ [index: string]: any;
12
+ };
10
13
  supportedLocales: any[];
11
14
  currentLocale: string;
12
15
  defaultLocale: string;
@@ -211,6 +211,7 @@ export declare abstract class BaseAction extends Base implements IAction {
211
211
  get disabled(): boolean;
212
212
  get canShrink(): boolean;
213
213
  get hasTitle(): boolean;
214
+ get hasSubItems(): boolean;
214
215
  getActionBarItemTitleCss(): string;
215
216
  getActionBarItemCss(): string;
216
217
  getActionRootCss(): string;
@@ -243,7 +244,7 @@ export declare class Action extends BaseAction implements IAction, ILocalizableO
243
244
  private raiseUpdate;
244
245
  constructor(innerItem: IAction);
245
246
  private createLocTitle;
246
- setItems(items: Array<IAction>, onSelectionChanged?: (item: Action, ...params: any[]) => void): void;
247
+ setSubItems(options: IListModel): void;
247
248
  location?: string;
248
249
  id: string;
249
250
  private _visible;
@@ -72,6 +72,7 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
72
72
  isUpdateValueTextOnTyping: boolean;
73
73
  autoGrowComment: boolean;
74
74
  allowResizeComment: boolean;
75
+ commentAreaRows: number;
75
76
  state: string;
76
77
  isLazyRendering: boolean;
77
78
  lazyRenderingFirstBatchSize: number;
@@ -5,6 +5,7 @@ export declare class DragDropChoices extends DragDropCore<QuestionSelectBase> {
5
5
  private imagepickerControlsNode;
6
6
  protected get draggedElementType(): string;
7
7
  protected createDraggedElementShortcut(text: string, draggedElementNode: HTMLElement, event: PointerEvent): HTMLElement;
8
+ onShortcutCreated: (node: HTMLElement) => void;
8
9
  private createImagePickerShortcut;
9
10
  protected getDropTargetByDataAttributeValue(dataAttributeValue: string): ItemValue;
10
11
  private getVisibleChoices;
@@ -12,7 +12,7 @@ export declare class DragDropRankingChoices extends DragDropChoices {
12
12
  protected isDropTargetValid(dropTarget: ItemValue, dropTargetNode?: HTMLElement): boolean;
13
13
  protected calculateIsBottom(clientY: number, dropTargetNode?: HTMLElement): boolean;
14
14
  protected doDragOver: () => any;
15
- getIndixies(model: any, fromChoicesArray: Array<ItemValue>, toChoicesArray: Array<ItemValue>): {
15
+ getIndices(model: any, fromChoicesArray: Array<ItemValue>, toChoicesArray: Array<ItemValue>): {
16
16
  fromIndex: number;
17
17
  toIndex: number;
18
18
  };
package/typings/list.d.ts CHANGED
@@ -7,6 +7,7 @@ export declare let defaultListCss: {
7
7
  searchClearButtonIcon: string;
8
8
  loadingIndicator: string;
9
9
  itemSelected: string;
10
+ itemGroup: string;
10
11
  itemWithIcon: string;
11
12
  itemDisabled: string;
12
13
  itemFocused: string;
@@ -77,6 +78,7 @@ export declare class ListModel<T extends BaseAction = Action> extends ActionCont
77
78
  searchClearButtonIcon: string;
78
79
  loadingIndicator: string;
79
80
  itemSelected: string;
81
+ itemGroup: string;
80
82
  itemWithIcon: string;
81
83
  itemDisabled: string;
82
84
  itemFocused: string;
@@ -82,6 +82,7 @@ export declare class QuestionMatrixBaseModel<TRow, TColumn> extends Question {
82
82
  protected onColumnsChanged(): void;
83
83
  protected onRowsChanged(): void;
84
84
  protected updateVisibilityBasedOnRows(): void;
85
+ protected isVisibleCore(): boolean;
85
86
  protected shouldRunColumnExpression(): boolean;
86
87
  protected hasRowsAsItems(): boolean;
87
88
  protected runItemsCondition(values: HashTable<any>, properties: HashTable<any>): boolean;
@@ -290,6 +290,8 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
290
290
  get questionTitleLocation(): string;
291
291
  set questionTitleLocation(value: string);
292
292
  getQuestionTitleLocation(): string;
293
+ availableQuestionTitleWidth(): boolean;
294
+ hasElementWithTitleLocationLeft(): boolean;
293
295
  /**
294
296
  * Sets consistent width for question titles in CSS values. Applies only when [`questionTitleLocation`](#questionTitleLocation) evaluates to `"left"`.
295
297
  *
@@ -490,6 +490,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
490
490
  set hasOther(val: boolean);
491
491
  protected hasOtherChanged(): void;
492
492
  get requireUpdateCommentValue(): boolean;
493
+ readOnlyCallback: () => boolean;
493
494
  get isReadOnly(): boolean;
494
495
  get isInputReadOnly(): boolean;
495
496
  get renderedInputReadOnly(): string;
@@ -527,6 +528,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
527
528
  protected initDataFromSurvey(): void;
528
529
  protected initCommentFromSurvey(): void;
529
530
  protected runExpression(expression: string): any;
531
+ get commentAreaRows(): number;
530
532
  private get autoGrowComment();
531
533
  private get allowResizeComment();
532
534
  private get questionValue();
@@ -727,6 +729,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
727
729
  protected isValueExpression(val: any): boolean;
728
730
  protected setValueAndRunExpression(runner: ExpressionRunner, defaultValue: any, setFunc: (val: any) => void, values?: HashTable<any>, properties?: HashTable<any>): void;
729
731
  protected convertFuncValuetoQuestionValue(val: any): any;
732
+ private runExpressionSetValueCore;
730
733
  private runExpressionSetValue;
731
734
  private runDefaultValueExpression;
732
735
  /**
@@ -788,7 +791,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
788
791
  protected canRunValidators(isOnValueChanged: boolean): boolean;
789
792
  private fireSurveyValidation;
790
793
  protected onCheckForErrors(errors: Array<SurveyError>, isOnValueChanged: boolean): void;
791
- protected hasRequiredError(): boolean;
794
+ hasRequiredError(): boolean;
792
795
  private validatorRunner;
793
796
  private isRunningValidatorsValue;
794
797
  onCompletedAsyncValidators: (hasErrors: boolean) => void;
@@ -486,6 +486,11 @@ export declare class QuestionSelectBase extends Question {
486
486
  get hasHeadItems(): boolean;
487
487
  get hasFootItems(): boolean;
488
488
  get columns(): any[];
489
+ protected getObservedElementSelector(): string;
490
+ protected supportResponsiveness(): boolean;
491
+ allowMultiColumns: boolean;
492
+ protected onBeforeSetCompactRenderer(): void;
493
+ protected onBeforeSetDesktopRenderer(): void;
489
494
  get hasColumns(): boolean;
490
495
  get rowLayout(): boolean;
491
496
  get blockedRow(): boolean;
@@ -510,6 +515,10 @@ export declare class QuestionSelectBase extends Question {
510
515
  protected getDefaultItemComponent(): string;
511
516
  /**
512
517
  * The name of a component used to render items.
518
+ *
519
+ * [View Dropdown Demo](https://surveyjs.io/form-library/examples/dropdown-box-with-custom-items/ (linkStyle))
520
+ *
521
+ * [View Ranking Demo](https://surveyjs.io/form-library/examples/dropdown-box-with-custom-items/ (linkStyle))
513
522
  */
514
523
  get itemComponent(): string;
515
524
  set itemComponent(value: string);
@@ -149,4 +149,5 @@ export declare class QuestionCheckboxModel extends QuestionCheckboxBase {
149
149
  get checkBoxSvgPath(): string;
150
150
  get isNewA11yStructure(): boolean;
151
151
  get a11y_input_ariaRole(): string;
152
+ get a11y_input_ariaRequired(): "true" | "false";
152
153
  }
@@ -150,7 +150,7 @@ export interface ICustomQuestionTypeConfiguration {
150
150
  */
151
151
  onPropertyChanged?(question: Question, propertyName: string, newValue: any): void;
152
152
  /**
153
- * A function that is called after the question value is changed.
153
+ * A function that is called after the question value is changed in the UI.
154
154
  *
155
155
  * Parameters:
156
156
  *
@@ -160,10 +160,12 @@ export interface ICustomQuestionTypeConfiguration {
160
160
  * The question's [name](https://surveyjs.io/Documentation/Library?id=Question#name).
161
161
  * - `newValue`: `any`\
162
162
  * A new value for the question.
163
+ *
164
+ * If you want to perform some actions when the value is changed in code as well as in the UI, implement the [`onValueSet`](https://surveyjs.io/form-library/documentation/api-reference/icustomquestiontypeconfiguration#onValueSet) function.
163
165
  */
164
166
  onValueChanged?(question: Question, name: string, newValue: any): void;
165
167
  /**
166
- * A function that is called before a question value is changed.
168
+ * A function that is called before a question value is changed in the UI.
167
169
  *
168
170
  * This function should return the value you want to save: `newValue`, a custom value, or `undefined` if you want to clear the question value.
169
171
  *
@@ -231,6 +233,21 @@ export interface ICustomQuestionTypeConfiguration {
231
233
  * @returns An error text.
232
234
  */
233
235
  getErrorText?: (question: Question) => string;
236
+ /**
237
+ * A function that is called after the question value is set.
238
+ *
239
+ * Parameters:
240
+ *
241
+ * - `question`: [Question](https://surveyjs.io/Documentation/Library?id=Question)\
242
+ * A custom question.
243
+ * - `newValue`: `any`\
244
+ * A new value for the question.
245
+ *
246
+ * Unlike the [`onValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/icustomquestiontypeconfiguration#onValueChanged) function, which is called only when the question value is changed in the UI, `onValueSet` is called when the value is changed in code as well.
247
+ *
248
+ * [View Demo](https://surveyjs.io/survey-creator/examples/smart-search-input/ (linkStyle))
249
+ */
250
+ onValueSet?: (question: Question, newValue: any) => void;
234
251
  onSetQuestionValue?: (question: Question, newValue: any) => void;
235
252
  valueToQuestion?: (val: any) => any;
236
253
  valueFromQuestion?: (val: any) => any;
@@ -30,7 +30,7 @@ export declare class QuestionExpressionModel extends Question {
30
30
  unlocCalculation(): void;
31
31
  runCondition(values: HashTable<any>, properties: HashTable<any>): void;
32
32
  protected canCollectErrors(): boolean;
33
- protected hasRequiredError(): boolean;
33
+ hasRequiredError(): boolean;
34
34
  private createRunner;
35
35
  /**
36
36
  * The maximum number of fraction digits. Applies only if the `displayStyle` property is not `"none"`. Accepts values in the range from -1 to 20, where -1 disables the property.
@@ -9,6 +9,8 @@ export declare class MatrixDropdownRowModel extends MatrixDropdownRowModelBase {
9
9
  get rowName(): string;
10
10
  get text(): string;
11
11
  get locText(): LocalizableString;
12
+ isRowEnabled(): boolean;
13
+ protected isRowHasEnabledCondition(): boolean;
12
14
  }
13
15
  /**
14
16
  * A class that describes the Multi-Select Matrix question type. Multi-Select Matrix allows you to use the [Dropdown](https://surveyjs.io/form-library/documentation/questiondropdownmodel), [Checkbox](https://surveyjs.io/form-library/documentation/questioncheckboxmodel), [Radiogroup](https://surveyjs.io/form-library/documentation/questionradiogroupmodel), [Text](https://surveyjs.io/form-library/documentation/questiontextmodel), and [Comment](https://surveyjs.io/form-library/documentation/questioncommentmodel) question types as cell editors.
@@ -34,6 +34,7 @@ export interface IMatrixDropdownData {
34
34
  onTotalValueChanged(): any;
35
35
  getSurvey(): ISurvey;
36
36
  getDataFilteredValues(): any;
37
+ isMatrixReadOnly(): boolean;
37
38
  }
38
39
  export declare class MatrixDropdownCell {
39
40
  column: MatrixDropdownColumn;
@@ -81,6 +82,8 @@ export declare class MatrixDropdownRowModelBase implements ISurveyData, ISurveyI
81
82
  get rowName(): any;
82
83
  get dataName(): string;
83
84
  get text(): any;
85
+ isRowEnabled(): boolean;
86
+ protected isRowHasEnabledCondition(): boolean;
84
87
  get value(): any;
85
88
  set value(value: any);
86
89
  get locText(): LocalizableString;
@@ -133,7 +136,7 @@ export declare class MatrixDropdownRowModelBase implements ISurveyData, ISurveyI
133
136
  locStrsChanged(): void;
134
137
  updateCellQuestionOnColumnChanged(column: MatrixDropdownColumn, name: string, newValue: any): void;
135
138
  updateCellQuestionOnColumnItemValueChanged(column: MatrixDropdownColumn, propertyName: string, obj: ItemValue, name: string, newValue: any, oldValue: any): void;
136
- onQuestionReadOnlyChanged(parentIsReadOnly: boolean): void;
139
+ onQuestionReadOnlyChanged(): void;
137
140
  private validationValues;
138
141
  hasErrors(fireCallback: boolean, rec: any, raiseOnCompletedAsyncValidators: () => void): boolean;
139
142
  protected updateCellOnColumnChanged(cell: MatrixDropdownCell, name: string, newValue: any): void;
@@ -512,6 +515,7 @@ export declare class QuestionMatrixDropdownModelBase extends QuestionMatrixBaseM
512
515
  onTotalValueChanged(): any;
513
516
  getDataFilteredValues(): any;
514
517
  getParentTextProcessor(): ITextProcessor;
518
+ isMatrixReadOnly(): boolean;
515
519
  getQuestionFromArray(name: string, index: number): IQuestion;
516
520
  private isMatrixValueEmpty;
517
521
  private get SurveyModel();
@@ -56,7 +56,7 @@ export declare class QuestionRankingModel extends QuestionCheckboxModel {
56
56
  endLoadingFromJson(): void;
57
57
  private setDragDropRankingChoices;
58
58
  protected createDragDropRankingChoices(): DragDropRankingChoices;
59
- private draggedChoise;
59
+ private draggedChoiceValue;
60
60
  private draggedTargetNode;
61
61
  handlePointerDown: (event: PointerEvent, choice: ItemValue, node: HTMLElement) => void;
62
62
  startDrag: (event: PointerEvent) => void;
@@ -90,9 +90,6 @@ export declare class QuestionRankingModel extends QuestionCheckboxModel {
90
90
  */
91
91
  get longTap(): boolean;
92
92
  set longTap(val: boolean);
93
- /**
94
- * The name of a component used to render items.
95
- */
96
93
  protected getDefaultItemComponent(): string;
97
94
  /**
98
95
  * Specifies whether users can select choices they want to rank.
@@ -252,9 +252,14 @@ export declare class QuestionRatingModel extends Question {
252
252
  getItemClassByText(item: ItemValue, text: string): string;
253
253
  private getRenderedItemColor;
254
254
  getItemStyle(item: ItemValue, highlight?: "none" | "highlighted" | "unhighlighted"): {
255
- borderColor: string;
256
- fill: string;
257
- backgroundColor: string;
255
+ "--sd-rating-item-color"?: undefined;
256
+ "--sd-rating-item-color-light"?: undefined;
257
+ } | {
258
+ "--sd-rating-item-color": string;
259
+ "--sd-rating-item-color-light": string;
260
+ } | {
261
+ "--sd-rating-item-color": string;
262
+ "--sd-rating-item-color-light"?: undefined;
258
263
  };
259
264
  getItemClass(item: ItemValue, highlight?: "none" | "highlighted" | "unhighlighted"): string;
260
265
  getControlClass(): string;
@@ -335,11 +335,18 @@ export declare var settings: {
335
335
  */
336
336
  ratingMaximumRateValueCount: number;
337
337
  /**
338
- * Specifies whether to close the drop-down menu of a [TagBox](https://surveyjs.io/form-library/examples/how-to-create-multiselect-tag-box/) question after a user selects a value.
338
+ * Specifies whether to close the drop-down menu of a [Multi-Select Dropdown (Tag Box)](https://surveyjs.io/form-library/examples/how-to-create-multiselect-tag-box/) question after a user selects a value.
339
339
  *
340
- * This setting applies to all TagBox questions on a page. You can use the [closeOnSelect](https://surveyjs.io/form-library/documentation/api-reference/dropdown-tag-box-model#closeOnSelect) property to specify the same setting for an individual TagBox question.
340
+ * This setting applies to all Multi-Select Dropdown questions on a web page. You can use the [`closeOnSelect`](https://surveyjs.io/form-library/documentation/api-reference/dropdown-tag-box-model#closeOnSelect) property to specify the same setting for an individual Multi-Select Dropdown question.
341
341
  */
342
342
  tagboxCloseOnSelect: boolean;
343
+ /**
344
+ * A time interval in milliseconds between the last entered character and the beginning of search in [Single-](https://surveyjs.io/form-library/examples/create-dropdown-menu-in-javascript/) and [Multi-Select Dropdown](https://surveyjs.io/form-library/examples/how-to-create-multiselect-tag-box/) questions. Applies only to questions with the [`choicesLazyLoadEnabled`](https://surveyjs.io/form-library/documentation/api-reference/dropdown-menu-model#choicesLazyLoadEnabled) property set to `true`.
345
+ *
346
+ * Default value: 500
347
+ *
348
+ * [View Demo](https://surveyjs.io/form-library/examples/lazy-loading-dropdown/ (linkStyle))
349
+ */
343
350
  dropdownSearchDelay: number;
344
351
  /**
345
352
  * A function that activates a browser confirm dialog.
@@ -946,6 +946,7 @@ export interface DragDropAllowEvent {
946
946
  * A Boolean property that you can set to `false` if you want to cancel the drag and drop operation.
947
947
  */
948
948
  allow: boolean;
949
+ allowMultipleElementsInRow?: boolean;
949
950
  /**
950
951
  * Obsolete. Use `options.draggedElement` instead.
951
952
  */
@@ -1067,6 +1067,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1067
1067
  *
1068
1068
  * You can override this property for individual Long Text questions: [`autoGrow`](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model#autoGrow).
1069
1069
  * @see allowResizeComment
1070
+ * @see commentAreaRows
1070
1071
  */
1071
1072
  get autoGrowComment(): boolean;
1072
1073
  set autoGrowComment(val: boolean);
@@ -1077,9 +1078,21 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1077
1078
  *
1078
1079
  * You can override this property for individual Long Text questions: [`allowResize`](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model#allowResize).
1079
1080
  * @see autoGrowComment
1081
+ * @see commentAreaRows
1080
1082
  */
1081
1083
  get allowResizeComment(): boolean;
1082
1084
  set allowResizeComment(val: boolean);
1085
+ /**
1086
+ * Specifies the visible height of comment areas, measured in lines. Applies to the questions with the [`showCommentArea`](https://surveyjs.io/form-library/documentation/api-reference/question#showCommentArea) or [`showOtherItem`](https://surveyjs.io/form-library/documentation/api-reference/question#showOtherItem) property enabled.
1087
+ *
1088
+ * Default value: 2
1089
+ *
1090
+ * The value of this property is passed on to the `rows` attribute of the underlying `<textarea>` element.
1091
+ * @see autoGrowComment
1092
+ * @see allowResizeComment
1093
+ */
1094
+ get commentAreaRows(): number;
1095
+ set commentAreaRows(val: number);
1083
1096
  /**
1084
1097
  * Specifies when to update the question value in questions with a text input field.
1085
1098
  *
@@ -1140,6 +1153,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1140
1153
  get locale(): string;
1141
1154
  set locale(value: string);
1142
1155
  private onSurveyLocaleChanged;
1156
+ get localeDir(): string;
1143
1157
  /**
1144
1158
  * Returns an array of locales whose translations are used in the survey.
1145
1159
  *