survey-react 1.12.4 → 1.12.5

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/modern.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.4
2
+ * surveyjs - Survey JavaScript library v1.12.5
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
package/modern.min.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.4
2
+ * surveyjs - Survey JavaScript library v1.12.5
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "survey-react",
3
- "version": "1.12.4",
3
+ "version": "1.12.5",
4
4
  "description": "survey.js is a JavaScript Survey Library. It is a modern way to add a survey to your website. It uses JSON for survey metadata and results.",
5
5
  "keywords": [
6
6
  "Survey",
package/survey.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.4
2
+ * surveyjs - Survey JavaScript library v1.12.5
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
package/survey.min.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.4
2
+ * surveyjs - Survey JavaScript library v1.12.5
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
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";
@@ -3961,9 +3964,21 @@ declare module "packages/survey-core/src/question_file" {
3961
3964
  *
3962
3965
  * [View Demo](https://surveyjs.io/form-library/examples/file-upload/ (linkStyle))
3963
3966
  */
3967
+ export class QuestionFilePage extends Base {
3968
+ private question;
3969
+ private index;
3970
+ private static pageCounter;
3971
+ private static getId;
3972
+ items: Array<any>;
3973
+ id: string;
3974
+ constructor(question: QuestionFileModel, index: number);
3975
+ get css(): string;
3976
+ }
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;
@@ -6089,6 +6109,7 @@ declare module "packages/survey-core/src/question_matrixdynamic" {
6089
6109
  */
6090
6110
  get minRowCount(): number;
6091
6111
  set minRowCount(val: number);
6112
+ private onMinRowCountChanged;
6092
6113
  /**
6093
6114
  * A maximum number of rows in the matrix. Users cannot add new rows if `rowCount` equals `maxRowCount`.
6094
6115
  *
@@ -6099,6 +6120,7 @@ declare module "packages/survey-core/src/question_matrixdynamic" {
6099
6120
  */
6100
6121
  get maxRowCount(): number;
6101
6122
  set maxRowCount(val: number);
6123
+ private onMaxRowCountChanged;
6102
6124
  /**
6103
6125
  * Specifies whether users are allowed to add new rows.
6104
6126
  *
@@ -6348,7 +6370,13 @@ declare module "packages/survey-core/src/themes" {
6348
6370
  *
6349
6371
  * Default value: 256
6350
6372
  */
6351
- height: number;
6373
+ height?: number;
6374
+ /**
6375
+ * The height of the survey header on smartphones, measured in pixels.
6376
+ *
6377
+ * Default value: 0 (the height is calculated automatically to accommodate the header's content).
6378
+ */
6379
+ mobileHeight?: number;
6352
6380
  /**
6353
6381
  * A string value that specifies whether the header spans the width of the survey or that of the survey container.
6354
6382
  *
@@ -6362,27 +6390,27 @@ declare module "packages/survey-core/src/themes" {
6362
6390
  * @see [SurveyModel.width](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#width)
6363
6391
  * @see [SurveyModel.widthMode](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#widthMode)
6364
6392
  */
6365
- inheritWidthFrom: "survey" | "container";
6393
+ inheritWidthFrom?: "survey" | "container";
6366
6394
  /**
6367
6395
  * 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
6396
  *
6369
6397
  * Default value: 512
6370
6398
  */
6371
- textAreaWidth: number;
6399
+ textAreaWidth?: number;
6372
6400
  /**
6373
6401
  * A Boolean value that specifies whether the header overlaps the survey content.
6374
6402
  *
6375
6403
  * Default value: `false`
6376
6404
  */
6377
- overlapEnabled: boolean;
6405
+ overlapEnabled?: boolean;
6378
6406
  /**
6379
6407
  * An image to display in the background of the header. Accepts a base64 or URL string value.
6380
6408
  */
6381
- backgroundImage: string;
6409
+ backgroundImage?: string;
6382
6410
  /**
6383
6411
  * 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
6412
  */
6385
- backgroundImageOpacity: number;
6413
+ backgroundImageOpacity?: number;
6386
6414
  /**
6387
6415
  * A string value that specifies how to resize a [background image](#backgroundImage) to fit it into the header.
6388
6416
  *
@@ -6397,7 +6425,7 @@ declare module "packages/survey-core/src/themes" {
6397
6425
  * - `"tile"`\
6398
6426
  * Tiles as many copies of the image as needed to fill the entire header.
6399
6427
  */
6400
- backgroundImageFit: "cover" | "fill" | "contain" | "tile";
6428
+ backgroundImageFit?: "cover" | "fill" | "contain" | "tile";
6401
6429
  /**
6402
6430
  * A string value that specifies the logo position within the header in the horizontal direction.
6403
6431
  *
@@ -6409,7 +6437,7 @@ declare module "packages/survey-core/src/themes" {
6409
6437
  *
6410
6438
  * To specify a logo, set `SurveyModel`'s [`logo`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#logo) property.
6411
6439
  */
6412
- logoPositionX: HorizontalAlignment;
6440
+ logoPositionX?: HorizontalAlignment;
6413
6441
  /**
6414
6442
  * A string value that specifies the logo position within the header in the vertical direction.
6415
6443
  *
@@ -6421,7 +6449,7 @@ declare module "packages/survey-core/src/themes" {
6421
6449
  *
6422
6450
  * To specify a logo, set `SurveyModel`'s [`logo`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#logo) property.
6423
6451
  */
6424
- logoPositionY: VerticalAlignment;
6452
+ logoPositionY?: VerticalAlignment;
6425
6453
  /**
6426
6454
  * A string value that specifies the survey title position within the header in the horizontal direction.
6427
6455
  *
@@ -6433,7 +6461,7 @@ declare module "packages/survey-core/src/themes" {
6433
6461
  *
6434
6462
  * To specify a survey title, set `SurveyModel`'s [`title`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title) property.
6435
6463
  */
6436
- titlePositionX: HorizontalAlignment;
6464
+ titlePositionX?: HorizontalAlignment;
6437
6465
  /**
6438
6466
  * A string value that specifies the survey title position within the header in the vertical direction.
6439
6467
  *
@@ -6445,7 +6473,7 @@ declare module "packages/survey-core/src/themes" {
6445
6473
  *
6446
6474
  * To specify a survey title, set `SurveyModel`'s [`title`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title) property.
6447
6475
  */
6448
- titlePositionY: VerticalAlignment;
6476
+ titlePositionY?: VerticalAlignment;
6449
6477
  /**
6450
6478
  * A string value that specifies the survey description position within the header in the horizontal direction.
6451
6479
  *
@@ -6457,7 +6485,7 @@ declare module "packages/survey-core/src/themes" {
6457
6485
  *
6458
6486
  * To specify a survey description, set `SurveyModel`'s [`description`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#description) property.
6459
6487
  */
6460
- descriptionPositionX: HorizontalAlignment;
6488
+ descriptionPositionX?: HorizontalAlignment;
6461
6489
  /**
6462
6490
  * A string value that specifies the survey description position within the header in the vertical direction.
6463
6491
  *
@@ -6469,7 +6497,7 @@ declare module "packages/survey-core/src/themes" {
6469
6497
  *
6470
6498
  * To specify a survey description, set `SurveyModel`'s [`description`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#description) property.
6471
6499
  */
6472
- descriptionPositionY: VerticalAlignment;
6500
+ descriptionPositionY?: VerticalAlignment;
6473
6501
  }
6474
6502
  }
6475
6503
  declare module "packages/survey-core/src/question_paneldynamic" {
@@ -8499,7 +8527,7 @@ declare module "packages/survey-core/src/page" {
8499
8527
  scrollToTop(): void;
8500
8528
  /**
8501
8529
  * 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
8530
+ * @see timeLimit
8503
8531
  */
8504
8532
  timeSpent: number;
8505
8533
  /**
@@ -8512,11 +8540,17 @@ declare module "packages/survey-core/src/page" {
8512
8540
  /**
8513
8541
  * 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
8542
  *
8515
- * A negative value or 0 sets an unlimited time period.
8543
+ * Default value: 0 (time is unlimited)
8516
8544
  *
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.
8545
+ * 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
8546
  * @see timeSpent
8519
8547
  */
8548
+ get timeLimit(): number;
8549
+ set timeLimit(val: number);
8550
+ /**
8551
+ * Obsolete. Use the [`timeLimit`](https://surveyjs.io/form-library/documentation/api-reference/page-model#timeLimit) property instead.
8552
+ * @deprecated
8553
+ */
8520
8554
  get maxTimeToFinish(): number;
8521
8555
  set maxTimeToFinish(val: number);
8522
8556
  getMaxTimeToFinish(): number;
@@ -8566,6 +8600,7 @@ declare module "packages/survey-core/src/surveytimer" {
8566
8600
  private listenerCounter;
8567
8601
  private timerId;
8568
8602
  private prevTimeInMs;
8603
+ onTimerTick: EventBase<SurveyTimer, SurveyTimerEvent>;
8569
8604
  onTimer: EventBase<SurveyTimer, SurveyTimerEvent>;
8570
8605
  start(func?: (timer: SurveyTimer, options: SurveyTimerEvent) => void): void;
8571
8606
  stop(func?: (timer: SurveyTimer, options: SurveyTimerEvent) => any): void;
@@ -8593,7 +8628,7 @@ declare module "packages/survey-core/src/surveyTimerModel" {
8593
8628
  onCurrentPageChanged: EventBase<SurveyModel>;
8594
8629
  }
8595
8630
  export class SurveyTimerModel extends Base {
8596
- onTimer: (page: PageModel) => void;
8631
+ onTimerTick: (page: PageModel) => void;
8597
8632
  private surveyValue;
8598
8633
  constructor(survey: ISurvey);
8599
8634
  text: string;
@@ -10212,11 +10247,17 @@ declare module "packages/survey-core/src/survey" {
10212
10247
  * An event that is raised every second while the timer is running.
10213
10248
  *
10214
10249
  * 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
10250
+ * @see timeLimit
10251
+ * @see timeLimitPerPage
10252
+ * @see showTimer
10253
+ * @see timerLocation
10218
10254
  * @see startTimer
10219
10255
  */
10256
+ onTimerTick: EventBase<SurveyModel, {}>;
10257
+ /**
10258
+ * Obsolete. Use the [`onTimerTick`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTimerTick) event instead.
10259
+ * @deprecated
10260
+ */
10220
10261
  onTimer: EventBase<SurveyModel, {}>;
10221
10262
  onTimerPanelInfoText: EventBase<SurveyModel, any>;
10222
10263
  /**
@@ -10361,6 +10402,18 @@ declare module "packages/survey-core/src/survey" {
10361
10402
  */
10362
10403
  headerView: "advanced" | "basic";
10363
10404
  protected insertAdvancedHeader(advHeader: Cover): void;
10405
+ /**
10406
+ * 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/).
10407
+ *
10408
+ * Possible values:
10409
+ *
10410
+ * - `true` - Displays the survey header on the Complete page.
10411
+ * - `false` - Hides the header when users reach the Complete page.
10412
+ * - `"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).
10413
+ *
10414
+ * > This property cannot be specified in the survey JSON schema. Use dot notation to specify it.
10415
+ */
10416
+ showHeaderOnCompletePage: true | false | "auto";
10364
10417
  private getNavigationCss;
10365
10418
  private lazyRenderingValue;
10366
10419
  showBrandInfo: boolean;
@@ -12245,39 +12298,60 @@ declare module "packages/survey-core/src/survey" {
12245
12298
  getCorrectedAnswers(): number;
12246
12299
  getInCorrectedAnswers(): number;
12247
12300
  /**
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).
12301
+ * 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.
12302
+ * @deprecated
12303
+ */
12304
+ get showTimerPanel(): string;
12305
+ set showTimerPanel(val: string);
12306
+ /**
12307
+ * Specifies the timer's visibility. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
12249
12308
  *
12250
- * Possible values:
12309
+ * Default value: `false`
12251
12310
  *
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.
12311
+ * 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
12312
  *
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.
12313
+ * 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
12314
  *
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
12315
+ * 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.
12316
+ * @see timerLocation
12261
12317
  * @see timeSpent
12262
- * @see onTimer
12318
+ * @see onTimerTick
12263
12319
  */
12264
- get showTimerPanel(): string;
12265
- set showTimerPanel(val: string);
12320
+ get showTimer(): boolean;
12321
+ set showTimer(val: boolean);
12322
+ /**
12323
+ * 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`.
12324
+ *
12325
+ * Possible values:
12326
+ *
12327
+ * - `"top"` (default) - Displays the timer at the top of the survey.
12328
+ * - `"bottom"` - Displays the timer at the bottom of the survey.
12329
+ * @see onTimerTick
12330
+ */
12331
+ get timerLocation(): string;
12332
+ set timerLocation(val: string);
12266
12333
  get isTimerPanelShowingOnTop(): boolean;
12267
12334
  get isTimerPanelShowingOnBottom(): boolean;
12268
12335
  /**
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).
12336
+ * 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
12337
  *
12271
12338
  * Possible values:
12272
12339
  *
12273
12340
  * - `"survey"` - Displays only the survey timer.
12274
12341
  * - `"page"` - Displays only the page timer.
12275
- * - `"all"` (default) - Displays both the survey and page timers.
12342
+ * - `"combined"` (default) - Displays both the survey and page timers.
12276
12343
  * @see timeSpent
12277
- * @see onTimer
12344
+ * @see onTimerTick
12278
12345
  * @see startTimer
12279
12346
  * @see stopTimer
12280
12347
  */
12348
+ get timerInfoMode(): string;
12349
+ set timerInfoMode(val: string);
12350
+ private getTimerInfoVal;
12351
+ /**
12352
+ * Obsolete. Use the [`timerInfoMode`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timerInfoMode) property instead.
12353
+ * @deprecated
12354
+ */
12281
12355
  get showTimerPanelMode(): string;
12282
12356
  set showTimerPanelMode(val: string);
12283
12357
  gridLayoutEnabled: boolean;
@@ -12324,20 +12398,20 @@ declare module "packages/survey-core/src/survey" {
12324
12398
  /**
12325
12399
  * 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
12400
  * @see stopTimer
12327
- * @see maxTimeToFinish
12328
- * @see maxTimeToFinishPage
12401
+ * @see timeLimit
12402
+ * @see timeLimitPerPage
12329
12403
  * @see timeSpent
12330
- * @see onTimer
12404
+ * @see onTimerTick
12331
12405
  */
12332
12406
  startTimer(): void;
12333
12407
  startTimerFromUI(): void;
12334
12408
  /**
12335
12409
  * Stops the timer. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
12336
12410
  * @see startTimer
12337
- * @see maxTimeToFinish
12338
- * @see maxTimeToFinishPage
12411
+ * @see timeLimit
12412
+ * @see timeLimitPerPage
12339
12413
  * @see timeSpent
12340
- * @see onTimer
12414
+ * @see onTimerTick
12341
12415
  */
12342
12416
  stopTimer(): void;
12343
12417
  /**
@@ -12346,8 +12420,8 @@ declare module "packages/survey-core/src/survey" {
12346
12420
  * 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
12421
  *
12348
12422
  * 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
12423
+ * @see timeLimit
12424
+ * @see timeLimitPerPage
12351
12425
  * @see startTimer
12352
12426
  */
12353
12427
  get timeSpent(): number;
@@ -12355,27 +12429,39 @@ declare module "packages/survey-core/src/survey" {
12355
12429
  /**
12356
12430
  * 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
12431
  *
12358
- * A negative value or 0 sets an unlimited time period.
12432
+ * Default value: 0 (time is unlimited)
12359
12433
  *
12360
12434
  * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
12361
- * @see maxTimeToFinishPage
12435
+ * @see timeLimitPerPage
12362
12436
  * @see startTimer
12363
12437
  * @see timeSpent
12364
12438
  */
12439
+ get timeLimit(): number;
12440
+ set timeLimit(val: number);
12441
+ /**
12442
+ * Obsolete. Use the [`timeLimit`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeLimit) property instead.
12443
+ * @deprecated
12444
+ */
12365
12445
  get maxTimeToFinish(): number;
12366
12446
  set maxTimeToFinish(val: number);
12367
12447
  /**
12368
12448
  * 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
12449
  *
12370
- * A negative value or 0 sets an unlimited time period.
12450
+ * Default value: 0 (time is unlimited)
12371
12451
  *
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.
12452
+ * 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
12453
  *
12374
12454
  * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
12375
- * @see maxTimeToFinish
12455
+ * @see timeLimit
12376
12456
  * @see startTimer
12377
12457
  * @see timeSpent
12378
12458
  */
12459
+ get timeLimitPerPage(): number;
12460
+ set timeLimitPerPage(val: number);
12461
+ /**
12462
+ * Obsolete. Use the [`timeLimitPerPage`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeLimitPerPage) property instead.
12463
+ * @deprecated
12464
+ */
12379
12465
  get maxTimeToFinishPage(): number;
12380
12466
  set maxTimeToFinishPage(val: number);
12381
12467
  private doTimer;
@@ -12471,7 +12557,7 @@ declare module "packages/survey-core/src/survey" {
12471
12557
  }
12472
12558
  }
12473
12559
  declare module "packages/survey-core/src/survey-element" {
12474
- import { Base } from "packages/survey-core/src/base";
12560
+ import { Base, EventBase } from "packages/survey-core/src/base";
12475
12561
  import { IAction } from "packages/survey-core/src/actions/action";
12476
12562
  import { AdaptiveActionContainer } from "packages/survey-core/src/actions/adaptive-container";
12477
12563
  import { ISurveyElement, IPage, IPanel, IProgressInfo, ISurvey, ISurveyData, ISurveyImpl, ITextProcessor, ITitleOwner } from "packages/survey-core/src/base-interfaces";
@@ -12577,6 +12663,8 @@ declare module "packages/survey-core/src/survey-element" {
12577
12663
  dragTypeOverMe: DragTypeOverMeEnum;
12578
12664
  isDragMe: boolean;
12579
12665
  readOnlyChangedCallback: () => void;
12666
+ private static IsNeedScrollIntoView;
12667
+ static ScrollIntoView(el: HTMLElement, scrollIntoViewOptions?: ScrollIntoViewOptions, doneCallback?: () => void): void;
12580
12668
  static ScrollElementToTop(elementId: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, doneCallback?: () => void): boolean;
12581
12669
  static ScrollElementToViewCore(el: HTMLElement, checkLeft: boolean, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, doneCallback?: () => void): boolean;
12582
12670
  static GetFirstNonTextElement(elements: any, removeSpaces?: boolean): any;
@@ -12902,6 +12990,19 @@ declare module "packages/survey-core/src/survey-element" {
12902
12990
  set renderedIsExpanded(val: boolean);
12903
12991
  get renderedIsExpanded(): boolean;
12904
12992
  protected getIsAnimationAllowed(): boolean;
12993
+ onAfterRenderElement: EventBase<SurveyElement<E>, any>;
12994
+ afterRenderCore(element: HTMLElement): void;
12995
+ dispose(): void;
12996
+ }
12997
+ export class RenderingCompletedAwaiter {
12998
+ private _elements;
12999
+ private _renderedHandler;
13000
+ constructor(_elements: Array<SurveyElement>, _renderedHandler: () => void, waitingTimeout?: number);
13001
+ private _elementsToRenderCount;
13002
+ private _elementsToRenderTimer;
13003
+ private _elementRenderedHandler;
13004
+ private stopWaitingForElementsRendering;
13005
+ private visibleElementsRendered;
12905
13006
  dispose(): void;
12906
13007
  }
12907
13008
  }
@@ -13345,7 +13446,7 @@ declare module "packages/survey-core/src/question" {
13345
13446
  onCommentChange(event: any): void;
13346
13447
  afterRenderQuestionElement(el: HTMLElement): void;
13347
13448
  afterRender(el: HTMLElement): void;
13348
- afterRenderCore(el: HTMLElement): void;
13449
+ afterRenderCore(element: HTMLElement): void;
13349
13450
  protected getCommentElementsId(): Array<string>;
13350
13451
  beforeDestroyQuestionElement(el: HTMLElement): void;
13351
13452
  get processedTitle(): string;
@@ -14806,7 +14907,7 @@ declare module "packages/survey-core/src/base-interfaces" {
14806
14907
  maxTextLength: number;
14807
14908
  maxOthersLength: number;
14808
14909
  clearValueOnDisableItems: boolean;
14809
- maxTimeToFinishPage: number;
14910
+ timeLimitPerPage: number;
14810
14911
  uploadFiles(question: IQuestion, name: string, files: File[], uploadingCallback: (data: any | Array<any>, errors?: any | Array<any>) => any): any;
14811
14912
  downloadFile(question: IQuestion, name: string, content: string, callback: (status: string, data: any) => any): any;
14812
14913
  clearFiles(question: IQuestion, name: string, value: any, fileName: string, clearCallback: (status: string, data: any) => any): any;
@@ -15849,25 +15950,14 @@ declare module "packages/survey-core/src/base" {
15849
15950
  private animationAllowedLock;
15850
15951
  blockAnimations(): void;
15851
15952
  releaseAnimations(): void;
15852
- supportOnElementRenderedEvent: boolean;
15853
- onElementRenderedEventEnabled: boolean;
15854
- enableOnElementRenderedEvent(): void;
15855
- disableOnElementRenderedEvent(): void;
15953
+ supportOnElementRerenderedEvent: boolean;
15954
+ onElementRerenderedEventEnabled: boolean;
15955
+ enableOnElementRerenderedEvent(): void;
15956
+ disableOnElementRerenderedEvent(): void;
15856
15957
  protected _onElementRerendered: EventBase<Base>;
15857
15958
  get onElementRerendered(): EventBase<Base>;
15858
15959
  afterRerender(): void;
15859
15960
  }
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
15961
  export class ArrayChanges<T = any> {
15872
15962
  index: number;
15873
15963
  deleteCount: number;
@@ -18013,13 +18103,10 @@ declare module "packages/survey-core/src/question_comment" {
18013
18103
  get resizeStyle(): "none" | "both";
18014
18104
  getType(): string;
18015
18105
  afterRenderQuestionElement(el: HTMLElement): void;
18016
- updateElement(): void;
18017
18106
  beforeDestroyQuestionElement(el: HTMLElement): void;
18018
18107
  onInput(event: any): void;
18019
18108
  protected onBlurCore(event: any): void;
18020
18109
  onKeyDown(event: any): void;
18021
- protected setQuestionValue(newValue: any, updateIsAnswered?: boolean): void;
18022
- onValueChanged(): void;
18023
18110
  protected setNewValue(newValue: string): any;
18024
18111
  protected getValueSeparator(): string;
18025
18112
  get className(): string;
@@ -19159,7 +19246,7 @@ declare module "packages/survey-core/entries/chunks/model" {
19159
19246
  export { QuestionCommentModel } from "packages/survey-core/src/question_comment";
19160
19247
  export { QuestionDropdownModel } from "packages/survey-core/src/question_dropdown";
19161
19248
  export { QuestionFactory, ElementFactory } from "packages/survey-core/src/questionfactory";
19162
- export { QuestionFileModel } from "packages/survey-core/src/question_file";
19249
+ export { QuestionFileModel, QuestionFilePage } from "packages/survey-core/src/question_file";
19163
19250
  export { QuestionHtmlModel } from "packages/survey-core/src/question_html";
19164
19251
  export { QuestionRadiogroupModel } from "packages/survey-core/src/question_radiogroup";
19165
19252
  export { QuestionRatingModel, RenderedRatingItem } from "packages/survey-core/src/question_rating";
@@ -27925,6 +28012,32 @@ declare module "packages/survey-react-ui/src/reactquestion_file" {
27925
28012
  protected renderVideo(): JSX.Element;
27926
28013
  }
27927
28014
  }
28015
+ declare module "packages/survey-react-ui/src/components/file/file-item" {
28016
+ import { SurveyElementBase } from "packages/survey-react-ui/src/reactquestion_element";
28017
+ import { QuestionFileModel } from "src/entries/core";
28018
+ export class SurveyFileItem extends SurveyElementBase<{
28019
+ question: QuestionFileModel;
28020
+ item: any;
28021
+ }, {}> {
28022
+ protected get question(): QuestionFileModel;
28023
+ protected get item(): any;
28024
+ protected renderFileSign(className: string, val: any): JSX.Element | null;
28025
+ protected renderElement(): JSX.Element | null;
28026
+ protected canRender(): boolean;
28027
+ }
28028
+ }
28029
+ declare module "packages/survey-react-ui/src/components/file/file-page" {
28030
+ import { SurveyElementBase } from "packages/survey-react-ui/src/reactquestion_element";
28031
+ import { QuestionFileModel, QuestionFilePage } from "src/entries/core";
28032
+ export class SurveyFilePage extends SurveyElementBase<{
28033
+ question: QuestionFileModel;
28034
+ page: QuestionFilePage;
28035
+ }, {}> {
28036
+ protected get question(): QuestionFileModel;
28037
+ protected get page(): any;
28038
+ protected renderElement(): JSX.Element | null;
28039
+ }
28040
+ }
27928
28041
  declare module "packages/survey-react-ui/src/components/file/file-preview" {
27929
28042
  import { SurveyElementBase } from "packages/survey-react-ui/src/reactquestion_element";
27930
28043
  import { QuestionFileModel } from "src/entries/core";