survey-core 1.9.117 → 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 (266) hide show
  1. package/defaultV2.css +125 -42
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +125 -42
  4. package/defaultV2.fontless.css.map +1 -1
  5. package/defaultV2.fontless.min.css +2 -2
  6. package/defaultV2.min.css +2 -2
  7. package/i18n/arabic.js +1 -1
  8. package/i18n/arabic.min.js +1 -1
  9. package/i18n/basque.js +1 -1
  10. package/i18n/basque.min.js +1 -1
  11. package/i18n/bulgarian.js +1 -1
  12. package/i18n/bulgarian.min.js +1 -1
  13. package/i18n/catalan.js +1 -1
  14. package/i18n/catalan.min.js +1 -1
  15. package/i18n/croatian.js +1 -1
  16. package/i18n/croatian.min.js +1 -1
  17. package/i18n/czech.js +1 -1
  18. package/i18n/czech.min.js +1 -1
  19. package/i18n/danish.js +1 -1
  20. package/i18n/danish.min.js +1 -1
  21. package/i18n/dutch.js +1 -1
  22. package/i18n/dutch.min.js +1 -1
  23. package/i18n/english.js +4 -3
  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 +5 -2
  113. package/modern.css.map +1 -1
  114. package/modern.fontless.css +5 -2
  115. package/modern.fontless.css.map +1 -1
  116. package/modern.fontless.min.css +2 -2
  117. package/modern.min.css +2 -2
  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 +413 -183
  124. package/survey.core.js.map +1 -1
  125. package/survey.core.min.js +4 -4
  126. package/survey.css +5 -2
  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 +2 -2
  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/cssmodern.d.ts +1 -0
  216. package/ts3.4/typings/defaultCss/cssstandard.d.ts +1 -0
  217. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +9 -3
  218. package/ts3.4/typings/dragdrop/choices.d.ts +1 -0
  219. package/ts3.4/typings/jsonobject.d.ts +2 -0
  220. package/ts3.4/typings/localization/english.d.ts +1 -0
  221. package/ts3.4/typings/martixBase.d.ts +1 -0
  222. package/ts3.4/typings/notifier.d.ts +11 -8
  223. package/ts3.4/typings/page.d.ts +1 -0
  224. package/ts3.4/typings/panel.d.ts +4 -1
  225. package/ts3.4/typings/question.d.ts +3 -1
  226. package/ts3.4/typings/question_baseselect.d.ts +5 -1
  227. package/ts3.4/typings/question_file.d.ts +1 -0
  228. package/ts3.4/typings/question_matrixdropdownbase.d.ts +3 -0
  229. package/ts3.4/typings/question_matrixdropdowncolumn.d.ts +1 -0
  230. package/ts3.4/typings/question_matrixdynamic.d.ts +3 -0
  231. package/ts3.4/typings/question_ranking.d.ts +6 -0
  232. package/ts3.4/typings/question_rating.d.ts +1 -0
  233. package/ts3.4/typings/question_signaturepad.d.ts +3 -1
  234. package/ts3.4/typings/question_textbase.d.ts +1 -2
  235. package/ts3.4/typings/settings.d.ts +21 -0
  236. package/ts3.4/typings/survey-events-api.d.ts +20 -8
  237. package/ts3.4/typings/survey.d.ts +47 -11
  238. package/ts3.4/typings/surveyStrings.d.ts +1 -0
  239. package/ts3.4/typings/themes.d.ts +2 -2
  240. package/typings/base-interfaces.d.ts +2 -1
  241. package/typings/conditionProcessValue.d.ts +1 -0
  242. package/typings/defaultCss/cssmodern.d.ts +1 -0
  243. package/typings/defaultCss/cssstandard.d.ts +1 -0
  244. package/typings/defaultCss/defaultV2Css.d.ts +9 -3
  245. package/typings/dragdrop/choices.d.ts +1 -0
  246. package/typings/jsonobject.d.ts +2 -0
  247. package/typings/localization/english.d.ts +1 -0
  248. package/typings/martixBase.d.ts +1 -0
  249. package/typings/notifier.d.ts +11 -8
  250. package/typings/page.d.ts +1 -0
  251. package/typings/panel.d.ts +4 -1
  252. package/typings/question.d.ts +3 -1
  253. package/typings/question_baseselect.d.ts +5 -1
  254. package/typings/question_file.d.ts +3 -1
  255. package/typings/question_matrixdropdownbase.d.ts +3 -0
  256. package/typings/question_matrixdropdowncolumn.d.ts +1 -0
  257. package/typings/question_matrixdynamic.d.ts +3 -0
  258. package/typings/question_ranking.d.ts +6 -0
  259. package/typings/question_rating.d.ts +1 -0
  260. package/typings/question_signaturepad.d.ts +3 -1
  261. package/typings/question_textbase.d.ts +1 -2
  262. package/typings/settings.d.ts +21 -0
  263. package/typings/survey-events-api.d.ts +20 -8
  264. package/typings/survey.d.ts +48 -11
  265. package/typings/surveyStrings.d.ts +1 -0
  266. package/typings/themes.d.ts +2 -2
