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
@@ -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;
@@ -2179,6 +2197,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2179
2197
  private getProgressTextCore;
2180
2198
  rootCss: string;
2181
2199
  getRootCss(): string;
2200
+ private isSmoothScrollEnabled;
2182
2201
  private resizeObserver;
2183
2202
  afterRenderSurvey(htmlElement: any): void;
2184
2203
  /**
@@ -2250,7 +2269,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2250
2269
  private getUpdatedPageTitleActions;
2251
2270
  getUpdatedMatrixRowActions(question: QuestionMatrixDropdownModelBase, row: any, actions: Array<IAction>): IAction[];
2252
2271
  skeletonHeight: number;
2253
- scrollElementToTop(element: ISurveyElement, question: Question, page: PageModel, id: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, passedRootElement?: HTMLElement): any;
2272
+ scrollElementToTop(element: ISurveyElement, question: Question, page: PageModel, id: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, passedRootElement?: HTMLElement, onScolledCallback?: () => void): any;
2254
2273
  /**
2255
2274
  * Opens a dialog window for users to select files.
2256
2275
  * @param input A [file input HTML element](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement).
@@ -2660,39 +2679,60 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2660
2679
  getCorrectedAnswers(): number;
2661
2680
  getInCorrectedAnswers(): number;
2662
2681
  /**
2663
- * Displays the timer panel and specifies its position. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
2682
+ * 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.
2683
+ * @deprecated
2684
+ */
2685
+ get showTimerPanel(): string;
2686
+ set showTimerPanel(val: string);
2687
+ /**
2688
+ * Specifies the timer's visibility. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
2664
2689
  *
2665
- * Possible values:
2690
+ * Default value: `false`
2666
2691
  *
2667
- * - `"top"` - Displays the timer panel at the top of the survey.
2668
- * - `"bottom"` - Displays the timer panel at the bottom of the survey.
2669
- * - `"none"` (default) - Hides the timer panel.
2692
+ * 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.
2670
2693
  *
2671
- * 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.
2694
+ * 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"`.
2672
2695
  *
2673
- * 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"`.
2674
- * @see startTimer
2675
- * @see stopTimer
2696
+ * 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.
2697
+ * @see timerLocation
2676
2698
  * @see timeSpent
2677
- * @see onTimer
2699
+ * @see onTimerTick
2678
2700
  */
2679
- get showTimerPanel(): string;
2680
- set showTimerPanel(val: string);
2701
+ get showTimer(): boolean;
2702
+ set showTimer(val: boolean);
2703
+ /**
2704
+ * 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`.
2705
+ *
2706
+ * Possible values:
2707
+ *
2708
+ * - `"top"` (default) - Displays the timer at the top of the survey.
2709
+ * - `"bottom"` - Displays the timer at the bottom of the survey.
2710
+ * @see onTimerTick
2711
+ */
2712
+ get timerLocation(): string;
2713
+ set timerLocation(val: string);
2681
2714
  get isTimerPanelShowingOnTop(): boolean;
2682
2715
  get isTimerPanelShowingOnBottom(): boolean;
2683
2716
  /**
2684
- * 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).
2717
+ * 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).
2685
2718
  *
2686
2719
  * Possible values:
2687
2720
  *
2688
2721
  * - `"survey"` - Displays only the survey timer.
2689
2722
  * - `"page"` - Displays only the page timer.
2690
- * - `"all"` (default) - Displays both the survey and page timers.
2723
+ * - `"combined"` (default) - Displays both the survey and page timers.
2691
2724
  * @see timeSpent
2692
- * @see onTimer
2725
+ * @see onTimerTick
2693
2726
  * @see startTimer
2694
2727
  * @see stopTimer
2695
2728
  */
