survey-core 1.12.4 → 1.12.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/defaultV2.css +81 -4
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +81 -4
  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 +525 -266
  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 +1 -1
  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/page.d.ts +8 -3
  216. package/ts3.4/typings/packages/survey-core/src/panel.d.ts +2 -0
  217. package/ts3.4/typings/packages/survey-core/src/question.d.ts +1 -1
  218. package/ts3.4/typings/packages/survey-core/src/question_baseselect.d.ts +0 -3
  219. package/ts3.4/typings/packages/survey-core/src/question_comment.d.ts +0 -3
  220. package/ts3.4/typings/packages/survey-core/src/question_file.d.ts +20 -2
  221. package/ts3.4/typings/packages/survey-core/src/question_matrixdynamic.d.ts +2 -0
  222. package/ts3.4/typings/packages/survey-core/src/survey-element.d.ts +16 -1
  223. package/ts3.4/typings/packages/survey-core/src/survey.d.ts +76 -30
  224. package/ts3.4/typings/packages/survey-core/src/surveyTimerModel.d.ts +1 -1
  225. package/ts3.4/typings/packages/survey-core/src/surveytimer.d.ts +1 -0
  226. package/ts3.4/typings/packages/survey-core/src/themes.d.ts +19 -13
  227. package/ts3.4/typings/packages/survey-core/src/utils/text-area.d.ts +1 -0
  228. package/typings/packages/survey-core/entries/chunks/model.d.ts +1 -1
  229. package/typings/packages/survey-core/src/base-interfaces.d.ts +1 -1
  230. package/typings/packages/survey-core/src/base.d.ts +4 -15
  231. package/typings/packages/survey-core/src/defaultCss/defaultV2Css.d.ts +1 -0
  232. package/typings/packages/survey-core/src/page.d.ts +9 -3
  233. package/typings/packages/survey-core/src/panel.d.ts +2 -0
  234. package/typings/packages/survey-core/src/question.d.ts +1 -1
  235. package/typings/packages/survey-core/src/question_baseselect.d.ts +0 -3
  236. package/typings/packages/survey-core/src/question_comment.d.ts +0 -3
  237. package/typings/packages/survey-core/src/question_file.d.ts +21 -2
  238. package/typings/packages/survey-core/src/question_matrixdynamic.d.ts +2 -0
  239. package/typings/packages/survey-core/src/survey-element.d.ts +16 -1
  240. package/typings/packages/survey-core/src/survey.d.ts +82 -31
  241. package/typings/packages/survey-core/src/surveyTimerModel.d.ts +1 -1
  242. package/typings/packages/survey-core/src/surveytimer.d.ts +1 -0
  243. package/typings/packages/survey-core/src/themes.d.ts +19 -13
  244. package/typings/packages/survey-core/src/utils/text-area.d.ts +1 -0
@@ -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;
@@ -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;
@@ -302,25 +302,14 @@ export declare class Base {
302
302
  private animationAllowedLock;
303
303
  blockAnimations(): void;
304
304
  releaseAnimations(): void;
305
- supportOnElementRenderedEvent: boolean;
306
- onElementRenderedEventEnabled: boolean;
307
- enableOnElementRenderedEvent(): void;
308
- disableOnElementRenderedEvent(): void;
305
+ supportOnElementRerenderedEvent: boolean;
306
+ onElementRerenderedEventEnabled: boolean;
307
+ enableOnElementRerenderedEvent(): void;
308
+ disableOnElementRerenderedEvent(): void;
309
309
  protected _onElementRerendered: EventBase<Base>;
310
310
  get onElementRerendered(): EventBase<Base>;
311
311
  afterRerender(): void;
312
312
  }
