survey-react 1.12.4 → 1.12.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/survey.react.d.ts CHANGED
@@ -2255,6 +2255,7 @@ declare module "packages/survey-core/src/defaultCss/defaultV2Css" {
2255
2255
  changeCameraButton: string;
2256
2256
  takePictureButton: string;
2257
2257
  loadingIndicator: string;
2258
+ page: string;
2258
2259
  };
2259
2260
  signaturepad: {
2260
2261
  mainRoot: string;
@@ -3747,6 +3748,7 @@ declare module "packages/survey-core/src/panel" {
3747
3748
  get cssError(): string;
3748
3749
  protected getCssError(cssClasses: any): string;
3749
3750
  getSerializableColumnsValue(): Array<PanelLayoutColumnModel>;
3751
+ afterRender(el: HTMLElement): void;
3750
3752
  dispose(): void;
3751
3753
  }
3752
3754
  /**
@@ -3874,6 +3876,7 @@ declare module "packages/survey-core/src/panel" {
3874
3876
  [index: string]: string;
3875
3877
  }): string;
3876
3878
  getContainerCss(): string;
3879
+ afterRenderCore(element: HTMLElement): void;
3877
3880
  }
3878
3881
  }
3879
3882
  declare module "packages/survey-core/src/utils/camera" {
@@ -3908,7 +3911,7 @@ declare module "packages/survey-core/src/utils/camera" {
3908
3911
  declare module "packages/survey-core/src/question_file" {
3909
3912
  import { IPlainDataOptions } from "packages/survey-core/src/base-interfaces";
3910
3913
  import { IQuestionPlainData, Question } from "packages/survey-core/src/question";
3911
- import { EventBase } from "packages/survey-core/src/base";
3914
+ import { EventBase, Base } from "packages/survey-core/src/base";
3912
3915
  import { SurveyError } from "packages/survey-core/src/survey-error";
3913
3916
  import { ActionContainer } from "packages/survey-core/src/actions/container";
3914
3917
  import { Action } from "packages/survey-core/src/actions/action";
@@ -3956,6 +3959,16 @@ declare module "packages/survey-core/src/question_file" {
3956
3959
  protected loadPreview(newValue: any): void;
3957
3960
  protected onChangeQuestionValue(newValue: any): void;
3958
3961
  }
3962
+ export class QuestionFilePage extends Base {
3963
+ private question;
3964
+ private index;
3965
+ private static pageCounter;
3966
+ private static getId;
3967
+ items: Array<any>;
3968
+ id: string;
3969
+ constructor(question: QuestionFileModel, index: number);
3970
+ get css(): string;
3971
+ }
3959
3972
  /**
3960
3973
  * A class that describes the File Upload question type.
3961
3974
  *
@@ -3964,6 +3977,8 @@ declare module "packages/survey-core/src/question_file" {
3964
3977
  export class QuestionFileModel extends QuestionFileModelBase {
3965
3978
  isDragging: boolean;
3966
3979
  previewValue: any[];
3980
+ pages: QuestionFilePage[];
3981
+ navigationDirection: "left" | "right" | "left-delete";
3967
3982
  indexToShow: number;
3968
3983
  pageSize: number;
3969
3984
  containsMultiplyFiles: boolean;
@@ -3992,6 +4007,7 @@ declare module "packages/survey-core/src/question_file" {
3992
4007
  startCameraAction: Action;
3993
4008
  cleanAction: Action;
3994
4009
  actionsContainer: ActionContainer;
4010
+ get supportFileNavigator(): boolean;
3995
4011
  private isFileLoadingValue;
3996
4012
  protected get isFileLoading(): boolean;
3997
4013
  protected set isFileLoading(val: boolean);
@@ -4016,9 +4032,10 @@ declare module "packages/survey-core/src/question_file" {
4016
4032
  protected updateElementCssCore(cssClasses: any): void;
4017
4033
  private getFileIndexCaption;
4018
4034
  private updateFileNavigator;
4035
+ private updateRenderedPages;
4036
+ private updatePages;
4019
4037
  private prevPreviewLength;
4020
4038
  private previewValueChanged;
4021
- isPreviewVisible(index: number): boolean;
4022
4039
  getType(): string;
4023
4040
  /**
4024
4041
  * Disable this property only to implement a custom preview.
@@ -4156,6 +4173,11 @@ declare module "packages/survey-core/src/question_file" {
4156
4173
  protected supportResponsiveness(): boolean;
4157
4174
  protected getObservedElementSelector(): string;
4158
4175
  private getFileListSelector;
4176
+ private _renderedPages;
4177
+ get renderedPages(): Array<QuestionFilePage>;
4178
+ set renderedPages(val: Array<QuestionFilePage>);
4179
+ private getPagesAnimationOptions;
4180
+ private pagesAnimation;
4159
4181
  private calcAvailableItemsCount;
4160
4182
  private calculatedGapBetweenItems;
4161
4183
  private calculatedItemWidth;
@@ -4398,6 +4420,7 @@ declare module "packages/survey-core/src/utils/text-area" {
4398
4420
  export class TextAreaModel {
4399
4421
  private options;
4400
4422
  private element;
4423
+ private updateElement;
4401
4424
  private onPropertyChangedCallback;
4402
4425
  constructor(options: ITextArea);
4403
4426
  setElement(element: HTMLTextAreaElement | null): void;
@@ -4940,9 +4963,6 @@ declare module "packages/survey-core/src/question_baseselect" {
4940
4963
  getItemId(item: ItemValue): string;
4941
4964
  get questionName(): string;
4942
4965
  getItemEnabled(item: ItemValue): boolean;
4943
- protected rootElement: HTMLElement;
4944
- afterRender(el: HTMLElement): void;
4945
- beforeDestroyQuestionElement(el: HTMLElement): void;
4946
4966
  private focusOtherComment;
4947
4967
  private prevIsOtherSelected;
4948
4968
  protected onValueChanged(): void;
@@ -4997,6 +5017,7 @@ declare module "packages/survey-core/src/validator" {
4997
5017
  errorOwner: ISurveyErrorOwner;
4998
5018
  onAsyncCompleted: (result: ValidatorResult) => void;
4999
5019
  constructor();
5020
+ get isValidator(): boolean;
5000
5021
  getSurvey(live?: boolean): ISurvey;
5001
5022
  /**
5002
5023
  * An error message to display when a value fails validation.
@@ -5991,6 +6012,7 @@ declare module "packages/survey-core/src/question_matrixdynamic" {
5991
6012
  index: number;
5992
6013
  private dragOrClickHelper;
5993
6014
  constructor(index: number, data: IMatrixDropdownData, value: any);
6015
+ protected getRowIndex(): number;
5994
6016
  get rowName(): string;
5995
6017
  get dataName(): string;
5996
6018
  get text(): any;
@@ -6063,6 +6085,7 @@ declare module "packages/survey-core/src/question_matrixdynamic" {
6063
6085
  */
6064
6086
  get rowCount(): number;
6065
6087
  set rowCount(val: number);
6088
+ protected updateBindingProp(propName: string, value: any): void;
6066
6089
  protected updateProgressInfoByValues(res: IProgressInfo): void;
6067
6090
  private getValueForNewRow;
6068
6091
  /**
@@ -6089,6 +6112,7 @@ declare module "packages/survey-core/src/question_matrixdynamic" {
6089
6112
  */
6090
6113
  get minRowCount(): number;
6091
6114
  set minRowCount(val: number);
6115
+ private onMinRowCountChanged;
6092
6116
  /**
6093
6117
  * A maximum number of rows in the matrix. Users cannot add new rows if `rowCount` equals `maxRowCount`.
6094
6118
  *
@@ -6099,6 +6123,7 @@ declare module "packages/survey-core/src/question_matrixdynamic" {
6099
6123
  */
6100
6124
  get maxRowCount(): number;
6101
6125
  set maxRowCount(val: number);
6126
+ private onMaxRowCountChanged;
6102
6127
  /**
6103
6128
  * Specifies whether users are allowed to add new rows.
6104
6129
  *
@@ -6348,7 +6373,13 @@ declare module "packages/survey-core/src/themes" {
6348
6373
  *
6349
6374
  * Default value: 256
6350
6375
  */
6351
- height: number;
6376
+ height?: number;
6377
+ /**
6378
+ * The height of the survey header on smartphones, measured in pixels.
6379
+ *
6380
+ * Default value: 0 (the height is calculated automatically to accommodate the header's content).
6381
+ */
6382
+ mobileHeight?: number;
6352
6383
  /**
6353
6384
  * A string value that specifies whether the header spans the width of the survey or that of the survey container.
6354
6385
  *
@@ -6362,27 +6393,27 @@ declare module "packages/survey-core/src/themes" {
6362
6393
  * @see [SurveyModel.width](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#width)
6363
6394
  * @see [SurveyModel.widthMode](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#widthMode)
6364
6395
  */
6365
- inheritWidthFrom: "survey" | "container";
6396
+ inheritWidthFrom?: "survey" | "container";
6366
6397
  /**
6367
6398
  * The width of the header area that contains the survey [title](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title) and [description](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#description), measured in pixels.
6368
6399
  *
6369
6400
  * Default value: 512
6370
6401
  */
6371
- textAreaWidth: number;
6402
+ textAreaWidth?: number;
6372
6403
  /**
6373
6404
  * A Boolean value that specifies whether the header overlaps the survey content.
6374
6405
  *
6375
6406
  * Default value: `false`
6376
6407
  */
6377
- overlapEnabled: boolean;
6408
+ overlapEnabled?: boolean;
6378
6409
  /**
6379
6410
  * An image to display in the background of the header. Accepts a base64 or URL string value.
6380
6411
  */
6381
- backgroundImage: string;
6412
+ backgroundImage?: string;
6382
6413
  /**
6383
6414
  * A value from 0 to 1 that specifies how transparent the [background image](#backgroundImage) should be: 0 makes the image completely transparent, and 1 makes it opaque.
6384
6415
  */
6385
- backgroundImageOpacity: number;
6416
+ backgroundImageOpacity?: number;
6386
6417
  /**
6387
6418
  * A string value that specifies how to resize a [background image](#backgroundImage) to fit it into the header.
6388
6419
  *
@@ -6397,7 +6428,7 @@ declare module "packages/survey-core/src/themes" {
6397
6428
  * - `"tile"`\
6398
6429
  * Tiles as many copies of the image as needed to fill the entire header.
6399
6430
  */
6400
- backgroundImageFit: "cover" | "fill" | "contain" | "tile";
6431
+ backgroundImageFit?: "cover" | "fill" | "contain" | "tile";
6401
6432
  /**
6402
6433
  * A string value that specifies the logo position within the header in the horizontal direction.
6403
6434
  *
@@ -6409,7 +6440,7 @@ declare module "packages/survey-core/src/themes" {
6409
6440
  *
6410
6441
  * To specify a logo, set `SurveyModel`'s [`logo`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#logo) property.
6411
6442
  */
6412
- logoPositionX: HorizontalAlignment;
6443
+ logoPositionX?: HorizontalAlignment;
6413
6444
  /**
6414
6445
  * A string value that specifies the logo position within the header in the vertical direction.
6415
6446
  *
@@ -6421,7 +6452,7 @@ declare module "packages/survey-core/src/themes" {
6421
6452
  *
6422
6453
  * To specify a logo, set `SurveyModel`'s [`logo`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#logo) property.
6423
6454
  */
6424
- logoPositionY: VerticalAlignment;
6455
+ logoPositionY?: VerticalAlignment;
6425
6456
  /**
6426
6457
  * A string value that specifies the survey title position within the header in the horizontal direction.
6427
6458
  *
@@ -6433,7 +6464,7 @@ declare module "packages/survey-core/src/themes" {
6433
6464
  *
6434
6465
  * To specify a survey title, set `SurveyModel`'s [`title`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title) property.
6435
6466
  */
6436
- titlePositionX: HorizontalAlignment;
6467
+ titlePositionX?: HorizontalAlignment;
6437
6468
  /**
6438
6469
  * A string value that specifies the survey title position within the header in the vertical direction.
6439
6470
  *
@@ -6445,7 +6476,7 @@ declare module "packages/survey-core/src/themes" {
6445
6476
  *
6446
6477
  * To specify a survey title, set `SurveyModel`'s [`title`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title) property.
6447
6478
  */
6448
- titlePositionY: VerticalAlignment;
6479
+ titlePositionY?: VerticalAlignment;
6449
6480
  /**
6450
6481
  * A string value that specifies the survey description position within the header in the horizontal direction.
6451
6482
  *
@@ -6457,7 +6488,7 @@ declare module "packages/survey-core/src/themes" {
6457
6488
  *
6458
6489
  * To specify a survey description, set `SurveyModel`'s [`description`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#description) property.
6459
6490
  */
6460
- descriptionPositionX: HorizontalAlignment;
6491
+ descriptionPositionX?: HorizontalAlignment;
6461
6492
  /**
6462
6493
  * A string value that specifies the survey description position within the header in the vertical direction.
6463
6494
  *
@@ -6469,7 +6500,7 @@ declare module "packages/survey-core/src/themes" {
6469
6500
  *
6470
6501
  * To specify a survey description, set `SurveyModel`'s [`description`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#description) property.
6471
6502
  */
6472
- descriptionPositionY: VerticalAlignment;
6503
+ descriptionPositionY?: VerticalAlignment;
6473
6504
  }
