survey-react 1.9.76 → 1.9.77

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
@@ -1,13 +1,25 @@
1
1
  /// <reference types="react" />
2
2
  declare module "settings" {
3
3
  /**
4
- * Global survey settings
4
+ * Global settings that apply to all surveys on the page. To specify one of the settings, use the code below:
5
+ *
6
+ * ```js
7
+ * import { settings } from "survey-core";
8
+ *
9
+ * settings.settingName = "value";
10
+ * ```
5
11
  */
6
12
  export var settings: {
7
13
  /**
8
- * Options for SurveyJS comparator. By default we trim strings and compare them as case insensitive. To change the behavior you can use following code:
9
- * settings.comparator.trimStrings = false; //"abc " will not equal to "abc". They are equal by default.
10
- * settings.comparator.caseSensitive = true; //"abc " will not equal to "Abc". They are equal by default.
14
+ * An object that configures string comparison.
15
+ *
16
+ * Nested properties:
17
+ *
18
+ * - `trimStrings`: `Boolean`\
19
+ * Specifies whether to remove whitespace from both ends of a string before the comparison. Default value: `true`.
20
+ *
21
+ * - `caseSensitive`: `Boolean`\
22
+ * Specifies whether to differentiate between capital and lower-case letters. Default value: `false`.
11
23
  */
12
24
  comparator: {
13
25
  trimStrings: boolean;
@@ -15,188 +27,298 @@ declare module "settings" {
15
27
  };
16
28
  expressionDisableConversionChar: string;
17
29
  /**
18
- * Set this value to false, if you want to have UTC fuctions, for example setUTCHours inside our functions, like today.
19
- * By default it uses setHours function, with local date
30
+ * 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.).
31
+ *
32
+ * Default value: `true`
20
33
  */
21
34
  useLocalTimeZone: boolean;
22
35
  commentPrefix: string;
23
36
  /**
24
- * The suffix that uses to store the question comment, as "questionName + commentSuffix".
25
- * The default value is "-Comment"
37
+ * A suffix added to the name of the property that stores comments.
38
+ *
39
+ * Default value: "-Comment"
40
+ *
41
+ * You can specify this setting for an individual survey: [`commentSuffix`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#commentSuffix).
26
42
  */
27
43
  commentSuffix: string;
28
44
  /**
29
- * Encode parameter on calling restful web API
45
+ * Specifies whether to encode URL parameters when you access a web service.
46
+ *
47
+ * Default value: `true`
30
48
  */
31
49
  webserviceEncodeParameters: boolean;
32
50
  /**
33
- * Cache the result for choices getting from web services. Set this property to false, to disable the caching.
51
+ * Specifies whether to cache choices loaded from a web service.
52
+ *
53
+ * Default value: `true`
54
+ * @see settings.disableOnGettingChoicesFromWeb
34
55
  */
35
56
  useCachingForChoicesRestful: boolean;
36
57
  useCachingForChoicesRestfull: boolean;
37
58
  /**
38
- * SurveyJS web service API url
59
+ * The URL of the SurveyJS Service API endpoint.
39
60
  */
40
61
  surveyServiceUrl: string;
41
62
  /**
42
- * separator that can allow to set value and text of ItemValue object in one string as: "value|text"
63
+ * 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"`.
64
+ *
65
+ * Default value: `"|"`
43
66
  */
44
67
  itemValueSeparator: string;
45
68
  /**
46
- * Set it to true to serialize itemvalue instance always as object even if text property is empty
47
- * const item = new Survey.ItemValue(5);
48
- * item.toJSON(); //will return {value: 5}, instead of 5 by default.
69
+ * 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.
70
+ *
71
+ * ```js
72
+ * import { ItemValue, settings } from "survey-core";
73
+ *
74
+ * settings.itemValueAlwaysSerializeAsObject = true;
75
+ * const item = new ItemValue(5);
76
+ * const itemString = item.toJSON(); // Produces { value: 5 } instead of 5
77
+ * ```
78
+ *
79
+ * @see settings.serializeLocalizableStringAsObject
49
80
  */
50
81
  itemValueAlwaysSerializeAsObject: boolean;
51
82
  /**
52
- * Set it to true to serialize itemvalue text property, even if it is empty or equals to value
53
- * const item = new Survey.ItemValue("item1");
54
- * item.toJSON(); //will return {value: item1, text: "item1"}, instead of "item1" by default.
83
+ * 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.
84
+ *
85
+ * ```js
86
+ * import { ItemValue, settings } from "survey-core";
87
+ *
88
+ * settings.itemValueAlwaysSerializeText = true;
89
+ * const item = new ItemValue("item1");
90
+ * const itemString = item.toJSON(); // Produces { value: "item1", text: "item1" } instead of "item1"
91
+ * ```
55
92
  */
56
93
  itemValueAlwaysSerializeText: boolean;
57
94
  /**
58
- * default locale name for localizable strings that uses during serialization, {"default": "My text", "de": "Mein Text"}
95
+ * Specifies a property key that stores a translation for the default locale.
96
+ *
97
+ * Default value: `"default"`
98
+ * @see storeDuplicatedTranslations
59
99
  */
60
100
  defaultLocaleName: string;
61
101
  /**
62
- * By default we do not store a value for a locale if it equals to "default" locale value
102
+ * Specifies whether surveys should store translation strings that equal the translation string specified by the `"default"` key.
103
+ *
104
+ * Default value: `false`
105
+ * @see settings.defaultLocaleName
63
106
  */
64
107
  storeDuplicatedTranslations: boolean;
65
108
  /**
66
- * Default row name for matrix (single choice)
109
+ * 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.
110
+ *
111
+ * Default value: "default"
67
112
  */
68
113
  matrixDefaultRowName: string;
69
114
  /**
70
- * Default cell type for dropdown and dynamic matrices
115
+ * 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.
116
+ *
117
+ * Default value: `"dropdown"`
118
+ *
119
+ * 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.
71
120
  */
72
121
  matrixDefaultCellType: string;
73
122
  /**
74
- * Total value postfix for dropdown and dynamic matrices. The total value stores as: {matrixName} + {postfix}
123
+ * 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.
124
+ *
125
+ * Default value: `"-total"`
75
126
  */
76
127
  matrixTotalValuePostFix: string;
77
128
  /**
78
- * Maximum row count in dynamic matrix
129
+ * A maximum number of rows in a [Dynamic Matrix](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model).
130
+ *
131
+ * Default value: 1000
132
+ *
133
+ * 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).
79
134
  */
80
135
  matrixMaximumRowCount: number;
81
136
  /**
82
- * Maximum rowCount that returns in addConditionObjectsByContext function
137
+ * 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.
138
+ *
139
+ * Default value: 1
140
+ *
141
+ * 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.
83
142
  */
84
143
  matrixMaxRowCountInCondition: number;
85
144
  /**
86
- * Maximum panelCount that returns in addConditionObjectsByContext function
145
+ * 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.
146
+ *
147
+ * Default value: 1
148
+ *
149
+ * 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.
87
150
  */
88
151
  panelDynamicMaxPanelCountInCondition: number;
89
152
  /**
90
- * Set this property to false, to render matrix dynamic remove action as button.
91
- * It is rendered as icon in new themes ("defaultV2") by default.
153
+ * 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.
154
+ *
155
+ * Default value: `true`
92
156
  */
93
157
  matrixRenderRemoveAsIcon: boolean;
94
158
  /**
95
- * Maximum panel count in dynamic panel
159
+ * A maximum number of panels in [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model).
160
+ *
161
+ * Default value: 100
162
+ *
163
+ * You can specify this setting for an individual Dynamic Panel: [`maxPanelCount`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#maxPanelCount).
96
164
  */
97
165
  panelMaximumPanelCount: number;
98
166
  /**
99
- * Maximum rate value count in rating question
167
+ * A maximum number of rate values in a [Rating](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model) question.
168
+ *
169
+ * Default value: 20
100
170
  */
101
171
  ratingMaximumRateValueCount: number;
102
172
  /**
103
173
  * 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.
174
+ *
104
175
  * 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.
105
176
  */
106
177
  tagboxCloseOnSelect: boolean;
107
178
  /**
108
- * Disable the question while choices are getting from the web service
179
+ * Disables the question while choices are being loaded from a web service.
180
+ *
181
+ * Default value: `false`
182
+ * @see settings.useCachingForChoicesRestful
109
183
  */
110
184
  disableOnGettingChoicesFromWeb: boolean;
111
185
  /**
112
- * Set to true to always serialize the localization string as object even if there is only one value for default locale. Instead of string "MyStr" serialize as {default: "MyStr"}
186
+ * 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" }`.
187
+ *
188
+ * Default value: `false`
189
+ * @see settings.itemValueAlwaysSerializeAsObject
113
190
  */
114
191
  serializeLocalizableStringAsObject: boolean;
115
192
  /**
116
- * Set to false to hide empty page title and description in design mode
193
+ * Specifies whether to display an empty title for pages and panels when they are being designed in Survey Creator.
194
+ *
195
+ * Default value: `true`
117
196
  */
118
197
  allowShowEmptyTitleInDesignMode: boolean;
119
198
  /**
120
- * Set to false to hide empty page description in design mode
199
+ * Specifies whether to display an empty description for pages and panels when they are being designed in Survey Creator.
200
+ *
201
+ * Default value: `true`
121
202
  */
122
203
  allowShowEmptyDescriptionInDesignMode: boolean;
123
204
  /**
124
- * Set this property to true to execute the complete trigger on value change instead of on next page.
205
+ * 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.
206
+ *
207
+ * 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.
208
+ *
209
+ * Default value: `false`
210
+ * @see settings.changeNavigationButtonsOnCompleteTrigger
125
211
  */
126
212
  executeCompleteTriggerOnValueChanged: boolean;
127
213
  /**
128
- * Set this property to false to stop showing "Compete" button when the complete trigger is going to be executed.
214
+ * 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.
215
+ *
216
+ * Default value: `true`
217
+ * @see settings.executeCompleteTriggerOnValueChanged
129
218
  */
130
219
  changeNavigationButtonsOnCompleteTrigger: boolean;
131
220
  /**
132
- * Set this property to false to execute the skip trigger on next page instead of on value change.
221
+ * 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.
222
+ *
223
+ * Disable this property if you want to re-evaluate the Skip trigger's expression only when the respondents navigate to another page.
224
+ *
225
+ * Default value: `true`
133
226
  */
134
227
  executeSkipTriggerOnValueChanged: boolean;
135
228
  /**
136
- * Specifies how the input field of [Comment](https://surveyjs.io/Documentation/Library?id=questioncommentmodel) questions is rendered in the read-only mode.
137
- * Available values:
138
- * "textarea" (default) - A 'textarea' element is used to render a Comment question's input field.
139
- * "div" - A 'div' element is used to render a Comment question's input field.
229
+ * 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.
230
+ *
231
+ * Possible values:
232
+ *
233
+ * - `"textarea"` (default) - Renders the input field as a disabled `<textarea>` element.
234
+ * - `"div"` - Renders the input field as a `<div>` element with a non-editable question value within it.
140
235
  */
141
236
  readOnlyCommentRenderMode: string;
142
237
  /**
143
- * Specifies how the input field of [Text](https://surveyjs.io/Documentation/Library?id=questiontextmodel) questions is rendered in the read-only mode.
144
- * Available values:
145
- * "input" (default) - An 'input' element is used to render a Text question's input field.
146
- * "div" - A 'div' element is used to render a Text question's input field.
238
+ * 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.
239
+ *
240
+ * Possible values:
241
+ *
242
+ * - `"input"` (default) - Renders the input field as a disabled `<input>` element.
243
+ * - `"div"` - Renders the input field as a `<div>` element with a non-editable question value within it.
147
244
  */
148
245
  readOnlyTextRenderMode: string;
149
246
  /**
150
- * Override this function, set your function, if you want to show your own dialog confirm window instead of standard browser window.
151
- * @param message
247
+ * 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.
248
+ * @param message A message to be displayed in the confirm dialog window.
152
249
  */
153
250
  confirmActionFunc: (message: string) => boolean;
154
251
  /**
155
- * Set this property to change the default value of the minWidth constraint
252
+ * A minimum width value for all survey elements.
253
+ *
254
+ * Default value: `"300px"`
255
+ *
256
+ * You can override this setting for individual elements: [`minWidth`](https://surveyjs.io/form-library/documentation/api-reference/surveyelement#minWidth).
156
257
  */
157
258
  minWidth: string;
158
259
  /**
159
- * Set this property to change the default value of the maxWidth constraint
260
+ * A maximum width value for all survey elements.
261
+ *
262
+ * Default value: `"100%"`
263
+ *
264
+ * You can override this setting for individual elements: [`maxWidth`](https://surveyjs.io/form-library/documentation/api-reference/surveyelement#maxWidth).
160
265
  */
161
266
  maxWidth: string;
162
267
  /**
163
- * This property tells how many times survey re-run expressions on value changes during condition running. We need it to avoid recursions in the expressions
268
+ * Specifies how many times surveys can re-evaluate expressions when a question value changes. This limit helps avoid recursions in expressions.
269
+ *
270
+ * Default value: 10
164
271
  */
165
272
  maximumConditionRunCountOnValueChanged: number;
166
273
  /**
167
- * By default visibleIndex for question with titleLocation = "hidden" is -1, and survey doesn't count these questions when set questions numbers.
168
- * Set it true, and a question next to a question with hidden title will increase it's number.
274
+ * Specifies whether to number questions whose [`titleLocation`](https://surveyjs.io/form-library/documentation/api-reference/question#titleLocation) property is set to `"hidden"`.
275
+ *
276
+ * Default value: `false`
169
277
  */
170
278
  setQuestionVisibleIndexForHiddenTitle: boolean;
171
279
  /**
172
- * By default visibleIndex for question with hideNumber = true is -1, and survey doesn't count these questions when set questions numbers.
173
- * Set it true, and a question next to a question with hidden title number will increase it's number.
280
+ * Specifies whether to number questions whose [`hideNumber`](https://surveyjs.io/form-library/documentation/api-reference/question#hideNumber) property is enabled.
281
+ *
282
+ * Default value: `false`
174
283
  */
175
284
  setQuestionVisibleIndexForHiddenNumber: boolean;
176
285
  /**
177
- * By default all rows are rendered no matters whwther they are visible.
178
- * Set it true, and survey markup rows will be rendered only if they are visible in viewport.
179
- * This feature is experimantal and might do not support all the use cases.
286
+ * Specifies whether to add questions to the DOM only when they get into the viewport.
287
+ *
288
+ * Default value: `false`
289
+ *
290
+ * > This is an experimental feature that may not work as expected in all use cases.
180
291
  */
181
292
  lazyRowsRendering: boolean;
182
293
  lazyRowsRenderingStartRow: number;
183
294
  /**
184
- * Notification settings
295
+ * An object that configures notifications.
296
+ *
297
+ * Nested properties:
298
+ *
299
+ * - `lifetime`: `Number`\
300
+ * Specifies a time period during which a notification is displayed; measured in milliseconds.
185
301
  */
186
302
  notifications: {
187
303
  lifetime: number;
188
304
  };
189
305
  /**
190
- * By default checkbox and radiogroup items are ordered in rows.
191
- * Set it "column", and items will be ordered in columns.
306
+ * Specifies the direction in which to lay out Checkbox and Radiogroup items. This setting affects the resulting UI when items are arranged in [more than one column](https://surveyjs.io/form-library/documentation/api-reference/checkbox-question-model#colCount).
307
+ *
308
+ * Possible values:
309
+ *
310
+ * - `"row"` (default) - Items fill the current row, then move on to the next row.
311
+ * - `"column"` - Items fill the current column, then move on to the next column.
192
312
  */
193
313
  showItemsInOrder: string;
194
314
  /**
195
315
  * A value to save in survey results when respondents select the None choice item.
316
+ *
317
+ * Default value: `"none"`
196
318
  */
197
319
  noneItemValue: string;
198
320
  /**
199
- * Supported validators by question types. You can modify this variable to add validators for new question types or add/remove for existing question types.
321
+ * A list of supported validators by question type.
200
322
  */
201
323
  supportedValidators: {
202
324
  question: string[];
@@ -206,21 +328,26 @@ declare module "settings" {
206
328
  imagepicker: string[];
207
329
  };
208
330
  /**
209
- * Set the value as string "yyyy-mm-dd". text questions with inputType "date" will not allow to set to survey date that less than this value
331
+ * Specifies a minimum date that users can enter into a [Text](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model) question with [`inputType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#inputType) set to `"date"`, `"datetime"`, or `"datetime-local"`. Set this property to a string with the folllowing format: `"yyyy-mm-dd"`.
210
332
  */
211
333
  minDate: string;
212
334
  /**
213
- * Set the value as string "yyyy-mm-dd". text questions with inputType "date" will not allow to set to survey date that greater than this value
335
+ * Specifies a maximum date that users can enter into a [Text](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model) question with [`inputType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#inputType) set to `"date"`, `"datetime"`, or `"datetime-local"`. Set this property to a string with the folllowing format: `"yyyy-mm-dd"`.
214
336
  */
215
337
  maxDate: string;
216
338
  showModal: (componentName: string, data: any, onApply: () => boolean, onCancel?: () => void, cssClass?: string, title?: string, displayMode?: "popup" | "overlay") => any;
217
339
  supportCreatorV2: boolean;
218
340
  showDefaultItemsInCreatorV2: boolean;
219
341
  /**
220
- * Specifies a list of custom icons.
221
- * Use this property to replace SurveyJS default icons (displayed in UI elements of SurveyJS Library or Creator) with your custom icons.
222
- * For every default icon to replace, add a key/value object with the default icon's name as a key and the name of your custom icon as a value.
223
- * For example: Survey.settings.customIcons["icon-redo"] = "my-own-redo-icon"
342
+ * An object that specifies icon replacements. Object keys are built-in icon names. To use a custom icon, assign its name to the key of the icon you want to replace:
343
+ *
344
+ * ```js
345
+ * import { settings } from "survey-core";
346
+ *
347
+ * settings.customIcons["icon-redo"] = "custom-redo-icon";
348
+ * ```
349
+ *
350
+ * For more information about icons in SurveyJS, refer to the following help topic: [UI Icons](https://surveyjs.io/form-library/documentation/icons).
224
351
  */
225
352
  customIcons: {};
226
353
  /**
@@ -1253,7 +1380,7 @@ declare module "utils/utils" {
1253
1380
  }
1254
1381
  declare module "actions/container" {
1255
1382
  import { Base } from "base";
1256
- import { IAction, Action } from "actions/action";
1383
+ import { IAction, Action, BaseAction } from "actions/action";
1257
1384
  import { ILocalizableOwner, LocalizableString } from "localizablestring";
1258
1385
  export let defaultActionBarCss: {
1259
1386
  root: string;
@@ -1266,7 +1393,7 @@ declare module "actions/container" {
1266
1393
  itemTitle: string;
1267
1394
  itemTitleWithIcon: string;
1268
1395
  };
1269
- export class ActionContainer<T extends Action = Action> extends Base implements ILocalizableOwner {
1396
+ export class ActionContainer<T extends BaseAction = Action> extends Base implements ILocalizableOwner {
1270
1397
  getMarkdownHtml(text: string, name: string): string;
1271
1398
  getRenderer(name: string): string;
1272
1399
  getRendererContext(locStr: LocalizableString): any;
@@ -1294,7 +1421,7 @@ declare module "actions/container" {
1294
1421
  set cssClasses(val: any);
1295
1422
  get cssClasses(): any;
1296
1423
  private createAction;
1297
- addAction(val: IAction, sortByVisibleIndex?: boolean): Action;
1424
+ addAction(val: IAction, sortByVisibleIndex?: boolean): T;
1298
1425
  private sortItems;
1299
1426
  setItems(items: Array<IAction>, sortByVisibleIndex?: boolean): void;
1300
1427
  initResponsivityManager(container: HTMLDivElement): void;
@@ -1314,7 +1441,7 @@ declare module "element-helper" {
1314
1441
  }
1315
1442
  declare module "list" {
1316
1443
  import { ActionContainer } from "actions/container";
1317
- import { Action, IAction } from "actions/action";
1444
+ import { Action, BaseAction, IAction } from "actions/action";
1318
1445
  export let defaultListCss: {
1319
1446
  root: string;
1320
1447
  item: string;
@@ -1341,8 +1468,8 @@ declare module "list" {
1341
1468
  selectedItem?: IAction;
1342
1469
  onFilterStringChangedCallback?: (text: string) => void;
1343
1470
  }
1344
- export class ListModel extends ActionContainer {
1345
- onSelectionChanged: (item: Action, ...params: any[]) => void;
1471
+ export class ListModel<T extends BaseAction = Action> extends ActionContainer<T> {
1472
+ onSelectionChanged: (item: T, ...params: any[]) => void;
1346
1473
  allowSelection: boolean;
1347
1474
  private onFilterStringChangedCallback?;
1348
1475
  private listContainerHtmlElement;
@@ -1351,7 +1478,7 @@ declare module "list" {
1351
1478
  showFilter: boolean;
1352
1479
  isExpanded: boolean;
1353
1480
  selectedItem: IAction;
1354
- focusedItem: Action;
1481
+ focusedItem: T;
1355
1482
  filterString: string;
1356
1483
  hasVerticalScroller: boolean;
1357
1484
  isAllDataLoaded: boolean;
@@ -1359,12 +1486,13 @@ declare module "list" {
1359
1486
  static INDENT: number;
1360
1487
  static MINELEMENTCOUNT: number;
1361
1488
  scrollHandler: (e?: any) => void;
1489
+ areSameItemsCallback: (item1: IAction, item2: IAction) => boolean;
1362
1490
  private hasText;
1363
- isItemVisible(item: Action): boolean;
1364
- get visibleItems(): Array<Action>;
1491
+ isItemVisible(item: T): boolean;
1492
+ get visibleItems(): Array<T>;
1365
1493
  private get shouldProcessFilter();
1366
1494
  private onFilterStringChanged;
1367
- constructor(items: Array<IAction>, onSelectionChanged: (item: Action, ...params: any[]) => void, allowSelection: boolean, selectedItem?: IAction, onFilterStringChangedCallback?: (text: string) => void);
1495
+ constructor(items: Array<IAction>, onSelectionChanged: (item: T, ...params: any[]) => void, allowSelection: boolean, selectedItem?: IAction, onFilterStringChangedCallback?: (text: string) => void);
1368
1496
  setItems(items: Array<IAction>, sortByVisibleIndex?: boolean): void;
1369
1497
  protected onSet(): void;
1370
1498
  protected getDefaultCssClasses(): {
@@ -1386,18 +1514,18 @@ declare module "list" {
1386
1514
  emptyContainer: string;
1387
1515
  emptyText: string;
1388
1516
  };
1389
- protected updateItemActiveState(): void;
1390
- onItemClick: (itemValue: Action) => void;
1391
- isItemDisabled: (itemValue: Action) => boolean;
1392
- isItemSelected: (itemValue: Action) => boolean;
1393
- isItemFocused: (itemValue: Action) => boolean;
1394
- getItemClass: (itemValue: Action) => string;
1517
+ onItemClick: (itemValue: T) => void;
1518
+ isItemDisabled: (itemValue: T) => boolean;
1519
+ isItemSelected: (itemValue: T) => boolean;
1520
+ isItemFocused: (itemValue: T) => boolean;
1521
+ protected areSameItems(item1: IAction, item2: IAction): boolean;
1522
+ getItemClass: (itemValue: T) => string;
1395
1523
  getItemIndent: (itemValue: any) => string;
1396
1524
  get filterStringPlaceholder(): string;
1397
1525
  get emptyMessage(): string;
1398
1526
  get scrollableContainer(): HTMLElement;
1399
1527
  get loadingText(): string;
1400
- get loadingIndicator(): Action;
1528
+ get loadingIndicator(): T;
1401
1529
  goToItems(event: KeyboardEvent): void;
1402
1530
  onMouseMove(event: MouseEvent): void;
1403
1531
  onKeyDown(event: KeyboardEvent): void;
@@ -1412,7 +1540,7 @@ declare module "list" {
1412
1540
  focusPrevVisibleItem(): void;
1413
1541
  selectFocusedItem(): void;
1414
1542
  initListContainerHtmlElement(htmlElement: HTMLElement): void;
1415
- onLastItemRended(item: Action): void;
1543
+ onLastItemRended(item: T): void;
1416
1544
  scrollToFocusedItem(): void;
1417
1545
  addScrollEventListener(handler: (e?: any) => void): void;
1418
1546
  removeScrollEventListener(): void;
@@ -1636,36 +1764,20 @@ declare module "actions/action" {
1636
1764
  }
1637
1765
  export function createDropdownActionModel(actionOptions: IAction, dropdownOptions: IActionDropdownPopupOptions, locOwner?: ILocalizableOwner): Action;
1638
1766
  export function createDropdownActionModelAdvanced(actionOptions: IAction, listOptions: IListModel, popupOptions?: IPopupOptionsBase, locOwner?: ILocalizableOwner): Action;
1639
- export class Action extends Base implements IAction, ILocalizableOwner {
1640
- innerItem: IAction;
1641
- private locTitleValue;
1642
- updateCallback: () => void;
1643
- private raiseUpdate;
1644
- constructor(innerItem: IAction);
1645
- private createLocTitle;
1646
- owner: ILocalizableOwner;
1647
- location?: string;
1648
- id: string;
1649
- iconName: string;
1650
- iconSize: number;
1651
- visible: boolean;
1767
+ export abstract class BaseAction extends Base implements IAction {
1768
+ private cssClassesValue;
1652
1769
  tooltip: string;
1653
- locTooltipName?: string;
1654
- enabled: boolean;
1655
1770
  showTitle: boolean;
1656
- action: (context?: any) => void;
1657
- css: string;
1658
1771
  innerCss: string;
1772
+ active: boolean;
1773
+ pressed: boolean;
1659
1774
  data: any;
1660
1775
  popupModel: any;
1661
1776
  needSeparator: boolean;
1662
- active: boolean;
1663
- pressed: boolean;
1664
1777
  template: string;
1665
- component: string;
1666
- items: any;
1667
- visibleIndex: number;
1668
1778
  mode: actionModeType;
1779
+ owner: ILocalizableOwner;
1780
+ visibleIndex: number;
1669
1781
  disableTabStop: boolean;
1670
1782
  disableShrink: boolean;
1671
1783
  disableHide: boolean;
@@ -1673,33 +1785,81 @@ declare module "actions/action" {
1673
1785
  ariaChecked: boolean;
1674
1786
  ariaExpanded: boolean;
1675
1787
  ariaRole: string;
1676
- title: string;
1788
+ id: string;
1789
+ iconName: string;
1790
+ iconSize: number;
1791
+ css?: string;
1792
+ minDimension: number;
1793
+ maxDimension: number;
1794
+ get visible(): boolean;
1795
+ set visible(val: boolean);
1796
+ get enabled(): boolean;
1797
+ set enabled(val: boolean);
1798
+ get component(): string;
1799
+ set component(val: string);
1677
1800
  get locTitle(): LocalizableString;
1678
1801
  set locTitle(val: LocalizableString);
1679
- get locTitleName(): string;
1680
- set locTitleName(val: string);
1681
- locStrsChanged(): void;
1682
- private locStrChangedInPopupModel;
1683
- private locTitleChanged;
1684
- private locTooltipChanged;
1685
- private cssClassesValue;
1802
+ get title(): string;
1803
+ set title(val: string);
1686
1804
  set cssClasses(val: any);
1687
1805
  get cssClasses(): any;
1688
- get disabled(): boolean;
1689
- get hasTitle(): boolean;
1690
1806
  get isVisible(): boolean;
1807
+ get disabled(): boolean;
1691
1808
  get canShrink(): boolean;
1692
- getActionRootCss(): string;
1809
+ get hasTitle(): boolean;
1693
1810
  getActionBarItemTitleCss(): string;
1694
1811
  getActionBarItemCss(): string;
1812
+ getActionRootCss(): string;
1695
1813
  getTooltip(): string;
1814
+ protected abstract getEnabled(): boolean;
1815
+ protected abstract setEnabled(val: boolean): void;
1816
+ protected abstract getVisible(): boolean;
1817
+ protected abstract setVisible(val: boolean): void;
1818
+ protected abstract getLocTitle(): LocalizableString;
1819
+ protected abstract setLocTitle(val: LocalizableString): void;
1820
+ protected abstract getTitle(): string;
1821
+ protected abstract setTitle(val: string): void;
1822
+ protected abstract getComponent(): string;
1823
+ protected abstract setComponent(val: string): void;
1824
+ }
1825
+ export class Action extends BaseAction implements IAction, ILocalizableOwner {
1826
+ innerItem: IAction;
1827
+ private locTitleValue;
1828
+ updateCallback: () => void;
1829
+ private raiseUpdate;
1830
+ constructor(innerItem: IAction);
1831
+ private createLocTitle;
1832
+ owner: ILocalizableOwner;
1833
+ location?: string;
1834
+ id: string;
1835
+ private _visible;
1836
+ locTooltipName?: string;
1837
+ private _enabled;
1838
+ action: (context?: any) => void;
1839
+ _component: string;
1840
+ items: any;
1841
+ _title: string;
1842
+ protected getLocTitle(): LocalizableString;
1843
+ protected setLocTitle(val: LocalizableString): void;
1844
+ protected getTitle(): string;
1845
+ protected setTitle(val: string): void;
1846
+ get locTitleName(): string;
1847
+ set locTitleName(val: string);
1848
+ locStrsChanged(): void;
1849
+ private locStrChangedInPopupModel;
1850
+ private locTitleChanged;
1851
+ private locTooltipChanged;
1696
1852
  getLocale(): string;
1697
1853
  getMarkdownHtml(text: string, name: string): string;
1698
1854
  getProcessedText(text: string): string;
1699
1855
  getRenderer(name: string): string;
1700
1856
  getRendererContext(locStr: LocalizableString): any;
1701
- minDimension: number;
1702
- maxDimension: number;
1857
+ setVisible(val: boolean): void;
1858
+ getVisible(): boolean;
1859
+ setEnabled(val: boolean): void;
1860
+ getEnabled(): boolean;
1861
+ setComponent(val: string): void;
1862
+ getComponent(): string;
1703
1863
  }
1704
1864
  export class ActionDropdownViewModel {
1705
1865
  private item;
@@ -2294,6 +2454,7 @@ declare module "defaultCss/defaultV2Css" {
2294
2454
  rootReadOnly: string;
2295
2455
  container: string;
2296
2456
  header: string;
2457
+ bodyContainer: string;
2297
2458
  body: string;
2298
2459
  bodyWithTimer: string;
2299
2460
  clockTimerRoot: string;
@@ -2708,6 +2869,13 @@ declare module "defaultCss/defaultV2Css" {
2708
2869
  itemOnError: string;
2709
2870
  itemHover: string;
2710
2871
  selected: string;
2872
+ itemStar: string;
2873
+ itemStarOnError: string;
2874
+ itemStarHover: string;
2875
+ itemStarSelected: string;
2876
+ itemStarDisabled: string;
2877
+ itemStarHighlighted: string;
2878
+ itemStarUnhighlighted: string;
2711
2879
  minText: string;
2712
2880
  itemText: string;
2713
2881
  maxText: string;
@@ -4430,7 +4598,7 @@ declare module "notifier" {
4430
4598
  declare module "survey" {
4431
4599
  import { JsonError } from "jsonobject";
4432
4600
  import { Base, EventBase } from "base";
4433
- import { ISurvey, ISurveyData, ISurveyImpl, ITextProcessor, IQuestion, IPanel, IElement, IPage, ISurveyErrorOwner, ISurveyElement, IProgressInfo, IFindElement } from "base-interfaces";
4601
+ import { ISurvey, ISurveyData, ISurveyImpl, ITextProcessor, IQuestion, IPanel, IElement, IPage, ISurveyErrorOwner, ISurveyElement, IProgressInfo, IFindElement, ISurveyLayoutElement, LayoutElementContainer } from "base-interfaces";
4434
4602
  import { SurveyElementCore } from "survey-element";
4435
4603
  import { ISurveyTriggerOwner, SurveyTrigger, Trigger } from "trigger";
4436
4604
  import { CalculatedValue } from "calculatedValue";
@@ -5630,6 +5798,7 @@ declare module "survey" {
5630
5798
  get cssNavigationNext(): string;
5631
5799
  private get cssSurveyNavigationButton();
5632
5800
  get bodyCss(): string;
5801
+ get bodyContainerCss(): string;
5633
5802
  completedCss: string;
5634
5803
  containerCss: string;
5635
5804
  private getNavigationCss;
@@ -5728,6 +5897,25 @@ declare module "survey" {
5728
5897
  */
5729
5898
  get showPrevButton(): boolean;
5730
5899
  set showPrevButton(val: boolean);
5900
+ /**
5901
+ * Gets or sets the visibility of the table of contents.
5902
+ *
5903
+ * Default value: `false`
5904
+ * @see tocLocation
5905
+ */
5906
+ get showTOC(): boolean;
5907
+ set showTOC(val: boolean);
5908
+ /**
5909
+ * Gets or sets the position of the table of contents. Applies only when the table of contents is visible.
5910
+ *
5911
+ * Possible values:
5912
+ *
5913
+ * - `"left"` (default)
5914
+ * - `"right"`
5915
+ * @see showTOC
5916
+ */
5917
+ get tocLocation(): "left" | "right";
5918
+ set tocLocation(val: "left" | "right");
5731
5919
  /**
5732
5920
  * Gets or sets whether the Survey displays survey title in its pages. Set it to `false` to hide a survey title.
5733
5921
  * @see title
@@ -6246,6 +6434,9 @@ declare module "survey" {
6246
6434
  */
6247
6435
  mergeData(data: any): void;
6248
6436
  setDataCore(data: any): void;
6437
+ getStructuredData(includePages?: boolean, level?: number): any;
6438
+ setStructuredData(data: any, doMerge?: boolean): void;
6439
+ private collectDataFromPanel;
6249
6440
  private onEditingObjPropertyChanged;
6250
6441
  get editingObj(): Base;
6251
6442
  set editingObj(val: Base);
@@ -7274,6 +7465,10 @@ declare module "survey" {
7274
7465
  searchText(text: string): Array<IFindElement>;
7275
7466
  skeletonComponentName: string;
7276
7467
  getSkeletonComponentName(element: ISurveyElement): string;
7468
+ private layoutElements;
7469
+ addLayoutElement(layoutElement: ISurveyLayoutElement): ISurveyLayoutElement;
7470
+ removeLayoutElement(layoutElementId: string): ISurveyLayoutElement;
7471
+ getContainerContent(container: LayoutElementContainer): any[];
7277
7472
  /**
7278
7473
  * Use this method to dispose survey model properly.
7279
7474
  */
@@ -7565,6 +7760,7 @@ declare module "panel" {
7565
7760
  * @see getDisplayValue
7566
7761
  */
7567
7762
  getValue(): any;
7763
+ collectValues(data: any, level: number): boolean;
7568
7764
  /**
7569
7765
  * Returns a JSON object with display texts that correspond to question values nested in the panel/page.
7570
7766
  * @param keysAsText Pass `true` if not only values in the object should be display texts, but also keys. Default value: `false`.
@@ -9907,7 +10103,7 @@ declare module "question_matrixdropdownbase" {
9907
10103
  * - `"expression"`
9908
10104
  * - `"rating"`
9909
10105
  *
9910
- * Default value: "dropdown" (inherited from [`settings.matrixDefaultCellType`](https://surveyjs.io/form-library/documentation/settings#matrixDefaultCellType))
10106
+ * Default value: `"dropdown"` (inherited from [`settings.matrixDefaultCellType`](https://surveyjs.io/form-library/documentation/settings#matrixDefaultCellType))
9911
10107
  */
9912
10108
  get cellType(): string;
9913
10109
  set cellType(val: string);
@@ -10369,18 +10565,26 @@ declare module "base-interfaces" {
10369
10565
  element: Base;
10370
10566
  str: LocalizableString;
10371
10567
  }
10568
+ export type LayoutElementContainer = "header" | "footer" | "left" | "right" | "contentTop" | "contentBottom";
10569
+ export interface ISurveyLayoutElement {
10570
+ id: string;
10571
+ container?: LayoutElementContainer | Array<LayoutElementContainer>;
10572
+ component?: string;
10573
+ template?: string;
10574
+ data?: any;
10575
+ }
10372
10576
  }
10373
10577
  declare module "itemvalue" {
10374
10578
  import { ILocalizableOwner, LocalizableString } from "localizablestring";
10375
10579
  import { ConditionRunner } from "conditions";
10376
- import { Base } from "base";
10377
10580
  import { IShortcutText, ISurvey } from "base-interfaces";
10581
+ import { BaseAction } from "actions/action";
10378
10582
  /**
10379
10583
  * Array of ItemValue is used in checkox, dropdown and radiogroup choices, matrix columns and rows.
10380
10584
  * It has two main properties: value and text. If text is empty, value is used for displaying.
10381
10585
  * The text property is localizable and support markdown.
10382
10586
  */
10383
- export class ItemValue extends Base implements ILocalizableOwner, IShortcutText {
10587
+ export class ItemValue extends BaseAction implements ILocalizableOwner, IShortcutText {
10384
10588
  protected typeName: string;
10385
10589
  [index: string]: any;
10386
10590
  getMarkdownHtml(text: string, name: string): string;
@@ -10401,6 +10605,7 @@ declare module "itemvalue" {
10401
10605
  static runEnabledConditionsForItems(items: Array<ItemValue>, runner: ConditionRunner, values: any, properties: any, onItemCallBack?: (item: ItemValue, val: boolean) => boolean): boolean;
10402
10606
  private static runConditionsForItemsCore;
10403
10607
  ownerPropertyName: string;
10608
+ private _visible;
10404
10609
  private locTextValue;
10405
10610
  private visibleConditionRunner;
10406
10611
  private enableConditionRunner;
@@ -10442,6 +10647,19 @@ declare module "itemvalue" {
10442
10647
  private getVisibleConditionRunner;
10443
10648
  private getEnableConditionRunner;
10444
10649
  originalItem: any;
10650
+ selectedValue: boolean;
10651
+ get selected(): boolean;
10652
+ private componentValue;
10653
+ getComponent(): string;
10654
+ setComponent(val: string): void;
10655
+ protected getEnabled(): boolean;
10656
+ protected setEnabled(val: boolean): void;
10657
+ protected getVisible(): boolean;
10658
+ protected setVisible(val: boolean): void;
10659
+ protected getLocTitle(): LocalizableString;
10660
+ protected getTitle(): string;
10661
+ protected setLocTitle(val: LocalizableString): void;
10662
+ protected setTitle(val: string): void;
10445
10663
  }
10446
10664
  }
10447
10665
  declare module "base" {
@@ -10951,8 +11169,9 @@ declare module "question_matrixdropdown" {
10951
11169
  }
10952
11170
  }
10953
11171
  declare module "dropdownListModel" {
10954
- import { Action, IAction } from "actions/action";
11172
+ import { IAction } from "actions/action";
10955
11173
  import { Base } from "base";
11174
+ import { ItemValue } from "itemvalue";
10956
11175
  import { ListModel } from "list";
10957
11176
  import { PopupModel } from "popup";
10958
11177
  import { Question } from "question";
@@ -10968,10 +11187,9 @@ declare module "dropdownListModel" {
10968
11187
  protected getFocusFirstInputSelector(): string;
10969
11188
  private itemsSettings;
10970
11189
  private isRunningLoadQuestionChoices;
10971
- protected listModel: ListModel;
11190
+ protected listModel: ListModel<ItemValue>;
10972
11191
  protected popupCssClasses: string;
10973
11192
  private resetItemsSettings;
10974
- private updateListItems;
10975
11193
  private setItems;
10976
11194
  private updateQuestionChoices;
10977
11195
  private updatePopupFocusFirstInputSelector;
@@ -10979,9 +11197,9 @@ declare module "dropdownListModel" {
10979
11197
  private setFilterStringToListModel;
10980
11198
  protected popupRecalculatePosition(isResetHeight: boolean): void;
10981
11199
  protected onHidePopup(): void;
10982
- protected getAvailableItems(): Array<Action>;
10983
- protected createListModel(): ListModel;
10984
- protected updateAfterListModelCreated(model: ListModel): void;
11200
+ protected getAvailableItems(): Array<ItemValue>;
11201
+ protected createListModel(): ListModel<ItemValue>;
11202
+ protected updateAfterListModelCreated(model: ListModel<ItemValue>): void;
10985
11203
  updateCssClasses(popupCssClass: string, listCssClasses: any): void;
10986
11204
  protected resetFilterString(): void;
10987
11205
  protected onSetFilterString(): void;
@@ -10998,7 +11216,7 @@ declare module "dropdownListModel" {
10998
11216
  updateItems(): void;
10999
11217
  onClick(event: any): void;
11000
11218
  onClear(event: any): void;
11001
- getSelectedAction(): Action;
11219
+ getSelectedAction(): ItemValue;
11002
11220
  keyHandler(event: any): void;
11003
11221
  onScroll(event: Event): void;
11004
11222
  onBlur(event: any): void;
@@ -11116,6 +11334,7 @@ declare module "question_dropdown" {
11116
11334
  get popupModel(): PopupModel;
11117
11335
  onOpened: EventBase<QuestionDropdownModel>;
11118
11336
  onOpenedCallBack(): void;
11337
+ protected hasUnknownValue(val: any, includeOther: boolean, isFilteredChoices: boolean, checkEmptyValue: boolean): boolean;
11119
11338
  protected onVisibleChoicesChanged(): void;
11120
11339
  protected getFirstInputElementId(): string;
11121
11340
  getInputId(): string;
@@ -11767,7 +11986,7 @@ declare module "question_checkbox" {
11767
11986
  export class QuestionCheckboxModel extends QuestionCheckboxBase {
11768
11987
  private selectAllItemValue;
11769
11988
  private invisibleOldValues;
11770
- private initialSelectedItemValues;
11989
+ protected defaultSelectedItemValues: Array<ItemValue>;
11771
11990
  constructor(name: string);
11772
11991
  protected getDefaultItemComponent(): string;
11773
11992
  get ariaRole(): string;
@@ -11836,6 +12055,7 @@ declare module "question_checkbox" {
11836
12055
  */
11837
12056
  get selectedChoices(): Array<ItemValue>;
11838
12057
  get selectedItems(): Array<ItemValue>;
12058
+ protected validateItemValues(itemValues: Array<ItemValue>): Array<ItemValue>;
11839
12059
  protected onEnableItemCallBack(item: ItemValue): boolean;
11840
12060
  protected onAfterRunItemsEnableCondition(): void;
11841
12061
  private shouldCheckMaxSelectedChoices;
@@ -11877,16 +12097,16 @@ declare module "question_checkbox" {
11877
12097
  }
11878
12098
  }
11879
12099
  declare module "multiSelectListModel" {
11880
- import { Action, IAction } from "actions/action";
12100
+ import { Action, BaseAction, IAction } from "actions/action";
11881
12101
  import { ListModel } from "list";
11882
- export class MultiSelectListModel extends ListModel {
12102
+ export class MultiSelectListModel<T extends BaseAction = Action> extends ListModel<T> {
11883
12103
  selectedItems: Array<IAction>;
11884
12104
  hideSelectedItems: boolean;
11885
12105
  private updateItemState;
11886
- constructor(items: Array<IAction>, onSelectionChanged: (item: Action, status: string) => void, allowSelection: boolean, selectedItems?: Array<IAction>, onFilterStringChangedCallback?: (text: string) => void);
11887
- onItemClick: (item: Action) => void;
11888
- isItemDisabled: (itemValue: Action) => boolean;
11889
- isItemSelected: (itemValue: Action) => boolean;
12106
+ constructor(items: Array<IAction>, onSelectionChanged: (item: T, status: string) => void, allowSelection: boolean, selectedItems?: Array<IAction>, onFilterStringChangedCallback?: (text: string) => void);
12107
+ onItemClick: (item: T) => void;
12108
+ isItemDisabled: (itemValue: T) => boolean;
12109
+ isItemSelected: (itemValue: T) => boolean;
11890
12110
  updateState(): void;
11891
12111
  setSelectedItems(newItems: Array<IAction>): void;
11892
12112
  selectFocusedItem(): void;
@@ -11895,6 +12115,7 @@ declare module "multiSelectListModel" {
11895
12115
  declare module "dropdownMultiSelectListModel" {
11896
12116
  import { IAction } from "actions/action";
11897
12117
  import { DropdownListModel } from "dropdownListModel";
12118
+ import { ItemValue } from "itemvalue";
11898
12119
  import { MultiSelectListModel } from "multiSelectListModel";
11899
12120
  import { Question } from "question";
11900
12121
  export class DropdownMultiSelectListModel extends DropdownListModel {
@@ -11905,7 +12126,7 @@ declare module "dropdownMultiSelectListModel" {
11905
12126
  private syncFilterStringPlaceholder;
11906
12127
  private getSelectedActions;
11907
12128
  protected getFocusFirstInputSelector(): string;
11908
- protected createListModel(): MultiSelectListModel;
12129
+ protected createListModel(): MultiSelectListModel<ItemValue>;
11909
12130
  previousValue: any;
11910
12131
  doneButtonCaption: string;
11911
12132
  private get shouldResetAfterCancel();
@@ -11927,6 +12148,7 @@ declare module "question_tagbox" {
11927
12148
  import { PopupModel } from "popup";
11928
12149
  import { DropdownMultiSelectListModel } from "dropdownMultiSelectListModel";
11929
12150
  import { EventBase } from "base";
12151
+ import { ItemValue } from "itemvalue";
11930
12152
  /**
11931
12153
  * A Model for a tagbox question
11932
12154
  *
@@ -11934,6 +12156,7 @@ declare module "question_tagbox" {
11934
12156
  */
11935
12157
  export class QuestionTagboxModel extends QuestionCheckboxModel {
11936
12158
  dropdownListModel: DropdownMultiSelectListModel;
12159
+ private itemDisplayNameMap;
11937
12160
  constructor(name: string);
11938
12161
  protected getDefaultItemComponent(): string;
11939
12162
  get readOnlyText(): any;
@@ -11981,7 +12204,10 @@ declare module "question_tagbox" {
11981
12204
  getControlClass(): string;
11982
12205
  onOpened: EventBase<QuestionTagboxModel>;
11983
12206
  onOpenedCallBack(): void;
12207
+ protected hasUnknownValue(val: any, includeOther: boolean, isFilteredChoices: boolean, checkEmptyValue: boolean): boolean;
11984
12208
  protected onVisibleChoicesChanged(): void;
12209
+ protected validateItemValues(itemValues: Array<ItemValue>): Array<ItemValue>;
12210
+ updateItemDisplayNameMap(): void;
11985
12211
  protected getFirstInputElementId(): string;
11986
12212
  getInputId(): string;
11987
12213
  }
@@ -12508,7 +12734,9 @@ declare module "question_rating" {
12508
12734
  itemValue: ItemValue;
12509
12735
  private locString;
12510
12736
  get value(): number;
12737
+ highlight: "none" | "highlighted" | "unhighlighted";
12511
12738
  get locText(): LocalizableString;
12739
+ get text(): string;
12512
12740
  constructor(itemValue: ItemValue, locString?: LocalizableString);
12513
12741
  }
12514
12742
  /**
@@ -12633,10 +12861,16 @@ declare module "question_rating" {
12633
12861
  * - `"auto"` (default) - Selects between the `"buttons"` and `"dropdown"` modes based on the available width. When the width is insufficient to display buttons, the question displays a dropdown.
12634
12862
  */
12635
12863
  displayMode: "dropdown" | "buttons" | "auto";
12864
+ rateType: "numbers" | "labels" | "stars" | "smileys";
12865
+ smileysColorMode: "monochrome" | "colored";
12866
+ get isStar(): boolean;
12867
+ get itemComponentName(): "sv-rating-item-star" | "sv-rating-item";
12636
12868
  protected valueToData(val: any): any;
12637
12869
  setValueFromClick(value: any): void;
12870
+ onItemMouseIn(item: RenderedRatingItem): void;
12871
+ onItemMouseOut(item: RenderedRatingItem): void;
12638
12872
  get ratingRootCss(): string;
12639
- getItemClass(item: ItemValue): string;
12873
+ getItemClass(item: ItemValue, highlight?: "none" | "highlighted" | "unhighlighted"): string;
12640
12874
  getControlClass(): string;
12641
12875
  get placeholder(): string;
12642
12876
  set placeholder(val: string);
@@ -12905,6 +13139,13 @@ declare module "question_signaturepad" {
12905
13139
  endLoadingFromJson(): void;
12906
13140
  }
12907
13141
  }
13142
+ declare module "surveyToc" {
13143
+ import { Action } from "actions/action";
13144
+ import { ListModel } from "list";
13145
+ import { SurveyModel } from "survey";
13146
+ export function tryNavigateToPage(survey: SurveyModel, index: number): boolean;
13147
+ export function createTOCListModel(survey: SurveyModel): ListModel<Action>;
13148
+ }
12908
13149
  declare module "surveyProgress" {
12909
13150
  export class SurveyProgressModel {
12910
13151
  static getProgressTextInBarCss(css: any): string;
@@ -13379,8 +13620,11 @@ declare module "popup-dropdown-view-model" {
13379
13620
  export class PopupDropdownViewModel extends PopupBaseViewModel {
13380
13621
  targetElement?: HTMLElement;
13381
13622
  private scrollEventCallBack;
13623
+ private static readonly tabletSizeBreakpoint;
13624
+ private calculateIsTablet;
13382
13625
  private resizeEventCallback;
13383
13626
  private clientY;
13627
+ private isTablet;
13384
13628
  private touchStartEventCallback;
13385
13629
  private touchMoveEventCallback;
13386
13630
  private _updatePosition;
@@ -13449,8 +13693,8 @@ declare module "question_buttongroup" {
13449
13693
  index: number;
13450
13694
  constructor(question: QuestionButtonGroupModel, item: ItemValue, index: number);
13451
13695
  get value(): any;
13452
- get iconName(): any;
13453
- get iconSize(): any;
13696
+ get iconName(): string;
13697
+ get iconSize(): number;
13454
13698
  get caption(): LocalizableString;
13455
13699
  get showCaption(): any;
13456
13700
  get isRequired(): boolean;
@@ -13531,7 +13775,7 @@ declare module "entries/chunks/model" {
13531
13775
  export { AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner } from "validator";
13532
13776
  export { ItemValue } from "itemvalue";
13533
13777
  export { Base, Event, EventBase, ArrayChanges, ComputedUpdater } from "base";
13534
- export { ISurvey, ISurveyElement, IElement, IQuestion, IPage, IPanel, ISurveyData, ITitleOwner } from "base-interfaces";
13778
+ export { ISurvey, ISurveyElement, IElement, IQuestion, IPage, IPanel, ISurveyData, ITitleOwner, ISurveyLayoutElement } from "base-interfaces";
13535
13779
  export { SurveyError } from "survey-error";
13536
13780
  export { SurveyElementCore, SurveyElement, DragTypeOverMeEnum } from "survey-element";
13537
13781
  export { CalculatedValue } from "calculatedValue";
@@ -13582,6 +13826,7 @@ declare module "entries/chunks/model" {
13582
13826
  export { QuestionPanelDynamicModel, QuestionPanelDynamicItem } from "question_paneldynamic";
13583
13827
  export { SurveyTimer } from "surveytimer";
13584
13828
  export { SurveyTimerModel } from "surveyTimerModel";
13829
+ export * from "surveyToc";
13585
13830
  export { SurveyProgressModel } from "surveyProgress";
13586
13831
  export { SurveyProgressButtonsModel } from "surveyProgressButtons";
13587
13832
  export { SurveyModel } from "survey";
@@ -13617,6 +13862,7 @@ declare module "defaultCss/cssstandard" {
13617
13862
  root: string;
13618
13863
  container: string;
13619
13864
  header: string;
13865
+ bodyContainer: string;
13620
13866
  body: string;
13621
13867
  bodyEmpty: string;
13622
13868
  footer: string;
@@ -13984,6 +14230,7 @@ declare module "defaultCss/cssmodern" {
13984
14230
  container: string;
13985
14231
  header: string;
13986
14232
  headerClose: string;
14233
+ bodyContainer: string;
13987
14234
  body: string;
13988
14235
  bodyEmpty: string;
13989
14236
  footer: string;
@@ -19992,7 +20239,7 @@ declare module "react/reacttimerpanel" {
19992
20239
  protected get timerModel(): SurveyTimerModel;
19993
20240
  private readonly circleLength;
19994
20241
  private get progress();
19995
- render(): JSX.Element;
20242
+ render(): JSX.Element | null;
19996
20243
  }
19997
20244
  }
19998
20245
  declare module "react/components/brand-info" {
@@ -20013,6 +20260,12 @@ declare module "react/components/notifier" {
20013
20260
  renderElement(): JSX.Element | null;
20014
20261
  }
20015
20262
  }
20263
+ declare module "react/components/components-container" {
20264
+ import React from "react";
20265
+ export class ComponentsContainer extends React.Component<any, any> {
20266
+ render(): JSX.Element | null;
20267
+ }
20268
+ }
20016
20269
  declare module "react/reactSurvey" {
20017
20270
  import { Base, Question, PageModel, SurveyError, SurveyModel, IAttachKey2clickOptions } from "entries/core";
20018
20271
  import { ISurveyCreator } from "react/reactquestion";
@@ -20042,10 +20295,7 @@ declare module "react/reactSurvey" {
20042
20295
  protected renderCompletedBefore(): JSX.Element;
20043
20296
  protected renderLoading(): JSX.Element;
20044
20297
  protected renderSurvey(): JSX.Element;
20045
- protected renderTimerPanel(location: string): JSX.Element;
20046
20298
  protected renderPage(page: PageModel): JSX.Element;
20047
- protected renderProgress(isTop: boolean): JSX.Element | null;
20048
- protected renderNavigation(navPosition: string): JSX.Element | null;
20049
20299
  protected renderEmptySurvey(): JSX.Element;
20050
20300
  protected createSurvey(newProps: any): void;
20051
20301
  private isModelJSONChanged;
@@ -20166,6 +20416,37 @@ declare module "react/reactquestion_ranking" {
20166
20416
  protected renderElement(): JSX.Element;
20167
20417
  }
20168
20418
  }
20419
+ declare module "react/components/rating/rating-item" {
20420
+ import { QuestionRatingModel, RenderedRatingItem } from "entries/core";
20421
+ import { SurveyElementBase } from "react/reactquestion_element";
20422
+ export interface IRatingItemProps {
20423
+ question: QuestionRatingModel;
20424
+ item: RenderedRatingItem;
20425
+ index: any;
20426
+ handleOnClick: any;
20427
+ isDisplayMode: boolean;
20428
+ }
20429
+ export class RatingItem extends SurveyElementBase<IRatingItemProps, any> {
20430
+ get question(): QuestionRatingModel;
20431
+ get item(): RenderedRatingItem;
20432
+ get index(): any;
20433
+ getStateElement(): RenderedRatingItem;
20434
+ render(): JSX.Element | null;
20435
+ componentDidMount(): void;
20436
+ }
20437
+ }
20438
+ declare module "react/components/rating/rating-item-star" {
20439
+ import { QuestionRatingModel, RenderedRatingItem } from "entries/core";
20440
+ import { SurveyElementBase } from "react/reactquestion_element";
20441
+ import { IRatingItemProps } from "react/components/rating/rating-item";
20442
+ export class RatingItemStar extends SurveyElementBase<IRatingItemProps, any> {
20443
+ get question(): QuestionRatingModel;
20444
+ get item(): RenderedRatingItem;
20445
+ get index(): any;
20446
+ getStateElement(): RenderedRatingItem;
20447
+ render(): JSX.Element | null;
20448
+ }
20449
+ }
20169
20450
  declare module "react/tagbox-filter" {
20170
20451
  import { DropdownMultiSelectListModel, QuestionTagboxModel } from "entries/core";
20171
20452
  import { SurveyElementBase } from "react/reactquestion_element";
@@ -20602,25 +20883,48 @@ declare module "react/reactSurveyProgressButtons" {
20602
20883
  componentWillUnmount(): void;
20603
20884
  }
20604
20885
  }
20605
- declare module "react/components/rating/rating-item" {
20606
- import { QuestionRatingModel, RenderedRatingItem } from "entries/core";
20886
+ declare module "react/components/list/list-item" {
20887
+ import { ListModel } from "entries/core";
20607
20888
  import { SurveyElementBase } from "react/reactquestion_element";
20608
- interface IRatingItemProps {
20609
- question: QuestionRatingModel;
20610
- data: RenderedRatingItem;
20611
- index: any;
20612
- handleOnClick: any;
20613
- isDisplayMode: boolean;
20889
+ interface IListItemProps {
20890
+ model: ListModel;
20891
+ item: any;
20614
20892
  }
20615
- export class RatingItem extends SurveyElementBase<IRatingItemProps, any> {
20616
- get question(): QuestionRatingModel;
20617
- get item(): RenderedRatingItem;
20618
- get index(): any;
20619
- getStateElement(): RenderedRatingItem;
20893
+ export class ListItem extends SurveyElementBase<IListItemProps, any> {
20894
+ get model(): ListModel;
20895
+ get item(): any;
20896
+ handleKeydown: (event: any) => void;
20897
+ getStateElement(): any;
20620
20898
  render(): JSX.Element | null;
20621
20899
  componentDidMount(): void;
20622
20900
  }
20623
20901
  }
20902
+ declare module "react/components/list/list" {
20903
+ import { ListModel } from "entries/core";
20904
+ import { SurveyElementBase } from "react/reactquestion_element";
20905
+ interface IListProps {
20906
+ model: ListModel;
20907
+ }
20908
+ export class List extends SurveyElementBase<IListProps, any> {
20909
+ private listContainerRef;
20910
+ constructor(props: any);
20911
+ get model(): ListModel;
20912
+ handleKeydown: (event: any) => void;
20913
+ handleMouseMove: (event: any) => void;
20914
+ getStateElement(): ListModel<import("survey-core").Action>;
20915
+ componentDidMount(): void;
20916
+ renderElement(): JSX.Element;
20917
+ renderItems(): JSX.Element[];
20918
+ searchElementContent(): JSX.Element;
20919
+ emptyContent(): JSX.Element;
20920
+ }
20921
+ }
20922
+ declare module "react/reactSurveyProgressToc" {
20923
+ import { SurveyNavigationBase } from "react/reactSurveyNavigationBase";
20924
+ export class SurveyProgressToc extends SurveyNavigationBase {
20925
+ render(): JSX.Element;
20926
+ }
20927
+ }
20624
20928
  declare module "react/reactquestion_rating" {
20625
20929
  import { SurveyQuestionElementBase } from "react/reactquestion_element";
20626
20930
  import { QuestionRatingModel } from "entries/core";
@@ -20628,6 +20932,7 @@ declare module "react/reactquestion_rating" {
20628
20932
  constructor(props: any);
20629
20933
  protected get question(): QuestionRatingModel;
20630
20934
  handleOnClick(event: any): void;
20935
+ protected renderItem(item: any, index: Number): JSX.Element;
20631
20936
  protected renderElement(): JSX.Element;
20632
20937
  }
20633
20938
  }
@@ -20754,42 +21059,6 @@ declare module "react/reactquestion_custom" {
20754
21059
  protected renderElement(): JSX.Element;
20755
21060
  }
20756
21061
  }
20757
- declare module "react/components/list/list-item" {
20758
- import { ListModel } from "entries/core";
20759
- import { SurveyElementBase } from "react/reactquestion_element";
20760
- interface IListItemProps {
20761
- model: ListModel;
20762
- item: any;
20763
- }
20764
- export class ListItem extends SurveyElementBase<IListItemProps, any> {
20765
- get model(): ListModel;
20766
- get item(): any;
20767
- handleKeydown: (event: any) => void;
20768
- getStateElement(): any;
20769
- render(): JSX.Element | null;
20770
- componentDidMount(): void;
20771
- }
20772
- }
20773
- declare module "react/components/list/list" {
20774
- import { ListModel } from "entries/core";
20775
- import { SurveyElementBase } from "react/reactquestion_element";
20776
- interface IListProps {
20777
- model: ListModel;
20778
- }
20779
- export class List extends SurveyElementBase<IListProps, any> {
20780
- private listContainerRef;
20781
- constructor(props: any);
20782
- get model(): ListModel;
20783
- handleKeydown: (event: any) => void;
20784
- handleMouseMove: (event: any) => void;
20785
- getStateElement(): ListModel;
20786
- componentDidMount(): void;
20787
- renderElement(): JSX.Element;
20788
- renderItems(): JSX.Element[];
20789
- searchElementContent(): JSX.Element;
20790
- emptyContent(): JSX.Element;
20791
- }
20792
- }
20793
21062
  declare module "react/components/survey-header/logo-image" {
20794
21063
  import React from "react";
20795
21064
  import { SurveyModel } from "entries/core";
@@ -20867,6 +21136,8 @@ declare module "entries/react-ui-model" {
20867
21136
  export { SurveyQuestionCommentItem, SurveyQuestionComment, } from "react/reactquestion_comment";
20868
21137
  export { SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, } from "react/reactquestion_checkbox";
20869
21138
  export { SurveyQuestionRanking, SurveyQuestionRankingItem, } from "react/reactquestion_ranking";
21139
+ export { RatingItem } from "react/components/rating/rating-item";
21140
+ export { RatingItemStar } from "react/components/rating/rating-item-star";
20870
21141
  export { TagboxFilterString } from "react/tagbox-filter";
20871
21142
  export { SurveyQuestionOptionItem } from "react/dropdown-item";
20872
21143
  export { SurveyQuestionDropdownBase } from "react/dropdown-base";
@@ -20890,6 +21161,7 @@ declare module "entries/react-ui-model" {
20890
21161
  export { SurveyQuestionPanelDynamic } from "react/reactquestion_paneldynamic";
20891
21162
  export { SurveyProgress } from "react/reactSurveyProgress";
20892
21163
  export { SurveyProgressButtons } from "react/reactSurveyProgressButtons";
21164
+ export { SurveyProgressToc } from "react/reactSurveyProgressToc";
20893
21165
  export { SurveyQuestionRating } from "react/reactquestion_rating";
20894
21166
  export { SurveyQuestionRatingDropdown } from "react/rating-dropdown";
20895
21167
  export { SurveyQuestionExpression } from "react/reactquestion_expression";
@@ -20921,6 +21193,7 @@ declare module "entries/react-ui-model" {
20921
21193
  export { MatrixRow } from "react/components/matrix/row";
20922
21194
  export { Skeleton } from "react/components/skeleton";
20923
21195
  export { NotifierComponent } from "react/components/notifier";
21196
+ export { ComponentsContainer } from "react/components/components-container";
20924
21197
  export { CharacterCounterComponent } from "react/components/character-counter";
20925
21198
  export { SurveyLocStringViewer } from "react/string-viewer";
20926
21199
  export { SurveyLocStringEditor } from "react/string-editor";