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
package/survey.core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.128
2
+ * surveyjs - Survey JavaScript library v1.9.129
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -2297,18 +2297,23 @@ var Base = /** @class */ (function () {
2297
2297
  configurable: true
2298
2298
  });
2299
2299
  Base.prototype.doPropertyValueChangedCallback = function (name, oldValue, newValue, arrayChanges, target) {
2300
- if (this.isInternal)
2300
+ var fireCallback = function (obj) {
2301
+ if (!!obj && !!obj.onPropertyValueChangedCallback) {
2302
+ obj.onPropertyValueChangedCallback(name, oldValue, newValue, target, arrayChanges);
2303
+ }
2304
+ };
2305
+ if (this.isInternal) {
2306
+ fireCallback(this);
2301
2307
  return;
2308
+ }
2302
2309
  if (!target)
2303
2310
  target = this;
2304
2311
  var notifier = this.getSurvey();
2305
2312
  if (!notifier)
2306
2313
  notifier = this;
2307
- if (!!notifier.onPropertyValueChangedCallback) {
2308
- notifier.onPropertyValueChangedCallback(name, oldValue, newValue, target, arrayChanges);
2309
- }
2310
- if (notifier !== this && !!this.onPropertyValueChangedCallback) {
2311
- this.onPropertyValueChangedCallback(name, oldValue, newValue, target, arrayChanges);
2314
+ fireCallback(notifier);
2315
+ if (notifier !== this) {
2316
+ fireCallback(this);
2312
2317
  }
2313
2318
  };
2314
2319
  Base.prototype.addExpressionProperty = function (name, onExecute, canRun) {
@@ -4778,7 +4783,7 @@ var modernCss = {
4778
4783
  cellText: "sv-matrix__text",
4779
4784
  cellTextSelected: "sv-matrix__text--checked",
4780
4785
  cellTextDisabled: "sv-matrix__text--disabled",
4781
- cellResponsiveTitle: "sv-hidden",
4786
+ cellResponsiveTitle: "sv-matrix__cell-responsive-title",
4782
4787
  itemSvgIconId: "#icon-modernradio",
4783
4788
  },
4784
4789
  matrixdropdown: {
@@ -4890,6 +4895,7 @@ var modernCss = {
4890
4895
  window: {
4891
4896
  root: "sv_window",
4892
4897
  rootCollapsedMod: "sv_window--collapsed",
4898
+ rootFullScreenMode: "sv_window--full-screen",
4893
4899
  rootContent: "sv_window_root-content",
4894
4900
  body: "sv_window_content",
4895
4901
  header: {
@@ -4900,7 +4906,8 @@ var modernCss = {
4900
4906
  buttonExpanded: "",
4901
4907
  buttonCollapsed: "",
4902
4908
  collapseButton: "sv_window_button sv_window_button_collapse",
4903
- closeButton: "sv_window_button sv_window_button_close"
4909
+ closeButton: "sv_window_button sv_window_button_close",
4910
+ fullScreenButton: "sv_window_button sv_window_button_full_screen"
4904
4911
  }
4905
4912
  },
4906
4913
  variables: {
@@ -5122,7 +5129,7 @@ var defaultStandardCss = {
5122
5129
  cellText: "sv_q_m_cell_text",
5123
5130
  cellTextSelected: "sv_q_m_cell_selected",
5124
5131
  cellLabel: "sv_q_m_cell_label",
5125
- cellResponsiveTitle: "sv-hidden"
5132
+ cellResponsiveTitle: "sv_q_m_cell_responsive_title"
5126
5133
  },
5127
5134
  matrixdropdown: {
5128
5135
  root: "sv_q_matrix_dropdown",
@@ -5288,6 +5295,7 @@ var defaultStandardCss = {
5288
5295
  window: {
5289
5296
  root: "sv_window",
5290
5297
  rootCollapsedMod: "sv_window--collapsed",
5298
+ rootFullScreenMode: "sv_window--full-screen",
5291
5299
  rootContent: "sv_window_root-content",
5292
5300
  body: "sv_window_content",
5293
5301
  header: {
@@ -5298,7 +5306,8 @@ var defaultStandardCss = {
5298
5306
  buttonExpanded: "",
5299
5307
  buttonCollapsed: "",
5300
5308
  collapseButton: "sv_window_button sv_window_button_collapse",
5301
- closeButton: "sv_window_button sv_window_button_close"
5309
+ closeButton: "sv_window_button sv_window_button_close",
5310
+ fullScreenButton: "sv_window_button sv_window_button_full_screen"
5302
5311
  }
5303
5312
  },
5304
5313
  variables: {
@@ -6010,6 +6019,7 @@ var defaultV2Css = {
6010
6019
  window: {
6011
6020
  root: "sv_window",
6012
6021
  rootCollapsedMod: "sv_window--collapsed",
6022
+ rootFullScreenMode: "sv_window--full-screen",
6013
6023
  rootContent: "sv_window_root-content",
6014
6024
  body: "sv_window_content",
6015
6025
  header: {
@@ -6020,7 +6030,8 @@ var defaultV2Css = {
6020
6030
  buttonExpanded: "",
6021
6031
  buttonCollapsed: "",
6022
6032
  collapseButton: "sv_window_button sv_window_button_collapse",
6023
- closeButton: "sv_window_button sv_window_button_close"
6033
+ closeButton: "sv_window_button sv_window_button_close",
6034
+ fullScreenButton: "sv_window_button sv_window_button_full_screen"
6024
6035
  }
6025
6036
  },
6026
6037
  ranking: {
@@ -7872,6 +7883,7 @@ var DropdownListModel = /** @class */ (function (_super) {
7872
7883
  _this.qustionPropertyChangedHandler = function (sender, options) {
7873
7884
  _this.onPropertyChangedHandler(sender, options);
7874
7885
  };
7886
+ _this.htmlCleanerElement = document.createElement("div");
7875
7887
  question.onPropertyChanged.add(_this.qustionPropertyChangedHandler);
7876
7888
  _this.showInputFieldComponent = _this.question.showInputFieldComponent;
7877
7889
  _this.listModel = _this.createListModel();
@@ -8007,7 +8019,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8007
8019
  _this.question.value = item.id;
8008
8020
  if (_this.question.searchEnabled)
8009
8021
  _this.applyInputString(item);
8010
- _this._popupModel.toggleVisibility();
8022
+ _this.popupModel.isVisible = false;
8011
8023
  };
8012
8024
  }
8013
8025
  var res = new _list__WEBPACK_IMPORTED_MODULE_3__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
@@ -8092,7 +8104,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8092
8104
  var hasHtml = item === null || item === void 0 ? void 0 : item.locText.hasHtml;
8093
8105
  if (hasHtml || this.question.inputFieldComponentName) {
8094
8106
  this._markdownMode = true;
8095
- this.inputString = "";
8107
+ this.inputString = this.cleanHtml(item === null || item === void 0 ? void 0 : item.locText.getHtmlValue());
8096
8108
  this.hintString = "";
8097
8109
  }
8098
8110
  else {
@@ -8100,6 +8112,10 @@ var DropdownListModel = /** @class */ (function (_super) {
8100
8112
  this.hintString = item === null || item === void 0 ? void 0 : item.title;
8101
8113
  }
8102
8114
  };
8115
+ DropdownListModel.prototype.cleanHtml = function (html) {
8116
+ this.htmlCleanerElement.innerHTML = html;
8117
+ return this.htmlCleanerElement.textContent;
8118
+ };
8103
8119
  DropdownListModel.prototype.fixInputCase = function () {
8104
8120
  var hintStringMiddle = this.hintStringMiddle;
8105
8121
  if (hintStringMiddle && this.inputString != hintStringMiddle)
@@ -8919,7 +8935,7 @@ var ElementHelper = /** @class */ (function () {
8919
8935
  /*!*************************************!*\
8920
8936
  !*** ./src/entries/chunks/model.ts ***!
8921
8937
  \*************************************/
8922
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
8938
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
8923
8939
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8924
8940
 
8925
8941
  "use strict";
@@ -9370,6 +9386,8 @@ __webpack_require__.r(__webpack_exports__);
9370
9386
 
9371
9387
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_83__["createSvg"]; });
9372
9388
 
9389
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_83__["chooseFiles"]; });
9390
+
9373
9391
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_83__["sanitizeEditableContent"]; });
9374
9392
 
9375
9393
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../../utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
@@ -9396,8 +9414,8 @@ __webpack_require__.r(__webpack_exports__);
9396
9414
  //import "../../modern.scss";
9397
9415
  var Version;
9398
9416
  var ReleaseDate;
9399
- Version = "" + "1.9.128";
9400
- ReleaseDate = "" + "2024-01-30";
9417
+ Version = "" + "1.9.129";
9418
+ ReleaseDate = "" + "2024-02-06";
9401
9419
  function checkLibraryVersion(ver, libraryName) {
9402
9420
  if (Version != ver) {
9403
9421
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9572,7 +9590,7 @@ function checkPrefix(prefix) {
9572
9590
  /*!**************************************!*\
9573
9591
  !*** ./src/entries/core-wo-model.ts ***!
9574
9592
  \**************************************/
9575
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper */
9593
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper */
9576
9594
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9577
9595
 
9578
9596
  "use strict";
@@ -9946,6 +9964,8 @@ __webpack_require__.r(__webpack_exports__);
9946
9964
 
9947
9965
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["createSvg"]; });
9948
9966
 
9967
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["chooseFiles"]; });
9968
+
9949
9969
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["sanitizeEditableContent"]; });
9950
9970
 
9951
9971
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]; });
@@ -10037,7 +10057,7 @@ __webpack_require__.r(__webpack_exports__);
10037
10057
  /*!*****************************!*\
10038
10058
  !*** ./src/entries/core.ts ***!
10039
10059
  \*****************************/
10040
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model */
10060
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model */
10041
10061
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10042
10062
 
10043
10063
  "use strict";
@@ -10411,6 +10431,8 @@ __webpack_require__.r(__webpack_exports__);
10411
10431
 
10412
10432
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["createSvg"]; });
10413
10433
 
10434
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["chooseFiles"]; });
10435
+
10414
10436
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["sanitizeEditableContent"]; });
10415
10437
 
