survey-core 1.11.4 → 1.11.6

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 (268) hide show
  1. package/defaultV2.css +130 -39
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +130 -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 +2 -2
  23. package/i18n/dutch.js.map +1 -1
  24. package/i18n/dutch.min.js +2 -2
  25. package/i18n/english.js +1 -1
  26. package/i18n/english.min.js +1 -1
  27. package/i18n/estonian.js +1 -1
  28. package/i18n/estonian.min.js +1 -1
  29. package/i18n/finnish.js +1 -1
  30. package/i18n/finnish.min.js +1 -1
  31. package/i18n/french.js +1 -1
  32. package/i18n/french.min.js +1 -1
  33. package/i18n/georgian.js +1 -1
  34. package/i18n/georgian.min.js +1 -1
  35. package/i18n/german.js +1 -1
  36. package/i18n/german.min.js +1 -1
  37. package/i18n/greek.js +1 -1
  38. package/i18n/greek.min.js +1 -1
  39. package/i18n/hebrew.js +1 -1
  40. package/i18n/hebrew.min.js +1 -1
  41. package/i18n/hindi.js +1 -1
  42. package/i18n/hindi.min.js +1 -1
  43. package/i18n/hungarian.js +1 -1
  44. package/i18n/hungarian.min.js +1 -1
  45. package/i18n/icelandic.js +1 -1
  46. package/i18n/icelandic.min.js +1 -1
  47. package/i18n/index.js +3 -2
  48. package/i18n/index.js.map +1 -1
  49. package/i18n/index.min.js +2 -2
  50. package/i18n/indonesian.js +1 -1
  51. package/i18n/indonesian.min.js +1 -1
  52. package/i18n/italian.js +1 -1
  53. package/i18n/italian.min.js +1 -1
  54. package/i18n/japanese.js +1 -1
  55. package/i18n/japanese.min.js +1 -1
  56. package/i18n/kazakh.js +1 -1
  57. package/i18n/kazakh.min.js +1 -1
  58. package/i18n/korean.js +1 -1
  59. package/i18n/korean.min.js +1 -1
  60. package/i18n/latvian.js +1 -1
  61. package/i18n/latvian.min.js +1 -1
  62. package/i18n/lithuanian.js +1 -1
  63. package/i18n/lithuanian.min.js +1 -1
  64. package/i18n/macedonian.js +1 -1
  65. package/i18n/macedonian.min.js +1 -1
  66. package/i18n/malay.js +1 -1
  67. package/i18n/malay.min.js +1 -1
  68. package/i18n/nl-BE.js +2 -2
  69. package/i18n/nl-BE.js.map +1 -1
  70. package/i18n/nl-BE.min.js +2 -2
  71. package/i18n/norwegian.js +1 -1
  72. package/i18n/norwegian.min.js +1 -1
  73. package/i18n/persian.js +1 -1
  74. package/i18n/persian.min.js +1 -1
  75. package/i18n/philippines.js +1 -1
  76. package/i18n/philippines.min.js +1 -1
  77. package/i18n/polish.js +1 -1
  78. package/i18n/polish.min.js +1 -1
  79. package/i18n/portuguese-br.js +1 -1
  80. package/i18n/portuguese-br.min.js +1 -1
  81. package/i18n/portuguese.js +1 -1
  82. package/i18n/portuguese.min.js +1 -1
  83. package/i18n/romanian.js +1 -1
  84. package/i18n/romanian.min.js +1 -1
  85. package/i18n/russian.js +1 -1
  86. package/i18n/russian.min.js +1 -1
  87. package/i18n/serbian.js +1 -1
  88. package/i18n/serbian.min.js +1 -1
  89. package/i18n/simplified-chinese.js +1 -1
  90. package/i18n/simplified-chinese.min.js +1 -1
  91. package/i18n/slovak.js +1 -1
  92. package/i18n/slovak.min.js +1 -1
  93. package/i18n/spanish.js +1 -1
  94. package/i18n/spanish.min.js +1 -1
  95. package/i18n/swahili.js +1 -1
  96. package/i18n/swahili.min.js +1 -1
  97. package/i18n/swedish.js +1 -1
  98. package/i18n/swedish.min.js +1 -1
  99. package/i18n/tajik.js +1 -1
  100. package/i18n/tajik.min.js +1 -1
  101. package/i18n/telugu.js +1 -1
  102. package/i18n/telugu.min.js +1 -1
  103. package/i18n/thai.js +1 -1
  104. package/i18n/thai.min.js +1 -1
  105. package/i18n/traditional-chinese.js +1 -1
  106. package/i18n/traditional-chinese.min.js +1 -1
  107. package/i18n/turkish.js +1 -1
  108. package/i18n/turkish.min.js +1 -1
  109. package/i18n/ukrainian.js +1 -1
  110. package/i18n/ukrainian.min.js +1 -1
  111. package/i18n/urdu.js +1 -1
  112. package/i18n/urdu.min.js +1 -1
  113. package/i18n/vietnamese.js +1 -1
  114. package/i18n/vietnamese.min.js +1 -1
  115. package/i18n/welsh.js +1 -1
  116. package/i18n/welsh.min.js +1 -1
  117. package/modern.css +26 -1
  118. package/modern.css.map +1 -1
  119. package/modern.fontless.css +26 -1
  120. package/modern.fontless.css.map +1 -1
  121. package/modern.fontless.min.css +2 -2
  122. package/modern.min.css +2 -2
  123. package/package.json +1 -1
  124. package/plugins/bootstrap-integration.js +1 -1
  125. package/plugins/bootstrap-integration.min.js +1 -1
  126. package/plugins/bootstrap-material-integration.js +1 -1
  127. package/plugins/bootstrap-material-integration.min.js +1 -1
  128. package/survey.core.js +299 -118
  129. package/survey.core.js.map +1 -1
  130. package/survey.core.min.js +3 -3
  131. package/survey.css +33 -1
  132. package/survey.css.map +1 -1
  133. package/survey.i18n.js +3 -2
  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/actions/action.d.ts +8 -1
  220. package/ts3.4/typings/base-interfaces.d.ts +1 -0
  221. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +1 -0
  222. package/ts3.4/typings/dragdrop/choices.d.ts +1 -0
  223. package/ts3.4/typings/dragdrop/ranking-choices.d.ts +1 -1
  224. package/ts3.4/typings/dropdownListModel.d.ts +0 -1
  225. package/ts3.4/typings/list.d.ts +2 -0
  226. package/ts3.4/typings/martixBase.d.ts +1 -0
  227. package/ts3.4/typings/panel.d.ts +2 -0
  228. package/ts3.4/typings/question.d.ts +4 -1
  229. package/ts3.4/typings/question_baseselect.d.ts +9 -0
  230. package/ts3.4/typings/question_checkbox.d.ts +1 -0
  231. package/ts3.4/typings/question_custom.d.ts +19 -2
  232. package/ts3.4/typings/question_expression.d.ts +1 -1
  233. package/ts3.4/typings/question_matrixdropdown.d.ts +2 -0
  234. package/ts3.4/typings/question_matrixdropdownbase.d.ts +5 -1
  235. package/ts3.4/typings/question_paneldynamic.d.ts +1 -1
  236. package/ts3.4/typings/question_ranking.d.ts +1 -4
  237. package/ts3.4/typings/question_rating.d.ts +8 -3
  238. package/ts3.4/typings/settings.d.ts +9 -2
  239. package/ts3.4/typings/survey-element.d.ts +20 -15
  240. package/ts3.4/typings/survey-events-api.d.ts +1 -0
  241. package/ts3.4/typings/survey.d.ts +31 -0
  242. package/ts3.4/typings/surveyStrings.d.ts +3 -0
  243. package/typings/actions/action.d.ts +8 -1
  244. package/typings/base-interfaces.d.ts +1 -0
  245. package/typings/defaultCss/defaultV2Css.d.ts +1 -0
  246. package/typings/dragdrop/choices.d.ts +1 -0
  247. package/typings/dragdrop/ranking-choices.d.ts +1 -1
  248. package/typings/dropdownListModel.d.ts +0 -1
  249. package/typings/knockout/kobase.d.ts +8 -8
  250. package/typings/knockout/kopage.d.ts +37 -37
  251. package/typings/list.d.ts +2 -0
  252. package/typings/martixBase.d.ts +1 -0
  253. package/typings/panel.d.ts +2 -0
  254. package/typings/question.d.ts +4 -1
  255. package/typings/question_baseselect.d.ts +9 -0
  256. package/typings/question_checkbox.d.ts +1 -0
  257. package/typings/question_custom.d.ts +19 -2
  258. package/typings/question_expression.d.ts +1 -1
  259. package/typings/question_matrixdropdown.d.ts +2 -0
  260. package/typings/question_matrixdropdownbase.d.ts +5 -1
  261. package/typings/question_paneldynamic.d.ts +1 -1
  262. package/typings/question_ranking.d.ts +1 -4
  263. package/typings/question_rating.d.ts +8 -3
  264. package/typings/settings.d.ts +9 -2
  265. package/typings/survey-element.d.ts +20 -15
  266. package/typings/survey-events-api.d.ts +1 -0
  267. package/typings/survey.d.ts +32 -0
  268. package/typings/surveyStrings.d.ts +3 -0
