survey-core 1.9.118 → 1.9.119

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 (238) hide show
  1. package/defaultV2.css +112 -39
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +112 -39
  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 +2 -1
  24. package/i18n/english.js.map +1 -1
  25. package/i18n/english.min.js +2 -2
  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 +1 -1
  47. package/i18n/index.min.js +1 -1
  48. package/i18n/indonesian.js +1 -1
  49. package/i18n/indonesian.min.js +1 -1
  50. package/i18n/italian.js +1 -1
  51. package/i18n/italian.min.js +1 -1
  52. package/i18n/japanese.js +1 -1
  53. package/i18n/japanese.min.js +1 -1
  54. package/i18n/kazakh.js +1 -1
  55. package/i18n/kazakh.min.js +1 -1
  56. package/i18n/korean.js +1 -1
  57. package/i18n/korean.min.js +1 -1
  58. package/i18n/latvian.js +1 -1
  59. package/i18n/latvian.min.js +1 -1
  60. package/i18n/lithuanian.js +1 -1
  61. package/i18n/lithuanian.min.js +1 -1
  62. package/i18n/macedonian.js +1 -1
  63. package/i18n/macedonian.min.js +1 -1
  64. package/i18n/malay.js +1 -1
  65. package/i18n/malay.min.js +1 -1
  66. package/i18n/nl-BE.js +1 -1
  67. package/i18n/nl-BE.min.js +1 -1
  68. package/i18n/norwegian.js +1 -1
  69. package/i18n/norwegian.min.js +1 -1
  70. package/i18n/persian.js +1 -1
  71. package/i18n/persian.min.js +1 -1
  72. package/i18n/polish.js +1 -1
  73. package/i18n/polish.min.js +1 -1
  74. package/i18n/portuguese-br.js +1 -1
  75. package/i18n/portuguese-br.min.js +1 -1
  76. package/i18n/portuguese.js +1 -1
  77. package/i18n/portuguese.min.js +1 -1
  78. package/i18n/romanian.js +1 -1
  79. package/i18n/romanian.min.js +1 -1
  80. package/i18n/russian.js +1 -1
  81. package/i18n/russian.min.js +1 -1
  82. package/i18n/serbian.js +1 -1
  83. package/i18n/serbian.min.js +1 -1
  84. package/i18n/simplified-chinese.js +1 -1
  85. package/i18n/simplified-chinese.min.js +1 -1
  86. package/i18n/slovak.js +1 -1
  87. package/i18n/slovak.min.js +1 -1
  88. package/i18n/spanish.js +1 -1
  89. package/i18n/spanish.min.js +1 -1
  90. package/i18n/swahili.js +1 -1
  91. package/i18n/swahili.min.js +1 -1
  92. package/i18n/swedish.js +1 -1
  93. package/i18n/swedish.min.js +1 -1
  94. package/i18n/tajik.js +1 -1
  95. package/i18n/tajik.min.js +1 -1
  96. package/i18n/telugu.js +1 -1
  97. package/i18n/telugu.min.js +1 -1
  98. package/i18n/thai.js +1 -1
  99. package/i18n/thai.min.js +1 -1
  100. package/i18n/traditional-chinese.js +1 -1
  101. package/i18n/traditional-chinese.min.js +1 -1
  102. package/i18n/turkish.js +1 -1
  103. package/i18n/turkish.min.js +1 -1
  104. package/i18n/ukrainian.js +1 -1
  105. package/i18n/ukrainian.min.js +1 -1
  106. package/i18n/urdu.js +1 -1
  107. package/i18n/urdu.min.js +1 -1
  108. package/i18n/vietnamese.js +1 -1
  109. package/i18n/vietnamese.min.js +1 -1
  110. package/i18n/welsh.js +1 -1
  111. package/i18n/welsh.min.js +1 -1
  112. package/modern.css +1 -1
  113. package/modern.css.map +1 -1
  114. package/modern.fontless.css +1 -1
  115. package/modern.fontless.css.map +1 -1
  116. package/modern.fontless.min.css +1 -1
  117. package/modern.min.css +1 -1
  118. package/package.json +1 -1
  119. package/plugins/bootstrap-integration.js +1 -1
  120. package/plugins/bootstrap-integration.min.js +1 -1
  121. package/plugins/bootstrap-material-integration.js +1 -1
  122. package/plugins/bootstrap-material-integration.min.js +1 -1
  123. package/survey.core.js +208 -89
  124. package/survey.core.js.map +1 -1
  125. package/survey.core.min.js +3 -3
  126. package/survey.css +1 -1
  127. package/survey.css.map +1 -1
  128. package/survey.i18n.js +1 -1
  129. package/survey.i18n.min.js +1 -1
  130. package/survey.min.css +1 -1
  131. package/themes/borderless-dark-panelless.js +1 -1
  132. package/themes/borderless-dark-panelless.min.js +1 -1
  133. package/themes/borderless-dark.js +1 -1
  134. package/themes/borderless-dark.min.js +1 -1
  135. package/themes/borderless-light-panelless..js +1 -1
  136. package/themes/borderless-light-panelless..min.js +1 -1
  137. package/themes/borderless-light.js +1 -1
  138. package/themes/borderless-light.min.js +1 -1
  139. package/themes/contrast-dark-panelless.js +1 -1
  140. package/themes/contrast-dark-panelless.min.js +1 -1
  141. package/themes/contrast-dark.js +1 -1
  142. package/themes/contrast-dark.min.js +1 -1
  143. package/themes/contrast-light-panelless.js +1 -1
  144. package/themes/contrast-light-panelless.min.js +1 -1
  145. package/themes/contrast-light.js +1 -1
  146. package/themes/contrast-light.min.js +1 -1
  147. package/themes/default-dark-panelless.js +1 -1
  148. package/themes/default-dark-panelless.min.js +1 -1
  149. package/themes/default-dark.js +1 -1
  150. package/themes/default-dark.min.js +1 -1
  151. package/themes/default-light-panelless.js +1 -1
  152. package/themes/default-light-panelless.min.js +1 -1
  153. package/themes/default-light.js +1 -1
  154. package/themes/default-light.min.js +1 -1
  155. package/themes/doubleborder-dark-panelless.js +1 -1
  156. package/themes/doubleborder-dark-panelless.min.js +1 -1
  157. package/themes/doubleborder-dark.js +1 -1
  158. package/themes/doubleborder-dark.min.js +1 -1
  159. package/themes/doubleborder-light-panelles.js +1 -1
  160. package/themes/doubleborder-light-panelles.min.js +1 -1
  161. package/themes/doubleborder-light.js +1 -1
  162. package/themes/doubleborder-light.min.js +1 -1
  163. package/themes/flat-dark-panelless.js +1 -1
  164. package/themes/flat-dark-panelless.min.js +1 -1
  165. package/themes/flat-dark.js +1 -1
  166. package/themes/flat-dark.min.js +1 -1
  167. package/themes/flat-light-panelless.js +1 -1
  168. package/themes/flat-light-panelless.min.js +1 -1
  169. package/themes/flat-light.js +1 -1
  170. package/themes/flat-light.min.js +1 -1
  171. package/themes/index.js +1 -1
  172. package/themes/index.min.js +1 -1
  173. package/themes/layered-dark-panelless.js +1 -1
  174. package/themes/layered-dark-panelless.min.js +1 -1
  175. package/themes/layered-dark.js +1 -1
  176. package/themes/layered-dark.min.js +1 -1
  177. package/themes/layered-light-panelless.js +1 -1
  178. package/themes/layered-light-panelless.min.js +1 -1
  179. package/themes/layered-light.js +1 -1
  180. package/themes/layered-light.min.js +1 -1
  181. package/themes/plain-dark-panelless.js +1 -1
  182. package/themes/plain-dark-panelless.min.js +1 -1
  183. package/themes/plain-dark.js +1 -1
  184. package/themes/plain-dark.min.js +1 -1
  185. package/themes/plain-light-panelless.js +1 -1
  186. package/themes/plain-light-panelless.min.js +1 -1
  187. package/themes/plain-light.js +1 -1
  188. package/themes/plain-light.min.js +1 -1
  189. package/themes/sharp-dark-panelless.js +1 -1
  190. package/themes/sharp-dark-panelless.min.js +1 -1
  191. package/themes/sharp-dark.js +1 -1
  192. package/themes/sharp-dark.min.js +1 -1
  193. package/themes/sharp-light-panelless.js +1 -1
  194. package/themes/sharp-light-panelless.min.js +1 -1
  195. package/themes/sharp-light.js +1 -1
  196. package/themes/sharp-light.min.js +1 -1
  197. package/themes/solid-dark-panelless.js +1 -1
  198. package/themes/solid-dark-panelless.min.js +1 -1
  199. package/themes/solid-dark.js +1 -1
  200. package/themes/solid-dark.min.js +1 -1
  201. package/themes/solid-light-panelless.js +1 -1
  202. package/themes/solid-light-panelless.min.js +1 -1
  203. package/themes/solid-light.js +1 -1
  204. package/themes/solid-light.min.js +1 -1
  205. package/themes/three-dimensional-dark-panelless.js +1 -1
  206. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  207. package/themes/three-dimensional-dark.js +1 -1
  208. package/themes/three-dimensional-dark.min.js +1 -1
  209. package/themes/three-dimensional-light-panelless.js +1 -1
  210. package/themes/three-dimensional-light-panelless.min.js +1 -1
  211. package/themes/three-dimensional-light.js +1 -1
  212. package/themes/three-dimensional-light.min.js +1 -1
  213. package/ts3.4/typings/base-interfaces.d.ts +2 -1
  214. package/ts3.4/typings/conditionProcessValue.d.ts +1 -0
  215. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +8 -3
  216. package/ts3.4/typings/localization/english.d.ts +1 -0
  217. package/ts3.4/typings/page.d.ts +1 -0
  218. package/ts3.4/typings/panel.d.ts +4 -1
  219. package/ts3.4/typings/question.d.ts +2 -0
  220. package/ts3.4/typings/question_ranking.d.ts +6 -0
  221. package/ts3.4/typings/question_rating.d.ts +1 -0
  222. package/ts3.4/typings/survey-events-api.d.ts +2 -2
  223. package/ts3.4/typings/survey.d.ts +34 -10
  224. package/ts3.4/typings/surveyStrings.d.ts +1 -0
  225. package/ts3.4/typings/themes.d.ts +2 -2
  226. package/typings/base-interfaces.d.ts +2 -1
  227. package/typings/conditionProcessValue.d.ts +1 -0
  228. package/typings/defaultCss/defaultV2Css.d.ts +8 -3
  229. package/typings/localization/english.d.ts +1 -0
  230. package/typings/page.d.ts +1 -0
  231. package/typings/panel.d.ts +4 -1
  232. package/typings/question.d.ts +2 -0
  233. package/typings/question_ranking.d.ts +6 -0
  234. package/typings/question_rating.d.ts +1 -0
  235. package/typings/survey-events-api.d.ts +2 -2
  236. package/typings/survey.d.ts +35 -10
  237. package/typings/surveyStrings.d.ts +1 -0
  238. package/typings/themes.d.ts +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.118
