survey-core 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.
Files changed (252) hide show
  1. package/defaultV2.css +86 -6
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +86 -6
  4. package/defaultV2.fontless.css.map +1 -1
  5. package/defaultV2.fontless.min.css +2 -2
  6. package/defaultV2.min.css +2 -2
  7. package/i18n/arabic.js +1 -1
  8. package/i18n/arabic.min.js +1 -1
  9. package/i18n/basque.js +1 -1
  10. package/i18n/basque.min.js +1 -1
  11. package/i18n/bulgarian.js +1 -1
  12. package/i18n/bulgarian.min.js +1 -1
  13. package/i18n/catalan.js +1 -1
  14. package/i18n/catalan.min.js +1 -1
  15. package/i18n/croatian.js +1 -1
  16. package/i18n/croatian.min.js +1 -1
  17. package/i18n/czech.js +1 -1
  18. package/i18n/czech.min.js +1 -1
  19. package/i18n/danish.js +1 -1
  20. package/i18n/danish.min.js +1 -1
  21. package/i18n/dutch.js +1 -1
  22. package/i18n/dutch.min.js +1 -1
  23. package/i18n/english.js +1 -1
  24. package/i18n/english.min.js +1 -1
  25. package/i18n/estonian.js +1 -1
  26. package/i18n/estonian.min.js +1 -1
  27. package/i18n/finnish.js +1 -1
  28. package/i18n/finnish.min.js +1 -1
  29. package/i18n/french.js +1 -1
  30. package/i18n/french.min.js +1 -1
  31. package/i18n/georgian.js +1 -1
  32. package/i18n/georgian.min.js +1 -1
  33. package/i18n/german.js +1 -1
  34. package/i18n/german.min.js +1 -1
  35. package/i18n/greek.js +1 -1
  36. package/i18n/greek.min.js +1 -1
  37. package/i18n/hebrew.js +1 -1
  38. package/i18n/hebrew.min.js +1 -1
  39. package/i18n/hindi.js +1 -1
  40. package/i18n/hindi.min.js +1 -1
  41. package/i18n/hungarian.js +1 -1
  42. package/i18n/hungarian.min.js +1 -1
  43. package/i18n/icelandic.js +1 -1
  44. package/i18n/icelandic.min.js +1 -1
  45. package/i18n/index.js +1 -1
  46. package/i18n/index.min.js +1 -1
  47. package/i18n/indonesian.js +1 -1
  48. package/i18n/indonesian.min.js +1 -1
  49. package/i18n/italian.js +1 -1
  50. package/i18n/italian.min.js +1 -1
  51. package/i18n/japanese.js +1 -1
  52. package/i18n/japanese.min.js +1 -1
  53. package/i18n/kazakh.js +1 -1
  54. package/i18n/kazakh.min.js +1 -1
  55. package/i18n/korean.js +1 -1
  56. package/i18n/korean.min.js +1 -1
  57. package/i18n/latvian.js +1 -1
  58. package/i18n/latvian.min.js +1 -1
  59. package/i18n/lithuanian.js +1 -1
  60. package/i18n/lithuanian.min.js +1 -1
  61. package/i18n/macedonian.js +1 -1
  62. package/i18n/macedonian.min.js +1 -1
  63. package/i18n/malay.js +1 -1
  64. package/i18n/malay.min.js +1 -1
  65. package/i18n/nl-BE.js +1 -1
  66. package/i18n/nl-BE.min.js +1 -1
  67. package/i18n/norwegian.js +1 -1
  68. package/i18n/norwegian.min.js +1 -1
  69. package/i18n/persian.js +1 -1
  70. package/i18n/persian.min.js +1 -1
  71. package/i18n/philippines.js +1 -1
  72. package/i18n/philippines.min.js +1 -1
  73. package/i18n/polish.js +1 -1
  74. package/i18n/polish.min.js +1 -1
  75. package/i18n/portuguese-br.js +1 -1
  76. package/i18n/portuguese-br.min.js +1 -1
  77. package/i18n/portuguese.js +1 -1
  78. package/i18n/portuguese.min.js +1 -1
  79. package/i18n/romanian.js +1 -1
  80. package/i18n/romanian.min.js +1 -1
  81. package/i18n/russian.js +1 -1
  82. package/i18n/russian.min.js +1 -1
  83. package/i18n/serbian.js +1 -1
  84. package/i18n/serbian.min.js +1 -1
  85. package/i18n/simplified-chinese.js +1 -1
  86. package/i18n/simplified-chinese.min.js +1 -1
  87. package/i18n/slovak.js +1 -1
  88. package/i18n/slovak.min.js +1 -1
  89. package/i18n/spanish.js +1 -1
  90. package/i18n/spanish.min.js +1 -1
  91. package/i18n/swahili.js +1 -1
  92. package/i18n/swahili.min.js +1 -1
  93. package/i18n/swedish.js +1 -1
  94. package/i18n/swedish.min.js +1 -1
  95. package/i18n/tajik.js +1 -1
  96. package/i18n/tajik.min.js +1 -1
  97. package/i18n/telugu.js +1 -1
  98. package/i18n/telugu.min.js +1 -1
  99. package/i18n/thai.js +1 -1
  100. package/i18n/thai.min.js +1 -1
  101. package/i18n/traditional-chinese.js +1 -1
  102. package/i18n/traditional-chinese.min.js +1 -1
  103. package/i18n/turkish.js +1 -1
  104. package/i18n/turkish.min.js +1 -1
  105. package/i18n/ukrainian.js +1 -1
  106. package/i18n/ukrainian.min.js +1 -1
  107. package/i18n/urdu.js +1 -1
  108. package/i18n/urdu.min.js +1 -1
  109. package/i18n/vietnamese.js +1 -1
  110. package/i18n/vietnamese.min.js +1 -1
  111. package/i18n/welsh.js +1 -1
  112. package/i18n/welsh.min.js +1 -1
  113. package/modern.css +1 -1
  114. package/modern.fontless.css +1 -1
  115. package/modern.fontless.min.css +1 -1
  116. package/modern.min.css +1 -1
  117. package/package.json +1 -1
  118. package/plugins/bootstrap-integration/index.js +1 -1
  119. package/plugins/bootstrap-integration/index.min.js +1 -1
  120. package/plugins/bootstrap-material-integration/index.js +1 -1
  121. package/plugins/bootstrap-material-integration/index.min.js +1 -1
  122. package/survey.core.js +619 -321
  123. package/survey.core.js.map +1 -1
  124. package/survey.core.min.js +3 -3
  125. package/survey.css +1 -1
  126. package/survey.i18n.js +1 -1
  127. package/survey.i18n.min.js +1 -1
  128. package/survey.min.css +1 -1
  129. package/themes/borderless-dark-panelless.js +1 -1
  130. package/themes/borderless-dark-panelless.min.js +1 -1
  131. package/themes/borderless-dark.js +1 -1
  132. package/themes/borderless-dark.min.js +1 -1
  133. package/themes/borderless-light-panelless..js +1 -1
  134. package/themes/borderless-light-panelless..min.js +1 -1
  135. package/themes/borderless-light.js +1 -1
  136. package/themes/borderless-light.min.js +1 -1
  137. package/themes/contrast-dark-panelless.js +1 -1
  138. package/themes/contrast-dark-panelless.min.js +1 -1
  139. package/themes/contrast-dark.js +1 -1
  140. package/themes/contrast-dark.min.js +1 -1
  141. package/themes/contrast-light-panelless.js +1 -1
  142. package/themes/contrast-light-panelless.min.js +1 -1
  143. package/themes/contrast-light.js +1 -1
  144. package/themes/contrast-light.min.js +1 -1
  145. package/themes/default-dark-panelless.js +1 -1
  146. package/themes/default-dark-panelless.min.js +1 -1
  147. package/themes/default-dark.js +1 -1
  148. package/themes/default-dark.min.js +1 -1
  149. package/themes/default-light-panelless.js +1 -1
  150. package/themes/default-light-panelless.min.js +1 -1
  151. package/themes/default-light.js +1 -1
  152. package/themes/default-light.min.js +1 -1
  153. package/themes/doubleborder-dark-panelless.js +1 -1
  154. package/themes/doubleborder-dark-panelless.min.js +1 -1
  155. package/themes/doubleborder-dark.js +1 -1
  156. package/themes/doubleborder-dark.min.js +1 -1
  157. package/themes/doubleborder-light-panelles.js +1 -1
  158. package/themes/doubleborder-light-panelles.min.js +1 -1
  159. package/themes/doubleborder-light.js +1 -1
  160. package/themes/doubleborder-light.min.js +1 -1
  161. package/themes/flat-dark-panelless.js +1 -1
  162. package/themes/flat-dark-panelless.min.js +1 -1
  163. package/themes/flat-dark.js +1 -1
  164. package/themes/flat-dark.min.js +1 -1
  165. package/themes/flat-light-panelless.js +1 -1
  166. package/themes/flat-light-panelless.min.js +1 -1
  167. package/themes/flat-light.js +1 -1
  168. package/themes/flat-light.min.js +1 -1
  169. package/themes/index.js +1 -1
  170. package/themes/index.min.js +1 -1
  171. package/themes/layered-dark-panelless.js +1 -1
  172. package/themes/layered-dark-panelless.min.js +1 -1
  173. package/themes/layered-dark.js +1 -1
  174. package/themes/layered-dark.min.js +1 -1
  175. package/themes/layered-light-panelless.js +1 -1
  176. package/themes/layered-light-panelless.min.js +1 -1
  177. package/themes/layered-light.js +1 -1
  178. package/themes/layered-light.min.js +1 -1
  179. package/themes/plain-dark-panelless.js +1 -1
  180. package/themes/plain-dark-panelless.min.js +1 -1
  181. package/themes/plain-dark.js +1 -1
  182. package/themes/plain-dark.min.js +1 -1
  183. package/themes/plain-light-panelless.js +1 -1
  184. package/themes/plain-light-panelless.min.js +1 -1
  185. package/themes/plain-light.js +1 -1
  186. package/themes/plain-light.min.js +1 -1
  187. package/themes/sharp-dark-panelless.js +1 -1
  188. package/themes/sharp-dark-panelless.min.js +1 -1
  189. package/themes/sharp-dark.js +1 -1
  190. package/themes/sharp-dark.min.js +1 -1
  191. package/themes/sharp-light-panelless.js +1 -1
  192. package/themes/sharp-light-panelless.min.js +1 -1
  193. package/themes/sharp-light.js +1 -1
  194. package/themes/sharp-light.min.js +1 -1
  195. package/themes/solid-dark-panelless.js +1 -1
  196. package/themes/solid-dark-panelless.min.js +1 -1
  197. package/themes/solid-dark.js +1 -1
  198. package/themes/solid-dark.min.js +1 -1
  199. package/themes/solid-light-panelless.js +1 -1
  200. package/themes/solid-light-panelless.min.js +1 -1
  201. package/themes/solid-light.js +1 -1
  202. package/themes/solid-light.min.js +1 -1
  203. package/themes/three-dimensional-dark-panelless.js +1 -1
  204. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  205. package/themes/three-dimensional-dark.js +1 -1
  206. package/themes/three-dimensional-dark.min.js +1 -1
  207. package/themes/three-dimensional-light-panelless.js +1 -1
  208. package/themes/three-dimensional-light-panelless.min.js +1 -1
  209. package/themes/three-dimensional-light.js +1 -1
  210. package/themes/three-dimensional-light.min.js +1 -1
  211. package/ts3.4/typings/packages/survey-core/entries/chunks/model.d.ts +1 -1
  212. package/ts3.4/typings/packages/survey-core/src/base-interfaces.d.ts +2 -2
  213. package/ts3.4/typings/packages/survey-core/src/base.d.ts +4 -15
  214. package/ts3.4/typings/packages/survey-core/src/defaultCss/defaultV2Css.d.ts +1 -0
  215. package/ts3.4/typings/packages/survey-core/src/jsonobject.d.ts +2 -0
  216. package/ts3.4/typings/packages/survey-core/src/page.d.ts +8 -3
  217. package/ts3.4/typings/packages/survey-core/src/panel.d.ts +2 -0
  218. package/ts3.4/typings/packages/survey-core/src/question.d.ts +2 -2
  219. package/ts3.4/typings/packages/survey-core/src/question_baseselect.d.ts +0 -3
  220. package/ts3.4/typings/packages/survey-core/src/question_comment.d.ts +0 -3
  221. package/ts3.4/typings/packages/survey-core/src/question_file.d.ts +20 -2
  222. package/ts3.4/typings/packages/survey-core/src/question_matrixdropdownbase.d.ts +2 -0
  223. package/ts3.4/typings/packages/survey-core/src/question_matrixdynamic.d.ts +4 -0
  224. package/ts3.4/typings/packages/survey-core/src/question_text.d.ts +0 -1
  225. package/ts3.4/typings/packages/survey-core/src/survey-element.d.ts +16 -1
  226. package/ts3.4/typings/packages/survey-core/src/survey.d.ts +78 -31
  227. package/ts3.4/typings/packages/survey-core/src/surveyTimerModel.d.ts +1 -1
  228. package/ts3.4/typings/packages/survey-core/src/surveytimer.d.ts +1 -0
  229. package/ts3.4/typings/packages/survey-core/src/themes.d.ts +19 -13
  230. package/ts3.4/typings/packages/survey-core/src/utils/text-area.d.ts +1 -0
  231. package/ts3.4/typings/packages/survey-core/src/validator.d.ts +1 -0
  232. package/typings/packages/survey-core/entries/chunks/model.d.ts +1 -1
  233. package/typings/packages/survey-core/src/base-interfaces.d.ts +2 -2
  234. package/typings/packages/survey-core/src/base.d.ts +4 -15
  235. package/typings/packages/survey-core/src/defaultCss/defaultV2Css.d.ts +1 -0
  236. package/typings/packages/survey-core/src/jsonobject.d.ts +2 -0
  237. package/typings/packages/survey-core/src/page.d.ts +9 -3
  238. package/typings/packages/survey-core/src/panel.d.ts +2 -0
  239. package/typings/packages/survey-core/src/question.d.ts +2 -2
  240. package/typings/packages/survey-core/src/question_baseselect.d.ts +0 -3
  241. package/typings/packages/survey-core/src/question_comment.d.ts +0 -3
  242. package/typings/packages/survey-core/src/question_file.d.ts +21 -2
  243. package/typings/packages/survey-core/src/question_matrixdropdownbase.d.ts +2 -0
  244. package/typings/packages/survey-core/src/question_matrixdynamic.d.ts +4 -0
  245. package/typings/packages/survey-core/src/question_text.d.ts +0 -1
  246. package/typings/packages/survey-core/src/survey-element.d.ts +16 -1
  247. package/typings/packages/survey-core/src/survey.d.ts +84 -32
  248. package/typings/packages/survey-core/src/surveyTimerModel.d.ts +1 -1
  249. package/typings/packages/survey-core/src/surveytimer.d.ts +1 -0
  250. package/typings/packages/survey-core/src/themes.d.ts +19 -13
  251. package/typings/packages/survey-core/src/utils/text-area.d.ts +1 -0
  252. package/typings/packages/survey-core/src/validator.d.ts +1 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.4
