survey-react 1.9.92 → 1.9.94

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.
package/survey.react.d.ts CHANGED
@@ -18,248 +18,392 @@ declare module "settings" {
18
18
  */
19
19
  export var settings: {
20
20
  /**
21
- * Specifies an action to perform when users press the Enter key within a survey.
21
+ * An object that configures survey appearance when the survey is being designed in Survey Creator.
22
22
  *
23
- * Possible values:
23
+ * Nested properties:
24
24
  *
25
- * - `"moveToNextEditor"` - Moves focus to the next editor.
26
- * - `"loseFocus"` - Removes focus from the current editor.
27
- * - `"default"` - Behaves as a standard `<input>` element.
25
+ * - `showEmptyDescriptions`: `Boolean`\
26
+ * Specifies whether to display an empty description for pages and panels. Default value: `true`.
27
+ *
28
+ * - `showEmptyTitles`: `Boolean`\
29
+ * Specifies whether to display an empty title for pages and panels. Default value: `true`.
28
30
  */
29
- enterKeyAction: "default" | "moveToNextEditor" | "loseFocus";
31
+ designMode: {
32
+ showEmptyDescriptions: boolean;
33
+ showEmptyTitles: boolean;
34
+ };
30
35
  /**
31
- * An object that configures string comparison.
36
+ * This property is obsolete. Use the [`settings.designMode.showEmptyDescriptions`](https://surveyjs.io/form-library/documentation/api-reference/settings#designMode) property instead.
37
+ */
38
+ allowShowEmptyDescriptionInDesignMode: boolean;
39
+ /**
40
+ * This property is obsolete. Use the [`settings.designMode.showEmptyTitles`](https://surveyjs.io/form-library/documentation/api-reference/settings#designMode) property instead.
41
+ */
42
+ allowShowEmptyTitleInDesignMode: boolean;
43
+ /**
44
+ * An object that contains properties related to localization.
32
45
  *
33
46
  * Nested properties:
34
47
  *
35
- * - `trimStrings`: `Boolean`\
36
- * Specifies whether to remove whitespace from both ends of a string before the comparison. Default value: `true`.
48
+ * - `useLocalTimeZone`: `Boolean`\
49
+ * Disable this property if you want internal SurveyJS functions to use methods that work with UTC date and time (`setUTCDate()` `setUTCHours()`, etc.) instead of methods that work with local date and time (`setYear`, `setHours()`, etc.). Default value: `true`.
37
50
  *
38
- * - `caseSensitive`: `Boolean`\
39
- * Specifies whether to differentiate between capital and lower-case letters. Default value: `false`.
51
+ * - `defaultLocaleName`: `String`\
52
+ * A property key that stores a translation for the default locale. Default value: `"default"`.
53
+ *
54
+ * - `storeDuplicatedTranslations`: `Boolean`\
55
+ * Specifies whether surveys should store translation strings that equal the translation strings in the default locale. Default value: `false`.
40
56
  */
41
- comparator: {
42
- trimStrings: boolean;
43
- caseSensitive: boolean;
57
+ localization: {
58
+ useLocalTimeZone: boolean;
59
+ storeDuplicatedTranslations: boolean;
60
+ defaultLocaleName: string;
44
61
  };
45
- expressionDisableConversionChar: string;
46
62
  /**
47
- * Disable this property if you want internal SurveyJS functions to use methods that work with UTC date and time (`setUTCDate()` `setUTCHours()`, etc.) instead of methods that work with local date and time (`setYear`, `setHours()`, etc.).
48
- *
49
- * Default value: `true`
63
+ * This property is obsolete. Use the [`settings.localization.useLocalTimeZone`](https://surveyjs.io/form-library/documentation/api-reference/settings#localization) property instead.
50
64
  */
51
65
  useLocalTimeZone: boolean;
52
- commentPrefix: string;
53
66
  /**
54
- * A suffix added to the name of the property that stores comments.
67
+ * This property is obsolete. Use the [`settings.localization.storeDuplicatedTranslations`](https://surveyjs.io/form-library/documentation/api-reference/settings#localization) property instead.
68
+ */
69
+ storeDuplicatedTranslations: boolean;
70
+ /**
71
+ * This property is obsolete. Use the [`settings.localization.defaultLocaleName`](https://surveyjs.io/form-library/documentation/api-reference/settings#localization) property instead.
72
+ */
73
+ defaultLocaleName: string;
74
+ /**
75
+ * An object with properties that configure surveys when they work with a web service.
55
76
  *
56
- * Default value: "-Comment"
77
+ * Nested properties:
57
78
  *
58
- * You can specify this setting for an individual survey: [`commentSuffix`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#commentSuffix).
79
+ * - `encodeUrlParams`: `Boolean`\
80
+ * Specifies whether to encode URL parameters when you access a web service. Default value: `true`.
81
+ *
82
+ * - `cacheLoadedChoices`: `Boolean`\
83
+ * Specifies whether to cache [choices](https://surveyjs.io/form-library/documentation/api-reference/checkbox-question-model#choicesByUrl) loaded from a web service. Default value: `true`.
84
+ *
85
+ * - `disableQuestionWhileLoadingChoices`: `Boolean`\
86
+ * Disables a question while its choices are being loaded from a web service. Default value: `false`.
87
+ *
88
+ * - `surveyServiceUrl`: `String`\
89
+ * The URL of the SurveyJS Service API endpoint.
59
90
  */
60
- commentSuffix: string;
91
+ web: {
92
+ encodeUrlParams: boolean;
93
+ cacheLoadedChoices: boolean;
94
+ disableQuestionWhileLoadingChoices: boolean;
95
+ surveyServiceUrl: string;
96
+ };
61
97
  /**
62
- * Specifies whether to encode URL parameters when you access a web service.
63
- *
64
- * Default value: `true`
98
+ * This property is obsolete. Use the [`settings.web.encodeUrlParams`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) property instead.
65
99
  */
66
100
  webserviceEncodeParameters: boolean;
67
101
  /**
68
- * Specifies whether to cache choices loaded from a web service.
69
- *
70
- * Default value: `true`
71
- * @see settings.disableOnGettingChoicesFromWeb
102
+ * This property is obsolete. Use the [`settings.web.cacheLoadedChoices`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) property instead.
72
103
  */
73
104
  useCachingForChoicesRestful: boolean;
74
105
  useCachingForChoicesRestfull: boolean;
75
106
  /**
76
- * The URL of the SurveyJS Service API endpoint.
107
+ * This property is obsolete. Use the [`settings.web.disableQuestionWhileLoadingChoices`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) property instead.
77
108
  */
78
- surveyServiceUrl: string;
109
+ disableOnGettingChoicesFromWeb: boolean;
79
110
  /**
80
- * A separator used in a shorthand notation that specifies a value and display text for an [`ItemValue`](https://surveyjs.io/form-library/documentation/api-reference/itemvalue) object: `"value|text"`.
81
- *
82
- * Default value: `"|"`
111
+ * This property is obsolete. Use the [`settings.web.surveyServiceUrl`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) property instead.
83
112
  */
84
- itemValueSeparator: string;
113
+ surveyServiceUrl: string;
85
114
  /**
86
- * Enable this property if you want to serialize [`ItemValue`](https://surveyjs.io/form-library/documentation/api-reference/itemvalue) instances as objects even when they include only the `value` property.
115
+ * An object that contains properties related to [triggers](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#conditional-survey-logic-triggers).
87
116
  *
88
- * ```js
89
- * import { ItemValue, settings } from "survey-core";
117
+ * Nested properties:
90
118
  *
91
- * settings.itemValueAlwaysSerializeAsObject = true;
92
- * const item = new ItemValue(5);
93
- * const itemString = item.toJSON(); // Produces { value: 5 } instead of 5
94
- * ```
119
+ * - `changeNavigationButtonsOnComplete`: `Boolean`\
120
+ * Specifies whether to re-evaluate an expression associated with the [Complete trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#complete) immediately when a question value changes. If the expression evaluates to `true`, the trigger is executed. Default value: `false`.\
121
+ * Keep this property set to `false` if you want to re-evaluate the Complete trigger's expression only when the respondents navigate to another page.
122
+ *
123
+ * - `executeCompleteOnValueChanged`: `Boolean`\
124
+ * Specifies whether to replace the Next button with the Complete button when the [Complete trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#complete) is going to be executed. Default value: `true`.
95
125
  *
96
- * @see settings.serializeLocalizableStringAsObject
126
+ * - `executeSkipOnValueChanged`: `Boolean`\
127
+ * Specifies whether to re-evaluate an expression associated with the [Skip trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#skip) immediately when a question value changes. If the expression evaluates to `true`, the trigger is executed. Default value: `true`.\
128
+ * Disable this property if you want to re-evaluate the Skip trigger's expression only when respondents navigate to another page.
97
129
  */
98
- itemValueAlwaysSerializeAsObject: boolean;
130
+ triggers: {
131
+ changeNavigationButtonsOnComplete: boolean;
132
+ executeCompleteOnValueChanged: boolean;
133
+ executeSkipOnValueChanged: boolean;
134
+ };
135
+ /**
136
+ * This property is obsolete. Use the [`settings.triggers.executeCompleteOnValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/settings#triggers) property instead.
137
+ */
138
+ executeCompleteTriggerOnValueChanged: boolean;
139
+ /**
140
+ * This property is obsolete. Use the [`settings.triggers.changeNavigationButtonsOnComplete`](https://surveyjs.io/form-library/documentation/api-reference/settings#triggers) property instead.
141
+ */
142
+ changeNavigationButtonsOnCompleteTrigger: boolean;
143
+ /**
144
+ * This property is obsolete. Use the [`settings.triggers.executeSkipOnValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/settings#triggers) property instead.
145
+ */
146
+ executeSkipTriggerOnValueChanged: boolean;
99
147
  /**
100
- * Enable this property if you want to serialize the `text` property of [`ItemValue`](https://surveyjs.io/form-library/documentation/api-reference/itemvalue) objects even when it is empty or equal to the `value` property.
148
+ * An object that contains properties related to JSON serialization.
149
+ *
150
+ * Nested properties:
151
+ *
152
+ * - `itemValueSerializeAsObject`: `Boolean`\
153
+ * Enable this property if you want to serialize [`ItemValue`](https://surveyjs.io/form-library/documentation/api-reference/itemvalue) instances as objects even when they include only the `value` property. Default value: `false`. View an example below.
154
+ *
155
+ * - `itemValueSerializeDisplayText`: `Boolean`\
156
+ * Enable this property if you want to serialize the `text` property of [`ItemValue`](https://surveyjs.io/form-library/documentation/api-reference/itemvalue) objects even when it is empty or equal to the `value` property. Default value: `false`. View an example below.
157
+ *
158
+ * - `localizableStringSerializeAsObject`: `Boolean`\
159
+ * Enable this property if you want to serialize [`LocalizableString`](https://surveyjs.io/form-library/documentation/api-reference/localizablestring) instances as objects even when they include only a translation string for the default locale. For example, `"Custom String"` will be serialized as `{ default: "Custom String" }`. Default value: `false`.
101
160
  *
102
161
  * ```js
103
162
  * import { ItemValue, settings } from "survey-core";
104
163
  *
105
- * settings.itemValueAlwaysSerializeText = true;
164
+ * // `itemValueSerializeAsObject` example
165
+ * settings.localization.itemValueSerializeAsObject = true;
166
+ * const item = new ItemValue(5);
167
+ * const itemString = item.toJSON(); // Produces { value: 5 } instead of 5
168
+ *
169
+ * // `itemValueSerializeDisplayText` example
170
+ * settings.localization.itemValueSerializeDisplayText = true;
106
171
  * const item = new ItemValue("item1");
107
172
  * const itemString = item.toJSON(); // Produces { value: "item1", text: "item1" } instead of "item1"
108
173
  * ```
109
174
  */
175
+ serialization: {
176
+ itemValueSerializeAsObject: boolean;
177
+ itemValueSerializeDisplayText: boolean;
178
+ localizableStringSerializeAsObject: boolean;
179
+ };
180
+ /**
181
+ * This property is obsolete. Use the [`settings.serialization.itemValueSerializeAsObject`](https://surveyjs.io/form-library/documentation/api-reference/settings#serialization) property instead.
182
+ */
183
+ itemValueAlwaysSerializeAsObject: boolean;
184
+ /**
185
+ * This property is obsolete. Use the [`settings.serialization.itemValueSerializeDisplayText`](https://surveyjs.io/form-library/documentation/api-reference/settings#serialization) property instead.
186
+ */
110
187
  itemValueAlwaysSerializeText: boolean;
111
188
  /**
112
- * Specifies a property key that stores a translation for the default locale.
113
- *
114
- * Default value: `"default"`
115
- * @see storeDuplicatedTranslations
189
+ * This property is obsolete. Use the [`settings.serialization.localizableStringSerializeAsObject`](https://surveyjs.io/form-library/documentation/api-reference/settings#serialization) property instead.
116
190
  */
117
- defaultLocaleName: string;
191
+ serializeLocalizableStringAsObject: boolean;
118
192
  /**
119
- * Specifies whether surveys should store translation strings that equal the translation string specified by the `"default"` key.
193
+ * An object that configures lazy rendering.
120
194
  *
121
- * Default value: `false`
122
- * @see settings.defaultLocaleName
195
+ * Nested properties:
196
+ *
197
+ * - `enabled`: `Boolean`\
198
+ * Specifies whether to add questions to the DOM only when they get into the viewport. Default value: `false`.
199
+ *
200
+ * > Lazy rendering is an experimental feature that may not work as expected in all use cases.
123
201
  */
124
- storeDuplicatedTranslations: boolean;
202
+ lazyRender: {
203
+ enabled: boolean;
204
+ firstBatchSize: number;
205
+ };
125
206
  /**
126
- * Specifies a property key that stores an object with default cell values in [Single-Choice Matrix](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-question-model) questions.
127
- *
128
- * Default value: "default"
207
+ * This property is obsolete. Use the [`settings.lazyRender.enabled`](https://surveyjs.io/form-library/documentation/api-reference/settings#lazyRender) property instead.
129
208
  */
130
- matrixDefaultRowName: string;
209
+ lazyRowsRendering: boolean;
210
+ lazyRowsRenderingStartRow: number;
131
211
  /**
132
- * The default type of matrix cells in the [Multiple-Choice Matrix](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list) and [Dynamic Matrix](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model) question types.
212
+ * An object with properties that apply to [Single-Choice](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-question-model), [Multiple-Choice](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list), and [Dynamic Matrix](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model) questions.
133
213
  *
134
- * Default value: `"dropdown"`
214
+ * Nested properties:
215
+ *
216
+ * - `defaultRowName`: `String`\
217
+ * A property key that stores an object with default cell values. Default value: "default".
135
218
  *
219
+ * - `defaultCellType`: `String`\
220
+ * The default type of matrix cells. Default value: `"dropdown"`.\
136
221
  * You can specify this setting for individual questions or matrix columns: [`cellType`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model#cellType). Refer to the `cellType` property description for information on possible values.
222
+ *
223
+ * - `totalsSuffix`: `String`\
224
+ * A suffix added to the name of the property that stores total values. The resulting property name consists of the matrix name and the suffix. Default value: `"-total"`.
225
+ *
226
+ * - `maxRowCount`: `Number`\
227
+ * A maximum number of rows in a Dynamic Matrix. Default value: 1000.\
228
+ * You can specify this setting for an individual Dynamic Matrix: [`maxRowCount`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model#maxRowCount).
229
+ *
230
+ * - `maxRowCountInCondition`: `Number`\
231
+ * A maximum number of matrix rows included in the Condition drop-down menu in Survey Creator. This menu is used to configure conditional survey logic. Default value: 1.\
232
+ * If you set this property to 0, the Condition menu does not include any matrix rows. Users still can specify conditions that use matrix rows but only with Manual Entry.
233
+ *
234
+ * - `renderRemoveAsIcon`: `Boolean`\
235
+ * Disable this property if you want to render the Remove action in Dynamic Matrix as a button. Otherwise, the action is rendered as an icon. Default value: `true`.
236
+ *
237
+ * - `columnWidthsByType`: `Object`\
238
+ * An object that specifies fixed and minimum column width based on the column type.\
239
+ * Example: `settings.matrix.columnWidthsByType = { "tagbox": { minWidth: "240px", width: "300px" } }`
240
+ *
241
+ * - `rateSize`: `"small"` (default) | `"normal"`\
242
+ * Specifies the size of rate values. Applies to [Rating Scale](https://surveyjs.io/form-library/examples/rating-scale/) questions within matrixes.
243
+ */
244
+ matrix: {
245
+ defaultCellType: string;
246
+ defaultRowName: string;
247
+ totalsSuffix: string;
248
+ maxRowCount: number;
249
+ maxRowCountInCondition: number;
250
+ renderRemoveAsIcon: boolean;
251
+ columnWidthsByType: {
252
+ [index: string]: {
253
+ minWidth?: string;
254
+ width?: string;
255
+ };
256
+ };
257
+ rateSize: "small" | "normal";
258
+ };
259
+ /**
260
+ * This property is obsolete. Use the [`settings.matrix.defaultRowName`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
261
+ */
262
+ matrixDefaultRowName: string;
263
+ /**
264
+ * This property is obsolete. Use the [`settings.matrix.defaultCellType`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
137
265
  */
138
266
  matrixDefaultCellType: string;
139
267
  /**
140
- * A suffix added to the name of the property that stores total values. The resulting property name consists of the matrix name and the suffix.
141
- *
142
- * Default value: `"-total"`
268
+ * This property is obsolete. Use the [`settings.matrix.totalsSuffix`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
143
269
  */
144
270
  matrixTotalValuePostFix: string;
145
271
  /**
146
- * A maximum number of rows in a [Dynamic Matrix](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model).
147
- *
148
- * Default value: 1000
149
- *
150
- * You can specify this setting for an individual Dynamic Matrix: [`maxRowCount`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model#maxRowCount).
272
+ * This property is obsolete. Use the [`settings.matrix.maxRowCount`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
151
273
  */
152
274
  matrixMaximumRowCount: number;
153
275
  /**
154
- * A maximum number of matrix rows included in the Condition drop-down menu in Survey Creator. This menu is used to configure conditional survey logic.
155
- *
156
- * Default value: 1
157
- *
158
- * If you set this property to 0, the Condition menu does not include any matrix rows. Users still can specify conditions that use matrix rows but only with Manual Entry.
276
+ * This property is obsolete. Use the [`settings.matrix.maxRowCountInCondition`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
159
277
  */
160
278
  matrixMaxRowCountInCondition: number;
161
279
  /**
162
- * A maximum number of panels from [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model) included in the Condition drop-down menu in Survey Creator. This menu is used to configure conditional survey logic.
280
+ * This property is obsolete. Use the [`settings.matrix.renderRemoveAsIcon`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
281
+ */
282
+ matrixRenderRemoveAsIcon: boolean;
283
+ /**
284
+ * An object with properties that apply to [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model) questions.
163
285
  *
164
- * Default value: 1
286
+ * Nested properties:
287
+ *
288
+ * - `maxPanelCount`: `Number`\
289
+ * A maximum number of panels in Dynamic Panel. Default value: 100.\
290
+ * You can specify this setting for an individual Dynamic Panel: [`maxPanelCount`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#maxPanelCount).
165
291
  *
292
+ * - `maxPanelCountInCondition`: `Number`\
293
+ * A maximum number of Dynamic Panel panels included in the Condition drop-down menu in Survey Creator. This menu is used to configure conditional survey logic. Default value: 1.\
166
294
  * If you set this property to 0, the Condition menu does not include any panel questions. Users still can specify conditions that use panel questions but only with Manual Entry.
167
295
  */
168
- panelDynamicMaxPanelCountInCondition: number;
296
+ panel: {
297
+ maxPanelCount: number;
298
+ maxPanelCountInCondition: number;
299
+ };
169
300
  /**
170
- * Disable this property if you want to render the Remove action in Dynamic Matrix as a button. Otherwise, the action is rendered as an icon.
171
- *
172
- * Default value: `true`
301
+ * This property is obsolete. Use the [`settings.panel.maxPanelCountInCondition`](https://surveyjs.io/form-library/documentation/api-reference/settings#panel) property instead.
173
302
  */
174
- matrixRenderRemoveAsIcon: boolean;
303
+ panelDynamicMaxPanelCountInCondition: number;
175
304
  /**
176
- * A maximum number of panels in [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model).
177
- *
178
- * Default value: 100
179
- *
180
- * You can specify this setting for an individual Dynamic Panel: [`maxPanelCount`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#maxPanelCount).
305
+ * This property is obsolete. Use the [`settings.panel.maxPanelCount`](https://surveyjs.io/form-library/documentation/api-reference/settings#panel) property instead.
181
306
  */
182
307
  panelMaximumPanelCount: number;
183
308
  /**
184
- * A maximum number of rate values in a [Rating](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model) question.
309
+ * An object with properties that configure questions in read-only mode.
185
310
  *
186
- * Default value: 20
311
+ * Nested properties:
312
+ *
313
+ * - `commentRenderMode`: `"textarea"` (default) | `"div"`\
314
+ * Specifies how to render the input field of [Comment](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model) questions in [read-only](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model#readOnly) mode: as a disabled `<textarea>` element or as a `<div>` element with a non-editable question value within it.
315
+ *
316
+ * - `textRenderMode`: `"input"` (default) | `"div"`\
317
+ * Specifies how to render the input field of [Text](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model) questions in [read-only](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#readOnly) mode: as a disabled `<input>` element or as a `<div>` element with a non-editable question value within it.
187
318
  */
188
- ratingMaximumRateValueCount: number;
319
+ readOnly: {
320
+ commentRenderMode: string;
321
+ textRenderMode: string;
322
+ };
189
323
  /**
190
- * 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.
191
- *
192
- * 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.
324
+ * This property is obsolete. Use the [`settings.readOnly.commentRenderMode`](https://surveyjs.io/form-library/documentation/api-reference/settings#readOnly) property instead.
193
325
  */
194
- tagboxCloseOnSelect: boolean;
326
+ readOnlyCommentRenderMode: string;
195
327
  /**
196
- * Disables the question while choices are being loaded from a web service.
197
- *
198
- * Default value: `false`
199
- * @see settings.useCachingForChoicesRestful
328
+ * This property is obsolete. Use the [`settings.readOnly.textRenderMode`](https://surveyjs.io/form-library/documentation/api-reference/settings#readOnly) property instead.
200
329
  */
201
- disableOnGettingChoicesFromWeb: boolean;
330
+ readOnlyTextRenderMode: string;
202
331
  /**
203
- * Enable this property if you want to serialize [`LocalizableString`](https://surveyjs.io/form-library/documentation/api-reference/localizablestring) instances as objects even when they include only a translation string for the default locale. For example, `"Custom String"` will be serialized as `{ default: "Custom String" }`.
332
+ * An object with properties that configure question numbering.
204
333
  *
205
- * Default value: `false`
206
- * @see settings.itemValueAlwaysSerializeAsObject
334
+ * Nested properties:
335
+ *
336
+ * - `includeQuestionsWithHiddenNumber`: `Boolean`\
337
+ * Specifies whether to number questions whose [`hideNumber`](https://surveyjs.io/form-library/documentation/api-reference/question#hideNumber) property is enabled. Default value: `false`.
338
+ *
339
+ * - `includeQuestionsWithHiddenTitle`: `Boolean`\
340
+ * Specifies whether to number questions whose [`titleLocation`](https://surveyjs.io/form-library/documentation/api-reference/question#titleLocation) property is set to `"hidden"`. Default value: `false`.
207
341
  */
208
- serializeLocalizableStringAsObject: boolean;
342
+ numbering: {
343
+ includeQuestionsWithHiddenNumber: boolean;
344
+ includeQuestionsWithHiddenTitle: boolean;
345
+ };
209
346
  /**
210
- * Specifies whether to display an empty title for pages and panels when they are being designed in Survey Creator.
211
- *
212
- * Default value: `true`
347
+ * This property is obsolete. Use the [`settings.numbering.includeQuestionsWithHiddenTitle`](https://surveyjs.io/form-library/documentation/api-reference/settings#numbering) property instead.
213
348
  */
214
- allowShowEmptyTitleInDesignMode: boolean;
349
+ setQuestionVisibleIndexForHiddenTitle: boolean;
215
350
  /**
216
- * Specifies whether to display an empty description for pages and panels when they are being designed in Survey Creator.
217
- *
218
- * Default value: `true`
351
+ * This property is obsolete. Use the [`settings.numbering.includeQuestionsWithHiddenNumber`](https://surveyjs.io/form-library/documentation/api-reference/settings#numbering) property instead.
219
352
  */
220
- allowShowEmptyDescriptionInDesignMode: boolean;
353
+ setQuestionVisibleIndexForHiddenNumber: boolean;
221
354
  /**
222
- * Specifies whether to re-evaluate an expression associated with the [Complete trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#complete) immediately when a question value changes. If the expression evaluates to `true`, the trigger is executed.
355
+ * Specifies an action to perform when users press the Enter key within a survey.
223
356
  *
224
- * Keep this property set to `false` if you want to re-evaluate the Complete trigger's expression only when the respondents navigate to another page.
357
+ * Possible values:
225
358
  *
226
- * Default value: `false`
227
- * @see settings.changeNavigationButtonsOnCompleteTrigger
359
+ * - `"moveToNextEditor"` - Moves focus to the next editor.
360
+ * - `"loseFocus"` - Removes focus from the current editor.
361
+ * - `"default"` - Behaves as a standard `<input>` element.
228
362
  */
229
- executeCompleteTriggerOnValueChanged: boolean;
363
+ enterKeyAction: "default" | "moveToNextEditor" | "loseFocus";
230
364
  /**
231
- * Specifies whether to replace the Next button with the Complete button when the [Complete trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#complete) is going to be executed.
365
+ * An object that configures string comparison.
232
366
  *
233
- * Default value: `true`
234
- * @see settings.executeCompleteTriggerOnValueChanged
367
+ * Nested properties:
368
+ *
369
+ * - `trimStrings`: `Boolean`\
370
+ * Specifies whether to remove whitespace from both ends of a string before the comparison. Default value: `true`.
371
+ *
372
+ * - `caseSensitive`: `Boolean`\
373
+ * Specifies whether to differentiate between capital and lower-case letters. Default value: `false`.
235
374
  */
236
- changeNavigationButtonsOnCompleteTrigger: boolean;
375
+ comparator: {
376
+ trimStrings: boolean;
377
+ caseSensitive: boolean;
378
+ };
379
+ expressionDisableConversionChar: string;
380
+ commentPrefix: string;
237
381
  /**
238
- * Specifies whether to re-evaluate an expression associated with the [Skip trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#skip) immediately when a question value changes. If the expression evaluates to `true`, the trigger is executed.
382
+ * A suffix added to the name of the property that stores comments.
239
383
  *
240
- * Disable this property if you want to re-evaluate the Skip trigger's expression only when the respondents navigate to another page.
384
+ * Default value: "-Comment"
241
385
  *
242
- * Default value: `true`
386
+ * You can specify this setting for an individual survey: [`commentSuffix`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#commentSuffix).
243
387
  */
244
- executeSkipTriggerOnValueChanged: boolean;
388
+ commentSuffix: string;
245
389
  /**
246
- * Specifies how to render the input field of [Comment](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model) questions in [read-only](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model#readOnly) mode.
247
- *
248
- * Possible values:
390
+ * A separator used in a shorthand notation that specifies a value and display text for an [`ItemValue`](https://surveyjs.io/form-library/documentation/api-reference/itemvalue) object: `"value|text"`.
249
391
  *
250
- * - `"textarea"` (default) - Renders the input field as a disabled `<textarea>` element.
251
- * - `"div"` - Renders the input field as a `<div>` element with a non-editable question value within it.
392
+ * Default value: `"|"`
252
393
  */
253
- readOnlyCommentRenderMode: string;
394
+ itemValueSeparator: string;
254
395
  /**
255
- * Specifies how to render the input field of [Text](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model) questions in [read-only](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#readOnly) mode.
396
+ * A maximum number of rate values in a [Rating](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model) question.
256
397
  *
257
- * Possible values:
398
+ * Default value: 20
399
+ */
400
+ ratingMaximumRateValueCount: number;
401
+ /**
402
+ * 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.
258
403
  *
259
- * - `"input"` (default) - Renders the input field as a disabled `<input>` element.
260
- * - `"div"` - Renders the input field as a `<div>` element with a non-editable question value within it.
404
+ * 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.
261
405
  */
262
- readOnlyTextRenderMode: string;
406
+ tagboxCloseOnSelect: boolean;
263
407
  /**
264
408
  * A property that allows you to display a custom confirm dialog instead of the standard browser dialog. Set this property to a function that renders your custom dialog window.
265
409
  * @param message A message to be displayed in the confirm dialog window.
@@ -286,28 +430,7 @@ declare module "settings" {
286
430
  *
287
431
  * Default value: 10
288
432
  */
289
- maximumConditionRunCountOnValueChanged: number;
290
- /**
291
- * Specifies whether to number questions whose [`titleLocation`](https://surveyjs.io/form-library/documentation/api-reference/question#titleLocation) property is set to `"hidden"`.
292
- *
293
- * Default value: `false`
294
- */
295
- setQuestionVisibleIndexForHiddenTitle: boolean;
296
- /**
297
- * Specifies whether to number questions whose [`hideNumber`](https://surveyjs.io/form-library/documentation/api-reference/question#hideNumber) property is enabled.
298
- *
299
- * Default value: `false`
300
- */
301
- setQuestionVisibleIndexForHiddenNumber: boolean;
302
- /**
303
- * Specifies whether to add questions to the DOM only when they get into the viewport.
304
- *
305
- * Default value: `false`
306
- *
307
- * > This is an experimental feature that may not work as expected in all use cases.
308
- */
309
- lazyRowsRendering: boolean;
310
- lazyRowsRenderingStartRow: number;
433
+ maxConditionRunCountOnValueChanged: number;
311
434
  /**
312
435
  * An object that configures notifications.
313
436
  *
@@ -380,6 +503,7 @@ declare module "settings" {
380
503
  * Specifies environment in which SurveyJS will exist
381
504
  */
382
505
  environment: ISurveyEnvironment;
506
+ showMaxLengthIndicator: boolean;
383
507
  titleTags: {
384
508
  survey: string;
385
509
  page: string;
@@ -390,27 +514,6 @@ declare module "settings" {
390
514
  inputTypes: string[];
391
515
  dataList: string[];
392
516
  };
393
- /**
394
- * Contains properties that apply to [Single-Choice](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-question-model), [Multiple-Choice](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list), and [Dynamic Matrix](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model) questions.
395
- *
396
- * Nested properties:
397
- *
398
- * - `columnWidthsByType`: `Object`\
399
- * An object that specifies fixed and minimum column width based on the column type.\
400
- * Example: `settings.matrix.columnWidthsByType = { "tagbox": { minWidth: "240px", width: "300px" } }`
401
- *
402
- * - `rateSize`: `"small"` (default) | `"normal"`\
403
- * Specifies the size of rate values. Applies to [Rating Scale](https://surveyjs.io/form-library/examples/rating-scale/) questions within matrixes.
404
- */
405
- matrix: {
406
- columnWidthsByType: {
407
- [index: string]: {
408
- minWidth?: string;
409
- width?: string;
410
- };
411
- };
412
- rateSize: "small" | "normal";
413
- };
414
517
  };
415
518
  }
416
519
  declare module "helpers" {
@@ -542,6 +645,8 @@ declare module "localization/english" {
542
645
  noEntriesReadonlyText: string;
543
646
  more: string;
544
647
  tagboxDoneButtonCaption: string;
648
+ selectToRankFromContainerPlaceholder: string;
649
+ selectToRankToContainerPlaceholder: string;
545
650
  };
546
651
  }
547
652
  declare module "surveyStrings" {
@@ -651,6 +756,8 @@ declare module "surveyStrings" {
651
756
  noEntriesReadonlyText: string;
652
757
  more: string;
653
758
  tagboxDoneButtonCaption: string;
759
+ selectToRankFromContainerPlaceholder: string;
760
+ selectToRankToContainerPlaceholder: string;
654
761
  };
655
762
  }
656
763
  declare module "localizablestring" {
@@ -1422,6 +1529,7 @@ declare module "utils/utils" {
1422
1529
  function classesToSelector(str: string): string;
1423
1530
  function getElementWidth(el: HTMLElement): number;
1424
1531
  function isContainerVisible(el: HTMLElement): boolean;
1532
+ function getFirstVisibleChild(el: HTMLElement): any;
1425
1533
  function findParentByClassNames(element: HTMLElement, classNames: Array<string>): Element;
1426
1534
  export function sanitizeEditableContent(element: any): void;
1427
1535
  function mergeValues(src: any, dest: any): void;
@@ -1430,7 +1538,7 @@ declare module "utils/utils" {
1430
1538
  log(action: string): void;
1431
1539
  get result(): string;
1432
1540
  }
1433
- export { mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, };
1541
+ export { mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, };
1434
1542
  }
1435
1543
  declare module "actions/container" {
1436
1544
  import { Base } from "base";
@@ -1510,6 +1618,7 @@ declare module "list" {
1510
1618
  itemSeparator: string;
1511
1619
  itemBody: string;
1512
1620
  itemsContainer: string;
1621
+ itemsContainerFiltering: string;
1513
1622
  filter: string;
1514
1623
  filterIcon: string;
1515
1624
  filterInput: string;
@@ -1567,6 +1676,7 @@ declare module "list" {
1567
1676
  itemSeparator: string;
1568
1677
  itemBody: string;
1569
1678
  itemsContainer: string;
1679
+ itemsContainerFiltering: string;
1570
1680
  filter: string;
1571
1681
  filterIcon: string;
1572
1682
  filterInput: string;
@@ -1578,6 +1688,7 @@ declare module "list" {
1578
1688
  isItemSelected: (itemValue: T) => boolean;
1579
1689
  isItemFocused: (itemValue: T) => boolean;
1580
1690
  protected areSameItems(item1: IAction, item2: IAction): boolean;
1691
+ getListClass: () => string;
1581
1692
  getItemClass: (itemValue: T) => string;
1582
1693
  getItemIndent: (itemValue: any) => string;
1583
1694
  get filterStringPlaceholder(): string;
@@ -1850,6 +1961,7 @@ declare module "actions/action" {
1850
1961
  }
1851
1962
  export function createDropdownActionModel(actionOptions: IAction, dropdownOptions: IActionDropdownPopupOptions, locOwner?: ILocalizableOwner): Action;
1852
1963
  export function createDropdownActionModelAdvanced(actionOptions: IAction, listOptions: IListModel, popupOptions?: IPopupOptionsBase, locOwner?: ILocalizableOwner): Action;
1964
+ export function getActionDropdownButtonTarget(container: HTMLElement): HTMLElement;
1853
1965
  export abstract class BaseAction extends Base implements IAction {
1854
1966
  private cssClassesValue;
1855
1967
  tooltip: string;
@@ -1913,7 +2025,7 @@ declare module "actions/action" {
1913
2025
  export class Action extends BaseAction implements IAction, ILocalizableOwner {
1914
2026
  innerItem: IAction;
1915
2027
  private locTitleValue;
1916
- updateCallback: () => void;
2028
+ updateCallback: (isResetInitialized: boolean) => void;
1917
2029
  private raiseUpdate;
1918
2030
  constructor(innerItem: IAction);
1919
2031
  private createLocTitle;
@@ -2003,7 +2115,7 @@ declare module "actions/adaptive-container" {
2003
2115
  import { Action, actionModeType } from "actions/action";
2004
2116
  import { ActionContainer } from "actions/container";
2005
2117
  export class AdaptiveActionContainer<T extends Action = Action> extends ActionContainer<T> {
2006
- protected dotsItem: Action;
2118
+ dotsItem: Action;
2007
2119
  private responsivityManager;
2008
2120
  minVisibleItemsCount: number;
2009
2121
  isResponsivenessDisabled: boolean;
@@ -2140,6 +2252,17 @@ declare module "defaultCss/defaultV2Css" {
2140
2252
  progressBtnIcon: string;
2141
2253
  noEntriesPlaceholder: string;
2142
2254
  compact: string;
2255
+ tabsRoot: string;
2256
+ tabsLeft: string;
2257
+ tabsRight: string;
2258
+ tabsCenter: string;
2259
+ tabs: {
2260
+ item: string;
2261
+ itemPressed: string;
2262
+ itemAsIcon: string;
2263
+ itemIcon: string;
2264
+ itemTitle: string;
2265
+ };
2143
2266
  };
2144
2267
  progress: string;
2145
2268
  progressTop: string;
@@ -2601,6 +2724,9 @@ declare module "defaultCss/defaultV2Css" {
2601
2724
  rootDisabled: string;
2602
2725
  rootDesignMode: string;
2603
2726
  rootDragHandleAreaIcon: string;
2727
+ rootSelectToRankMod: string;
2728
+ rootSelectToRankAlignVertical: string;
2729
+ rootSelectToRankAlignHorizontal: string;
2604
2730
  item: string;
2605
2731
  itemContent: string;
2606
2732
  itemIndex: string;
@@ -2614,6 +2740,12 @@ declare module "defaultCss/defaultV2Css" {
2614
2740
  itemGhostMod: string;
2615
2741
  itemDragMod: string;
2616
2742
  itemOnError: string;
2743
+ container: string;
2744
+ containerEmptyMode: string;
2745
+ containerFromMode: string;
2746
+ containerToMode: string;
2747
+ containerPlaceholder: string;
2748
+ containersDivider: string;
2617
2749
  };
2618
2750
  buttongroup: {
2619
2751
  root: string;
@@ -2656,6 +2788,7 @@ declare module "defaultCss/defaultV2Css" {
2656
2788
  other: string;
2657
2789
  onError: string;
2658
2790
  label: string;
2791
+ itemSvgIconId: string;
2659
2792
  item: string;
2660
2793
  itemDisabled: string;
2661
2794
  itemChecked: string;
@@ -3548,7 +3681,7 @@ declare module "question_file" {
3548
3681
  /**
3549
3682
  * A class that describes the File question type.
3550
3683
  *
3551
- * [View Demo](https://surveyjs.io/form-library/examples/questiontype-file/ (linkStyle))
3684
+ * [View Demo](https://surveyjs.io/form-library/examples/file-upload/ (linkStyle))
3552
3685
  */
3553
3686
  export class QuestionFileModel extends Question {
3554
3687
  private isUploading;
@@ -3579,6 +3712,7 @@ declare module "question_file" {
3579
3712
  private getFileIndexCaption;
3580
3713
  isPreviewVisible(index: number): boolean;
3581
3714
  getType(): string;
3715
+ clearValue(): void;
3582
3716
  clearOnDeletingContainer(): void;
3583
3717
  /**
3584
3718
  * Disable this property only to implement a custom preview.
@@ -4237,7 +4371,7 @@ declare module "question_baseselect" {
4237
4371
  private randomizeArray;
4238
4372
  clearIncorrectValues(): void;
4239
4373
  protected hasValueToClearIncorrectValues(): boolean;
4240
- protected clearValueIfInvisibleCore(): void;
4374
+ protected clearValueIfInvisibleCore(reason: string): void;
4241
4375
  /**
4242
4376
  * Returns `true` if a passed choice item is selected.
4243
4377
  *
@@ -4681,6 +4815,8 @@ declare module "dragdrop/matrix-rows" {
4681
4815
  import { DragDropCore } from "dragdrop/core";
4682
4816
  export class DragDropMatrixRows extends DragDropCore<QuestionMatrixDynamicModel> {
4683
4817
  protected get draggedElementType(): string;
4818
+ protected restoreUserSelectValue: string;
4819
+ protected onStartDrag(): void;
4684
4820
  protected createDraggedElementShortcut(text: string, draggedElementNode: HTMLElement, event: PointerEvent): HTMLElement;
4685
4821
  private fromIndex;
4686
4822
  private toIndex;
@@ -4957,7 +5093,7 @@ declare module "question_matrixdynamic" {
4957
5093
  /**
4958
5094
  * A maximum number of rows in the matrix. Users cannot add new rows if `rowCount` equals `maxRowCount`.
4959
5095
  *
4960
- * Default value: 1000 (inherited from [`settings.matrixMaximumRowCount`](https://surveyjs.io/form-library/documentation/settings#matrixMaximumRowCount))
5096
+ * Default value: 1000 (inherited from [`settings.matrix.maxRowCount`](https://surveyjs.io/form-library/documentation/settings#matrixMaximumRowCount))
4961
5097
  * @see rowCount
4962
5098
  * @see minRowCount
4963
5099
  * @see allowAddRows
@@ -5171,6 +5307,7 @@ declare module "question_paneldynamic" {
5171
5307
  import { SurveyError } from "survey-error";
5172
5308
  import { ActionContainer } from "actions/container";
5173
5309
  import { IAction } from "actions/action";
5310
+ import { AdaptiveActionContainer } from "actions/adaptive-container";
5174
5311
  export interface IQuestionPanelDynamicData {
5175
5312
  getItemIndex(item: ISurveyData): number;
5176
5313
  getVisibleItemIndex(item: ISurveyData): number;
@@ -5484,7 +5621,7 @@ declare module "question_paneldynamic" {
5484
5621
  /**
5485
5622
  * A maximum number of panels in Dynamic Panel. Users cannot add new panels if `panelCount` equals `maxPanelCount`.
5486
5623
  *
5487
- * Default value: 100 (inherited from [`settings.panelMaximumPanelCount`](https://surveyjs.io/form-library/documentation/settings#panelMaximumPanelCount))
5624
+ * Default value: 100 (inherited from [`settings.panel.maxPanelCount`](https://surveyjs.io/form-library/documentation/settings#panelMaximumPanelCount))
5488
5625
  * @see panelCount
5489
5626
  * @see minPanelCount
5490
5627
  * @see allowAddPanel
@@ -5686,7 +5823,9 @@ declare module "question_paneldynamic" {
5686
5823
  hasErrors(fireCallback?: boolean, rec?: any): boolean;
5687
5824
  protected getContainsErrors(): boolean;
5688
5825
  protected getIsAnswered(): boolean;
5689
- protected clearValueIfInvisibleCore(): void;
5826
+ protected clearValueOnHidding(isClearOnHidden: boolean): void;
5827
+ clearValueIfInvisible(reason?: string): void;
5828
+ private clearValueInPanelsIfInvisible;
5690
5829
  protected getIsRunningValidators(): boolean;
5691
5830
  getAllErrors(): Array<SurveyError>;
5692
5831
  protected getDisplayValueCore(keysAsText: boolean, value: any): any;
@@ -5741,7 +5880,7 @@ declare module "question_paneldynamic" {
5741
5880
  getShowNoEntriesPlaceholder(): boolean;
5742
5881
  needResponsiveWidth(): boolean;
5743
5882
  private additionalTitleToolbarValue;
5744
- protected getAdditionalTitleToolbar(): ActionContainer | null;
5883
+ protected getAdditionalTitleToolbar(): AdaptiveActionContainer | null;
5745
5884
  private footerToolbarValue;
5746
5885
  get footerToolbar(): ActionContainer;
5747
5886
  legacyNavigation: boolean;
@@ -5757,6 +5896,7 @@ declare module "question_paneldynamic" {
5757
5896
  get showLegacyNavigation(): boolean;
5758
5897
  get showNavigation(): boolean;
5759
5898
  showSeparator(index: number): boolean;
5899
+ protected calcCssClasses(css: any): any;
5760
5900
  }
5761
5901
  }
5762
5902
  declare module "survey-events-api" {
@@ -5795,7 +5935,7 @@ declare module "survey-events-api" {
5795
5935
  }
5796
5936
  export interface MatrixDropdownQuestionEventMixin {
5797
5937
  /**
5798
- * A Multiple-Choice Matrix question instance for which the event is raised.
5938
+ * A Multi-Select Matrix question instance for which the event is raised.
5799
5939
  */
5800
5940
  question: QuestionMatrixDropdownModelBase;
5801
5941
  }
@@ -5831,7 +5971,7 @@ declare module "survey-events-api" {
5831
5971
  }
5832
5972
  export interface AfterRenderElementEventMixin {
5833
5973
  /**
5834
- * The rendered HTML element.
5974
+ * A rendered HTML element.
5835
5975
  */
5836
5976
  htmlElement: HTMLElement;
5837
5977
  }
@@ -5861,9 +6001,12 @@ declare module "survey-events-api" {
5861
6001
  }
5862
6002
  export interface CompletingEvent extends CompleteBaseEvent {
5863
6003
  /**
5864
- * Set this property to `false` if you want to prevent survey completion.
6004
+ * A Boolean property that you can set to `false` if you want to prevent survey completion.
5865
6005
  */
5866
6006
  allow: boolean;
6007
+ /**
6008
+ * Obsolete. Use `allow` instead.
6009
+ */
5867
6010
  allowComplete: boolean;
5868
6011
  }
5869
6012
  export interface CompleteEvent extends CompleteBaseEvent {
@@ -5883,21 +6026,36 @@ declare module "survey-events-api" {
5883
6026
  * Call this method to indicate that the save operation is in progress. You can use the `text` parameter to display a custom message.
5884
6027
  */
5885
6028
  showSaveInProgress: (text?: string) => void;
6029
+ /**
6030
+ * Obsolete. Use `showSaveInProgress` instead.
6031
+ */
5886
6032
  showDataSaving: (text?: string) => void;
6033
+ /**
6034
+ * Obsolete. Use `showSaveError` instead.
6035
+ */
5887
6036
  showDataSavingError: (text?: string) => void;
6037
+ /**
6038
+ * Obsolete. Use `showSaveSuccess` instead.
6039
+ */
5888
6040
  showDataSavingSuccess: (text?: string) => void;
6041
+ /**
6042
+ * Obsolete. Use `clearSaveMessages` instead.
6043
+ */
5889
6044
  showDataSavingClear: (text?: string) => void;
5890
6045
  }
5891
6046
  export interface ShowingPreviewEvent {
5892
6047
  /**
5893
- * Set this property to `false` if you want to cancel the preview.
6048
+ * A Boolean property that you can set to `false` if you want to cancel the preview.
5894
6049
  */
5895
6050
  allow: boolean;
6051
+ /**
6052
+ * Obsolete. Use `allow` instead.
6053
+ */
5896
6054
  allowShowPreview: boolean;
5897
6055
  }
5898
6056
  export interface NavigateToUrlEvent {
5899
6057
  /**
5900
- * Set this property to `false` if you want to cancel the navigation and show the [complete page](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#complete-page).
6058
+ * A Boolean property that you can set to `false` if you want to cancel the navigation and show the [complete page](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#complete-page).
5901
6059
  */
5902
6060
  allow: boolean;
5903
6061
  /**
@@ -5933,9 +6091,12 @@ declare module "survey-events-api" {
5933
6091
  }
5934
6092
  export interface CurrentPageChangingEvent extends CurrentPageChangedEvent {
5935
6093
  /**
5936
- * Set this property to `false` if you do not want to switch the current page.
6094
+ * A Boolean property that you can set to `false` if you do not want to switch the current page.
5937
6095
  */
5938
6096
  allow: boolean;
6097
+ /**
6098
+ * Obsolete. Use `allow` instead.
6099
+ */
5939
6100
  allowChanging: boolean;
5940
6101
  }
5941
6102
  export interface ValueChangeBaseEvent extends QuestionEventMixin {
@@ -5991,7 +6152,13 @@ declare module "survey-events-api" {
5991
6152
  * The parent container (panel or page).
5992
6153
  */
5993
6154
  parent: PanelModelBase;
6155
+ /**
6156
+ * Obsolete. Use `page` instead.
6157
+ */
5994
6158
  rootPanel: any;
6159
+ /**
6160
+ * Obsolete. Use `parent` instead.
6161
+ */
5995
6162
  parentPanel: any;
5996
6163
  /**
5997
6164
  * The element's index within the parent container (panel or page).
@@ -6283,15 +6450,18 @@ declare module "survey-events-api" {
6283
6450
  }
6284
6451
  export interface UpdateChoiceItemCssEvent extends QuestionEventMixin {
6285
6452
  /**
6286
- * a string with css classes divided by space. You can change it
6453
+ * A choice item. To access its value and display text, use the `options.item.value` and `options.item.text` properties.
6287
6454
  */
6288
- css: string;
6455
+ item: ItemValue;
6289
6456
  /**
6290
- * a choice item of ItemValue type. You can get value or text choice properties as options.item.value or options.choice.text
6457
+ * A string with CSS classes applied to the choice item. The CSS classes are separated by a space character. You can modify this string to apply custom CSS classes.
6291
6458
  */
6292
- item: ItemValue;
6459
+ css: string;
6293
6460
  }
6294
6461
  export interface AfterRenderSurveyEvent extends AfterRenderElementEventMixin {
6462
+ /**
6463
+ * Obsolete. Use the `sender` parameter instead.
6464
+ */
6295
6465
  survey: SurveyModel;
6296
6466
  }
6297
6467
  export interface AfterRenderHeaderEvent extends AfterRenderElementEventMixin {
@@ -6353,135 +6523,148 @@ declare module "survey-events-api" {
6353
6523
  }
6354
6524
  export interface MatrixRowAddedEvent extends MatrixDynamicQuestionEventMixin {
6355
6525
  /**
6356
- * a new added row
6526
+ * An added matrix row.
6357
6527
  */
6358
- row: any;
6528
+ row: MatrixDropdownRowModelBase;
6359
6529
  }
6360
6530
  export interface MatrixBeforeRowAddedEvent extends MatrixDynamicQuestionEventMixin {
6361
6531
  /**
6362
- * specifies whether a new row can be added
6532
+ * A Boolean property that you can set to `false` if you do not want to add the row.
6533
+ */
6534
+ allow: boolean;
6535
+ /**
6536
+ * Obsolete. Use `allow` instead.
6363
6537
  */
6364
6538
  canAddRow: boolean;
6365
6539
  }
6366
6540
  export interface MatrixRowRemovingEvent extends MatrixDynamicQuestionEventMixin {
6367
6541
  /**
6368
- * a boolean property. Set it to `false` to disable the row removing
6542
+ * A matrix row to be deleted. If you want to clear row data, set the `options.row.value` property to `undefined`.
6369
6543
  */
6370
- allow: boolean;
6544
+ row: MatrixDropdownRowModelBase;
6371
6545
  /**
6372
- * a row object
6546
+ * A zero-based index of the matrix row to be deleted.
6373
6547
  */
6374
- row: any;
6548
+ rowIndex: number;
6375
6549
  /**
6376
- * a row index
6550
+ * A Boolean property that you can set to `false` if you want to cancel row deletion.
6377
6551
  */
6378
- rowIndex: number;
6552
+ allow: boolean;
6379
6553
  }
6380
6554
  export interface MatrixRowRemovedEvent extends MatrixDynamicQuestionEventMixin {
6381
6555
  /**
6382
- * a removed row object
6556
+ * A deleted matrix row.
6383
6557
  */
6384
- row: any;
6558
+ row: MatrixDropdownRowModelBase;
6385
6559
  /**
6386
- * a removed row index
6560
+ * A zero-based index of the deleted row.
6387
6561
  */
6388
6562
  rowIndex: number;
6389
6563
  }
6390
6564
  export interface MatrixAllowRemoveRowEvent extends MatrixDynamicQuestionEventMixin {
6391
6565
  /**
6392
- * a boolean property. Set it to `false` to disable the row removing
6566
+ * A matrix row for which the event is raised.
6393
6567
  */
6394
- allow: boolean;
6568
+ row: MatrixDropdownRowModelBase;
6395
6569
  /**
6396
- * a row object
6570
+ * A zero-based row index.
6397
6571
  */
6398
- row: any;
6572
+ rowIndex: number;
6399
6573
  /**
6400
- * a row index
6574
+ * A Boolean property that you can set to `false` if you want to hide the Remove button for this row.
6401
6575
  */
6402
- rowIndex: number;
6576
+ allow: boolean;
6403
6577
  }
6404
6578
  export interface MatrixCellCreatingBaseEvent extends MatrixDropdownQuestionEventMixin {
6405
6579
  /**
6406
- * the matrix row object
6580
+ * A matrix column to which the cell belongs.
6407
6581
  */
6408
- row: MatrixDropdownRowModelBase;
6582
+ column: MatrixDropdownColumn;
6409
6583
  /**
6410
- * the matrix column name
6584
+ * The name of the matrix column to which the cell belongs.
6411
6585
  */
6412
6586
  columnName: string;
6413
6587
  /**
6414
- * the matrix column object
6588
+ * A matrix row to which the cell belongs.
6415
6589
  */
6416
- column: MatrixDropdownColumn;
6590
+ row: MatrixDropdownRowModelBase;
6417
6591
  /**
6418
- * the value of the current row. To access a particular column's value within the current row, use: `options.rowValue["columnValue"]`
6592
+ * The values of this matrix row.\
6593
+ * To access a particular column's value, use the following code: `options.rowValue["columnName"]`
6419
6594
  */
6420
6595
  rowValue: any;
6421
6596
  }
6422
6597
  export interface MatrixCellCreatingEvent extends MatrixCellCreatingBaseEvent {
6423
6598
  /**
6424
- * the cell question type. You can change it
6599
+ * The type of this matrix cell. You can change this property value to one of the values described in the [`cellType`](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list#cellType) documentation.
6425
6600
  */
6426
6601
  cellType: string;
6427
6602
  }
6428
6603
  export interface MatrixCellCreatedEvent extends MatrixCellCreatingBaseEvent {
6429
6604
  /**
6430
- * the question/editor in the cell. You may customize it, change it's properties, like choices or visible
6605
+ * A matrix cell for which the event is raised.
6431
6606
  */
6432
- cellQuestion: Question;
6607
+ cell: MatrixDropdownCell;
6433
6608
  /**
6434
- * the matrix cell
6609
+ * A Question instance within the matrix cell. You can use the properties and methods exposed by the instance to customize it.
6435
6610
  */
6436
- cell: MatrixDropdownCell;
6611
+ cellQuestion: Question;
6437
6612
  }
6438
6613
  export interface MatrixAfterCellRenderEvent extends QuestionEventMixin, AfterRenderElementEventMixin {
6439
6614
  /**
6440
- * the matrix row object
6615
+ * A matrix cell for which the event is raised.
6441
6616
  */
6442
- row: MatrixDropdownRowModelBase;
6617
+ cell: MatrixDropdownCell;
6443
6618
  /**
6444
- * the matrix column object
6619
+ * A Question instance within the matrix cell.
6445
6620
  */
6446
- column: MatrixDropdownColumn | MatrixDropdownCell;
6621
+ cellQuestion: Question;
6447
6622
  /**
6448
- * the question/editor in the cell
6623
+ * A matrix row to which the cell belongs.
6449
6624
  */
6450
- cellQuestion: Question;
6625
+ row: MatrixDropdownRowModelBase;
6451
6626
  /**
6452
- * the matrix cell
6627
+ * A matrix column to which the cell belongs.
6453
6628
  */
6454
- cell: MatrixDropdownCell;
6629
+ column: MatrixDropdownColumn | MatrixDropdownCell;
6455
6630
  }
6456
6631
  export interface MatrixCellValueBaseEvent extends MatrixDropdownQuestionEventMixin {
6457
6632
  /**
6458
- * the function that returns the cell question by column name
6459
- */
6460
- getCellQuestion: (columnName: string) => Question;
6461
- /**
6462
- * the matrix row object
6633
+ * A matrix row to which the cell belongs.
6463
6634
  */
6464
6635
  row: MatrixDropdownRowModelBase;
6465
6636
  /**
6466
- * a new value
6637
+ * A matrix column to which the cell belongs.
6467
6638
  */
6468
- value: any;
6639
+ column: MatrixDropdownColumn;
6469
6640
  /**
6470
- * the matrix column name
6641
+ * The name of a matrix column to which the cell belongs.
6471
6642
  */
6472
6643
  columnName: string;
6644
+ /**
6645
+ * A Question instance within the matrix cell. You can use the properties and methods exposed by the instance to customize it.
6646
+ */
6647
+ cellQuestion: Question;
6648
+ /**
6649
+ * A method that returns a Question instance within the matrix cell given a column name.
6650
+ */
6651
+ getCellQuestion: (columnName: string) => Question;
6652
+ /**
6653
+ * A new cell value.
6654
+ */
6655
+ value: any;
6473
6656
  }
6474
6657
  export interface MatrixCellValueChangedEvent extends MatrixCellValueBaseEvent {
6475
6658
  }
6476
6659
  export interface MatrixCellValueChangingEvent extends MatrixCellValueBaseEvent {
6477
6660
  /**
6478
- * the old value
6661
+ * A previous cell value.
6479
6662
  */
6480
6663
  oldValue: any;
6481
6664
  }
6482
6665
  export interface MatrixCellValidateEvent extends MatrixCellValueBaseEvent {
6483
6666
  /**
6484
- * an error string. It is empty by default
6667
+ * A field for your custom error message. Default value: `undefined`.
6485
6668
  */
6486
6669
  error?: string;
6487
6670
  }
@@ -6493,7 +6676,7 @@ declare module "survey-events-api" {
6493
6676
  }
6494
6677
  export interface DynamicPanelRemovingEvent extends DynamicPanelModifiedEvent {
6495
6678
  /**
6496
- * Set this property to `false` if you want to cancel the panel deletion.
6679
+ * A Boolean property that you can set to `false` if you want to cancel panel deletion.
6497
6680
  */
6498
6681
  allow: boolean;
6499
6682
  }
@@ -6594,15 +6777,15 @@ declare module "survey-events-api" {
6594
6777
  }
6595
6778
  export interface GetPanelFooterActionsEvent extends GetActionsEventMixin, PanelEventMixin {
6596
6779
  /**
6597
- * A [Dynamic Panel](https://surveyjs.io/form-library/documentation/questionpaneldynamicmodel) to which the Panel belongs. This field is `undefined` if the Panel does not belong to any Dynamic Panel
6780
+ * A [Dynamic Panel](https://surveyjs.io/form-library/documentation/questionpaneldynamicmodel) to which the Panel belongs. This field is `undefined` if the Panel does not belong to any Dynamic Panel.
6598
6781
  */
6599
6782
  question?: QuestionPanelDynamicModel;
6600
6783
  }
6601
6784
  export interface GetMatrixRowActionsEvent extends QuestionEventMixin, GetActionsEventMixin {
6602
6785
  /**
6603
- * A matrix row for which the event is fired
6786
+ * A matrix row for which the event is raised.
6604
6787
  */
6605
- row: any;
6788
+ row: MatrixDropdownRowModelBase;
6606
6789
  }
6607
6790
  export interface ElementContentVisibilityChangedEvent {
6608
6791
  /**
@@ -6630,7 +6813,7 @@ declare module "survey-events-api" {
6630
6813
  }
6631
6814
  export interface MatrixColumnAddedEvent extends QuestionEventMixin {
6632
6815
  /**
6633
- * A new added column.
6816
+ * An added matrix column.
6634
6817
  */
6635
6818
  column: any;
6636
6819
  }
@@ -6731,7 +6914,7 @@ declare module "page" {
6731
6914
  */
6732
6915
  scrollToTop(): void;
6733
6916
  /**
6734
- * A time period that a respondent spent on this page; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
6917
+ * A time period that a respondent has spent on this page so far; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
6735
6918
  * @see maxTimeToFinish
6736
6919
  */
6737
6920
  timeSpent: number;
@@ -6996,6 +7179,7 @@ declare module "question_textbase" {
6996
7179
  import { Question } from "question";
6997
7180
  import { LocalizableString } from "localizablestring";
6998
7181
  import { Base } from "base";
7182
+ import { ISurveyImpl } from "base-interfaces";
6999
7183
  export class CharacterCounter extends Base {
7000
7184
  remainingCharacterCounter: string;
7001
7185
  updateRemainingCharacterCounter(newValue: string, maxLength: number): void;
@@ -7044,10 +7228,13 @@ declare module "question_textbase" {
7044
7228
  protected onReadOnlyChanged(): void;
7045
7229
  onSurveyLoad(): void;
7046
7230
  localeChanged(): void;
7231
+ setSurveyImpl(value: ISurveyImpl, isLight?: boolean): void;
7047
7232
  protected calcRenderedPlaceholder(): void;
7048
7233
  protected hasPlaceHolder(): boolean;
7049
7234
  protected setNewValue(newValue: any): void;
7050
7235
  protected setQuestionValue(newValue: any, updateIsAnswered?: boolean): void;
7236
+ disableNativeUndoRedo: boolean;
7237
+ protected checkForUndo(event: KeyboardEvent): void;
7051
7238
  getControlClass(): string;
7052
7239
  get ariaRole(): string;
7053
7240
  get ariaRequired(): any;
@@ -7590,10 +7777,6 @@ declare module "survey" {
7590
7777
  * Refer to the following help topic for information on how to implement conditional visibility: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#conditional-visibility).
7591
7778
  */
7592
7779
  onQuestionVisibleChanged: EventBase<SurveyModel, QuestionVisibleChangedEvent>;
7593
- /**
7594
- * Obsolete. Please use onQuestionVisibleChanged event.
7595
- * @see onQuestionVisibleChanged
7596
- */
7597
7780
  onVisibleChanged: EventBase<SurveyModel, QuestionVisibleChangedEvent>;
7598
7781
  /**
7599
7782
  * An event that is raised after page visibility is changed.
@@ -7785,7 +7968,7 @@ declare module "survey" {
7785
7968
  *
7786
7969
  * For information on event handler parameters, refer to descriptions within the interface.
7787
7970
  *
7788
- * [View Demo](https://surveyjs.io/form-library/examples/questiontype-file/ (linkStyle))
7971
+ * [View Demo](https://surveyjs.io/form-library/examples/file-upload/ (linkStyle))
7789
7972
  * @see uploadFiles
7790
7973
  * @see QuestionFileModel.storeDataAsText
7791
7974
  * @see onDownloadFile
@@ -7797,7 +7980,7 @@ declare module "survey" {
7797
7980
  *
7798
7981
  * For information on event handler parameters, refer to descriptions within the interface.
7799
7982
  *
7800
- * [View Demo](https://surveyjs.io/form-library/examples/questiontype-file/ (linkStyle))
7983
+ * [View Demo](https://surveyjs.io/form-library/examples/file-upload/ (linkStyle))
7801
7984
  * @see downloadFile
7802
7985
  * @see onClearFiles
7803
7986
  * @see onUploadFiles
@@ -7841,7 +8024,9 @@ declare module "survey" {
7841
8024
  */
7842
8025
  onUpdateQuestionCssClasses: EventBase<SurveyModel, UpdateQuestionCssClassesEvent>;
7843
8026
  /**
7844
- * An event that is raised before rendering a panel. Use it to override default panel CSS classes.
8027
+ * An event that is raised before rendering a standalone panel and panels within [Dynamic Panel](/form-library/examples/duplicate-group-of-fields-in-form/). Use it to override default panel CSS classes.
8028
+ *
8029
+ * For information on event handler parameters, refer to descriptions within the interface.
7845
8030
  *
7846
8031
  * [View Demo](/form-library/examples/customize-survey-with-css/ (linkStyle))
7847
8032
  * @see css
@@ -7850,6 +8035,8 @@ declare module "survey" {
7850
8035
  /**
7851
8036
  * An event that is raised before rendering a page. Use it to override default page CSS classes.
7852
8037
  *
8038
+ * For information on event handler parameters, refer to descriptions within the interface.
8039
+ *
7853
8040
  * [View Demo](/form-library/examples/customize-survey-with-css/ (linkStyle))
7854
8041
  * @see css
7855
8042
  */
@@ -7857,20 +8044,23 @@ declare module "survey" {
7857
8044
  /**
7858
8045
  * An event that is raised before rendering a choice item in Radio Button Group, Checkboxes, and Dropdown questions. Use it to override default CSS classes applied to choice items.
7859
8046
  *
8047
+ * For information on event handler parameters, refer to descriptions within the interface.
8048
+ *
7860
8049
  * [View Demo](/form-library/examples/customize-survey-with-css/ (linkStyle))
7861
8050
  * @see css
7862
8051
  */
7863
8052
  onUpdateChoiceItemCss: EventBase<SurveyModel, UpdateChoiceItemCssEvent>;
7864
8053
  /**
7865
- * An event that is raised right after survey is rendered in DOM.
8054
+ * An event that is raised after the survey is rendered to the DOM. Use this event to modify survey markup.
8055
+ *
8056
+ * For information on event handler parameters, refer to descriptions within the interface.
8057
+ *
8058
+ * [View Demo](https://surveyjs.io/form-library/examples/survey-animation/ (linkStyle))
7866
8059
  */
7867
8060
  onAfterRenderSurvey: EventBase<SurveyModel, AfterRenderSurveyEvent>;
7868
- /**
7869
- * An event that is raised right after a page is rendered in DOM. Use it to modify HTML elements.
7870
- */
7871
8061
  onAfterRenderHeader: EventBase<SurveyModel, AfterRenderHeaderEvent>;
7872
8062
  /**
7873
- * An event that is raised right after a page is rendered in DOM. Use it to modify HTML elements.
8063
+ * An event that is raised after a page is rendered to the DOM. Use it to modify page markup.
7874
8064
  *
7875
8065
  * For information on event handler parameters, refer to descriptions within the interface.
7876
8066
  *
@@ -7878,7 +8068,7 @@ declare module "survey" {
7878
8068
  */
7879
8069
  onAfterRenderPage: EventBase<SurveyModel, AfterRenderPageEvent>;
7880
8070
  /**
7881
- * An event that is raised right after a question is rendered in DOM. Use it to modify HTML elements.
8071
+ * An event that is raised after a question is rendered to the DOM. Use it to modify question markup.
7882
8072
  *
7883
8073
  * For information on event handler parameters, refer to descriptions within the interface.
7884
8074
  *
@@ -7886,12 +8076,19 @@ declare module "survey" {
7886
8076
  */
7887
8077
  onAfterRenderQuestion: EventBase<SurveyModel, AfterRenderQuestionEvent>;
7888
8078
  /**
7889
- * An event that is raised right after a non-composite question (text, comment, dropdown, radiogroup, checkbox) is rendered in DOM. Use it to modify HTML elements.
7890
- * This event is not fired for matrices, panels, multiple text and image picker.
8079
+ * An event that is raised after a question with a single input field is rendered to the DOM. Use it to modify question markup.
8080
+ *
8081
+ * For information on event handler parameters, refer to descriptions within the interface.
8082
+ *
8083
+ * > This event is not raised for questions without input fields ([HTML](https://surveyjs.io/form-library/documentation/questionhtmlmodel), [Image](https://surveyjs.io/form-library/documentation/questionimagemodel)) or questions with multiple input fields ([Matrix](https://surveyjs.io/form-library/documentation/questionmatrixmodel), [Multiple Text](https://surveyjs.io/form-library/documentation/questionmultipletextmodel)).
7891
8084
  */
7892
8085
  onAfterRenderQuestionInput: EventBase<SurveyModel, AfterRenderQuestionInputEvent>;
7893
8086
  /**
7894
- * An event that is raised right after a panel is rendered in DOM. Use it to modify HTML elements.
8087
+ * An event that is raised after a panel is rendered to the DOM. Use it to modify panel markup.
8088
+ *
8089
+ * For information on event handler parameters, refer to descriptions within the interface.
8090
+ *
8091
+ * > This event is raised for static [Panels](https://surveyjs.io/form-library/examples/set-properties-on-multiple-questions-using-panel/) as well as panels within a [Dynamic Panel](https://surveyjs.io/form-library/examples/duplicate-group-of-fields-in-form/).
7895
8092
  */
7896
8093
  onAfterRenderPanel: EventBase<SurveyModel, AfterRenderPanelEvent>;
7897
8094
  /**
@@ -7933,91 +8130,73 @@ declare module "survey" {
7933
8130
  */
7934
8131
  onGetChoiceDisplayValue: EventBase<SurveyModel, GetChoiceDisplayValueEvent>;
7935
8132
  /**
7936
- * An event that is raised on adding a new row in Matrix Dynamic question.
7937
- * @see QuestionMatrixDynamicModel
7938
- * @see QuestionMatrixDynamicModel.visibleRows
8133
+ * An event that is raised after a new row is added to a [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/).
7939
8134
  */
7940
8135
  onMatrixRowAdded: EventBase<SurveyModel, MatrixRowAddedEvent>;
7941
8136
  /**
7942
- * An event that is raised before adding a new row in Matrix Dynamic question.
7943
- * @see QuestionMatrixDynamicModel
7944
- * @see QuestionMatrixDynamicModel.visibleRows
8137
+ * An event that is raised before a new row is added to a [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/).
8138
+ */
8139
+ onMatrixRowAdding: EventBase<SurveyModel, MatrixBeforeRowAddedEvent>;
8140
+ /**
8141
+ * This event is obsolete. Use the [`onMatrixRowAdding`](/form-library/documentation/api-reference/survey-data-model#onMatrixRowAdding) event instead.
7945
8142
  */
7946
8143
  onMatrixBeforeRowAdded: EventBase<SurveyModel, MatrixBeforeRowAddedEvent>;
7947
8144
  /**
7948
- * An event that is raised before removing a row from Matrix Dynamic question. You can disable removing and clear the data instead.
7949
- * @see QuestionMatrixDynamicModel
7950
- * @see onMatrixRowRemoved
7951
- * @see onMatrixAllowRemoveRow
8145
+ * An event that is raised before a row is deleted from a [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/). You can cancel row deletion and clear row data instead.
8146
+ * @see onMatrixRenderRemoveButton
7952
8147
  */
7953
8148
  onMatrixRowRemoving: EventBase<SurveyModel, MatrixRowRemovingEvent>;
7954
8149
  /**
7955
- * An event that is raised on removing a row from Matrix Dynamic question.
7956
- * @see QuestionMatrixDynamicModel
7957
- * @see QuestionMatrixDynamicModel.visibleRows
7958
- * @see onMatrixRowRemoving
7959
- * @see onMatrixAllowRemoveRow
8150
+ * An event that is raised after a row is deleted from a [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/).
8151
+ * @see onMatrixRenderRemoveButton
7960
8152
  */
7961
8153
  onMatrixRowRemoved: EventBase<SurveyModel, MatrixRowRemovedEvent>;
7962
8154
  /**
7963
- * An event that is raised before rendering "Remove" button for removing a row from Matrix Dynamic question.
7964
- * @see QuestionMatrixDynamicModel
8155
+ * An event that is raised before rendering the Remove button in a row of a [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/). Use this event to hide the Remove button for individual matrix rows.
7965
8156
  * @see onMatrixRowRemoving
7966
8157
  * @see onMatrixRowRemoved
7967
8158
  */
8159
+ onMatrixRenderRemoveButton: EventBase<SurveyModel, MatrixAllowRemoveRowEvent>;
8160
+ /**
8161
+ * This event is obsolete. Use the [`onMatrixRenderRemoveButton`](/form-library/documentation/api-reference/survey-data-model#onMatrixRenderRemoveButton) event instead.
8162
+ */
7968
8163
  onMatrixAllowRemoveRow: EventBase<SurveyModel, MatrixAllowRemoveRowEvent>;
7969
8164
  /**
7970
- * An event that is raised before creating cell question in the matrix. You can change the cell question type by setting different options.cellType.
7971
- * @see onMatrixBeforeRowAdded
7972
- * @see onMatrixCellCreated
7973
- * @see QuestionMatrixDynamicModel
7974
- * @see QuestionMatrixDropdownModel
8165
+ * An event that is raised before a cell in a [Multi-Select Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdropdown/) or [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/) is created. Use this event to change the type of individual matrix cells.
8166
+ * @see onAfterRenderMatrixCell
7975
8167
  */
7976
8168
  onMatrixCellCreating: EventBase<SurveyModel, MatrixCellCreatingEvent>;
7977
8169
  /**
7978
- * An event that is raised for every cell created in Matrix Dynamic and Matrix Dropdown questions.
7979
- * @see onMatrixBeforeRowAdded
7980
- * @see onMatrixCellCreating
7981
- * @see onMatrixRowAdded
7982
- * @see QuestionMatrixDynamicModel
7983
- * @see QuestionMatrixDropdownModel
8170
+ * An event that is raised after a cell in a [Multi-Select Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdropdown/) or [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/) is created.
8171
+ * @see onAfterRenderMatrixCell
7984
8172
  */
7985
8173
  onMatrixCellCreated: EventBase<SurveyModel, MatrixCellCreatedEvent>;
7986
8174
  /**
7987
- * An event that is raised for every cell after is has been rendered in DOM.
8175
+ * An event that is raised for every matrix cell after it is rendered to the DOM.
7988
8176
  * @see onMatrixCellCreated
7989
- * @see QuestionMatrixDynamicModel
7990
- * @see QuestionMatrixDropdownModel
8177
+ */
8178
+ onAfterRenderMatrixCell: EventBase<SurveyModel, MatrixAfterCellRenderEvent>;
8179
+ /**
8180
+ * This event is obsolete. Use the [`onAfterRenderMatrixCell`](/form-library/documentation/api-reference/survey-data-model#onAfterRenderMatrixCell) event instead.
7991
8181
  */
7992
8182
  onMatrixAfterCellRender: EventBase<SurveyModel, MatrixAfterCellRenderEvent>;
7993
8183
  /**
7994
- * An event that is raised when cell value is changed in Matrix Dynamic and Matrix Dropdown questions.
7995
- * @see onMatrixCellValueChanging
7996
- * @see onMatrixBeforeRowAdded
7997
- * @see onMatrixRowAdded
7998
- * @see QuestionMatrixDynamicModel
7999
- * @see QuestionMatrixDropdownModel
8184
+ * An event that is raised after a cell value is changed in a [Multi-Select Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdropdown/) or [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/).
8185
+ * @see onMatrixRowAdding
8000
8186
  */
8001
8187
  onMatrixCellValueChanged: EventBase<SurveyModel, MatrixCellValueChangedEvent>;
8002
8188
  /**
8003
- * An event that is raised on changing cell value in Matrix Dynamic and Matrix Dropdown questions. You may change the `options.value` property to change a cell value.
8004
- * @see onMatrixCellValueChanged
8005
- * @see onMatrixBeforeRowAdded
8006
- * @see onMatrixRowAdded
8007
- * @see QuestionMatrixDynamicModel
8008
- * @see QuestionMatrixDropdownModel
8189
+ * An event that is raised before a cell value is changed in a [Multi-Select Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdropdown/) or [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/). Use this event to change the cell value.
8190
+ * @see onMatrixRowAdding
8009
8191
  */
8010
8192
  onMatrixCellValueChanging: EventBase<SurveyModel, MatrixCellValueChangingEvent>;
8011
8193
  /**
8012
- * An event that is raised when Matrix Dynamic and Matrix Dropdown questions validate the cell value.
8013
- * @see onMatrixBeforeRowAdded
8014
- * @see onMatrixRowAdded
8015
- * @see QuestionMatrixDynamicModel
8016
- * @see QuestionMatrixDropdownModel
8194
+ * An event that is raised for [Multi-Select Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdropdown/) and [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/) questions when they validate a cell value. Use this event to display a custom error message based on a condition.
8195
+ * @see onMatrixRowAdding
8017
8196
  */
8018
8197
  onMatrixCellValidate: EventBase<SurveyModel, MatrixCellValidateEvent>;
8019
8198
  /**
8020
- * An event that is raised on adding a new column in Matrix Dynamic or Matrix Dropdown question.
8199
+ * An event that is raised after a new column is added to a [Multi-Select Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdropdown/) or [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/).
8021
8200
  */
8022
8201
  onMatrixColumnAdded: EventBase<SurveyModel, MatrixColumnAddedEvent>;
8023
8202
  /**
@@ -8037,15 +8216,15 @@ declare module "survey" {
8037
8216
  */
8038
8217
  onDynamicPanelRemoving: EventBase<SurveyModel, DynamicPanelRemovingEvent>;
8039
8218
  /**
8040
- * An event that is raised every second if the method `startTimer` has been called.
8219
+ * An event that is raised every second while the timer is running.
8220
+ *
8221
+ * Use the [`timeSpent`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeSpent) property to find out how many seconds have elapsed.
8222
+ * @see maxTimeToFinish
8223
+ * @see maxTimeToFinishPage
8224
+ * @see showTimerPanel
8041
8225
  * @see startTimer
8042
- * @see timeSpent
8043
- * @see Page.timeSpent
8044
8226
  */
8045
8227
  onTimer: EventBase<SurveyModel, {}>;
8046
- /**
8047
- * An event that is raised before displaying a new information in the Timer Panel. Use it to change the default text.
8048
- */
8049
8228
  onTimerPanelInfoText: EventBase<SurveyModel, TimerPanelInfoTextEvent>;
8050
8229
  /**
8051
8230
  * An event that is raised after an item value is changed in a panel within a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) question.
@@ -8095,9 +8274,12 @@ declare module "survey" {
8095
8274
  */
8096
8275
  onGetPanelFooterActions: EventBase<SurveyModel, GetPanelFooterActionsEvent>;
8097
8276
  /**
8098
- * Use this event to create/customize actions to be displayed in a matrix question's row.
8277
+ * An event that allows you to add, delete, or modify actions in rows of a [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/).
8278
+ *
8279
+ * For information on event handler parameters, refer to descriptions within the interface.
8280
+ *
8281
+ * [View Demo](https://surveyjs.io/form-library/examples/employee-information-form/ (linkStyle))
8099
8282
  * @see IAction
8100
- * @see QuestionMatrixDropdownModelBase
8101
8283
  */
8102
8284
  onGetMatrixRowActions: EventBase<SurveyModel, GetMatrixRowActionsEvent>;
8103
8285
  /**
@@ -8508,27 +8690,53 @@ declare module "survey" {
8508
8690
  */
8509
8691
  get emptySurveyText(): string;
8510
8692
  /**
8511
- * Gets or sets a survey logo.
8512
- * @see title
8693
+ * An image URL or a Base64-encoded image to use as a survey logo.
8694
+ *
8695
+ * [View Demo](https://surveyjs.io/form-library/examples/survey-logo/ (linkStyle))
8696
+ * @see logoPosition
8697
+ * @see logoFit
8513
8698
  */
8514
8699
  get logo(): string;
8515
8700
  set logo(value: string);
8516
8701
  get locLogo(): LocalizableString;
8517
8702
  /**
8518
- * Gets or sets a survey logo width.
8703
+ * A logo width in CSS-accepted values.
8704
+ *
8705
+ * Default value: `300px`
8706
+ *
8707
+ * [View Demo](https://surveyjs.io/form-library/examples/survey-logo/ (linkStyle))
8708
+ * @see logoHeight
8519
8709
  * @see logo
8710
+ * @see logoPosition
8711
+ * @see logoFit
8520
8712
  */
8521
8713
  get logoWidth(): any;
8522
8714
  set logoWidth(value: any);
8523
8715
  /**
8524
- * Gets or sets a survey logo height.
8716
+ * A logo height in CSS-accepted values.
8717
+ *
8718
+ * Default value: `200px`
8719
+ *
8720
+ * [View Demo](https://surveyjs.io/form-library/examples/survey-logo/ (linkStyle))
8721
+ * @see logoHeight
8525
8722
  * @see logo
8723
+ * @see logoPosition
8724
+ * @see logoFit
8526
8725
  */
8527
8726
  get logoHeight(): any;
8528
8727
  set logoHeight(value: any);
8529
8728
  /**
8530
- * Gets or sets a survey logo position.
8729
+ * A logo position relative to the [survey title](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title).
8730
+ *
8731
+ * Possible values:
8732
+ *
8733
+ * - `"left"` (default) - Places the logo to the left of the survey title.
8734
+ * - `"right"` - Places the logo to the right of the survey title.
8735
+ * - `"none"` - Hides the logo.
8736
+ *
8737
+ * [View Demo](https://surveyjs.io/form-library/examples/survey-logo/ (linkStyle))
8531
8738
  * @see logo
8739
+ * @see logoFit
8532
8740
  */
8533
8741
  get logoPosition(): string;
8534
8742
  set logoPosition(value: string);
@@ -8543,8 +8751,20 @@ declare module "survey" {
8543
8751
  get renderedHasLogo(): boolean;
8544
8752
  get renderedHasHeader(): boolean;
8545
8753
  /**
8546
- * The logo fit mode.
8754
+ * Specifies how to resize a logo to fit it into its container.
8755
+ *
8756
+ * Possible values:
8757
+ *
8758
+ * - `"contain"` (default)
8759
+ * - `"cover"`
8760
+ * - `"fill"`
8761
+ * - `"none"`
8762
+ *
8763
+ * Refer to the [`object-fit`](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) CSS property description for information on the possible values.
8764
+ *
8765
+ * [View Demo](https://surveyjs.io/form-library/examples/survey-logo/ (linkStyle))
8547
8766
  * @see logo
8767
+ * @see logoPosition
8548
8768
  */
8549
8769
  get logoFit(): string;
8550
8770
  set logoFit(val: string);
@@ -8942,12 +9162,12 @@ declare module "survey" {
8942
9162
  */
8943
9163
  get isShowStartingPage(): boolean;
8944
9164
  /**
8945
- * Specifies which part of a choice item responds to a drag gesture in MatrixDynamic questions.
9165
+ * Specifies which part of a matrix row responds to a drag gesture in [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/) questions.
8946
9166
  *
8947
9167
  * Possible values:
8948
9168
  *
8949
- * - `"entireItem"` (default) - Users can use the entire choice item as a drag handle.
8950
- * - `"icon"` - Users can only use the choice item icon as a drag handle.
9169
+ * - `"entireItem"` (default) - Users can use the entire matrix row as a drag handle.
9170
+ * - `"icon"` - Users can only use a drag icon as a drag handle.
8951
9171
  */
8952
9172
  get matrixDragHandleArea(): string;
8953
9173
  set matrixDragHandleArea(val: string);
@@ -9708,8 +9928,7 @@ declare module "survey" {
9708
9928
  */
9709
9929
  get clearValueOnDisableItems(): boolean;
9710
9930
  set clearValueOnDisableItems(val: boolean);
9711
- get isClearValueOnHidden(): boolean;
9712
- get isClearValueOnHiddenContainer(): boolean;
9931
+ getQuestionClearIfInvisible(questionClearIf: string): string;
9713
9932
  questionVisibilityChanged(question: Question, newValue: boolean): void;
9714
9933
  pageVisibilityChanged(page: PageModel, newValue: boolean): void;
9715
9934
  panelVisibilityChanged(panel: PanelModel, newValue: boolean): void;
@@ -9753,33 +9972,38 @@ declare module "survey" {
9753
9972
  getCorrectedAnswers(): number;
9754
9973
  getInCorrectedAnswers(): number;
9755
9974
  /**
9756
- * Gets or sets a timer panel position. The timer panel displays information about how much time an end user spends on a survey/page.
9975
+ * Displays the timer panel and specifies its position. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
9976
+ *
9977
+ * Possible values:
9978
+ *
9979
+ * - `"top"` - Displays the timer panel at the top of the survey.
9980
+ * - `"bottom"` - Displays the timer panel at the bottom of the survey.
9981
+ * - `"none"` (default) - Hides the timer panel.
9757
9982
  *
9758
- * The available options:
9759
- * - `top` - display timer panel in the top.
9760
- * - `bottom` - display timer panel in the bottom.
9761
- * - `none` - do not display a timer panel.
9983
+ * If the timer panel is displayed, the timer starts automatically when the survey begins. To specify time limits, use the [`maxTimeToFinish`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#maxTimeToFinish) and [`maxTimeToFinishPage`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#maxTimeToFinishPage) properties.
9762
9984
  *
9763
- * If the value is not equal to 'none', the survey calls the `startTimer()` method on survey rendering.
9764
- * @see showTimerPanelMode
9985
+ * The timer panel displays information about time spent on an individual page and the entire survey. If you want to display only the page timer or the survey timer, set the [`showTimerPanelMode`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showTimerPanelMode) property to `"page"` or `"survey"`.
9765
9986
  * @see startTimer
9766
9987
  * @see stopTimer
9988
+ * @see timeSpent
9989
+ * @see onTimer
9767
9990
  */
9768
9991
  get showTimerPanel(): string;
9769
9992
  set showTimerPanel(val: string);
9770
9993
  get isTimerPanelShowingOnTop(): boolean;
9771
9994
  get isTimerPanelShowingOnBottom(): boolean;
9772
9995
  /**
9773
- * Gets or set a value that specifies whether the timer displays information for the page or for the entire survey.
9774
- *
9775
- * The available options:
9996
+ * Specifies whether the timer panel displays timers for the current page, the entire survey, or both. Applies only if the timer panel is [visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showTimerPanel).
9776
9997
  *
9777
- * - `page` - show timer information for page
9778
- * - `survey` - show timer information for survey
9998
+ * Possible values:
9779
9999
  *
9780
- * Use the `onTimerPanelInfoText` event to change the default text.
9781
- * @see showTimerPanel
9782
- * @see onTimerPanelInfoText
10000
+ * - `"survey"` - Displays only the survey timer.
10001
+ * - `"page"` - Displays only the page timer.
10002
+ * - `"all"` (default) - Displays both the survey and page timers.
10003
+ * @see timeSpent
10004
+ * @see onTimer
10005
+ * @see startTimer
10006
+ * @see stopTimer
9783
10007
  */
9784
10008
  get showTimerPanelMode(): string;
9785
10009
  set showTimerPanelMode(val: string);
@@ -9823,39 +10047,59 @@ declare module "survey" {
9823
10047
  private getDisplayTime;
9824
10048
  get timerModel(): SurveyTimerModel;
9825
10049
  /**
9826
- * Starts a timer that will calculate how much time end-user spends on the survey or on pages.
10050
+ * Starts a timer that calculates how many seconds a respondent has spent on the survey. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
9827
10051
  * @see stopTimer
10052
+ * @see maxTimeToFinish
10053
+ * @see maxTimeToFinishPage
9828
10054
  * @see timeSpent
10055
+ * @see onTimer
9829
10056
  */
9830
10057
  startTimer(): void;
9831
10058
  startTimerFromUI(): void;
9832
10059
  /**
9833
- * Stops the timer.
10060
+ * Stops the timer. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
9834
10061
  * @see startTimer
10062
+ * @see maxTimeToFinish
10063
+ * @see maxTimeToFinishPage
9835
10064
  * @see timeSpent
10065
+ * @see onTimer
9836
10066
  */
9837
10067
  stopTimer(): void;
9838
10068
  /**
9839
- * Gets or set the time in seconds an end user spends on the survey.
10069
+ * A time period that a respondent has spent on the survey so far; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
10070
+ *
10071
+ * Assign a number to this property if you need to start the quiz timer from a specific time (for instance, if you want to continue an interrupted quiz).
10072
+ *
10073
+ * You can also find out how many seconds a respondent has spent on an individual survey page. To do this, use the [`timeSpent`](https://surveyjs.io/form-library/documentation/api-reference/page-model#timeSpent) property of a [`PageModel`](https://surveyjs.io/form-library/documentation/api-reference/page-model) object.
10074
+ * @see maxTimeToFinish
10075
+ * @see maxTimeToFinishPage
9840
10076
  * @see startTimer
9841
- * @see PageModel.timeSpent
9842
10077
  */
9843
10078
  get timeSpent(): number;
9844
10079
  set timeSpent(val: number);
9845
10080
  /**
9846
- * Gets or sets the maximum time in seconds that end user has to complete a survey. If the value is 0 or less, an end user has no time limit to finish a survey.
9847
- * @see startTimer
10081
+ * A time period that a respondent has to complete the survey; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
10082
+ *
10083
+ * A negative value or 0 sets an unlimited time period.
10084
+ *
10085
+ * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
9848
10086
  * @see maxTimeToFinishPage
10087
+ * @see startTimer
10088
+ * @see timeSpent
9849
10089
  */
9850
10090
  get maxTimeToFinish(): number;
9851
10091
  set maxTimeToFinish(val: number);
9852
10092
  /**
9853
- * Gets or sets the maximum time in seconds that end user has to complete a page in the survey. If the value is 0 or less, an end user has no time limit.
10093
+ * A time period that a respondent has to complete each survey page; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
9854
10094
  *
9855
- * You may override this value for every page.
9856
- * @see startTimer
10095
+ * A negative value or 0 sets an unlimited time period.
10096
+ *
10097
+ * You can also use `PageModel`'s [`maxTimeToFinish`](https://surveyjs.io/form-library/documentation/api-reference/page-model#maxTimeToFinish) property to specify a time period for an individual survey page.
10098
+ *
10099
+ * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
9857
10100
  * @see maxTimeToFinish
9858
- * @see PageModel.maxTimeToFinish
10101
+ * @see startTimer
10102
+ * @see timeSpent
9859
10103
  */
9860
10104
  get maxTimeToFinishPage(): number;
9861
10105
  set maxTimeToFinishPage(val: number);
@@ -10544,7 +10788,7 @@ declare module "question" {
10544
10788
  /**
10545
10789
  * Hides the question number from the title and excludes the question from numbering.
10546
10790
  *
10547
- * If you want to disable question numbering in the entire survey, set SurveyModel's `showQuestionNumbers` property to `false`.
10791
+ * If you want to disable question numbering in the entire survey, set `SurveyModel`'s `showQuestionNumbers` property to `false`.
10548
10792
  * @see SurveyModel.showQuestionNumbers
10549
10793
  */
10550
10794
  get hideNumber(): boolean;
@@ -10622,6 +10866,7 @@ declare module "question" {
10622
10866
  getTitleOwner(): ITitleOwner;
10623
10867
  protected getIsTitleRenderedAsString(): boolean;
10624
10868
  private notifySurveyVisibilityChanged;
10869
+ protected clearValueOnHidding(isClearOnHidden: boolean): void;
10625
10870
  /**
10626
10871
  * Returns title location calculated based on the question's `titleLocation` property and the `questionTitleLocation` property of the question's containers (survey, page, or panel).
10627
10872
  * @see titleLocation
@@ -10882,7 +11127,7 @@ declare module "question" {
10882
11127
  */
10883
11128
  get isParentVisible(): boolean;
10884
11129
  clearValueIfInvisible(reason?: string): void;
10885
- protected clearValueIfInvisibleCore(): void;
11130
+ protected clearValueIfInvisibleCore(reason: string): void;
10886
11131
  /**
10887
11132
  * Specifies when to clear the question value if the question becomes invisible.
10888
11133
  *
@@ -10890,6 +11135,7 @@ declare module "question" {
10890
11135
  *
10891
11136
  * - `"default"` (default) - Inherits the setting from the Survey's [`clearInvisibleValues`](https://surveyjs.io/form-library/documentation/surveymodel#clearInvisibleValues) property.
10892
11137
  * - `"onHidden"` - Clears the value when the question becomes invisible. If a question is invisible on startup and has an initial value, this value will be cleared when the survey is complete.
11138
+ * - `"onHiddenContainer"` - Clears the value when the question or its container (page or panel) becomes invisible. If a question is invisible on startup and has an initial value, this value will be cleared when the survey is complete.
10893
11139
  * - `"onComplete"` - Clears the value when the survey is complete.
10894
11140
  * - `"none"` - Never clears the value of an invisible question.
10895
11141
  * @see SurveyModel.clearInvisibleValues
@@ -10898,6 +11144,7 @@ declare module "question" {
10898
11144
  */
10899
11145
  get clearIfInvisible(): string;
10900
11146
  set clearIfInvisible(val: string);
11147
+ protected getClearIfInvisible(): string;
10901
11148
  get displayValue(): any;
10902
11149
  /**
10903
11150
  * Returns a display text that corresponds to the question value. For example, if you call this method for a Dropdown question, it returns an item text instead of an item value.
@@ -11065,6 +11312,8 @@ declare module "question" {
11065
11312
  protected valueFromData(val: any): any;
11066
11313
  protected valueToData(val: any): any;
11067
11314
  protected onValueChanged(): void;
11315
+ protected isMouseDown: boolean;
11316
+ onMouseDown(): void;
11068
11317
  protected setNewComment(newValue: string): void;
11069
11318
  protected getValidName(name: string): string;
11070
11319
  updateValueFromSurvey(newValue: any): void;
@@ -11519,7 +11768,7 @@ declare module "question_matrixdropdownbase" {
11519
11768
  * - `"expression"`
11520
11769
  * - `"rating"`
11521
11770
  *
11522
- * Default value: `"dropdown"` (inherited from [`settings.matrixDefaultCellType`](https://surveyjs.io/form-library/documentation/settings#matrixDefaultCellType))
11771
+ * Default value: `"dropdown"` (inherited from [`settings.matrix.defaultCellType`](https://surveyjs.io/form-library/documentation/settings#matrixDefaultCellType))
11523
11772
  */
11524
11773
  get cellType(): string;
11525
11774
  set cellType(val: string);
@@ -11758,8 +12007,7 @@ declare module "base-interfaces" {
11758
12007
  panelVisibilityChanged(panel: IPanel, newValue: boolean): any;
11759
12008
  questionVisibilityChanged(question: IQuestion, newValue: boolean): any;
11760
12009
  isEditingSurveyElement: boolean;
11761
- isClearValueOnHidden: boolean;
11762
- isClearValueOnHiddenContainer: boolean;
12010
+ getQuestionClearIfInvisible(questionClearIf: string): string;
11763
12011
  questionsOrder: string;
11764
12012
  matrixDragHandleArea: string;
11765
12013
  keepIncorrectValues: boolean;
@@ -12041,6 +12289,8 @@ declare module "itemvalue" {
12041
12289
  getType(): string;
12042
12290
  getSurvey(live?: boolean): ISurvey;
12043
12291
  getLocale(): string;
12292
+ isGhost: boolean;
12293
+ protected get isInternal(): boolean;
12044
12294
  get locText(): LocalizableString;
12045
12295
  setLocText(locText: LocalizableString): void;
12046
12296
  private _locOwner;
@@ -12592,7 +12842,7 @@ declare module "question_matrixdropdown" {
12592
12842
  protected getConditionObjectsRowIndeces(): Array<number>;
12593
12843
  protected setNewValue(newValue: any): void;
12594
12844
  clearIncorrectValues(): void;
12595
- protected clearValueIfInvisibleCore(): void;
12845
+ protected clearValueIfInvisibleCore(reason: string): void;
12596
12846
  protected generateRows(): Array<MatrixDropdownRowModel>;
12597
12847
  protected createMatrixRow(item: ItemValue, value: any): MatrixDropdownRowModel;
12598
12848
  protected getSearchableItemValueKeys(keys: Array<string>): void;
@@ -12613,6 +12863,7 @@ declare module "dropdownListModel" {
12613
12863
  readonly loadingItemHeight = 40;
12614
12864
  private _markdownMode;
12615
12865
  private _popupModel;
12866
+ focused: boolean;
12616
12867
  private get focusFirstInputSelector();
12617
12868
  protected readonly selectedItemSelector = ".sv-list__item--selected";
12618
12869
  protected readonly itemSelector = ".sv-list__item";
@@ -12667,6 +12918,7 @@ declare module "dropdownListModel" {
12667
12918
  setSearchEnabled(newValue: boolean): void;
12668
12919
  updateItems(): void;
12669
12920
  onClick(event: any): void;
12921
+ protected onPropertyChangedHandler(sender: any, options: any): void;
12670
12922
  protected focusItemOnClickAndPopup(): void;
12671
12923
  onClear(event: any): void;
12672
12924
  getSelectedAction(): ItemValue;
@@ -12939,7 +13191,7 @@ declare module "question_matrix" {
12939
13191
  }): import("question").IQuestionPlainData;
12940
13192
  addConditionObjectsByContext(objects: Array<IConditionObject>, context: any): void;
12941
13193
  getConditionJson(operator?: string, path?: string): any;
12942
- protected clearValueIfInvisibleCore(): void;
13194
+ protected clearValueIfInvisibleCore(reason: string): void;
12943
13195
  protected getFirstInputElementId(): string;
12944
13196
  onMatrixRowChanged(row: MatrixRowModel): void;
12945
13197
  getCorrectedRowValue(value: any): any;
@@ -13211,6 +13463,7 @@ declare module "dropdownMultiSelectListModel" {
13211
13463
  protected onEscape(): void;
13212
13464
  protected beforeScrollToFocusedItem(focusedItem: ItemValue): void;
13213
13465
  protected afterScrollToFocusedItem(): void;
13466
+ protected onPropertyChangedHandler(sender: any, options: any): void;
13214
13467
  }
13215
13468
  }
13216
13469
  declare module "question_tagbox" {
@@ -13457,13 +13710,34 @@ declare module "dragdrop/ranking-choices" {
13457
13710
  protected calculateIsBottom(clientY: number): boolean;
13458
13711
  protected doDragOver: () => any;
13459
13712
  protected afterDragOver(dropTargetNode: HTMLElement): void;
13460
- private updateDraggedElementShortcut;
13713
+ protected updateDraggedElementShortcut(newIndex: number): void;
13461
13714
  protected ghostPositionChanged(): void;
13462
13715
  protected doBanDropHere: () => any;
13463
13716
  protected doDrop: () => any;
13464
13717
  clear(): void;
13465
13718
  }
13466
13719
  }
13720
+ declare module "dragdrop/ranking-select-to-rank" {
13721
+ import { ItemValue } from "itemvalue";
13722
+ import { DragDropRankingChoices } from "dragdrop/ranking-choices";
13723
+ import { QuestionRankingModel } from "question_ranking";
13724
+ export class DragDropRankingSelectToRank extends DragDropRankingChoices {
13725
+ protected findDropTargetNodeByDragOverNode(dragOverNode: HTMLElement): HTMLElement;
13726
+ protected getDropTargetByDataAttributeValue(dataAttributeValue: string): ItemValue;
13727
+ protected getDropTargetByNode(dropTargetNode: HTMLElement, event: PointerEvent): any;
13728
+ protected isDropTargetValid(dropTarget: ItemValue | string, dropTargetNode?: HTMLElement): boolean;
13729
+ protected afterDragOver(dropTargetNode: HTMLElement): void;
13730
+ doRankBetween(dropTargetNode: HTMLElement, fromChoicesArray: Array<ItemValue>, toChoicesArray: Array<ItemValue>, rankFunction: Function): void;
13731
+ private doUIEffects;
13732
+ private get isDraggedElementRanked();
13733
+ private get isDropTargetRanked();
13734
+ private get isDraggedElementUnranked();
13735
+ private get isDropTargetUnranked();
13736
+ selectToRank(questionModel: QuestionRankingModel, fromIndex: number, toIndex: number): void;
13737
+ unselectFromRank(questionModel: QuestionRankingModel, fromIndex: number, toIndex?: number): void;
13738
+ reorderRankedItem(questionModel: QuestionRankingModel, fromIndex: number, toIndex: number): void;
13739
+ }
13740
+ }
13467
13741
  declare module "question_ranking" {
13468
13742
  import { ISurveyImpl } from "base-interfaces";
13469
13743
  import { DragDropRankingChoices } from "dragdrop/ranking-choices";
@@ -13482,9 +13756,10 @@ declare module "question_ranking" {
13482
13756
  getItemTabIndex(item: ItemValue): number;
13483
13757
  get rootClass(): string;
13484
13758
  protected getItemClassCore(item: ItemValue, options: any): string;
13759
+ getContainerClasses(containerType?: string): string;
13485
13760
  protected isItemCurrentDropTarget(item: ItemValue): boolean;
13486
13761
  get ghostPositionCssClass(): string;
13487
- getItemIndexClasses(): string;
13762
+ getItemIndexClasses(item: ItemValue): string;
13488
13763
  getNumberByIndex(index: number): string;
13489
13764
  setSurveyImpl(value: ISurveyImpl, isLight?: boolean): void;
13490
13765
  isAnswerCorrect(): boolean;
@@ -13494,11 +13769,15 @@ declare module "question_ranking" {
13494
13769
  private addToValueByVisibleChoices;
13495
13770
  private removeFromValueByVisibleChoices;
13496
13771
  get rankingChoices(): Array<ItemValue>;
13772
+ get unRankingChoices(): Array<ItemValue>;
13497
13773
  private updateRankingChoices;
13774
+ private updateRankingChoicesSelectToRankMode;
13498
13775
  dragDropRankingChoices: DragDropRankingChoices;
13499
13776
  currentDropTarget: ItemValue;
13500
13777
  dropTargetNodeMove: string;
13501
13778
  endLoadingFromJson(): void;
13779
+ private setDragDropRankingChoices;
13780
+ protected createDragDropRankingChoices(): DragDropRankingChoices;
13502
13781
  handlePointerDown: (event: PointerEvent, choice: ItemValue, node: HTMLElement) => void;
13503
13782
  private isDragStartNodeValid;
13504
13783
  private get allowStartDrag();
@@ -13508,8 +13787,9 @@ declare module "question_ranking" {
13508
13787
  protected supportSelectAll(): boolean;
13509
13788
  supportOther(): boolean;
13510
13789
  supportNone(): boolean;
13511
- private handleArrowUp;
13512
- private handleArrowDown;
13790
+ private handleArrowKeys;
13791
+ handleKeydownSelectToRank(event: KeyboardEvent, movedElement: ItemValue): void;
13792
+ private setValueAfterKeydown;
13513
13793
  private focusItem;
13514
13794
  setValue: () => void;
13515
13795
  getIconHoverCss(): string;
@@ -13523,6 +13803,29 @@ declare module "question_ranking" {
13523
13803
  */
13524
13804
  get longTap(): boolean;
13525
13805
  set longTap(val: boolean);
13806
+ /**
13807
+ * Specifies whether users can select choices they want to rank.
13808
+ *
13809
+ * When you enable this property, the Ranking question displays two areas for ranked and unranked choices. To order choices, users should first drag them from the unranked to the ranked area. Use this mode if you want to let users order only the choices they select.
13810
+ *
13811
+ * Default value: `false`
13812
+ * @see selectToRankAreasLayout
13813
+ */
13814
+ get selectToRankEnabled(): boolean;
13815
+ set selectToRankEnabled(val: boolean);
13816
+ /**
13817
+ * 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`.
13818
+ *
13819
+ * Possible values:
13820
+ *
13821
+ * - `"horizontal"` (default) - The ranked and unranked areas are positioned next to each other. Users drag and drop choices between them in the horizontal direction.
13822
+ * - `"vertical"`- The ranked area is positioned above the unranked area. Users drag and drop choices between them in the vertical direction.
13823
+ * @see selectToRankAreasLayout
13824
+ */
13825
+ get selectToRankAreasLayout(): string;
13826
+ set selectToRankAreasLayout(val: string);
13827
+ selectToRankFromContainerPlaceholder: string;
13828
+ selectToRankToContainerPlaceholder: string;
13526
13829
  get useFullItemSizeForShortcut(): boolean;
13527
13830
  set useFullItemSizeForShortcut(val: boolean);
13528
13831
  }
@@ -13636,6 +13939,7 @@ declare module "question_radiogroup" {
13636
13939
  get canShowClearButton(): boolean;
13637
13940
  get clearButtonCaption(): string;
13638
13941
  supportGoNextPageAutomatic(): boolean;
13942
+ protected setNewComment(newValue: string): void;
13639
13943
  get showClearButtonInContent(): boolean;
13640
13944
  clickItemHandler(item: ItemValue): void;
13641
13945
  protected getDefaultTitleActions(): Array<Action>;
@@ -14571,7 +14875,7 @@ declare module "question_custom" {
14571
14875
  updateElementCss(reNew?: boolean): void;
14572
14876
  getTextProcessor(): ITextProcessor;
14573
14877
  findQuestionByName(name: string): IQuestion;
14574
- protected clearValueIfInvisibleCore(): void;
14878
+ protected clearValueIfInvisibleCore(reason: string): void;
14575
14879
  onAnyValueChanged(name: string): void;
14576
14880
  protected createPanel(): PanelModel;
14577
14881
  protected onReadOnlyChanged(): void;
@@ -14600,6 +14904,9 @@ declare module "popup-view-model" {
14600
14904
  import { ActionContainer } from "actions/container";
14601
14905
  export const FOCUS_INPUT_SELECTOR = "input:not(:disabled):not([readonly]):not([type=hidden]),select:not(:disabled):not([readonly]),textarea:not(:disabled):not([readonly]), button:not(:disabled):not([readonly]), [tabindex]:not([tabindex^=\"-\"])";
14602
14906
  export class PopupBaseViewModel extends Base {
14907
+ protected popupSelector: string;
14908
+ protected containerSelector: string;
14909
+ protected scrollingContentSelector: string;
14603
14910
  protected prevActiveElement: HTMLElement;
14604
14911
  protected footerToolbarValue: ActionContainer;
14605
14912
  top: string;
@@ -14609,7 +14916,8 @@ declare module "popup-view-model" {
14609
14916
  minWidth: string;
14610
14917
  isVisible: boolean;
14611
14918
  locale: string;
14612
- container: HTMLElement;
14919
+ get container(): HTMLElement;
14920
+ private containerElement;
14613
14921
  private createdContainer;
14614
14922
  getLocale(): string;
14615
14923
  protected hidePopup(): void;
@@ -14644,11 +14952,11 @@ declare module "popup-view-model" {
14644
14952
  updateOnHiding(): void;
14645
14953
  private focusContainer;
14646
14954
  private focusFirstInput;
14647
- clickOutside(): void;
14955
+ clickOutside(event?: Event): void;
14648
14956
  cancel(): void;
14649
14957
  dispose(): void;
14650
14958
  initializePopupContainer(): void;
14651
- unmountPopupContainer(): void;
14959
+ setComponentElement(componentRoot: HTMLElement, targetElement?: HTMLElement | null): void;
14652
14960
  }
14653
14961
  }
14654
14962
  declare module "popup-dropdown-view-model" {
@@ -14675,6 +14983,7 @@ declare module "popup-dropdown-view-model" {
14675
14983
  popupDirection: string;
14676
14984
  pointerTarget: IPosition;
14677
14985
  constructor(model: PopupModel, targetElement?: HTMLElement);
14986
+ setComponentElement(componentRoot: HTMLElement, targetElement?: HTMLElement | null): void;
14678
14987
  updateOnShowing(): void;
14679
14988
  private get shouldCreateResizeCallback();
14680
14989
  updatePosition(isResetHeight: boolean, isDelayUpdating?: boolean): void;
@@ -14694,12 +15003,15 @@ declare module "popup-modal-view-model" {
14694
15003
  apply(): void;
14695
15004
  clickOutside(): void;
14696
15005
  onKeyDown(event: any): void;
15006
+ private onScrollOutsideCallback;
15007
+ updateOnShowing(): void;
15008
+ updateOnHiding(): void;
14697
15009
  }
14698
15010
  }
14699
15011
  declare module "popup-utils" {
14700
15012
  import { IDialogOptions, PopupModel } from "popup";
14701
15013
  import { PopupBaseViewModel } from "popup-view-model";
14702
- export function createPopupModalViewModel(options: IDialogOptions): PopupBaseViewModel;
15014
+ export function createPopupModalViewModel(options: IDialogOptions, container?: HTMLElement): PopupBaseViewModel;
14703
15015
  export function createPopupViewModel(model: PopupModel, targetElement?: HTMLElement): PopupBaseViewModel;
14704
15016
  }
14705
15017
  declare module "question_buttongroup" {
@@ -14819,6 +15131,7 @@ declare module "entries/chunks/model" {
14819
15131
  export { SurveyProgressButtonsModel } from "surveyProgressButtons";
14820
15132
  export * from "themes";
14821
15133
  export { SurveyModel } from "survey";
15134
+ export * from "survey-events-api";
14822
15135
  export { SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger } from "trigger";
14823
15136
  export { PopupSurveyModel, SurveyWindowModel } from "popup-survey";
14824
15137
  export { TextPreProcessor } from "textPreProcessor";
@@ -14845,6 +15158,7 @@ declare module "entries/chunks/model" {
14845
15158
  export { surveyCss, defaultV2Css, defaultV2ThemeName } from "defaultCss/defaultV2Css";
14846
15159
  export { DragDropCore } from "dragdrop/core";
14847
15160
  export { DragDropChoices } from "dragdrop/choices";
15161
+ export { DragDropRankingSelectToRank } from "dragdrop/ranking-select-to-rank";
14848
15162
  }
14849
15163
  declare module "defaultCss/cssstandard" {
14850
15164
  export var defaultStandardCss: {
@@ -14985,6 +15299,9 @@ declare module "defaultCss/cssstandard" {
14985
15299
  rootDragMod: string;
14986
15300
  rootDisabled: string;
14987
15301
  rootDragHandleAreaIcon: string;
15302
+ rootSelectToRankMod: string;
15303
+ rootSelectToRankAlignVertical: string;
15304
+ rootSelectToRankAlignHorizontal: string;
14988
15305
  item: string;
14989
15306
  itemContent: string;
14990
15307
  itemIndex: string;
@@ -14997,6 +15314,12 @@ declare module "defaultCss/cssstandard" {
14997
15314
  itemIconFocusMod: string;
14998
15315
  itemGhostMod: string;
14999
15316
  itemDragMod: string;
15317
+ container: string;
15318
+ containerEmptyMode: string;
15319
+ containerFromMode: string;
15320
+ containerToMode: string;
15321
+ containerPlaceholder: string;
15322
+ containersDivider: string;
15000
15323
  };
15001
15324
  comment: {
15002
15325
  remainingCharacterCounter: string;
@@ -15390,6 +15713,9 @@ declare module "defaultCss/cssmodern" {
15390
15713
  rootDragMod: string;
15391
15714
  rootDisabled: string;
15392
15715
  rootDragHandleAreaIcon: string;
15716
+ rootSelectToRankMod: string;
15717
+ rootSelectToRankAlignVertical: string;
15718
+ rootSelectToRankAlignHorizontal: string;
15393
15719
  item: string;
15394
15720
  itemContent: string;
15395
15721
  itemIndex: string;
@@ -15402,6 +15728,12 @@ declare module "defaultCss/cssmodern" {
15402
15728
  itemIconFocusMod: string;
15403
15729
  itemGhostMod: string;
15404
15730
  itemDragMod: string;
15731
+ container: string;
15732
+ containerEmptyMode: string;
15733
+ containerFromMode: string;
15734
+ containerToMode: string;
15735
+ containerPlaceholder: string;
15736
+ containersDivider: string;
15405
15737
  };
15406
15738
  radiogroup: {
15407
15739
  root: string;
@@ -15840,6 +16172,9 @@ declare module "plugins/themes/bootstrap/cssbootstrap" {
15840
16172
  rootDragMod: string;
15841
16173
  rootDisabled: string;
15842
16174
  rootDragHandleAreaIcon: string;
16175
+ rootSelectToRankMod: string;
16176
+ rootSelectToRankAlignVertical: string;
16177
+ rootSelectToRankAlignHorizontal: string;
15843
16178
  item: string;
15844
16179
  itemContent: string;
15845
16180
  itemIndex: string;
@@ -15852,6 +16187,12 @@ declare module "plugins/themes/bootstrap/cssbootstrap" {
15852
16187
  itemIconFocusMod: string;
15853
16188
  itemGhostMod: string;
15854
16189
  itemDragMod: string;
16190
+ container: string;
16191
+ containerEmptyMode: string;
16192
+ containerFromMode: string;
16193
+ containerToMode: string;
16194
+ containerPlaceholder: string;
16195
+ containersDivider: string;
15855
16196
  };
15856
16197
  comment: string;
15857
16198
  dropdown: {
@@ -16188,6 +16529,9 @@ declare module "plugins/themes/bootstrapmaterial/cssbootstrapmaterial" {
16188
16529
  rootDragMod: string;
16189
16530
  rootDisabled: string;
16190
16531
  rootDragHandleAreaIcon: string;
16532
+ rootSelectToRankMod: string;
16533
+ rootSelectToRankAlignVertical: string;
16534
+ rootSelectToRankAlignHorizontal: string;
16191
16535
  item: string;
16192
16536
  itemContent: string;
16193
16537
  itemIndex: string;
@@ -16200,6 +16544,12 @@ declare module "plugins/themes/bootstrapmaterial/cssbootstrapmaterial" {
16200
16544
  itemIconFocusMod: string;
16201
16545
  itemGhostMod: string;
16202
16546
  itemDragMod: string;
16547
+ container: string;
16548
+ containerEmptyMode: string;
16549
+ containerFromMode: string;
16550
+ containerToMode: string;
16551
+ containerPlaceholder: string;
16552
+ containersDivider: string;
16203
16553
  };
16204
16554
  comment: string;
16205
16555
  dropdown: {
@@ -16650,6 +17000,9 @@ declare module "entries/plugins" {
16650
17000
  rootDragMod: string;
16651
17001
  rootDisabled: string;
16652
17002
  rootDragHandleAreaIcon: string;
17003
+ rootSelectToRankMod: string;
17004
+ rootSelectToRankAlignVertical: string;
17005
+ rootSelectToRankAlignHorizontal: string;
16653
17006
  item: string;
16654
17007
  itemContent: string;
16655
17008
  itemIndex: string;
@@ -16662,6 +17015,12 @@ declare module "entries/plugins" {
16662
17015
  itemIconFocusMod: string;
16663
17016
  itemGhostMod: string;
16664
17017
  itemDragMod: string;
17018
+ container: string;
17019
+ containerEmptyMode: string;
17020
+ containerFromMode: string;
17021
+ containerToMode: string;
17022
+ containerPlaceholder: string;
17023
+ containersDivider: string;
16665
17024
  };
16666
17025
  comment: string;
16667
17026
  dropdown: {
@@ -16996,6 +17355,9 @@ declare module "entries/plugins" {
16996
17355
  rootDragMod: string;
16997
17356
  rootDisabled: string;
16998
17357
  rootDragHandleAreaIcon: string;
17358
+ rootSelectToRankMod: string;
17359
+ rootSelectToRankAlignVertical: string;
17360
+ rootSelectToRankAlignHorizontal: string;
16999
17361
  item: string;
17000
17362
  itemContent: string;
17001
17363
  itemIndex: string;
@@ -17008,6 +17370,12 @@ declare module "entries/plugins" {
17008
17370
  itemIconFocusMod: string;
17009
17371
  itemGhostMod: string;
17010
17372
  itemDragMod: string;
17373
+ container: string;
17374
+ containerEmptyMode: string;
17375
+ containerFromMode: string;
17376
+ containerToMode: string;
17377
+ containerPlaceholder: string;
17378
+ containersDivider: string;
17011
17379
  };
17012
17380
  comment: string;
17013
17381
  dropdown: {
@@ -20933,6 +21301,7 @@ declare module "react/components/popup/popup" {
20933
21301
  import { SurveyElementBase } from "react/reactquestion_element";
20934
21302
  interface IPopupProps {
20935
21303
  model: PopupModel;
21304
+ getTarget?: (container: HTMLElement) => HTMLElement;
20936
21305
  }
20937
21306
  export class Popup extends SurveyElementBase<IPopupProps, any> {
20938
21307
  private popup;
@@ -20944,7 +21313,6 @@ declare module "react/components/popup/popup" {
20944
21313
  private setTargetElement;
20945
21314
  componentDidMount(): void;
20946
21315
  componentDidUpdate(prevProps: any, prevState: any): void;
20947
- componentWillUnmount(): void;
20948
21316
  shouldComponentUpdate(nextProps: IPopupProps, nextState: any): boolean;
20949
21317
  render(): JSX.Element;
20950
21318
  }
@@ -20967,14 +21335,14 @@ declare module "react/components/popup/popup" {
20967
21335
  protected renderHeaderPopup(popupModel: PopupBaseViewModel): JSX.Element | null;
20968
21336
  }
20969
21337
  export function showModal(componentName: string, data: any, onApply: () => boolean, onCancel?: () => void, cssClass?: string, title?: string, displayMode?: "popup" | "overlay"): PopupBaseViewModel;
20970
- export function showDialog(dialogOptions: IDialogOptions): PopupBaseViewModel;
21338
+ export function showDialog(dialogOptions: IDialogOptions, container?: HTMLElement): PopupBaseViewModel;
20971
21339
  }
20972
21340
  declare module "react/components/action-bar/action-bar-item-dropdown" {
20973
21341
  import { SurveyActionBarItem } from "react/components/action-bar/action-bar-item";
20974
21342
  export class SurveyActionBarItemDropdown extends SurveyActionBarItem {
20975
21343
  private viewModel;
20976
21344
  constructor(props: any);
20977
- renderButtonContent(): JSX.Element;
21345
+ renderInnerButton(): JSX.Element;
20978
21346
  componentWillUnmount(): void;
20979
21347
  }
20980
21348
  }
@@ -21442,8 +21810,8 @@ declare module "react/reactquestion_ranking" {
21442
21810
  export class SurveyQuestionRanking extends SurveyQuestionElementBase {
21443
21811
  protected get question(): QuestionRankingModel;
21444
21812
  protected renderElement(): JSX.Element;
21445
- protected getItems(): Array<any>;
21446
- protected renderItem(item: ItemValue, i: number, handleKeydown: (event: any) => void, handlePointerDown: (event: PointerEvent) => void, cssClasses: any, itemClass: string, question: QuestionRankingModel): JSX.Element;
21813
+ protected getItems(choices?: any, unrankedItem?: boolean): Array<any>;
21814
+ protected renderItem(item: ItemValue, i: number, handleKeydown: (event: any) => void, handlePointerDown: (event: PointerEvent) => void, cssClasses: any, itemClass: string, question: QuestionRankingModel, unrankedItem?: boolean): JSX.Element;
21447
21815
  }
21448
21816
  export class SurveyQuestionRankingItem extends ReactSurveyElement {
21449
21817
  protected get text(): string;
@@ -21455,11 +21823,13 @@ declare module "react/reactquestion_ranking" {
21455
21823
  protected get itemClass(): string;
21456
21824
  protected get itemTabIndex(): number;
21457
21825
  protected get question(): any;
21826
+ protected get unrankedItem(): any;
21827
+ protected get item(): any;
21458
21828
  protected renderElement(): JSX.Element;
21459
21829
  }
21460
21830
  }
21461
21831
  declare module "react/components/rating/rating-item" {
21462
- import { QuestionRatingModel, RenderedRatingItem } from "entries/core";
21832
+ import { Base, QuestionRatingModel, RenderedRatingItem } from "entries/core";
21463
21833
  import { SurveyElementBase } from "react/reactquestion_element";
21464
21834
  export interface IRatingItemProps {
21465
21835
  question: QuestionRatingModel;
@@ -21468,36 +21838,28 @@ declare module "react/components/rating/rating-item" {
21468
21838
  handleOnClick: any;
21469
21839
  isDisplayMode: boolean;
21470
21840
  }
21471
- export class RatingItem extends SurveyElementBase<IRatingItemProps, any> {
21841
+ export class RatingItemBase extends SurveyElementBase<IRatingItemProps, any> {
21842
+ constructor(props: any);
21472
21843
  get question(): QuestionRatingModel;
21473
21844
  get item(): RenderedRatingItem;
21474
21845
  get index(): any;
21475
- getStateElement(): RenderedRatingItem;
21846
+ getStateElement(): Base;
21847
+ handleOnMouseDown(event: any): void;
21848
+ }
21849
+ export class RatingItem extends RatingItemBase {
21476
21850
  render(): JSX.Element | null;
21477
21851
  componentDidMount(): void;
21478
21852
  }
21479
21853
  }
21480
21854
  declare module "react/components/rating/rating-item-star" {
21481
- import { QuestionRatingModel, RenderedRatingItem } from "entries/core";
21482
- import { SurveyElementBase } from "react/reactquestion_element";
21483
- import { IRatingItemProps } from "react/components/rating/rating-item";
21484
- export class RatingItemStar extends SurveyElementBase<IRatingItemProps, any> {
21485
- get question(): QuestionRatingModel;
21486
- get item(): RenderedRatingItem;
21487
- get index(): any;
21488
- getStateElement(): RenderedRatingItem;
21855
+ import { RatingItemBase } from "react/components/rating/rating-item";
21856
+ export class RatingItemStar extends RatingItemBase {
21489
21857
  render(): JSX.Element | null;
21490
21858
  }
21491
21859
  }
21492
21860
  declare module "react/components/rating/rating-item-smiley" {
21493
- import { QuestionRatingModel, RenderedRatingItem } from "entries/core";
21494
- import { SurveyElementBase } from "react/reactquestion_element";
21495
- import { IRatingItemProps } from "react/components/rating/rating-item";
21496
- export class RatingItemSmiley extends SurveyElementBase<IRatingItemProps, any> {
21497
- get question(): QuestionRatingModel;
21498
- get item(): RenderedRatingItem;
21499
- get index(): any;
21500
- getStateElement(): RenderedRatingItem;
21861
+ import { RatingItemBase } from "react/components/rating/rating-item";
21862
+ export class RatingItemSmiley extends RatingItemBase {
21501
21863
  render(): JSX.Element | null;
21502
21864
  }
21503
21865
  }
@@ -21612,6 +21974,7 @@ declare module "react/reactquestion_matrix" {
21612
21974
  private get question();
21613
21975
  private get row();
21614
21976
  handleOnChange(event: any): void;
21977
+ handleOnMouseDown(event: any): void;
21615
21978
  protected wrapCell(cell: any, element: JSX.Element, reason: string): JSX.Element;
21616
21979
  protected canRender(): boolean;
21617
21980
  protected renderElement(): JSX.Element;
@@ -21697,6 +22060,7 @@ declare module "react/reactquestion_radiogroup" {
21697
22060
  private get hideCaption();
21698
22061
  shouldComponentUpdate(nextProps: any, nextState: any): boolean;
21699
22062
  handleOnChange(event: any): void;
22063
+ handleOnMouseDown(event: any): void;
21700
22064
  protected canRender(): boolean;
21701
22065
  protected renderElement(): JSX.Element;
21702
22066
  }