survey-core 1.12.3 → 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.
Files changed (259) hide show
  1. package/defaultV2.css +96 -42
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +96 -42
  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 +23 -77
  114. package/modern.css.map +1 -1
  115. package/modern.fontless.css +23 -77
  116. package/modern.fontless.css.map +1 -1
  117. package/modern.fontless.min.css +2 -2
  118. package/modern.min.css +2 -2
  119. package/package.json +1 -1
  120. package/plugins/bootstrap-integration/index.js +1 -2
  121. package/plugins/bootstrap-integration/index.js.map +1 -1
  122. package/plugins/bootstrap-integration/index.min.js +2 -2
  123. package/plugins/bootstrap-material-integration/index.js +1 -2
  124. package/plugins/bootstrap-material-integration/index.js.map +1 -1
  125. package/plugins/bootstrap-material-integration/index.min.js +2 -2
  126. package/survey.core.js +866 -342
  127. package/survey.core.js.map +1 -1
  128. package/survey.core.min.js +3 -3
  129. package/survey.css +11 -17
  130. package/survey.css.map +1 -1
  131. package/survey.i18n.js +1 -1
  132. package/survey.i18n.min.js +1 -1
  133. package/survey.min.css +2 -2
  134. package/themes/borderless-dark-panelless.js +1 -1
  135. package/themes/borderless-dark-panelless.min.js +1 -1
  136. package/themes/borderless-dark.js +1 -1
  137. package/themes/borderless-dark.min.js +1 -1
  138. package/themes/borderless-light-panelless..js +1 -1
  139. package/themes/borderless-light-panelless..min.js +1 -1
  140. package/themes/borderless-light.js +1 -1
  141. package/themes/borderless-light.min.js +1 -1
  142. package/themes/contrast-dark-panelless.js +1 -1
  143. package/themes/contrast-dark-panelless.min.js +1 -1
  144. package/themes/contrast-dark.js +1 -1
  145. package/themes/contrast-dark.min.js +1 -1
  146. package/themes/contrast-light-panelless.js +1 -1
  147. package/themes/contrast-light-panelless.min.js +1 -1
  148. package/themes/contrast-light.js +1 -1
  149. package/themes/contrast-light.min.js +1 -1
  150. package/themes/default-dark-panelless.js +1 -1
  151. package/themes/default-dark-panelless.min.js +1 -1
  152. package/themes/default-dark.js +1 -1
  153. package/themes/default-dark.min.js +1 -1
  154. package/themes/default-light-panelless.js +1 -1
  155. package/themes/default-light-panelless.min.js +1 -1
  156. package/themes/default-light.js +1 -1
  157. package/themes/default-light.min.js +1 -1
  158. package/themes/doubleborder-dark-panelless.js +1 -1
  159. package/themes/doubleborder-dark-panelless.min.js +1 -1
  160. package/themes/doubleborder-dark.js +1 -1
  161. package/themes/doubleborder-dark.min.js +1 -1
  162. package/themes/doubleborder-light-panelles.js +1 -1
  163. package/themes/doubleborder-light-panelles.min.js +1 -1
  164. package/themes/doubleborder-light.js +1 -1
  165. package/themes/doubleborder-light.min.js +1 -1
  166. package/themes/flat-dark-panelless.js +1 -1
  167. package/themes/flat-dark-panelless.min.js +1 -1
  168. package/themes/flat-dark.js +1 -1
  169. package/themes/flat-dark.min.js +1 -1
  170. package/themes/flat-light-panelless.js +1 -1
  171. package/themes/flat-light-panelless.min.js +1 -1
  172. package/themes/flat-light.js +1 -1
  173. package/themes/flat-light.min.js +1 -1
  174. package/themes/index.js +1 -1
  175. package/themes/index.min.js +1 -1
  176. package/themes/layered-dark-panelless.js +1 -1
  177. package/themes/layered-dark-panelless.min.js +1 -1
  178. package/themes/layered-dark.js +1 -1
  179. package/themes/layered-dark.min.js +1 -1
  180. package/themes/layered-light-panelless.js +1 -1
  181. package/themes/layered-light-panelless.min.js +1 -1
  182. package/themes/layered-light.js +1 -1
  183. package/themes/layered-light.min.js +1 -1
  184. package/themes/plain-dark-panelless.js +1 -1
  185. package/themes/plain-dark-panelless.min.js +1 -1
  186. package/themes/plain-dark.js +1 -1
  187. package/themes/plain-dark.min.js +1 -1
  188. package/themes/plain-light-panelless.js +1 -1
  189. package/themes/plain-light-panelless.min.js +1 -1
  190. package/themes/plain-light.js +1 -1
  191. package/themes/plain-light.min.js +1 -1
  192. package/themes/sharp-dark-panelless.js +1 -1
  193. package/themes/sharp-dark-panelless.min.js +1 -1
  194. package/themes/sharp-dark.js +1 -1
  195. package/themes/sharp-dark.min.js +1 -1
  196. package/themes/sharp-light-panelless.js +1 -1
  197. package/themes/sharp-light-panelless.min.js +1 -1
  198. package/themes/sharp-light.js +1 -1
  199. package/themes/sharp-light.min.js +1 -1
  200. package/themes/solid-dark-panelless.js +1 -1
  201. package/themes/solid-dark-panelless.min.js +1 -1
  202. package/themes/solid-dark.js +1 -1
  203. package/themes/solid-dark.min.js +1 -1
  204. package/themes/solid-light-panelless.js +1 -1
  205. package/themes/solid-light-panelless.min.js +1 -1
  206. package/themes/solid-light.js +1 -1
  207. package/themes/solid-light.min.js +1 -1
  208. package/themes/three-dimensional-dark-panelless.js +1 -1
  209. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  210. package/themes/three-dimensional-dark.js +1 -1
  211. package/themes/three-dimensional-dark.min.js +1 -1
  212. package/themes/three-dimensional-light-panelless.js +1 -1
  213. package/themes/three-dimensional-light-panelless.min.js +1 -1
  214. package/themes/three-dimensional-light.js +1 -1
  215. package/themes/three-dimensional-light.min.js +1 -1
  216. package/ts3.4/typings/packages/survey-core/entries/chunks/model.d.ts +1 -1
  217. package/ts3.4/typings/packages/survey-core/src/base-interfaces.d.ts +2 -2
  218. package/ts3.4/typings/packages/survey-core/src/base.d.ts +4 -4
  219. package/ts3.4/typings/packages/survey-core/src/defaultCss/defaultV2Css.d.ts +1 -0
  220. package/ts3.4/typings/packages/survey-core/src/page.d.ts +9 -3
  221. package/ts3.4/typings/packages/survey-core/src/panel.d.ts +11 -3
  222. package/ts3.4/typings/packages/survey-core/src/question.d.ts +5 -5
  223. package/ts3.4/typings/packages/survey-core/src/question_baseselect.d.ts +0 -3
  224. package/ts3.4/typings/packages/survey-core/src/question_comment.d.ts +0 -3
  225. package/ts3.4/typings/packages/survey-core/src/question_file.d.ts +20 -2
  226. package/ts3.4/typings/packages/survey-core/src/question_matrix.d.ts +13 -5
  227. package/ts3.4/typings/packages/survey-core/src/question_matrixdynamic.d.ts +2 -0
  228. package/ts3.4/typings/packages/survey-core/src/question_paneldynamic.d.ts +2 -0
  229. package/ts3.4/typings/packages/survey-core/src/question_ranking.d.ts +1 -0
  230. package/ts3.4/typings/packages/survey-core/src/question_rating.d.ts +3 -0
  231. package/ts3.4/typings/packages/survey-core/src/survey-element.d.ts +19 -3
  232. package/ts3.4/typings/packages/survey-core/src/survey.d.ts +84 -33
  233. package/ts3.4/typings/packages/survey-core/src/surveyTimerModel.d.ts +1 -1
  234. package/ts3.4/typings/packages/survey-core/src/surveytimer.d.ts +1 -0
  235. package/ts3.4/typings/packages/survey-core/src/themes.d.ts +19 -13
  236. package/ts3.4/typings/packages/survey-core/src/utils/text-area.d.ts +1 -0
  237. package/ts3.4/typings/packages/survey-core/src/utils/utils.d.ts +2 -2
  238. package/typings/packages/survey-core/entries/chunks/model.d.ts +1 -1
  239. package/typings/packages/survey-core/src/base-interfaces.d.ts +2 -2
  240. package/typings/packages/survey-core/src/base.d.ts +4 -4
  241. package/typings/packages/survey-core/src/defaultCss/defaultV2Css.d.ts +1 -0
  242. package/typings/packages/survey-core/src/page.d.ts +10 -3
  243. package/typings/packages/survey-core/src/panel.d.ts +11 -3
  244. package/typings/packages/survey-core/src/question.d.ts +5 -5
  245. package/typings/packages/survey-core/src/question_baseselect.d.ts +0 -3
  246. package/typings/packages/survey-core/src/question_comment.d.ts +0 -3
  247. package/typings/packages/survey-core/src/question_file.d.ts +21 -2
  248. package/typings/packages/survey-core/src/question_matrix.d.ts +13 -5
  249. package/typings/packages/survey-core/src/question_matrixdynamic.d.ts +2 -0
  250. package/typings/packages/survey-core/src/question_paneldynamic.d.ts +2 -0
  251. package/typings/packages/survey-core/src/question_ranking.d.ts +1 -0
  252. package/typings/packages/survey-core/src/question_rating.d.ts +3 -0
  253. package/typings/packages/survey-core/src/survey-element.d.ts +19 -3
  254. package/typings/packages/survey-core/src/survey.d.ts +90 -34
  255. package/typings/packages/survey-core/src/surveyTimerModel.d.ts +1 -1
  256. package/typings/packages/survey-core/src/surveytimer.d.ts +1 -0
  257. package/typings/packages/survey-core/src/themes.d.ts +19 -13
  258. package/typings/packages/survey-core/src/utils/text-area.d.ts +1 -0
  259. package/typings/packages/survey-core/src/utils/utils.d.ts +2 -2