2
+ * surveyjs - Survey JavaScript library v1.12.6
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.4
2
+ * surveyjs - Survey JavaScript library v1.12.6
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.4
2
+ * surveyjs - Survey JavaScript library v1.12.6
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.4
2
+ * surveyjs - Survey JavaScript library v1.12.6
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.4
2
+ * surveyjs - Survey JavaScript library v1.12.6
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.4
2
+ * surveyjs - Survey JavaScript library v1.12.6
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.4
2
+ * surveyjs - Survey JavaScript library v1.12.6
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.4
2
+ * surveyjs - Survey JavaScript library v1.12.6
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.4
2
+ * surveyjs - Survey JavaScript library v1.12.6
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.4
2
+ * surveyjs - Survey JavaScript library v1.12.6
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.4
2
+ * surveyjs - Survey JavaScript library v1.12.6
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
  */
@@ -46,7 +46,7 @@ export { QuestionRankingModel } from "../../src/question_ranking";
46
46
  export { QuestionCommentModel } from "../../src/question_comment";
47
47
  export { QuestionDropdownModel } from "../../src/question_dropdown";
48
48
  export { QuestionFactory, ElementFactory } from "../../src/questionfactory";
49
- export { QuestionFileModel } from "../../src/question_file";
49
+ export { QuestionFileModel, QuestionFilePage } from "../../src/question_file";
50
50
  export { QuestionHtmlModel } from "../../src/question_html";