@@ -1,6 +1,15 @@
1
1
  import { Base } from "./base";
2
2
  import { ActionContainer } from "./actions/container";
3
3
  import { IAction } from "./actions/action";
4
+ interface INotifierCssClasses {
5
+ root: string;
6
+ rootWithButtons: string;
7
+ info: string;
8
+ error: string;
9
+ success: string;
10
+ button: string;
11
+ shown: string;
12
+ }
4
13
  export declare class Notifier extends Base {
5
14
  private cssClasses;
6
15
  active: boolean;
@@ -12,16 +21,10 @@ export declare class Notifier extends Base {
12
21
  private actionsVisibility;
13
22
  actionBar: ActionContainer;
14
23
  showActions: boolean;
15
- constructor(cssClasses: {
16
- root: string;
17
- info: string;
18
- error: string;
19
- success: string;
20
- button: string;
21
- shown: string;
22
- });
24
+ constructor(cssClasses: INotifierCssClasses);
23
25
  getCssClass(type: string): string;
24
26
  updateActionsVisibility(type: string): void;
25
27
  notify(message: string, type?: string, waitUserAction?: boolean): void;
26
28
  addAction(action: IAction, notificationType: string): void;
27
29
  }
30
+ export {};
@@ -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;
@@ -350,7 +350,6 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
350
350
  readonly isContainer: boolean;
351
351
  protected updateCommentElements(): void;
352
352
  onCommentInput(event: any): void;
353
- onCompositionUpdateComment(event: any): void;
354
353
  onCommentChange(event: any): void;
355
354
  afterRenderQuestionElement(el: HTMLElement): void;
356
355
  afterRender(el: HTMLElement): void;
@@ -459,6 +458,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
459
458
  * @see otherItem
460
459
  * @see otherErrorText
461
460
  * @see showCommentArea
461
+ * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
462
462
  */
463
463
  showOtherItem: boolean;
464
464
  hasOther: boolean;
@@ -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
  */
@@ -60,6 +60,7 @@ export declare class QuestionSelectBase extends Question {
60
60
  * When users select the "None" item in multi-select questions, all other items become unselected.
61
61
  * @see noneItem
62
62
  * @see noneText
63
+ * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
63
64
  */
64
65
  showNoneItem: boolean;
65
66
  hasNone: boolean;
@@ -157,6 +158,7 @@ export declare class QuestionSelectBase extends Question {
157
158
  *
158
159
  * [View Demo](https://surveyjs.io/form-library/examples/questiontype-dropdownrestfull/ (linkStyle))
159
160
  * @see choices
161
+ * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
160
162
  */
161
163
  choicesByUrl: ChoicesRestful;
162
164
  /*
@@ -178,6 +180,7 @@ export declare class QuestionSelectBase extends Question {
178
180
  * If you need to specify only the `value` property, you can set the `choices` property to an array of primitive values, for example, `[ "item1", "item2", "item3" ]`. These values are both saved in survey results and used as display text.
179
181
  * @see choicesByUrl
180
182
  * @see choicesFromQuestion
183
+ * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
181
184
  */
182
185
  choices: Array<any>;
183
186
  /*
@@ -241,6 +244,7 @@ export declare class QuestionSelectBase extends Question {
241
244
  * - `"asc"`- Sorts choice items in ascending order.
242
245
  * - `"desc"`- Sorts choice items in ascending order.
243
246
  * - `"random"` - Displays choice items in random order.
247
+ * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
244
248
  */
245
249
  choicesOrder: string;
246
250
  /*
@@ -253,6 +257,7 @@ export declare class QuestionSelectBase extends Question {
253
257
  * Displays the "Select All", "None", and "Other" choices on individual rows.
254
258
  * @see showNoneItem
255
259
  * @see showOtherItem
260
+ * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
256
261
  */
257
262
  separateSpecialChoices: boolean;
258
263
  /**
@@ -339,7 +344,6 @@ export declare class QuestionSelectBase extends Question {
339
344
  protected getCommentFromValue(newValue: any): string;
340
345
  protected setOtherValueIntoValue(newValue: any): any;
341
346
  onOtherValueInput(event: any): void;
342
- onCompositionUpdateOtherValue(event: any): void;
343
347
  onOtherValueChange(event: any): void;
344
348
  private isRunningChoices;
345
349
  private runChoicesByUrl;
@@ -141,6 +141,7 @@ export declare class QuestionFileModel extends Question {
141
141
  noFileChosenCaption: string;
142
142
  chooseButtonCaption: string;
143
143
  takePhotoCaption: string;
144
+ readonly locTakePhotoCaption: LocalizableString;
144
145
  replaceButtonCaption: string;
145
146
  clearButtonCaption: string;
146
147
  removeFileCaption: string;
@@ -41,6 +41,7 @@ export declare class MatrixDropdownCell {
41
41
  data: IMatrixDropdownData;
42
42
  private questionValue;
43
43
  constructor(column: MatrixDropdownColumn, row: MatrixDropdownRowModelBase, data: IMatrixDropdownData);
44
+ private updateCellQuestionTitleDueToAccessebility;
44
45
  locStrsChanged(): void;
45
46
  protected createQuestion(column: MatrixDropdownColumn, row: MatrixDropdownRowModelBase, data: IMatrixDropdownData): Question;
46
47
  readonly question: Question;
@@ -75,9 +76,11 @@ export declare class MatrixDropdownRowModelBase implements ISurveyData, ISurveyI
75
76
  constructor(data: IMatrixDropdownData, value: any);
76
77
  readonly id: string;
77
78
  readonly rowName: any;
79
+ readonly dataName: string;
78
80
  readonly text: any;
79
81
  value: any;
80
82
  readonly locText: LocalizableString;
83
+ getAccessbilityText(): string;
81
84
  readonly hasPanel: boolean;
82
85
  readonly detailPanel: PanelModel;
83
86
  readonly detailPanelId: string;
@@ -15,6 +15,7 @@ export interface IMatrixColumnOwner extends ILocalizableOwner {
15
15
  getCellType(): string;
16
16
  getCustomCellType(column: MatrixDropdownColumn, row: MatrixDropdownRowModelBase, cellType: string): string;
17
17
  onColumnCellTypeChanged(column: MatrixDropdownColumn): void;
18
+ getCellAriaLabel(rowTitle: string, columnTitle: string): string;
18
19
  }
19
20
  export declare var matrixDropdownColumnTypes: any;
20
21
  export declare class MatrixDropdownColumn extends Base implements ILocalizableOwner, IWrapperObject {
@@ -10,6 +10,9 @@ export declare class MatrixDynamicRowModel extends MatrixDropdownRowModelBase im
10
10
  private dragOrClickHelper;
11
11
  constructor(index: number, data: IMatrixDropdownData, value: any);
12
12
  readonly rowName: string;
13
+ readonly dataName: string;
14
+ readonly text: any;
15
+ getAccessbilityText(): string;
13
16
  readonly shortcutText: string;
14
17
  }
15
18
  /**
@@ -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;
@@ -48,7 +48,9 @@ export declare class QuestionSignaturePadModel extends Question {
48
48
  *
49
49
  * Default value: `false`
50
50
  *
51
- * > The signature area is scaled only for display. The resulting image will have dimensions specified by the [`signatureHeight`](#signatureHeight) and [`signatureWidth`](#signatureWidth) properties.
51
+ * This property auto-scales the signature area to fill all available width within the question box while maintaining the default 3:2 aspect ratio. If you set [custom width](#signatureWidth) and [height](#signatureHeight) values, the setting will keep the aspect ratio of these dimensions.
52
+ *
53
+ * > The signature area is scaled only for display. The image saved in survey results will have dimensions specified by the [`signatureHeight`](#signatureHeight) and [`signatureWidth`](#signatureWidth) properties.
52
54
  */
53
55
  signatureAutoScaleEnabled: boolean;
54
56
  /**
@@ -55,9 +55,8 @@ export declare class QuestionTextBase extends Question {
55
55
  protected setQuestionValue(newValue: any, updateIsAnswered?: boolean): void;
56
56
  protected convertToCorrectValue(val: any): any;
57
57
  protected getValueSeparator(): string;
58
- disableNativeUndoRedo: boolean;
59
- protected checkForUndo(event: KeyboardEvent): void;
60
58
  protected getControlCssClassBuilder(): CssClassBuilder;
61
59
  getControlClass(): string;
62
60
  readonly isNewA11yStructure: boolean;
61
+ onKeyDownPreprocess: (event: any) => void;
63
62
  }
@@ -485,6 +485,27 @@ export declare var settings: {
485
485
  * Default value: `"none"`
486
486
  */
487
487
  noneItemValue: string;
488
+ /**
489
+ * An object whose properties specify the order of the special choice items (None, Other, Select All) in select-based questions.
490
+ *
491
+ * Default value: `{ selectAllItem: [-1], noneItem: [1], otherItem: [2] }`
492
+ *
493
+ * Use this object to reorder special choices. Each property accepts an array of integer numbers. Negative numbers place a special choice item above regular choice items, positive numbers place it below them. For instance, the code below specifies the following order of choices: None, Select All, regular choices, Other.
494
+ *
495
+ * ```js
496
+ * import { settings } from "survey-core";
497
+ *
498
+ * settings.specialChoicesOrder.noneItem = [-2];
499
+ * settings.specialChoicesOrder.selectAllItem = [-1];
500
+ * settings.specialChoicesOrder.otherItem = [1];
501
+ * ```
502
+ *
503
+ * If you want to duplicate a special choice item above and below other choices, add two numbers to the corresponding array:
504
+ *
505
+ * ```js
506
+ * settings.specialChoicesOrder.selectAllItem = [-1, 3] // Displays Select All above and below other choices
507
+ * ```
508
+ */
488
509
  specialChoicesOrder: {
489
510
  selectAllItem: number[];
490
511
  noneItem: number[];
@@ -1,6 +1,6 @@
1
1
  import { IAction } from "./actions/action";
2
2
  import { Base } from "./base";
3
- import { IElement, ISurveyElement, IValueItemCustomPropValues } from "./base-interfaces";
3
+ import { IElement, IPanel, ISurveyElement, IValueItemCustomPropValues } from "./base-interfaces";
4
4
  import { ItemValue } from "./itemvalue";
5
5
  import { PageModel } from "./page";
6
6
  import { PanelModel, PanelModelBase } from "./panel";
@@ -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
  */
@@ -858,27 +858,39 @@ export interface DragDropAllowEvent {
858
858
  /**
859
859
  * A survey element being dragged.
860
860
  */
861
- target: IElement;
861
+ draggedElement: IElement;
862
862
  /**
863
- * A survey element from which `target` is being dragged. This parameter is `null` if `target` is being dragged from the [Toolbox](https://surveyjs.io/survey-creator/documentation/toolbox).
863
+ * A survey element from which `draggedElement` is being dragged. This parameter is `null` if `draggedElement` is being dragged from the [Toolbox](https://surveyjs.io/survey-creator/documentation/toolbox).
864
864
  */
865
- source: IElement;
865
+ fromElement: IPanel;
866
+ /**
867
+ * A survey element to which `draggedElement` is being dragged.
868
+ */
869
+ toElement: IElement;
866
870
  /**
867
871
  * A survey element before which the target element will be placed. This parameter is `null` if the parent container (page or panel) has no elements or if the target element will be placed below all other elements within the container.
868
872
  */
869
873
  insertBefore: IElement;
870
874
  /**
871
- * A survey element after which `target` will be placed. This parameter is `null` if the parent container (page or panel) has no elements or if `target` will be placed above all other elements within the container.
875
+ * A survey element after which `draggedElement` will be placed. This parameter is `null` if the parent container (page or panel) has no elements or if `draggedElement` will be placed above all other elements within the container.
872
876
  */
873
877
  insertAfter: IElement;
874
878
  /**
875
- * A parent container (page or panel) within which `target` will be placed.
879
+ * A parent container (page or panel) within which `draggedElement` will be placed.
876
880
  */
877
881
  parent: ISurveyElement;
878
882
  /**
879
883
  * A Boolean property that you can set to `false` if you want to cancel the drag and drop operation.
880
884
  */
881
885
  allow: boolean;
886
+ /**
887
+ * Obsolete. Use `options.draggedElement` instead.
888
+ */
889
+ target: IElement;
890
+ /**
891
+ * Obsolete. Use `options.toElement` instead.
892
+ */
893
+ source: IElement;
882
894
  }
883
895
  export interface ScrollingElementToTopEvent {
884
896
  /**
@@ -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
  *
@@ -746,8 +747,11 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
746
747
  *
747
748
  * - `"advanced"`\
748
749
  * An advanced header view applies the same properties as the basic view, plus [header settings](https://surveyjs.io/form-library/documentation/api-reference/iheader) from the [survey theme](https://surveyjs.io/form-library/documentation/api-reference/itheme#header). The advanced view features a more flexible header layout, a capability to specify a background image, and other settings that give a more professional look to the survey header.
750
+ *
751
+ * [View Demo](https://surveyjs.io/form-library/examples/brand-your-survey-header/ (linkStyle))
749
752
  */
750
753
  headerView: "advanced" | "basic";
754
+ protected insertAdvancedHeader(advHeader: Cover): void;
751
755
  private getNavigationCss;
752
756
  private lazyRenderingValue;
753
757
  showBrandInfo: boolean;
@@ -922,7 +926,8 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
922
926
  * Specifies whether to hide validation errors thrown by the Required validation in the UI.
923
927
  *
924
928
  * [Built-In Client-Side Validators](https://surveyjs.io/form-library/documentation/data-validation#built-in-client-side-validators (linkStyle))
925
- * @see ignoreValidation
929
+ * @see validationEnabled
930
+ * @see validationAllowSwitchPages
926
931
  */
927
932
  hideRequiredErrors: boolean;
928
933
  beforeSettingQuestionErrors(question: Question, errors: Array<SurveyError>): void;
@@ -989,6 +994,10 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
989
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.
990
995
  *
991
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
992
1001
  */
993
1002
  checkErrorsMode: string;
994
1003
  /*
@@ -1603,6 +1612,16 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1603
1612
  readonly completedState: string;
1604
1613
  readonly completedStateText: string;
1605
1614
  protected setCompletedState(value: string, text: string): void;
1615
+ /**
1616
+ * Displays a toast notification with a specified message.
1617
+ *
1618
+ * Depending on the `type` argument, a survey can display the following notification types:
1619
+ *
1620
+ * ![Toast notification types in SurveyJS Form Library](https://surveyjs.io//Content/Images/docs/notification-types.png)
1621
+ * @param message A message to display.
1622
+ * @param type A notification type: `"info"` (default), `"success"`, or `"error"`.
1623
+ * @param showActions For internal use.
1624
+ */
1606
1625
  notify(message: string, type: string, showActions?: boolean): void;
1607
1626
  /**
1608
1627
  * Resets the survey [`state`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#state) and, optionally, [`data`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#data). If `state` is `"completed"`, it becomes `"running"`.
@@ -1666,16 +1685,32 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1666
1685
  * @see setCookie
1667
1686
  */
1668
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;
1669
1692
  /**
1670
- * 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.
1671
1694
  *
1672
- * Default value: `false`
1695
+ * Default value: `true`
1696
+ * @see checkErrorsMode
1673
1697
  * @see hideRequiredErrors
1674
- * @see nextPage
1675
- * @see isPrevPage
1676
- * @see completeLastPage
1677
1698
  */
1678
- 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;
1679
1714
  /**
1680
1715
  * Switches the survey to the next page.
1681
1716
  *
@@ -1824,7 +1859,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1824
1859
  private runningPages;
1825
1860
  private onShowingPreviewChanged;
1826
1861
  private changeCurrentPageFromPreview;
1827
- private origionalPages;
1862
+ private originalPages;
1828
1863
  protected onQuestionsOnPageModeChanged(oldValue: string): void;
1829
1864
  private restoreOriginalPages;
1830
1865
  private getPageStartIndex;
@@ -2019,11 +2054,11 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2019
2054
  * @param question A [File Upload question instance](https://surveyjs.io/form-library/documentation/api-reference/file-model).
2020
2055
  * @param name The File Upload question's [`name`](https://surveyjs.io/form-library/documentation/api-reference/file-model#name).
2021
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.
2022
- * @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.
2023
2058
  * @see onUploadFiles
2024
2059
  * @see downloadFile
2025
2060
  */
2026
- 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;
2027
2062
  /**
2028
2063
  * Downloads a file from a server.
2029
2064
  *
@@ -2059,7 +2094,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2059
2094
  updateChoicesFromServer(question: QuestionSelectBase, choices: Array<ItemValue>, serverResult: any): Array<ItemValue>;
2060
2095
  loadedChoicesFromServer(question: IQuestion): void;
2061
2096
  protected createSurveyService(): dxSurveyService;
2062
- 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;
2063
2098
  getPage(index: number): PageModel;
2064
2099
  /**
2065
2100
  * Adds an existing page to the survey.
@@ -2554,6 +2589,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2554
2589
  private isMovingQuestion;
2555
2590
  startMovingQuestion(): void;
2556
2591
  stopMovingQuestion(): void;
2592
+ readonly isQuestionDragging: boolean;
2557
2593
  private needRenderIcons;
2558
2594
  private skippedPages;
2559
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;
@@ -416,6 +416,7 @@ export declare var modernCss: {
416
416
  };
417
417
  saveData: {
418
418
  root: string;
419
+ rootWithButtons: string;
419
420
  info: string;
420
421
  error: string;
421
422
  success: string;
@@ -350,6 +350,7 @@ export declare var defaultStandardCss: {
350
350
  };
351
351
  saveData: {
352
352
  root: string;
353
+ rootWithButtons: string;
353
354
  info: string;
354
355
  error: string;
355
356
  success: string;
@@ -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;
@@ -612,6 +617,7 @@ export declare var defaultV2Css: {
612
617
  };
613
618
  saveData: {
614
619
  root: string;
620
+ rootWithButtons: string;
615
621
  info: string;
616
622
  error: string;
617
623
  success: string;
@@ -2,6 +2,7 @@ import { ItemValue } from "../itemvalue";
2
2
  import { QuestionSelectBase } from "../question_baseselect";
3
3
  import { DragDropCore } from "./core";
4
4
  export declare class DragDropChoices extends DragDropCore<QuestionSelectBase> {
5
+ private imagepickerControlsNode;
5
6
  protected get draggedElementType(): string;
6
7
  protected createDraggedElementShortcut(text: string, draggedElementNode: HTMLElement, event: PointerEvent): HTMLElement;
7
8
  private createImagePickerShortcut;
@@ -70,6 +70,7 @@ export declare class JsonObjectProperty implements IObject {
70
70
  minValue: any;
71
71
  private dataListValue;
72
72
  layout: string;
73
+ onSerializeValue: (obj: any) => any;
73
74
  onGetValue: (obj: any) => any;
74
75
  onSettingValue: (obj: any, value: any) => any;
75
76
  onSetValue: (obj: any, value: any, jsonConv: JsonObject) => any;
@@ -94,6 +95,7 @@ export declare class JsonObjectProperty implements IObject {
94
95
  set defaultValue(newValue: any);
95
96
  isDefaultValue(value: any): boolean;
96
97
  isDefaultValueByObj(obj: Base, value: any): boolean;
98
+ getSerializableValue(obj: any): any;
97
99
  getValue(obj: any): any;
98
100
  getPropertyValue(obj: any): any;
99
101
  get hasToUseSetValue(): string | ((obj: any, value: any, jsonConv: JsonObject) => any);
@@ -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;
@@ -110,4 +110,5 @@ export declare class QuestionMatrixBaseModel<TRow, TColumn> extends Question {
110
110
  get rowTitleWidth(): string;
111
111
  set rowTitleWidth(val: string);
112
112
  getCellAriaLabel(rowTitle: string, columnTitle: string): string;
113
+ get isNewA11yStructure(): boolean;
113
114
  }