survey-core 1.11.5 → 1.11.7

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 (257) hide show
  1. package/defaultV2.css +13 -5
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +13 -5
  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 +2 -2
  22. package/i18n/dutch.js.map +1 -1
  23. package/i18n/dutch.min.js +2 -2
  24. package/i18n/english.js +1 -1
  25. package/i18n/english.min.js +1 -1
  26. package/i18n/estonian.js +1 -1
  27. package/i18n/estonian.min.js +1 -1
  28. package/i18n/finnish.js +1 -1
  29. package/i18n/finnish.min.js +1 -1
  30. package/i18n/french.js +1 -1
  31. package/i18n/french.min.js +1 -1
  32. package/i18n/georgian.js +1 -1
  33. package/i18n/georgian.min.js +1 -1
  34. package/i18n/german.js +1 -1
  35. package/i18n/german.min.js +1 -1
  36. package/i18n/greek.js +1 -1
  37. package/i18n/greek.min.js +1 -1
  38. package/i18n/hebrew.js +1 -1
  39. package/i18n/hebrew.min.js +1 -1
  40. package/i18n/hindi.js +1 -1
  41. package/i18n/hindi.min.js +1 -1
  42. package/i18n/hungarian.js +1 -1
  43. package/i18n/hungarian.min.js +1 -1
  44. package/i18n/icelandic.js +1 -1
  45. package/i18n/icelandic.min.js +1 -1
  46. package/i18n/index.js +2 -2
  47. package/i18n/index.js.map +1 -1
  48. package/i18n/index.min.js +2 -2
  49. package/i18n/indonesian.js +1 -1
  50. package/i18n/indonesian.min.js +1 -1
  51. package/i18n/italian.js +1 -1
  52. package/i18n/italian.min.js +1 -1
  53. package/i18n/japanese.js +1 -1
  54. package/i18n/japanese.min.js +1 -1
  55. package/i18n/kazakh.js +1 -1
  56. package/i18n/kazakh.min.js +1 -1
  57. package/i18n/korean.js +1 -1
  58. package/i18n/korean.min.js +1 -1
  59. package/i18n/latvian.js +1 -1
  60. package/i18n/latvian.min.js +1 -1
  61. package/i18n/lithuanian.js +1 -1
  62. package/i18n/lithuanian.min.js +1 -1
  63. package/i18n/macedonian.js +1 -1
  64. package/i18n/macedonian.min.js +1 -1
  65. package/i18n/malay.js +1 -1
  66. package/i18n/malay.min.js +1 -1
  67. package/i18n/nl-BE.js +2 -2
  68. package/i18n/nl-BE.js.map +1 -1
  69. package/i18n/nl-BE.min.js +2 -2
  70. package/i18n/norwegian.js +1 -1
  71. package/i18n/norwegian.min.js +1 -1
  72. package/i18n/persian.js +1 -1
  73. package/i18n/persian.min.js +1 -1
  74. package/i18n/philippines.js +1 -1
  75. package/i18n/philippines.min.js +1 -1
  76. package/i18n/polish.js +1 -1
  77. package/i18n/polish.min.js +1 -1
  78. package/i18n/portuguese-br.js +1 -1
  79. package/i18n/portuguese-br.min.js +1 -1
  80. package/i18n/portuguese.js +1 -1
  81. package/i18n/portuguese.min.js +1 -1
  82. package/i18n/romanian.js +1 -1
  83. package/i18n/romanian.min.js +1 -1
  84. package/i18n/russian.js +1 -1
  85. package/i18n/russian.min.js +1 -1
  86. package/i18n/serbian.js +1 -1
  87. package/i18n/serbian.min.js +1 -1
  88. package/i18n/simplified-chinese.js +1 -1
  89. package/i18n/simplified-chinese.min.js +1 -1
  90. package/i18n/slovak.js +1 -1
  91. package/i18n/slovak.min.js +1 -1
  92. package/i18n/spanish.js +1 -1
  93. package/i18n/spanish.min.js +1 -1
  94. package/i18n/swahili.js +1 -1
  95. package/i18n/swahili.min.js +1 -1
  96. package/i18n/swedish.js +1 -1
  97. package/i18n/swedish.min.js +1 -1
  98. package/i18n/tajik.js +1 -1
  99. package/i18n/tajik.min.js +1 -1
  100. package/i18n/telugu.js +1 -1
  101. package/i18n/telugu.min.js +1 -1
  102. package/i18n/thai.js +1 -1
  103. package/i18n/thai.min.js +1 -1
  104. package/i18n/traditional-chinese.js +1 -1
  105. package/i18n/traditional-chinese.min.js +1 -1
  106. package/i18n/turkish.js +1 -1
  107. package/i18n/turkish.min.js +1 -1
  108. package/i18n/ukrainian.js +1 -1
  109. package/i18n/ukrainian.min.js +1 -1
  110. package/i18n/urdu.js +1 -1
  111. package/i18n/urdu.min.js +1 -1
  112. package/i18n/vietnamese.js +1 -1
  113. package/i18n/vietnamese.min.js +1 -1
  114. package/i18n/welsh.js +1 -1
  115. package/i18n/welsh.min.js +1 -1
  116. package/modern.css +6 -6
  117. package/modern.css.map +1 -1
  118. package/modern.fontless.css +6 -6
  119. package/modern.fontless.css.map +1 -1
  120. package/modern.fontless.min.css +2 -2
  121. package/modern.min.css +2 -2
  122. package/package.json +1 -1
  123. package/plugins/bootstrap-integration.js +1 -1
  124. package/plugins/bootstrap-integration.min.js +1 -1
  125. package/plugins/bootstrap-material-integration.js +1 -1
  126. package/plugins/bootstrap-material-integration.min.js +1 -1
  127. package/survey.core.js +287 -115
  128. package/survey.core.js.map +1 -1
  129. package/survey.core.min.js +3 -3
  130. package/survey.css +6 -6
  131. package/survey.css.map +1 -1
  132. package/survey.i18n.js +2 -2
  133. package/survey.i18n.js.map +1 -1
  134. package/survey.i18n.min.js +2 -2
  135. package/survey.min.css +2 -2
  136. package/themes/borderless-dark-panelless.js +1 -1
  137. package/themes/borderless-dark-panelless.min.js +1 -1
  138. package/themes/borderless-dark.js +1 -1
  139. package/themes/borderless-dark.min.js +1 -1
  140. package/themes/borderless-light-panelless..js +1 -1
  141. package/themes/borderless-light-panelless..min.js +1 -1
  142. package/themes/borderless-light.js +1 -1
  143. package/themes/borderless-light.min.js +1 -1
  144. package/themes/contrast-dark-panelless.js +1 -1
  145. package/themes/contrast-dark-panelless.min.js +1 -1
  146. package/themes/contrast-dark.js +1 -1
  147. package/themes/contrast-dark.min.js +1 -1
  148. package/themes/contrast-light-panelless.js +1 -1
  149. package/themes/contrast-light-panelless.min.js +1 -1
  150. package/themes/contrast-light.js +1 -1
  151. package/themes/contrast-light.min.js +1 -1
  152. package/themes/default-dark-panelless.js +1 -1
  153. package/themes/default-dark-panelless.min.js +1 -1
  154. package/themes/default-dark.js +1 -1
  155. package/themes/default-dark.min.js +1 -1
  156. package/themes/default-light-panelless.js +1 -1
  157. package/themes/default-light-panelless.min.js +1 -1
  158. package/themes/default-light.js +1 -1
  159. package/themes/default-light.min.js +1 -1
  160. package/themes/doubleborder-dark-panelless.js +1 -1
  161. package/themes/doubleborder-dark-panelless.min.js +1 -1
  162. package/themes/doubleborder-dark.js +1 -1
  163. package/themes/doubleborder-dark.min.js +1 -1
  164. package/themes/doubleborder-light-panelles.js +1 -1
  165. package/themes/doubleborder-light-panelles.min.js +1 -1
  166. package/themes/doubleborder-light.js +1 -1
  167. package/themes/doubleborder-light.min.js +1 -1
  168. package/themes/flat-dark-panelless.js +1 -1
  169. package/themes/flat-dark-panelless.min.js +1 -1
  170. package/themes/flat-dark.js +1 -1
  171. package/themes/flat-dark.min.js +1 -1
  172. package/themes/flat-light-panelless.js +1 -1
  173. package/themes/flat-light-panelless.min.js +1 -1
  174. package/themes/flat-light.js +1 -1
  175. package/themes/flat-light.min.js +1 -1
  176. package/themes/index.js +1 -1
  177. package/themes/index.min.js +1 -1
  178. package/themes/layered-dark-panelless.js +1 -1
  179. package/themes/layered-dark-panelless.min.js +1 -1
  180. package/themes/layered-dark.js +1 -1
  181. package/themes/layered-dark.min.js +1 -1
  182. package/themes/layered-light-panelless.js +1 -1
  183. package/themes/layered-light-panelless.min.js +1 -1
  184. package/themes/layered-light.js +1 -1
  185. package/themes/layered-light.min.js +1 -1
  186. package/themes/plain-dark-panelless.js +1 -1
  187. package/themes/plain-dark-panelless.min.js +1 -1
  188. package/themes/plain-dark.js +1 -1
  189. package/themes/plain-dark.min.js +1 -1
  190. package/themes/plain-light-panelless.js +1 -1
  191. package/themes/plain-light-panelless.min.js +1 -1
  192. package/themes/plain-light.js +1 -1
  193. package/themes/plain-light.min.js +1 -1
  194. package/themes/sharp-dark-panelless.js +1 -1
  195. package/themes/sharp-dark-panelless.min.js +1 -1
  196. package/themes/sharp-dark.js +1 -1
  197. package/themes/sharp-dark.min.js +1 -1
  198. package/themes/sharp-light-panelless.js +1 -1
  199. package/themes/sharp-light-panelless.min.js +1 -1
  200. package/themes/sharp-light.js +1 -1
  201. package/themes/sharp-light.min.js +1 -1
  202. package/themes/solid-dark-panelless.js +1 -1
  203. package/themes/solid-dark-panelless.min.js +1 -1
  204. package/themes/solid-dark.js +1 -1
  205. package/themes/solid-dark.min.js +1 -1
  206. package/themes/solid-light-panelless.js +1 -1
  207. package/themes/solid-light-panelless.min.js +1 -1
  208. package/themes/solid-light.js +1 -1
  209. package/themes/solid-light.min.js +1 -1
  210. package/themes/three-dimensional-dark-panelless.js +1 -1
  211. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  212. package/themes/three-dimensional-dark.js +1 -1
  213. package/themes/three-dimensional-dark.min.js +1 -1
  214. package/themes/three-dimensional-light-panelless.js +1 -1
  215. package/themes/three-dimensional-light-panelless.min.js +1 -1
  216. package/themes/three-dimensional-light.js +1 -1
  217. package/themes/three-dimensional-light.min.js +1 -1
  218. package/ts3.4/typings/actions/action.d.ts +6 -0
  219. package/ts3.4/typings/base-interfaces.d.ts +2 -0
  220. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +1 -0
  221. package/ts3.4/typings/dropdownListModel.d.ts +0 -1
  222. package/ts3.4/typings/mask/input_element_adapter.d.ts +1 -0
  223. package/ts3.4/typings/page.d.ts +1 -0
  224. package/ts3.4/typings/panel.d.ts +1 -0
  225. package/ts3.4/typings/question.d.ts +2 -0
  226. package/ts3.4/typings/question_comment.d.ts +3 -3
  227. package/ts3.4/typings/question_custom.d.ts +1 -0
  228. package/ts3.4/typings/question_matrixdropdownbase.d.ts +1 -0
  229. package/ts3.4/typings/question_multipletext.d.ts +1 -0
  230. package/ts3.4/typings/question_paneldynamic.d.ts +1 -1
  231. package/ts3.4/typings/question_text.d.ts +4 -0
  232. package/ts3.4/typings/settings.d.ts +1 -0
  233. package/ts3.4/typings/survey-element.d.ts +20 -15
  234. package/ts3.4/typings/survey-events-api.d.ts +1 -1
  235. package/ts3.4/typings/survey.d.ts +19 -1
  236. package/ts3.4/typings/surveytimer.d.ts +9 -4
  237. package/typings/actions/action.d.ts +6 -0
  238. package/typings/base-interfaces.d.ts +2 -0
  239. package/typings/defaultCss/defaultV2Css.d.ts +1 -0
  240. package/typings/dropdownListModel.d.ts +0 -1
  241. package/typings/knockout/kobase.d.ts +8 -8
  242. package/typings/knockout/kopage.d.ts +37 -37
  243. package/typings/mask/input_element_adapter.d.ts +1 -0
  244. package/typings/page.d.ts +1 -0
  245. package/typings/panel.d.ts +1 -0
  246. package/typings/question.d.ts +2 -0
  247. package/typings/question_comment.d.ts +5 -5
  248. package/typings/question_custom.d.ts +1 -0
  249. package/typings/question_matrixdropdownbase.d.ts +1 -0
  250. package/typings/question_multipletext.d.ts +1 -0
  251. package/typings/question_paneldynamic.d.ts +1 -1
  252. package/typings/question_text.d.ts +4 -0
  253. package/typings/settings.d.ts +1 -0
  254. package/typings/survey-element.d.ts +20 -15
  255. package/typings/survey-events-api.d.ts +1 -1
  256. package/typings/survey.d.ts +19 -1
  257. package/typings/surveytimer.d.ts +9 -4