@@ -20,7 +20,6 @@ export declare class DropdownListModel extends Base {
20
20
  protected readonly itemSelector = ".sv-list__item";
21
21
  protected getFocusFirstInputSelector(): string;
22
22
  private itemsSettings;
23
- private isRunningLoadQuestionChoices;
24
23
  protected listModel: ListModel<ItemValue>;
25
24
  protected popupCssClasses: string;
26
25
  protected listModelFilterStringChanged: (newValue: string) => void;
@@ -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;
@@ -77,6 +77,7 @@ export declare class QuestionMatrixBaseModel<TRow, TColumn> extends Question {
77
77
  protected onColumnsChanged(): void;
78
78
  protected onRowsChanged(): void;
79
79
  protected updateVisibilityBasedOnRows(): void;
80
+ protected isVisibleCore(): boolean;
80
81
  protected shouldRunColumnExpression(): boolean;
81
82
  protected hasRowsAsItems(): boolean;
82
83
  protected runItemsCondition(values: HashTable<any>, properties: HashTable<any>): boolean;
@@ -278,6 +278,8 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
278
278
  */
279
279
  questionTitleLocation: string;
280
280
  getQuestionTitleLocation(): string;
281
+ availableQuestionTitleWidth(): boolean;
282
+ hasElementWithTitleLocationLeft(): boolean;
281
283
  /**
282
284
  * Sets consistent width for question titles in CSS values. Applies only when [`questionTitleLocation`](#questionTitleLocation) evaluates to `"left"`.
283
285
  *
@@ -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;
@@ -530,7 +530,7 @@ export declare class QuestionPanelDynamicModel extends Question implements IQues
530
530
  private removedPanelIndex;
531
531
  removePanel(value: any): void;
532
532
  private getVisualPanelIndex;
533
- private getPanelIndexById;
533
+ private getPanelVisibleIndexById;
534
534
  locStrsChanged(): void;
535
535
  clearIncorrectValues(): void;
536
536
  clearErrors(): void;
@@ -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.
@@ -12,6 +12,26 @@ export declare abstract class SurveyElementCore extends Base implements ILocaliz
12
12
  constructor();
13
13
  protected createLocTitleProperty(): LocalizableString;
14
14
  /*
15
+ * Returns `true` if the survey element is a page.
16
+ * @see Base.getType
17
+ */
18
+ readonly isPage: boolean;
19
+ /*
20
+ * Returns `true` if the survey element is a panel.
21
+ * @see Base.getType
22
+ */
23
+ readonly isPanel: boolean;
24
+ /*
25
+ * Returns `true` if the survey element is a question.
26
+ * @see Base.getType
27
+ */
28
+ readonly isQuestion: boolean;
29
+ /*
30
+ * Returns `true` if the element is a survey.
31
+ * @see Base.getType
32
+ */
33
+ readonly isSurvey: boolean;
34
+ /*
15
35
  * A title for the survey element. If `title` is undefined, the `name` property value is displayed instead.
16
36
  *
17
37
  * Empty pages and panels do not display their titles or names.
@@ -271,21 +291,6 @@ export declare class SurveyElement<E = any> extends SurveyElementCore implements
271
291
  onFirstRendering(): void;
272
292
  endLoadingFromJson(): void;
273
293
  setVisibleIndex(index: number): number;
274
- /*
275
- * Returns `true` if the survey element is a page.
276
- * @see Base.getType
277
- */
278
- readonly isPage: boolean;
279
- /*
280
- * Returns `true` if the survey element is a panel.
281
- * @see Base.getType
282
- */
283
- readonly isPanel: boolean;
284
- /*
285
- * Returns `true` if the survey element is a question.
286
- * @see Base.getType
287
- */
288
- readonly isQuestion: boolean;
289
294
  delete(doDispose: boolean): void;
290
295
  locOwner: ILocalizableOwner;
291
296
  /**
@@ -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
+ allowDropNextToAnother?: 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
  *
@@ -1514,6 +1527,24 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1514
1527
  */
1515
1528
  mergeData(data: any): void;
1516
1529
  setDataCore(data: any, clearData?: boolean): void;
1530
+ readonly isSurvey: boolean;
1531
+ /**
1532
+ * Returns an object with survey results.
1533
+ *
1534
+ * If you want to get a survey results object that mirrors the survey structure, call the `getData()` method with an object that has the `includePages` and `includePanels` properties enabled. Without this object, the `getData()` method returns the [`data`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#data) property value.
1535
+ *
1536
+ * ```js
1537
+ * import { Model } from "survey-core";
1538
+ *
1539
+ * const surveyJson = { ... };
1540
+ * const survey = new Model(surveyJson);
1541
+ * survey.getData({ includePages: true, includePanels: true });
1542
+ * ```
1543
+ */
1544
+ getData(options?: {
1545
+ includePages?: boolean;
1546
+ includePanels?: boolean;
1547
+ }): any;
1517
1548
  getStructuredData(includePages?: boolean, level?: number): any;
1518
1549
  setStructuredData(data: any, doMerge?: boolean): void;
1519
1550
  private collectDataFromPanel;
@@ -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;
@@ -57,6 +57,7 @@ export interface IAction {
57
57
  * [View Demo](https://surveyjs.io/form-library/examples/add-custom-navigation-button/ (linkStyle))
58
58
  */
59
59
  action?: (context?: any) => void;
60
+ onFocus?: (isMouse: boolean, event: any) => void;
60
61
  /**
61
62
  * One or several CSS classes that you want to apply to the outer `<div>` element.
62
63
  *
@@ -211,6 +212,7 @@ export declare abstract class BaseAction extends Base implements IAction {
211
212
  get disabled(): boolean;
212
213
  get canShrink(): boolean;
213
214
  get hasTitle(): boolean;
215
+ get hasSubItems(): boolean;
214
216
  getActionBarItemTitleCss(): string;
215
217
  getActionBarItemCss(): string;
216
218
  getActionRootCss(): string;
@@ -243,13 +245,14 @@ export declare class Action extends BaseAction implements IAction, ILocalizableO
243
245
  private raiseUpdate;
244
246
  constructor(innerItem: IAction);
245
247
  private createLocTitle;
246
- setItems(items: Array<IAction>, onSelectionChanged?: (item: Action, ...params: any[]) => void): void;
248
+ setSubItems(options: IListModel): void;
247
249
  location?: string;
248
250
  id: string;
249
251
  private _visible;
250
252
  locTooltipName?: string;
251
253
  private _enabled;
252
254
  action: (context?: any, isUserAction?: boolean) => void;
255
+ onFocus: (isMouse: boolean, event: any) => void;
253
256
  _component: string;
254
257
  items: any;
255
258
  _title: string;
@@ -260,6 +263,10 @@ export declare class Action extends BaseAction implements IAction, ILocalizableO
260
263
  get locTitleName(): string;
261
264
  set locTitleName(val: string);
262
265
  locStrsChanged(): void;
266
+ doAction(args: any): boolean;
267
+ private isMouseDown;
268
+ doMouseDown(): void;
269
+ doFocus(args: any): void;
263
270
  private locStrChangedInPopupModel;
264
271
  private locTitleChanged;
265
272
  private locTooltipChanged;
@@ -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;
@@ -59,6 +59,7 @@ export declare var defaultV2Css: {
59
59
  titleExpanded: string;
60
60
  titleCollapsed: string;
61
61
  titleDisabled: string;
62
+ titleHidden: string;
62
63
  titleOnExpand: string;
63
64
  titleOnError: string;
64
65
  titleBar: string;
@@ -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
  };
@@ -20,7 +20,6 @@ export declare class DropdownListModel extends Base {
20
20
  protected readonly itemSelector = ".sv-list__item";
21
21
  protected getFocusFirstInputSelector(): string;
22
22
  private itemsSettings;
23
- private isRunningLoadQuestionChoices;
24
23
  protected listModel: ListModel<ItemValue>;
25
24
  protected popupCssClasses: string;
26
25
  protected listModelFilterStringChanged: (newValue: string) => void;
@@ -1,8 +1,8 @@
1
- import { Base } from "survey-core";
2
- export declare class ImplementorBase {
3
- element: Base;
4
- private static doIterateProperties;
5
- readonly implementedMark = "__surveyImplementedKo";
6
- constructor(element: Base);
7
- dispose(): void;
8
- }
1
+ import { Base } from "survey-core";
2
+ export declare class ImplementorBase {
3
+ element: Base;
4
+ private static doIterateProperties;
5
+ readonly implementedMark = "__surveyImplementedKo";
6
+ constructor(element: Base);
7
+ dispose(): void;
8
+ }
@@ -1,37 +1,37 @@
1
- import { PageModel } from "survey-core";
2
- import { PanelModelBase, PanelModel, QuestionRowModel } from "survey-core";
3
- import { SurveyElement } from "survey-core";
4
- import { ImplementorBase } from "./kobase";
5
- export declare class QuestionRow extends QuestionRowModel {
6
- panel: PanelModelBase;
7
- koElementAfterRender: any;
8
- constructor(panel: PanelModelBase);
9
- getElementType(el: any): "survey-panel" | "survey-question";
10
- koAfterRender(htmlElements: any, element: SurveyElement): void;
11
- private elementAfterRender;
12
- rowAfterRender(elements: HTMLElement[], model: QuestionRow): void;
13
- dispose(): void;
14
- }
15
- export declare class PanelImplementorBase extends ImplementorBase {
16
- panel: PanelModelBase;
17
- constructor(panel: PanelModelBase);
18
- }
19
- export declare class Panel extends PanelModel {
20
- private _implementor;
21
- koElementType: any;
22
- constructor(name?: string);
23
- protected onBaseCreating(): void;
24
- createRow(): QuestionRowModel;
25
- protected onCreating(): void;
26
- protected onNumChanged(value: number): void;
27
- dispose(): void;
28
- }
29
- export declare class Page extends PageModel {
30
- private _implementor;
31
- constructor(name?: string);
32
- protected onBaseCreating(): void;
33
- createRow(): QuestionRowModel;
34
- protected onCreating(): void;
35
- protected onNumChanged(value: number): void;
36
- dispose(): void;
37
- }
1
+ import { PageModel } from "survey-core";
2
+ import { PanelModelBase, PanelModel, QuestionRowModel } from "survey-core";
3
+ import { SurveyElement } from "survey-core";
4
+ import { ImplementorBase } from "./kobase";
5
+ export declare class QuestionRow extends QuestionRowModel {
6
+ panel: PanelModelBase;
7
+ koElementAfterRender: any;
8
+ constructor(panel: PanelModelBase);
9
+ getElementType(el: any): "survey-panel" | "survey-question";
10
+ koAfterRender(htmlElements: any, element: SurveyElement): void;
11
+ private elementAfterRender;
12
+ rowAfterRender(elements: HTMLElement[], model: QuestionRow): void;
13
+ dispose(): void;
14
+ }
15
+ export declare class PanelImplementorBase extends ImplementorBase {
16
+ panel: PanelModelBase;
17
+ constructor(panel: PanelModelBase);
18
+ }
19
+ export declare class Panel extends PanelModel {
20
+ private _implementor;
21
+ koElementType: any;
22
+ constructor(name?: string);
23
+ protected onBaseCreating(): void;
24
+ createRow(): QuestionRowModel;
25
+ protected onCreating(): void;
26
+ protected onNumChanged(value: number): void;
27
+ dispose(): void;
28
+ }
29
+ export declare class Page extends PageModel {
30
+ private _implementor;
31
+ constructor(name?: string);
32
+ protected onBaseCreating(): void;
33
+ createRow(): QuestionRowModel;
34
+ protected onCreating(): void;
35
+ protected onNumChanged(value: number): void;
36
+ dispose(): void;
37
+ }
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
  *