survey-react 1.9.75 → 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,183 +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
- * Disable the question while choices are getting from the web service
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
+ *
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.
176
+ */
177
+ tagboxCloseOnSelect: boolean;
178
+ /**
179
+ * Disables the question while choices are being loaded from a web service.
180
+ *
181
+ * Default value: `false`
182
+ * @see settings.useCachingForChoicesRestful
104
183
  */
105
184
  disableOnGettingChoicesFromWeb: boolean;
106
185
  /**
107
- * 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
108
190
  */
109
191
  serializeLocalizableStringAsObject: boolean;
110
192
  /**
111
- * 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`
112
196
  */
113
197
  allowShowEmptyTitleInDesignMode: boolean;
114
198
  /**
115
- * 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`
116
202
  */
117
203
  allowShowEmptyDescriptionInDesignMode: boolean;
118
204
  /**
119
- * 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
120
211
  */
121
212
  executeCompleteTriggerOnValueChanged: boolean;
122
213
  /**
123
- * 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
124
218
  */
125
219
  changeNavigationButtonsOnCompleteTrigger: boolean;
126
220
  /**
127
- * 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`
128
226
  */
129
227
  executeSkipTriggerOnValueChanged: boolean;
130
228
  /**
131
- * Specifies how the input field of [Comment](https://surveyjs.io/Documentation/Library?id=questioncommentmodel) questions is rendered in the read-only mode.
132
- * Available values:
133
- * "textarea" (default) - A 'textarea' element is used to render a Comment question's input field.
134
- * "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.
135
235
  */
136
236
  readOnlyCommentRenderMode: string;
137
237
  /**
138
- * Specifies how the input field of [Text](https://surveyjs.io/Documentation/Library?id=questiontextmodel) questions is rendered in the read-only mode.
139
- * Available values:
140
- * "input" (default) - An 'input' element is used to render a Text question's input field.
141
- * "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.
142
244
  */
143
245
  readOnlyTextRenderMode: string;
144
246
  /**
145
- * Override this function, set your function, if you want to show your own dialog confirm window instead of standard browser window.
146
- * @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.
147
249
  */
148
250
  confirmActionFunc: (message: string) => boolean;
149
251
  /**
150
- * 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).
151
257
  */
152
258
  minWidth: string;
153
259
  /**
154
- * 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).
155
265
  */
156
266
  maxWidth: string;
157
267
  /**
158
- * 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
159
271
  */
160
272
  maximumConditionRunCountOnValueChanged: number;
161
273
  /**
162
- * By default visibleIndex for question with titleLocation = "hidden" is -1, and survey doesn't count these questions when set questions numbers.
163
- * 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`
164
277
  */
165
278
  setQuestionVisibleIndexForHiddenTitle: boolean;
166
279
  /**
167
- * By default visibleIndex for question with hideNumber = true 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 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`
169
283
  */
170
284
  setQuestionVisibleIndexForHiddenNumber: boolean;
171
285
  /**
172
- * By default all rows are rendered no matters whwther they are visible.
173
- * Set it true, and survey markup rows will be rendered only if they are visible in viewport.
174
- * 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.
175
291
  */
176
292
  lazyRowsRendering: boolean;
177
293
  lazyRowsRenderingStartRow: number;
178
294
  /**
179
- * 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.
180
301
  */
181
302
  notifications: {
182
303
  lifetime: number;
183
304
  };
184
305
  /**
185
- * By default checkbox and radiogroup items are ordered in rows.
186
- * 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.
187
312
  */
188
313
  showItemsInOrder: string;
189
314
  /**
190
315
  * A value to save in survey results when respondents select the None choice item.
316
+ *
317
+ * Default value: `"none"`
191
318
  */
192
319
  noneItemValue: string;
193
320
  /**
194
- * 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.
195
322
  */