@@ -237,6 +237,7 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
237
237
  */
238
238
  validate(fireCallback?: boolean, focusOnFirstError?: boolean, rec?: any): boolean;
239
239
  validateContainerOnly(): void;
240
+ onQuestionValueChanged(el: IElement): void;
240
241
  private hasErrorsInPanels;
241
242
  getErrorCustomText(text: string, error: SurveyError): string;
242
243
  private hasRequiredError;
@@ -546,6 +546,8 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
546
546
  getFilteredValue(): any;
547
547
  getFilteredName(): any;
548
548
  readonly valueForSurvey: any;
549
+ protected valueForSurveyCore(val: any): any;
550
+ protected valueFromDataCore(val: any): any;
549
551
  /**
550
552
  * Sets the question's `value` and `comment` properties to `undefined`.
551
553
  * @see value
@@ -25,14 +25,14 @@ export declare class QuestionCommentModel extends QuestionTextBase {
25
25
  * Default value: `false` (inherited from `SurveyModel`'s [`autoGrowComment`](https://surveyjs.io/form-library/documentation/surveymodel#autoGrowComment) property)
26
26
  * @see allowResize
27
27
  */
28
- autoGrow: boolean;
28
+ autoGrow: boolean | undefined;
29
+ readonly renderedAutoGrow: boolean;
29
30
  /*
30
- * Specifies whether to display a resize handle for the comment area.
31
31
  *
32
32
  * Default value: `true` (inherited from `SurveyModel`'s [`allowResizeComment`](https://surveyjs.io/form-library/documentation/surveymodel#allowResizeComment) property)
33
33
  * @see autoGrow
34
34
  */
