survey-core 1.9.128 → 1.9.129

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 (250) hide show
  1. package/defaultV2.css +154 -48
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +154 -48
  4. package/defaultV2.fontless.css.map +1 -1
  5. package/defaultV2.fontless.min.css +2 -2
  6. package/defaultV2.min.css +2 -2
  7. package/i18n/arabic.js +1 -1
  8. package/i18n/arabic.min.js +1 -1
  9. package/i18n/basque.js +1 -1
  10. package/i18n/basque.min.js +1 -1
  11. package/i18n/bulgarian.js +1 -1
  12. package/i18n/bulgarian.min.js +1 -1
  13. package/i18n/catalan.js +1 -1
  14. package/i18n/catalan.min.js +1 -1
  15. package/i18n/croatian.js +1 -1
  16. package/i18n/croatian.min.js +1 -1
  17. package/i18n/czech.js +1 -1
  18. package/i18n/czech.min.js +1 -1
  19. package/i18n/danish.js +1 -1
  20. package/i18n/danish.min.js +1 -1
  21. package/i18n/dutch.js +1 -1
  22. package/i18n/dutch.min.js +1 -1
  23. package/i18n/english.js +1 -1
  24. package/i18n/english.min.js +1 -1
  25. package/i18n/estonian.js +1 -1
  26. package/i18n/estonian.min.js +1 -1
  27. package/i18n/finnish.js +1 -1
  28. package/i18n/finnish.min.js +1 -1
  29. package/i18n/french.js +1 -1
  30. package/i18n/french.min.js +1 -1
  31. package/i18n/georgian.js +1 -1
  32. package/i18n/georgian.min.js +1 -1
  33. package/i18n/german.js +1 -1
  34. package/i18n/german.min.js +1 -1
  35. package/i18n/greek.js +1 -1
  36. package/i18n/greek.min.js +1 -1
  37. package/i18n/hebrew.js +1 -1
  38. package/i18n/hebrew.min.js +1 -1
  39. package/i18n/hindi.js +1 -1
  40. package/i18n/hindi.min.js +1 -1
  41. package/i18n/hungarian.js +1 -1
  42. package/i18n/hungarian.min.js +1 -1
  43. package/i18n/icelandic.js +1 -1
  44. package/i18n/icelandic.min.js +1 -1
  45. package/i18n/index.js +2 -2
  46. package/i18n/index.js.map +1 -1
  47. package/i18n/index.min.js +2 -2
  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 +2 -2
  87. package/i18n/slovak.js.map +1 -1
  88. package/i18n/slovak.min.js +2 -2
  89. package/i18n/spanish.js +1 -1
  90. package/i18n/spanish.min.js +1 -1
  91. package/i18n/swahili.js +1 -1
  92. package/i18n/swahili.min.js +1 -1
  93. package/i18n/swedish.js +1 -1
  94. package/i18n/swedish.min.js +1 -1
  95. package/i18n/tajik.js +1 -1
  96. package/i18n/tajik.min.js +1 -1
  97. package/i18n/telugu.js +1 -1
  98. package/i18n/telugu.min.js +1 -1
  99. package/i18n/thai.js +1 -1
  100. package/i18n/thai.min.js +1 -1
  101. package/i18n/traditional-chinese.js +1 -1
  102. package/i18n/traditional-chinese.min.js +1 -1
  103. package/i18n/turkish.js +1 -1
  104. package/i18n/turkish.min.js +1 -1
  105. package/i18n/ukrainian.js +1 -1
  106. package/i18n/ukrainian.min.js +1 -1
  107. package/i18n/urdu.js +1 -1
  108. package/i18n/urdu.min.js +1 -1
  109. package/i18n/vietnamese.js +1 -1
  110. package/i18n/vietnamese.min.js +1 -1
  111. package/i18n/welsh.js +1 -1
  112. package/i18n/welsh.min.js +1 -1
  113. package/modern.css +61 -14
  114. package/modern.css.map +1 -1
  115. package/modern.fontless.css +61 -14
  116. package/modern.fontless.css.map +1 -1
  117. package/modern.fontless.min.css +2 -2
  118. package/modern.min.css +2 -2
  119. package/package.json +1 -1
  120. package/plugins/bootstrap-integration.js +1 -1
  121. package/plugins/bootstrap-integration.min.js +1 -1
  122. package/plugins/bootstrap-material-integration.js +1 -1
  123. package/plugins/bootstrap-material-integration.min.js +1 -1
  124. package/survey.core.js +347 -54
  125. package/survey.core.js.map +1 -1
  126. package/survey.core.min.js +3 -3
  127. package/survey.css +61 -14
  128. package/survey.css.map +1 -1
  129. package/survey.i18n.js +2 -2
  130. package/survey.i18n.js.map +1 -1
  131. package/survey.i18n.min.js +2 -2
  132. package/survey.min.css +2 -2
  133. package/themes/borderless-dark-panelless.js +1 -1
  134. package/themes/borderless-dark-panelless.min.js +1 -1
  135. package/themes/borderless-dark.js +1 -1
  136. package/themes/borderless-dark.min.js +1 -1
  137. package/themes/borderless-light-panelless..js +1 -1
  138. package/themes/borderless-light-panelless..min.js +1 -1
  139. package/themes/borderless-light.js +1 -1
  140. package/themes/borderless-light.min.js +1 -1
  141. package/themes/contrast-dark-panelless.js +1 -1
  142. package/themes/contrast-dark-panelless.min.js +1 -1
  143. package/themes/contrast-dark.js +1 -1
  144. package/themes/contrast-dark.min.js +1 -1
  145. package/themes/contrast-light-panelless.js +1 -1
  146. package/themes/contrast-light-panelless.min.js +1 -1
  147. package/themes/contrast-light.js +1 -1
  148. package/themes/contrast-light.min.js +1 -1
  149. package/themes/default-dark-panelless.js +1 -1
  150. package/themes/default-dark-panelless.min.js +1 -1
  151. package/themes/default-dark.js +1 -1
  152. package/themes/default-dark.min.js +1 -1
  153. package/themes/default-light-panelless.js +1 -1
  154. package/themes/default-light-panelless.min.js +1 -1
  155. package/themes/default-light.js +1 -1
  156. package/themes/default-light.min.js +1 -1
  157. package/themes/doubleborder-dark-panelless.js +1 -1
  158. package/themes/doubleborder-dark-panelless.min.js +1 -1
  159. package/themes/doubleborder-dark.js +1 -1
  160. package/themes/doubleborder-dark.min.js +1 -1
  161. package/themes/doubleborder-light-panelles.js +1 -1
  162. package/themes/doubleborder-light-panelles.min.js +1 -1
  163. package/themes/doubleborder-light.js +1 -1
  164. package/themes/doubleborder-light.min.js +1 -1
  165. package/themes/flat-dark-panelless.js +1 -1
  166. package/themes/flat-dark-panelless.min.js +1 -1
  167. package/themes/flat-dark.js +1 -1
  168. package/themes/flat-dark.min.js +1 -1
  169. package/themes/flat-light-panelless.js +1 -1
  170. package/themes/flat-light-panelless.min.js +1 -1
  171. package/themes/flat-light.js +1 -1
  172. package/themes/flat-light.min.js +1 -1
  173. package/themes/index.js +1 -1
  174. package/themes/index.min.js +1 -1
  175. package/themes/layered-dark-panelless.js +1 -1
  176. package/themes/layered-dark-panelless.min.js +1 -1
  177. package/themes/layered-dark.js +1 -1
  178. package/themes/layered-dark.min.js +1 -1
  179. package/themes/layered-light-panelless.js +1 -1
  180. package/themes/layered-light-panelless.min.js +1 -1
  181. package/themes/layered-light.js +1 -1
  182. package/themes/layered-light.min.js +1 -1
  183. package/themes/plain-dark-panelless.js +1 -1
  184. package/themes/plain-dark-panelless.min.js +1 -1
  185. package/themes/plain-dark.js +1 -1
  186. package/themes/plain-dark.min.js +1 -1
  187. package/themes/plain-light-panelless.js +1 -1
  188. package/themes/plain-light-panelless.min.js +1 -1
  189. package/themes/plain-light.js +1 -1
  190. package/themes/plain-light.min.js +1 -1
  191. package/themes/sharp-dark-panelless.js +1 -1
  192. package/themes/sharp-dark-panelless.min.js +1 -1
  193. package/themes/sharp-dark.js +1 -1
  194. package/themes/sharp-dark.min.js +1 -1
  195. package/themes/sharp-light-panelless.js +1 -1
  196. package/themes/sharp-light-panelless.min.js +1 -1
  197. package/themes/sharp-light.js +1 -1
  198. package/themes/sharp-light.min.js +1 -1
  199. package/themes/solid-dark-panelless.js +1 -1
  200. package/themes/solid-dark-panelless.min.js +1 -1
  201. package/themes/solid-dark.js +1 -1
  202. package/themes/solid-dark.min.js +1 -1
  203. package/themes/solid-light-panelless.js +1 -1
  204. package/themes/solid-light-panelless.min.js +1 -1
  205. package/themes/solid-light.js +1 -1
  206. package/themes/solid-light.min.js +1 -1
  207. package/themes/three-dimensional-dark-panelless.js +1 -1
  208. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  209. package/themes/three-dimensional-dark.js +1 -1
  210. package/themes/three-dimensional-dark.min.js +1 -1
  211. package/themes/three-dimensional-light-panelless.js +1 -1
  212. package/themes/three-dimensional-light-panelless.min.js +1 -1
  213. package/themes/three-dimensional-light.js +1 -1
  214. package/themes/three-dimensional-light.min.js +1 -1
  215. package/ts3.4/typings/base-interfaces.d.ts +4 -0
  216. package/ts3.4/typings/defaultCss/cssmodern.d.ts +2 -0
  217. package/ts3.4/typings/defaultCss/cssstandard.d.ts +2 -0
  218. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +2 -0
  219. package/ts3.4/typings/dropdownListModel.d.ts +2 -0
  220. package/ts3.4/typings/entries/chunks/model.d.ts +1 -1
  221. package/ts3.4/typings/header.d.ts +3 -0
  222. package/ts3.4/typings/jsonobject.d.ts +3 -0
  223. package/ts3.4/typings/popup-survey.d.ts +11 -0
  224. package/ts3.4/typings/question_custom.d.ts +2 -0
  225. package/ts3.4/typings/question_file.d.ts +1 -0
  226. package/ts3.4/typings/question_matrixdropdownbase.d.ts +2 -0
  227. package/ts3.4/typings/question_matrixdropdowncolumn.d.ts +17 -0
  228. package/ts3.4/typings/question_matrixdropdownrendered.d.ts +1 -0
  229. package/ts3.4/typings/settings.d.ts +1 -1
  230. package/ts3.4/typings/survey-events-api.d.ts +19 -0
  231. package/ts3.4/typings/survey.d.ts +18 -1
  232. package/ts3.4/typings/utils/utils.d.ts +4 -3
  233. package/typings/base-interfaces.d.ts +4 -0
  234. package/typings/defaultCss/cssmodern.d.ts +2 -0
  235. package/typings/defaultCss/cssstandard.d.ts +2 -0
  236. package/typings/defaultCss/defaultV2Css.d.ts +2 -0
  237. package/typings/dropdownListModel.d.ts +2 -0
  238. package/typings/entries/chunks/model.d.ts +1 -1
  239. package/typings/header.d.ts +3 -0
  240. package/typings/jsonobject.d.ts +3 -0
  241. package/typings/popup-survey.d.ts +13 -0
  242. package/typings/question_custom.d.ts +2 -0
  243. package/typings/question_file.d.ts +1 -0
  244. package/typings/question_matrixdropdownbase.d.ts +2 -0
  245. package/typings/question_matrixdropdowncolumn.d.ts +18 -0
  246. package/typings/question_matrixdropdownrendered.d.ts +1 -0
  247. package/typings/settings.d.ts +1 -1
  248. package/typings/survey-events-api.d.ts +19 -0
  249. package/typings/survey.d.ts +18 -1
  250. package/typings/utils/utils.d.ts +4 -3