@@ -627,11 +627,17 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
627
627
  * An event that is raised every second while the timer is running.
628
628
  *
629
629
  * Use the [`timeSpent`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeSpent) property to find out how many seconds have elapsed.
630
- * @see maxTimeToFinish
631
- * @see maxTimeToFinishPage
632
- * @see showTimerPanel
630
+ * @see timeLimit
631
+ * @see timeLimitPerPage
632
+ * @see showTimer
633
+ * @see timerLocation
633
634
  * @see startTimer
634
635
  */
636
+ onTimerTick: EventBase<SurveyModel, {}>;
637
+ /**
638
+ * Obsolete. Use the [`onTimerTick`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTimerTick) event instead.
639
+ * @deprecated
640
+ */
635
641
  onTimer: EventBase<SurveyModel, {}>;
636
642
  onTimerPanelInfoText: EventBase<SurveyModel, any>;
637
643
  /**
@@ -776,6 +782,18 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
776
782
  */
777
783
  headerView: "advanced" | "basic";
778
784
  protected insertAdvancedHeader(advHeader: Cover): void;
785
+ /**
786
+ * 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/).
787
+ *
788
+ * Possible values:
789
+ *
790
+ * - `true` - Displays the survey header on the Complete page.
791
+ * - `false` - Hides the header when users reach the Complete page.
792
+ * - `"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).
793
+ *
794
+ * > This property cannot be specified in the survey JSON schema. Use dot notation to specify it.
795
+ */
796
+ showHeaderOnCompletePage: true | false | "auto";
779
797
  private getNavigationCss;