35
- allowResize: boolean;
35
+ allowResize: boolean | undefined;
36
36
  readonly renderedAllowResize: boolean;
37
37
  readonly resizeStyle: "none" | "both";
38
38
  getType(): string;
@@ -350,6 +350,7 @@ export declare abstract class QuestionCustomModelBase extends Question implement
350
350
  indexOf(el: IElement): number;
351
351
  ensureRowsVisibility(): void;
352
352
  validateContainerOnly(): void;
353
+ onQuestionValueChanged(el: IElement): void;
353
354
  getQuestionErrorLocation(): string;
354
355
  protected getContentDisplayValueCore(keyAsText: boolean, value: any, question: Question): any;
355
356
  }
@@ -315,6 +315,7 @@ export declare class QuestionMatrixDropdownModelBase extends QuestionMatrixBaseM
315
315
  * Default value: `"dropdown"` (inherited from [`settings.matrix.defaultCellType`](https://surveyjs.io/form-library/documentation/settings#matrixDefaultCellType))
316
316
  */
317
317
  cellType: string;
318
+ isSelectCellType(): boolean;
318
319
  private updateColumnsCellType;
319
320
  private updateColumnsIndexes;
320
321
  /*
@@ -290,6 +290,7 @@ export declare class QuestionMultipleTextModel extends Question implements IMult
290
290
  indexOf(el: IElement): number;
291
291
  ensureRowsVisibility(): void;
292
292
  validateContainerOnly(): void;
293
+ onQuestionValueChanged(el: IElement): void;
293
294
  getItemLabelCss(item: MultipleTextItemModel): string;
294
295
  getItemCss(): string;
295
296
  getItemTitleCss(): string;
@@ -530,7 +530,7 @@ export declare class QuestionPanelDynamicModel extends Question implements IQues
530
530
  private removedPanelIndex;
531
531
  removePanel(value: any): void;
532
532
  private getVisualPanelIndex;
533
- private getPanelIndexById;
533
+ private getPanelVisibleIndexById;
534
534
  locStrsChanged(): void;
535
535
  clearIncorrectValues(): void;
536
536
  clearErrors(): void;
@@ -127,6 +127,9 @@ export declare class QuestionTextModel extends QuestionTextBase {
127
127
  inputValue: string;
128
128
  protected onChangeQuestionValue(newValue: any): void;
129
129
  private updateInputValue;
130
+ private hasToConvertToUTC;
131
+ protected valueForSurveyCore(val: any): any;
132
+ protected valueFromDataCore(val: any): any;
130
133
  protected onCheckForErrors(errors: Array<SurveyError>, isOnValueChanged: boolean): void;
131
134
  protected canSetValueToSurvey(): boolean;
132
135
  protected convertFuncValuetoQuestionValue(val: any): any;
@@ -134,6 +137,7 @@ export declare class QuestionTextModel extends QuestionTextBase {
134
137
  private readonly isValueLessMin: any;
135
138
  private readonly isValueGreaterMax: any;
136
139
  private readonly isDateInputType: any;
140
+ private isDateTimeLocaleType;
137
141
  private getCalculatedMinMax;
138
142
  private setRenderedMinMax;
139
143
  /*
@@ -588,4 +588,5 @@ export declare var settings: {
588
588
  [key: string]: RegExp;
589
589
  };
590
590
  };
591
+ storeUtcDates: boolean;
591
592
  };
@@ -12,6 +12,26 @@ export declare abstract class SurveyElementCore extends Base implements ILocaliz
12
12
  constructor();
13
13
  protected createLocTitleProperty(): LocalizableString;
14
14
  /*
15
+ * Returns `true` if the survey element is a page.
16
+ * @see Base.getType
17
+ */
18
+ readonly isPage: boolean;
19
+ /*
20
+ * Returns `true` if the survey element is a panel.
21
+ * @see Base.getType
22
+ */
23
+ readonly isPanel: boolean;
24
+ /*
25
+ * Returns `true` if the survey element is a question.
26
+ * @see Base.getType
27
+ */
28
+ readonly isQuestion: boolean;
29
+ /*
30
+ * Returns `true` if the element is a survey.
31
+ * @see Base.getType
32
+ */
33
+ readonly isSurvey: boolean;
34
+ /*
15
35
  * A title for the survey element. If `title` is undefined, the `name` property value is displayed instead.
16
36
  *
17
37
  * Empty pages and panels do not display their titles or names.
@@ -271,21 +291,6 @@ export declare class SurveyElement<E = any> extends SurveyElementCore implements
271
291
  onFirstRendering(): void;
272
292
  endLoadingFromJson(): void;
273
293
  setVisibleIndex(index: number): number;
274
- /*
275
- * Returns `true` if the survey element is a page.
276
- * @see Base.getType
277
- */
278
- readonly isPage: boolean;
279
- /*
280
- * Returns `true` if the survey element is a panel.
281
- * @see Base.getType
282
- */
283
- readonly isPanel: boolean;
284
- /*
285
- * Returns `true` if the survey element is a question.
286
- * @see Base.getType
287
- */
288
- readonly isQuestion: boolean;
289
294
  delete(doDispose: boolean): void;
290
295
  locOwner: ILocalizableOwner;
291
296
  /**
@@ -946,7 +946,7 @@ export interface DragDropAllowEvent {
946
946
  * A Boolean property that you can set to `false` if you want to cancel the drag and drop operation.
947
947
  */
948
948
  allow: boolean;
949
- allowMultipleElementsInRow?: boolean;
949
+ allowDropNextToAnother?: boolean;
950
950
  /**
951
951
  * Obsolete. Use `options.draggedElement` instead.
952
952
  */
@@ -1527,6 +1527,24 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1527
1527
  */
1528
1528
  mergeData(data: any): void;
1529
1529
  setDataCore(data: any, clearData?: boolean): void;
1530
+ readonly isSurvey: boolean;
1531
+ /**
1532
+ * Returns an object with survey results.
1533
+ *
1534
+ * If you want to get a survey results object that mirrors the survey structure, call the `getData()` method with an object that has the `includePages` and `includePanels` properties enabled. Without this object, the `getData()` method returns the [`data`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#data) property value.
1535
+ *
1536
+ * ```js
1537
+ * import { Model } from "survey-core";
1538
+ *
1539
+ * const surveyJson = { ... };
1540
+ * const survey = new Model(surveyJson);
1541
+ * survey.getData({ includePages: true, includePanels: true });
1542
+ * ```
1543
+ */
1544
+ getData(options?: {
1545
+ includePages?: boolean;
1546
+ includePanels?: boolean;
1547
+ }): any;
1530
1548
  getStructuredData(includePages?: boolean, level?: number): any;
1531
1549
  setStructuredData(data: any, doMerge?: boolean): void;
1532
1550
  private collectDataFromPanel;
@@ -2673,7 +2691,6 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2673
2691
  * @see timeSpent
2674
2692
  */
2675
2693
  maxTimeToFinishPage: number;
2676
- private getPageMaxTimeToFinish;
2677
2694
  private doTimer;
2678
2695
  readonly inSurvey: boolean;
2679
2696
  getSurveyData(): ISurveyData;
@@ -2758,6 +2775,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2758
2775
  dispose(): void;
2759
2776
  disposeCallback: () => void;
2760
2777
  private onScrollCallback;
2778
+ _isElementShouldBeSticky(selector: string): boolean;
2761
2779
  onScroll(): void;
2762
2780
  addScrollEventListener(): void;
2763
2781
  removeScrollEventListener(): void;
@@ -1,16 +1,21 @@
1
- import { Event } from "./base";
1
+ import { EventBase } from "./base";
2
2
  export declare var surveyTimerFunctions: {
3
3
  setTimeout: (func: () => any) => number;
4
4
  clearTimeout: (timerId: number) => void;
5
5
  safeTimeOut: (func: () => any, delay: number) => number | any;
6
+ now(): number;
6
7
  };
8
+ export interface SurveyTimerEvent {
9
+ seconds: number;
10
+ }
7
11
  export declare class SurveyTimer {
8
12
  private static instanceValue;
9
13
  static readonly instance: SurveyTimer;
10
14
  private listenerCounter;
11
15
  private timerId;
12
- onTimer: Event<() => any, SurveyTimer, any>;
13
- start(func?: () => any): void;
14
- stop(func?: () => any): void;
16
+ private prevTimeInMs;
17
+ onTimer: EventBase<SurveyTimer, SurveyTimerEvent>;
18
+ start(func?: (timer: SurveyTimer, options: SurveyTimerEvent) => void): void;
19
+ stop(func?: (timer: SurveyTimer, options: SurveyTimerEvent) => any): void;
15
20
  doTimer(): void;
16
21
  }
@@ -57,6 +57,7 @@ export interface IAction {
57
57
  * [View Demo](https://surveyjs.io/form-library/examples/add-custom-navigation-button/ (linkStyle))
58
58
  */
59
59
  action?: (context?: any) => void;
60
+ onFocus?: (isMouse: boolean, event: any) => void;
60
61
  /**
61
62
  * One or several CSS classes that you want to apply to the outer `<div>` element.
62
63
  *
@@ -251,6 +252,7 @@ export declare class Action extends BaseAction implements IAction, ILocalizableO
251
252
  locTooltipName?: string;
252
253
  private _enabled;
253
254
  action: (context?: any, isUserAction?: boolean) => void;
255
+ onFocus: (isMouse: boolean, event: any) => void;
254
256
  _component: string;
255
257
  items: any;
256
258
  _title: string;
@@ -261,6 +263,10 @@ export declare class Action extends BaseAction implements IAction, ILocalizableO
261
263
  get locTitleName(): string;
262
264
  set locTitleName(val: string);
263
265
  locStrsChanged(): void;
266
+ doAction(args: any): boolean;
267
+ private isMouseDown;
268
+ doMouseDown(): void;
269
+ doFocus(args: any): void;
264
270
  private locStrChangedInPopupModel;
265
271
  private locTitleChanged;
266
272
  private locTooltipChanged;
@@ -100,6 +100,7 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
100
100
  maxTextLength: number;
101
101
  maxOthersLength: number;
102
102
  clearValueOnDisableItems: boolean;
103
+ maxTimeToFinishPage: number;
103
104
  uploadFiles(question: IQuestion, name: string, files: File[], uploadingCallback: (data: any | Array<any>, errors?: any | Array<any>) => any): any;
104
105
  downloadFile(question: IQuestion, name: string, content: string, callback: (status: string, data: any) => any): any;
105
106
  clearFiles(question: IQuestion, name: string, value: any, fileName: string, clearCallback: (status: string, data: any) => any): any;
@@ -260,6 +261,7 @@ export interface IPanel extends ISurveyElement, IParentElement {
260
261
  elements: Array<IElement>;
261
262
  ensureRowsVisibility(): void;
262
263
  validateContainerOnly(): void;
264
+ onQuestionValueChanged(el: IElement): void;
263
265
  }
264
266
  export interface IPage extends IPanel, IConditionRunner {
265
267
  isStartPage: boolean;
@@ -59,6 +59,7 @@ export declare var defaultV2Css: {
59
59
  titleExpanded: string;
60
60
  titleCollapsed: string;
61
61
  titleDisabled: string;
62
+ titleHidden: string;
62
63
  titleOnExpand: string;
63
64
  titleOnError: string;
64
65
  titleBar: string;
@@ -20,7 +20,6 @@ export declare class DropdownListModel extends Base {
20
20
  protected readonly itemSelector = ".sv-list__item";
21
21
  protected getFocusFirstInputSelector(): string;
22
22
  private itemsSettings;
23
- private isRunningLoadQuestionChoices;
24
23
  protected listModel: ListModel<ItemValue>;
25
24
  protected popupCssClasses: string;
26
25
  protected listModelFilterStringChanged: (newValue: string) => void;
@@ -1,8 +1,8 @@
1
- import { Base } from "survey-core";
2
- export declare class ImplementorBase {
3
- element: Base;
4
- private static doIterateProperties;
5
- readonly implementedMark = "__surveyImplementedKo";
6
- constructor(element: Base);
7
- dispose(): void;
8
- }
1
+ import { Base } from "survey-core";
2
+ export declare class ImplementorBase {
3
+ element: Base;
4
+ private static doIterateProperties;
5
+ readonly implementedMark = "__surveyImplementedKo";
6
+ constructor(element: Base);
7
+ dispose(): void;
8
+ }
@@ -1,37 +1,37 @@
1
- import { PageModel } from "survey-core";
2
- import { PanelModelBase, PanelModel, QuestionRowModel } from "survey-core";
3
- import { SurveyElement } from "survey-core";
4
- import { ImplementorBase } from "./kobase";
5
- export declare class QuestionRow extends QuestionRowModel {
6
- panel: PanelModelBase;
7
- koElementAfterRender: any;
8
- constructor(panel: PanelModelBase);
9
- getElementType(el: any): "survey-panel" | "survey-question";
10
- koAfterRender(htmlElements: any, element: SurveyElement): void;
11
- private elementAfterRender;
12
- rowAfterRender(elements: HTMLElement[], model: QuestionRow): void;
13
- dispose(): void;
14
- }
15
- export declare class PanelImplementorBase extends ImplementorBase {
16
- panel: PanelModelBase;
17
- constructor(panel: PanelModelBase);
18
- }
19
- export declare class Panel extends PanelModel {
20
- private _implementor;
21
- koElementType: any;
22
- constructor(name?: string);
23
- protected onBaseCreating(): void;
24
- createRow(): QuestionRowModel;
25
- protected onCreating(): void;
26
- protected onNumChanged(value: number): void;
27
- dispose(): void;
28
- }
29
- export declare class Page extends PageModel {
30
- private _implementor;
31
- constructor(name?: string);
32
- protected onBaseCreating(): void;
33
- createRow(): QuestionRowModel;
34
- protected onCreating(): void;
35
- protected onNumChanged(value: number): void;
36
- dispose(): void;
37
- }
1
+ import { PageModel } from "survey-core";
2
+ import { PanelModelBase, PanelModel, QuestionRowModel } from "survey-core";
3
+ import { SurveyElement } from "survey-core";
4
+ import { ImplementorBase } from "./kobase";
5
+ export declare class QuestionRow extends QuestionRowModel {
6
+ panel: PanelModelBase;
7
+ koElementAfterRender: any;
8
+ constructor(panel: PanelModelBase);
9
+ getElementType(el: any): "survey-panel" | "survey-question";
10
+ koAfterRender(htmlElements: any, element: SurveyElement): void;
11
+ private elementAfterRender;
12
+ rowAfterRender(elements: HTMLElement[], model: QuestionRow): void;
13
+ dispose(): void;
14
+ }
15
+ export declare class PanelImplementorBase extends ImplementorBase {
16
+ panel: PanelModelBase;
17
+ constructor(panel: PanelModelBase);
18
+ }
19
+ export declare class Panel extends PanelModel {
20
+ private _implementor;
21
+ koElementType: any;
22
+ constructor(name?: string);
23
+ protected onBaseCreating(): void;
24
+ createRow(): QuestionRowModel;
25
+ protected onCreating(): void;
26
+ protected onNumChanged(value: number): void;
27
+ dispose(): void;
28
+ }
29
+ export declare class Page extends PageModel {
30
+ private _implementor;
31
+ constructor(name?: string);
32
+ protected onBaseCreating(): void;
33
+ createRow(): QuestionRowModel;
34
+ protected onCreating(): void;
35
+ protected onNumChanged(value: number): void;
36
+ dispose(): void;
37
+ }
@@ -8,6 +8,7 @@ export declare class InputElementAdapter {
8
8
  inputMaskInstancePropertyChangedHandler: (sender: any, options: any) => void;
9
9
  clickHandler: (event: any) => void;
10
10
  beforeInputHandler: (event: any) => void;
11
+ changeHandler: (event: any) => void;
11
12
  createArgs(event: any): ITextInputParams;
12
13
  addInputEventListener(): void;
13
14
  removeInputEventListener(): void;
package/typings/page.d.ts CHANGED
@@ -96,6 +96,7 @@ export declare class PageModel extends PanelModelBase implements IPage {
96
96
  */
97
97
  get maxTimeToFinish(): number;
98
98
  set maxTimeToFinish(val: number);
99
+ getMaxTimeToFinish(): number;
99
100
  protected onNumChanged(value: number): void;
100
101
  protected onVisibleChanged(): void;
101
102
  getDragDropInfo(): any;
@@ -248,6 +248,7 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
248
248
  */
249
249
  validate(fireCallback?: boolean, focusOnFirstError?: boolean, rec?: any): boolean;
250
250
  validateContainerOnly(): void;
251
+ onQuestionValueChanged(el: IElement): void;
251
252
  private hasErrorsInPanels;
252
253
  getErrorCustomText(text: string, error: SurveyError): string;
253
254
  private hasRequiredError;
@@ -571,6 +571,8 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
571
571
  getFilteredValue(): any;
572
572
  getFilteredName(): any;
573
573
  get valueForSurvey(): any;
574
+ protected valueForSurveyCore(val: any): any;
575
+ protected valueFromDataCore(val: any): any;
574
576
  /**
575
577
  * Sets the question's `value` and `comment` properties to `undefined`.
576
578
  * @see value
@@ -28,16 +28,16 @@ export declare class QuestionCommentModel extends QuestionTextBase {
28
28
  * Default value: `false` (inherited from `SurveyModel`'s [`autoGrowComment`](https://surveyjs.io/form-library/documentation/surveymodel#autoGrowComment) property)
29
29
  * @see allowResize
30
30
  */
31
- get autoGrow(): boolean;
32
- set autoGrow(val: boolean);
31
+ get autoGrow(): boolean | undefined;
32
+ set autoGrow(val: boolean | undefined);
33
+ get renderedAutoGrow(): boolean;
33
34
  /**
34
- * Specifies whether to display a resize handle for the comment area.
35
35
  *
36
36
  * Default value: `true` (inherited from `SurveyModel`'s [`allowResizeComment`](https://surveyjs.io/form-library/documentation/surveymodel#allowResizeComment) property)
37
37
  * @see autoGrow
38
38
  */
39
- get allowResize(): boolean;
40
- set allowResize(val: boolean);
39
+ get allowResize(): boolean | undefined;
40
+ set allowResize(val: boolean | undefined);
41
41
  get renderedAllowResize(): boolean;
42
42
  get resizeStyle(): "none" | "both";
43
43
  getType(): string;
@@ -350,6 +350,7 @@ export declare abstract class QuestionCustomModelBase extends Question implement
350
350
  indexOf(el: IElement): number;
351
351
  ensureRowsVisibility(): void;
352
352
  validateContainerOnly(): void;
353
+ onQuestionValueChanged(el: IElement): void;
353
354
  getQuestionErrorLocation(): string;
354
355
  protected getContentDisplayValueCore(keyAsText: boolean, value: any, question: Question): any;
355
356
  }
@@ -327,6 +327,7 @@ export declare class QuestionMatrixDropdownModelBase extends QuestionMatrixBaseM
327
327
  */
328
328
  get cellType(): string;
329
329
  set cellType(val: string);
330
+ isSelectCellType(): boolean;
330
331
  private updateColumnsCellType;
331
332
  private updateColumnsIndexes;
332
333
  /**
@@ -314,6 +314,7 @@ export declare class QuestionMultipleTextModel extends Question implements IMult
314
314
  indexOf(el: IElement): number;
315
315
  ensureRowsVisibility(): void;
316
316
  validateContainerOnly(): void;
317
+ onQuestionValueChanged(el: IElement): void;
317
318
  getItemLabelCss(item: MultipleTextItemModel): string;
318
319
  getItemCss(): string;
319
320
  getItemTitleCss(): string;
@@ -562,7 +562,7 @@ export declare class QuestionPanelDynamicModel extends Question implements IQues
562
562
  private removedPanelIndex;
563
563
  removePanel(value: any): void;
564
564
  private getVisualPanelIndex;
565
- private getPanelIndexById;
565
+ private getPanelVisibleIndexById;
566
566
  locStrsChanged(): void;
567
567
  clearIncorrectValues(): void;
568
568
  clearErrors(): void;
@@ -138,6 +138,9 @@ export declare class QuestionTextModel extends QuestionTextBase {
138
138
  set inputValue(val: string);
139
139
  protected onChangeQuestionValue(newValue: any): void;
140
140
  private updateInputValue;
141
+ private hasToConvertToUTC;
142
+ protected valueForSurveyCore(val: any): any;
143
+ protected valueFromDataCore(val: any): any;
141
144
  protected onCheckForErrors(errors: Array<SurveyError>, isOnValueChanged: boolean): void;
142
145
  protected canSetValueToSurvey(): boolean;
143
146
  protected convertFuncValuetoQuestionValue(val: any): any;
@@ -145,6 +148,7 @@ export declare class QuestionTextModel extends QuestionTextBase {
145
148
  private get isValueLessMin();
146
149
  private get isValueGreaterMax();
147
150
  private get isDateInputType();
151
+ private isDateTimeLocaleType;
148
152
  private getCalculatedMinMax;
149
153
  private setRenderedMinMax;
150
154
  /**
@@ -588,4 +588,5 @@ export declare var settings: {
588
588
  [key: string]: RegExp;
589
589
  };
590
590
  };
591
+ storeUtcDates: boolean;
591
592
  };
@@ -11,6 +11,26 @@ import { ActionContainer } from "./actions/container";
11
11
  export declare abstract class SurveyElementCore extends Base implements ILocalizableOwner {
12
12
  constructor();
13
13
  protected createLocTitleProperty(): LocalizableString;
14
+ /**
15
+ * Returns `true` if the survey element is a page.
16
+ * @see Base.getType
17
+ */
18
+ get isPage(): boolean;
19
+ /**
20
+ * Returns `true` if the survey element is a panel.
21
+ * @see Base.getType
22
+ */
23
+ get isPanel(): boolean;
24
+ /**
25
+ * Returns `true` if the survey element is a question.
26
+ * @see Base.getType
27
+ */
28
+ get isQuestion(): boolean;
29
+ /**
30
+ * Returns `true` if the element is a survey.
31
+ * @see Base.getType
32
+ */
33
+ get isSurvey(): boolean;
14
34
  /**
15
35
  * A title for the survey element. If `title` is undefined, the `name` property value is displayed instead.
16
36
  *
@@ -278,21 +298,6 @@ export declare class SurveyElement<E = any> extends SurveyElementCore implements
278
298
  onFirstRendering(): void;
279
299
  endLoadingFromJson(): void;
280
300
  setVisibleIndex(index: number): number;
281
- /**
282
- * Returns `true` if the survey element is a page.
283
- * @see Base.getType
284
- */
285
- get isPage(): boolean;
286
- /**
287
- * Returns `true` if the survey element is a panel.
288
- * @see Base.getType
289
- */
290
- get isPanel(): boolean;
291
- /**
292
- * Returns `true` if the survey element is a question.
293
- * @see Base.getType
294
- */
295
- get isQuestion(): boolean;
296
301
  delete(doDispose: boolean): void;
297
302
  locOwner: ILocalizableOwner;
298
303
  /**
@@ -946,7 +946,7 @@ export interface DragDropAllowEvent {
946
946
  * A Boolean property that you can set to `false` if you want to cancel the drag and drop operation.
947
947
  */
948
948
  allow: boolean;
949
- allowMultipleElementsInRow?: boolean;
949
+ allowDropNextToAnother?: boolean;
950
950
  /**
951
951
  * Obsolete. Use `options.draggedElement` instead.
952
952
  */
@@ -1597,6 +1597,24 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1597
1597
  */
1598
1598
  mergeData(data: any): void;
1599
1599
  setDataCore(data: any, clearData?: boolean): void;
1600
+ get isSurvey(): boolean;
1601
+ /**
1602
+ * Returns an object with survey results.
1603
+ *
1604
+ * If you want to get a survey results object that mirrors the survey structure, call the `getData()` method with an object that has the `includePages` and `includePanels` properties enabled. Without this object, the `getData()` method returns the [`data`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#data) property value.
1605
+ *
1606
+ * ```js
1607
+ * import { Model } from "survey-core";
1608
+ *
1609
+ * const surveyJson = { ... };
1610
+ * const survey = new Model(surveyJson);
1611
+ * survey.getData({ includePages: true, includePanels: true });
1612
+ * ```
1613
+ */
1614
+ getData(options?: {
1615
+ includePages?: boolean;
1616
+ includePanels?: boolean;
1617
+ }): any;
1600
1618
  getStructuredData(includePages?: boolean, level?: number): any;
1601
1619
  setStructuredData(data: any, doMerge?: boolean): void;
1602
1620
  private collectDataFromPanel;
@@ -2767,7 +2785,6 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2767
2785
  */
2768
2786
  get maxTimeToFinishPage(): number;
2769
2787
  set maxTimeToFinishPage(val: number);
2770
- private getPageMaxTimeToFinish;
2771
2788
  private doTimer;
2772
2789
  get inSurvey(): boolean;
2773
2790
  getSurveyData(): ISurveyData;
@@ -2852,6 +2869,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2852
2869
  dispose(): void;
2853
2870
  disposeCallback: () => void;
2854
2871
  private onScrollCallback;
2872
+ _isElementShouldBeSticky(selector: string): boolean;
2855
2873
  onScroll(): void;
2856
2874
  addScrollEventListener(): void;
2857
2875
  removeScrollEventListener(): void;
@@ -1,16 +1,21 @@
1
- import { Event } from "./base";
1
+ import { EventBase } from "./base";
2
2
  export declare var surveyTimerFunctions: {
3
3
  setTimeout: (func: () => any) => number;
4
4
  clearTimeout: (timerId: number) => void;
5
5
  safeTimeOut: (func: () => any, delay: number) => number | any;
6
+ now(): number;
6
7
  };
8
+ export interface SurveyTimerEvent {
9
+ seconds: number;
10
+ }
7
11
  export declare class SurveyTimer {
8
12
  private static instanceValue;
9
13
  static get instance(): SurveyTimer;
10
14
  private listenerCounter;
11
15
  private timerId;
12
- onTimer: Event<() => any, SurveyTimer, any>;
13
- start(func?: () => any): void;
14
- stop(func?: () => any): void;
16
+ private prevTimeInMs;
17
+ onTimer: EventBase<SurveyTimer, SurveyTimerEvent>;
18
+ start(func?: (timer: SurveyTimer, options: SurveyTimerEvent) => void): void;
19
+ stop(func?: (timer: SurveyTimer, options: SurveyTimerEvent) => any): void;
15
20
  doTimer(): void;
16
21
  }