@@ -33,6 +33,7 @@ export declare class PopupSurveyModel extends Base {
33
33
  * You can set this property to `true` or `false` to control visibility of the pop-up survey. Alternatively, you can use the [`show()`](#show) and [`hide()`](#hide) methods.
34
34
  */
35
35
  isShowing: boolean;
36
+ isFullScreen: boolean;
36
37
  /**
37
38
  * Shows the pop-up survey. The survey may appear [expanded or collapsed](#isExpanded).
38
39
  *
@@ -49,6 +50,7 @@ export declare class PopupSurveyModel extends Base {
49
50
  * @see collapse
50
51
  */
51
52
  hide(): void;
53
+ toggleFullScreen(): void;
52
54
  /*
53
55
  * Indicates whether the pop-up window is expanded or collapsed.
54
56
  *
@@ -89,6 +91,13 @@ export declare class PopupSurveyModel extends Base {
89
91
  * @see hide
90
92
  */
91
93
  allowClose: boolean;
94
+ /*
95
+ * Specifies whether to display a button that allow showing pop-up in full-screen mode.
96
+ *
97
+ * Default value: `false`
98
+ *
99
+ */
100
+ allowFullScreen: boolean;
92
101
  readonly css: any;
93
102
  readonly cssButton: string;
94
103
  readonly cssRoot: string;
@@ -100,9 +109,11 @@ export declare class PopupSurveyModel extends Base {
100
109
  readonly cssHeaderButtonsContainer: string;
101
110
  readonly cssHeaderCollapseButton: string;
102
111
  readonly cssHeaderCloseButton: string;
112
+ readonly cssHeaderFullScreenButton: string;
103
113
  readonly renderedWidth: string;
104
114
  width: string;
105
115
  private updateCss;
116
+ private setCssRoot;
106
117
  private updateCssButton;
107
118
  private setCssButton;
108
119
  protected createSurvey(jsonObj: any): SurveyModel;
@@ -332,6 +332,7 @@ export declare class QuestionCustomModel extends QuestionCustomModelBase {
332
332
  getDynamicType(): string;
333
333
  getOriginalObj(): Base;
334
334
  protected createWrapper(): void;
335
+ private getDynamicProperty;
335
336
  protected getElement(): SurveyElement;
336
337
  onAnyValueChanged(name: string, questionName: string): void;
337
338
  protected getQuestionByName(name: string): IQuestion;
@@ -390,6 +391,7 @@ export declare class QuestionCompositeModel extends QuestionCustomModelBase {
390
391
  protected getQuestionByName(name: string): IQuestion;
391
392
  private settingNewValue;
392
393
  setValue(name: string, newValue: any, locNotification: any, allowNotifyValueChanged?: boolean): any;
394
+ getFilteredValues(): any;
393
395
  private updateValueCoreWithPanelValue;
394
396
  private getContentPanelValue;
395
397
  private getValueForContentPanel;
@@ -139,6 +139,7 @@ export declare class QuestionFileModel extends QuestionFileModelBase {
139
139
  * Default value: 0 (unlimited)
140
140
  */
141
141
  maxSize: number;
142
+ chooseFile(): void;
142
143
  /*
143
144
  * Specifies whether users should confirm file deletion.
144
145
  *
@@ -46,6 +46,7 @@ export declare class MatrixDropdownCell {
46
46
  protected createQuestion(column: MatrixDropdownColumn, row: MatrixDropdownRowModelBase, data: IMatrixDropdownData): Question;
47
47
  readonly question: Question;
48
48
  value: any;
49
+ getQuestionWrapperClassName(className: string): string;
49
50
  runCondition(values: HashTable<any>, properties: HashTable<any>): void;
50
51
  }
51
52
  export declare class MatrixDropdownTotalCell extends MatrixDropdownCell {
@@ -56,6 +57,7 @@ export declare class MatrixDropdownTotalCell extends MatrixDropdownCell {
56
57
  protected createQuestion(column: MatrixDropdownColumn, row: MatrixDropdownRowModelBase, data: IMatrixDropdownData): Question;
57
58
  locStrsChanged(): void;
58
59
  updateCellQuestion(): void;
60
+ getQuestionWrapperClassName(className: string): string;
59
61
  getTotalExpression(): string;
60
62
  }
61
63
  export declare class MatrixDropdownRowModelBase implements ISurveyData, ISurveyImpl, ILocalizableOwner {
@@ -247,6 +247,23 @@ export declare class MatrixDropdownColumn extends Base implements ILocalizableOw
247
247
  */
248
248
  totalDisplayStyle: string;
249
249
  /*
250
+ * An alignment for calculated total values.
251
+ *
252
+ * Possible values:
253
+ *
254
+ * - `"left"`
255
+ * - `"center"`
256
+ * - `"right"`
257
+ * - `"auto"` (default) - Applies one of the values above based on the column's [cell type](#cellType).
258
+ *
259
+ * [View Demo](https://surveyjs.io/form-library/examples/aggregate-data-within-form/ (linkStyle))
260
+ * @see totalType
261
+ * @see totalFormat
262
+ * @see totalCurrency
263
+ * @see totalDisplayStyle
264
+ */
265
+ totalAlignment: string;
266
+ /*
250
267
  * Specifies a currency used to display calculated total values. Applies only if [`totalDisplayStyle`](#totalDisplayStyle) is set to `"currency"`.
251
268
  * @see totalType
252
269
  */
@@ -44,6 +44,7 @@ export declare class QuestionMatrixDropdownRenderedCell {
44
44
  readonly isRadio: boolean;
45
45
  readonly isFirstChoice: boolean;
46
46
  className: string;
47
+ readonly cellQuestionWrapperClassName: string;
47
48
  readonly headers: string;
48
49
  getTitle(): string;
49
50
  calculateFinalClassName(matrixCssClasses: any): string;
@@ -363,7 +363,7 @@ export declare var settings: {
363
363
  * @param message A message to be displayed in the confirm dialog window.
364
364
  * @param callback A callback function that should be called with `true` if a user confirms an action or `false` otherwise.
365
365
  */
366
- confirmActionAsync: (message: string, callback: (res: boolean) => void, applyTitle?: string, locale?: string) => boolean;
366
+ confirmActionAsync: (message: string, callback: (res: boolean) => void, applyTitle?: string, locale?: string, rootElement?: HTMLElement) => boolean;
367
367
  /**
368
368
  * A minimum width value for all survey elements.
369
369
  *
@@ -508,6 +508,25 @@ export interface UploadFilesEvent extends LoadFilesEvent {
508
508
  */
509
509
  files: Array<File>;
510
510
  }
511
+ export interface OpenFileChooserEvent {
512
+ /**
513
+ * A file input HTML element.
514
+ */
515
+ input: HTMLInputElement;
516
+ /**
517
+ * A question, panel, page, or survey for which this event is raised.
518
+ */
519
+ element: Base;
520
+ /**
521
+ * A choice item for which the event is raised. This parameter has a value only when the dialog window is opened to select images for an [Image Picker](https://surveyjs.io/form-library/documentation/api-reference/image-picker-question-model) question.
522
+ */
523
+ item: ItemValue;
524
+ /**
525
+ * A callback function to which you should pass selected files.
526
+ * @param files An array of selected files.
527
+ */
528
+ callback: (files: Array<File>) => void;
529
+ }
511
530
  export interface DownloadFileEvent extends LoadFilesEvent {
512
531
  /**
513
532
  * A callback function that you should call when a file is downloaded successfully or when deletion fails. Pass `"success"` or `"error"` as the first argument to indicate the operation status. As the second argument, you can pass the downloaded file's data as a Base64 string if file download was successful or an error message if file download failed.
@@ -18,7 +18,7 @@ import { IAction, Action } from "./actions/action";
18
18
  import { ActionContainer } from "./actions/container";
19
19
  import { QuestionPanelDynamicModel } from "./question_paneldynamic";
20
20
  import { Notifier } from "./notifier";
21
- import { TriggerExecutedEvent, CompletingEvent, CompleteEvent, ShowingPreviewEvent, NavigateToUrlEvent, CurrentPageChangingEvent, CurrentPageChangedEvent, ValueChangingEvent, ValueChangedEvent, VariableChangedEvent, QuestionVisibleChangedEvent, PageVisibleChangedEvent, PanelVisibleChangedEvent, QuestionCreatedEvent, QuestionAddedEvent, QuestionRemovedEvent, PanelAddedEvent, PanelRemovedEvent, PageAddedEvent, ValidateQuestionEvent, SettingQuestionErrorsEvent, ValidatePanelEvent, ErrorCustomTextEvent, ValidatedErrorsOnCurrentPageEvent, ProcessHtmlEvent, GetQuestionTitleEvent, GetTitleTagNameEvent, GetQuestionNoEvent, ProgressTextEvent, TextMarkdownEvent, TextRenderAsEvent, SendResultEvent, GetResultEvent, UploadFilesEvent, DownloadFileEvent, ClearFilesEvent, LoadChoicesFromServerEvent, ProcessTextValueEvent, UpdateQuestionCssClassesEvent, UpdatePanelCssClassesEvent, UpdatePageCssClassesEvent, UpdateChoiceItemCssEvent, AfterRenderSurveyEvent, AfterRenderHeaderEvent, AfterRenderPageEvent, AfterRenderQuestionEvent, AfterRenderQuestionInputEvent, AfterRenderPanelEvent, FocusInQuestionEvent, FocusInPanelEvent, ShowingChoiceItemEvent, ChoicesLazyLoadEvent, GetChoiceDisplayValueEvent, MatrixRowAddedEvent, MatrixBeforeRowAddedEvent, MatrixRowRemovingEvent, MatrixRowRemovedEvent, MatrixAllowRemoveRowEvent, MatrixCellCreatingEvent, MatrixCellCreatedEvent, MatrixAfterCellRenderEvent, MatrixCellValueChangedEvent, MatrixCellValueChangingEvent, MatrixCellValidateEvent, DynamicPanelModifiedEvent, DynamicPanelRemovingEvent, TimerPanelInfoTextEvent, DynamicPanelItemValueChangedEvent, DynamicPanelGetTabTitleEvent, DynamicPanelCurrentIndexChangedEvent, IsAnswerCorrectEvent, DragDropAllowEvent, ScrollingElementToTopEvent, GetQuestionTitleActionsEvent, GetPanelTitleActionsEvent, GetPageTitleActionsEvent, GetPanelFooterActionsEvent, GetMatrixRowActionsEvent, ElementContentVisibilityChangedEvent, GetExpressionDisplayValueEvent, ServerValidateQuestionsEvent, MultipleTextItemAddedEvent, MatrixColumnAddedEvent, GetQuestionDisplayValueEvent, PopupVisibleChangedEvent, ChoicesSearchEvent } from "./survey-events-api";
21
+ import { TriggerExecutedEvent, CompletingEvent, CompleteEvent, ShowingPreviewEvent, NavigateToUrlEvent, CurrentPageChangingEvent, CurrentPageChangedEvent, ValueChangingEvent, ValueChangedEvent, VariableChangedEvent, QuestionVisibleChangedEvent, PageVisibleChangedEvent, PanelVisibleChangedEvent, QuestionCreatedEvent, QuestionAddedEvent, QuestionRemovedEvent, PanelAddedEvent, PanelRemovedEvent, PageAddedEvent, ValidateQuestionEvent, SettingQuestionErrorsEvent, ValidatePanelEvent, ErrorCustomTextEvent, ValidatedErrorsOnCurrentPageEvent, ProcessHtmlEvent, GetQuestionTitleEvent, GetTitleTagNameEvent, GetQuestionNoEvent, ProgressTextEvent, TextMarkdownEvent, TextRenderAsEvent, SendResultEvent, GetResultEvent, UploadFilesEvent, DownloadFileEvent, ClearFilesEvent, LoadChoicesFromServerEvent, ProcessTextValueEvent, UpdateQuestionCssClassesEvent, UpdatePanelCssClassesEvent, UpdatePageCssClassesEvent, UpdateChoiceItemCssEvent, AfterRenderSurveyEvent, AfterRenderHeaderEvent, AfterRenderPageEvent, AfterRenderQuestionEvent, AfterRenderQuestionInputEvent, AfterRenderPanelEvent, FocusInQuestionEvent, FocusInPanelEvent, ShowingChoiceItemEvent, ChoicesLazyLoadEvent, GetChoiceDisplayValueEvent, MatrixRowAddedEvent, MatrixBeforeRowAddedEvent, MatrixRowRemovingEvent, MatrixRowRemovedEvent, MatrixAllowRemoveRowEvent, MatrixCellCreatingEvent, MatrixCellCreatedEvent, MatrixAfterCellRenderEvent, MatrixCellValueChangedEvent, MatrixCellValueChangingEvent, MatrixCellValidateEvent, DynamicPanelModifiedEvent, DynamicPanelRemovingEvent, TimerPanelInfoTextEvent, DynamicPanelItemValueChangedEvent, DynamicPanelGetTabTitleEvent, DynamicPanelCurrentIndexChangedEvent, IsAnswerCorrectEvent, DragDropAllowEvent, ScrollingElementToTopEvent, GetQuestionTitleActionsEvent, GetPanelTitleActionsEvent, GetPageTitleActionsEvent, GetPanelFooterActionsEvent, GetMatrixRowActionsEvent, ElementContentVisibilityChangedEvent, GetExpressionDisplayValueEvent, ServerValidateQuestionsEvent, MultipleTextItemAddedEvent, MatrixColumnAddedEvent, GetQuestionDisplayValueEvent, PopupVisibleChangedEvent, ChoicesSearchEvent, OpenFileChooserEvent } from "./survey-events-api";
22
22
  import { QuestionMatrixDropdownModelBase } from "./question_matrixdropdownbase";
23
23
  import { QuestionMatrixDynamicModel } from "./question_matrixdynamic";
24
24
  import { QuestionFileModel } from "./question_file";
@@ -358,6 +358,12 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
358
358
  * @see getResult
359
359
  */
360
360
  onGetResult: EventBase<SurveyModel, GetResultEvent>;
361
+ /**
362
+ * An event that is raised when Survey Creator opens a dialog window for users to select files.
363
+ * @see onUploadFile
364
+ * @see uploadFiles
365
+ */
366
+ onOpenFileChooser: EventBase<SurveyModel, OpenFileChooserEvent>;
361
367
  /**
362
368
  * An event that is raised when a File Upload or Signature Pad question starts to upload a file. Applies only if [`storeDataAsText`](https://surveyjs.io/form-library/documentation/api-reference/file-model#storeDataAsText) is `false`. Use this event to upload files to your server.
363
369
  *
@@ -2069,6 +2075,17 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2069
2075
  private getUpdatedPageTitleActions;
2070
2076
  getUpdatedMatrixRowActions(question: QuestionMatrixDropdownModelBase, row: any, actions: Array<IAction>): IAction[];
2071
2077
  scrollElementToTop(element: ISurveyElement, question: Question, page: PageModel, id: string, scrollIfVisible?: boolean): any;
2078
+ /**
2079
+ * Opens a dialog window for users to select files.
2080
+ * @param input A [file input HTML element](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement).
2081
+ * @param callback A callback function that you can use to process selected files. Accepts an array of JavaScript <a href="https://developer.mozilla.org/en-US/docs/Web/API/File" target="_blank">File</a> objects.
2082
+ * @see onOpenFileChooser
2083
+ * @see onUploadFile
2084
+ */
2085
+ chooseFiles(input: HTMLInputElement, callback: (files: File[]) => void, context?: {
2086
+ element: ISurveyElement;
2087
+ item?: any;
2088
+ }): void;
2072
2089
  /**
2073
2090
  * Uploads files to a server.
2074
2091
  *
@@ -1,6 +1,6 @@
1
1
  declare function compareVersions(a: any, b: any): number;
2
2
  declare function confirmAction(message: string): boolean;
3
- declare function confirmActionAsync(message: string, funcOnYes: () => void, funcOnNo?: () => void, locale?: string): void;
3
+ declare function confirmActionAsync(message: string, funcOnYes: () => void, funcOnNo?: () => void, locale?: string, rootElement?: HTMLElement): void;
4
4
  declare function detectIEBrowser(): boolean;
5
5
  declare function detectIEOrEdge(): boolean;
6
6
  declare function loadFileFromBase64(b64Data: string, fileName: string): void;
@@ -40,5 +40,6 @@ export declare class Logger {
40
40
  log(action: string): void;
41
41
  readonly result: string;
42
42
  }
43
- export declare function showConfirmDialog(message: string, callback: (res: boolean) => void, applyTitle?: string, locale?: string): boolean;
44
- export { mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, };
43
+ export declare function showConfirmDialog(message: string, callback: (res: boolean) => void, applyTitle?: string, locale?: string, rootElement?: HTMLElement): boolean;
44
+ declare function chooseFiles(input: HTMLInputElement, callback: (files: File[]) => void): void;
45
+ export { mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, chooseFiles };
@@ -157,6 +157,10 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
157
157
  elementContentVisibilityChanged(element: ISurveyElement): void;
158
158
  onCorrectQuestionAnswer(question: IQuestion, options: any): void;
159
159
  processPopupVisiblityChanged(question: IQuestion, popupModel: PopupModel, visible: boolean): void;
160
+ chooseFiles(input: HTMLInputElement, callback: (files: File[]) => void, context?: {
161
+ element: ISurveyElement;
162
+ item?: any;
163
+ }): void;
160
164
  }
161
165
  export interface ISurveyImpl {
162
166
  getSurveyData(): ISurveyData;
@@ -426,6 +426,7 @@ export declare var modernCss: {
426
426
  window: {
427
427
  root: string;
428
428
  rootCollapsedMod: string;
429
+ rootFullScreenMode: string;
429
430
  rootContent: string;
430
431
  body: string;
431
432
  header: {
@@ -437,6 +438,7 @@ export declare var modernCss: {
437
438
  buttonCollapsed: string;
438
439
  collapseButton: string;
439
440
  closeButton: string;
441
+ fullScreenButton: string;
440
442
  };
441
443
  };
442
444
  variables: {
@@ -360,6 +360,7 @@ export declare var defaultStandardCss: {
360
360
  window: {
361
361
  root: string;
362
362
  rootCollapsedMod: string;
363
+ rootFullScreenMode: string;
363
364
  rootContent: string;
364
365
  body: string;
365
366
  header: {
@@ -371,6 +372,7 @@ export declare var defaultStandardCss: {
371
372
  buttonCollapsed: string;
372
373
  collapseButton: string;
373
374
  closeButton: string;
375
+ fullScreenButton: string;
374
376
  };
375
377
  };
376
378
  variables: {
@@ -641,6 +641,7 @@ export declare var defaultV2Css: {
641
641
  window: {
642
642
  root: string;
643
643
  rootCollapsedMod: string;
644
+ rootFullScreenMode: string;
644
645
  rootContent: string;
645
646
  body: string;
646
647
  header: {
@@ -652,6 +653,7 @@ export declare var defaultV2Css: {
652
653
  buttonCollapsed: string;
653
654
  collapseButton: string;
654
655
  closeButton: string;
656
+ fullScreenButton: string;
655
657
  };
656
658
  };
657
659
  ranking: {
@@ -9,6 +9,7 @@ export declare class DropdownListModel extends Base {
9
9
  protected onSelectionChanged?: (item: IAction, ...params: any[]) => void;
10
10
  readonly minPageSize = 25;
11
11
  readonly loadingItemHeight = 40;
12
+ private htmlCleanerElement;
12
13
  private _markdownMode;
13
14
  private _popupModel;
14
15
  private filteredItems;
@@ -45,6 +46,7 @@ export declare class DropdownListModel extends Base {
45
46
  showInputFieldComponent: boolean;
46
47
  ariaActivedescendant: string;
47
48
  private applyInputString;
49
+ private cleanHtml;
48
50
  protected fixInputCase(): void;
49
51
  protected applyHintString(item: ItemValue): void;
50
52
  get inputStringRendered(): string;
@@ -88,7 +88,7 @@ export { DropdownListModel } from "../../dropdownListModel";
88
88
  export { DropdownMultiSelectListModel } from "../../dropdownMultiSelectListModel";
89
89
  export { QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue } from "../../question_buttongroup";
90
90
  export { IsMobile, IsTouch, _setIsTouch } from "../../utils/devices";
91
- export { confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, IAttachKey2clickOptions } from "../../utils/utils";
91
+ export { confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, IAttachKey2clickOptions } from "../../utils/utils";
92
92
  export * from "../../utils/cssClassBuilder";
93
93
  export { surveyCss, defaultV2Css, defaultV2ThemeName } from "../../defaultCss/defaultV2Css";
94
94
  export { DragDropCore } from "../../dragdrop/core";
@@ -29,6 +29,7 @@ export declare class Cover extends Base {
29
29
  private updateContentClasses;
30
30
  private updateBackgroundImageClasses;
31
31
  fromTheme(theme: ITheme): void;
32
+ private init;
32
33
  constructor();
33
34
  getType(): string;
34
35
  cells: CoverCell[];
@@ -39,6 +40,8 @@ export declare class Cover extends Base {
39
40
  textGlowEnabled: boolean;
40
41
  overlapEnabled: boolean;
41
42
  backgroundColor: string;
43
+ titleColor: string;
44
+ descriptionColor: string;
42
45
  backgroundImage: string;
43
46
  renderBackgroundImage: string;
44
47
  backgroundImageFit: "cover" | "fill" | "contain" | "tile";
@@ -77,6 +77,7 @@ export declare class JsonObjectProperty implements IObject {
77
77
  onSettingValue: (obj: any, value: any) => any;
78
78
  onSetValue: (obj: any, value: any, jsonConv: JsonObject) => any;
79
79
  visibleIf: (obj: any) => boolean;
80
+ enableIf: (obj: any) => boolean;
80
81
  onExecuteExpression: (obj: any, res: any) => any;
81
82
  onPropertyEditorUpdate: (obj: any, propEditor: any) => any;
82
83
  constructor(classInfo: JsonMetadataClass, name: string, isRequired?: boolean);
@@ -116,7 +117,9 @@ export declare class JsonObjectProperty implements IObject {
116
117
  setBaseValue(val: any): void;
117
118
  get readOnly(): boolean;
118
119
  set readOnly(val: boolean);
120
+ isEnable(obj: any): boolean;
119
121
  isVisible(layout: string, obj?: any): boolean;
122
+ private getOriginalObj;
120
123
  get visible(): boolean;
121
124
  set visible(val: boolean);
122
125
  isAvailableInVersion(ver: string): boolean;
@@ -34,6 +34,8 @@ export declare class PopupSurveyModel extends Base {
34
34
  */
35
35
  get isShowing(): boolean;
36
36
  set isShowing(val: boolean);
37
+ get isFullScreen(): boolean;
38
+ set isFullScreen(val: boolean);
37
39
  /**
38
40
  * Shows the pop-up survey. The survey may appear [expanded or collapsed](#isExpanded).
39
41
  *
@@ -50,6 +52,7 @@ export declare class PopupSurveyModel extends Base {
50
52
  * @see collapse
51
53
  */
52
54
  hide(): void;
55
+ toggleFullScreen(): void;
53
56
  /**
54
57
  * Indicates whether the pop-up window is expanded or collapsed.
55
58
  *
@@ -93,6 +96,14 @@ export declare class PopupSurveyModel extends Base {
93
96
  */
94
97
  get allowClose(): boolean;
95
98
  set allowClose(val: boolean);
99
+ /**
100
+ * Specifies whether to display a button that allow showing pop-up in full-screen mode.
101
+ *
102
+ * Default value: `false`
103
+ *
104
+ */
105
+ get allowFullScreen(): boolean;
106
+ set allowFullScreen(val: boolean);
96
107
  get css(): any;
97
108
  get cssButton(): string;
98
109
  get cssRoot(): string;
@@ -104,9 +115,11 @@ export declare class PopupSurveyModel extends Base {
104
115
  get cssHeaderButtonsContainer(): string;
105
116
  get cssHeaderCollapseButton(): string;
106
117
  get cssHeaderCloseButton(): string;
118
+ get cssHeaderFullScreenButton(): string;
107
119
  get renderedWidth(): string;
108
120
  width: string;
109
121
  private updateCss;
122
+ private setCssRoot;
110
123
  private updateCssButton;
111
124
  private setCssButton;
112
125
  protected createSurvey(jsonObj: any): SurveyModel;
@@ -332,6 +332,7 @@ export declare class QuestionCustomModel extends QuestionCustomModelBase {
332
332
  getDynamicType(): string;
333
333
  getOriginalObj(): Base;
334
334
  protected createWrapper(): void;
335
+ private getDynamicProperty;
335
336
  protected getElement(): SurveyElement;
336
337
  onAnyValueChanged(name: string, questionName: string): void;
337
338
  protected getQuestionByName(name: string): IQuestion;
@@ -390,6 +391,7 @@ export declare class QuestionCompositeModel extends QuestionCustomModelBase {
390
391
  protected getQuestionByName(name: string): IQuestion;
391
392
  private settingNewValue;
392
393
  setValue(name: string, newValue: any, locNotification: any, allowNotifyValueChanged?: boolean): any;
394
+ getFilteredValues(): any;
393
395
  private updateValueCoreWithPanelValue;
394
396
  private getContentPanelValue;
395
397
  private getValueForContentPanel;
@@ -148,6 +148,7 @@ export declare class QuestionFileModel extends QuestionFileModelBase {
148
148
  */
149
149
  get maxSize(): number;
150
150
  set maxSize(val: number);
151
+ chooseFile(): void;
151
152
  /**
152
153
  * Specifies whether users should confirm file deletion.
153
154
  *
@@ -47,6 +47,7 @@ export declare class MatrixDropdownCell {
47
47
  get question(): Question;
48
48
  get value(): any;
49
49
  set value(value: any);
50
+ getQuestionWrapperClassName(className: string): string;
50
51
  runCondition(values: HashTable<any>, properties: HashTable<any>): void;
51
52
  }
52
53
  export declare class MatrixDropdownTotalCell extends MatrixDropdownCell {
@@ -57,6 +58,7 @@ export declare class MatrixDropdownTotalCell extends MatrixDropdownCell {
57
58
  protected createQuestion(column: MatrixDropdownColumn, row: MatrixDropdownRowModelBase, data: IMatrixDropdownData): Question;
58
59
  locStrsChanged(): void;
59
60
  updateCellQuestion(): void;
61
+ getQuestionWrapperClassName(className: string): string;
60
62
  getTotalExpression(): string;
61
63
  }
62
64
  export declare class MatrixDropdownRowModelBase implements ISurveyData, ISurveyImpl, ILocalizableOwner {
@@ -275,6 +275,24 @@ export declare class MatrixDropdownColumn extends Base implements ILocalizableOw
275
275
  */
276
276
  get totalDisplayStyle(): string;
277
277
  set totalDisplayStyle(val: string);
278
+ /**
279
+ * An alignment for calculated total values.
280
+ *
281
+ * Possible values:
282
+ *
283
+ * - `"left"`
284
+ * - `"center"`
285
+ * - `"right"`
286
+ * - `"auto"` (default) - Applies one of the values above based on the column's [cell type](#cellType).
287
+ *
288
+ * [View Demo](https://surveyjs.io/form-library/examples/aggregate-data-within-form/ (linkStyle))
289
+ * @see totalType
290
+ * @see totalFormat
291
+ * @see totalCurrency
292
+ * @see totalDisplayStyle
293
+ */
294
+ get totalAlignment(): string;
295
+ set totalAlignment(val: string);
278
296
  /**
279
297
  * Specifies a currency used to display calculated total values. Applies only if [`totalDisplayStyle`](#totalDisplayStyle) is set to `"currency"`.
280
298
  * @see totalType
@@ -46,6 +46,7 @@ export declare class QuestionMatrixDropdownRenderedCell {
46
46
  get isFirstChoice(): boolean;
47
47
  set className(val: string);
48
48
  get className(): string;
49
+ get cellQuestionWrapperClassName(): string;
49
50
  get headers(): string;
50
51
  getTitle(): string;
51
52
  calculateFinalClassName(matrixCssClasses: any): string;
@@ -363,7 +363,7 @@ export declare var settings: {
363
363
  * @param message A message to be displayed in the confirm dialog window.
364
364
  * @param callback A callback function that should be called with `true` if a user confirms an action or `false` otherwise.
365
365
  */
366
- confirmActionAsync: (message: string, callback: (res: boolean) => void, applyTitle?: string, locale?: string) => boolean;
366
+ confirmActionAsync: (message: string, callback: (res: boolean) => void, applyTitle?: string, locale?: string, rootElement?: HTMLElement) => boolean;
367
367
  /**
368
368
  * A minimum width value for all survey elements.
369
369
  *
@@ -508,6 +508,25 @@ export interface UploadFilesEvent extends LoadFilesEvent {
508
508
  */
509
509
  files: Array<File>;
510
510
  }
511
+ export interface OpenFileChooserEvent {
512
+ /**
513
+ * A file input HTML element.
514
+ */
515
+ input: HTMLInputElement;
516
+ /**
517
+ * A question, panel, page, or survey for which this event is raised.
518
+ */
519
+ element: Base;
520
+ /**
521
+ * A choice item for which the event is raised. This parameter has a value only when the dialog window is opened to select images for an [Image Picker](https://surveyjs.io/form-library/documentation/api-reference/image-picker-question-model) question.
522
+ */
523
+ item: ItemValue;
524
+ /**
525
+ * A callback function to which you should pass selected files.
526
+ * @param files An array of selected files.
527
+ */
528
+ callback: (files: Array<File>) => void;
529
+ }
511
530
  export interface DownloadFileEvent extends LoadFilesEvent {
512
531
  /**
513
532
  * A callback function that you should call when a file is downloaded successfully or when deletion fails. Pass `"success"` or `"error"` as the first argument to indicate the operation status. As the second argument, you can pass the downloaded file's data as a Base64 string if file download was successful or an error message if file download failed.
@@ -18,7 +18,7 @@ import { IAction, Action } from "./actions/action";
18
18
  import { ActionContainer } from "./actions/container";
19
19
  import { QuestionPanelDynamicModel } from "./question_paneldynamic";
20
20
  import { Notifier } from "./notifier";
21
- import { TriggerExecutedEvent, CompletingEvent, CompleteEvent, ShowingPreviewEvent, NavigateToUrlEvent, CurrentPageChangingEvent, CurrentPageChangedEvent, ValueChangingEvent, ValueChangedEvent, VariableChangedEvent, QuestionVisibleChangedEvent, PageVisibleChangedEvent, PanelVisibleChangedEvent, QuestionCreatedEvent, QuestionAddedEvent, QuestionRemovedEvent, PanelAddedEvent, PanelRemovedEvent, PageAddedEvent, ValidateQuestionEvent, SettingQuestionErrorsEvent, ValidatePanelEvent, ErrorCustomTextEvent, ValidatedErrorsOnCurrentPageEvent, ProcessHtmlEvent, GetQuestionTitleEvent, GetTitleTagNameEvent, GetQuestionNoEvent, ProgressTextEvent, TextMarkdownEvent, TextRenderAsEvent, SendResultEvent, GetResultEvent, UploadFilesEvent, DownloadFileEvent, ClearFilesEvent, LoadChoicesFromServerEvent, ProcessTextValueEvent, UpdateQuestionCssClassesEvent, UpdatePanelCssClassesEvent, UpdatePageCssClassesEvent, UpdateChoiceItemCssEvent, AfterRenderSurveyEvent, AfterRenderHeaderEvent, AfterRenderPageEvent, AfterRenderQuestionEvent, AfterRenderQuestionInputEvent, AfterRenderPanelEvent, FocusInQuestionEvent, FocusInPanelEvent, ShowingChoiceItemEvent, ChoicesLazyLoadEvent, GetChoiceDisplayValueEvent, MatrixRowAddedEvent, MatrixBeforeRowAddedEvent, MatrixRowRemovingEvent, MatrixRowRemovedEvent, MatrixAllowRemoveRowEvent, MatrixCellCreatingEvent, MatrixCellCreatedEvent, MatrixAfterCellRenderEvent, MatrixCellValueChangedEvent, MatrixCellValueChangingEvent, MatrixCellValidateEvent, DynamicPanelModifiedEvent, DynamicPanelRemovingEvent, TimerPanelInfoTextEvent, DynamicPanelItemValueChangedEvent, DynamicPanelGetTabTitleEvent, DynamicPanelCurrentIndexChangedEvent, IsAnswerCorrectEvent, DragDropAllowEvent, ScrollingElementToTopEvent, GetQuestionTitleActionsEvent, GetPanelTitleActionsEvent, GetPageTitleActionsEvent, GetPanelFooterActionsEvent, GetMatrixRowActionsEvent, ElementContentVisibilityChangedEvent, GetExpressionDisplayValueEvent, ServerValidateQuestionsEvent, MultipleTextItemAddedEvent, MatrixColumnAddedEvent, GetQuestionDisplayValueEvent, PopupVisibleChangedEvent, ChoicesSearchEvent } from "./survey-events-api";
21
+ import { TriggerExecutedEvent, CompletingEvent, CompleteEvent, ShowingPreviewEvent, NavigateToUrlEvent, CurrentPageChangingEvent, CurrentPageChangedEvent, ValueChangingEvent, ValueChangedEvent, VariableChangedEvent, QuestionVisibleChangedEvent, PageVisibleChangedEvent, PanelVisibleChangedEvent, QuestionCreatedEvent, QuestionAddedEvent, QuestionRemovedEvent, PanelAddedEvent, PanelRemovedEvent, PageAddedEvent, ValidateQuestionEvent, SettingQuestionErrorsEvent, ValidatePanelEvent, ErrorCustomTextEvent, ValidatedErrorsOnCurrentPageEvent, ProcessHtmlEvent, GetQuestionTitleEvent, GetTitleTagNameEvent, GetQuestionNoEvent, ProgressTextEvent, TextMarkdownEvent, TextRenderAsEvent, SendResultEvent, GetResultEvent, UploadFilesEvent, DownloadFileEvent, ClearFilesEvent, LoadChoicesFromServerEvent, ProcessTextValueEvent, UpdateQuestionCssClassesEvent, UpdatePanelCssClassesEvent, UpdatePageCssClassesEvent, UpdateChoiceItemCssEvent, AfterRenderSurveyEvent, AfterRenderHeaderEvent, AfterRenderPageEvent, AfterRenderQuestionEvent, AfterRenderQuestionInputEvent, AfterRenderPanelEvent, FocusInQuestionEvent, FocusInPanelEvent, ShowingChoiceItemEvent, ChoicesLazyLoadEvent, GetChoiceDisplayValueEvent, MatrixRowAddedEvent, MatrixBeforeRowAddedEvent, MatrixRowRemovingEvent, MatrixRowRemovedEvent, MatrixAllowRemoveRowEvent, MatrixCellCreatingEvent, MatrixCellCreatedEvent, MatrixAfterCellRenderEvent, MatrixCellValueChangedEvent, MatrixCellValueChangingEvent, MatrixCellValidateEvent, DynamicPanelModifiedEvent, DynamicPanelRemovingEvent, TimerPanelInfoTextEvent, DynamicPanelItemValueChangedEvent, DynamicPanelGetTabTitleEvent, DynamicPanelCurrentIndexChangedEvent, IsAnswerCorrectEvent, DragDropAllowEvent, ScrollingElementToTopEvent, GetQuestionTitleActionsEvent, GetPanelTitleActionsEvent, GetPageTitleActionsEvent, GetPanelFooterActionsEvent, GetMatrixRowActionsEvent, ElementContentVisibilityChangedEvent, GetExpressionDisplayValueEvent, ServerValidateQuestionsEvent, MultipleTextItemAddedEvent, MatrixColumnAddedEvent, GetQuestionDisplayValueEvent, PopupVisibleChangedEvent, ChoicesSearchEvent, OpenFileChooserEvent } from "./survey-events-api";
22
22
  import { QuestionMatrixDropdownModelBase } from "./question_matrixdropdownbase";
23
23
  import { QuestionMatrixDynamicModel } from "./question_matrixdynamic";
24
24
  import { QuestionFileModel } from "./question_file";
@@ -361,6 +361,12 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
361
361
  * @see getResult
362
362
  */
363
363
  onGetResult: EventBase<SurveyModel, GetResultEvent>;
364
+ /**
365
+ * An event that is raised when Survey Creator opens a dialog window for users to select files.
366
+ * @see onUploadFile
367
+ * @see uploadFiles
368
+ */
369
+ onOpenFileChooser: EventBase<SurveyModel, OpenFileChooserEvent>;
364
370
  /**
365
371
  * An event that is raised when a File Upload or Signature Pad question starts to upload a file. Applies only if [`storeDataAsText`](https://surveyjs.io/form-library/documentation/api-reference/file-model#storeDataAsText) is `false`. Use this event to upload files to your server.
366
372
  *
@@ -2154,6 +2160,17 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2154
2160
  private getUpdatedPageTitleActions;
2155
2161
  getUpdatedMatrixRowActions(question: QuestionMatrixDropdownModelBase, row: any, actions: Array<IAction>): IAction[];
2156
2162
  scrollElementToTop(element: ISurveyElement, question: Question, page: PageModel, id: string, scrollIfVisible?: boolean): any;
2163
+ /**
2164
+ * Opens a dialog window for users to select files.
2165
+ * @param input A [file input HTML element](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement).
2166
+ * @param callback A callback function that you can use to process selected files. Accepts an array of JavaScript <a href="https://developer.mozilla.org/en-US/docs/Web/API/File" target="_blank">File</a> objects.
2167
+ * @see onOpenFileChooser
2168
+ * @see onUploadFile
2169
+ */
2170
+ chooseFiles(input: HTMLInputElement, callback: (files: File[]) => void, context?: {
2171
+ element: ISurveyElement;
2172
+ item?: any;
2173
+ }): void;
2157
2174
  /**
2158
2175
  * Uploads files to a server.
2159
2176
  *
@@ -1,6 +1,6 @@
1
1
  declare function compareVersions(a: any, b: any): number;
2
2
  declare function confirmAction(message: string): boolean;
3
- declare function confirmActionAsync(message: string, funcOnYes: () => void, funcOnNo?: () => void, locale?: string): void;
3
+ declare function confirmActionAsync(message: string, funcOnYes: () => void, funcOnNo?: () => void, locale?: string, rootElement?: HTMLElement): void;
4
4
  declare function detectIEBrowser(): boolean;
5
5
  declare function detectIEOrEdge(): boolean;
6
6
  declare function loadFileFromBase64(b64Data: string, fileName: string): void;
@@ -40,5 +40,6 @@ export declare class Logger {
40
40
  log(action: string): void;
41
41
  get result(): string;
42
42
  }
43
- export declare function showConfirmDialog(message: string, callback: (res: boolean) => void, applyTitle?: string, locale?: string): boolean;
44
- export { mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, };
43
+ export declare function showConfirmDialog(message: string, callback: (res: boolean) => void, applyTitle?: string, locale?: string, rootElement?: HTMLElement): boolean;
44
+ declare function chooseFiles(input: HTMLInputElement, callback: (files: File[]) => void): void;
45
+ export { mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, chooseFiles };