780
798
  private lazyRenderingValue;
781
799
  showBrandInfo: boolean;
@@ -796,7 +814,10 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
796
814
  lazyRenderingFirstBatchSizeValue: number;
797
815
  get lazyRenderingFirstBatchSize(): number;
798
816
  set lazyRenderingFirstBatchSize(val: number);
799
- disableLazyRenderingBeforeElement(el: IElement): void;
817
+ protected _isLazyRenderingSuspended: boolean;
818
+ get isLazyRenderingSuspended(): boolean;
819
+ protected suspendLazyRendering(): void;
820
+ protected releaseLazyRendering(): void;
800
821
  private updateLazyRenderingRowsOnRemovingElements;
801
822
  /**
802
823
  * A list of triggers in the survey.
@@ -1343,8 +1364,9 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1343
1364
  /**
1344
1365
  * Calculates a given [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) and returns a result value.
1345
1366
  * @param expression An expression to calculate.
1367
+ * @param callback A callback function that you can use to access the calculation result if the expression uses asynchronous functions.
1346
1368
  */
1347
- runExpression(expression: string): any;
1369
+ runExpression(expression: string, callback?: (res: any) => void): any;
1348
1370
  /**
1349
1371
  * Calculates a given [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) and returns `true` or `false`.
1350
1372
  * @param expression An expression to calculate.
@@ -2245,7 +2267,8 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2245
2267
  private getUpdatedPanelTitleActions;
2246
2268
  private getUpdatedPageTitleActions;
2247
2269
  getUpdatedMatrixRowActions(question: QuestionMatrixDropdownModelBase, row: any, actions: Array<IAction>): IAction[];
2248
- scrollElementToTop(element: ISurveyElement, question: Question, page: PageModel, id: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions): any;
2270
+ skeletonHeight: number;
2271
+ scrollElementToTop(element: ISurveyElement, question: Question, page: PageModel, id: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, passedRootElement?: HTMLElement): any;
2249
2272
  /**
2250
2273
  * Opens a dialog window for users to select files.
2251
2274
  * @param input A [file input HTML element](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement).
@@ -2655,39 +2678,60 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2655
2678
  getCorrectedAnswers(): number;
2656
2679
  getInCorrectedAnswers(): number;
2657
2680
  /**
2658
- * Displays the timer panel and specifies its position. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
2681
+ * 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.
2682
+ * @deprecated
2683
+ */
2684
+ get showTimerPanel(): string;
2685
+ set showTimerPanel(val: string);
2686
+ /**
2687
+ * Specifies the timer's visibility. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
2659
2688
  *
2660
- * Possible values:
2689
+ * Default value: `false`
2661
2690
  *
2662
- * - `"top"` - Displays the timer panel at the top of the survey.
2663
- * - `"bottom"` - Displays the timer panel at the bottom of the survey.
2664
- * - `"none"` (default) - Hides the timer panel.
2691
+ * 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.
2665
2692
  *
2666
- * 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.
2693
+ * 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"`.
2667
2694
  *
2668
- * 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"`.
2669
- * @see startTimer
2670
- * @see stopTimer
2695
+ * 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.
2696
+ * @see timerLocation
2671
2697
  * @see timeSpent
2672
- * @see onTimer
2698
+ * @see onTimerTick
2673
2699
  */