2
+ * surveyjs - Survey JavaScript library v1.9.119
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.118
2
+ * surveyjs - Survey JavaScript library v1.9.119
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.118
2
+ * surveyjs - Survey JavaScript library v1.9.119
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.118
2
+ * surveyjs - Survey JavaScript library v1.9.119
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.118
2
+ * surveyjs - Survey JavaScript library v1.9.119
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.118
2
+ * surveyjs - Survey JavaScript library v1.9.119
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.118
2
+ * surveyjs - Survey JavaScript library v1.9.119
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.118
2
+ * surveyjs - Survey JavaScript library v1.9.119
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.118
2
+ * surveyjs - Survey JavaScript library v1.9.119
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.118
2
+ * surveyjs - Survey JavaScript library v1.9.119
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.118
2
+ * surveyjs - Survey JavaScript library v1.9.119
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -98,7 +98,7 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
98
98
  maxTextLength: number;
99
99
  maxOthersLength: number;
100
100
  clearValueOnDisableItems: boolean;
101
- uploadFiles(question: IQuestion, name: string, files: File[], uploadingCallback: (status: string, data: any) => any): any;
101
+ uploadFiles(question: IQuestion, name: string, files: File[], uploadingCallback: (data: any | Array<any>, errors?: any | Array<any>) => any): any;
102
102
  downloadFile(question: IQuestion, name: string, content: string, callback: (status: string, data: any) => any): any;
