survey-react 1.9.109 → 1.9.111

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
@@ -115,6 +115,9 @@ declare module "localization/english" {
115
115
  clearCaption: string;
116
116
  signaturePlaceHolder: string;
117
117
  chooseFileCaption: string;
118
+ takePhotoCaption: string;
119
+ cameraPlaceHolder: string;
120
+ fileCameraDragAreaPlaceHolder: string;
118
121
  replaceFileCaption: string;
119
122
  removeFileCaption: string;
120
123
  booleanCheckedLabel: string;
@@ -132,6 +135,8 @@ declare module "localization/english" {
132
135
  tagboxDoneButtonCaption: string;
133
136
  selectToRankEmptyRankedAreaText: string;
134
137
  selectToRankEmptyUnrankedAreaText: string;
138
+ ok: string;
139
+ cancel: string;
135
140
  };
136
141
  }
137
142
  declare module "surveyStrings" {
@@ -227,6 +232,9 @@ declare module "surveyStrings" {
227
232
  clearCaption: string;
228
233
  signaturePlaceHolder: string;
229
234
  chooseFileCaption: string;
235
+ takePhotoCaption: string;
236
+ cameraPlaceHolder: string;
237
+ fileCameraDragAreaPlaceHolder: string;
230
238
  replaceFileCaption: string;
231
239
  removeFileCaption: string;
232
240
  booleanCheckedLabel: string;
@@ -244,6 +252,8 @@ declare module "surveyStrings" {
244
252
  tagboxDoneButtonCaption: string;
245
253
  selectToRankEmptyRankedAreaText: string;
246
254
  selectToRankEmptyUnrankedAreaText: string;
255
+ ok: string;
256
+ cancel: string;
247
257
  };
248
258
  }
249
259
  declare module "localizablestring" {
@@ -664,6 +674,7 @@ declare module "conditionProcessValue" {
664
674
  getValue(text: string, values?: HashTable<any>): any;
665
675
  setValue(obj: any, text: string, value: any): void;
666
676
  getValueInfo(valueInfo: any): void;
677
+ isAnyKeyChanged(keys: any, usedNames: string[]): boolean;
667
678
  private getValueFromPath;
668
679
  private getValueCore;
669
680
  private getQuestionDirectly;
@@ -676,6 +687,13 @@ declare module "conditionProcessValue" {
676
687
  private getIntValue;
677
688
  }
678
689
  }
690
+ declare module "console-warnings" {
691
+ export class ConsoleWarnings {
692
+ static disposedObjectChangedProperty(propName: string, objType: string): void;
693
+ static inCorrectQuestionValue(questionName: string, val: any): void;
694
+ static warn(text: string): void;
695
+ }
696
+ }
679
697
  declare module "functionsfactory" {
680
698
  import { HashTable } from "helpers";
681
699
  export class FunctionFactory {
@@ -956,7 +974,14 @@ declare module "conditions" {
956
974
  }
957
975
  export class ExpressionRunnerBase {
958
976
  private expressionExecutor;
977
+ private variables;
978
+ private containsFunc;
979
+ private static IdCounter;
980
+ private _id;
981
+ onBeforeAsyncRun: (id: number) => void;
982
+ onAfterAsyncRun: (id: number) => void;
959
983
  constructor(expression: string);
984
+ get id(): number;
960
985
  get expression(): string;
961
986
  set expression(value: string);
962
987
  getVariables(): Array<string>;
@@ -997,6 +1022,74 @@ declare module "utils/cssClassBuilder" {
997
1022
  toString(): string;
998
1023
  }
999
1024
  }
1025
+ declare module "popup-view-model" {
1026
+ import { Base } from "base";
1027
+ import { PopupModel } from "popup";
1028
+ import { CssClassBuilder } from "utils/cssClassBuilder";
1029
+ import { ActionContainer } from "actions/container";
1030
+ export const FOCUS_INPUT_SELECTOR = "input:not(:disabled):not([readonly]):not([type=hidden]),select:not(:disabled):not([readonly]),textarea:not(:disabled):not([readonly]), button:not(:disabled):not([readonly]), [tabindex]:not([tabindex^=\"-\"])";
1031
+ export class PopupBaseViewModel extends Base {
1032
+ private static SubscriptionId;
1033
+ private subscriptionId;
1034
+ protected popupSelector: string;
1035
+ protected fixedPopupContainer: string;
1036
+ protected containerSelector: string;
1037
+ protected scrollingContentSelector: string;
1038
+ protected prevActiveElement: HTMLElement;
1039
+ protected footerToolbarValue: ActionContainer;
1040
+ top: string;
1041
+ left: string;
1042
+ height: string;
1043
+ width: string;
1044
+ minWidth: string;
1045
+ isVisible: boolean;
1046
+ locale: string;
1047
+ get container(): HTMLElement;
1048
+ private containerElement;
1049
+ private createdContainer;
1050
+ getLocale(): string;
1051
+ protected hidePopup(): void;
1052
+ protected getStyleClass(): CssClassBuilder;
1053
+ protected getShowFooter(): boolean;
1054
+ protected getShowHeader(): boolean;
1055
+ protected getPopupHeaderTemplate(): string;
1056
+ protected createFooterActionBar(): void;
1057
+ protected resetDimensionsAndPositionStyleProperties(): void;
1058
+ protected onModelChanging(newModel: PopupModel): void;
1059
+ private setupModel;
1060
+ private _model;
1061
+ get model(): PopupModel;
1062
+ set model(model: PopupModel);
1063
+ constructor(model: PopupModel);
1064
+ get title(): string;
1065
+ get contentComponentName(): string;
1066
+ get contentComponentData(): any;
1067
+ get isModal(): boolean;
1068
+ get isFocusedContent(): boolean;
1069
+ get isFocusedContainer(): boolean;
1070
+ get showFooter(): boolean;
1071
+ get showHeader(): boolean;
1072
+ get popupHeaderTemplate(): string;
1073
+ get isOverlay(): boolean;
1074
+ get styleClass(): string;
1075
+ get cancelButtonText(): string;
1076
+ get footerToolbar(): ActionContainer;
1077
+ onKeyDown(event: any): void;
1078
+ private trapFocus;
1079
+ switchFocus(): void;
1080
+ updateOnShowing(): void;
1081
+ updateOnHiding(): void;
1082
+ private focusContainer;
1083
+ private focusFirstInput;
1084
+ clickOutside(event?: Event): void;
1085
+ cancel(): void;
1086
+ dispose(): void;
1087
+ initializePopupContainer(): void;
1088
+ setComponentElement(componentRoot: HTMLElement, targetElement?: HTMLElement | null): void;
1089
+ resetComponentElement(): void;
1090
+ protected preventScrollOuside(event: any, deltaY: number): void;
1091
+ }
1092
+ }
1000
1093
  declare module "utils/utils" {
1001
1094
  function compareVersions(a: any, b: any): number;
1002
1095
  function confirmAction(message: string): boolean;
@@ -1011,6 +1104,7 @@ declare module "utils/utils" {
1011
1104
  function findScrollableParent(element: HTMLElement): HTMLElement;
1012
1105
  function scrollElementByChildId(id: string): void;
1013
1106
  function navigateToUrl(url: string): void;
1107
+ function wrapUrlForBackgroundImage(url: string): string;
1014
1108
  function getIconNameFromProxy(iconName: string): string;
1015
1109
  function createSvg(size: number | string, width: number, height: number, iconName: string, svgElem: any, title: string): void;
1016
1110
  export function unwrap<T>(value: T | (() => T)): T;
@@ -1039,7 +1133,8 @@ declare module "utils/utils" {
1039
1133
  log(action: string): void;
1040
1134
  get result(): string;
1041
1135
  }
1042
- export { mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, };
1136
+ export function showConfirmDialog(message: string, callback: (res: boolean) => void): boolean;
1137
+ export { mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, };
1043
1138
  }
1044
1139
  declare module "actions/container" {
1045
1140
  import { Base } from "base";
@@ -1050,6 +1145,7 @@ declare module "actions/container" {
1050
1145
  defaultSizeMode: string;
1051
1146
  smallSizeMode: string;
1052
1147
  item: string;
1148
+ itemWithTitle: string;
1053
1149
  itemAsIcon: string;
1054
1150
  itemActive: string;
1055
1151
  itemPressed: string;
@@ -1580,6 +1676,8 @@ declare module "defaultCss/defaultV2Css" {
1580
1676
  rootReadOnly: string;
1581
1677
  rootCompact: string;
1582
1678
  rootFitToContainer: string;
1679
+ rootWrapper: string;
1680
+ rootWrapperFixed: string;
1583
1681
  rootBackgroundImage: string;
1584
1682
  container: string;
1585
1683
  header: string;
@@ -1648,6 +1746,7 @@ declare module "defaultCss/defaultV2Css" {
1648
1746
  mainRoot: string;
1649
1747
  empty: string;
1650
1748
  root: string;
1749
+ iconRemove: string;
1651
1750
  navigation: string;
1652
1751
  title: string;
1653
1752
  header: string;
@@ -1729,6 +1828,7 @@ declare module "defaultCss/defaultV2Css" {
1729
1828
  titleNumInline: string;
1730
1829
  titleLeftRoot: string;
1731
1830
  titleOnAnswer: string;
1831
+ titleEmpty: string;
1732
1832
  titleOnError: string;
1733
1833
  title: string;
1734
1834
  titleExpandable: string;
@@ -2104,6 +2204,7 @@ declare module "defaultCss/defaultV2Css" {
2104
2204
  file: {
2105
2205
  root: string;
2106
2206
  rootDragging: string;
2207
+ rootAnswered: string;
2107
2208
  other: string;
2108
2209
  placeholderInput: string;
2109
2210
  preview: string;
@@ -2140,6 +2241,14 @@ declare module "defaultCss/defaultV2Css" {
2140
2241
  single: string;
2141
2242
  singleImage: string;
2142
2243
  mobile: string;
2244
+ videoContainer: string;
2245
+ contextButton: string;
2246
+ video: string;
2247
+ actionsContainer: string;
2248
+ closeCameraButton: string;
2249
+ changeCameraButton: string;
2250
+ takePictureButton: string;
2251
+ loadingIndicator: string;
2143
2252
  };
2144
2253
  signaturepad: {
2145
2254
  mainRoot: string;
@@ -2289,8 +2398,6 @@ declare module "trigger" {
2289
2398
  static operatorsValue: HashTable<Function>;
2290
2399
  static get operators(): HashTable<Function>;
2291
2400
  private conditionRunner;
2292
- private usedNames;
2293
- private hasFunction;
2294
2401
  private idValue;
2295
2402
  constructor();
2296
2403
  get id(): number;
@@ -2308,6 +2415,7 @@ declare module "trigger" {
2308
2415
  protected canBeExecutedOnComplete(): boolean;
2309
2416
  protected isExecutingOnNextPage: boolean;
2310
2417
  checkExpression(isOnNextPage: boolean, isOnComplete: boolean, keys: any, values: HashTable<any>, properties?: HashTable<any>): void;
2418
+ protected canSuccessOnEmptyExpression(): boolean;
2311
2419
  check(value: any): void;
2312
2420
  get requireValidQuestion(): boolean;
2313
2421
  private perform;
@@ -2320,7 +2428,8 @@ declare module "trigger" {
2320
2428
  private onExpressionChanged;
2321
2429
  buildExpression(): string;
2322
2430
  private isCheckRequired;
2323
- private buildUsedNames;
2431
+ protected getUsedVariables(): string[];
2432
+ private createConditionRunner;
2324
2433
  private get isRequireValue();
2325
2434
  }
2326
2435
  export interface ISurveyTriggerOwner {
@@ -2425,6 +2534,8 @@ declare module "trigger" {
2425
2534
  set copyDisplayValue(val: boolean);
2426
2535
  getType(): string;
2427
2536
  protected onSuccess(values: HashTable<any>, properties: HashTable<any>): void;
2537
+ protected canSuccessOnEmptyExpression(): boolean;
2538
+ protected getUsedVariables(): string[];
2428
2539
  }
2429
2540
  }
2430
2541
  declare module "calculatedValue" {
@@ -2839,8 +2950,8 @@ declare module "panel" {
2839
2950
  hasErrors(fireCallback?: boolean, focusOnFirstError?: boolean, rec?: any): boolean;
2840
2951
  /**
2841
2952
  * Validates questions within this panel or page and returns `false` if the validation fails.
2842
- * @param fireCallback *Optional.* Pass `false` if you do not want to show validation errors in the UI.
2843
- * @param focusOnFirstError *Optional.* Pass `true` if you want to focus the first question with a validation error.
2953
+ * @param fireCallback *(Optional)* Pass `false` if you do not want to show validation errors in the UI.
2954
+ * @param focusOnFirstError *(Optional)* Pass `true` if you want to focus the first question with a validation error.
2844
2955
  * @see [Data Validation](https://surveyjs.io/form-library/documentation/data-validation)
2845
2956
  */
2846
2957
  validate(fireCallback?: boolean, focusOnFirstError?: boolean, rec?: any): boolean;
@@ -2926,7 +3037,9 @@ declare module "panel" {
2926
3037
  */
2927
3038
  get visible(): boolean;
2928
3039
  set visible(value: boolean);
3040
+ onHidingContent(): void;
2929
3041
  protected onVisibleChanged(): void;
3042
+ protected notifyStateChanged(): void;
2930
3043
  /**
2931
3044
  * Returns `true` if the panel/page is visible or the survey is currently in design mode.
2932
3045
  *
@@ -3151,6 +3264,28 @@ declare module "panel" {
3151
3264
  getContainerCss(): string;
3152
3265
  }
3153
3266
  }
3267
+ declare module "utils/camera" {
3268
+ export class Camera {
3269
+ static mediaDevicesCallback: ((callback: (devices: Array<MediaDeviceInfo>) => void) => void) | undefined;
3270
+ static clear(): void;
3271
+ static setCameraList(list: Array<MediaDeviceInfo>): void;
3272
+ private static cameraList;
3273
+ private static cameraIndex;
3274
+ private static cameraFacingMode;
3275
+ private static canSwitchFacingMode;
3276
+ hasCamera(callback: (res: boolean) => void): void;
3277
+ getMediaConstraints(videoEl?: any): MediaStreamConstraints;
3278
+ startVideo(videoElementId: string, callback: (stream: MediaStream) => void, imageWidth?: string, imageHeight?: string): void;
3279
+ snap(videoElementId: string, callback: BlobCallback): boolean;
3280
+ private canFlipValue;
3281
+ private updateCanFlipValue;
3282
+ private onCanFlipChangedCallback?;
3283
+ canFlip(onCanFlipChangedCallback?: (res: boolean) => void): boolean;
3284
+ flip(): void;
3285
+ private hasCameraCallback;
3286
+ private setVideoInputs;
3287
+ }
3288
+ }
3154
3289
  declare module "question_file" {
3155
3290
  import { IPlainDataOptions } from "base-interfaces";
3156
3291
  import { IQuestionPlainData, Question } from "question";
@@ -3158,6 +3293,7 @@ declare module "question_file" {
3158
3293
  import { SurveyError } from "survey-error";
3159
3294
  import { ActionContainer } from "actions/container";
3160
3295
  import { Action } from "actions/action";
3296
+ import { Camera } from "utils/camera";
3161
3297
  /**
3162
3298
  * A class that describes the File Upload question type.
3163
3299
  *
@@ -3173,7 +3309,7 @@ declare module "question_file" {
3173
3309
  *
3174
3310
  * - `sender`: `SurveyModel`\
3175
3311
  * A survey instance that raised the event.
3176
- * - `options.state`: `String`\
3312
+ * - `options.state`: `string`\
3177
3313
  * The current upload state: `"empty"`, `"loading"`, `"loaded"`, or `"error"`.
3178
3314
  */
3179
3315
  onUploadStateChanged: EventBase<QuestionFileModel>;
@@ -3183,19 +3319,45 @@ declare module "question_file" {
3183
3319
  indexToShow: number;
3184
3320
  pageSize: number;
3185
3321
  containsMultiplyFiles: boolean;
3322
+ allowCameraAccess: boolean;
3186
3323
  /**
3187
- * Specifies whether users can capture and upload a photo. Applies only to mobile devices.
3324
+ * Specifies the source of uploaded files.
3188
3325
  *
3189
- * Default value: `false`
3326
+ * Possible values:
3327
+ *
3328
+ * - `"file"` (default) - Allows respondents to select a local file.
3329
+ * - `"camera"` - Allows respondents to capture and upload a photo.
3330
+ * - `"file-camera"` - Allows respondents to select a local file or capture a photo.
3190
3331
  */
3191
- allowCameraAccess: boolean;
3332
+ sourceType: string;
3192
3333
  fileNavigator: ActionContainer;
3193
3334
  protected prevFileAction: Action;
3194
3335
  protected nextFileAction: Action;
3195
3336
  protected fileIndexAction: Action;
3337
+ closeCameraAction: Action;
3338
+ takePictureAction: Action;
3339
+ changeCameraAction: Action;
3340
+ chooseFileAction: Action;
3341
+ startCameraAction: Action;
3342
+ cleanAction: Action;
3343
+ actionsContainer: ActionContainer;
3196
3344
  get fileNavigatorVisible(): boolean;
3197
3345
  private get pagesCount();
3346
+ get actionsContainerVisible(): boolean;
3198
3347
  constructor(name: string);
3348
+ get videoId(): string;
3349
+ get hasVideoUI(): boolean;
3350
+ get hasFileUI(): boolean;
3351
+ private videoStream;
3352
+ startVideo(): void;
3353
+ private startVideoInCamera;
3354
+ stopVideo(): void;
3355
+ snapPicture(): void;
3356
+ private canFlipCameraValue;
3357
+ canFlipCamera(): boolean;
3358
+ flipCamera(): void;
3359
+ private closeVideoStream;
3360
+ onHidingContent(): void;
3199
3361
  protected updateElementCssCore(cssClasses: any): void;
3200
3362
  private getFileIndexCaption;
3201
3363
  private updateFileNavigator;
@@ -3273,22 +3435,32 @@ declare module "question_file" {
3273
3435
  confirmRemoveAllMessage: string;
3274
3436
  noFileChosenCaption: string;
3275
3437
  chooseButtonCaption: string;
3438
+ takePhotoCaption: string;
3276
3439
  replaceButtonCaption: string;
3277
3440
  clearButtonCaption: string;
3278
3441
  removeFileCaption: string;
3279
3442
  loadingFileTitle: string;
3280
3443
  chooseFileTitle: string;
3444
+ fileCameraDragAreaPlaceholder: string;
3445
+ cameraPlaceholder: string;
3281
3446
  dragAreaPlaceholder: string;
3282
3447
  renderedPlaceholderValue: string;
3283
3448
  get renderedPlaceholder(): string;
3449
+ get currentMode(): string;
3450
+ get isPlayingVideo(): boolean;
3451
+ private setIsPlayingVideo;
3452
+ private updateCurrentMode;
3453
+ private updateActions;
3284
3454
  get inputTitle(): string;
3285
3455
  get chooseButtonText(): string;
3286
3456
  clear(doneCallback?: () => void): void;
3287
3457
  get renderCapture(): string;
3288
3458
  get multipleRendered(): string;
3289
3459
  get showChooseButton(): boolean;
3460
+ get showFileDecorator(): boolean;
3290
3461
  get showLoadingIndicator(): boolean;
3291
3462
  get allowShowPreview(): boolean;
3463
+ get showPreviewContainer(): boolean;
3292
3464
  get showRemoveButtonCore(): boolean;
3293
3465
  get showRemoveButton(): boolean;
3294
3466
  get showRemoveButtonBottom(): boolean;
@@ -3303,19 +3475,29 @@ declare module "question_file" {
3303
3475
  * @param files An array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects.
3304
3476
  */
3305
3477
  loadFiles(files: File[]): void;
3478
+ private cameraValue;
3479
+ protected get camera(): Camera;
3306
3480
  canPreviewImage(fileItem: any): boolean;
3307
3481
  protected loadPreview(newValue: any): void;
3482
+ private isFileLoadingValue;
3483
+ protected get isFileLoading(): boolean;
3484
+ protected set isFileLoading(val: boolean);
3485
+ protected getIsQuestionReady(): boolean;
3308
3486
  protected onCheckForErrors(errors: Array<SurveyError>, isOnValueChanged: boolean): void;
3309
3487
  protected stateChanged(state: string): void;
3310
3488
  private allFilesOk;
3311
3489
  private isFileImage;
3312
3490
  getPlainData(options?: IPlainDataOptions): IQuestionPlainData;
3491
+ protected getActionsContainerCss(css: any): string;
3492
+ getRemoveButtonCss(): string;
3313
3493
  getChooseFileCss(): string;
3314
3494
  getReadOnlyFileCss(): string;
3315
3495
  get fileRootCss(): string;
3316
3496
  getFileDecoratorCss(): string;
3317
3497
  private onChange;
3318
3498
  protected onChangeQuestionValue(newValue: any): void;
3499
+ protected calcCssClasses(css: any): any;
3500
+ updateElementCss(reNew?: boolean): void;
3319
3501
  endLoadingFromJson(): void;
3320
3502
  protected needResponsiveness(): boolean;
3321
3503
  protected supportResponsiveness(): boolean;
@@ -3328,6 +3510,7 @@ declare module "question_file" {
3328
3510
  triggerResponsiveness(hard?: boolean): void;
3329
3511
  protected processResponsiveness(_: number, availableWidth: number): boolean;
3330
3512
  private rootElement;
3513
+ private canDragDrop;
3331
3514
  afterRender(el: HTMLElement): void;
3332
3515
  private dragCounter;
3333
3516
  onDragEnter: (event: any) => void;
@@ -3335,11 +3518,12 @@ declare module "question_file" {
3335
3518
  onDrop: (event: any) => void;
3336
3519
  onDragLeave: (event: any) => void;
3337
3520
  doChange: (event: any) => void;
3338
- doClean: (event: any) => void;
3521
+ doClean: () => void;
3339
3522
  private clearFilesCore;
3340
3523
  doRemoveFile(data: any): void;
3341
3524
  private removeFileCore;
3342
3525
  doDownloadFile: (event: any, data: any) => void;
3526
+ dispose(): void;
3343
3527
  }
3344
3528
  export class FileLoader {
3345
3529
  private fileQuestion;
@@ -3548,7 +3732,6 @@ declare module "question_baseselect" {
3548
3732
  private canShowOptionItemCallback;
3549
3733
  private waitingGetChoiceDisplayValueResponse;
3550
3734
  private get waitingChoicesByURL();
3551
- private get waitingAcyncOperations();
3552
3735
  protected selectedItemValues: any;
3553
3736
  constructor(name: string);
3554
3737
  getType(): string;
@@ -3676,6 +3859,7 @@ declare module "question_baseselect" {
3676
3859
  protected renderedValueFromDataCore(val: any): any;
3677
3860
  protected rendredValueToDataCore(val: any): any;
3678
3861
  protected needConvertRenderedOtherToDataValue(): boolean;
3862
+ protected getIsQuestionReady(): boolean;
3679
3863
  protected updateSelectedItemValues(): void;
3680
3864
  private setCustomValuesIntoItems;
3681
3865
  protected hasUnknownValue(val: any, includeOther?: boolean, isFilteredChoices?: boolean, checkEmptyValue?: boolean): boolean;
@@ -3849,7 +4033,9 @@ declare module "question_baseselect" {
3849
4033
  private getFilteredChoices;
3850
4034
  protected get activeChoices(): Array<ItemValue>;
3851
4035
  getCarryForwardQuestion(data?: ISurveyData): Question;
4036
+ protected getIsReadyDependsOn(): Array<Question>;
3852
4037
  private getQuestionWithChoices;
4038
+ private carryForwardQuestion;
3853
4039
  private findCarryForwardQuestion;
3854
4040
  private getQuestionWithChoicesCore;
3855
4041
  private getQuestionWithArrayValue;
@@ -4167,6 +4353,7 @@ declare module "question_expression" {
4167
4353
  runCondition(values: HashTable<any>, properties: HashTable<any>): void;
4168
4354
  protected canCollectErrors(): boolean;
4169
4355
  protected hasRequiredError(): boolean;
4356
+ private createRunner;
4170
4357
  /**
4171
4358
  * The maximum number of fraction digits. Applies only if the `displayStyle` property is not `"none"`. Accepts values in the range from -1 to 20, where -1 disables the property.
4172
4359
  *
@@ -4325,6 +4512,10 @@ declare module "question_matrixdropdowncolumn" {
4325
4512
  set enableIf(val: string);
4326
4513
  get requiredIf(): string;
4327
4514
  set requiredIf(val: string);
4515
+ get resetValueIf(): string;
4516
+ set resetValueIf(val: string);
4517
+ get defaultValueExpression(): string;
4518
+ set defaultValueExpression(val: string);
4328
4519
  get isUnique(): boolean;
4329
4520
  set isUnique(val: boolean);
4330
4521
  get showInMultipleColumns(): boolean;
@@ -4608,6 +4799,7 @@ declare module "question_matrixdropdownrendered" {
4608
4799
  constructor(matrix: QuestionMatrixDropdownModelBase);
4609
4800
  get showTable(): boolean;
4610
4801
  get showHeader(): boolean;
4802
+ get showAddRow(): boolean;
4611
4803
  get showAddRowOnTop(): boolean;
4612
4804
  get showAddRowOnBottom(): boolean;
4613
4805
  get showFooter(): boolean;
@@ -4857,7 +5049,7 @@ declare module "question_matrixdynamic" {
4857
5049
  private getQuestionToFocusOnAddingRow;
4858
5050
  /**
4859
5051
  * Creates and adds a new row to the matrix.
4860
- * @param setFocus *Optional.* Pass `true` to focus the cell in the first column.
5052
+ * @param setFocus *(Optional)* Pass `true` to focus the cell in the first column.
4861
5053
  */
4862
5054
  addRow(setFocus?: boolean): void;
4863
5055
  /**
@@ -4876,7 +5068,7 @@ declare module "question_matrixdynamic" {
4876
5068
  /**
4877
5069
  * Removes a matrix row with a specified index.
4878
5070
  * @param index A zero-based row index.
4879
- * @param confirmDelete *Optional.* A Boolean value that specifies whether to display a confirmation dialog. If you do not specify this parameter, the [`confirmDelete`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model#confirmDelete) property value is used.
5071
+ * @param confirmDelete *(Optional)* A Boolean value that specifies whether to display a confirmation dialog. If you do not specify this parameter, the [`confirmDelete`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model#confirmDelete) property value is used.
4880
5072
  */
4881
5073
  removeRow(index: number, confirmDelete?: boolean): void;
4882
5074
  private removeRowAsync;
@@ -5103,8 +5295,8 @@ declare module "question_paneldynamic" {
5103
5295
  *
5104
5296
  * The template can contain the following placeholders:
5105
5297
  *
5106
- * - `{panelIndex}` - A zero-based index of a panel in the [`panels`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#panels) array.
5107
- * - `{visiblePanelIndex}` - A zero-based index of a panel in the [`visiblePanels`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#visiblePanels) array.
5298
+ * - `{panelIndex}` - A panel index within the collection of all panels. Starts with 1.
5299
+ * - `{visiblePanelIndex}` - A panel index within the collection of visible panels. Starts with 1.
5108
5300
  * @see template
5109
5301
  * @see templateDescription
5110
5302
  * @see templateElements
@@ -5119,8 +5311,12 @@ declare module "question_paneldynamic" {
5119
5311
  *
5120
5312
  * The template can contain the following placeholders:
5121
5313
  *
5122
- * - `{panelIndex}` - A zero-based index of a panel in the [`panels`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#panels) array.
5123
- * - `{visiblePanelIndex}` - A zero-based index of a panel in the [`visiblePanels`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#visiblePanels) array.
5314
+ * - `{panelIndex}` - A panel index within the collection of all panels. Starts with 1.
5315
+ * - `{visiblePanelIndex}` - A panel index within the collection of visible panels. Starts with 1.
5316
+ *
5317
+ * If you want to customize individual tab titles, handle `SurveyModel`'s [`onGetDynamicPanelTabTitle`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onGetDynamicPanelTabTitle) event.
5318
+ *
5319
+ * [View Demo](/form-library/examples/tabbed-interface-for-duplicate-group-option/ (linkStyle))
5124
5320
  * @see templateTitle
5125
5321
  * @see renderMode
5126
5322
  */
@@ -5189,6 +5385,7 @@ declare module "question_paneldynamic" {
5189
5385
  */
5190
5386
  get currentPanel(): PanelModel;
5191
5387
  set currentPanel(val: PanelModel);
5388
+ onHidingContent(): void;
5192
5389
  /**
5193
5390
  * Specifies whether to display a confirmation dialog when a respondent wants to delete a panel.
5194
5391
  * @see confirmDeleteText
@@ -5403,11 +5600,11 @@ declare module "question_paneldynamic" {
5403
5600
  *
5404
5601
  * Possible values:
5405
5602
  *
5406
- * - `"list"` - Renders panels one under the other. [View Demo](https://surveyjs.io/form-library/examples/how-to-use-expressions-in-dynamic-panel/)
5603
+ * - `"list"` (default) - Renders panels one under the other. [View Demo](https://surveyjs.io/form-library/examples/how-to-use-expressions-in-dynamic-panel/)
5407
5604
  * - `"progressTop"` - Renders each panel as a card and displays a progress bar at the top. [View Demo](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/)
5408
5605
  * - `"progressBottom"` - Renders each panel panel as a card and displays a progress bar at the bottom.
5409
5606
  * - `"progressTopBottom"` - Renders each panel as a card and displays a progress bar at the top and bottom.
5410
- * - `"tab"` - Renders each panel within a tab. Use the [`templateTabTitle`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#templateTabTitle) to specify a template for tab titles.
5607
+ * - `"tab"` - Renders each panel within a tab. Use the [`templateTabTitle`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#templateTabTitle) to specify a template for tab titles. [View Demo](/form-library/examples/tabbed-interface-for-duplicate-group-option/)
5411
5608
  */
5412
5609
  get renderMode(): string;
5413
5610
  set renderMode(val: string);
@@ -5533,8 +5730,9 @@ declare module "question_paneldynamic" {
5533
5730
  onFirstRendering(): void;
5534
5731
  localeChanged(): void;
5535
5732
  runCondition(values: HashTable<any>, properties: HashTable<any>): void;
5733
+ runTriggers(name: string, value: any): void;
5536
5734
  private reRunCondition;
5537
- protected runPanelsCondition(values: HashTable<any>, properties: HashTable<any>): void;
5735
+ protected runPanelsCondition(panels: PanelModel[], values: HashTable<any>, properties: HashTable<any>): void;
5538
5736
  onAnyValueChanged(name: string, questionName: string): void;
5539
5737
  private hasKeysDuplicated;
5540
5738
  private updatePanelsContainsErrors;
@@ -5564,8 +5762,6 @@ declare module "question_paneldynamic" {
5564
5762
  private isAllPanelsEmpty;
5565
5763
  private panelUpdateValueFromSurvey;
5566
5764
  private panelSurveyValueChanged;
5567
- private onReadyChangedCallback;
5568
- recalculateIsReadyValue(): void;
5569
5765
  protected onSetData(): void;
5570
5766
  protected isNewValueCorrect(val: any): boolean;
5571
5767
  getItemIndex(item: ISurveyData): number;
@@ -7405,11 +7601,87 @@ declare module "themes" {
7405
7601
  backgroundImageFit?: ImageFit;
7406
7602
  backgroundImageAttachment?: ImageAttachment;
7407
7603
  backgroundOpacity?: number;
7604
+ cover?: {
7605
+ [index: string]: any;
7606
+ };
7408
7607
  cssVariables?: {
7409
7608
  [index: string]: string;
7410
7609
  };
7411
7610
  }
7412
7611
  }
7612
+ declare module "cover" {
7613
+ import { Base } from "base";
7614
+ import { HorizontalAlignment, VerticalAlignment } from "base-interfaces";
7615
+ import { SurveyModel } from "survey";
7616
+ import { ITheme } from "themes";
7617
+ export class CoverCell {
7618
+ private cover;
7619
+ private positionX;
7620
+ private positionY;
7621
+ static CLASSNAME: string;
7622
+ private calcRow;
7623
+ private calcColumn;
7624
+ private calcAlignItems;
7625
+ private calcAlignText;
7626
+ private calcJustifyContent;
7627
+ constructor(cover: Cover, positionX: HorizontalAlignment, positionY: VerticalAlignment);
7628
+ get survey(): SurveyModel;
7629
+ get css(): string;
7630
+ get style(): any;
7631
+ get contentStyle(): any;
7632
+ get showLogo(): boolean;
7633
+ get showTitle(): boolean;
7634
+ get showDescription(): boolean;
7635
+ get textWidth(): string;
7636
+ }
7637
+ export class Cover extends Base {
7638
+ private calcBackgroundSize;
7639
+ fromTheme(theme: ITheme): void;
7640
+ constructor();
7641
+ getType(): string;
7642
+ survey: SurveyModel;
7643
+ cells: CoverCell[];
7644
+ height: number;
7645
+ areaWidth: "survey" | "container";
7646
+ textWidth: number;
7647
+ invertText: boolean;
7648
+ glowText: boolean;
7649
+ overlap: boolean;
7650
+ backgroundColor: string;
7651
+ backgroundImage: string;
7652
+ renderBackgroundImage: string;
7653
+ backgroundImageFit: "cover" | "fill" | "contain" | "tile";
7654
+ backgroundImageOpacity: number;
7655
+ logoPositionX: HorizontalAlignment;
7656
+ logoPositionY: VerticalAlignment;
7657
+ titlePositionX: HorizontalAlignment;
7658
+ titlePositionY: VerticalAlignment;
7659
+ descriptionPositionX: HorizontalAlignment;
7660
+ descriptionPositionY: VerticalAlignment;
7661
+ logoStyle: {
7662
+ gridColumn: number;
7663
+ gridRow: number;
7664
+ };
7665
+ titleStyle: {
7666
+ gridColumn: number;
7667
+ gridRow: number;
7668
+ };
7669
+ descriptionStyle: {
7670
+ gridColumn: number;
7671
+ gridRow: number;
7672
+ };
7673
+ get renderedHeight(): string;
7674
+ get renderedTextWidth(): string;
7675
+ get coverClasses(): string;
7676
+ get contentClasses(): string;
7677
+ get backgroundImageClasses(): string;
7678
+ get backgroundImageStyle(): {
7679
+ opacity: number;
7680
+ backgroundImage: string;
7681
+ backgroundSize: string;
7682
+ };
7683
+ }
7684
+ }
7413
7685
  declare module "survey" {
7414
7686
  import { JsonError } from "jsonobject";
7415
7687
  import { Base, EventBase } from "base";
@@ -8038,6 +8310,10 @@ declare module "survey" {
8038
8310
  onDynamicPanelItemValueChanged: EventBase<SurveyModel, DynamicPanelItemValueChangedEvent>;
8039
8311
  /**
8040
8312
  * An event that is raised before a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) renders [tab titles](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#templateTabTitle). Use this event to change individual tab titles.
8313
+ *
8314
+ * For information on event handler parameters, refer to descriptions within the interface.
8315
+ *
8316
+ * [View Demo](/form-library/examples/tabbed-interface-for-duplicate-group-option/ (linkStyle))
8041
8317
  */
8042
8318
  onGetDynamicPanelTabTitle: EventBase<SurveyModel, DynamicPanelGetTabTitleEvent>;
8043
8319
  /**
@@ -8147,6 +8423,7 @@ declare module "survey" {
8147
8423
  loadingBodyCss: string;
8148
8424
  containerCss: string;
8149
8425
  fitToContainer: boolean;
8426
+ titleView: "cover" | "title";
8150
8427
  private getNavigationCss;
8151
8428
  private lazyRenderingValue;
8152
8429
  showBrandInfo: boolean;
@@ -8633,12 +8910,10 @@ declare module "survey" {
8633
8910
  */
8634
8911
  get backgroundOpacity(): number;
8635
8912
  set backgroundOpacity(val: number);
8636
- get backgroundImageStyle(): {
8637
- opacity: number;
8638
- backgroundImage: string;
8639
- backgroundSize: ImageFit;
8640
- backgroundAttachment: ImageAttachment;
8641
- };
8913
+ backgroundImageStyle: any;
8914
+ updateBackgroundImageStyle(): void;
8915
+ wrapperFormCss: string;
8916
+ updateWrapperFormCss(): void;
8642
8917
  /**
8643
8918
  * HTML content displayed on the [complete page](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#complete-page).
8644
8919
  *
@@ -9077,8 +9352,8 @@ declare module "survey" {
9077
9352
  notify(message: string, type: string): void;
9078
9353
  /**
9079
9354
  * Resets the survey [`state`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#state) and, optionally, [`data`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#data). If `state` is `"completed"`, it becomes `"running"`.
9080
- * @param clearData *Optional.* Specifies whether to clear survey data. Default value: `true`.
9081
- * @param goToFirstPage *Optional.* Specifies whether to switch the survey to the first page. Default value: `true`.
9355
+ * @param clearData *(Optional)* Specifies whether to clear survey data. Default value: `true`.
9356
+ * @param goToFirstPage *(Optional)* Specifies whether to switch the survey to the first page. Default value: `true`.
9082
9357
  */
9083
9358
  clear(clearData?: boolean, goToFirstPage?: boolean): void;
9084
9359
  mergeValues(src: any, dest: any): void;
@@ -9086,6 +9361,7 @@ declare module "survey" {
9086
9361
  protected updateCustomWidgets(page: PageModel): void;
9087
9362
  protected currentPageChanging(newValue: PageModel, oldValue: PageModel): boolean;
9088
9363
  protected currentPageChanged(newValue: PageModel, oldValue: PageModel): void;
9364
+ private notifyQuestionsOnHidingContent;
9089
9365
  private createPageChangeEventOptions;
9090
9366
  getProgress(): number;
9091
9367
  /**
@@ -9173,7 +9449,7 @@ declare module "survey" {
9173
9449
  * Validates all questions on the current page and returns `false` if the validation fails.
9174
9450
  *
9175
9451
  * If you use validation expressions and at least one of them calls an async function, the `validateCurrentPage` method returns `undefined`. In this case, you should pass a callback function as the `onAsyncValidation` parameter. The function's `hasErrors` Boolean parameter will contain the validation result.
9176
- * @param onAsyncValidation *Optional.* Pass a callback function. It accepts a Boolean `hasErrors` parameter that equals `true` if the validation fails or `false` otherwise.
9452
+ * @param onAsyncValidation *(Optional)* Pass a callback function. It accepts a Boolean `hasErrors` parameter that equals `true` if the validation fails or `false` otherwise.
9177
9453
  * @see currentPage
9178
9454
  * @see validate
9179
9455
  * @see validateCurrentPage
@@ -9185,7 +9461,7 @@ declare module "survey" {
9185
9461
  *
9186
9462
  * If you use validation expressions and at least one of them calls an async function, the `validatePage` method returns `undefined`. In this case, you should pass a callback function as the `onAsyncValidation` parameter. The function's `hasErrors` Boolean parameter will contain the validation result.
9187
9463
  * @param page Pass the `PageModel` that you want to validate. You can pass `undefined` to validate the [`activePage`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#activePage).
9188
- * @param onAsyncValidation *Optional.* Pass a callback function. It accepts a Boolean `hasErrors` parameter that equals `true` if the validation fails or `false` otherwise.
9464
+ * @param onAsyncValidation *(Optional)* Pass a callback function. It accepts a Boolean `hasErrors` parameter that equals `true` if the validation fails or `false` otherwise.
9189
9465
  * @see validate
9190
9466
  * @see validateCurrentPage
9191
9467
  */
@@ -9195,9 +9471,9 @@ declare module "survey" {
9195
9471
  * Validates all questions and returns `false` if the validation fails.
9196
9472
  *
9197
9473
  * If you use validation expressions and at least one of them calls an async function, the `validate` method returns `undefined`. In this case, you should pass a callback function as the `onAsyncValidation` parameter. The function's `hasErrors` Boolean parameter will contain the validation result.
9198
- * @param fireCallback *Optional.* Pass `false` if you do not want to show validation errors in the UI.
9199
- * @param focusOnFirstError *Optional.* Pass `true` if you want to focus the first question with a validation error. The survey will be switched to the page that contains this question if required.
9200
- * @param onAsyncValidation *Optional.* Pass a callback function. It accepts a Boolean `hasErrors` parameter that equals `true` if the validation fails or `false` otherwise.
9474
+ * @param fireCallback *(Optional)* Pass `false` if you do not want to show validation errors in the UI.
9475
+ * @param focusOnFirstError *(Optional)* Pass `true` if you want to focus the first question with a validation error. The survey will be switched to the page that contains this question if required.
9476
+ * @param onAsyncValidation *(Optional)* Pass a callback function. It accepts a Boolean `hasErrors` parameter that equals `true` if the validation fails or `false` otherwise.
9201
9477
  * @see validateCurrentPage
9202
9478
  * @see validatePage
9203
9479
  */
@@ -9698,6 +9974,7 @@ declare module "survey" {
9698
9974
  private runConditions;
9699
9975
  private runConditionOnValueChanged;
9700
9976
  private runConditionsCore;
9977
+ private runQuestionsTriggers;
9701
9978
  private checkIfNewPagesBecomeVisible;
9702
9979
  /**
9703
9980
  * Posts a survey result to [SurveyJS Service](https://api.surveyjs.io/).
@@ -9743,7 +10020,7 @@ declare module "survey" {
9743
10020
  private reduceFirstName;
9744
10021
  private clearUnusedValues;
9745
10022
  hasVisibleQuestionByValueName(valueName: string): boolean;
9746
- questionCountByValueName(valueName: string): number;
10023
+ questionsByValueName(valueName: string): Array<IQuestion>;
9747
10024
  private clearInvisibleQuestionValues;
9748
10025
  /**
9749
10026
  * Returns a variable value.
@@ -10066,13 +10343,13 @@ declare module "survey" {
10066
10343
  *
10067
10344
  * This method accepts an object with the following layout element properties:
10068
10345
  *
10069
- * - `id`: `String` | `"timerpanel"` | `"progress-buttons"` | `"progress-questions"` | `"progress-pages"` | `"progress-correctquestions"` | `"progress-requiredquestions"` | `"toc-navigation"` | `"navigationbuttons"`\
10346
+ * - `id`: `string` | `"timerpanel"` | `"progress-buttons"` | `"progress-questions"` | `"progress-pages"` | `"progress-correctquestions"` | `"progress-requiredquestions"` | `"toc-navigation"` | `"navigationbuttons"`\
10070
10347
  * A layout element identifier. You can use possible values to access and relocate or customize predefined layout elements.
10071
10348
  *
10072
10349
  * - `container`: `"header"` | `"footer"` | `"left"` | `"right"` | `"contentTop"` | `"contentBottom"`\
10073
10350
  * A layout container that holds the element. If you want to display the element within multiple containers, set this property to an array of possible values.
10074
10351
  *
10075
- * - `component`: `String`\
10352
+ * - `component`: `string`\
10076
10353
  * The name of the component that renders the layout element.
10077
10354
  *
10078
10355
  * - `data`: `any`\
@@ -10221,7 +10498,7 @@ declare module "survey-element" {
10221
10498
  */
10222
10499
  get state(): string;
10223
10500
  set state(val: string);
10224
- private notifyStateChanged;
10501
+ protected notifyStateChanged(): void;
10225
10502
  /**
10226
10503
  * Returns `true` if the survey element is collapsed.
10227
10504
  * @see state
@@ -10490,6 +10767,7 @@ declare module "survey-element" {
10490
10767
  get rootStyle(): {
10491
10768
  [index: string]: any;
10492
10769
  };
10770
+ private isContainsSelection;
10493
10771
  get clickTitleFunction(): any;
10494
10772
  protected needClickTitleFunction(): boolean;
10495
10773
  protected processTitleClick(): void;
@@ -10547,13 +10825,6 @@ declare module "questionCustomWidgets" {
10547
10825
  getCustomWidget(question: IQuestion): QuestionCustomWidget;
10548
10826
  }
10549
10827
  }
10550
- declare module "console-warnings" {
10551
- export class ConsoleWarnings {
10552
- static disposedObjectChangedProperty(propName: string, objType: string): void;
10553
- static inCorrectQuestionValue(questionName: string, val: any): void;
10554
- static warn(text: string): void;
10555
- }
10556
- }
10557
10828
  declare module "question" {
10558
10829
  import { HashTable } from "helpers";
10559
10830
  import { EventBase } from "base";
@@ -10614,7 +10885,7 @@ declare module "question" {
10614
10885
  onUpdateCssClassesCallback: (css: any) => void;
10615
10886
  onGetSurvey: () => ISurvey;
10616
10887
  private locProcessedTitle;
10617
- protected isReadyValue: boolean;
10888
+ private isReadyValue;
10618
10889
  private commentElements;
10619
10890
  private dependedQuestions;
10620
10891
  /**
@@ -10624,9 +10895,9 @@ declare module "question" {
10624
10895
  *
10625
10896
  * - `sender`: `SurveyModel`\
10626
10897
  * A survey instance that contains the question whose ready state has changed.
10627
- * - `options.isReady`: `Boolean`\
10898
+ * - `options.isReady`: `boolean`\
10628
10899
  * Indicates whether the question is ready.
10629
- * - `options.oldIsReady`: `Boolean`\
10900
+ * - `options.oldIsReady`: `boolean`\
10630
10901
  * Indicates the previous ready state.
10631
10902
  */
10632
10903
  onReadyChanged: EventBase<Question>;
@@ -10649,8 +10920,16 @@ declare module "question" {
10649
10920
  set valueName(val: string);
10650
10921
  protected onValueNameChanged(oldValue: string): void;
10651
10922
  protected onNameChanged(oldValue: string): void;
10652
- set isReady(val: boolean);
10653
10923
  get isReady(): boolean;
10924
+ protected onAsyncRunningChanged(): void;
10925
+ protected updateIsReady(): void;
10926
+ protected getIsQuestionReady(): boolean;
10927
+ private getAreNestedQuestionsReady;
10928
+ protected getIsReadyNestedQuestions(): Array<Question>;
10929
+ private setIsReady;
10930
+ protected getIsReadyDependsOn(): Array<Question>;
10931
+ private getIsReadyDependends;
10932
+ private getIsReadyDependendCore;
10654
10933
  choicesLoaded(): void;
10655
10934
  /**
10656
10935
  * Returns a page to which the question belongs and allows you to move this question to a different page.
@@ -10678,6 +10957,7 @@ declare module "question" {
10678
10957
  get visible(): boolean;
10679
10958
  set visible(val: boolean);
10680
10959
  protected onVisibleChanged(): void;
10960
+ protected notifyStateChanged(): void;
10681
10961
  private updateIsVisibleProp;
10682
10962
  /**
10683
10963
  * Specifies whether to use display names for question values in placeholders.
@@ -10716,6 +10996,7 @@ declare module "question" {
10716
10996
  * @see isParentVisible
10717
10997
  */
10718
10998
  get isVisible(): boolean;
10999
+ get isVisibleInSurvey(): boolean;
10719
11000
  protected isVisibleCore(): boolean;
10720
11001
  /**
10721
11002
  * Returns the visible index of the question in the survey. It can be from 0 to all visible questions count - 1
@@ -10724,6 +11005,7 @@ declare module "question" {
10724
11005
  * @see hideNumber
10725
11006
  */
10726
11007
  get visibleIndex(): number;
11008
+ onHidingContent(): void;
10727
11009
  /**
10728
11010
  * Hides the question number from the title and excludes the question from numbering.
10729
11011
  *
@@ -10768,6 +11050,9 @@ declare module "question" {
10768
11050
  get isQuestion(): boolean;
10769
11051
  moveTo(container: IPanel, insertBefore?: any): boolean;
10770
11052
  getProgressInfo(): IProgressInfo;
11053
+ private resetValueIfExpression;
11054
+ private isRunningResetValueIf;
11055
+ runTriggers(name: string, value: any): void;
10771
11056
  private runConditions;
10772
11057
  setSurveyImpl(value: ISurveyImpl, isLight?: boolean): void;
10773
11058
  /**
@@ -10899,6 +11184,7 @@ declare module "question" {
10899
11184
  onCommentChange(event: any): void;
10900
11185
  afterRenderQuestionElement(el: HTMLElement): void;
10901
11186
  afterRender(el: HTMLElement): void;
11187
+ afterRenderCore(el: HTMLElement): void;
10902
11188
  protected getCommentElementsId(): Array<string>;
10903
11189
  beforeDestroyQuestionElement(el: HTMLElement): void;
10904
11190
  get processedTitle(): string;
@@ -11064,27 +11350,27 @@ declare module "question" {
11064
11350
  *
11065
11351
  * | Question type | Value type(s) |
11066
11352
  * | ------------- | ------------- |
11067
- * | Checkboxes | `Array<String \| Number>` |
11068
- * | Dropdown | `String` \| `Number` |
11069
- * | Dynamic Matrix | `Array<Object>` |
11070
- * | Dynamic Panel | `Array<Object>` |
11071
- * | Expression | `String` \| `Number` \| `Boolean` |
11353
+ * | Checkboxes | `Array<string \| number>` |
11354
+ * | Dropdown | `string` \| `number` |
11355
+ * | Dynamic Matrix | `Array<object>` |
11356
+ * | Dynamic Panel | `Array<object>` |
11357
+ * | Expression | `string` \| `number` \| `boolean` |
11072
11358
  * | File Upload | `File` \| `Array<File>` |
11073
11359
  * | HTML | (no value) |
11074
11360
  * | Image | (no value) |
11075
- * | Image Picker | `Array<String \| Number>` |
11076
- * | Long Text | `String` |
11077
- * | Multi-Select Dropdown | `Object` |
11078
- * | Multi-Select Matrix | `Object` |
11079
- * | Multiple Textboxes | `Array<String>` |
11361
+ * | Image Picker | `Array<string \| number>` |
11362
+ * | Long Text | `string` |
11363
+ * | Multi-Select Dropdown | `object` |
11364
+ * | Multi-Select Matrix | `object` |
11365
+ * | Multiple Textboxes | `Array<string>` |
11080
11366
  * | Panel | (no value) |
11081
- * | Radio Button Group | `String` \| `Number` |
11082
- * | Ranking | `Array<String \| Number>` |
11083
- * | Rating Scale | `Number` \| `String` |
11084
- * | Signature | `String` (base64-encoded image) |
11085
- * | Single-Line Input | `String` \| `Number` \| `Date` |
11086
- * | Single-Select Matrix | `Object` |
11087
- * | Yes/No (Boolean) | `Boolean` \| `String` |
11367
+ * | Radio Button Group | `string` \| `number` |
11368
+ * | Ranking | `Array<string \| number>` |
11369
+ * | Rating Scale | `number` \| `string` |
11370
+ * | Signature | `string` (base64-encoded image) |
11371
+ * | Single-Line Input | `string` \| `number` \| `Date` |
11372
+ * | Single-Select Matrix | `object` |
11373
+ * | Yes/No (Boolean) | `boolean` \| `string` |
11088
11374
  */
11089
11375
  get value(): any;
11090
11376
  set value(newValue: any);
@@ -11164,6 +11450,15 @@ declare module "question" {
11164
11450
  */
11165
11451
  get defaultValueExpression(): any;
11166
11452
  set defaultValueExpression(val: any);
11453
+ /**
11454
+ * A Boolean expression. If it evaluates to `true`, the question value is reset to [default](#defaultValue).
11455
+ *
11456
+ * A survey parses and runs all expressions on startup. If any values used in the expression change, the survey re-evaluates it.
11457
+ *
11458
+ * [Expressions](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions (linkStyle))
11459
+ */
11460
+ get resetValueIf(): string;
11461
+ set resetValueIf(val: string);
11167
11462
  get resizeStyle(): "none" | "both";
11168
11463
  /**
11169
11464
  * Returns the question value as an object in which the question name, title, value, and other parameters are stored as individual properties.
@@ -11253,7 +11548,7 @@ declare module "question" {
11253
11548
  hasErrors(fireCallback?: boolean, rec?: any): boolean;
11254
11549
  /**
11255
11550
  * Validates this question and returns `false` if the validation fails.
11256
- * @param fireCallback *Optional.* Pass `false` if you do not want to show validation errors in the UI.
11551
+ * @param fireCallback *(Optional)* Pass `false` if you do not want to show validation errors in the UI.
11257
11552
  * @see [Data Validation](https://surveyjs.io/form-library/documentation/data-validation)
11258
11553
  */
11259
11554
  validate(fireCallback?: boolean, rec?: any): boolean;
@@ -11284,6 +11579,7 @@ declare module "question" {
11284
11579
  allowSpaceAsAnswer: boolean;
11285
11580
  private isValueChangedInSurvey;
11286
11581
  private isOldAnswered;
11582
+ private isSettingQuestionValue;
11287
11583
  protected allowNotifyValueChanged: boolean;
11288
11584
  protected setNewValue(newValue: any): void;
11289
11585
  private checkIsValueCorrect;
@@ -11531,6 +11827,7 @@ declare module "question_matrixdropdownbase" {
11531
11827
  getSharedQuestionByName(columnName: string, row: MatrixDropdownRowModelBase): Question;
11532
11828
  onTotalValueChanged(): any;
11533
11829
  getSurvey(): ISurvey;
11830
+ getDataFilteredValues(): any;
11534
11831
  }
11535
11832
  export class MatrixDropdownCell {
11536
11833
  column: MatrixDropdownColumn;
@@ -11603,6 +11900,7 @@ declare module "question_matrixdropdownbase" {
11603
11900
  findQuestionByName(name: string): IQuestion;
11604
11901
  private setValueCore;
11605
11902
  private updateQuestionsValue;
11903
+ runTriggers(name: string, value: any): void;
11606
11904
  private hasQuestonError;
11607
11905
  get isEmpty(): boolean;
11608
11906
  getQuestionByColumn(column: MatrixDropdownColumn): Question;
@@ -11845,6 +12143,7 @@ declare module "question_matrixdropdownbase" {
11845
12143
  localeChanged(): void;
11846
12144
  private runFuncForCellQuestions;
11847
12145
  runCondition(values: HashTable<any>, properties: HashTable<any>): void;
12146
+ runTriggers(name: string, value: any): void;
11848
12147
  protected shouldRunColumnExpression(): boolean;
11849
12148
  protected runCellsCondition(values: HashTable<any>, properties: HashTable<any>): void;
11850
12149
  private checkColumnsVisibility;
@@ -11932,7 +12231,10 @@ declare module "question_matrixdropdownbase" {
11932
12231
  protected getRowDisplayValue(keysAsText: boolean, row: MatrixDropdownRowModelBase, rowValue: any): any;
11933
12232
  getPlainData(options?: IPlainDataOptions): IQuestionPlainData;
11934
12233
  addConditionObjectsByContext(objects: Array<IConditionObject>, context: any): void;
12234
+ onHidingContent(): void;
12235
+ protected getIsReadyNestedQuestions(): Array<Question>;
11935
12236
  protected collectNestedQuestionsCore(questions: Question[], visibleOnly: boolean): void;
12237
+ protected collectNestedQuestonsInRows(rows: Array<MatrixDropdownRowModelBase>, questions: Question[], visibleOnly: boolean): void;
11936
12238
  protected getConditionObjectRowName(index: number): string;
11937
12239
  protected getConditionObjectRowText(index: number): string;
11938
12240
  protected getConditionObjectsRowIndeces(): Array<number>;
@@ -11986,6 +12288,7 @@ declare module "question_matrixdropdownbase" {
11986
12288
  createRowDetailPanel(row: MatrixDropdownRowModelBase): PanelModel;
11987
12289
  getSharedQuestionByName(columnName: string, row: MatrixDropdownRowModelBase): Question;
11988
12290
  onTotalValueChanged(): any;
12291
+ getDataFilteredValues(): any;
11989
12292
  getParentTextProcessor(): ITextProcessor;
11990
12293
  getQuestionFromArray(name: string, index: number): IQuestion;
11991
12294
  private isMatrixValueEmpty;
@@ -12062,7 +12365,7 @@ declare module "base-interfaces" {
12062
12365
  validateQuestion(question: IQuestion): SurveyError;
12063
12366
  validatePanel(panel: IPanel): SurveyError;
12064
12367
  hasVisibleQuestionByValueName(valueName: string): boolean;
12065
- questionCountByValueName(valueName: string): number;
12368
+ questionsByValueName(valueName: string): Array<IQuestion>;
12066
12369
  processHtml(html: string, reason: string): string;
12067
12370
  getSurveyMarkdownHtml(element: Base, text: string, name: string): string;
12068
12371
  getRendererForString(element: Base, name: string): string;
@@ -12288,6 +12591,8 @@ declare module "base-interfaces" {
12288
12591
  stylesSheetsMountContainer: HTMLElement;
12289
12592
  };
12290
12593
  export type LayoutElementContainer = "header" | "footer" | "left" | "right" | "contentTop" | "contentBottom";
12594
+ export type HorizontalAlignment = "left" | "center" | "right";
12595
+ export type VerticalAlignment = "top" | "middle" | "bottom";
12291
12596
  export interface ISurveyLayoutElement {
12292
12597
  id: string;
12293
12598
  container?: LayoutElementContainer | Array<LayoutElementContainer>;
@@ -12401,6 +12706,7 @@ declare module "base" {
12401
12706
  import { JsonObjectProperty } from "jsonobject";
12402
12707
  import { ItemValue } from "itemvalue";
12403
12708
  import { IElement, IFindElement, IProgressInfo, ISurvey } from "base-interfaces";
12709
+ import { ExpressionRunner } from "conditions";
12404
12710
  export class Bindings {
12405
12711
  private obj;
12406
12712
  private properties;
@@ -12492,7 +12798,7 @@ declare module "base" {
12492
12798
  *
12493
12799
  * - `sender`: `this`\
12494
12800
  * A SurveyJS object whose property has changed.
12495
- * - `options.name`: `String`\
12801
+ * - `options.name`: `string`\
12496
12802
  * The name of the changed property.
12497
12803
  * - `options.newValue`: `any`\
12498
12804
  * A new value for the property.
@@ -12509,7 +12815,7 @@ declare module "base" {
12509
12815
  * A SurveyJS object whose property contains an array of `ItemValue` objects.
12510
12816
  * - `options.obj`: [`ItemValue`](https://surveyjs.io/form-library/documentation/itemvalue)\
12511
12817
  * An `ItemValue` object.
12512
- * - `options.propertyName`: `String`\
12818
+ * - `options.propertyName`: `string`\
12513
12819
  * The name of the property to which an array of `ItemValue` objects is assigned (for example, `"choices"` or `"rows"`).
12514
12820
  * - `options.name`: `"text"` | `"value"`\
12515
12821
  * The name of the changed property.
@@ -12634,6 +12940,12 @@ declare module "base" {
12634
12940
  protected canRunConditions(): boolean;
12635
12941
  private checkConditionPropertyChanged;
12636
12942
  private runConditionItemCore;
12943
+ private asynExpressionHash;
12944
+ private doBeforeAsynRun;
12945
+ private doAfterAsynRun;
12946
+ protected onAsyncRunningChanged(): void;
12947
+ get isAsyncExpressionRunning(): boolean;
12948
+ protected createExpressionRunner(expression: string): ExpressionRunner;
12637
12949
  /**
12638
12950
  * Registers a function to call when a property value changes.
12639
12951
  * @param propertyNames An array of one or multiple property names.
@@ -12759,6 +13071,7 @@ declare module "popup" {
12759
13071
  componentName: string;
12760
13072
  data: any;
12761
13073
  onApply: () => boolean;
13074
+ isFocusedContent?: boolean;
12762
13075
  }
12763
13076
  export interface IPopupModel<T = any> extends IDialogOptions {
12764
13077
  contentComponentName: string;
@@ -12822,10 +13135,10 @@ declare module "settings" {
12822
13135
  *
12823
13136
  * Nested properties:
12824
13137
  *
12825
- * - `showEmptyDescriptions`: `Boolean`\
13138
+ * - `showEmptyDescriptions`: `boolean`\
12826
13139
  * Specifies whether to display an empty description for pages and panels. Default value: `true`.
12827
13140
  *
12828
- * - `showEmptyTitles`: `Boolean`\
13141
+ * - `showEmptyTitles`: `boolean`\
12829
13142
  * Specifies whether to display an empty title for pages and panels. Default value: `true`.
12830
13143
  */
12831
13144
  designMode: {
@@ -12845,13 +13158,13 @@ declare module "settings" {
12845
13158
  *
12846
13159
  * Nested properties:
12847
13160
  *
12848
- * - `useLocalTimeZone`: `Boolean`\
13161
+ * - `useLocalTimeZone`: `boolean`\
12849
13162
  * Disable this property if you want internal SurveyJS functions to use methods that work with UTC date and time (`setUTCDate()` `setUTCHours()`, etc.) instead of methods that work with local date and time (`setYear`, `setHours()`, etc.). Default value: `true`.
12850
13163
  *
12851
- * - `defaultLocaleName`: `String`\
13164
+ * - `defaultLocaleName`: `string`\
12852
13165
  * A property key that stores a translation for the default locale. Default value: `"default"`.
12853
13166
  *
12854
- * - `storeDuplicatedTranslations`: `Boolean`\
13167
+ * - `storeDuplicatedTranslations`: `boolean`\
12855
13168
  * Specifies whether surveys should store translation strings that equal the translation strings in the default locale. Default value: `false`.
12856
13169
  */
12857
13170
  localization: {
@@ -12876,16 +13189,16 @@ declare module "settings" {
12876
13189
  *
12877
13190
  * Nested properties:
12878
13191
  *
12879
- * - `encodeUrlParams`: `Boolean`\
13192
+ * - `encodeUrlParams`: `boolean`\
12880
13193
  * Specifies whether to encode URL parameters when you access a web service. Default value: `true`.
12881
13194
  *
12882
- * - `cacheLoadedChoices`: `Boolean`\
13195
+ * - `cacheLoadedChoices`: `boolean`\
12883
13196
  * Specifies whether to cache [choices](https://surveyjs.io/form-library/documentation/api-reference/checkbox-question-model#choicesByUrl) loaded from a web service. Default value: `true`.
12884
13197
  *
12885
- * - `disableQuestionWhileLoadingChoices`: `Boolean`\
13198
+ * - `disableQuestionWhileLoadingChoices`: `boolean`\
12886
13199
  * Disables a question while its choices are being loaded from a web service. Default value: `false`.
12887
13200
  *
12888
- * - `surveyServiceUrl`: `String`\
13201
+ * - `surveyServiceUrl`: `string`\
12889
13202
  * The URL of the SurveyJS Service API endpoint.
12890
13203
  */
12891
13204
  web: {
@@ -12916,14 +13229,14 @@ declare module "settings" {
12916
13229
  *
12917
13230
  * Nested properties:
12918
13231
  *
12919
- * - `changeNavigationButtonsOnComplete`: `Boolean`\
13232
+ * - `changeNavigationButtonsOnComplete`: `boolean`\
12920
13233
  * Specifies whether to re-evaluate an expression associated with the [Complete trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#complete) immediately when a question value changes. If the expression evaluates to `true`, the trigger is executed. Default value: `false`.\
12921
13234
  * 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.
12922
13235
  *
12923
- * - `executeCompleteOnValueChanged`: `Boolean`\
13236
+ * - `executeCompleteOnValueChanged`: `boolean`\
12924
13237
  * Specifies whether to replace the Next button with the Complete button when the [Complete trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#complete) is going to be executed. Default value: `true`.
12925
13238
  *
12926
- * - `executeSkipOnValueChanged`: `Boolean`\
13239
+ * - `executeSkipOnValueChanged`: `boolean`\
12927
13240
  * Specifies whether to re-evaluate an expression associated with the [Skip trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#skip) immediately when a question value changes. If the expression evaluates to `true`, the trigger is executed. Default value: `true`.\
12928
13241
  * Disable this property if you want to re-evaluate the Skip trigger's expression only when respondents navigate to another page.
12929
13242
  */
@@ -12949,13 +13262,13 @@ declare module "settings" {
12949
13262
  *
12950
13263
  * Nested properties:
12951
13264
  *
12952
- * - `itemValueSerializeAsObject`: `Boolean`\
13265
+ * - `itemValueSerializeAsObject`: `boolean`\
12953
13266
  * Enable this property if you want to serialize [`ItemValue`](https://surveyjs.io/form-library/documentation/api-reference/itemvalue) instances as objects even when they include only the `value` property. Default value: `false`. View an example below.
12954
13267
  *
12955
- * - `itemValueSerializeDisplayText`: `Boolean`\
13268
+ * - `itemValueSerializeDisplayText`: `boolean`\
12956
13269
  * Enable this property if you want to serialize the `text` property of [`ItemValue`](https://surveyjs.io/form-library/documentation/api-reference/itemvalue) objects even when it is empty or equal to the `value` property. Default value: `false`. View an example below.
12957
13270
  *
12958
- * - `localizableStringSerializeAsObject`: `Boolean`\
13271
+ * - `localizableStringSerializeAsObject`: `boolean`\
12959
13272
  * Enable this property if you want to serialize [`LocalizableString`](https://surveyjs.io/form-library/documentation/api-reference/localizablestring) instances as objects even when they include only a translation string for the default locale. For example, `"Custom String"` will be serialized as `{ default: "Custom String" }`. Default value: `false`.
12960
13273
  *
12961
13274
  * ```js
@@ -12994,7 +13307,7 @@ declare module "settings" {
12994
13307
  *
12995
13308
  * Nested properties:
12996
13309
  *
12997
- * - `enabled`: `Boolean`\
13310
+ * - `enabled`: `boolean`\
12998
13311
  * Specifies whether to add questions to the DOM only when they get into the viewport. Default value: `false`.
12999
13312
  *
13000
13313
  * > Lazy rendering is an experimental feature that may not work as expected in all use cases.
@@ -13013,28 +13326,28 @@ declare module "settings" {
13013
13326
  *
13014
13327
  * Nested properties:
13015
13328
  *
13016
- * - `defaultRowName`: `String`\
13329
+ * - `defaultRowName`: `string`\
13017
13330
  * A property key that stores an object with default cell values. Default value: "default".
13018
13331
  *
13019
- * - `defaultCellType`: `String`\
13332
+ * - `defaultCellType`: `string`\
13020
13333
  * The default type of matrix cells. Default value: `"dropdown"`.\
13021
13334
  * 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.
13022
13335
  *
13023
- * - `totalsSuffix`: `String`\
13336
+ * - `totalsSuffix`: `string`\
13024
13337
  * A suffix added to the name of the property that stores total values. The resulting property name consists of the matrix name and the suffix. Default value: `"-total"`.
13025
13338
  *
13026
- * - `maxRowCount`: `Number`\
13339
+ * - `maxRowCount`: `number`\
13027
13340
  * A maximum number of rows in a Dynamic Matrix. Default value: 1000.\
13028
13341
  * 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).
13029
13342
  *
13030
- * - `maxRowCountInCondition`: `Number`\
13343
+ * - `maxRowCountInCondition`: `number`\
13031
13344
  * A maximum number of matrix rows included in the Condition drop-down menu in Survey Creator. This menu is used to configure conditional survey logic. Default value: 1.\
13032
13345
  * 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.
13033
13346
  *
13034
- * - `renderRemoveAsIcon`: `Boolean`\
13347
+ * - `renderRemoveAsIcon`: `boolean`\
13035
13348
  * Disable this property if you want to render the Remove action in Dynamic Matrix as a button. Otherwise, the action is rendered as an icon. Default value: `true`.
13036
13349
  *
13037
- * - `columnWidthsByType`: `Object`\
13350
+ * - `columnWidthsByType`: `object`\
13038
13351
  * An object that specifies fixed and minimum column width based on the column type.\
13039
13352
  * Example: `settings.matrix.columnWidthsByType = { "tagbox": { minWidth: "240px", width: "300px" } }`
13040
13353
  *
@@ -13085,11 +13398,11 @@ declare module "settings" {
13085
13398
  *
13086
13399
  * Nested properties:
13087
13400
  *
13088
- * - `maxPanelCount`: `Number`\
13401
+ * - `maxPanelCount`: `number`\
13089
13402
  * A maximum number of panels in Dynamic Panel. Default value: 100.\
13090
13403
  * You can specify this setting for an individual Dynamic Panel: [`maxPanelCount`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#maxPanelCount).
13091
13404
  *
13092
- * - `maxPanelCountInCondition`: `Number`\
13405
+ * - `maxPanelCountInCondition`: `number`\
13093
13406
  * A maximum number of Dynamic Panel panels included in the Condition drop-down menu in Survey Creator. This menu is used to configure conditional survey logic. Default value: 1.\
13094
13407
  * 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.
13095
13408
  */
@@ -13117,6 +13430,7 @@ declare module "settings" {
13117
13430
  * Specifies how to render the input field of [Text](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model) questions in [read-only](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#readOnly) mode: as a disabled `<input>` element or as a `<div>` element with a non-editable question value within it.
13118
13431
  */
13119
13432
  readOnly: {
13433
+ enableValidation: boolean;
13120
13434
  commentRenderMode: string;
13121
13435
  textRenderMode: string;
13122
13436
  };
@@ -13133,10 +13447,10 @@ declare module "settings" {
13133
13447
  *
13134
13448
  * Nested properties:
13135
13449
  *
13136
- * - `includeQuestionsWithHiddenNumber`: `Boolean`\
13450
+ * - `includeQuestionsWithHiddenNumber`: `boolean`\
13137
13451
  * Specifies whether to number questions whose [`hideNumber`](https://surveyjs.io/form-library/documentation/api-reference/question#hideNumber) property is enabled. Default value: `false`.
13138
13452
  *
13139
- * - `includeQuestionsWithHiddenTitle`: `Boolean`\
13453
+ * - `includeQuestionsWithHiddenTitle`: `boolean`\
13140
13454
  * Specifies whether to number questions whose [`titleLocation`](https://surveyjs.io/form-library/documentation/api-reference/question#titleLocation) property is set to `"hidden"`. Default value: `false`.
13141
13455
  */
13142
13456
  numbering: {
@@ -13166,10 +13480,10 @@ declare module "settings" {
13166
13480
  *
13167
13481
  * Nested properties:
13168
13482
  *
13169
- * - `trimStrings`: `Boolean`\
13483
+ * - `trimStrings`: `boolean`\
13170
13484
  * Specifies whether to remove whitespace from both ends of a string before the comparison. Default value: `true`.
13171
13485
  *
13172
- * - `caseSensitive`: `Boolean`\
13486
+ * - `caseSensitive`: `boolean`\
13173
13487
  * Specifies whether to differentiate between capital and lower-case letters. Default value: `false`.
13174
13488
  */
13175
13489
  comparator: {
@@ -13206,16 +13520,27 @@ declare module "settings" {
13206
13520
  */
13207
13521
  tagboxCloseOnSelect: boolean;
13208
13522
  /**
13209
- * A property that allows you to display a custom confirm dialog instead of the standard browser dialog.
13523
+ * A property that allows you to display a custom confirm dialog.
13210
13524
  *
13211
13525
  * Set this property to a function that renders your custom dialog window. This function should return `true` if a user confirms an action or `false` otherwise.
13212
13526
  * @param message A message to be displayed in the confirm dialog window.
13213
13527
  */
13214
13528
  confirmActionFunc: (message: string) => boolean;
13215
13529
  /**
13216
- * A property that allows you to display a custom confirm dialog instead of the standard browser dialog in async mode.
13530
+ * A property that allows you to display a custom confirm dialog in async mode or activate the standard browser dialog.
13217
13531
  *
13218
- * Set this property to a function that renders your custom dialog window. This function should return `true` to be enabled; otherwise, a survey executes the [`confirmActionFunc`](#confirmActionFunc) function. Pass the dialog result as the `callback` parameter: `true` if a user confirms an action, `false` otherwise.
13532
+ * To display a custom confirm dialog, set this property to a function that renders it. This function should return `true` to be enabled; otherwise, a survey executes the [`confirmActionFunc`](#confirmActionFunc) function. Pass the dialog result as the `callback` parameter: `true` if a user confirms an action, `false` otherwise.
13533
+ *
13534
+ * To activate the standard browser dialog, set the `confirmActionAsync` property to a function that returns `false`. With this configuration, a survey falls back to the [`confirmActionFunc`](#confirmActionFunc) function, which renders the standard browser dialog by default.
13535
+ *
13536
+ * ```js
13537
+ * import { settings } from "survey-core";
13538
+ *
13539
+ * // Display the standard browser dialog
13540
+ * settings.confirmActionAsync = () => {
13541
+ * return false;
13542
+ * }
13543
+ * ```
13219
13544
  * @param message A message to be displayed in the confirm dialog window.
13220
13545
  * @param callback A callback function that should be called with `true` if a user confirms an action or `false` otherwise.
13221
13546
  */
@@ -13247,7 +13572,7 @@ declare module "settings" {
13247
13572
  *
13248
13573
  * Nested properties:
13249
13574
  *
13250
- * - `lifetime`: `Number`\
13575
+ * - `lifetime`: `number`\
13251
13576
  * Specifies a time period during which a notification is displayed; measured in milliseconds.
13252
13577
  */
13253
13578
  notifications: {
@@ -13460,6 +13785,7 @@ declare module "dropdownListModel" {
13460
13785
  setSearchEnabled(newValue: boolean): void;
13461
13786
  updateItems(): void;
13462
13787
  onClick(event: any): void;
13788
+ chevronPointerDown(event: any): void;
13463
13789
  protected onPropertyChangedHandler(sender: any, options: any): void;
13464
13790
  protected focusItemOnClickAndPopup(): void;
13465
13791
  onClear(event: any): void;
@@ -14479,6 +14805,7 @@ declare module "question_html" {
14479
14805
  get locHtml(): LocalizableString;
14480
14806
  get processedHtml(): string;
14481
14807
  private processHtml;
14808
+ get isNewA11yStructure(): boolean;
14482
14809
  }
14483
14810
  }
14484
14811
  declare module "question_radiogroup" {
@@ -15067,12 +15394,13 @@ declare module "surveyToc" {
15067
15394
  export class TOCModel {
15068
15395
  survey: SurveyModel;
15069
15396
  constructor(survey: SurveyModel);
15070
- isMobile: boolean;
15397
+ get isMobile(): boolean;
15071
15398
  get containerCss(): string;
15072
15399
  listModel: ListModel<Action>;
15073
15400
  popupModel: PopupModel;
15074
15401
  icon: string;
15075
15402
  togglePopup: () => void;
15403
+ dispose(): void;
15076
15404
  }
15077
15405
  }
15078
15406
  declare module "surveyProgress" {
@@ -15316,7 +15644,7 @@ declare module "question_custom" {
15316
15644
  *
15317
15645
  * - `question`: [Question](https://surveyjs.io/Documentation/Library?id=Question)\
15318
15646
  * A custom question.
15319
- * - `propertyName`: `String`\
15647
+ * - `propertyName`: `string`\
15320
15648
  * The name of the changed property.
15321
15649
  * - `newValue`: `any`\
15322
15650
  * A new value for the property.
@@ -15329,7 +15657,7 @@ declare module "question_custom" {
15329
15657
  *
15330
15658
  * - `question`: [Question](https://surveyjs.io/Documentation/Library?id=Question)\
15331
15659
  * A custom question.
15332
- * - `name`: `String`\
15660
+ * - `name`: `string`\
15333
15661
  * The question's [name](https://surveyjs.io/Documentation/Library?id=Question#name).
15334
15662
  * - `newValue`: `any`\
15335
15663
  * A new value for the question.
@@ -15344,7 +15672,7 @@ declare module "question_custom" {
15344
15672
  *
15345
15673
  * - `question`: [Question](https://surveyjs.io/Documentation/Library?id=Question)\
15346
15674
  * A custom question.
15347
- * - `name`: `String`\
15675
+ * - `name`: `string`\
15348
15676
  * The question's [name](https://surveyjs.io/Documentation/Library?id=Question#name).
15349
15677
  * - `newValue`: `any`\
15350
15678
  * A new value for the question.
@@ -15359,9 +15687,9 @@ declare module "question_custom" {
15359
15687
  * A custom question.
15360
15688
  * - `options.obj`: [ItemValue](https://surveyjs.io/Documentation/Library?id=itemvalue)\
15361
15689
  * An `ItemValue` object.
15362
- * - `options.propertyName`: `String`\
15690
+ * - `options.propertyName`: `string`\
15363
15691
  * The name of the property to which an array of `ItemValue` objects is assigned (for example, `"choices"` or `"rows"`).
15364
- * - `options.name`: `String`\
15692
+ * - `options.name`: `string`\
15365
15693
  * The name of the changed property: `"text"` or `"value"`.
15366
15694
  * - `options.newValue`: `any`\
15367
15695
  * A new value for the property.
@@ -15445,6 +15773,7 @@ declare module "question_custom" {
15445
15773
  protected onPropertyValueChanged(name: string, oldValue: any, newValue: any): void;
15446
15774
  itemValuePropertyChanged(item: ItemValue, name: string, oldValue: any, newValue: any): void;
15447
15775
  onFirstRendering(): void;
15776
+ onHidingContent(): void;
15448
15777
  getProgressInfo(): IProgressInfo;
15449
15778
  protected abstract getElement(): SurveyElement;
15450
15779
  protected initElement(el: SurveyElement): void;
@@ -15452,7 +15781,7 @@ declare module "question_custom" {
15452
15781
  setSurveyImpl(value: ISurveyImpl, isLight?: boolean): void;
15453
15782
  onSurveyLoad(): void;
15454
15783
  afterRenderQuestionElement(el: HTMLElement): void;
15455
- afterRender(el: any): void;
15784
+ afterRenderCore(el: any): void;
15456
15785
  protected onUpdateQuestionCssClasses(element: Question, css: any): void;
15457
15786
  protected setQuestionValue(newValue: any, updateIsAnswered?: boolean): void;
15458
15787
  protected setNewValue(newValue: any): void;
@@ -15496,7 +15825,7 @@ declare module "question_custom" {
15496
15825
  protected onSetData(): void;
15497
15826
  hasErrors(fireCallback?: boolean, rec?: any): boolean;
15498
15827
  focus(onError?: boolean): void;
15499
- afterRender(el: any): void;
15828
+ afterRenderCore(el: any): void;
15500
15829
  get contentQuestion(): Question;
15501
15830
  protected createQuestion(): Question;
15502
15831
  onSurveyLoad(): void;
@@ -15556,74 +15885,6 @@ declare module "question_custom" {
15556
15885
  private setAfterRenderCallbacks;
15557
15886
  }
15558
15887
  }
15559
- declare module "popup-view-model" {
15560
- import { Base } from "base";
15561
- import { PopupModel } from "popup";
15562
- import { CssClassBuilder } from "utils/cssClassBuilder";
15563
- import { ActionContainer } from "actions/container";
15564
- export const FOCUS_INPUT_SELECTOR = "input:not(:disabled):not([readonly]):not([type=hidden]),select:not(:disabled):not([readonly]),textarea:not(:disabled):not([readonly]), button:not(:disabled):not([readonly]), [tabindex]:not([tabindex^=\"-\"])";
15565
- export class PopupBaseViewModel extends Base {
15566
- private static SubscriptionId;
15567
- private subscriptionId;
15568
- protected popupSelector: string;
15569
- protected fixedPopupContainer: string;
15570
- protected containerSelector: string;
15571
- protected scrollingContentSelector: string;
15572
- protected prevActiveElement: HTMLElement;
15573
- protected footerToolbarValue: ActionContainer;
15574
- top: string;
15575
- left: string;
15576
- height: string;
15577
- width: string;
15578
- minWidth: string;
15579
- isVisible: boolean;
15580
- locale: string;
15581
- get container(): HTMLElement;
15582
- private containerElement;
15583
- private createdContainer;
15584
- getLocale(): string;
15585
- protected hidePopup(): void;
15586
- protected getStyleClass(): CssClassBuilder;
15587
- protected getShowFooter(): boolean;
15588
- protected getShowHeader(): boolean;
15589
- protected getPopupHeaderTemplate(): string;
15590
- protected createFooterActionBar(): void;
15591
- protected resetDimensionsAndPositionStyleProperties(): void;
15592
- protected onModelChanging(newModel: PopupModel): void;
15593
- private setupModel;
15594
- private _model;
15595
- get model(): PopupModel;
15596
- set model(model: PopupModel);
15597
- constructor(model: PopupModel);
15598
- get title(): string;
15599
- get contentComponentName(): string;
15600
- get contentComponentData(): any;
15601
- get isModal(): boolean;
15602
- get isFocusedContent(): boolean;
15603
- get isFocusedContainer(): boolean;
15604
- get showFooter(): boolean;
15605
- get showHeader(): boolean;
15606
- get popupHeaderTemplate(): string;
15607
- get isOverlay(): boolean;
15608
- get styleClass(): string;
15609
- get cancelButtonText(): string;
15610
- get footerToolbar(): ActionContainer;
15611
- onKeyDown(event: any): void;
15612
- private trapFocus;
15613
- switchFocus(): void;
15614
- updateOnShowing(): void;
15615
- updateOnHiding(): void;
15616
- private focusContainer;
15617
- private focusFirstInput;
15618
- clickOutside(event?: Event): void;
15619
- cancel(): void;
15620
- dispose(): void;
15621
- initializePopupContainer(): void;
15622
- setComponentElement(componentRoot: HTMLElement, targetElement?: HTMLElement | null): void;
15623
- resetComponentElement(): void;
15624
- protected preventScrollOuside(event: any, deltaY: number): void;
15625
- }
15626
- }
15627
15888
  declare module "popup-dropdown-view-model" {
15628
15889
  import { IPosition } from "utils/popup";
15629
15890
  import { CssClassBuilder } from "utils/cssClassBuilder";
@@ -15808,6 +16069,7 @@ declare module "entries/chunks/model" {
15808
16069
  export { PopupSurveyModel, SurveyWindowModel } from "popup-survey";
15809
16070
  export { TextPreProcessor } from "textPreProcessor";
15810
16071
  export { Notifier } from "notifier";
16072
+ export { Cover, CoverCell } from "cover";
15811
16073
  export { dxSurveyService } from "dxSurveyService";
15812
16074
  export { englishStrings } from "localization/english";
15813
16075
  export { surveyLocalization, surveyStrings } from "surveyStrings";
@@ -18335,6 +18597,10 @@ declare module "localization/arabic" {
18335
18597
  clearCaption: string;
18336
18598
  signaturePlaceHolder: string;
18337
18599
  chooseFileCaption: string;
18600
+ takePhotoCaption: string;
18601
+ cameraPlaceHolder: string;
18602
+ fileCameraDragAreaPlaceHolder: string;
18603
+ replaceFileCaption: string;
18338
18604
  removeFileCaption: string;
18339
18605
  booleanCheckedLabel: string;
18340
18606
  booleanUncheckedLabel: string;
@@ -18429,6 +18695,10 @@ declare module "localization/basque" {
18429
18695
  clearCaption: string;
18430
18696
  signaturePlaceHolder: string;
18431
18697
  chooseFileCaption: string;
18698
+ takePhotoCaption: string;
18699
+ cameraPlaceHolder: string;
18700
+ fileCameraDragAreaPlaceHolder: string;
18701
+ replaceFileCaption: string;
18432
18702
  removeFileCaption: string;
18433
18703
  booleanCheckedLabel: string;
18434
18704
  booleanUncheckedLabel: string;
@@ -18523,6 +18793,10 @@ declare module "localization/bulgarian" {
18523
18793
  clearCaption: string;
18524
18794
  signaturePlaceHolder: string;
18525
18795
  chooseFileCaption: string;
18796
+ takePhotoCaption: string;
18797
+ cameraPlaceHolder: string;
18798
+ fileCameraDragAreaPlaceHolder: string;
18799
+ replaceFileCaption: string;
18526
18800
  removeFileCaption: string;
18527
18801
  booleanCheckedLabel: string;
18528
18802
  booleanUncheckedLabel: string;
@@ -18617,6 +18891,10 @@ declare module "localization/catalan" {
18617
18891
  clearCaption: string;
18618
18892
  signaturePlaceHolder: string;
18619
18893
  chooseFileCaption: string;
18894
+ takePhotoCaption: string;
18895
+ cameraPlaceHolder: string;
18896
+ fileCameraDragAreaPlaceHolder: string;
18897
+ replaceFileCaption: string;
18620
18898
  removeFileCaption: string;
18621
18899
  booleanCheckedLabel: string;
18622
18900
  booleanUncheckedLabel: string;
@@ -18711,6 +18989,10 @@ declare module "localization/croatian" {
18711
18989
  clearCaption: string;
18712
18990
  signaturePlaceHolder: string;
18713
18991
  chooseFileCaption: string;
18992
+ takePhotoCaption: string;
18993
+ cameraPlaceHolder: string;
18994
+ fileCameraDragAreaPlaceHolder: string;
18995
+ replaceFileCaption: string;
18714
18996
  removeFileCaption: string;
18715
18997
  booleanCheckedLabel: string;
18716
18998
  booleanUncheckedLabel: string;
@@ -18805,6 +19087,10 @@ declare module "localization/czech" {
18805
19087
  clearCaption: string;
18806
19088
  signaturePlaceHolder: string;
18807
19089
  chooseFileCaption: string;
19090
+ takePhotoCaption: string;
19091
+ cameraPlaceHolder: string;
19092
+ fileCameraDragAreaPlaceHolder: string;
19093
+ replaceFileCaption: string;
18808
19094
  removeFileCaption: string;
18809
19095
  booleanCheckedLabel: string;
18810
19096
  booleanUncheckedLabel: string;
@@ -18899,6 +19185,10 @@ declare module "localization/danish" {
18899
19185
  clearCaption: string;
18900
19186
  signaturePlaceHolder: string;
18901
19187
  chooseFileCaption: string;
19188
+ takePhotoCaption: string;
19189
+ cameraPlaceHolder: string;
19190
+ fileCameraDragAreaPlaceHolder: string;
19191
+ replaceFileCaption: string;
18902
19192
  removeFileCaption: string;
18903
19193
  booleanCheckedLabel: string;
18904
19194
  booleanUncheckedLabel: string;
@@ -18993,6 +19283,10 @@ declare module "localization/dutch" {
18993
19283
  clearCaption: string;
18994
19284
  signaturePlaceHolder: string;
18995
19285
  chooseFileCaption: string;
19286
+ takePhotoCaption: string;
19287
+ cameraPlaceHolder: string;
19288
+ fileCameraDragAreaPlaceHolder: string;
19289
+ replaceFileCaption: string;
18996
19290
  removeFileCaption: string;
18997
19291
  booleanCheckedLabel: string;
18998
19292
  booleanUncheckedLabel: string;
@@ -19088,6 +19382,10 @@ declare module "localization/estonian" {
19088
19382
  clearCaption: string;
19089
19383
  signaturePlaceHolder: string;
19090
19384
  chooseFileCaption: string;
19385
+ takePhotoCaption: string;
19386
+ cameraPlaceHolder: string;
19387
+ fileCameraDragAreaPlaceHolder: string;
19388
+ replaceFileCaption: string;
19091
19389
  removeFileCaption: string;
19092
19390
  booleanCheckedLabel: string;
19093
19391
  booleanUncheckedLabel: string;
@@ -19182,6 +19480,10 @@ declare module "localization/finnish" {
19182
19480
  clearCaption: string;
19183
19481
  signaturePlaceHolder: string;
19184
19482
  chooseFileCaption: string;
19483
+ takePhotoCaption: string;
19484
+ cameraPlaceHolder: string;
19485
+ fileCameraDragAreaPlaceHolder: string;
19486
+ replaceFileCaption: string;
19185
19487
  removeFileCaption: string;
19186
19488
  booleanCheckedLabel: string;
19187
19489
  booleanUncheckedLabel: string;
@@ -19276,6 +19578,10 @@ declare module "localization/french" {
19276
19578
  clearCaption: string;
19277
19579
  signaturePlaceHolder: string;
19278
19580
  chooseFileCaption: string;
19581
+ takePhotoCaption: string;
19582
+ cameraPlaceHolder: string;
19583
+ fileCameraDragAreaPlaceHolder: string;
19584
+ replaceFileCaption: string;
19279
19585
  removeFileCaption: string;
19280
19586
  booleanCheckedLabel: string;
19281
19587
  booleanUncheckedLabel: string;
@@ -19370,6 +19676,10 @@ declare module "localization/georgian" {
19370
19676
  clearCaption: string;
19371
19677
  signaturePlaceHolder: string;
19372
19678
  chooseFileCaption: string;
19679
+ takePhotoCaption: string;
19680
+ cameraPlaceHolder: string;
19681
+ fileCameraDragAreaPlaceHolder: string;
19682
+ replaceFileCaption: string;
19373
19683
  removeFileCaption: string;
19374
19684
  booleanCheckedLabel: string;
19375
19685
  booleanUncheckedLabel: string;
@@ -19464,6 +19774,10 @@ declare module "localization/german" {
19464
19774
  clearCaption: string;
19465
19775
  signaturePlaceHolder: string;
19466
19776
  chooseFileCaption: string;
19777
+ takePhotoCaption: string;
19778
+ cameraPlaceHolder: string;
19779
+ fileCameraDragAreaPlaceHolder: string;
19780
+ replaceFileCaption: string;
19467
19781
  removeFileCaption: string;
19468
19782
  booleanCheckedLabel: string;
19469
19783
  booleanUncheckedLabel: string;
@@ -19558,6 +19872,10 @@ declare module "localization/greek" {
19558
19872
  clearCaption: string;
19559
19873
  signaturePlaceHolder: string;
19560
19874
  chooseFileCaption: string;
19875
+ takePhotoCaption: string;
19876
+ cameraPlaceHolder: string;
19877
+ fileCameraDragAreaPlaceHolder: string;
19878
+ replaceFileCaption: string;
19561
19879
  removeFileCaption: string;
19562
19880
  booleanCheckedLabel: string;
19563
19881
  booleanUncheckedLabel: string;
@@ -19652,6 +19970,10 @@ declare module "localization/hebrew" {
19652
19970
  clearCaption: string;
19653
19971
  signaturePlaceHolder: string;
19654
19972
  chooseFileCaption: string;
19973
+ takePhotoCaption: string;
19974
+ cameraPlaceHolder: string;
19975
+ fileCameraDragAreaPlaceHolder: string;
19976
+ replaceFileCaption: string;
19655
19977
  removeFileCaption: string;
19656
19978
  booleanCheckedLabel: string;
19657
19979
  booleanUncheckedLabel: string;
@@ -19746,6 +20068,10 @@ declare module "localization/hindi" {
19746
20068
  clearCaption: string;
19747
20069
  signaturePlaceHolder: string;
19748
20070
  chooseFileCaption: string;
20071
+ takePhotoCaption: string;
20072
+ cameraPlaceHolder: string;
20073
+ fileCameraDragAreaPlaceHolder: string;
20074
+ replaceFileCaption: string;
19749
20075
  removeFileCaption: string;
19750
20076
  booleanCheckedLabel: string;
19751
20077
  booleanUncheckedLabel: string;
@@ -19840,6 +20166,10 @@ declare module "localization/hungarian" {
19840
20166
  clearCaption: string;
19841
20167
  signaturePlaceHolder: string;
19842
20168
  chooseFileCaption: string;
20169
+ takePhotoCaption: string;
20170
+ cameraPlaceHolder: string;
20171
+ fileCameraDragAreaPlaceHolder: string;
20172
+ replaceFileCaption: string;
19843
20173
  removeFileCaption: string;
19844
20174
  booleanCheckedLabel: string;
19845
20175
  booleanUncheckedLabel: string;
@@ -19934,6 +20264,10 @@ declare module "localization/icelandic" {
19934
20264
  clearCaption: string;
19935
20265
  signaturePlaceHolder: string;
19936
20266
  chooseFileCaption: string;
20267
+ takePhotoCaption: string;
20268
+ cameraPlaceHolder: string;
20269
+ fileCameraDragAreaPlaceHolder: string;
20270
+ replaceFileCaption: string;
19937
20271
  removeFileCaption: string;
19938
20272
  booleanCheckedLabel: string;
19939
20273
  booleanUncheckedLabel: string;
@@ -20028,6 +20362,10 @@ declare module "localization/indonesian" {
20028
20362
  clearCaption: string;
20029
20363
  signaturePlaceHolder: string;
20030
20364
  chooseFileCaption: string;
20365
+ takePhotoCaption: string;
20366
+ cameraPlaceHolder: string;
20367
+ fileCameraDragAreaPlaceHolder: string;
20368
+ replaceFileCaption: string;
20031
20369
  removeFileCaption: string;
20032
20370
  booleanCheckedLabel: string;
20033
20371
  booleanUncheckedLabel: string;
@@ -20122,6 +20460,10 @@ declare module "localization/italian" {
20122
20460
  clearCaption: string;
20123
20461
  signaturePlaceHolder: string;
20124
20462
  chooseFileCaption: string;
20463
+ takePhotoCaption: string;
20464
+ cameraPlaceHolder: string;
20465
+ fileCameraDragAreaPlaceHolder: string;
20466
+ replaceFileCaption: string;
20125
20467
  removeFileCaption: string;
20126
20468
  booleanCheckedLabel: string;
20127
20469
  booleanUncheckedLabel: string;
@@ -20216,6 +20558,10 @@ declare module "localization/japanese" {
20216
20558
  clearCaption: string;
20217
20559
  signaturePlaceHolder: string;
20218
20560
  chooseFileCaption: string;
20561
+ takePhotoCaption: string;
20562
+ cameraPlaceHolder: string;
20563
+ fileCameraDragAreaPlaceHolder: string;
20564
+ replaceFileCaption: string;
20219
20565
  removeFileCaption: string;
20220
20566
  booleanCheckedLabel: string;
20221
20567
  booleanUncheckedLabel: string;
@@ -20310,6 +20656,10 @@ declare module "localization/kazakh" {
20310
20656
  clearCaption: string;
20311
20657
  signaturePlaceHolder: string;
20312
20658
  chooseFileCaption: string;
20659
+ takePhotoCaption: string;
20660
+ cameraPlaceHolder: string;
20661
+ fileCameraDragAreaPlaceHolder: string;
20662
+ replaceFileCaption: string;
20313
20663
  removeFileCaption: string;
20314
20664
  booleanCheckedLabel: string;
20315
20665
  booleanUncheckedLabel: string;
@@ -20404,6 +20754,10 @@ declare module "localization/korean" {
20404
20754
  clearCaption: string;
20405
20755
  signaturePlaceHolder: string;
20406
20756
  chooseFileCaption: string;
20757
+ takePhotoCaption: string;
20758
+ cameraPlaceHolder: string;
20759
+ fileCameraDragAreaPlaceHolder: string;
20760
+ replaceFileCaption: string;
20407
20761
  removeFileCaption: string;
20408
20762
  booleanCheckedLabel: string;
20409
20763
  booleanUncheckedLabel: string;
@@ -20498,6 +20852,10 @@ declare module "localization/latvian" {
20498
20852
  clearCaption: string;
20499
20853
  signaturePlaceHolder: string;
20500
20854
  chooseFileCaption: string;
20855
+ takePhotoCaption: string;
20856
+ cameraPlaceHolder: string;
20857
+ fileCameraDragAreaPlaceHolder: string;
20858
+ replaceFileCaption: string;
20501
20859
  removeFileCaption: string;
20502
20860
  booleanCheckedLabel: string;
20503
20861
  booleanUncheckedLabel: string;
@@ -20592,6 +20950,10 @@ declare module "localization/lithuanian" {
20592
20950
  clearCaption: string;
20593
20951
  signaturePlaceHolder: string;
20594
20952
  chooseFileCaption: string;
20953
+ takePhotoCaption: string;
20954
+ cameraPlaceHolder: string;
20955
+ fileCameraDragAreaPlaceHolder: string;
20956
+ replaceFileCaption: string;
20595
20957
  removeFileCaption: string;
20596
20958
  booleanCheckedLabel: string;
20597
20959
  booleanUncheckedLabel: string;
@@ -20686,6 +21048,10 @@ declare module "localization/macedonian" {
20686
21048
  clearCaption: string;
20687
21049
  signaturePlaceHolder: string;
20688
21050
  chooseFileCaption: string;
21051
+ takePhotoCaption: string;
21052
+ cameraPlaceHolder: string;
21053
+ fileCameraDragAreaPlaceHolder: string;
21054
+ replaceFileCaption: string;
20689
21055
  removeFileCaption: string;
20690
21056
  booleanCheckedLabel: string;
20691
21057
  booleanUncheckedLabel: string;
@@ -20780,6 +21146,10 @@ declare module "localization/malay" {
20780
21146
  clearCaption: string;
20781
21147
  signaturePlaceHolder: string;
20782
21148
  chooseFileCaption: string;
21149
+ takePhotoCaption: string;
21150
+ cameraPlaceHolder: string;
21151
+ fileCameraDragAreaPlaceHolder: string;
21152
+ replaceFileCaption: string;
20783
21153
  removeFileCaption: string;
20784
21154
  booleanCheckedLabel: string;
20785
21155
  booleanUncheckedLabel: string;
@@ -20874,6 +21244,10 @@ declare module "localization/norwegian" {
20874
21244
  clearCaption: string;
20875
21245
  signaturePlaceHolder: string;
20876
21246
  chooseFileCaption: string;
21247
+ takePhotoCaption: string;
21248
+ cameraPlaceHolder: string;
21249
+ fileCameraDragAreaPlaceHolder: string;
21250
+ replaceFileCaption: string;
20877
21251
  removeFileCaption: string;
20878
21252
  booleanCheckedLabel: string;
20879
21253
  booleanUncheckedLabel: string;
@@ -20968,6 +21342,10 @@ declare module "localization/persian" {
20968
21342
  clearCaption: string;
20969
21343
  signaturePlaceHolder: string;
20970
21344
  chooseFileCaption: string;
21345
+ takePhotoCaption: string;
21346
+ cameraPlaceHolder: string;
21347
+ fileCameraDragAreaPlaceHolder: string;
21348
+ replaceFileCaption: string;
20971
21349
  removeFileCaption: string;
20972
21350
  booleanCheckedLabel: string;
20973
21351
  booleanUncheckedLabel: string;
@@ -21062,6 +21440,10 @@ declare module "localization/polish" {
21062
21440
  clearCaption: string;
21063
21441
  signaturePlaceHolder: string;
21064
21442
  chooseFileCaption: string;
21443
+ takePhotoCaption: string;
21444
+ cameraPlaceHolder: string;
21445
+ fileCameraDragAreaPlaceHolder: string;
21446
+ replaceFileCaption: string;
21065
21447
  removeFileCaption: string;
21066
21448
  booleanCheckedLabel: string;
21067
21449
  booleanUncheckedLabel: string;
@@ -21156,6 +21538,10 @@ declare module "localization/portuguese" {
21156
21538
  clearCaption: string;
21157
21539
  signaturePlaceHolder: string;
21158
21540
  chooseFileCaption: string;
21541
+ takePhotoCaption: string;
21542
+ cameraPlaceHolder: string;
21543
+ fileCameraDragAreaPlaceHolder: string;
21544
+ replaceFileCaption: string;
21159
21545
  removeFileCaption: string;
21160
21546
  booleanCheckedLabel: string;
21161
21547
  booleanUncheckedLabel: string;
@@ -21253,6 +21639,10 @@ declare module "localization/portuguese-br" {
21253
21639
  clearCaption: string;
21254
21640
  signaturePlaceHolder: string;
21255
21641
  chooseFileCaption: string;
21642
+ takePhotoCaption: string;
21643
+ cameraPlaceHolder: string;
21644
+ fileCameraDragAreaPlaceHolder: string;
21645
+ replaceFileCaption: string;
21256
21646
  removeFileCaption: string;
21257
21647
  booleanCheckedLabel: string;
21258
21648
  booleanUncheckedLabel: string;
@@ -21350,6 +21740,10 @@ declare module "localization/russian" {
21350
21740
  clearCaption: string;
21351
21741
  signaturePlaceHolder: string;
21352
21742
  chooseFileCaption: string;
21743
+ takePhotoCaption: string;
21744
+ cameraPlaceHolder: string;
21745
+ fileCameraDragAreaPlaceHolder: string;
21746
+ replaceFileCaption: string;
21353
21747
  removeFileCaption: string;
21354
21748
  booleanCheckedLabel: string;
21355
21749
  booleanUncheckedLabel: string;
@@ -21444,6 +21838,10 @@ declare module "localization/serbian" {
21444
21838
  clearCaption: string;
21445
21839
  signaturePlaceHolder: string;
21446
21840
  chooseFileCaption: string;
21841
+ takePhotoCaption: string;
21842
+ cameraPlaceHolder: string;
21843
+ fileCameraDragAreaPlaceHolder: string;
21844
+ replaceFileCaption: string;
21447
21845
  removeFileCaption: string;
21448
21846
  booleanCheckedLabel: string;
21449
21847
  booleanUncheckedLabel: string;
@@ -21538,6 +21936,10 @@ declare module "localization/simplified-chinese" {
21538
21936
  clearCaption: string;
21539
21937
  signaturePlaceHolder: string;
21540
21938
  chooseFileCaption: string;
21939
+ takePhotoCaption: string;
21940
+ cameraPlaceHolder: string;
21941
+ fileCameraDragAreaPlaceHolder: string;
21942
+ replaceFileCaption: string;
21541
21943
  removeFileCaption: string;
21542
21944
  booleanCheckedLabel: string;
21543
21945
  booleanUncheckedLabel: string;
@@ -21632,6 +22034,10 @@ declare module "localization/slovak" {
21632
22034
  clearCaption: string;
21633
22035
  signaturePlaceHolder: string;
21634
22036
  chooseFileCaption: string;
22037
+ takePhotoCaption: string;
22038
+ cameraPlaceHolder: string;
22039
+ fileCameraDragAreaPlaceHolder: string;
22040
+ replaceFileCaption: string;
21635
22041
  removeFileCaption: string;
21636
22042
  booleanCheckedLabel: string;
21637
22043
  booleanUncheckedLabel: string;
@@ -21726,6 +22132,10 @@ declare module "localization/spanish" {
21726
22132
  clearCaption: string;
21727
22133
  signaturePlaceHolder: string;
21728
22134
  chooseFileCaption: string;
22135
+ takePhotoCaption: string;
22136
+ cameraPlaceHolder: string;
22137
+ fileCameraDragAreaPlaceHolder: string;
22138
+ replaceFileCaption: string;
21729
22139
  removeFileCaption: string;
21730
22140
  booleanCheckedLabel: string;
21731
22141
  booleanUncheckedLabel: string;
@@ -21820,6 +22230,10 @@ declare module "localization/swahili" {
21820
22230
  clearCaption: string;
21821
22231
  signaturePlaceHolder: string;
21822
22232
  chooseFileCaption: string;
22233
+ takePhotoCaption: string;
22234
+ cameraPlaceHolder: string;
22235
+ fileCameraDragAreaPlaceHolder: string;
22236
+ replaceFileCaption: string;
21823
22237
  removeFileCaption: string;
21824
22238
  booleanCheckedLabel: string;
21825
22239
  booleanUncheckedLabel: string;
@@ -21914,6 +22328,10 @@ declare module "localization/swedish" {
21914
22328
  clearCaption: string;
21915
22329
  signaturePlaceHolder: string;
21916
22330
  chooseFileCaption: string;
22331
+ takePhotoCaption: string;
22332
+ cameraPlaceHolder: string;
22333
+ fileCameraDragAreaPlaceHolder: string;
22334
+ replaceFileCaption: string;
21917
22335
  removeFileCaption: string;
21918
22336
  booleanCheckedLabel: string;
21919
22337
  booleanUncheckedLabel: string;
@@ -22072,6 +22490,10 @@ declare module "localization/thai" {
22072
22490
  clearCaption: string;
22073
22491
  signaturePlaceHolder: string;
22074
22492
  chooseFileCaption: string;
22493
+ takePhotoCaption: string;
22494
+ cameraPlaceHolder: string;
22495
+ fileCameraDragAreaPlaceHolder: string;
22496
+ replaceFileCaption: string;
22075
22497
  removeFileCaption: string;
22076
22498
  booleanCheckedLabel: string;
22077
22499
  booleanUncheckedLabel: string;
@@ -22166,6 +22588,10 @@ declare module "localization/traditional-chinese" {
22166
22588
  clearCaption: string;
22167
22589
  signaturePlaceHolder: string;
22168
22590
  chooseFileCaption: string;
22591
+ takePhotoCaption: string;
22592
+ cameraPlaceHolder: string;
22593
+ fileCameraDragAreaPlaceHolder: string;
22594
+ replaceFileCaption: string;
22169
22595
  removeFileCaption: string;
22170
22596
  booleanCheckedLabel: string;
22171
22597
  booleanUncheckedLabel: string;
@@ -22260,6 +22686,10 @@ declare module "localization/turkish" {
22260
22686
  clearCaption: string;
22261
22687
  signaturePlaceHolder: string;
22262
22688
  chooseFileCaption: string;
22689
+ takePhotoCaption: string;
22690
+ cameraPlaceHolder: string;
22691
+ fileCameraDragAreaPlaceHolder: string;
22692
+ replaceFileCaption: string;
22263
22693
  removeFileCaption: string;
22264
22694
  booleanCheckedLabel: string;
22265
22695
  booleanUncheckedLabel: string;
@@ -22354,6 +22784,10 @@ declare module "localization/ukrainian" {
22354
22784
  clearCaption: string;
22355
22785
  signaturePlaceHolder: string;
22356
22786
  chooseFileCaption: string;
22787
+ takePhotoCaption: string;
22788
+ cameraPlaceHolder: string;
22789
+ fileCameraDragAreaPlaceHolder: string;
22790
+ replaceFileCaption: string;
22357
22791
  removeFileCaption: string;
22358
22792
  booleanCheckedLabel: string;
22359
22793
  booleanUncheckedLabel: string;
@@ -22448,6 +22882,10 @@ declare module "localization/vietnamese" {
22448
22882
  clearCaption: string;
22449
22883
  signaturePlaceHolder: string;
22450
22884
  chooseFileCaption: string;
22885
+ takePhotoCaption: string;
22886
+ cameraPlaceHolder: string;
22887
+ fileCameraDragAreaPlaceHolder: string;
22888
+ replaceFileCaption: string;
22451
22889
  removeFileCaption: string;
22452
22890
  booleanCheckedLabel: string;
22453
22891
  booleanUncheckedLabel: string;
@@ -22542,6 +22980,10 @@ declare module "localization/welsh" {
22542
22980
  clearCaption: string;
22543
22981
  signaturePlaceHolder: string;
22544
22982
  chooseFileCaption: string;
22983
+ takePhotoCaption: string;
22984
+ cameraPlaceHolder: string;
22985
+ fileCameraDragAreaPlaceHolder: string;
22986
+ replaceFileCaption: string;
22545
22987
  removeFileCaption: string;
22546
22988
  booleanCheckedLabel: string;
22547
22989
  booleanUncheckedLabel: string;
@@ -22636,6 +23078,10 @@ declare module "localization/telugu" {
22636
23078
  clearCaption: string;
22637
23079
  signaturePlaceHolder: string;
22638
23080
  chooseFileCaption: string;
23081
+ takePhotoCaption: string;
23082
+ cameraPlaceHolder: string;
23083
+ fileCameraDragAreaPlaceHolder: string;
23084
+ replaceFileCaption: string;
22639
23085
  removeFileCaption: string;
22640
23086
  booleanCheckedLabel: string;
22641
23087
  booleanUncheckedLabel: string;
@@ -23456,6 +23902,7 @@ declare module "react/dropdown-base" {
23456
23902
  export class SurveyQuestionDropdownBase<T extends Question> extends SurveyQuestionUncontrolledElement<T> {
23457
23903
  inputElement: HTMLInputElement | null;
23458
23904
  click: (event: any) => void;
23905
+ chevronPointerDown: (event: any) => void;
23459
23906
  clear: (event: any) => void;
23460
23907
  keyhandler: (event: any) => void;
23461
23908
  blur: (event: any) => void;
@@ -23559,13 +24006,34 @@ declare module "react/reactquestion_file" {
23559
24006
  export class SurveyQuestionFile extends SurveyQuestionElementBase {
23560
24007
  constructor(props: any);
23561
24008
  protected get question(): QuestionFileModel;
23562
- protected renderLoadingIndicator(): JSX.Element;
23563
24009
  protected renderElement(): JSX.Element;
23564
24010
  protected renderFileDecorator(): JSX.Element;
23565
24011
  protected renderChooseButton(): JSX.Element;
23566
24012
  protected renderClearButton(className: string): JSX.Element | null;
24013
+ protected renderPreview(): JSX.Element;
24014
+ protected renderLoadingIndicator(): JSX.Element;
24015
+ protected renderVideo(): JSX.Element;
24016
+ }
24017
+ }
24018
+ declare module "react/components/file/file-choose-button" {
24019
+ import { ReactSurveyElement } from "react/reactquestion_element";
24020
+ import { QuestionFileModel } from "entries/core";
24021
+ export class SurveyFileChooseButton extends ReactSurveyElement {
24022
+ constructor(props: any);
24023
+ protected get question(): QuestionFileModel;
24024
+ render(): JSX.Element;
24025
+ }
24026
+ }
24027
+ declare module "react/components/file/file-preview" {
24028
+ import { SurveyElementBase } from "react/reactquestion_element";
24029
+ import { QuestionFileModel } from "entries/core";
24030
+ export class SurveyFilePreview extends SurveyElementBase<{
24031
+ question: QuestionFileModel;
24032
+ }, {}> {
24033
+ protected get question(): QuestionFileModel;
23567
24034
  protected renderFileSign(className: string, val: any): JSX.Element | null;
23568
- protected renderPreview(): JSX.Element | null;
24035
+ protected renderElement(): JSX.Element | null;
24036
+ protected canRender(): boolean;
23569
24037
  }
23570
24038
  }
23571
24039
  declare module "react/reactquestion_multipletext" {
@@ -24090,6 +24558,25 @@ declare module "react/components/skeleton" {
24090
24558
  render(): JSX.Element;
24091
24559
  }
24092
24560
  }
24561
+ declare module "react/components/cover" {
24562
+ import React from "react";
24563
+ import { Base, SurveyModel, Cover, CoverCell } from "entries/core";
24564
+ import { SurveyElementBase } from "react/reactquestion_element";
24565
+ export interface ILayoutElementProps<T = Base> {
24566
+ survey: SurveyModel;
24567
+ model: T;
24568
+ }
24569
+ export class CoverCellComponent extends React.Component<any, any> {
24570
+ get model(): CoverCell;
24571
+ private renderLogoImage;
24572
+ render(): JSX.Element | null;
24573
+ }
24574
+ export class CoverComponent extends SurveyElementBase<ILayoutElementProps<Cover>, any> {
24575
+ get model(): Cover;
24576
+ protected getStateElement(): Base;
24577
+ renderElement(): JSX.Element | null;
24578
+ }
24579
+ }
24093
24580
  declare module "react/string-editor" {
24094
24581
  import React from "react";
24095
24582
  export class SurveyLocStringEditor extends React.Component<any, any> {
@@ -24130,6 +24617,8 @@ declare module "entries/react-ui-model" {
24130
24617
  export { SurveyQuestionMatrix, SurveyQuestionMatrixRow, } from "react/reactquestion_matrix";
24131
24618
  export { SurveyQuestionHtml } from "react/reactquestion_html";
24132
24619
  export { SurveyQuestionFile } from "react/reactquestion_file";
24620
+ export { SurveyFileChooseButton } from "react/components/file/file-choose-button";
24621
+ export { SurveyFilePreview } from "react/components/file/file-preview";
24133
24622
  export { SurveyQuestionMultipleText } from "react/reactquestion_multipletext";
24134
24623
  export { SurveyQuestionRadiogroup, SurveyQuestionRadioItem } from "react/reactquestion_radiogroup";
24135
24624
  export { SurveyQuestionText } from "react/reactquestion_text";
@@ -24177,6 +24666,7 @@ declare module "entries/react-ui-model" {
24177
24666
  export { NotifierComponent } from "react/components/notifier";
24178
24667
  export { ComponentsContainer } from "react/components/components-container";
24179
24668
  export { CharacterCounterComponent } from "react/components/character-counter";
24669
+ export * from "react/components/cover";
24180
24670
  export { SurveyLocStringViewer } from "react/string-viewer";
24181
24671
  export { SurveyLocStringEditor } from "react/string-editor";
24182
24672
  export { LoadingIndicatorComponent } from "react/components/loading-indicator";