2674
- get showTimerPanel(): string;
2675
- set showTimerPanel(val: string);
2700
+ get showTimer(): boolean;
2701
+ set showTimer(val: boolean);
2702
+ /**
2703
+ * 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`.
2704
+ *
2705
+ * Possible values:
2706
+ *
2707
+ * - `"top"` (default) - Displays the timer at the top of the survey.
2708
+ * - `"bottom"` - Displays the timer at the bottom of the survey.
2709
+ * @see onTimerTick
2710
+ */
2711
+ get timerLocation(): string;
2712
+ set timerLocation(val: string);
2676
2713
  get isTimerPanelShowingOnTop(): boolean;
2677
2714
  get isTimerPanelShowingOnBottom(): boolean;
2678
2715
  /**
2679
- * 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).
2716
+ * 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).
2680
2717
  *
2681
2718
  * Possible values:
2682
2719
  *
2683
2720
  * - `"survey"` - Displays only the survey timer.
2684
2721
  * - `"page"` - Displays only the page timer.
2685
- * - `"all"` (default) - Displays both the survey and page timers.
2722
+ * - `"combined"` (default) - Displays both the survey and page timers.
2686
2723
  * @see timeSpent
2687
- * @see onTimer
2724
+ * @see onTimerTick
2688
2725
  * @see startTimer
2689
2726
  * @see stopTimer
2690
2727
  */