2729
+ get timerInfoMode(): string;
2730
+ set timerInfoMode(val: string);
2731
+ private getTimerInfoVal;
2732
+ /**
2733
+ * Obsolete. Use the [`timerInfoMode`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timerInfoMode) property instead.
2734
+ * @deprecated
2735
+ */
2696
2736
  get showTimerPanelMode(): string;
2697
2737
  set showTimerPanelMode(val: string);
2698
2738
  gridLayoutEnabled: boolean;
@@ -2739,20 +2779,20 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2739
2779
  /**
2740
2780
  * 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).
2741
2781
  * @see stopTimer
2742
- * @see maxTimeToFinish
2743
- * @see maxTimeToFinishPage
2782
+ * @see timeLimit
2783
+ * @see timeLimitPerPage
2744
2784
  * @see timeSpent
2745
- * @see onTimer
2785
+ * @see onTimerTick
2746
2786
  */
2747
2787
  startTimer(): void;
2748
2788
  startTimerFromUI(): void;
2749
2789
  /**
2750
2790
  * Stops the timer. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
2751
2791
  * @see startTimer
2752
- * @see maxTimeToFinish
2753
- * @see maxTimeToFinishPage
2792
+ * @see timeLimit
2793
+ * @see timeLimitPerPage
2754
2794
  * @see timeSpent
2755
- * @see onTimer
2795
+ * @see onTimerTick
2756
2796
  */
2757
2797
  stopTimer(): void;
2758
2798
  /**
@@ -2761,8 +2801,8 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2761
2801
  * 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).
2762
2802
  *
2763
2803
  * 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.
2764
- * @see maxTimeToFinish
2765
- * @see maxTimeToFinishPage
2804
+ * @see timeLimit
2805
+ * @see timeLimitPerPage
2766
2806
  * @see startTimer
2767
2807
  */
2768
2808
  get timeSpent(): number;
@@ -2770,27 +2810,39 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2770
2810
  /**
2771
2811
  * 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).
2772
2812
  *
2773
- * A negative value or 0 sets an unlimited time period.
2813
+ * Default value: 0 (time is unlimited)
2774
2814
  *
2775
2815
  * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
2776
- * @see maxTimeToFinishPage
2816
+ * @see timeLimitPerPage
2777
2817
  * @see startTimer
2778
2818
  * @see timeSpent
2779
2819
  */
2820
+ get timeLimit(): number;
2821
+ set timeLimit(val: number);
2822
+ /**
2823
+ * Obsolete. Use the [`timeLimit`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeLimit) property instead.
2824
+ * @deprecated
2825
+ */
2780
2826
  get maxTimeToFinish(): number;
2781
2827
  set maxTimeToFinish(val: number);
2782
2828
  /**
2783
2829
  * 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).
2784
2830
  *
2785
- * A negative value or 0 sets an unlimited time period.
2831
+ * Default value: 0 (time is unlimited)
2786
2832
  *
2787
- * 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.
2833
+ * 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.
2788
2834
  *
2789
2835
  * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
2790
- * @see maxTimeToFinish
2836
+ * @see timeLimit
2791
2837
  * @see startTimer
2792
2838
  * @see timeSpent
2793
2839
  */
2840
+ get timeLimitPerPage(): number;
2841
+ set timeLimitPerPage(val: number);
2842
+ /**
2843
+ * Obsolete. Use the [`timeLimitPerPage`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeLimitPerPage) property instead.
2844
+ * @deprecated
2845
+ */
2794
2846
  get maxTimeToFinishPage(): number;
2795
2847
  set maxTimeToFinishPage(val: number);
2796
2848
  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;
@@ -16,6 +16,7 @@ export declare class SurveyValidator extends Base {
16
16
  errorOwner: ISurveyErrorOwner;
17
17
  onAsyncCompleted: (result: ValidatorResult) => void;
18
18
  constructor();
19
+ get isValidator(): boolean;
19
20
  getSurvey(live?: boolean): ISurvey;
20
21
  /**
21
22
  * An error message to display when a value fails validation.