51
51
  export { QuestionRadiogroupModel } from "../../src/question_radiogroup";
52
52
  export { QuestionRatingModel, RenderedRatingItem } from "../../src/question_rating";
@@ -113,7 +113,7 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
113
113
  maxTextLength: number;
114
114
  maxOthersLength: number;
115
115
  clearValueOnDisableItems: boolean;
116
- maxTimeToFinishPage: number;
116
+ timeLimitPerPage: number;
117
117
  uploadFiles(question: IQuestion, name: string, files: File[], uploadingCallback: (data: any | Array<any>, errors?: any | Array<any>) => any): any;
118
118
  downloadFile(question: IQuestion, name: string, content: string, callback: (status: string, data: any) => any): any;
119
119
  clearFiles(question: IQuestion, name: string, value: any, fileName: string, clearCallback: (status: string, data: any) => any): any;
@@ -169,7 +169,7 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
169
169
  dynamicPanelGetTabTitle(question: IQuestion, options: any): any;
170
170
  dynamicPanelCurrentIndexChanged(question: IQuestion, options: any): void;
171
171
  dragAndDropAllow(options: DragDropAllowEvent): boolean;
172
- scrollElementToTop(element: ISurveyElement, question: IQuestion, page: IPage, id: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions): any;
172
+ scrollElementToTop(element: ISurveyElement, question: IQuestion, page: IPage, id: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, passedRootElement?: HTMLElement, onScolledCallback?: () => void): any;
173
173
  runExpression(expression: string, callback?: (res: any) => void): any;