103
103
  clearFiles(question: IQuestion, name: string, value: any, fileName: string, clearCallback: (status: string, data: any) => any): any;
104
104
  updateChoicesFromServer(question: IQuestion, choices: Array<any>, serverResult: any): Array<any>;
@@ -292,6 +292,7 @@ export interface ISurveyLayoutElement {
292
292
  component?: string;
293
293
  template?: string;
294
294
  data?: any;
295
+ index?: number;
295
296
  processResponsiveness?: (width: number) => void;
296
297
  }
297
298
  export interface IPlainDataOptions {
@@ -15,6 +15,7 @@ export declare class ProcessValue {
15
15
  private getValueFromSurvey;
16
16
  private getValueFromValues;
17
17
  private getNonNestedObject;
18
+ private getNonNestedObjectCore;
18
19
  private getObjInArray;
19
20
  private getFirstPropertyName;
20
21
  private getObjectValue;
@@ -70,6 +70,7 @@ export declare var defaultV2Css: {
70
70
  invisible: string;
71
71
  navigationButton: string;
72
72
  compact: string;
73
+ errorsContainer: string;
73
74
  };
74
75
  paneldynamic: {
75
76
  mainRoot: string;
@@ -136,6 +137,7 @@ export declare var defaultV2Css: {
136
137
  emptyHeaderRoot: string;
137
138
  title: string;
138
139
  description: string;
140
+ errorsContainer: string;
139
141
  };
140
142
  pageTitle: string;
141
143
  pageDescription: string;
@@ -190,6 +192,9 @@ export declare var defaultV2Css: {
190
192
  invisible: string;
191
193
  composite: string;
192
194
  disabled: string;
195
+ errorsContainer: string;
196
+ errorsContainerTop: string;
197
+ errorsContainerBottom: string;
193
198
  };
194
199
  image: {
195
200
  mainRoot: string;
@@ -209,9 +214,6 @@ export declare var defaultV2Css: {
209
214
  root: string;
210
215
  icon: string;
211
216
  item: string;
212
- outsideQuestion: string;
213
- aboveQuestion: string;
214
- belowQuestion: string;
215
217
  locationTop: string;
216
218
  locationBottom: string;
217
219
  };
@@ -429,6 +431,8 @@ export declare var defaultV2Css: {
429
431
  rowHasEndActions: string;
430
432
  headerCell: string;
431
433
  rowTextCell: string;
434
+ footerCell: string;
435
+ footerTotalCell: string;
432
436
  columnTitleCell: string;
433
437
  cellRequiredText: string;
434
438
  detailButton: string;
@@ -464,6 +468,7 @@ export declare var defaultV2Css: {
464
468
  itemCell: string;
465
469
  headerCell: string;
466
470
  rowTextCell: string;
471
+ footerCell: string;
467
472
  columnTitleCell: string;
468
473
  cellRequiredText: string;
469
474
  button: string;
@@ -40,6 +40,7 @@ export declare var englishStrings: {
40
40
  urlRequestError: string;
41
41
  urlGetChoicesError: string;
42
42
  exceedMaxSize: string;
43
+ noUploadFilesHandler: string;
43
44
  otherRequiredError: string;
44
45
  uploadingFile: string;
45
46
  loadingFile: string;
@@ -49,6 +49,7 @@ export declare class PageModel extends PanelModelBase implements IPage {
49
49
  protected calcCssClasses(css: any): any;
50
50
  readonly cssTitle: string;
51
51
  readonly cssRoot: string;
52
+ protected getCssError(cssClasses: any): string;
52
53
  num: number;
53
54
  /*
54
55
  * Set this property to "hide" to make "Prev", "Next" and "Complete" buttons are invisible for this page. Set this property to "show" to make these buttons visible, even if survey showNavigationButtons property is false.
@@ -399,6 +399,8 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
399
399
  questionErrorLocation: string;
400
400
  getQuestionErrorLocation(): string;
401
401
  readonly no: string;
402
+ readonly cssError: string;
403
+ protected getCssError(cssClasses: any): string;
402
404
  dispose(): void;
403
405
  }
404
406
  /**
@@ -475,6 +477,7 @@ export declare class PanelModel extends PanelModelBase implements IElement {
475
477
  */
476
478
  readonly no: string;
477
479
  protected setNo(visibleIndex: number): void;
480
+ protected notifyStateChanged(): void;
478
481
  protected createLocTitleProperty(): LocalizableString;
479
482
  protected beforeSetVisibleIndex(index: number): number;
480
483
  protected getPanelStartIndex(index: number): number;
@@ -503,7 +506,6 @@ export declare class PanelModel extends PanelModelBase implements IElement {
503
506
  readonly hasEditButton: boolean;
504
507
  cancelPreview(): void;
505
508
  readonly cssTitle: string;
506
- readonly cssError: string;
507
509
  readonly showErrorsAbovePanel: boolean;
508
510
  protected getCssError(cssClasses: any): string;
509
511
  protected onVisibleChanged(): void;
@@ -511,6 +513,7 @@ export declare class PanelModel extends PanelModelBase implements IElement {
511
513
  focusIn(): void;
512
514
  protected getHasFrameV2(): boolean;
513
515
  protected getIsNested(): boolean;
516
+ private readonly showPanelAsPage: any;
514
517
  protected getCssRoot(cssClasses: {
515
518
  [index: string]: string;
516
519
  }): string;
@@ -603,6 +603,8 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
603
603
  * - `{row.other_question_name}` (to access questions inside the same dynamic matrix or multi-column dropdown)
604
604
  *
605
605
  * An expression can also include built-in and custom functions for advanced calculations. For example, if the `defaultValue` should be today's date, set the `defaultValueExpression` to `"today()"`, and the corresponding built-in function will be executed each time the survey is loaded. Refer to the following help topic for more information: [Built-In Functions](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#built-in-functions).
606
+ *
607
+ * [View Demo](https://surveyjs.io/form-library/examples/specify-default-question-value-dynamically (linkStyle))
606
608
  * @see defaultValue
607
609
  * @see setValueExpression
608
610
  */
@@ -86,7 +86,13 @@ export declare class QuestionRankingModel extends QuestionCheckboxModel {
86
86
  selectToRankAreasLayout: string;
87
87
  readonly renderedSelectToRankAreasLayout: string;
88
88
  isMobileMode(): boolean;
89
+ /**
90
+ * A placeholder displayed in the area for ranked choices. Applies when [`selectToRankEnabled`](https://surveyjs.io/form-library/documentation/api-reference/ranking-question-model#selectToRankEnabled) is `true`.
91
+ */
89
92
  selectToRankEmptyRankedAreaText: string;
93
+ /**
94
+ * A placeholder displayed in the area for unranked choices. Applies when [`selectToRankEnabled`](https://surveyjs.io/form-library/documentation/api-reference/ranking-question-model#selectToRankEnabled) is `true`.
95
+ */
90
96
  selectToRankEmptyUnrankedAreaText: string;
91
97
  useFullItemSizeForShortcut: boolean;
92
98
  readonly dragDropSvgIcon: string;
@@ -114,6 +114,7 @@ export declare class QuestionRatingModel extends Question {
114
114
  itemValuePropertyChanged(item: ItemValue, name: string, oldValue: any, newValue: any): void;
115
115
  private createRenderedRateItems;
116
116
  renderedRateItems: Array<RenderedRatingItem>;
117
+ private createRateValues;
117
118
  private correctValue;
118
119
  getType(): string;
119
120
  protected getFirstInputElementId(): string;
@@ -499,9 +499,9 @@ export interface LoadFilesEvent extends FileQuestionEventMixin {
499
499
  }
500
500
  export interface UploadFilesEvent extends LoadFilesEvent {
501
501
  /**
502
- * A callback function that you should call when a file is uploaded successfully or when file upload fails. Pass `"success"` or `"error"` as the first argument to indicate the operation status. As the second argument, you can pass the uploaded file's data if file upload was successful or an error message if file upload failed.
502
+ * A callback function that you should call when a file is uploaded successfully or when file upload fails. Pass an array of successfully uploaded files as the first argument. As the second argument, you can pass an array of error messages if file upload failed.
503
503
  */
504
- callback: (status: string, data?: any) => any;
504
+ callback: (data: any | Array<any>, errors?: any | Array<any>) => any;
505
505
  /**
506
506
  * An array of JavaScript <a href="https://developer.mozilla.org/en-US/docs/Web/API/File" target="_blank">File</a> objects that represent files to upload.
507
507
  */
@@ -25,6 +25,7 @@ import { QuestionFileModel } from "./question_file";
25
25
  import { QuestionMultipleTextModel } from "./question_multipletext";
26
26
  import { ITheme, ImageFit, ImageAttachment } from "./themes";
27
27
  import { PopupModel } from "./popup";
28
+ import { Cover } from "./header";
28
29
  /**
29
30
  * The `SurveyModel` object contains properties and methods that allow you to control the survey and access its elements.
30
31
  *
@@ -750,6 +751,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
750
751
  * [View Demo](https://surveyjs.io/form-library/examples/brand-your-survey-header/ (linkStyle))
751
752
  */
752
753
  headerView: "advanced" | "basic";
754
+ protected insertAdvancedHeader(advHeader: Cover): void;
753
755
  private getNavigationCss;
754
756
  private lazyRenderingValue;
755
757
  showBrandInfo: boolean;
@@ -924,7 +926,8 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
924
926
  * Specifies whether to hide validation errors thrown by the Required validation in the UI.
925
927
  *
926
928
  * [Built-In Client-Side Validators](https://surveyjs.io/form-library/documentation/data-validation#built-in-client-side-validators (linkStyle))
927
- * @see ignoreValidation
929
+ * @see validationEnabled
930
+ * @see validationAllowSwitchPages
928
931
  */
929
932
  hideRequiredErrors: boolean;
930
933
  beforeSettingQuestionErrors(question: Question, errors: Array<SurveyError>): void;
@@ -991,6 +994,10 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
991
994
  * - `"onComplete"` - Triggers validation when a user clicks the Complete button. If previous pages contain errors, the survey switches to the page with the first error.
992
995
  *
993
996
  * Refer to the following help topic for more information: [Data Validation](https://surveyjs.io/form-library/documentation/data-validation).
997
+ * @see validationEnabled
998
+ * @see validationAllowSwitchPages
999
+ * @see validationAllowComplete
1000
+ * @see validate
994
1001
  */
995
1002
  checkErrorsMode: string;
996
1003
  /*
@@ -1678,16 +1685,32 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1678
1685
  * @see setCookie
1679
1686
  */
1680
1687
  deleteCookie(): void;
1688
+ /*
1689
+ * This property is obsolete. Use the [`validationEnabled`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#validationEnabled) property instead.
1690
+ */
1691
+ ignoreValidation: boolean;
1681
1692
  /**
1682
- * Specifies whether to skip validation when you switch between pages or complete the survey programmatically or when users do that in the UI.
1693
+ * Specifies whether data validation is enabled.
1683
1694
  *
1684
- * Default value: `false`
1695
+ * Default value: `true`
1696
+ * @see checkErrorsMode
1685
1697
  * @see hideRequiredErrors
1686
- * @see nextPage
1687
- * @see isPrevPage
1688
- * @see completeLastPage
1689
1698
  */
1690
- ignoreValidation: boolean;
1699
+ validationEnabled: boolean;
1700
+ /**
1701
+ * Specifies whether respondents can switch the current page even if it contains validation errors.
1702
+ *
1703
+ * Default value: `false`
1704
+ * @see checkErrorsMode
1705
+ */
1706
+ validationAllowSwitchPages: boolean;
1707
+ /**
1708
+ * Specifies whether respondents can end a survey with validation errors.
1709
+ *
1710
+ * Default value: `false`
1711
+ * @see checkErrorsMode
1712
+ */
1713
+ validationAllowComplete: boolean;
1691
1714
  /**
1692
1715
  * Switches the survey to the next page.
1693
1716
  *
@@ -2031,11 +2054,11 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2031
2054
  * @param question A [File Upload question instance](https://surveyjs.io/form-library/documentation/api-reference/file-model).
2032
2055
  * @param name The File Upload question's [`name`](https://surveyjs.io/form-library/documentation/api-reference/file-model#name).
2033
2056
  * @param files An array of JavaScript <a href="https://developer.mozilla.org/en-US/docs/Web/API/File" target="_blank">File</a> objects that represent files to upload.
2034
- * @param callback A callback function that allows you to get the upload status (`"success"` or `"error"`) and file data.
2057
+ * @param callback A callback function that allows you to access successfully uploaded files as the first argument. If any files fail to upload, the second argument contains an array of error messages.
2035
2058
  * @see onUploadFiles
2036
2059
  * @see downloadFile
2037
2060
  */
2038
- uploadFiles(question: QuestionFileModel, name: string, files: File[], callback: (status: string, data: any) => any): void;
2061
+ uploadFiles(question: QuestionFileModel, name: string, files: File[], callback: (data: any | Array<any>, errors?: any | Array<any>) => any): void;
2039
2062
  /**
2040
2063
  * Downloads a file from a server.
2041
2064
  *
@@ -2071,7 +2094,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2071
2094
  updateChoicesFromServer(question: QuestionSelectBase, choices: Array<ItemValue>, serverResult: any): Array<ItemValue>;
2072
2095
  loadedChoicesFromServer(question: IQuestion): void;
2073
2096
  protected createSurveyService(): dxSurveyService;
2074
- protected uploadFilesCore(name: string, files: File[], uploadingCallback: (status: string, data: any) => any): void;
2097
+ protected uploadFilesCore(name: string, files: File[], uploadingCallback: (data: any | Array<any>, errors?: any | Array<any>) => any): void;
2075
2098
  getPage(index: number): PageModel;
2076
2099
  /**
2077
2100
  * Adds an existing page to the survey.
@@ -2566,6 +2589,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2566
2589
  private isMovingQuestion;
2567
2590
  startMovingQuestion(): void;
2568
2591
  stopMovingQuestion(): void;
2592
+ readonly isQuestionDragging: boolean;
2569
2593
  private needRenderIcons;
2570
2594
  private skippedPages;
2571
2595
  /**
@@ -57,6 +57,7 @@ export declare var surveyStrings: {
57
57
  urlRequestError: string;
58
58
  urlGetChoicesError: string;
59
59
  exceedMaxSize: string;
60
+ noUploadFilesHandler: string;
60
61
  otherRequiredError: string;
61
62
  uploadingFile: string;
62
63
  loadingFile: string;
@@ -83,9 +83,9 @@ export interface IHeader {
83
83
  *
84
84
  * Possible values:
85
85
  *
86
- * - `"survey"` (default)\
86
+ * - `"survey"`\
87
87
  * The header width is the same as the survey width.
88
- * - `"container"`\
88
+ * - `"container"` (default)\
89
89
  * The header width is the same as the survey container width.
90
90
  *
91
91
  * @see [SurveyModel.width](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#width)
@@ -98,7 +98,7 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
98
98
  maxTextLength: number;
99
99
  maxOthersLength: number;
100
100
  clearValueOnDisableItems: boolean;
101
- uploadFiles(question: IQuestion, name: string, files: File[], uploadingCallback: (status: string, data: any) => any): any;
101
+ uploadFiles(question: IQuestion, name: string, files: File[], uploadingCallback: (data: any | Array<any>, errors?: any | Array<any>) => any): any;
102
102
  downloadFile(question: IQuestion, name: string, content: string, callback: (status: string, data: any) => any): any;
103
103
  clearFiles(question: IQuestion, name: string, value: any, fileName: string, clearCallback: (status: string, data: any) => any): any;
104
104
  updateChoicesFromServer(question: IQuestion, choices: Array<any>, serverResult: any): Array<any>;
@@ -292,6 +292,7 @@ export interface ISurveyLayoutElement {
292
292
  component?: string;
293
293
  template?: string;
294
294
  data?: any;
295
+ index?: number;
295
296
  processResponsiveness?: (width: number) => void;
296
297
  }
297
298
  export interface IPlainDataOptions {
@@ -15,6 +15,7 @@ export declare class ProcessValue {
15
15
  private getValueFromSurvey;
16
16
  private getValueFromValues;
17
17
  private getNonNestedObject;
18
+ private getNonNestedObjectCore;
18
19
  private getObjInArray;
19
20
  private getFirstPropertyName;
20
21
  private getObjectValue;
@@ -70,6 +70,7 @@ export declare var defaultV2Css: {
70
70
  invisible: string;
71
71
  navigationButton: string;
72
72
  compact: string;
73
+ errorsContainer: string;
73
74
  };
74
75
  paneldynamic: {
75
76
  mainRoot: string;
@@ -136,6 +137,7 @@ export declare var defaultV2Css: {
136
137
  emptyHeaderRoot: string;
137
138
  title: string;
138
139
  description: string;
140
+ errorsContainer: string;
139
141
  };
140
142
  pageTitle: string;
141
143
  pageDescription: string;
@@ -190,6 +192,9 @@ export declare var defaultV2Css: {
190
192
  invisible: string;
191
193
  composite: string;
192
194
  disabled: string;
195
+ errorsContainer: string;
196
+ errorsContainerTop: string;
197
+ errorsContainerBottom: string;
193
198
  };
194
199
  image: {
195
200
  mainRoot: string;
@@ -209,9 +214,6 @@ export declare var defaultV2Css: {
209
214
  root: string;
210
215
  icon: string;
211
216
  item: string;
212
- outsideQuestion: string;
213
- aboveQuestion: string;
214
- belowQuestion: string;
215
217
  locationTop: string;
216
218
  locationBottom: string;
217
219
  };
@@ -429,6 +431,8 @@ export declare var defaultV2Css: {
429
431
  rowHasEndActions: string;
430
432
  headerCell: string;
431
433
  rowTextCell: string;
434
+ footerCell: string;
435
+ footerTotalCell: string;
432
436
  columnTitleCell: string;
433
437
  cellRequiredText: string;
434
438
  detailButton: string;
@@ -464,6 +468,7 @@ export declare var defaultV2Css: {
464
468
  itemCell: string;
465
469
  headerCell: string;
466
470
  rowTextCell: string;
471
+ footerCell: string;
467
472
  columnTitleCell: string;
468
473
  cellRequiredText: string;
469
474
  button: string;
@@ -40,6 +40,7 @@ export declare var englishStrings: {
40
40
  urlRequestError: string;
41
41
  urlGetChoicesError: string;
42
42
  exceedMaxSize: string;
43
+ noUploadFilesHandler: string;
43
44
  otherRequiredError: string;
44
45
  uploadingFile: string;
45
46
  loadingFile: string;
package/typings/page.d.ts CHANGED
@@ -53,6 +53,7 @@ export declare class PageModel extends PanelModelBase implements IPage {
53
53
  protected calcCssClasses(css: any): any;
54
54
  get cssTitle(): string;
55
55
  get cssRoot(): string;
56
+ protected getCssError(cssClasses: any): string;
56
57
  num: number;
57
58
  /**
58
59
  * Set this property to "hide" to make "Prev", "Next" and "Complete" buttons are invisible for this page. Set this property to "show" to make these buttons visible, even if survey showNavigationButtons property is false.
@@ -412,6 +412,8 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
412
412
  set questionErrorLocation(val: string);
413
413
  getQuestionErrorLocation(): string;
414
414
  get no(): string;
415
+ get cssError(): string;
416
+ protected getCssError(cssClasses: any): string;
415
417
  dispose(): void;
416
418
  }
417
419
  /**
@@ -492,6 +494,7 @@ export declare class PanelModel extends PanelModelBase implements IElement {
492
494
  */
493
495
  get no(): string;
494
496
  protected setNo(visibleIndex: number): void;
497
+ protected notifyStateChanged(): void;
495
498
  protected createLocTitleProperty(): LocalizableString;
496
499
  protected beforeSetVisibleIndex(index: number): number;
497
500
  protected getPanelStartIndex(index: number): number;
@@ -524,7 +527,6 @@ export declare class PanelModel extends PanelModelBase implements IElement {
524
527
  get hasEditButton(): boolean;
525
528
  cancelPreview(): void;
526
529
  get cssTitle(): string;
527
- get cssError(): string;
528
530
  get showErrorsAbovePanel(): boolean;
529
531
  protected getCssError(cssClasses: any): string;
530
532
  protected onVisibleChanged(): void;
@@ -532,6 +534,7 @@ export declare class PanelModel extends PanelModelBase implements IElement {
532
534
  focusIn(): void;
533
535
  protected getHasFrameV2(): boolean;
534
536
  protected getIsNested(): boolean;
537
+ private get showPanelAsPage();
535
538
  protected getCssRoot(cssClasses: {
536
539
  [index: string]: string;
537
540
  }): string;
@@ -630,6 +630,8 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
630
630
  * - `{row.other_question_name}` (to access questions inside the same dynamic matrix or multi-column dropdown)
631
631
  *
632
632
  * An expression can also include built-in and custom functions for advanced calculations. For example, if the `defaultValue` should be today's date, set the `defaultValueExpression` to `"today()"`, and the corresponding built-in function will be executed each time the survey is loaded. Refer to the following help topic for more information: [Built-In Functions](https://surveyjs.io/form-library/documentation/design-survey-conditional-logic#built-in-functions).
633
+ *
634
+ * [View Demo](https://surveyjs.io/form-library/examples/specify-default-question-value-dynamically (linkStyle))
633
635
  * @see defaultValue
634
636
  * @see setValueExpression
635
637
  */
@@ -89,7 +89,13 @@ export declare class QuestionRankingModel extends QuestionCheckboxModel {
89
89
  set selectToRankAreasLayout(val: string);
90
90
  get renderedSelectToRankAreasLayout(): string;
91
91
  isMobileMode(): boolean;
92
+ /**
93
+ * A placeholder displayed in the area for ranked choices. Applies when [`selectToRankEnabled`](https://surveyjs.io/form-library/documentation/api-reference/ranking-question-model#selectToRankEnabled) is `true`.
94
+ */
92
95
  selectToRankEmptyRankedAreaText: string;
96
+ /**
97
+ * A placeholder displayed in the area for unranked choices. Applies when [`selectToRankEnabled`](https://surveyjs.io/form-library/documentation/api-reference/ranking-question-model#selectToRankEnabled) is `true`.
98
+ */
93
99
  selectToRankEmptyUnrankedAreaText: string;
94
100
  get useFullItemSizeForShortcut(): boolean;
95
101
  set useFullItemSizeForShortcut(val: boolean);
@@ -118,6 +118,7 @@ export declare class QuestionRatingModel extends Question {
118
118
  itemValuePropertyChanged(item: ItemValue, name: string, oldValue: any, newValue: any): void;
119
119
  private createRenderedRateItems;
120
120
  renderedRateItems: Array<RenderedRatingItem>;
121
+ private createRateValues;
121
122
  private correctValue;
122
123
  getType(): string;
123
124
  protected getFirstInputElementId(): string;
@@ -499,9 +499,9 @@ export interface LoadFilesEvent extends FileQuestionEventMixin {
499
499
  }
500
500
  export interface UploadFilesEvent extends LoadFilesEvent {
501
501
  /**
502
- * A callback function that you should call when a file is uploaded successfully or when file upload fails. Pass `"success"` or `"error"` as the first argument to indicate the operation status. As the second argument, you can pass the uploaded file's data if file upload was successful or an error message if file upload failed.
502
+ * A callback function that you should call when a file is uploaded successfully or when file upload fails. Pass an array of successfully uploaded files as the first argument. As the second argument, you can pass an array of error messages if file upload failed.
503
503
  */
504
- callback: (status: string, data?: any) => any;
504
+ callback: (data: any | Array<any>, errors?: any | Array<any>) => any;
505
505
  /**
506
506
  * An array of JavaScript <a href="https://developer.mozilla.org/en-US/docs/Web/API/File" target="_blank">File</a> objects that represent files to upload.
507
507
  */