2728
+ get timerInfoMode(): string;
2729
+ set timerInfoMode(val: string);
2730
+ private getTimerInfoVal;
2731
+ /**
2732
+ * Obsolete. Use the [`timerInfoMode`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timerInfoMode) property instead.
2733
+ * @deprecated
2734
+ */
2691
2735
  get showTimerPanelMode(): string;
2692
2736
  set showTimerPanelMode(val: string);
2693
2737
  gridLayoutEnabled: boolean;
@@ -2734,20 +2778,20 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2734
2778
  /**
2735
2779
  * 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).
2736
2780
  * @see stopTimer
2737
- * @see maxTimeToFinish
2738
- * @see maxTimeToFinishPage
2781
+ * @see timeLimit
2782
+ * @see timeLimitPerPage
2739
2783
  * @see timeSpent
2740
- * @see onTimer
2784
+ * @see onTimerTick
2741
2785
  */
2742
2786
  startTimer(): void;
2743
2787
  startTimerFromUI(): void;
2744
2788
  /**
2745
2789
  * Stops the timer. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
2746
2790
  * @see startTimer
2747
- * @see maxTimeToFinish
2748
- * @see maxTimeToFinishPage
2791
+ * @see timeLimit
2792
+ * @see timeLimitPerPage
2749
2793
  * @see timeSpent
2750
- * @see onTimer
2794
+ * @see onTimerTick
2751
2795
  */
2752
2796
  stopTimer(): void;
2753
2797
  /**
@@ -2756,8 +2800,8 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2756
2800
  * 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).
2757
2801
  *
2758
2802
  * 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.
2759
- * @see maxTimeToFinish
2760
- * @see maxTimeToFinishPage
2803
+ * @see timeLimit
2804
+ * @see timeLimitPerPage
2761
2805
  * @see startTimer
2762
2806
  */
2763
2807
  get timeSpent(): number;
@@ -2765,27 +2809,39 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2765
2809
  /**
2766
2810
  * 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).
2767
2811
  *
2768
- * A negative value or 0 sets an unlimited time period.
2812
+ * Default value: 0 (time is unlimited)
2769
2813
  *
2770
2814
  * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
2771
- * @see maxTimeToFinishPage
2815
+ * @see timeLimitPerPage
2772
2816
  * @see startTimer
2773
2817
  * @see timeSpent
2774
2818
  */
2819
+ get timeLimit(): number;
2820
+ set timeLimit(val: number);
2821
+ /**
2822
+ * Obsolete. Use the [`timeLimit`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeLimit) property instead.
2823
+ * @deprecated
2824
+ */
2775
2825
  get maxTimeToFinish(): number;
2776
2826
  set maxTimeToFinish(val: number);
2777
2827
  /**
2778
2828
  * 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).
2779
2829
  *
2780
- * A negative value or 0 sets an unlimited time period.
2830
+ * Default value: 0 (time is unlimited)
2781
2831
  *
2782
- * 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.
2832
+ * 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.
2783
2833
  *
2784
2834
  * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
2785
- * @see maxTimeToFinish
2835
+ * @see timeLimit
2786
2836
  * @see startTimer
2787
2837
  * @see timeSpent
2788
2838
  */