196
323
  supportedValidators: {
197
324
  question: string[];
@@ -201,21 +328,26 @@ declare module "settings" {
201
328
  imagepicker: string[];
202
329
  };
203
330
  /**
204
- * 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"`.
205
332
  */
206
333
  minDate: string;
207
334
  /**
208
- * 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"`.
209
336
  */
210
337
  maxDate: string;
211
338
  showModal: (componentName: string, data: any, onApply: () => boolean, onCancel?: () => void, cssClass?: string, title?: string, displayMode?: "popup" | "overlay") => any;
212
339
  supportCreatorV2: boolean;
213
340
  showDefaultItemsInCreatorV2: boolean;
214
341
  /**
215
- * Specifies a list of custom icons.
216
- * Use this property to replace SurveyJS default icons (displayed in UI elements of SurveyJS Library or Creator) with your custom icons.
217
- * 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.
218
- * 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).
219
351
  */
220
352
  customIcons: {};
221
353
  /**
@@ -1248,7 +1380,7 @@ declare module "utils/utils" {
1248
1380
  }
1249
1381
  declare module "actions/container" {
1250
1382
  import { Base } from "base";
1251
- import { IAction, Action } from "actions/action";
1383
+ import { IAction, Action, BaseAction } from "actions/action";
1252
1384
  import { ILocalizableOwner, LocalizableString } from "localizablestring";
1253
1385
  export let defaultActionBarCss: {
1254
1386
  root: string;
@@ -1261,7 +1393,7 @@ declare module "actions/container" {
1261
1393
  itemTitle: string;
1262
1394
  itemTitleWithIcon: string;
1263
1395
  };
1264
- export class ActionContainer<T extends Action = Action> extends Base implements ILocalizableOwner {
1396
+ export class ActionContainer<T extends BaseAction = Action> extends Base implements ILocalizableOwner {
1265
1397
  getMarkdownHtml(text: string, name: string): string;
1266
1398
  getRenderer(name: string): string;
1267
1399
  getRendererContext(locStr: LocalizableString): any;
@@ -1289,7 +1421,7 @@ declare module "actions/container" {
1289
1421
  set cssClasses(val: any);
1290
1422
  get cssClasses(): any;
1291
1423
  private createAction;
1292
- addAction(val: IAction, sortByVisibleIndex?: boolean): Action;
1424
+ addAction(val: IAction, sortByVisibleIndex?: boolean): T;
1293
1425
  private sortItems;
1294
1426
  setItems(items: Array<IAction>, sortByVisibleIndex?: boolean): void;
1295
1427
  initResponsivityManager(container: HTMLDivElement): void;
@@ -1309,7 +1441,7 @@ declare module "element-helper" {
1309
1441
  }
1310
1442
  declare module "list" {
1311
1443
  import { ActionContainer } from "actions/container";
1312
- import { Action, IAction } from "actions/action";
1444
+ import { Action, BaseAction, IAction } from "actions/action";
1313
1445
  export let defaultListCss: {
1314
1446
  root: string;
1315
1447
  item: string;
@@ -1336,8 +1468,8 @@ declare module "list" {
1336
1468
  selectedItem?: IAction;
1337
1469
  onFilterStringChangedCallback?: (text: string) => void;
1338
1470
  }
1339
- export class ListModel extends ActionContainer {
1340
- onSelectionChanged: (item: Action, ...params: any[]) => void;
1471
+ export class ListModel<T extends BaseAction = Action> extends ActionContainer<T> {
1472
+ onSelectionChanged: (item: T, ...params: any[]) => void;
1341
1473
  allowSelection: boolean;
1342
1474
  private onFilterStringChangedCallback?;
1343
1475
  private listContainerHtmlElement;
@@ -1346,7 +1478,7 @@ declare module "list" {
1346
1478
  showFilter: boolean;
1347
1479
  isExpanded: boolean;
1348
1480
  selectedItem: IAction;
1349
- focusedItem: Action;
1481
+ focusedItem: T;
1350
1482
  filterString: string;
1351
1483
  hasVerticalScroller: boolean;
1352
1484
  isAllDataLoaded: boolean;
@@ -1354,12 +1486,13 @@ declare module "list" {
1354
1486
  static INDENT: number;
1355
1487
  static MINELEMENTCOUNT: number;
1356
1488
  scrollHandler: (e?: any) => void;
1489
+ areSameItemsCallback: (item1: IAction, item2: IAction) => boolean;
1357
1490
  private hasText;
1358
- isItemVisible(item: Action): boolean;
1359
- get visibleItems(): Array<Action>;
1491
+ isItemVisible(item: T): boolean;
1492
+ get visibleItems(): Array<T>;
1360
1493
  private get shouldProcessFilter();
1361
1494
  private onFilterStringChanged;
1362
- 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);
1363
1496
  setItems(items: Array<IAction>, sortByVisibleIndex?: boolean): void;
1364
1497
  protected onSet(): void;
1365
1498
  protected getDefaultCssClasses(): {
@@ -1381,18 +1514,18 @@ declare module "list" {
1381
1514
  emptyContainer: string;
1382
1515
  emptyText: string;
1383
1516
  };
1384
- protected updateItemActiveState(): void;
1385
- onItemClick: (itemValue: Action) => void;
1386
- isItemDisabled: (itemValue: Action) => boolean;
1387
- isItemSelected: (itemValue: Action) => boolean;
1388
- isItemFocused: (itemValue: Action) => boolean;
1389
- 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;
1390
1523
  getItemIndent: (itemValue: any) => string;
1391
1524
  get filterStringPlaceholder(): string;
1392
1525
  get emptyMessage(): string;
1393
1526
  get scrollableContainer(): HTMLElement;
1394
1527
  get loadingText(): string;
1395
- get loadingIndicator(): Action;
1528
+ get loadingIndicator(): T;
1396
1529
  goToItems(event: KeyboardEvent): void;
1397
1530
  onMouseMove(event: MouseEvent): void;
1398
1531
  onKeyDown(event: KeyboardEvent): void;
@@ -1407,7 +1540,7 @@ declare module "list" {
1407
1540
  focusPrevVisibleItem(): void;
1408
1541
  selectFocusedItem(): void;
1409
1542
  initListContainerHtmlElement(htmlElement: HTMLElement): void;
1410
- onLastItemRended(item: Action): void;
1543
+ onLastItemRended(item: T): void;
1411
1544
  scrollToFocusedItem(): void;
1412
1545
  addScrollEventListener(handler: (e?: any) => void): void;
1413
1546
  removeScrollEventListener(): void;
@@ -1631,36 +1764,20 @@ declare module "actions/action" {
1631
1764
  }
1632
1765
  export function createDropdownActionModel(actionOptions: IAction, dropdownOptions: IActionDropdownPopupOptions, locOwner?: ILocalizableOwner): Action;
1633
1766
  export function createDropdownActionModelAdvanced(actionOptions: IAction, listOptions: IListModel, popupOptions?: IPopupOptionsBase, locOwner?: ILocalizableOwner): Action;
1634
- export class Action extends Base implements IAction, ILocalizableOwner {
1635
- innerItem: IAction;
1636
- private locTitleValue;
1637
- updateCallback: () => void;
1638
- private raiseUpdate;
1639
- constructor(innerItem: IAction);
1640
- private createLocTitle;
1641
- owner: ILocalizableOwner;
1642
- location?: string;
1643
- id: string;
1644
- iconName: string;
1645
- iconSize: number;
1646
- visible: boolean;
1767
+ export abstract class BaseAction extends Base implements IAction {
1768
+ private cssClassesValue;
1647
1769
  tooltip: string;
1648
- locTooltipName?: string;
1649
- enabled: boolean;
1650
1770
  showTitle: boolean;
1651
- action: (context?: any) => void;
1652
- css: string;
1653
1771
  innerCss: string;
1772
+ active: boolean;
1773
+ pressed: boolean;
1654
1774
  data: any;
1655
1775
  popupModel: any;
1656
1776
  needSeparator: boolean;
1657
- active: boolean;
1658
- pressed: boolean;
1659
1777
  template: string;
1660
- component: string;
1661
- items: any;
1662
- visibleIndex: number;
1663
1778
  mode: actionModeType;
1779
+ owner: ILocalizableOwner;
1780
+ visibleIndex: number;
1664
1781
  disableTabStop: boolean;
1665
1782
  disableShrink: boolean;
1666
1783
  disableHide: boolean;
@@ -1668,33 +1785,81 @@ declare module "actions/action" {
1668
1785
  ariaChecked: boolean;
1669
1786
  ariaExpanded: boolean;
1670
1787
  ariaRole: string;
1671
- 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);
1672
1800
  get locTitle(): LocalizableString;
1673
1801
  set locTitle(val: LocalizableString);
1674
- get locTitleName(): string;
1675
- set locTitleName(val: string);
1676
- locStrsChanged(): void;
1677
- private locStrChangedInPopupModel;
1678
- private locTitleChanged;
1679
- private locTooltipChanged;
1680
- private cssClassesValue;
1802
+ get title(): string;
1803
+ set title(val: string);
1681
1804
  set cssClasses(val: any);
1682
1805
  get cssClasses(): any;
1683
- get disabled(): boolean;
1684
- get hasTitle(): boolean;
1685
1806
  get isVisible(): boolean;
1807
+ get disabled(): boolean;
1686
1808
  get canShrink(): boolean;
1687
- getActionRootCss(): string;
1809
+ get hasTitle(): boolean;
1688
1810
  getActionBarItemTitleCss(): string;
1689
1811
  getActionBarItemCss(): string;
1812
+ getActionRootCss(): string;
1690
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;
1691
1852
  getLocale(): string;
1692
1853
  getMarkdownHtml(text: string, name: string): string;
1693
1854
  getProcessedText(text: string): string;
1694
1855
  getRenderer(name: string): string;
1695
1856
  getRendererContext(locStr: LocalizableString): any;
1696
- minDimension: number;
1697
- 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;
1698
1863
  }
1699
1864
  export class ActionDropdownViewModel {
1700
1865
  private item;
@@ -2163,6 +2328,7 @@ declare module "survey-element" {
2163
2328
  */
2164
2329
  get rightIndent(): number;
2165
2330
  set rightIndent(val: number);
2331
+ getRootStyle(): object;
2166
2332
  get paddingLeft(): string;
2167
2333
  set paddingLeft(val: string);
2168
2334
  get paddingRight(): string;
@@ -2288,6 +2454,7 @@ declare module "defaultCss/defaultV2Css" {
2288
2454
  rootReadOnly: string;
2289
2455
  container: string;
2290
2456
  header: string;
2457
+ bodyContainer: string;
2291
2458
  body: string;
2292
2459
  bodyWithTimer: string;
2293
2460
  clockTimerRoot: string;
@@ -2702,6 +2869,13 @@ declare module "defaultCss/defaultV2Css" {
2702
2869
  itemOnError: string;
2703
2870
  itemHover: string;
2704
2871
  selected: string;
2872
+ itemStar: string;
2873
+ itemStarOnError: string;
2874
+ itemStarHover: string;
2875
+ itemStarSelected: string;
2876
+ itemStarDisabled: string;
2877
+ itemStarHighlighted: string;
2878
+ itemStarUnhighlighted: string;
2705
2879
  minText: string;
2706
2880
  itemText: string;
2707
2881
  maxText: string;
@@ -4424,7 +4598,7 @@ declare module "notifier" {
4424
4598
  declare module "survey" {
4425
4599
  import { JsonError } from "jsonobject";
4426
4600
  import { Base, EventBase } from "base";
4427
- 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";
4428
4602
  import { SurveyElementCore } from "survey-element";
4429
4603
  import { ISurveyTriggerOwner, SurveyTrigger, Trigger } from "trigger";
4430
4604
  import { CalculatedValue } from "calculatedValue";
@@ -5624,6 +5798,7 @@ declare module "survey" {
5624
5798
  get cssNavigationNext(): string;
5625
5799
  private get cssSurveyNavigationButton();
5626
5800
  get bodyCss(): string;
5801
+ get bodyContainerCss(): string;
5627
5802
  completedCss: string;
5628
5803
  containerCss: string;
5629
5804
  private getNavigationCss;
@@ -5722,6 +5897,25 @@ declare module "survey" {
5722
5897
  */
5723
5898
  get showPrevButton(): boolean;
5724
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");
5725
5919
  /**
5726
5920
  * Gets or sets whether the Survey displays survey title in its pages. Set it to `false` to hide a survey title.
5727
5921
  * @see title
@@ -6240,6 +6434,9 @@ declare module "survey" {
6240
6434
  */
6241
6435
  mergeData(data: any): void;
6242
6436
  setDataCore(data: any): void;
6437
+ getStructuredData(includePages?: boolean, level?: number): any;
6438
+ setStructuredData(data: any, doMerge?: boolean): void;
6439
+ private collectDataFromPanel;
6243
6440
  private onEditingObjPropertyChanged;
6244
6441
  get editingObj(): Base;
6245
6442
  set editingObj(val: Base);
@@ -7268,6 +7465,10 @@ declare module "survey" {
7268
7465
  searchText(text: string): Array<IFindElement>;
7269
7466
  skeletonComponentName: string;
7270
7467
  getSkeletonComponentName(element: ISurveyElement): string;
7468
+ private layoutElements;
7469
+ addLayoutElement(layoutElement: ISurveyLayoutElement): ISurveyLayoutElement;
7470
+ removeLayoutElement(layoutElementId: string): ISurveyLayoutElement;
7471
+ getContainerContent(container: LayoutElementContainer): any[];
7271
7472
  /**
7272
7473
  * Use this method to dispose survey model properly.
7273
7474
  */
@@ -7559,6 +7760,7 @@ declare module "panel" {
7559
7760
  * @see getDisplayValue
7560
7761
  */
7561
7762
  getValue(): any;
7763
+ collectValues(data: any, level: number): boolean;
7562
7764
  /**
7563
7765
  * Returns a JSON object with display texts that correspond to question values nested in the panel/page.
7564
7766
  * @param keysAsText Pass `true` if not only values in the object should be display texts, but also keys. Default value: `false`.
@@ -9901,7 +10103,7 @@ declare module "question_matrixdropdownbase" {
9901
10103
  * - `"expression"`
9902
10104
  * - `"rating"`
9903
10105
  *
9904
- * 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))
9905
10107
  */
9906
10108
  get cellType(): string;
9907
10109
  set cellType(val: string);
@@ -10363,18 +10565,26 @@ declare module "base-interfaces" {
10363
10565
  element: Base;
10364
10566
  str: LocalizableString;
10365
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
+ }
10366
10576
  }
10367
10577
  declare module "itemvalue" {
10368
10578
  import { ILocalizableOwner, LocalizableString } from "localizablestring";
10369
10579
  import { ConditionRunner } from "conditions";
10370
- import { Base } from "base";
10371
10580
  import { IShortcutText, ISurvey } from "base-interfaces";
10581
+ import { BaseAction } from "actions/action";
10372
10582
  /**
10373
10583
  * Array of ItemValue is used in checkox, dropdown and radiogroup choices, matrix columns and rows.
10374
10584
  * It has two main properties: value and text. If text is empty, value is used for displaying.
10375
10585
  * The text property is localizable and support markdown.
10376
10586
  */
10377
- export class ItemValue extends Base implements ILocalizableOwner, IShortcutText {
10587
+ export class ItemValue extends BaseAction implements ILocalizableOwner, IShortcutText {
10378
10588
  protected typeName: string;
10379
10589
  [index: string]: any;
10380
10590
  getMarkdownHtml(text: string, name: string): string;
@@ -10395,6 +10605,7 @@ declare module "itemvalue" {
10395
10605
  static runEnabledConditionsForItems(items: Array<ItemValue>, runner: ConditionRunner, values: any, properties: any, onItemCallBack?: (item: ItemValue, val: boolean) => boolean): boolean;
10396
10606
  private static runConditionsForItemsCore;
10397
10607
  ownerPropertyName: string;
10608
+ private _visible;
10398
10609
  private locTextValue;
10399
10610
  private visibleConditionRunner;
10400
10611
  private enableConditionRunner;
@@ -10436,6 +10647,19 @@ declare module "itemvalue" {
10436
10647
  private getVisibleConditionRunner;
10437
10648
  private getEnableConditionRunner;
10438
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;
10439
10663
  }
10440
10664
  }
10441
10665
  declare module "base" {
@@ -10945,8 +11169,9 @@ declare module "question_matrixdropdown" {
10945
11169
  }
10946
11170
  }
10947
11171
  declare module "dropdownListModel" {
10948
- import { Action, IAction } from "actions/action";
11172
+ import { IAction } from "actions/action";
10949
11173
  import { Base } from "base";
11174
+ import { ItemValue } from "itemvalue";
10950
11175
  import { ListModel } from "list";
10951
11176
  import { PopupModel } from "popup";
10952
11177
  import { Question } from "question";
@@ -10962,10 +11187,9 @@ declare module "dropdownListModel" {
10962
11187
  protected getFocusFirstInputSelector(): string;
10963
11188
  private itemsSettings;
10964
11189
  private isRunningLoadQuestionChoices;
10965
- protected listModel: ListModel;
11190
+ protected listModel: ListModel<ItemValue>;
10966
11191
  protected popupCssClasses: string;
10967
11192
  private resetItemsSettings;
10968
- private updateListItems;
10969
11193
  private setItems;
10970
11194
  private updateQuestionChoices;
10971
11195
  private updatePopupFocusFirstInputSelector;
@@ -10973,9 +11197,9 @@ declare module "dropdownListModel" {
10973
11197
  private setFilterStringToListModel;
10974
11198
  protected popupRecalculatePosition(isResetHeight: boolean): void;
10975
11199
  protected onHidePopup(): void;
10976
- protected getAvailableItems(): Array<Action>;
10977
- protected createListModel(): ListModel;
10978
- protected updateAfterListModelCreated(model: ListModel): void;
11200
+ protected getAvailableItems(): Array<ItemValue>;
11201
+ protected createListModel(): ListModel<ItemValue>;
11202
+ protected updateAfterListModelCreated(model: ListModel<ItemValue>): void;
10979
11203
  updateCssClasses(popupCssClass: string, listCssClasses: any): void;
10980
11204
  protected resetFilterString(): void;
10981
11205
  protected onSetFilterString(): void;
@@ -10992,7 +11216,7 @@ declare module "dropdownListModel" {
10992
11216
  updateItems(): void;
10993
11217
  onClick(event: any): void;
10994
11218
  onClear(event: any): void;
10995
- getSelectedAction(): Action;
11219
+ getSelectedAction(): ItemValue;
10996
11220
  keyHandler(event: any): void;
10997
11221
  onScroll(event: Event): void;
10998
11222
  onBlur(event: any): void;
@@ -11110,6 +11334,7 @@ declare module "question_dropdown" {
11110
11334
  get popupModel(): PopupModel;
11111
11335
  onOpened: EventBase<QuestionDropdownModel>;
11112
11336
  onOpenedCallBack(): void;
11337
+ protected hasUnknownValue(val: any, includeOther: boolean, isFilteredChoices: boolean, checkEmptyValue: boolean): boolean;
11113
11338
  protected onVisibleChoicesChanged(): void;
11114
11339
  protected getFirstInputElementId(): string;
11115
11340
  getInputId(): string;
@@ -11761,7 +11986,7 @@ declare module "question_checkbox" {
11761
11986
  export class QuestionCheckboxModel extends QuestionCheckboxBase {
11762
11987
  private selectAllItemValue;
11763
11988
  private invisibleOldValues;
11764
- private initialSelectedItemValues;
11989
+ protected defaultSelectedItemValues: Array<ItemValue>;
11765
11990
  constructor(name: string);
11766
11991
  protected getDefaultItemComponent(): string;
11767
11992
  get ariaRole(): string;
@@ -11830,6 +12055,7 @@ declare module "question_checkbox" {
11830
12055
  */
11831
12056
  get selectedChoices(): Array<ItemValue>;
11832
12057
  get selectedItems(): Array<ItemValue>;
12058
+ protected validateItemValues(itemValues: Array<ItemValue>): Array<ItemValue>;
11833
12059
  protected onEnableItemCallBack(item: ItemValue): boolean;
11834
12060
  protected onAfterRunItemsEnableCondition(): void;
11835
12061
  private shouldCheckMaxSelectedChoices;
@@ -11871,16 +12097,16 @@ declare module "question_checkbox" {
11871
12097
  }
11872
12098
  }
11873
12099
  declare module "multiSelectListModel" {
11874
- import { Action, IAction } from "actions/action";
12100
+ import { Action, BaseAction, IAction } from "actions/action";
11875
12101
  import { ListModel } from "list";
11876
- export class MultiSelectListModel extends ListModel {
12102
+ export class MultiSelectListModel<T extends BaseAction = Action> extends ListModel<T> {
11877
12103
  selectedItems: Array<IAction>;
11878
12104
  hideSelectedItems: boolean;
11879
12105
  private updateItemState;
11880
- constructor(items: Array<IAction>, onSelectionChanged: (item: Action, status: string) => void, allowSelection: boolean, selectedItems?: Array<IAction>, onFilterStringChangedCallback?: (text: string) => void);
11881
- onItemClick: (item: Action) => void;
11882
- isItemDisabled: (itemValue: Action) => boolean;
11883
- 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;
11884
12110
  updateState(): void;
11885
12111
  setSelectedItems(newItems: Array<IAction>): void;
11886
12112
  selectFocusedItem(): void;
@@ -11889,6 +12115,7 @@ declare module "multiSelectListModel" {
11889
12115
  declare module "dropdownMultiSelectListModel" {
11890
12116
  import { IAction } from "actions/action";
11891
12117
  import { DropdownListModel } from "dropdownListModel";
12118
+ import { ItemValue } from "itemvalue";
11892
12119
  import { MultiSelectListModel } from "multiSelectListModel";
11893
12120
  import { Question } from "question";
11894
12121
  export class DropdownMultiSelectListModel extends DropdownListModel {
@@ -11899,7 +12126,7 @@ declare module "dropdownMultiSelectListModel" {
11899
12126
  private syncFilterStringPlaceholder;
11900
12127
  private getSelectedActions;
11901
12128
  protected getFocusFirstInputSelector(): string;
11902
- protected createListModel(): MultiSelectListModel;
12129
+ protected createListModel(): MultiSelectListModel<ItemValue>;
11903
12130
  previousValue: any;
11904
12131
  doneButtonCaption: string;
11905
12132
  private get shouldResetAfterCancel();
@@ -11921,6 +12148,7 @@ declare module "question_tagbox" {
11921
12148
  import { PopupModel } from "popup";
11922
12149
  import { DropdownMultiSelectListModel } from "dropdownMultiSelectListModel";
11923
12150
  import { EventBase } from "base";
12151
+ import { ItemValue } from "itemvalue";
11924
12152
  /**
11925
12153
  * A Model for a tagbox question
11926
12154
  *
@@ -11928,6 +12156,7 @@ declare module "question_tagbox" {
11928
12156
  */
11929
12157
  export class QuestionTagboxModel extends QuestionCheckboxModel {
11930
12158
  dropdownListModel: DropdownMultiSelectListModel;
12159
+ private itemDisplayNameMap;
11931
12160
  constructor(name: string);
11932
12161
  protected getDefaultItemComponent(): string;
11933
12162
  get readOnlyText(): any;
@@ -11956,6 +12185,10 @@ declare module "question_tagbox" {
11956
12185
  * @see SurveyModel.onChoicesLazyLoad
11957
12186
  */
11958
12187
  choicesLazyLoadPageSize: number;
12188
+ /**
12189
+ * Specifies whether to close the drop-down menu after a user selects a value.
12190
+ */
12191
+ closeOnSelect: number;
11959
12192
  /**
11960
12193
  * A text displayed in the input field when it doesn't have a value.
11961
12194
  */
@@ -11971,7 +12204,10 @@ declare module "question_tagbox" {
11971
12204
  getControlClass(): string;
11972
12205
  onOpened: EventBase<QuestionTagboxModel>;
11973
12206
  onOpenedCallBack(): void;
12207
+ protected hasUnknownValue(val: any, includeOther: boolean, isFilteredChoices: boolean, checkEmptyValue: boolean): boolean;
11974
12208
  protected onVisibleChoicesChanged(): void;
12209
+ protected validateItemValues(itemValues: Array<ItemValue>): Array<ItemValue>;
12210
+ updateItemDisplayNameMap(): void;
11975
12211
  protected getFirstInputElementId(): string;
11976
12212
  getInputId(): string;
11977
12213
  }
@@ -12498,7 +12734,9 @@ declare module "question_rating" {
12498
12734
  itemValue: ItemValue;
12499
12735
  private locString;
12500
12736
  get value(): number;
12737
+ highlight: "none" | "highlighted" | "unhighlighted";
12501
12738
  get locText(): LocalizableString;
12739
+ get text(): string;
12502
12740
  constructor(itemValue: ItemValue, locString?: LocalizableString);
12503
12741
  }
12504
12742
  /**
@@ -12623,10 +12861,16 @@ declare module "question_rating" {
12623
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.
12624
12862
  */
12625
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";
12626
12868
  protected valueToData(val: any): any;
12627
12869
  setValueFromClick(value: any): void;
12870
+ onItemMouseIn(item: RenderedRatingItem): void;
12871
+ onItemMouseOut(item: RenderedRatingItem): void;
12628
12872
  get ratingRootCss(): string;
12629
- getItemClass(item: ItemValue): string;
12873
+ getItemClass(item: ItemValue, highlight?: "none" | "highlighted" | "unhighlighted"): string;
12630
12874
  getControlClass(): string;
12631
12875
  get placeholder(): string;
12632
12876
  set placeholder(val: string);
@@ -12895,6 +13139,13 @@ declare module "question_signaturepad" {
12895
13139
  endLoadingFromJson(): void;
12896
13140
  }
12897
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
+ }
12898
13149
  declare module "surveyProgress" {
12899
13150
  export class SurveyProgressModel {
12900
13151
  static getProgressTextInBarCss(css: any): string;
@@ -13330,6 +13581,7 @@ declare module "popup-view-model" {
13330
13581
  protected getShowHeader(): boolean;
13331
13582
  protected getPopupHeaderTemplate(): string;
13332
13583
  protected createFooterActionBar(): void;
13584
+ protected resetDimensionsAndPositionStyleProperties(): void;
13333
13585
  private setupModel;
13334
13586
  private _model;
13335
13587
  get model(): PopupModel;
@@ -13368,8 +13620,11 @@ declare module "popup-dropdown-view-model" {
13368
13620
  export class PopupDropdownViewModel extends PopupBaseViewModel {
13369
13621
  targetElement?: HTMLElement;
13370
13622
  private scrollEventCallBack;
13623
+ private static readonly tabletSizeBreakpoint;
13624
+ private calculateIsTablet;
13371
13625
  private resizeEventCallback;
13372
13626
  private clientY;
13627
+ private isTablet;
13373
13628
  private touchStartEventCallback;
13374
13629
  private touchMoveEventCallback;
13375
13630
  private _updatePosition;
@@ -13438,8 +13693,8 @@ declare module "question_buttongroup" {
13438
13693
  index: number;
13439
13694
  constructor(question: QuestionButtonGroupModel, item: ItemValue, index: number);
13440
13695
  get value(): any;
13441
- get iconName(): any;
13442
- get iconSize(): any;
13696
+ get iconName(): string;
13697
+ get iconSize(): number;
13443
13698
  get caption(): LocalizableString;
13444
13699
  get showCaption(): any;
13445
13700
  get isRequired(): boolean;
@@ -13520,7 +13775,7 @@ declare module "entries/chunks/model" {
13520
13775
  export { AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner } from "validator";
13521
13776
  export { ItemValue } from "itemvalue";
13522
13777
  export { Base, Event, EventBase, ArrayChanges, ComputedUpdater } from "base";
13523
- 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";
13524
13779
  export { SurveyError } from "survey-error";
13525
13780
  export { SurveyElementCore, SurveyElement, DragTypeOverMeEnum } from "survey-element";
13526
13781
  export { CalculatedValue } from "calculatedValue";
@@ -13571,6 +13826,7 @@ declare module "entries/chunks/model" {
13571
13826
  export { QuestionPanelDynamicModel, QuestionPanelDynamicItem } from "question_paneldynamic";
13572
13827
  export { SurveyTimer } from "surveytimer";
13573
13828
  export { SurveyTimerModel } from "surveyTimerModel";
13829
+ export * from "surveyToc";
13574
13830
  export { SurveyProgressModel } from "surveyProgress";
13575
13831
  export { SurveyProgressButtonsModel } from "surveyProgressButtons";
13576
13832
  export { SurveyModel } from "survey";
@@ -13606,6 +13862,7 @@ declare module "defaultCss/cssstandard" {
13606
13862
  root: string;
13607
13863
  container: string;
13608
13864
  header: string;
13865
+ bodyContainer: string;
13609
13866
  body: string;
13610
13867
  bodyEmpty: string;
13611
13868
  footer: string;
@@ -13973,6 +14230,7 @@ declare module "defaultCss/cssmodern" {
13973
14230
  container: string;
13974
14231
  header: string;
13975
14232
  headerClose: string;
14233
+ bodyContainer: string;
13976
14234
  body: string;
13977
14235
  bodyEmpty: string;
13978
14236
  footer: string;
@@ -19981,7 +20239,7 @@ declare module "react/reacttimerpanel" {
19981
20239
  protected get timerModel(): SurveyTimerModel;
19982
20240
  private readonly circleLength;
19983
20241
  private get progress();
19984
- render(): JSX.Element;
20242
+ render(): JSX.Element | null;
19985
20243
  }
19986
20244
  }
19987
20245
  declare module "react/components/brand-info" {
@@ -20002,6 +20260,12 @@ declare module "react/components/notifier" {
20002
20260
  renderElement(): JSX.Element | null;
20003
20261
  }
20004
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
+ }
20005
20269
  declare module "react/reactSurvey" {
20006
20270
  import { Base, Question, PageModel, SurveyError, SurveyModel, IAttachKey2clickOptions } from "entries/core";
20007
20271
  import { ISurveyCreator } from "react/reactquestion";
@@ -20031,10 +20295,7 @@ declare module "react/reactSurvey" {
20031
20295
  protected renderCompletedBefore(): JSX.Element;
20032
20296
  protected renderLoading(): JSX.Element;
20033
20297
  protected renderSurvey(): JSX.Element;
20034
- protected renderTimerPanel(location: string): JSX.Element;
20035
20298
  protected renderPage(page: PageModel): JSX.Element;
20036
- protected renderProgress(isTop: boolean): JSX.Element | null;
20037
- protected renderNavigation(navPosition: string): JSX.Element | null;
20038
20299
  protected renderEmptySurvey(): JSX.Element;
20039
20300
  protected createSurvey(newProps: any): void;
20040
20301
  private isModelJSONChanged;
@@ -20155,6 +20416,37 @@ declare module "react/reactquestion_ranking" {
20155
20416
  protected renderElement(): JSX.Element;
20156
20417
  }
20157
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
+ }
20158
20450
  declare module "react/tagbox-filter" {
20159
20451
  import { DropdownMultiSelectListModel, QuestionTagboxModel } from "entries/core";
20160
20452
  import { SurveyElementBase } from "react/reactquestion_element";
@@ -20591,25 +20883,48 @@ declare module "react/reactSurveyProgressButtons" {
20591
20883
  componentWillUnmount(): void;
20592
20884
  }
20593
20885
  }
20594
- declare module "react/components/rating/rating-item" {
20595
- import { QuestionRatingModel, RenderedRatingItem } from "entries/core";
20886
+ declare module "react/components/list/list-item" {
20887
+ import { ListModel } from "entries/core";
20596
20888
  import { SurveyElementBase } from "react/reactquestion_element";
20597
- interface IRatingItemProps {
20598
- question: QuestionRatingModel;
20599
- data: RenderedRatingItem;
20600
- index: any;
20601
- handleOnClick: any;
20602
- isDisplayMode: boolean;
20889
+ interface IListItemProps {
20890
+ model: ListModel;
20891
+ item: any;
20603
20892
  }
20604
- export class RatingItem extends SurveyElementBase<IRatingItemProps, any> {
20605
- get question(): QuestionRatingModel;
20606
- get item(): RenderedRatingItem;
20607
- get index(): any;
20608
- 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;
20609
20898
  render(): JSX.Element | null;
20610
20899
  componentDidMount(): void;
20611
20900
  }
20612
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
+ }
20613
20928
  declare module "react/reactquestion_rating" {
20614
20929
  import { SurveyQuestionElementBase } from "react/reactquestion_element";
20615
20930
  import { QuestionRatingModel } from "entries/core";
@@ -20617,6 +20932,7 @@ declare module "react/reactquestion_rating" {
20617
20932
  constructor(props: any);
20618
20933
  protected get question(): QuestionRatingModel;
20619
20934
  handleOnClick(event: any): void;
20935
+ protected renderItem(item: any, index: Number): JSX.Element;
20620
20936
  protected renderElement(): JSX.Element;
20621
20937
  }
20622
20938
  }
@@ -20743,42 +21059,6 @@ declare module "react/reactquestion_custom" {
20743
21059
  protected renderElement(): JSX.Element;
20744
21060
  }
20745
21061
  }
20746
- declare module "react/components/list/list-item" {
20747
- import { ListModel } from "entries/core";
20748
- import { SurveyElementBase } from "react/reactquestion_element";
20749
- interface IListItemProps {
20750
- model: ListModel;
20751
- item: any;
20752
- }
20753
- export class ListItem extends SurveyElementBase<IListItemProps, any> {
20754
- get model(): ListModel;
20755
- get item(): any;
20756
- handleKeydown: (event: any) => void;
20757
- getStateElement(): any;
20758
- render(): JSX.Element | null;
20759
- componentDidMount(): void;
20760
- }
20761
- }
20762
- declare module "react/components/list/list" {
20763
- import { ListModel } from "entries/core";
20764
- import { SurveyElementBase } from "react/reactquestion_element";
20765
- interface IListProps {
20766
- model: ListModel;
20767
- }
20768
- export class List extends SurveyElementBase<IListProps, any> {
20769
- private listContainerRef;
20770
- constructor(props: any);
20771
- get model(): ListModel;
20772
- handleKeydown: (event: any) => void;
20773
- handleMouseMove: (event: any) => void;
20774
- getStateElement(): ListModel;
20775
- componentDidMount(): void;
20776
- renderElement(): JSX.Element;
20777
- renderItems(): JSX.Element[];
20778
- searchElementContent(): JSX.Element;
20779
- emptyContent(): JSX.Element;
20780
- }
20781
- }
20782
21062
  declare module "react/components/survey-header/logo-image" {
20783
21063
  import React from "react";
20784
21064
  import { SurveyModel } from "entries/core";
@@ -20856,6 +21136,8 @@ declare module "entries/react-ui-model" {
20856
21136
  export { SurveyQuestionCommentItem, SurveyQuestionComment, } from "react/reactquestion_comment";
20857
21137
  export { SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, } from "react/reactquestion_checkbox";
20858
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";
20859
21141
  export { TagboxFilterString } from "react/tagbox-filter";
20860
21142
  export { SurveyQuestionOptionItem } from "react/dropdown-item";
20861
21143
  export { SurveyQuestionDropdownBase } from "react/dropdown-base";
@@ -20879,6 +21161,7 @@ declare module "entries/react-ui-model" {
20879
21161
  export { SurveyQuestionPanelDynamic } from "react/reactquestion_paneldynamic";
20880
21162
  export { SurveyProgress } from "react/reactSurveyProgress";
20881
21163
  export { SurveyProgressButtons } from "react/reactSurveyProgressButtons";
21164
+ export { SurveyProgressToc } from "react/reactSurveyProgressToc";
20882
21165
  export { SurveyQuestionRating } from "react/reactquestion_rating";
20883
21166
  export { SurveyQuestionRatingDropdown } from "react/rating-dropdown";
20884
21167
  export { SurveyQuestionExpression } from "react/reactquestion_expression";
@@ -20910,6 +21193,7 @@ declare module "entries/react-ui-model" {
20910
21193
  export { MatrixRow } from "react/components/matrix/row";
20911
21194
  export { Skeleton } from "react/components/skeleton";
20912
21195
  export { NotifierComponent } from "react/components/notifier";
21196
+ export { ComponentsContainer } from "react/components/components-container";
20913
21197
  export { CharacterCounterComponent } from "react/components/character-counter";
20914
21198
  export { SurveyLocStringViewer } from "react/string-viewer";
20915
21199
  export { SurveyLocStringEditor } from "react/string-editor";