6474
6505
  }
6475
6506
  declare module "packages/survey-core/src/question_paneldynamic" {
@@ -8499,7 +8530,7 @@ declare module "packages/survey-core/src/page" {
8499
8530
  scrollToTop(): void;
8500
8531
  /**
8501
8532
  * A time period that a respondent has spent on this page so far; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
8502
- * @see maxTimeToFinish
8533
+ * @see timeLimit
8503
8534
  */
8504
8535
  timeSpent: number;
8505
8536
  /**
@@ -8512,11 +8543,17 @@ declare module "packages/survey-core/src/page" {
8512
8543
  /**
8513
8544
  * A time period that a respondent has to complete this page; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
8514
8545
  *
8515
- * A negative value or 0 sets an unlimited time period.
8546
+ * Default value: 0 (time is unlimited)
8516
8547
  *
8517
- * Alternatively, you can use the `SurveyModel`'s [`maxTimeToFinishPage`](https://surveyjs.io/form-library/documentation/surveymodel#maxTimeToFinishPage) property to specify identical time periods for all survey pages.
8548
+ * Alternatively, you can use the `SurveyModel`'s [`timeLimitPerPage`](https://surveyjs.io/form-library/documentation/surveymodel#timeLimitPerPage) property to specify identical time periods for all survey pages.
8518
8549
  * @see timeSpent
8519
8550
  */
8551
+ get timeLimit(): number;
8552
+ set timeLimit(val: number);
8553
+ /**
8554
+ * Obsolete. Use the [`timeLimit`](https://surveyjs.io/form-library/documentation/api-reference/page-model#timeLimit) property instead.
8555
+ * @deprecated
8556
+ */
8520
8557
  get maxTimeToFinish(): number;
8521
8558
  set maxTimeToFinish(val: number);
8522
8559
  getMaxTimeToFinish(): number;
@@ -8566,6 +8603,7 @@ declare module "packages/survey-core/src/surveytimer" {
8566
8603
  private listenerCounter;
8567
8604
  private timerId;
8568
8605
  private prevTimeInMs;
8606
+ onTimerTick: EventBase<SurveyTimer, SurveyTimerEvent>;
8569
8607
  onTimer: EventBase<SurveyTimer, SurveyTimerEvent>;
8570
8608
  start(func?: (timer: SurveyTimer, options: SurveyTimerEvent) => void): void;
8571
8609
  stop(func?: (timer: SurveyTimer, options: SurveyTimerEvent) => any): void;
@@ -8593,7 +8631,7 @@ declare module "packages/survey-core/src/surveyTimerModel" {
8593
8631
  onCurrentPageChanged: EventBase<SurveyModel>;
8594
8632
  }
8595
8633
  export class SurveyTimerModel extends Base {
8596
- onTimer: (page: PageModel) => void;
8634
+ onTimerTick: (page: PageModel) => void;
8597
8635
  private surveyValue;
8598
8636
  constructor(survey: ISurvey);
8599
8637
  text: string;
@@ -9030,7 +9068,6 @@ declare module "packages/survey-core/src/question_text" {
9030
9068
  set dataList(val: Array<string>);
9031
9069
  get locDataList(): LocalizableStrings;
9032
9070
  get dataListId(): string;
9033
- protected canRunValidators(isOnValueChanged: boolean): boolean;
9034
9071
  protected setNewValue(newValue: any): void;
9035
9072
  protected correctValueType(newValue: any): any;
9036
9073
  protected hasPlaceholder(): boolean;
@@ -10212,11 +10249,17 @@ declare module "packages/survey-core/src/survey" {
10212
10249
  * An event that is raised every second while the timer is running.
10213
10250
  *
10214
10251
  * Use the [`timeSpent`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeSpent) property to find out how many seconds have elapsed.
10215
- * @see maxTimeToFinish
10216
- * @see maxTimeToFinishPage
10217
- * @see showTimerPanel
10252
+ * @see timeLimit
10253
+ * @see timeLimitPerPage
10254
+ * @see showTimer
10255
+ * @see timerLocation
10218
10256
  * @see startTimer
10219
10257
  */
10258
+ onTimerTick: EventBase<SurveyModel, {}>;
10259
+ /**
10260
+ * Obsolete. Use the [`onTimerTick`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTimerTick) event instead.
10261
+ * @deprecated
10262
+ */
10220
10263
  onTimer: EventBase<SurveyModel, {}>;
10221
10264
  onTimerPanelInfoText: EventBase<SurveyModel, any>;
10222
10265
  /**
@@ -10361,6 +10404,18 @@ declare module "packages/survey-core/src/survey" {
10361
10404
  */
10362
10405
  headerView: "advanced" | "basic";
10363
10406
  protected insertAdvancedHeader(advHeader: Cover): void;
10407
+ /**
10408
+ * Specifies whether the [Complete page](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#complete-page) should display the [survey header](https://surveyjs.io/form-library/examples/brand-your-survey-header/).
10409
+ *
10410
+ * Possible values:
10411
+ *
10412
+ * - `true` - Displays the survey header on the Complete page.
10413
+ * - `false` - Hides the header when users reach the Complete page.
10414
+ * - `"auto"` (default) - Displays a header with the basic view, but hides a header with the advanced view (see the [`headerView`](https://surveyjs.io/form-library/documentation/api-reference/itheme#headerView) property description).
10415
+ *
10416
+ * > This property cannot be specified in the survey JSON schema. Use dot notation to specify it.
10417
+ */
10418
+ showHeaderOnCompletePage: true | false | "auto";
10364
10419
  private getNavigationCss;
10365
10420
  private lazyRenderingValue;
10366
10421
  showBrandInfo: boolean;
@@ -11764,6 +11819,7 @@ declare module "packages/survey-core/src/survey" {
11764
11819
  private getProgressTextCore;
11765
11820
  rootCss: string;
11766
11821
  getRootCss(): string;
11822
+ private isSmoothScrollEnabled;
11767
11823
  private resizeObserver;
11768
11824
  afterRenderSurvey(htmlElement: any): void;
11769
11825
  /**
@@ -11835,7 +11891,7 @@ declare module "packages/survey-core/src/survey" {
11835
11891
  private getUpdatedPageTitleActions;
11836
11892
  getUpdatedMatrixRowActions(question: QuestionMatrixDropdownModelBase, row: any, actions: Array<IAction>): IAction[];
11837
11893
  skeletonHeight: number;
11838
- scrollElementToTop(element: ISurveyElement, question: Question, page: PageModel, id: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, passedRootElement?: HTMLElement): any;
11894
+ scrollElementToTop(element: ISurveyElement, question: Question, page: PageModel, id: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, passedRootElement?: HTMLElement, onScolledCallback?: () => void): any;
11839
11895
  /**
11840
11896
  * Opens a dialog window for users to select files.
11841
11897
  * @param input A [file input HTML element](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement).
@@ -12245,39 +12301,60 @@ declare module "packages/survey-core/src/survey" {
12245
12301
  getCorrectedAnswers(): number;
12246
12302
  getInCorrectedAnswers(): number;
12247
12303
  /**
12248
- * Displays the timer panel and specifies its position. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
12304
+ * Obsolete. Use the [`showTimer`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showTimer) and [`timerLocation`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timerLocation) properties instead.
12305
+ * @deprecated
12306
+ */
12307
+ get showTimerPanel(): string;
12308
+ set showTimerPanel(val: string);
12309
+ /**
12310
+ * Specifies the timer's visibility. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
12249
12311
  *
12250
- * Possible values:
12312
+ * Default value: `false`
12251
12313
  *
12252
- * - `"top"` - Displays the timer panel at the top of the survey.
12253
- * - `"bottom"` - Displays the timer panel at the bottom of the survey.
12254
- * - `"none"` (default) - Hides the timer panel.
12314
+ * If you set this property to `true`, the timer starts automatically when the survey begins. To specify time limits, use the [`timeLimit`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeLimit) and [`timeLimitPerPage`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeLimitPerPage) properties.
12255
12315
  *
12256
- * If the timer panel is displayed, the timer starts automatically when the survey begins. To specify time limits, use the [`maxTimeToFinish`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#maxTimeToFinish) and [`maxTimeToFinishPage`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#maxTimeToFinishPage) properties.
12316
+ * The timer displays information about time spent on an individual page and the entire survey. If you want to display only the page timer or the survey timer, set the [`timerInfoMode`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timerInfoMode) property to `"page"` or `"survey"`.
12257
12317
  *
12258
- * The timer panel displays information about time spent on an individual page and the entire survey. If you want to display only the page timer or the survey timer, set the [`showTimerPanelMode`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showTimerPanelMode) property to `"page"` or `"survey"`.
12259
- * @see startTimer
12260
- * @see stopTimer
12318
+ * You can enable the timer without displaying it. In this case, you need to specify the required time limits and use the [`startTimer()`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#startTimer) and [`stopTimer()`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#stopTimer) methods to control the timer.
12319
+ * @see timerLocation
12261
12320
  * @see timeSpent
12262
- * @see onTimer
12321
+ * @see onTimerTick
12263
12322
  */
12264
- get showTimerPanel(): string;
12265
- set showTimerPanel(val: string);
12323
+ get showTimer(): boolean;
12324
+ set showTimer(val: boolean);
12325
+ /**
12326
+ * Specifies the timer's position relative to the survey. Applies only if the [`showTimer`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showTimer) property is set to `true`.
12327
+ *
12328
+ * Possible values:
12329
+ *
12330
+ * - `"top"` (default) - Displays the timer at the top of the survey.
12331
+ * - `"bottom"` - Displays the timer at the bottom of the survey.
12332
+ * @see onTimerTick
12333
+ */
12334
+ get timerLocation(): string;
12335
+ set timerLocation(val: string);
12266
12336
  get isTimerPanelShowingOnTop(): boolean;
12267
12337
  get isTimerPanelShowingOnBottom(): boolean;
12268
12338
  /**
12269
- * Specifies whether the timer panel displays timers for the current page, the entire survey, or both. Applies only if the timer panel is [visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showTimerPanel).
12339
+ * Specifies whether the timer panel displays timers for the current page, the entire survey, or both. Applies only if the timer panel is [visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showTimer).
12270
12340
  *
12271
12341
  * Possible values:
12272
12342
  *
12273
12343
  * - `"survey"` - Displays only the survey timer.
12274
12344
  * - `"page"` - Displays only the page timer.
12275
- * - `"all"` (default) - Displays both the survey and page timers.
12345
+ * - `"combined"` (default) - Displays both the survey and page timers.
12276
12346
  * @see timeSpent
12277
- * @see onTimer
12347
+ * @see onTimerTick
12278
12348
  * @see startTimer
12279
12349
  * @see stopTimer
12280
12350
  */
12351
+ get timerInfoMode(): string;
12352
+ set timerInfoMode(val: string);
12353
+ private getTimerInfoVal;
12354
+ /**
12355
+ * Obsolete. Use the [`timerInfoMode`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timerInfoMode) property instead.
12356
+ * @deprecated
12357
+ */
12281
12358
  get showTimerPanelMode(): string;
12282
12359
  set showTimerPanelMode(val: string);
12283
12360
  gridLayoutEnabled: boolean;
@@ -12324,20 +12401,20 @@ declare module "packages/survey-core/src/survey" {
12324
12401
  /**
12325
12402
  * Starts a timer that calculates how many seconds a respondent has spent on the survey. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
12326
12403
  * @see stopTimer
12327
- * @see maxTimeToFinish
12328
- * @see maxTimeToFinishPage
12404
+ * @see timeLimit
12405
+ * @see timeLimitPerPage
12329
12406
  * @see timeSpent
12330
- * @see onTimer
12407
+ * @see onTimerTick
12331
12408
  */
12332
12409
  startTimer(): void;
12333
12410
  startTimerFromUI(): void;
12334
12411
  /**
12335
12412
  * Stops the timer. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
12336
12413
  * @see startTimer
12337
- * @see maxTimeToFinish
12338
- * @see maxTimeToFinishPage
12414
+ * @see timeLimit
12415
+ * @see timeLimitPerPage
12339
12416
  * @see timeSpent
12340
- * @see onTimer
12417
+ * @see onTimerTick
12341
12418
  */
12342
12419
  stopTimer(): void;
12343
12420
  /**
@@ -12346,8 +12423,8 @@ declare module "packages/survey-core/src/survey" {
12346
12423
  * Assign a number to this property if you need to start the quiz timer from a specific time (for instance, if you want to continue an interrupted quiz).
12347
12424
  *
12348
12425
  * You can also find out how many seconds a respondent has spent on an individual survey page. To do this, use the [`timeSpent`](https://surveyjs.io/form-library/documentation/api-reference/page-model#timeSpent) property of a [`PageModel`](https://surveyjs.io/form-library/documentation/api-reference/page-model) object.
12349
- * @see maxTimeToFinish
12350
- * @see maxTimeToFinishPage
12426
+ * @see timeLimit
12427
+ * @see timeLimitPerPage
12351
12428
  * @see startTimer
12352
12429
  */
12353
12430
  get timeSpent(): number;
@@ -12355,27 +12432,39 @@ declare module "packages/survey-core/src/survey" {
12355
12432
  /**
12356
12433
  * A time period that a respondent has to complete the survey; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
12357
12434
  *
12358
- * A negative value or 0 sets an unlimited time period.
12435
+ * Default value: 0 (time is unlimited)
12359
12436
  *
12360
12437
  * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
12361
- * @see maxTimeToFinishPage
12438
+ * @see timeLimitPerPage
12362
12439
  * @see startTimer
12363
12440
  * @see timeSpent
12364
12441
  */
12442
+ get timeLimit(): number;
12443
+ set timeLimit(val: number);
12444
+ /**
12445
+ * Obsolete. Use the [`timeLimit`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeLimit) property instead.
12446
+ * @deprecated
12447
+ */
12365
12448
  get maxTimeToFinish(): number;
12366
12449
  set maxTimeToFinish(val: number);
12367
12450
  /**
12368
12451
  * A time period that a respondent has to complete each survey page; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
12369
12452
  *
12370
- * A negative value or 0 sets an unlimited time period.
12453
+ * Default value: 0 (time is unlimited)
12371
12454
  *
12372
- * You can also use `PageModel`'s [`maxTimeToFinish`](https://surveyjs.io/form-library/documentation/api-reference/page-model#maxTimeToFinish) property to specify a time period for an individual survey page.
12455
+ * You can also use `PageModel`'s [`timeLimit`](https://surveyjs.io/form-library/documentation/api-reference/page-model#timeLimit) property to specify a time period for an individual survey page.
12373
12456
  *
12374
12457
  * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
12375
- * @see maxTimeToFinish
12458
+ * @see timeLimit
12376
12459
  * @see startTimer
12377
12460
  * @see timeSpent
12378
12461
  */
12462
+ get timeLimitPerPage(): number;
12463
+ set timeLimitPerPage(val: number);
12464
+ /**
12465
+ * Obsolete. Use the [`timeLimitPerPage`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeLimitPerPage) property instead.
12466
+ * @deprecated
12467
+ */
12379
12468
  get maxTimeToFinishPage(): number;
12380
12469
  set maxTimeToFinishPage(val: number);
12381
12470
  private doTimer;
@@ -12471,7 +12560,7 @@ declare module "packages/survey-core/src/survey" {
12471
12560
  }
12472
12561
  }
12473
12562
  declare module "packages/survey-core/src/survey-element" {
12474
- import { Base } from "packages/survey-core/src/base";
12563
+ import { Base, EventBase } from "packages/survey-core/src/base";
12475
12564
  import { IAction } from "packages/survey-core/src/actions/action";
12476
12565
  import { AdaptiveActionContainer } from "packages/survey-core/src/actions/adaptive-container";
12477
12566
  import { ISurveyElement, IPage, IPanel, IProgressInfo, ISurvey, ISurveyData, ISurveyImpl, ITextProcessor, ITitleOwner } from "packages/survey-core/src/base-interfaces";
@@ -12577,6 +12666,8 @@ declare module "packages/survey-core/src/survey-element" {
12577
12666
  dragTypeOverMe: DragTypeOverMeEnum;
12578
12667
  isDragMe: boolean;
12579
12668
  readOnlyChangedCallback: () => void;
12669
+ private static IsNeedScrollIntoView;
12670
+ static ScrollIntoView(el: HTMLElement, scrollIntoViewOptions?: ScrollIntoViewOptions, doneCallback?: () => void): void;
12580
12671
  static ScrollElementToTop(elementId: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, doneCallback?: () => void): boolean;
12581
12672
  static ScrollElementToViewCore(el: HTMLElement, checkLeft: boolean, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, doneCallback?: () => void): boolean;
12582
12673
  static GetFirstNonTextElement(elements: any, removeSpaces?: boolean): any;
@@ -12902,6 +12993,19 @@ declare module "packages/survey-core/src/survey-element" {
12902
12993
  set renderedIsExpanded(val: boolean);
12903
12994
  get renderedIsExpanded(): boolean;
12904
12995
  protected getIsAnimationAllowed(): boolean;
12996
+ onAfterRenderElement: EventBase<SurveyElement<E>, any>;
12997
+ afterRenderCore(element: HTMLElement): void;
12998
+ dispose(): void;
12999
+ }
13000
+ export class RenderingCompletedAwaiter {
13001
+ private _elements;
13002
+ private _renderedHandler;
13003
+ constructor(_elements: Array<SurveyElement>, _renderedHandler: () => void, waitingTimeout?: number);
13004
+ private _elementsToRenderCount;
13005
+ private _elementsToRenderTimer;
13006
+ private _elementRenderedHandler;
13007
+ private stopWaitingForElementsRendering;
13008
+ private visibleElementsRendered;
12905
13009
  dispose(): void;
12906
13010
  }
12907
13011
  }
@@ -13345,7 +13449,7 @@ declare module "packages/survey-core/src/question" {
13345
13449
  onCommentChange(event: any): void;
13346
13450
  afterRenderQuestionElement(el: HTMLElement): void;
13347
13451
  afterRender(el: HTMLElement): void;
13348
- afterRenderCore(el: HTMLElement): void;
13452
+ afterRenderCore(element: HTMLElement): void;
13349
13453
  protected getCommentElementsId(): Array<string>;
13350
13454
  beforeDestroyQuestionElement(el: HTMLElement): void;
13351
13455
  get processedTitle(): string;
@@ -13404,7 +13508,6 @@ declare module "packages/survey-core/src/question" {
13404
13508
  * @param onError Pass `true` if you want to focus an input field with the first validation error. Default value: `false` (focuses the first input field). Applies to question types with multiple input fields.
13405
13509
  */
13406
13510
  focus(onError?: boolean, scrollIfVisible?: boolean): void;
13407
- private focuscore;
13408
13511
  focusInputElement(onError: boolean): void;
13409
13512
  private get isValidateVisitedEmptyFields();
13410
13513
  private isFocusEmpty;
@@ -13850,6 +13953,7 @@ declare module "packages/survey-core/src/question" {
13850
13953
  clearUnusedValues(): void;
13851
13954
  onAnyValueChanged(name: string, questionName: string): void;
13852
13955
  checkBindings(valueName: string, value: any): void;
13956
+ protected updateBindingProp(propName: string, value: any): void;
13853
13957
  getComponentName(): string;
13854
13958
  isDefaultRendering(): boolean;
13855
13959
  renderAs: string;
@@ -14202,6 +14306,7 @@ declare module "packages/survey-core/src/question_matrixdropdownbase" {
14202
14306
  static OwnerVariableName: string;
14203
14307
  static IndexVariableName: string;
14204
14308
  static RowValueVariableName: string;
14309
+ static RowNameVariableName: string;
14205
14310
  private static idCounter;
14206
14311
  private static getId;
14207
14312
  protected data: IMatrixDropdownData;
@@ -14293,6 +14398,7 @@ declare module "packages/survey-core/src/question_matrixdropdownbase" {
14293
14398
  getSurvey(): ISurvey;
14294
14399
  getTextProcessor(): ITextProcessor;
14295
14400
  get rowIndex(): number;
14401
+ protected getRowIndex(): number;
14296
14402
  get editingObj(): Base;
14297
14403
  private onEditingObjPropertyChanged;
14298
14404
  private editingObjValue;
@@ -14806,7 +14912,7 @@ declare module "packages/survey-core/src/base-interfaces" {
14806
14912
  maxTextLength: number;
14807
14913
  maxOthersLength: number;
14808
14914
  clearValueOnDisableItems: boolean;
14809
- maxTimeToFinishPage: number;
14915
+ timeLimitPerPage: number;
14810
14916
  uploadFiles(question: IQuestion, name: string, files: File[], uploadingCallback: (data: any | Array<any>, errors?: any | Array<any>) => any): any;
14811
14917
  downloadFile(question: IQuestion, name: string, content: string, callback: (status: string, data: any) => any): any;
14812
14918
  clearFiles(question: IQuestion, name: string, value: any, fileName: string, clearCallback: (status: string, data: any) => any): any;
@@ -14862,7 +14968,7 @@ declare module "packages/survey-core/src/base-interfaces" {
14862
14968
  dynamicPanelGetTabTitle(question: IQuestion, options: any): any;
14863
14969
  dynamicPanelCurrentIndexChanged(question: IQuestion, options: any): void;
14864
14970
  dragAndDropAllow(options: DragDropAllowEvent): boolean;
14865
- scrollElementToTop(element: ISurveyElement, question: IQuestion, page: IPage, id: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions): any;
14971
+ scrollElementToTop(element: ISurveyElement, question: IQuestion, page: IPage, id: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, passedRootElement?: HTMLElement, onScolledCallback?: () => void): any;
14866
14972
  runExpression(expression: string, callback?: (res: any) => void): any;
14867
14973
  elementContentVisibilityChanged(element: ISurveyElement): void;
14868
14974
  onCorrectQuestionAnswer(question: IQuestion, options: any): void;
@@ -15088,6 +15194,7 @@ declare module "packages/survey-core/src/jsonobject" {
15088
15194
  isSerializable?: boolean;
15089
15195
  isLightSerializable?: boolean;
15090
15196
  readOnly?: boolean;
15197
+ availableInMatrixColumn?: boolean;
15091
15198
  serializationProperty?: string;
15092
15199
  dependsOn?: Array<string> | string;
15093
15200
  isBindable?: boolean;
@@ -15161,6 +15268,7 @@ declare module "packages/survey-core/src/jsonobject" {
15161
15268
  nextToProperty: string;
15162
15269
  overridingProperty: string;
15163
15270
  showMode: string;
15271
+ availableInMatrixColumn: boolean;
15164
15272
  maxLength: number;
15165
15273
  maxValue: any;
15166
15274
  minValue: any;
@@ -15849,25 +15957,14 @@ declare module "packages/survey-core/src/base" {
15849
15957
  private animationAllowedLock;
15850
15958
  blockAnimations(): void;
15851
15959
  releaseAnimations(): void;
15852
- supportOnElementRenderedEvent: boolean;
15853
- onElementRenderedEventEnabled: boolean;
15854
- enableOnElementRenderedEvent(): void;
15855
- disableOnElementRenderedEvent(): void;
15960
+ supportOnElementRerenderedEvent: boolean;
15961
+ onElementRerenderedEventEnabled: boolean;
15962
+ enableOnElementRerenderedEvent(): void;
15963
+ disableOnElementRerenderedEvent(): void;
15856
15964
  protected _onElementRerendered: EventBase<Base>;
15857
15965
  get onElementRerendered(): EventBase<Base>;
15858
15966
  afterRerender(): void;
15859
15967
  }
15860
- export class RenderingCompletedAwaiter {
15861
- private _elements;
15862
- private _renderedHandler;
15863
- constructor(_elements: Array<Base>, _renderedHandler: () => void, waitingTimeout?: number);
15864
- private _elementsToRenderCount;
15865
- private _elementsToRenderTimer;
15866
- private _elementRenderedHandler;
15867
- private stopWaitingForElementsRendering;
15868
- private visibleElementsRendered;
15869
- dispose(): void;
15870
- }
15871
15968
  export class ArrayChanges<T = any> {
15872
15969
  index: number;
15873
15970
  deleteCount: number;
@@ -18013,13 +18110,10 @@ declare module "packages/survey-core/src/question_comment" {
18013
18110
  get resizeStyle(): "none" | "both";
18014
18111
  getType(): string;
18015
18112
  afterRenderQuestionElement(el: HTMLElement): void;
18016
- updateElement(): void;
18017
18113
  beforeDestroyQuestionElement(el: HTMLElement): void;
18018
18114
  onInput(event: any): void;
18019
18115
  protected onBlurCore(event: any): void;
18020
18116
  onKeyDown(event: any): void;
18021
- protected setQuestionValue(newValue: any, updateIsAnswered?: boolean): void;
18022
- onValueChanged(): void;
18023
18117
  protected setNewValue(newValue: string): any;
18024
18118
  protected getValueSeparator(): string;
18025
18119
  get className(): string;
@@ -19159,7 +19253,7 @@ declare module "packages/survey-core/entries/chunks/model" {
19159
19253
  export { QuestionCommentModel } from "packages/survey-core/src/question_comment";
19160
19254
  export { QuestionDropdownModel } from "packages/survey-core/src/question_dropdown";
19161
19255
  export { QuestionFactory, ElementFactory } from "packages/survey-core/src/questionfactory";
19162
- export { QuestionFileModel } from "packages/survey-core/src/question_file";
19256
+ export { QuestionFileModel, QuestionFilePage } from "packages/survey-core/src/question_file";
19163
19257
  export { QuestionHtmlModel } from "packages/survey-core/src/question_html";
19164
19258
  export { QuestionRadiogroupModel } from "packages/survey-core/src/question_radiogroup";
19165
19259
  export { QuestionRatingModel, RenderedRatingItem } from "packages/survey-core/src/question_rating";
@@ -27041,7 +27135,6 @@ declare module "packages/survey-react-ui/src/components/text-area" {
27041
27135
  get viewModel(): TextAreaModel;
27042
27136
  protected canRender(): boolean;
27043
27137
  protected renderElement(): JSX.Element;
27044
- componentWillUnmount(): void;
27045
27138
  }
27046
27139
  }
27047
27140
  declare module "packages/survey-react-ui/src/reactquestion_comment" {
@@ -27149,6 +27242,7 @@ declare module "packages/survey-react-ui/src/components/popup/popup" {
27149
27242
  protected renderHeaderPopup(popupModel: PopupBaseViewModel): JSX.Element | null;
27150
27243
  protected renderFooter(popuModel: PopupBaseViewModel): JSX.Element | null;
27151
27244
  render(): JSX.Element;
27245
+ componentDidMount(): void;
27152
27246
  }
27153
27247
  export class PopupDropdownContainer extends PopupContainer {
27154
27248
  protected renderHeaderPopup(popupModel: PopupBaseViewModel): JSX.Element | null;
@@ -27162,6 +27256,7 @@ declare module "packages/survey-react-ui/src/components/action-bar/action-bar-it
27162
27256
  private viewModel;
27163
27257
  constructor(props: any);
27164
27258
  renderInnerButton(): JSX.Element;
27259
+ componentDidMount(): void;
27165
27260
  componentWillUnmount(): void;
27166
27261
  }
27167
27262
  }
@@ -27776,6 +27871,7 @@ declare module "packages/survey-react-ui/src/dropdown-item" {
27776
27871
  export class SurveyQuestionOptionItem extends ReactSurveyElement {
27777
27872
  constructor(props: any);
27778
27873
  componentDidUpdate(prevProps: any, prevState: any): void;
27874
+ componentDidMount(): void;
27779
27875
  componentWillUnmount(): void;
27780
27876
  private setupModel;
27781
27877
  protected getStateElement(): Base;
@@ -27925,6 +28021,32 @@ declare module "packages/survey-react-ui/src/reactquestion_file" {
27925
28021
  protected renderVideo(): JSX.Element;
27926
28022
  }
27927
28023
  }
28024
+ declare module "packages/survey-react-ui/src/components/file/file-item" {
28025
+ import { SurveyElementBase } from "packages/survey-react-ui/src/reactquestion_element";
28026
+ import { QuestionFileModel } from "src/entries/core";
28027
+ export class SurveyFileItem extends SurveyElementBase<{
28028
+ question: QuestionFileModel;
28029
+ item: any;
28030
+ }, {}> {
28031
+ protected get question(): QuestionFileModel;
28032
+ protected get item(): any;
28033
+ protected renderFileSign(className: string, val: any): JSX.Element | null;
28034
+ protected renderElement(): JSX.Element | null;
28035
+ protected canRender(): boolean;
28036
+ }
28037
+ }
28038
+ declare module "packages/survey-react-ui/src/components/file/file-page" {
28039
+ import { SurveyElementBase } from "packages/survey-react-ui/src/reactquestion_element";
28040
+ import { QuestionFileModel, QuestionFilePage } from "src/entries/core";
28041
+ export class SurveyFilePage extends SurveyElementBase<{
28042
+ question: QuestionFileModel;
28043
+ page: QuestionFilePage;
28044
+ }, {}> {
28045
+ protected get question(): QuestionFileModel;
28046
+ protected get page(): any;
28047
+ protected renderElement(): JSX.Element | null;
28048
+ }
28049
+ }
27928
28050
  declare module "packages/survey-react-ui/src/components/file/file-preview" {
27929
28051
  import { SurveyElementBase } from "packages/survey-react-ui/src/reactquestion_element";
27930
28052
  import { QuestionFileModel } from "src/entries/core";