2839
+ get timeLimitPerPage(): number;
2840
+ set timeLimitPerPage(val: number);
2841
+ /**
2842
+ * Obsolete. Use the [`timeLimitPerPage`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeLimitPerPage) property instead.
2843
+ * @deprecated
2844
+ */
2789
2845
  get maxTimeToFinishPage(): number;
2790
2846
  set maxTimeToFinishPage(val: number);
2791
2847
  private doTimer;
@@ -18,7 +18,7 @@ export interface ISurveyTimerText {
18
18
  onCurrentPageChanged: EventBase<SurveyModel>;
19
19
  }
20
20
  export declare class SurveyTimerModel extends Base {
21
- onTimer: (page: PageModel) => void;
21
+ onTimerTick: (page: PageModel) => void;
22
22
  private surveyValue;
23
23
  constructor(survey: ISurvey);
24
24
  text: string;
@@ -14,6 +14,7 @@ export declare class SurveyTimer {
14
14
  private listenerCounter;
15
15
  private timerId;
16
16
  private prevTimeInMs;
17
+ onTimerTick: EventBase<SurveyTimer, SurveyTimerEvent>;
17
18
  onTimer: EventBase<SurveyTimer, SurveyTimerEvent>;
18
19
  start(func?: (timer: SurveyTimer, options: SurveyTimerEvent) => void): void;
19
20
  stop(func?: (timer: SurveyTimer, options: SurveyTimerEvent) => any): void;
@@ -91,7 +91,13 @@ export interface IHeader {
91
91
  *
92
92
  * Default value: 256
93
93
  */
94
- height: number;
94
+ height?: number;
95
+ /**
96
+ * The height of the survey header on smartphones, measured in pixels.
97
+ *
98
+ * Default value: 0 (the height is calculated automatically to accommodate the header's content).
99
+ */
100
+ mobileHeight?: number;
95
101
  /**
96
102
  * A string value that specifies whether the header spans the width of the survey or that of the survey container.
97
103
  *
@@ -105,27 +111,27 @@ export interface IHeader {
105
111
  * @see [SurveyModel.width](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#width)
106
112
  * @see [SurveyModel.widthMode](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#widthMode)
107
113
  */
108
- inheritWidthFrom: "survey" | "container";
114
+ inheritWidthFrom?: "survey" | "container";
109
115
  /**
110
116
  * 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.
111
117
  *
112
118
  * Default value: 512
113
119
  */
114
- textAreaWidth: number;
120
+ textAreaWidth?: number;
115
121
  /**
116
122
  * A Boolean value that specifies whether the header overlaps the survey content.
117
123
  *
118
124
  * Default value: `false`
119
125
  */
120
- overlapEnabled: boolean;
126
+ overlapEnabled?: boolean;
121
127
  /**
122
128
  * An image to display in the background of the header. Accepts a base64 or URL string value.
123
129
  */
124
- backgroundImage: string;
130
+ backgroundImage?: string;
125
131
  /**
126
132
  * 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.
127
133
  */
128
- backgroundImageOpacity: number;
134
+ backgroundImageOpacity?: number;
129
135
  /**
130
136
  * A string value that specifies how to resize a [background image](#backgroundImage) to fit it into the header.
131
137
  *
@@ -140,7 +146,7 @@ export interface IHeader {
140
146
  * - `"tile"`\
141
147
  * Tiles as many copies of the image as needed to fill the entire header.
142
148
  */
143
- backgroundImageFit: "cover" | "fill" | "contain" | "tile";
149
+ backgroundImageFit?: "cover" | "fill" | "contain" | "tile";
144
150
  /**
145
151
  * A string value that specifies the logo position within the header in the horizontal direction.
146
152
  *
@@ -152,7 +158,7 @@ export interface IHeader {
152
158
  *
153
159
  * To specify a logo, set `SurveyModel`'s [`logo`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#logo) property.
154
160
  */
155
- logoPositionX: HorizontalAlignment;
161
+ logoPositionX?: HorizontalAlignment;
156
162
  /**
157
163
  * A string value that specifies the logo position within the header in the vertical direction.
158
164
  *
@@ -164,7 +170,7 @@ export interface IHeader {
164
170
  *
165
171
  * To specify a logo, set `SurveyModel`'s [`logo`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#logo) property.
166
172
  */
167
- logoPositionY: VerticalAlignment;
173
+ logoPositionY?: VerticalAlignment;
168
174
  /**
169
175
  * A string value that specifies the survey title position within the header in the horizontal direction.
170
176
  *
@@ -176,7 +182,7 @@ export interface IHeader {
176
182
  *
177
183
  * To specify a survey title, set `SurveyModel`'s [`title`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title) property.
178
184
  */
179
- titlePositionX: HorizontalAlignment;
185
+ titlePositionX?: HorizontalAlignment;
180
186
  /**
181
187
  * A string value that specifies the survey title position within the header in the vertical direction.
182
188
  *
@@ -188,7 +194,7 @@ export interface IHeader {
188
194
  *
189
195
  * To specify a survey title, set `SurveyModel`'s [`title`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title) property.
190
196
  */
191
- titlePositionY: VerticalAlignment;
197
+ titlePositionY?: VerticalAlignment;
192
198
  /**
193
199
  * A string value that specifies the survey description position within the header in the horizontal direction.
194
200
  *
@@ -200,7 +206,7 @@ export interface IHeader {
200
206
  *
201
207
  * To specify a survey description, set `SurveyModel`'s [`description`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#description) property.
202
208
  */
203
- descriptionPositionX: HorizontalAlignment;
209
+ descriptionPositionX?: HorizontalAlignment;
204
210
  /**
205
211
  * A string value that specifies the survey description position within the header in the vertical direction.
206
212
  *
@@ -212,5 +218,5 @@ export interface IHeader {
212
218
  *
213
219
  * To specify a survey description, set `SurveyModel`'s [`description`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#description) property.
214
220
  */
215
- descriptionPositionY: VerticalAlignment;
221
+ descriptionPositionY?: VerticalAlignment;
216
222
  }
@@ -27,6 +27,7 @@ export interface ITextArea {
27
27
  export declare class TextAreaModel {
28
28
  private options;
29
29
  private element;
30
+ private updateElement;
30
31
  private onPropertyChangedCallback;
31
32
  constructor(options: ITextArea);
32
33
  setElement(element: HTMLTextAreaElement | null): void;
@@ -10,7 +10,7 @@ declare const isShadowDOM: (rootElement: Document | ShadowRoot | HTMLElement) =>
10
10
  declare const getElement: (element: HTMLElement | string) => HTMLElement;
11
11
  declare function isElementVisible(element: HTMLElement, threshold?: number): boolean;
12
12
  declare function findScrollableParent(element: HTMLElement): HTMLElement;
13
- declare function scrollElementByChildId(id: string): void;
13
+ declare function activateLazyRenderingChecks(id: string): void;
14
14
  declare function navigateToUrl(url: string): void;
15
15
  declare function wrapUrlForBackgroundImage(url: string): string;
16
16
  declare function getIconNameFromProxy(iconName: string): string;
@@ -69,4 +69,4 @@ export declare function setPropertiesOnElementForAnimation(el: HTMLElement, styl
69
69
  export declare function prepareElementForVerticalAnimation(el: HTMLElement): void;
70
70
  export declare function cleanHtmlElementAfterAnimation(el: HTMLElement): void;
71
71
  export declare function roundTo2Decimals(number: number): number;
72
- export { mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, chooseFiles };
72
+ export { mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, activateLazyRenderingChecks, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, chooseFiles };