10416
10438
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]; });
@@ -15310,6 +15332,21 @@ function propertyValue(params) {
15310
15332
  return q ? q[params[1]] : undefined;
15311
15333
  }
15312
15334
  FunctionFactory.Instance.register("propertyValue", propertyValue);
15335
+ function substring_(params) {
15336
+ if (params.length < 2)
15337
+ return "";
15338
+ var s = params[0];
15339
+ if (!s || typeof s !== "string")
15340
+ return "";
15341
+ var start = params[1];
15342
+ if (!_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isNumber(start))
15343
+ return "";
15344
+ var end = params.length > 2 ? params[2] : undefined;
15345
+ if (!_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isNumber(end))
15346
+ return s.substring(start);
15347
+ return s.substring(start, end);
15348
+ }
15349
+ FunctionFactory.Instance.register("substring", substring_);
15313
15350
 
15314
15351
 
15315
15352
  /***/ }),
@@ -15451,13 +15488,10 @@ var Cover = /** @class */ (function (_super) {
15451
15488
  function Cover() {
15452
15489
  var _this = _super.call(this) || this;
15453
15490
  _this.cells = [];
15454
- _this.renderBackgroundImage = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_3__["wrapUrlForBackgroundImage"])(_this.backgroundImage);
15455
15491
  ["top", "middle", "bottom"].forEach(function (positionY) {
15456
15492
  return ["left", "center", "right"].forEach(function (positionX) { return _this.cells.push(new CoverCell(_this, positionX, positionY)); });
15457
15493
  });
15458
- _this.updateHeaderClasses();
15459
- _this.updateContentClasses();
15460
- _this.updateBackgroundImageClasses();
15494
+ _this.init();
15461
15495
  return _this;
15462
15496
  }
15463
15497
  Cover.prototype.calcBackgroundSize = function (backgroundImageFit) {
@@ -15473,6 +15507,9 @@ var Cover = /** @class */ (function (_super) {
15473
15507
  this.headerClasses = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_2__["CssClassBuilder"]()
15474
15508
  .append("sv-header")
15475
15509
  .append("sv-header__without-background", (this.backgroundColor === "transparent") && !this.backgroundImage)
15510
+ .append("sv-header__background-color--none", this.backgroundColor === "transparent" && !this.titleColor && !this.descriptionColor)
15511
+ .append("sv-header__background-color--accent", !this.backgroundColor && !this.titleColor && !this.descriptionColor)
15512
+ .append("sv-header__background-color--custom", !!this.backgroundColor && this.backgroundColor !== "transparent" && !this.titleColor && !this.descriptionColor)
15476
15513
  .append("sv-header__overlap", this.overlapEnabled)
15477
15514
  .toString();
15478
15515
  };
@@ -15496,7 +15533,16 @@ var Cover = /** @class */ (function (_super) {
15496
15533
  _super.prototype.fromJSON.call(this, theme.header);
15497
15534
  if (!!theme.cssVariables) {
15498
15535
  this.backgroundColor = theme.cssVariables["--sjs-header-backcolor"];
15536
+ this.titleColor = theme.cssVariables["--sjs-font-headertitle-color"];
15537
+ this.descriptionColor = theme.cssVariables["--sjs-font-headerdescription-color"];
15499
15538
  }
15539
+ this.init();
15540
+ };
15541
+ Cover.prototype.init = function () {
15542
+ this.renderBackgroundImage = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_3__["wrapUrlForBackgroundImage"])(this.backgroundImage);
15543
+ this.updateHeaderClasses();
15544
+ this.updateContentClasses();
15545
+ this.updateBackgroundImageClasses();
15500
15546
  };
15501
15547
  Cover.prototype.getType = function () {
15502
15548
  return "cover";
@@ -15619,6 +15665,12 @@ var Cover = /** @class */ (function (_super) {
15619
15665
  __decorate([
15620
15666
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
15621
15667
  ], Cover.prototype, "backgroundColor", void 0);
15668
+ __decorate([
15669
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
15670
+ ], Cover.prototype, "titleColor", void 0);
15671
+ __decorate([
15672
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
15673
+ ], Cover.prototype, "descriptionColor", void 0);
15622
15674
  __decorate([
15623
15675
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
15624
15676
  onSet: function (newVal, target) {
@@ -16207,12 +16259,14 @@ var map = {
16207
16259
  "./V2Check.svg": "./src/images/V2Check.svg",
16208
16260
  "./V2Check_24x24.svg": "./src/images/V2Check_24x24.svg",
16209
16261
  "./V2DragElement_16x16.svg": "./src/images/V2DragElement_16x16.svg",
16262
+ "./back-to-panel_16x16.svg": "./src/images/back-to-panel_16x16.svg",
16210
16263
  "./chevron.svg": "./src/images/chevron.svg",
16211
16264
  "./clear_16x16.svg": "./src/images/clear_16x16.svg",
16212
16265
  "./close_16x16.svg": "./src/images/close_16x16.svg",
16213
16266
  "./collapseDetail.svg": "./src/images/collapseDetail.svg",
16214
16267
  "./drag-n-drop.svg": "./src/images/drag-n-drop.svg",
16215
16268
  "./expandDetail.svg": "./src/images/expandDetail.svg",
16269
+ "./full-screen_16x16.svg": "./src/images/full-screen_16x16.svg",
16216
16270
  "./loading.svg": "./src/images/loading.svg",
16217
16271
  "./minimize_16x16.svg": "./src/images/minimize_16x16.svg",
16218
16272
  "./no-image.svg": "./src/images/no-image.svg",
@@ -16589,6 +16643,17 @@ module.exports = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\
16589
16643
 
16590
16644
  /***/ }),
16591
16645
 
16646
+ /***/ "./src/images/back-to-panel_16x16.svg":
16647
+ /*!********************************************!*\
16648
+ !*** ./src/images/back-to-panel_16x16.svg ***!
16649
+ \********************************************/
16650
+ /*! no static exports found */
16651
+ /***/ (function(module, exports) {
16652
+
16653
+ module.exports = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15.0001 6C15.0001 6.55 14.5501 7 14.0001 7H10.0001C9.45006 7 9.00006 6.55 9.00006 6V2C9.00006 1.45 9.45006 1 10.0001 1C10.5501 1 11.0001 1.45 11.0001 2V3.59L13.2901 1.29C13.4901 1.09 13.7401 1 14.0001 1C14.2601 1 14.5101 1.1 14.7101 1.29C15.1001 1.68 15.1001 2.31 14.7101 2.7L12.4201 4.99H14.0101C14.5601 4.99 15.0101 5.44 15.0101 5.99L15.0001 6ZM6.00006 9H2.00006C1.45006 9 1.00006 9.45 1.00006 10C1.00006 10.55 1.45006 11 2.00006 11H3.59006L1.29006 13.29C0.900059 13.68 0.900059 14.31 1.29006 14.7C1.68006 15.09 2.31006 15.09 2.70006 14.7L4.99006 12.41V14C4.99006 14.55 5.44006 15 5.99006 15C6.54006 15 6.99006 14.55 6.99006 14V10C6.99006 9.45 6.54006 9 5.99006 9H6.00006Z\"></path></svg>"
16654
+
16655
+ /***/ }),
16656
+
16592
16657
  /***/ "./src/images/chevron.svg":
16593
16658
  /*!********************************!*\
16594
16659
  !*** ./src/images/chevron.svg ***!
@@ -16655,6 +16720,17 @@ module.exports = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\
16655
16720
 
16656
16721
  /***/ }),
16657
16722
 
16723
+ /***/ "./src/images/full-screen_16x16.svg":
16724
+ /*!******************************************!*\
16725
+ !*** ./src/images/full-screen_16x16.svg ***!
16726
+ \******************************************/
16727
+ /*! no static exports found */
16728
+ /***/ (function(module, exports) {
16729
+
16730
+ module.exports = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6.71 10.71L4.42 13H6.01C6.56 13 7.01 13.45 7.01 14C7.01 14.55 6.56 15 6.01 15H2C1.45 15 1 14.55 1 14V10C1 9.45 1.45 9 2 9C2.55 9 3 9.45 3 10V11.59L5.29 9.3C5.68 8.91 6.31 8.91 6.7 9.3C7.09 9.69 7.09 10.32 6.7 10.71H6.71ZM14 1H10C9.45 1 9 1.45 9 2C9 2.55 9.45 3 10 3H11.59L9.3 5.29C8.91 5.68 8.91 6.31 9.3 6.7C9.5 6.9 9.75 6.99 10.01 6.99C10.27 6.99 10.52 6.89 10.72 6.7L13.01 4.41V6C13.01 6.55 13.46 7 14.01 7C14.56 7 15.01 6.55 15.01 6V2C15.01 1.45 14.56 1 14.01 1H14Z\"></path></svg>"
16731
+
16732
+ /***/ }),
16733
+
16658
16734
  /***/ "./src/images/loading.svg":
16659
16735
  /*!********************************!*\
16660
16736
  !*** ./src/images/loading.svg ***!
@@ -17908,22 +17984,32 @@ var JsonObjectProperty = /** @class */ (function () {
17908
17984
  enumerable: false,
17909
17985
  configurable: true
17910
17986
  });
17987
+ JsonObjectProperty.prototype.isEnable = function (obj) {
17988
+ if (this.readOnly)
17989
+ return false;
17990
+ if (!obj || !this.enableIf)
17991
+ return true;
17992
+ return this.enableIf(this.getOriginalObj(obj));
17993
+ };
17911
17994
  JsonObjectProperty.prototype.isVisible = function (layout, obj) {
17912
17995
  if (obj === void 0) { obj = null; }
17913
17996
  var isLayout = !this.layout || this.layout == layout;
17914
17997
  if (!this.visible || !isLayout)
17915
17998
  return false;
17916
17999
  if (!!this.visibleIf && !!obj) {
17917
- if (obj.getOriginalObj) {
17918
- var orjObj = obj.getOriginalObj();
17919
- if (orjObj && Serializer.findProperty(orjObj.getType(), this.name)) {
17920
- obj = orjObj;
17921
- }
17922
- }
17923
- return this.visibleIf(obj);
18000
+ return this.visibleIf(this.getOriginalObj(obj));
17924
18001
  }
17925
18002
  return true;
17926
18003
  };
18004
+ JsonObjectProperty.prototype.getOriginalObj = function (obj) {
18005
+ if (obj && obj.getOriginalObj) {
18006
+ var orjObj = obj.getOriginalObj();
18007
+ if (orjObj && Serializer.findProperty(orjObj.getType(), this.name)) {
18008
+ return orjObj;
18009
+ }
18010
+ }
18011
+ return obj;
18012
+ };
17927
18013
  Object.defineProperty(JsonObjectProperty.prototype, "visible", {
17928
18014
  get: function () {
17929
18015
  return this.visibleValue != null ? this.visibleValue : true;
@@ -18047,6 +18133,7 @@ var JsonObjectProperty = /** @class */ (function () {
18047
18133
  "showMode",
18048
18134
  "dependedProperties",
18049
18135
  "visibleIf",
18136
+ "enableIf",
18050
18137
  "onExecuteExpression",
18051
18138
  "onPropertyEditorUpdate",
18052
18139
  "maxLength",
@@ -18365,7 +18452,7 @@ var JsonMetadataClass = /** @class */ (function () {
18365
18452
  if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(propInfo.maxLength)) {
18366
18453
  prop.maxLength = propInfo.maxLength;
18367
18454
  }
18368
- if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(propInfo.displayName)) {
18455
+ if (propInfo.displayName !== undefined) {
18369
18456
  prop.displayName = propInfo.displayName;
18370
18457
  }
18371
18458
  if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(propInfo.category)) {
@@ -18416,6 +18503,9 @@ var JsonMetadataClass = /** @class */ (function () {
18416
18503
  if (!!propInfo.visibleIf) {
18417
18504
  prop.visibleIf = propInfo.visibleIf;
18418
18505
  }
18506
+ if (!!propInfo.enableIf) {
18507
+ prop.enableIf = propInfo.enableIf;
18508
+ }
18419
18509
  if (!!propInfo.onExecuteExpression) {
18420
18510
  prop.onExecuteExpression = propInfo.onExecuteExpression;
18421
18511
  }
@@ -19342,9 +19432,7 @@ var JsonObject = /** @class */ (function () {
19342
19432
  JsonObject.prototype.removePosOnValueToJson = function (property, value) {
19343
19433
  if (!property.isCustom || !value)
19344
19434
  return value;
19345
- if (!!value[JsonObject.positionPropertyName]) {
19346
- delete value[JsonObject.positionPropertyName];
19347
- }
19435
+ this.removePosFromObj(value);
19348
19436
  return value;
19349
19437
  };
19350
19438
  JsonObject.prototype.removePos = function (property, value) {
@@ -19360,9 +19448,14 @@ var JsonObject = /** @class */ (function () {
19360
19448
  this.removePosFromObj(obj[i]);
19361
19449
  }
19362
19450
  }
19451
+ if (typeof obj !== "object")
19452
+ return;
19363
19453
  if (!!obj[JsonObject.positionPropertyName]) {
19364
19454
  delete obj[JsonObject.positionPropertyName];
19365
19455
  }
19456
+ for (var key in obj) {
19457
+ this.removePosFromObj(obj[key]);
19458
+ }
19366
19459
  };
19367
19460
  JsonObject.prototype.isValueArray = function (value) {
19368
19461
  return value && Array.isArray(value);
@@ -24337,7 +24430,7 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24337
24430
  else {
24338
24431
  _this.surveyValue = _this.createSurvey(jsonObj);
24339
24432
  }
24340
- //this.surveyValue.showTitle = false;
24433
+ _this.surveyValue.fitToContainer = true;
24341
24434
  if ("undefined" !== typeof document) {
24342
24435
  _this.windowElement = document.createElement("div");
24343
24436
  }
@@ -24386,6 +24479,20 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24386
24479
  enumerable: false,
24387
24480
  configurable: true
24388
24481
  });
24482
+ Object.defineProperty(PopupSurveyModel.prototype, "isFullScreen", {
24483
+ get: function () {
24484
+ return this.getPropertyValue("isFullScreen", false);
24485
+ },
24486
+ set: function (val) {
24487
+ if (!this.isExpanded && !!val) {
24488
+ this.isExpanded = true;
24489
+ }
24490
+ this.setPropertyValue("isFullScreen", val);
24491
+ this.setCssRoot();
24492
+ },
24493
+ enumerable: false,
24494
+ configurable: true
24495
+ });
24389
24496
  /**
24390
24497
  * Shows the pop-up survey. The survey may appear [expanded or collapsed](#isExpanded).
24391
24498
  *
@@ -24406,6 +24513,9 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24406
24513
  PopupSurveyModel.prototype.hide = function () {
24407
24514
  this.isShowing = false;
24408
24515
  };
24516
+ PopupSurveyModel.prototype.toggleFullScreen = function () {
24517
+ this.isFullScreen = !this.isFullScreen;
24518
+ };
24409
24519
  Object.defineProperty(PopupSurveyModel.prototype, "isExpanded", {
24410
24520
  /**
24411
24521
  * Indicates whether the pop-up window is expanded or collapsed.
@@ -24416,6 +24526,9 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24416
24526
  return this.getPropertyValue("isExpanded", false);
24417
24527
  },
24418
24528
  set: function (val) {
24529
+ if (!!this.isFullScreen && !val) {
24530
+ this.isFullScreen = false;
24531
+ }
24419
24532
  this.setPropertyValue("isExpanded", val);
24420
24533
  },
24421
24534
  enumerable: false,
@@ -24506,6 +24619,22 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24506
24619
  enumerable: false,
24507
24620
  configurable: true
24508
24621
  });
24622
+ Object.defineProperty(PopupSurveyModel.prototype, "allowFullScreen", {
24623
+ /**
24624
+ * Specifies whether to display a button that allow showing pop-up in full-screen mode.
24625
+ *
24626
+ * Default value: `false`
24627
+ *
24628
+ */
24629
+ get: function () {
24630
+ return this.getPropertyValue("allowFullScreen", false);
24631
+ },
24632
+ set: function (val) {
24633
+ this.setPropertyValue("allowFullScreen", val);
24634
+ },
24635
+ enumerable: false,
24636
+ configurable: true
24637
+ });
24509
24638
  Object.defineProperty(PopupSurveyModel.prototype, "css", {
24510
24639
  get: function () {
24511
24640
  return this.survey.css;
@@ -24586,6 +24715,13 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24586
24715
  enumerable: false,
24587
24716
  configurable: true
24588
24717
  });
24718
+ Object.defineProperty(PopupSurveyModel.prototype, "cssHeaderFullScreenButton", {
24719
+ get: function () {
24720
+ return this.getPropertyValue("cssHeaderFullScreenButton", "");
24721
+ },
24722
+ enumerable: false,
24723
+ configurable: true
24724
+ });
24589
24725
  Object.defineProperty(PopupSurveyModel.prototype, "renderedWidth", {
24590
24726
  get: function () {
24591
24727
  var width = this.getPropertyValue("width", "60%");
@@ -24600,7 +24736,7 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24600
24736
  if (!this.css || !this.css.window)
24601
24737
  return;
24602
24738
  var cssWindow = this.css.window;
24603
- this.setPropertyValue("cssRoot", cssWindow.root);
24739
+ this.setCssRoot();
24604
24740
  this.setPropertyValue("cssRootCollapsedMod", cssWindow.rootCollapsedMod);
24605
24741
  this.setPropertyValue("cssRootContent", cssWindow.rootContent);
24606
24742
  this.setPropertyValue("cssBody", cssWindow.body);
@@ -24612,8 +24748,18 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24612
24748
  this.setPropertyValue("cssHeaderButtonsContainer", cssHeader.buttonsContainer);
24613
24749
  this.setPropertyValue("cssHeaderCollapseButton", cssHeader.collapseButton);
24614
24750
  this.setPropertyValue("cssHeaderCloseButton", cssHeader.closeButton);
24751
+ this.setPropertyValue("cssHeaderFullScreenButton", cssHeader.fullScreenButton);
24615
24752
  this.updateCssButton();
24616
24753
  };
24754
+ PopupSurveyModel.prototype.setCssRoot = function () {
24755
+ var cssWindow = this.css.window;
24756
+ if (this.isFullScreen) {
24757
+ this.setPropertyValue("cssRoot", cssWindow.root + " " + cssWindow.rootFullScreenMode);
24758
+ }
24759
+ else {
24760
+ this.setPropertyValue("cssRoot", cssWindow.root);
24761
+ }
24762
+ };
24617
24763
  PopupSurveyModel.prototype.updateCssButton = function () {
24618
24764
  var cssHeader = !!this.css.window ? this.css.window.header : null;
24619
24765
  if (!cssHeader)
@@ -33217,8 +33363,8 @@ var ComponentQuestionJSON = /** @class */ (function () {
33217
33363
  });
33218
33364
  ComponentQuestionJSON.prototype.getDynamicProperties = function () {
33219
33365
  if (!Array.isArray(this.dynamicProperties)) {
33366
+ this.dynamicProperties = this.calcDynamicProperties();
33220
33367
  }
33221
- this.dynamicProperties = this.calcDynamicProperties();
33222
33368
  return this.dynamicProperties;
33223
33369
  };
33224
33370
  ComponentQuestionJSON.prototype.calcDynamicProperties = function () {
@@ -33595,8 +33741,25 @@ var QuestionCustomModel = /** @class */ (function (_super) {
33595
33741
  return this.questionWrapper;
33596
33742
  };
33597
33743
  QuestionCustomModel.prototype.createWrapper = function () {
33744
+ var _this = this;
33598
33745
  this.questionWrapper = this.createQuestion();
33599
33746
  this.createDynamicProperties(this.questionWrapper);
33747
+ if (this.getDynamicProperties().length > 0) {
33748
+ this.questionWrapper.onPropertyValueChangedCallback = function (name, oldValue, newValue, sender, arrayChanges) {
33749
+ var prop = _this.getDynamicProperty(name);
33750
+ if (prop) {
33751
+ _this.propertyValueChanged(name, oldValue, newValue, arrayChanges);
33752
+ }
33753
+ };
33754
+ }
33755
+ };
33756
+ QuestionCustomModel.prototype.getDynamicProperty = function (name) {
33757
+ var props = this.getDynamicProperties();
33758
+ for (var i = 0; i < props.length; i++) {
33759
+ if (props[i].name === name)
33760
+ return props[i];
33761
+ }
33762
+ return null;
33600
33763
  };
33601
33764
  QuestionCustomModel.prototype.getElement = function () {
33602
33765
  return this.contentQuestion;
@@ -34006,6 +34169,13 @@ var QuestionCompositeModel = /** @class */ (function (_super) {
34006
34169
  _super.prototype.setValue.call(this, name, newValue, locNotification, allowNotifyValueChanged);
34007
34170
  this.settingNewValue = false;
34008
34171
  };
34172
+ QuestionCompositeModel.prototype.getFilteredValues = function () {
34173
+ var values = !!this.data ? this.data.getFilteredValues() : {};
34174
+ if (!!this.contentPanel) {
34175
+ values[QuestionCompositeModel.ItemVariableName] = this.contentPanel.getValue();
34176
+ }
34177
+ return values;
34178
+ };
34009
34179
  QuestionCompositeModel.prototype.updateValueCoreWithPanelValue = function () {
34010
34180
  var panelValue = this.getContentPanelValue();
34011
34181
  if (this.isTwoValueEquals(this.getValueCore(), panelValue))
@@ -35420,7 +35590,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
35420
35590
  };
35421
35591
  _this.doClean = function () {
35422
35592
  if (_this.needConfirmRemoveFile) {
35423
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(_this.confirmRemoveAllMessage, function () { _this.clearFilesCore(); }, undefined, _this.getLocale());
35593
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(_this.confirmRemoveAllMessage, function () { _this.clearFilesCore(); }, undefined, _this.getLocale(), _this.survey.rootElement);
35424
35594
  return;
35425
35595
  }
35426
35596
  _this.clearFilesCore();
@@ -35774,6 +35944,18 @@ var QuestionFileModel = /** @class */ (function (_super) {
35774
35944
  enumerable: false,
35775
35945
  configurable: true
35776
35946
  });
35947
+ QuestionFileModel.prototype.chooseFile = function () {
35948
+ var _this = this;
35949
+ var inputElement = document.getElementById(this.inputId);
35950
+ if (inputElement) {
35951
+ if (this.survey) {
35952
+ this.survey.chooseFiles(inputElement, function (files) { return _this.loadFiles(files); }, { element: this });
35953
+ }
35954
+ else {
35955
+ inputElement.click();
35956
+ }
35957
+ }
35958
+ };
35777
35959
  Object.defineProperty(QuestionFileModel.prototype, "needConfirmRemoveFile", {
35778
35960
  /**
35779
35961
  * Specifies whether users should confirm file deletion.
@@ -36310,7 +36492,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
36310
36492
  QuestionFileModel.prototype.doRemoveFile = function (data) {
36311
36493
  var _this = this;
36312
36494
  if (this.needConfirmRemoveFile) {
36313
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(this.getConfirmRemoveMessage(data.name), function () { _this.removeFileCore(data); }, undefined, this.getLocale());
36495
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(this.getConfirmRemoveMessage(data.name), function () { _this.removeFileCore(data); }, undefined, this.getLocale(), this.survey.rootElement);
36314
36496
  return;
36315
36497
  }
36316
36498
  this.removeFileCore(data);
@@ -36335,9 +36517,12 @@ var QuestionFileModel = /** @class */ (function (_super) {
36335
36517
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: 0 })
36336
36518
  ], QuestionFileModel.prototype, "indexToShow", void 0);
36337
36519
  __decorate([
36338
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: 1, onSet: function (_, target) {
36520
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
36521
+ defaultValue: 1,
36522
+ onSet: function (_, target) {
36339
36523
  target.updateFileNavigator();
36340
- } })
36524
+ }
36525
+ })
36341
36526
  ], QuestionFileModel.prototype, "pageSize", void 0);
36342
36527
  __decorate([
36343
36528
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
@@ -36346,11 +36531,13 @@ var QuestionFileModel = /** @class */ (function (_super) {
36346
36531
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
36347
36532
  ], QuestionFileModel.prototype, "allowCameraAccess", void 0);
36348
36533
  __decorate([
36349
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ onSet: function (val, obj) {
36534
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
36535
+ onSet: function (val, obj) {
36350
36536
  if (!obj.isLoadingFromJson) {
36351
36537
  obj.updateCurrentMode();
36352
36538
  }
36353
- } })
36539
+ }
36540
+ })
36354
36541
  ], QuestionFileModel.prototype, "sourceType", void 0);
36355
36542
  __decorate([
36356
36543
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
@@ -38762,6 +38949,9 @@ var MatrixDropdownCell = /** @class */ (function () {
38762
38949
  enumerable: false,
38763
38950
  configurable: true
38764
38951
  });
38952
+ MatrixDropdownCell.prototype.getQuestionWrapperClassName = function (className) {
38953
+ return className;
38954
+ };
38765
38955
  MatrixDropdownCell.prototype.runCondition = function (values, properties) {
38766
38956
  this.question.runCondition(values, properties);
38767
38957
  };
@@ -38801,6 +38991,22 @@ var MatrixDropdownTotalCell = /** @class */ (function (_super) {
38801
38991
  this.question.unlocCalculation();
38802
38992
  this.question.runIfReadOnly = true;
38803
38993
  };
38994
+ MatrixDropdownTotalCell.prototype.getQuestionWrapperClassName = function (className) {
38995
+ var result = _super.prototype.getQuestionWrapperClassName.call(this, className);
38996
+ if (!result) {
38997
+ return result;
38998
+ }
38999
+ if (this.question.expression && this.question.expression != "''") {
39000
+ result += " " + className + "--expression";
39001
+ }
39002
+ var alignment = this.column.totalAlignment;
39003
+ if (alignment === "auto") {
39004
+ if (this.column.cellType === "dropdown") {
39005
+ alignment = "left";
39006
+ }
39007
+ }
39008
+ return result + " " + className + "--" + alignment;
39009
+ };
38804
39010
  MatrixDropdownTotalCell.prototype.getTotalExpression = function () {
38805
39011
  if (!!this.column.totalExpression)
38806
39012
  return this.column.totalExpression;
@@ -41242,9 +41448,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownb
41242
41448
  default: "none",
41243
41449
  },
41244
41450
  { name: "cellErrorLocation", default: "default", choices: ["default", "top", "bottom"] },
41245
- { name: "detailErrorLocation", default: "default", choices: ["default", "top", "bottom"], visibleIf: function (obj) { return !!obj && obj.detailPanelMode != "none"; }
41451
+ {
41452
+ name: "detailErrorLocation", default: "default", choices: ["default", "top", "bottom"],
41453
+ visibleIf: function (obj) { return !!obj && obj.detailPanelMode != "none"; }
41246
41454
  },
41247
- "horizontalScroll:boolean",
41455
+ { name: "horizontalScroll:boolean", visible: false, },
41248
41456
  {
41249
41457
  name: "choices:itemvalue[]", uniqueProperty: "value",
41250
41458
  },
@@ -42041,6 +42249,32 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
42041
42249
  enumerable: false,
42042
42250
  configurable: true
42043
42251
  });
42252
+ Object.defineProperty(MatrixDropdownColumn.prototype, "totalAlignment", {
42253
+ /**
42254
+ * An alignment for calculated total values.
42255
+ *
42256
+ * Possible values:
42257
+ *
42258
+ * - `"left"`
42259
+ * - `"center"`
42260
+ * - `"right"`
42261
+ * - `"auto"` (default) - Applies one of the values above based on the column's [cell type](#cellType).
42262
+ *
42263
+ * [View Demo](https://surveyjs.io/form-library/examples/aggregate-data-within-form/ (linkStyle))
42264
+ * @see totalType
42265
+ * @see totalFormat
42266
+ * @see totalCurrency
42267
+ * @see totalDisplayStyle
42268
+ */
42269
+ get: function () {
42270
+ return this.getPropertyValue("totalAlignment");
42271
+ },
42272
+ set: function (val) {
42273
+ this.setPropertyValue("totalAlignment", val);
42274
+ },
42275
+ enumerable: false,
42276
+ configurable: true
42277
+ });
42044
42278
  Object.defineProperty(MatrixDropdownColumn.prototype, "totalCurrency", {
42045
42279
  /**
42046
42280
  * Specifies a currency used to display calculated total values. Applies only if [`totalDisplayStyle`](#totalDisplayStyle) is set to `"currency"`.
@@ -42359,6 +42593,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownc
42359
42593
  default: "none",
42360
42594
  choices: ["none", "decimal", "currency", "percent"],
42361
42595
  },
42596
+ {
42597
+ name: "totalAlignment",
42598
+ default: "auto",
42599
+ choices: ["auto", "left", "center", "right"],
42600
+ },
42362
42601
  {
42363
42602
  name: "totalCurrency",
42364
42603
  choices: function () {
@@ -42549,6 +42788,13 @@ var QuestionMatrixDropdownRenderedCell = /** @class */ (function () {
42549
42788
  enumerable: false,
42550
42789
  configurable: true
42551
42790
  });
42791
+ Object.defineProperty(QuestionMatrixDropdownRenderedCell.prototype, "cellQuestionWrapperClassName", {
42792
+ get: function () {
42793
+ return this.cell.getQuestionWrapperClassName(this.matrix.cssClasses.cellQuestionWrapper);
42794
+ },
42795
+ enumerable: false,
42796
+ configurable: true
42797
+ });
42552
42798
  Object.defineProperty(QuestionMatrixDropdownRenderedCell.prototype, "headers", {
42553
42799
  get: function () {
42554
42800
  if (this.cell && this.cell.column) {
@@ -44231,7 +44477,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
44231
44477
  confirmDelete = this.isRequireConfirmOnRowDelete(index);
44232
44478
  }
44233
44479
  if (confirmDelete) {
44234
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removeRowAsync(index, row); }, undefined, this.getLocale());
44480
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removeRowAsync(index, row); }, undefined, this.getLocale(), this.survey.rootElement);
44235
44481
  return;
44236
44482
  }
44237
44483
  this.removeRowAsync(index, row);
@@ -47411,7 +47657,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
47411
47657
  if (!this.canRemovePanel)
47412
47658
  return;
47413
47659
  if (this.isRequireConfirmOnDelete(value)) {
47414
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removePanel(value); }, undefined, this.getLocale());
47660
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removePanel(value); }, undefined, this.getLocale(), this.survey.rootElement);
47415
47661
  }
47416
47662
  else {
47417
47663
  this.removePanel(value);
@@ -53130,8 +53376,8 @@ var settings = {
53130
53376
  * @param message A message to be displayed in the confirm dialog window.
53131
53377
  * @param callback A callback function that should be called with `true` if a user confirms an action or `false` otherwise.
53132
53378
  */
53133
- confirmActionAsync: function (message, callback, applyTitle, locale) {
53134
- return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["showConfirmDialog"])(message, callback, applyTitle, locale);
53379
+ confirmActionAsync: function (message, callback, applyTitle, locale, rootElement) {
53380
+ return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["showConfirmDialog"])(message, callback, applyTitle, locale, rootElement);
53135
53381
  },
53136
53382
  /**
53137
53383
  * A minimum width value for all survey elements.
@@ -55558,6 +55804,12 @@ var SurveyModel = /** @class */ (function (_super) {
55558
55804
  * @see getResult
55559
55805
  */
55560
55806
  _this.onGetResult = _this.addEvent();
55807
+ /**
55808
+ * An event that is raised when Survey Creator opens a dialog window for users to select files.
55809
+ * @see onUploadFile
55810
+ * @see uploadFiles
55811
+ */
55812
+ _this.onOpenFileChooser = _this.addEvent();
55561
55813
  /**
55562
55814
  * 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.
55563
55815
  *
@@ -60876,6 +61128,26 @@ var SurveyModel = /** @class */ (function (_super) {
60876
61128
  _survey_element__WEBPACK_IMPORTED_MODULE_3__["SurveyElement"].ScrollElementToTop(options.elementId, scrollIfVisible);
60877
61129
  }
60878
61130
  };
61131
+ /**
61132
+ * Opens a dialog window for users to select files.
61133
+ * @param input A [file input HTML element](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement).
61134
+ * @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.
61135
+ * @see onOpenFileChooser
61136
+ * @see onUploadFile
61137
+ */
61138
+ SurveyModel.prototype.chooseFiles = function (input, callback, context) {
61139
+ if (this.onOpenFileChooser.isEmpty) {
61140
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_15__["chooseFiles"])(input, callback);
61141
+ }
61142
+ else {
61143
+ this.onOpenFileChooser.fire(this, {
61144
+ input: input,
61145
+ element: context && context.element || this.survey,
61146
+ item: context && context.item,
61147
+ callback: callback
61148
+ });
61149
+ }
61150
+ };
60879
61151
  /**
60880
61152
  * Uploads files to a server.
60881
61153
  *
@@ -63216,6 +63488,9 @@ var SurveyModel = /** @class */ (function (_super) {
63216
63488
  if (isStrCiEqual(this.showProgressBar, "aboveHeader")) {
63217
63489
  isBelowHeader = false;
63218
63490
  }
63491
+ if (isStrCiEqual(this.showProgressBar, "belowHeader")) {
63492
+ isBelowHeader = true;
63493
+ }
63219
63494
  if (container === "header" && !isBelowHeader) {
63220
63495
  layoutElement.index = -150;
63221
63496
  if (this.isShowProgressBarOnTop && !this.isShowStartingPage) {
@@ -66077,7 +66352,7 @@ var VerticalResponsivityManager = /** @class */ (function (_super) {
66077
66352
  /*!****************************!*\
66078
66353
  !*** ./src/utils/utils.ts ***!
66079
66354
  \****************************/
66080
- /*! exports provided: unwrap, getRenderedSize, getRenderedStyleSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, showConfirmDialog, 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 */
66355
+ /*! exports provided: unwrap, getRenderedSize, getRenderedStyleSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, showConfirmDialog, 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 */
66081
66356
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
66082
66357
 
66083
66358
  "use strict";
@@ -66116,6 +66391,7 @@ __webpack_require__.r(__webpack_exports__);
66116
66391
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "preventDefaults", function() { return preventDefaults; });
66117
66392
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findParentByClassNames", function() { return findParentByClassNames; });
66118
66393
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFirstVisibleChild", function() { return getFirstVisibleChild; });
66394
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return chooseFiles; });
66119
66395
  /* harmony import */ var _localizablestring__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../localizablestring */ "./src/localizablestring.ts");
66120
66396
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../settings */ "./src/settings.ts");
66121
66397
  /* harmony import */ var _surveyStrings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../surveyStrings */ "./src/surveyStrings.ts");
@@ -66140,7 +66416,7 @@ function confirmAction(message) {
66140
66416
  return _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionFunc(message);
66141
66417
  return confirm(message);
66142
66418
  }
66143
- function confirmActionAsync(message, funcOnYes, funcOnNo, locale) {
66419
+ function confirmActionAsync(message, funcOnYes, funcOnNo, locale, rootElement) {
66144
66420
  var callbackFunc = function (res) {
66145
66421
  if (res)
66146
66422
  funcOnYes();
@@ -66148,7 +66424,7 @@ function confirmActionAsync(message, funcOnYes, funcOnNo, locale) {
66148
66424
  funcOnNo();
66149
66425
  };
66150
66426
  if (!!_settings__WEBPACK_IMPORTED_MODULE_1__["settings"] && !!_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync) {
66151
- if (_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync(message, callbackFunc, undefined, locale))
66427
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync(message, callbackFunc, undefined, locale, rootElement))
66152
66428
  return;
66153
66429
  }
66154
66430
  callbackFunc(confirmAction(message));
@@ -66497,7 +66773,7 @@ var Logger = /** @class */ (function () {
66497
66773
  return Logger;
66498
66774
  }());
66499
66775
 
66500
- function showConfirmDialog(message, callback, applyTitle, locale) {
66776
+ function showConfirmDialog(message, callback, applyTitle, locale, rootElement) {
66501
66777
  var locStr = new _localizablestring__WEBPACK_IMPORTED_MODULE_0__["LocalizableString"](undefined);
66502
66778
  var popupViewModel = _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].showDialog({
66503
66779
  componentName: "sv-string-viewer",
@@ -66514,7 +66790,7 @@ function showConfirmDialog(message, callback, applyTitle, locale) {
66514
66790
  displayMode: "popup",
66515
66791
  isFocusedContent: false,
66516
66792
  cssClass: "sv-popup--confirm-delete"
66517
- }, /*settings.rootElement*/ document.body); //TODO survey root
66793
+ }, rootElement);
66518
66794
  var toolbar = popupViewModel.footerToolbar;
66519
66795
  var applyBtn = toolbar.getActionById("apply");
66520
66796
  var cancelBtn = toolbar.getActionById("cancel");
@@ -66525,6 +66801,23 @@ function showConfirmDialog(message, callback, applyTitle, locale) {
66525
66801
  popupViewModel.width = "452px";
66526
66802
  return true;
66527
66803
  }
66804
+ function chooseFiles(input, callback) {
66805
+ if (!window || !window["FileReader"])
66806
+ return;
66807
+ input.value = "";
66808
+ input.onchange = function (event) {
66809
+ if (!window["FileReader"])
66810
+ return;
66811
+ if (!input || !input.files || input.files.length < 1)
66812
+ return;
66813
+ var files = [];
66814
+ for (var i = 0; i < input.files.length; i++) {
66815
+ files.push(input.files[i]);
66816
+ }
66817
+ callback(files);
66818
+ };
66819
+ input.click();
66820
+ }
66528
66821
 
66529
66822
 
66530
66823