174
174
  elementContentVisibilityChanged(element: ISurveyElement): void;
175
175
  onCorrectQuestionAnswer(question: IQuestion, options: any): void;
@@ -300,25 +300,14 @@ export declare class Base {
300
300
  private animationAllowedLock;
301
301
  blockAnimations(): void;
302
302
  releaseAnimations(): void;
303
- supportOnElementRenderedEvent: boolean;
304
- onElementRenderedEventEnabled: boolean;
305
- enableOnElementRenderedEvent(): void;
306
- disableOnElementRenderedEvent(): void;
303
+ supportOnElementRerenderedEvent: boolean;
304
+ onElementRerenderedEventEnabled: boolean;
305
+ enableOnElementRerenderedEvent(): void;
306
+ disableOnElementRerenderedEvent(): void;
307
307
  protected _onElementRerendered: EventBase<Base>;
308
308
  readonly onElementRerendered: EventBase<Base>;
309
309
  afterRerender(): void;
310
310
  }
311
- export declare class RenderingCompletedAwaiter {
312
- private _elements;
313
- private _renderedHandler;
314
- constructor(_elements: Array<Base>, _renderedHandler: () => void, waitingTimeout?: number);
315
- private _elementsToRenderCount;
316
- private _elementsToRenderTimer;
317
- private _elementRenderedHandler;
318
- private stopWaitingForElementsRendering;
319
- private visibleElementsRendered;
320
- dispose(): void;
321
- }
322
311
  export declare class ArrayChanges<T = any> {
323
312
  index: number;
324
313
  deleteCount: number;
@@ -711,6 +711,7 @@ export declare var defaultV2Css: {
711
711
  changeCameraButton: string;
712
712
  takePictureButton: string;
713
713
  loadingIndicator: string;
714
+ page: string;
714
715
  };
715
716
  signaturepad: {
716
717
  mainRoot: string;
@@ -40,6 +40,7 @@ export interface IJsonPropertyInfo {
40
40
  isSerializable?: boolean;
41
41
  isLightSerializable?: boolean;
42
42
  readOnly?: boolean;
43
+ availableInMatrixColumn?: boolean;
43
44
  serializationProperty?: string;
44
45
  dependsOn?: Array<string> | string;
45
46
  isBindable?: boolean;
@@ -113,6 +114,7 @@ export declare class JsonObjectProperty implements IObject, IJsonPropertyInfo {
113
114
  nextToProperty: string;
114
115
  overridingProperty: string;
115
116
  showMode: string;
117
+ availableInMatrixColumn: boolean;
116
118
  maxLength: number;
117
119
  maxValue: any;
118
120
  minValue: any;
@@ -76,7 +76,7 @@ export declare class PageModel extends PanelModelBase implements IPage {
76
76
  scrollToTop(): void;
77
77
  /**
78
78
  * 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).
79
- * @see maxTimeToFinish
79
+ * @see timeLimit
80
80
  */
81
81
  timeSpent: number;
82
82
  /**
@@ -89,11 +89,16 @@ export declare class PageModel extends PanelModelBase implements IPage {
89
89
  /*
90
90
  * 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).
91
91
  *
92
- * A negative value or 0 sets an unlimited time period.
92
+ * Default value: 0 (time is unlimited)
93
93
  *
94
- * 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.
94
+ * 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.
95
95
  * @see timeSpent
96
96
  */
97
+ timeLimit: number;
98
+ /*
99
+ * Obsolete. Use the [`timeLimit`](https://surveyjs.io/form-library/documentation/api-reference/page-model#timeLimit) property instead.
100
+ * @deprecated
101
+ */
97
102
  maxTimeToFinish: number;
98
103
  getMaxTimeToFinish(): number;
99
104
  protected onNumChanged(value: number): void;
@@ -460,6 +460,7 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
460
460
  readonly cssError: string;
461
461
  protected getCssError(cssClasses: any): string;
462
462
  getSerializableColumnsValue(): Array<PanelLayoutColumnModel>;
463
+ afterRender(el: HTMLElement): void;
463
464
  dispose(): void;
464
465
  }
465
466
  /**
@@ -579,4 +580,5 @@ export declare class PanelModel extends PanelModelBase implements IElement {
579
580
  [index: string]: string;
580
581
  }): string;
581
582
  getContainerCss(): string;
583
+ afterRenderCore(element: HTMLElement): void;
582
584
  }
@@ -362,7 +362,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
362
362
  onCommentChange(event: any): void;
363
363
  afterRenderQuestionElement(el: HTMLElement): void;
364
364
  afterRender(el: HTMLElement): void;
365
- afterRenderCore(el: HTMLElement): void;
365
+ afterRenderCore(element: HTMLElement): void;
366
366
  protected getCommentElementsId(): Array<string>;
367
367
  beforeDestroyQuestionElement(el: HTMLElement): void;
368
368
  readonly processedTitle: string;
@@ -420,7 +420,6 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
420
420
  * @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.
421
421
  */
422
422
  focus(onError?: boolean, scrollIfVisible?: boolean): void;
423
- private focuscore;
424
423
  focusInputElement(onError: boolean): void;
425
424
  private readonly isValidateVisitedEmptyFields: any;
426
425
  private isFocusEmpty;
@@ -845,6 +844,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
845
844
  clearUnusedValues(): void;
846
845
  onAnyValueChanged(name: string, questionName: string): void;
847
846
  checkBindings(valueName: string, value: any): void;
847
+ protected updateBindingProp(propName: string, value: any): void;
848
848
  getComponentName(): string;
849
849
  isDefaultRendering(): boolean;
850
850
  renderAs: string;
@@ -483,9 +483,6 @@ export declare class QuestionSelectBase extends Question {
483
483
  getItemId(item: ItemValue): string;
484
484
  readonly questionName: string;
485
485
  getItemEnabled(item: ItemValue): boolean;
486
- protected rootElement: HTMLElement;
487
- afterRender(el: HTMLElement): void;
488
- beforeDestroyQuestionElement(el: HTMLElement): void;
489
486
  private focusOtherComment;
490
487
  private prevIsOtherSelected;
491
488
  protected onValueChanged(): void;
@@ -41,13 +41,10 @@ export declare class QuestionCommentModel extends QuestionTextBase {
41
41
  readonly resizeStyle: "none" | "both";
42
42
  getType(): string;
43
43
  afterRenderQuestionElement(el: HTMLElement): void;
44
- updateElement(): void;
45
44
  beforeDestroyQuestionElement(el: HTMLElement): void;
46
45
  onInput(event: any): void;
47
46
  protected onBlurCore(event: any): void;
48
47
  onKeyDown(event: any): void;
49
- protected setQuestionValue(newValue: any, updateIsAnswered?: boolean): void;
50
- onValueChanged(): void;
51
48
  protected setNewValue(newValue: string): any;
52
49
  protected getValueSeparator(): string;
53
50
  readonly className: string;
@@ -1,6 +1,6 @@
1
1
  import { IPlainDataOptions } from "./base-interfaces";
2
2
  import { IQuestionPlainData, Question } from "./question";
3
- import { EventBase } from "./base";
3
+ import { EventBase, Base } from "./base";
4
4
  import { SurveyError } from "./survey-error";
5
5
  import { ActionContainer } from "./actions/container";
6
6
  import { Action } from "./actions/action";
@@ -46,6 +46,16 @@ export declare class QuestionFileModelBase extends Question {
46
46
  protected loadPreview(newValue: any): void;
47
47
  protected onChangeQuestionValue(newValue: any): void;
48
48
  }
49
+ export declare class QuestionFilePage extends Base {
50
+ private question;
51
+ private index;
52
+ private static pageCounter;
53
+ private static getId;
54
+ items: Array<any>;
55
+ id: string;
56
+ constructor(question: QuestionFileModel, index: number);
57
+ readonly css: string;
58
+ }
49
59
  /**
50
60
  * A class that describes the File Upload question type.
51
61
  *
@@ -54,6 +64,8 @@ export declare class QuestionFileModelBase extends Question {
54
64
  export declare class QuestionFileModel extends QuestionFileModelBase {
55
65
  isDragging: boolean;
56
66
  previewValue: any[];
67
+ pages: QuestionFilePage[];
68
+ navigationDirection: "left" | "right" | "left-delete";
57
69
  indexToShow: number;
58
70
  pageSize: number;
59
71
  containsMultiplyFiles: boolean;
@@ -82,6 +94,7 @@ export declare class QuestionFileModel extends QuestionFileModelBase {
82
94
  startCameraAction: Action;
83
95
  cleanAction: Action;
84
96
  actionsContainer: ActionContainer;
97
+ readonly supportFileNavigator: boolean;
85
98
  private isFileLoadingValue;
86
99
  protected isFileLoading: boolean;
87
100
  readonly fileNavigatorVisible: boolean;
@@ -105,9 +118,10 @@ export declare class QuestionFileModel extends QuestionFileModelBase {
105
118
  protected updateElementCssCore(cssClasses: any): void;
106
119
  private getFileIndexCaption;
107
120
  private updateFileNavigator;
121
+ private updateRenderedPages;
122
+ private updatePages;
108
123
  private prevPreviewLength;
109
124
  private previewValueChanged;
110
- isPreviewVisible(index: number): boolean;
111
125
  getType(): string;
112
126
  /*
113
127
  * Disable this property only to implement a custom preview.
@@ -235,6 +249,10 @@ export declare class QuestionFileModel extends QuestionFileModelBase {
235
249
  protected supportResponsiveness(): boolean;
236
250
  protected getObservedElementSelector(): string;
237
251
  private getFileListSelector;
252
+ private _renderedPages;
253
+ renderedPages: Array<QuestionFilePage>;
254
+ private getPagesAnimationOptions;
255
+ private pagesAnimation;
238
256
  private calcAvailableItemsCount;
239
257
  private calculatedGapBetweenItems;
240
258
  private calculatedItemWidth;
@@ -69,6 +69,7 @@ export declare class MatrixDropdownRowModelBase implements ISurveyData, ISurveyI
69
69
  static OwnerVariableName: string;
70
70
  static IndexVariableName: string;
71
71
  static RowValueVariableName: string;
72
+ static RowNameVariableName: string;
72
73
  private static idCounter;
73
74
  private static getId;
74
75
  protected data: IMatrixDropdownData;
@@ -158,6 +159,7 @@ export declare class MatrixDropdownRowModelBase implements ISurveyData, ISurveyI
158
159
  getSurvey(): ISurvey;
159
160
  getTextProcessor(): ITextProcessor;
160
161
  readonly rowIndex: number;
162
+ protected getRowIndex(): number;
161
163
  readonly editingObj: Base;
162
164
  private onEditingObjPropertyChanged;
163
165
  private editingObjValue;
@@ -7,6 +7,7 @@ export declare class MatrixDynamicRowModel extends MatrixDropdownRowModelBase im
7
7
  index: number;
8
8
  private dragOrClickHelper;
9
9
  constructor(index: number, data: IMatrixDropdownData, value: any);
10
+ protected getRowIndex(): number;
10
11
  readonly rowName: string;
11
12
  readonly dataName: string;
12
13
  readonly text: any;
@@ -74,6 +75,7 @@ export declare class QuestionMatrixDynamicModel extends QuestionMatrixDropdownMo
74
75
  * @see maxRowCount
75
76
  */
76
77
  rowCount: number;
78
+ protected updateBindingProp(propName: string, value: any): void;
77
79
  protected updateProgressInfoByValues(res: IProgressInfo): void;
78
80
  private getValueForNewRow;
79
81
  /*
@@ -96,6 +98,7 @@ export declare class QuestionMatrixDynamicModel extends QuestionMatrixDropdownMo
96
98
  * @see allowRemoveRows
97
99
  */
98
100
  minRowCount: number;
101
+ private onMinRowCountChanged;
99
102
  /*
100
103
  * A maximum number of rows in the matrix. Users cannot add new rows if `rowCount` equals `maxRowCount`.
101
104
  *
@@ -105,6 +108,7 @@ export declare class QuestionMatrixDynamicModel extends QuestionMatrixDropdownMo
105
108
  * @see allowAddRows
106
109
  */
107
110
  maxRowCount: number;
111
+ private onMaxRowCountChanged;
108
112
  /*
109
113
  * Specifies whether users are allowed to add new rows.
110
114
  *
@@ -164,7 +164,6 @@ export declare class QuestionTextModel extends QuestionTextBase {
164
164
  dataList: Array<string>;
165
165
  readonly locDataList: LocalizableStrings;
166
166
  readonly dataListId: string;
167
- protected canRunValidators(isOnValueChanged: boolean): boolean;
168
167
  protected setNewValue(newValue: any): void;
169
168
  protected correctValueType(newValue: any): any;
170
169
  protected hasPlaceholder(): boolean;
@@ -1,4 +1,4 @@
1
- import { Base } from "./base";
1
+ import { Base, EventBase } from "./base";
2
2
  import { IAction } from "./actions/action";
3
3
  import { AdaptiveActionContainer } from "./actions/adaptive-container";
4
4
  import { ISurveyElement, IPage, IPanel, IProgressInfo, ISurvey, ISurveyData, ISurveyImpl, ITextProcessor, ITitleOwner } from "./base-interfaces";
@@ -103,6 +103,8 @@ export declare class SurveyElement<E = any> extends SurveyElementCore implements
103
103
  dragTypeOverMe: DragTypeOverMeEnum;
104
104
  isDragMe: boolean;
105
105
  readOnlyChangedCallback: () => void;
106
+ private static IsNeedScrollIntoView;
107
+ static ScrollIntoView(el: HTMLElement, scrollIntoViewOptions?: ScrollIntoViewOptions, doneCallback?: () => void): void;
106
108
  static ScrollElementToTop(elementId: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, doneCallback?: () => void): boolean;
107
109
  static ScrollElementToViewCore(el: HTMLElement, checkLeft: boolean, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, doneCallback?: () => void): boolean;
108
110
  static GetFirstNonTextElement(elements: any, removeSpaces?: boolean): any;
@@ -410,5 +412,18 @@ export declare class SurveyElement<E = any> extends SurveyElementCore implements
410
412
  private animationCollapsed;
411
413
  renderedIsExpanded: boolean;
412
414
  protected getIsAnimationAllowed(): boolean;
415
+ onAfterRenderElement: EventBase<SurveyElement<E>, any>;
416
+ afterRenderCore(element: HTMLElement): void;
417
+ dispose(): void;
418
+ }
419
+ export declare class RenderingCompletedAwaiter {
420
+ private _elements;
421
+ private _renderedHandler;
422
+ constructor(_elements: Array<SurveyElement>, _renderedHandler: () => void, waitingTimeout?: number);
423
+ private _elementsToRenderCount;
424
+ private _elementsToRenderTimer;
425
+ private _elementRenderedHandler;
426
+ private stopWaitingForElementsRendering;
427
+ private visibleElementsRendered;
413
428
  dispose(): void;
414
429
  }
@@ -625,11 +625,17 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
625
625
  * An event that is raised every second while the timer is running.
626
626
  *
627
627
  * Use the [`timeSpent`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeSpent) property to find out how many seconds have elapsed.
628
- * @see maxTimeToFinish
629
- * @see maxTimeToFinishPage
630
- * @see showTimerPanel
628
+ * @see timeLimit
629
+ * @see timeLimitPerPage
630
+ * @see showTimer
631
+ * @see timerLocation
631
632
  * @see startTimer
632
633
  */
634
+ onTimerTick: EventBase<SurveyModel, {}>;
635
+ /**
636
+ * Obsolete. Use the [`onTimerTick`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTimerTick) event instead.
637
+ * @deprecated
638
+ */
633
639
  onTimer: EventBase<SurveyModel, {}>;
634
640
  onTimerPanelInfoText: EventBase<SurveyModel, any>;
635
641
  /**
@@ -773,6 +779,18 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
773
779
  */
774
780
  headerView: "advanced" | "basic";
775
781
  protected insertAdvancedHeader(advHeader: Cover): void;
782
+ /**
783
+ * 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/).
784
+ *
785
+ * Possible values:
786
+ *
787
+ * - `true` - Displays the survey header on the Complete page.
788
+ * - `false` - Hides the header when users reach the Complete page.
789
+ * - `"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).
790
+ *
791
+ * > This property cannot be specified in the survey JSON schema. Use dot notation to specify it.
792
+ */
793
+ showHeaderOnCompletePage: true | false | "auto";
776
794
  private getNavigationCss;
777
795
  private lazyRenderingValue;
778
796
  showBrandInfo: boolean;
@@ -2093,6 +2111,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2093
2111
  private getProgressTextCore;
2094
2112
  rootCss: string;
2095
2113
  getRootCss(): string;
2114
+ private isSmoothScrollEnabled;
2096
2115
  private resizeObserver;
2097
2116
  afterRenderSurvey(htmlElement: any): void;
2098
2117
  /**
@@ -2164,7 +2183,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2164
2183
  private getUpdatedPageTitleActions;
2165
2184
  getUpdatedMatrixRowActions(question: QuestionMatrixDropdownModelBase, row: any, actions: Array<IAction>): IAction[];
2166
2185
  skeletonHeight: number;
2167
- scrollElementToTop(element: ISurveyElement, question: Question, page: PageModel, id: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, passedRootElement?: HTMLElement): any;
2186
+ scrollElementToTop(element: ISurveyElement, question: Question, page: PageModel, id: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, passedRootElement?: HTMLElement, onScolledCallback?: () => void): any;
2168
2187
  /**
2169
2188
  * Opens a dialog window for users to select files.
2170
2189
  * @param input A [file input HTML element](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement).
@@ -2573,38 +2592,56 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2573
2592
  getCorrectedAnswers(): number;
2574
2593
  getInCorrectedAnswers(): number;
2575
2594
  /*
2576
- * Displays the timer panel and specifies its position. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
2595
+ * 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.
2596
+ * @deprecated
2597
+ */
2598
+ showTimerPanel: string;
2599
+ /*
2600
+ * Specifies the timer's visibility. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
2577
2601
  *
2578
- * Possible values:
2602
+ * Default value: `false`
2579
2603
  *
2580
- * - `"top"` - Displays the timer panel at the top of the survey.
2581
- * - `"bottom"` - Displays the timer panel at the bottom of the survey.
2582
- * - `"none"` (default) - Hides the timer panel.
2604
+ * 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.
2583
2605
  *
2584
- * 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.
2606
+ * 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"`.
2585
2607
  *
2586
- * 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"`.
2587
- * @see startTimer
2588
- * @see stopTimer
2608
+ * 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.
2609
+ * @see timerLocation
2589
2610
  * @see timeSpent
2590
- * @see onTimer
2611
+ * @see onTimerTick
2591
2612
  */
2592
- showTimerPanel: string;
2613
+ showTimer: boolean;
2614
+ /*
2615
+ * 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`.
2616
+ *
2617
+ * Possible values:
2618
+ *
2619
+ * - `"top"` (default) - Displays the timer at the top of the survey.
2620
+ * - `"bottom"` - Displays the timer at the bottom of the survey.
2621
+ * @see onTimerTick
2622
+ */
2623
+ timerLocation: string;
2593
2624
  readonly isTimerPanelShowingOnTop: boolean;
2594
2625
  readonly isTimerPanelShowingOnBottom: boolean;
2595
2626
  /*
2596
- * 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).
2627
+ * 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).
2597
2628
  *
2598
2629
  * Possible values:
2599
2630
  *
2600
2631
  * - `"survey"` - Displays only the survey timer.
2601
2632
  * - `"page"` - Displays only the page timer.
2602
- * - `"all"` (default) - Displays both the survey and page timers.
2633
+ * - `"combined"` (default) - Displays both the survey and page timers.
2603
2634
  * @see timeSpent
2604
- * @see onTimer
2635
+ * @see onTimerTick
2605
2636
  * @see startTimer
2606
2637
  * @see stopTimer
2607
2638
  */
2639
+ timerInfoMode: string;
2640
+ private getTimerInfoVal;
2641
+ /*
2642
+ * Obsolete. Use the [`timerInfoMode`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timerInfoMode) property instead.
2643
+ * @deprecated
2644
+ */
2608
2645
  showTimerPanelMode: string;
2609
2646
  gridLayoutEnabled: boolean;
2610
2647
  /*
@@ -2648,20 +2685,20 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2648
2685
  /**
2649
2686
  * 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).
2650
2687
  * @see stopTimer
2651
- * @see maxTimeToFinish
2652
- * @see maxTimeToFinishPage
2688
+ * @see timeLimit
2689
+ * @see timeLimitPerPage
2653
2690
  * @see timeSpent
2654
- * @see onTimer
2691
+ * @see onTimerTick
2655
2692
  */
2656
2693
  startTimer(): void;
2657
2694
  startTimerFromUI(): void;
2658
2695
  /**
2659
2696
  * Stops the timer. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
2660
2697
  * @see startTimer
2661
- * @see maxTimeToFinish
2662
- * @see maxTimeToFinishPage
2698
+ * @see timeLimit
2699
+ * @see timeLimitPerPage
2663
2700
  * @see timeSpent
2664
- * @see onTimer
2701
+ * @see onTimerTick
2665
2702
  */
2666
2703
  stopTimer(): void;
2667
2704
  /*
@@ -2670,34 +2707,44 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2670
2707
  * 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).
2671
2708
  *
2672
2709
  * 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.
2673
- * @see maxTimeToFinish
2674
- * @see maxTimeToFinishPage
2710
+ * @see timeLimit
2711
+ * @see timeLimitPerPage
2675
2712
  * @see startTimer
2676
2713
  */
2677
2714
  timeSpent: number;
2678
2715
  /*
2679
2716
  * 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).
2680
2717
  *
2681
- * A negative value or 0 sets an unlimited time period.
2718
+ * Default value: 0 (time is unlimited)
2682
2719
  *
2683
2720
  * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
2684
- * @see maxTimeToFinishPage
2721
+ * @see timeLimitPerPage
2685
2722
  * @see startTimer
2686
2723
  * @see timeSpent
2687
2724
  */
2725
+ timeLimit: number;
2726
+ /*
2727
+ * Obsolete. Use the [`timeLimit`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeLimit) property instead.
2728
+ * @deprecated
2729
+ */
2688
2730
  maxTimeToFinish: number;
2689
2731
  /*
2690
2732
  * 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).
2691
2733
  *
2692
- * A negative value or 0 sets an unlimited time period.
2734
+ * Default value: 0 (time is unlimited)
2693
2735
  *
2694
- * 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.
2736
+ * 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.
2695
2737
  *
2696
2738
  * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
2697
- * @see maxTimeToFinish
2739
+ * @see timeLimit
2698
2740
  * @see startTimer
2699
2741
  * @see timeSpent
2700
2742
  */
2743
+ timeLimitPerPage: number;
2744
+ /*
2745
+ * Obsolete. Use the [`timeLimitPerPage`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeLimitPerPage) property instead.
2746
+ * @deprecated
2747
+ */
2701
2748
  maxTimeToFinishPage: number;
2702
2749
  private doTimer;
2703
2750
  readonly inSurvey: boolean;