313
- export declare class RenderingCompletedAwaiter {
314
- private _elements;
315
- private _renderedHandler;
316
- constructor(_elements: Array<Base>, _renderedHandler: () => void, waitingTimeout?: number);
317
- private _elementsToRenderCount;
318
- private _elementsToRenderTimer;
319
- private _elementRenderedHandler;
320
- private stopWaitingForElementsRendering;
321
- private visibleElementsRendered;
322
- dispose(): void;
323
- }
324
313
  export declare class ArrayChanges<T = any> {
325
314
  index: number;
326
315
  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;
@@ -81,7 +81,7 @@ export declare class PageModel extends PanelModelBase implements IPage {
81
81
  scrollToTop(): void;
82
82
  /**
83
83
  * 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).
84
- * @see maxTimeToFinish
84
+ * @see timeLimit
85
85
  */
86
86
  timeSpent: number;
87
87
  /**
@@ -94,11 +94,17 @@ export declare class PageModel extends PanelModelBase implements IPage {
94
94
  /**
95
95
  * 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).
96
96
  *
97
- * A negative value or 0 sets an unlimited time period.
97
+ * Default value: 0 (time is unlimited)
98
98
  *
99
- * 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.
99
+ * 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.
100
100
  * @see timeSpent
101
101
  */
102
+ get timeLimit(): number;
103
+ set timeLimit(val: number);
104
+ /**
105
+ * Obsolete. Use the [`timeLimit`](https://surveyjs.io/form-library/documentation/api-reference/page-model#timeLimit) property instead.
106
+ * @deprecated
107
+ */
102
108
  get maxTimeToFinish(): number;
103
109
  set maxTimeToFinish(val: number);
104
110
  getMaxTimeToFinish(): number;
@@ -475,6 +475,7 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
475
475
  get cssError(): string;
476
476
  protected getCssError(cssClasses: any): string;
477
477
  getSerializableColumnsValue(): Array<PanelLayoutColumnModel>;
478
+ afterRender(el: HTMLElement): void;
478
479
  dispose(): void;
479
480
  }
480
481
  /**
@@ -602,4 +603,5 @@ export declare class PanelModel extends PanelModelBase implements IElement {
602
603
  [index: string]: string;
603
604
  }): string;
604
605
  getContainerCss(): string;
606
+ afterRenderCore(element: HTMLElement): void;
605
607
  }
@@ -376,7 +376,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
376
376
  onCommentChange(event: any): void;
377
377
  afterRenderQuestionElement(el: HTMLElement): void;
378
378
  afterRender(el: HTMLElement): void;
379
- afterRenderCore(el: HTMLElement): void;
379
+ afterRenderCore(element: HTMLElement): void;
380
380
  protected getCommentElementsId(): Array<string>;
381
381
  beforeDestroyQuestionElement(el: HTMLElement): void;
382
382
  get processedTitle(): string;
@@ -511,9 +511,6 @@ export declare class QuestionSelectBase extends Question {
511
511
  getItemId(item: ItemValue): string;
512
512
  get questionName(): string;
513
513
  getItemEnabled(item: ItemValue): boolean;
514
- protected rootElement: HTMLElement;
515
- afterRender(el: HTMLElement): void;
516
- beforeDestroyQuestionElement(el: HTMLElement): void;
517
514
  private focusOtherComment;
518
515
  private prevIsOtherSelected;
519
516
  protected onValueChanged(): void;
@@ -46,13 +46,10 @@ export declare class QuestionCommentModel extends QuestionTextBase {
46
46
  get resizeStyle(): "none" | "both";
47
47
  getType(): string;
48
48
  afterRenderQuestionElement(el: HTMLElement): void;
49
- updateElement(): void;
50
49
  beforeDestroyQuestionElement(el: HTMLElement): void;
51
50
  onInput(event: any): void;
52
51
  protected onBlurCore(event: any): void;
53
52
  onKeyDown(event: any): void;
54
- protected setQuestionValue(newValue: any, updateIsAnswered?: boolean): void;
55
- onValueChanged(): void;
56
53
  protected setNewValue(newValue: string): any;
57
54
  protected getValueSeparator(): string;
58
55
  get 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";
@@ -53,9 +53,21 @@ export declare class QuestionFileModelBase extends Question {
53
53
  *
54
54
  * [View Demo](https://surveyjs.io/form-library/examples/file-upload/ (linkStyle))
55
55
  */
56
+ export declare class QuestionFilePage extends Base {
57
+ private question;
58
+ private index;
59
+ private static pageCounter;
60
+ private static getId;
61
+ items: Array<any>;
62
+ id: string;
63
+ constructor(question: QuestionFileModel, index: number);
64
+ get css(): string;
65
+ }
56
66
  export declare class QuestionFileModel extends QuestionFileModelBase {
57
67
  isDragging: boolean;
58
68
  previewValue: any[];
69
+ pages: QuestionFilePage[];
70
+ navigationDirection: "left" | "right" | "left-delete";
59
71
  indexToShow: number;
60
72
  pageSize: number;
61
73
  containsMultiplyFiles: boolean;
@@ -84,6 +96,7 @@ export declare class QuestionFileModel extends QuestionFileModelBase {
84
96
  startCameraAction: Action;
85
97
  cleanAction: Action;
86
98
  actionsContainer: ActionContainer;
99
+ get supportFileNavigator(): boolean;
87
100
  private isFileLoadingValue;
88
101
  protected get isFileLoading(): boolean;
89
102
  protected set isFileLoading(val: boolean);
@@ -108,9 +121,10 @@ export declare class QuestionFileModel extends QuestionFileModelBase {
108
121
  protected updateElementCssCore(cssClasses: any): void;
109
122
  private getFileIndexCaption;
110
123
  private updateFileNavigator;
124
+ private updateRenderedPages;
125
+ private updatePages;
111
126
  private prevPreviewLength;
112
127
  private previewValueChanged;
113
- isPreviewVisible(index: number): boolean;
114
128
  getType(): string;
115
129
  /**
116
130
  * Disable this property only to implement a custom preview.
@@ -248,6 +262,11 @@ export declare class QuestionFileModel extends QuestionFileModelBase {
248
262
  protected supportResponsiveness(): boolean;
249
263
  protected getObservedElementSelector(): string;
250
264
  private getFileListSelector;
265
+ private _renderedPages;
266
+ get renderedPages(): Array<QuestionFilePage>;
267
+ set renderedPages(val: Array<QuestionFilePage>);
268
+ private getPagesAnimationOptions;
269
+ private pagesAnimation;
251
270
  private calcAvailableItemsCount;
252
271
  private calculatedGapBetweenItems;
253
272
  private calculatedItemWidth;
@@ -105,6 +105,7 @@ export declare class QuestionMatrixDynamicModel extends QuestionMatrixDropdownMo
105
105
  */
106
106
  get minRowCount(): number;
107
107
  set minRowCount(val: number);
108
+ private onMinRowCountChanged;
108
109
  /**
109
110
  * A maximum number of rows in the matrix. Users cannot add new rows if `rowCount` equals `maxRowCount`.
110
111
  *
@@ -115,6 +116,7 @@ export declare class QuestionMatrixDynamicModel extends QuestionMatrixDropdownMo
115
116
  */
116
117
  get maxRowCount(): number;
117
118
  set maxRowCount(val: number);
119
+ private onMaxRowCountChanged;
118
120
  /**
119
121
  * Specifies whether users are allowed to add new rows.
120
122
  *
@@ -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";
@@ -104,6 +104,8 @@ export declare class SurveyElement<E = any> extends SurveyElementCore implements
104
104
  dragTypeOverMe: DragTypeOverMeEnum;
105
105
  isDragMe: boolean;
106
106
  readOnlyChangedCallback: () => void;
107
+ private static IsNeedScrollIntoView;
108
+ static ScrollIntoView(el: HTMLElement, scrollIntoViewOptions?: ScrollIntoViewOptions, doneCallback?: () => void): void;
107
109
  static ScrollElementToTop(elementId: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, doneCallback?: () => void): boolean;
108
110
  static ScrollElementToViewCore(el: HTMLElement, checkLeft: boolean, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, doneCallback?: () => void): boolean;
109
111
  static GetFirstNonTextElement(elements: any, removeSpaces?: boolean): any;
@@ -429,5 +431,18 @@ export declare class SurveyElement<E = any> extends SurveyElementCore implements
429
431
  set renderedIsExpanded(val: boolean);
430
432
  get renderedIsExpanded(): boolean;
431
433
  protected getIsAnimationAllowed(): boolean;
434
+ onAfterRenderElement: EventBase<SurveyElement<E>, any>;
435
+ afterRenderCore(element: HTMLElement): void;
436
+ dispose(): void;
437
+ }
438
+ export declare class RenderingCompletedAwaiter {
439
+ private _elements;
440
+ private _renderedHandler;
441
+ constructor(_elements: Array<SurveyElement>, _renderedHandler: () => void, waitingTimeout?: number);
442
+ private _elementsToRenderCount;
443
+ private _elementsToRenderTimer;
444
+ private _elementRenderedHandler;
445
+ private stopWaitingForElementsRendering;
446
+ private visibleElementsRendered;
432
447
  dispose(): void;
433
448
  }
@@ -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;
@@ -2660,39 +2678,60 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2660
2678
  getCorrectedAnswers(): number;
2661
2679
  getInCorrectedAnswers(): number;
2662
2680
  /**
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).
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).
2664
2688
  *
2665
- * Possible values:
2689
+ * Default value: `false`
2666
2690
  *
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.
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.
2670
2692
  *
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.
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"`.
2672
2694
  *
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
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
2676
2697
  * @see timeSpent
2677
- * @see onTimer
2698
+ * @see onTimerTick
2678
2699
  */
2679
- get showTimerPanel(): string;
2680
- 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);
2681
2713
  get isTimerPanelShowingOnTop(): boolean;
2682
2714
  get isTimerPanelShowingOnBottom(): boolean;
2683
2715
  /**
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).
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).
2685
2717
  *
2686
2718
  * Possible values:
2687
2719
  *
2688
2720
  * - `"survey"` - Displays only the survey timer.
2689
2721
  * - `"page"` - Displays only the page timer.
2690
- * - `"all"` (default) - Displays both the survey and page timers.
2722
+ * - `"combined"` (default) - Displays both the survey and page timers.
2691
2723
  * @see timeSpent
2692
- * @see onTimer
2724
+ * @see onTimerTick
2693
2725
  * @see startTimer
2694
2726
  * @see stopTimer
2695
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
+ */
2696
2735
  get showTimerPanelMode(): string;
2697
2736
  set showTimerPanelMode(val: string);
2698
2737
  gridLayoutEnabled: boolean;
@@ -2739,20 +2778,20 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2739
2778
  /**
2740
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).
2741
2780
  * @see stopTimer
2742
- * @see maxTimeToFinish
2743
- * @see maxTimeToFinishPage
2781
+ * @see timeLimit
2782
+ * @see timeLimitPerPage
2744
2783
  * @see timeSpent
2745
- * @see onTimer
2784
+ * @see onTimerTick
2746
2785
  */
2747
2786
  startTimer(): void;
2748
2787
  startTimerFromUI(): void;
2749
2788
  /**
2750
2789
  * Stops the timer. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
2751
2790
  * @see startTimer
2752
- * @see maxTimeToFinish
2753
- * @see maxTimeToFinishPage
2791
+ * @see timeLimit
2792
+ * @see timeLimitPerPage
2754
2793
  * @see timeSpent
2755
- * @see onTimer
2794
+ * @see onTimerTick
2756
2795
  */
2757
2796
  stopTimer(): void;
2758
2797
  /**
@@ -2761,8 +2800,8 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2761
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).
2762
2801
  *
2763
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.
2764
- * @see maxTimeToFinish
2765
- * @see maxTimeToFinishPage
2803
+ * @see timeLimit
2804
+ * @see timeLimitPerPage
2766
2805
  * @see startTimer
2767
2806
  */
2768
2807
  get timeSpent(): number;
@@ -2770,27 +2809,39 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2770
2809
  /**
2771
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).
2772
2811
  *
2773
- * A negative value or 0 sets an unlimited time period.
2812
+ * Default value: 0 (time is unlimited)
2774
2813
  *
2775
2814
  * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
2776
- * @see maxTimeToFinishPage
2815
+ * @see timeLimitPerPage
2777
2816
  * @see startTimer
2778
2817
  * @see timeSpent
2779
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
+ */
2780
2825
  get maxTimeToFinish(): number;
2781
2826
  set maxTimeToFinish(val: number);
2782
2827
  /**
2783
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).
2784
2829
  *
2785
- * A negative value or 0 sets an unlimited time period.
2830
+ * Default value: 0 (time is unlimited)
2786
2831
  *
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.
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.
2788
2833
  *
2789
2834
  * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
2790
- * @see maxTimeToFinish
2835
+ * @see timeLimit
2791
2836
  * @see startTimer
2792
2837
  * @see timeSpent
2793
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
+ */
2794
2845
  get maxTimeToFinishPage(): number;
2795
2846
  set maxTimeToFinishPage(val: number);
2796
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;