survey-core 1.9.128 → 1.9.130

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 (262) hide show
  1. package/defaultV2.css +171 -51
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +171 -51
  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 +6 -6
  24. package/i18n/english.js.map +1 -1
  25. package/i18n/english.min.js +2 -2
  26. package/i18n/estonian.js +1 -1
  27. package/i18n/estonian.min.js +1 -1
  28. package/i18n/finnish.js +1 -1
  29. package/i18n/finnish.min.js +1 -1
  30. package/i18n/french.js +1 -1
  31. package/i18n/french.min.js +1 -1
  32. package/i18n/georgian.js +1 -1
  33. package/i18n/georgian.min.js +1 -1
  34. package/i18n/german.js +1 -1
  35. package/i18n/german.min.js +1 -1
  36. package/i18n/greek.js +1 -1
  37. package/i18n/greek.min.js +1 -1
  38. package/i18n/hebrew.js +1 -1
  39. package/i18n/hebrew.min.js +1 -1
  40. package/i18n/hindi.js +1 -1
  41. package/i18n/hindi.min.js +1 -1
  42. package/i18n/hungarian.js +1 -1
  43. package/i18n/hungarian.min.js +1 -1
  44. package/i18n/icelandic.js +1 -1
  45. package/i18n/icelandic.min.js +1 -1
  46. package/i18n/index.js +3 -3
  47. package/i18n/index.js.map +1 -1
  48. package/i18n/index.min.js +2 -2
  49. package/i18n/indonesian.js +1 -1
  50. package/i18n/indonesian.min.js +1 -1
  51. package/i18n/italian.js +1 -1
  52. package/i18n/italian.min.js +1 -1
  53. package/i18n/japanese.js +1 -1
  54. package/i18n/japanese.min.js +1 -1
  55. package/i18n/kazakh.js +1 -1
  56. package/i18n/kazakh.min.js +1 -1
  57. package/i18n/korean.js +1 -1
  58. package/i18n/korean.min.js +1 -1
  59. package/i18n/latvian.js +1 -1
  60. package/i18n/latvian.min.js +1 -1
  61. package/i18n/lithuanian.js +1 -1
  62. package/i18n/lithuanian.min.js +1 -1
  63. package/i18n/macedonian.js +1 -1
  64. package/i18n/macedonian.min.js +1 -1
  65. package/i18n/malay.js +1 -1
  66. package/i18n/malay.min.js +1 -1
  67. package/i18n/nl-BE.js +1 -1
  68. package/i18n/nl-BE.min.js +1 -1
  69. package/i18n/norwegian.js +1 -1
  70. package/i18n/norwegian.min.js +1 -1
  71. package/i18n/persian.js +1 -1
  72. package/i18n/persian.min.js +1 -1
  73. package/i18n/polish.js +1 -1
  74. package/i18n/polish.min.js +1 -1
  75. package/i18n/portuguese-br.js +1 -1
  76. package/i18n/portuguese-br.min.js +1 -1
  77. package/i18n/portuguese.js +1 -1
  78. package/i18n/portuguese.min.js +1 -1
  79. package/i18n/romanian.js +1 -1
  80. package/i18n/romanian.min.js +1 -1
  81. package/i18n/russian.js +1 -1
  82. package/i18n/russian.min.js +1 -1
  83. package/i18n/serbian.js +1 -1
  84. package/i18n/serbian.min.js +1 -1
  85. package/i18n/simplified-chinese.js +1 -1
  86. package/i18n/simplified-chinese.min.js +1 -1
  87. package/i18n/slovak.js +2 -2
  88. package/i18n/slovak.js.map +1 -1
  89. package/i18n/slovak.min.js +2 -2
  90. package/i18n/spanish.js +2 -2
  91. package/i18n/spanish.js.map +1 -1
  92. package/i18n/spanish.min.js +2 -2
  93. package/i18n/swahili.js +1 -1
  94. package/i18n/swahili.min.js +1 -1
  95. package/i18n/swedish.js +1 -1
  96. package/i18n/swedish.min.js +1 -1
  97. package/i18n/tajik.js +1 -1
  98. package/i18n/tajik.min.js +1 -1
  99. package/i18n/telugu.js +1 -1
  100. package/i18n/telugu.min.js +1 -1
  101. package/i18n/thai.js +1 -1
  102. package/i18n/thai.min.js +1 -1
  103. package/i18n/traditional-chinese.js +1 -1
  104. package/i18n/traditional-chinese.min.js +1 -1
  105. package/i18n/turkish.js +1 -1
  106. package/i18n/turkish.min.js +1 -1
  107. package/i18n/ukrainian.js +1 -1
  108. package/i18n/ukrainian.min.js +1 -1
  109. package/i18n/urdu.js +1 -1
  110. package/i18n/urdu.min.js +1 -1
  111. package/i18n/vietnamese.js +1 -1
  112. package/i18n/vietnamese.min.js +1 -1
  113. package/i18n/welsh.js +1 -1
  114. package/i18n/welsh.min.js +1 -1
  115. package/modern.css +65 -16
  116. package/modern.css.map +1 -1
  117. package/modern.fontless.css +65 -16
  118. package/modern.fontless.css.map +1 -1
  119. package/modern.fontless.min.css +2 -2
  120. package/modern.min.css +2 -2
  121. package/package.json +1 -1
  122. package/plugins/bootstrap-integration.js +1 -1
  123. package/plugins/bootstrap-integration.min.js +1 -1
  124. package/plugins/bootstrap-material-integration.js +1 -1
  125. package/plugins/bootstrap-material-integration.min.js +1 -1
  126. package/survey.core.js +769 -173
  127. package/survey.core.js.map +1 -1
  128. package/survey.core.min.js +3 -3
  129. package/survey.css +63 -15
  130. package/survey.css.map +1 -1
  131. package/survey.i18n.js +3 -3
  132. package/survey.i18n.js.map +1 -1
  133. package/survey.i18n.min.js +2 -2
  134. package/survey.min.css +2 -2
  135. package/themes/borderless-dark-panelless.js +1 -1
  136. package/themes/borderless-dark-panelless.min.js +1 -1
  137. package/themes/borderless-dark.js +1 -1
  138. package/themes/borderless-dark.min.js +1 -1
  139. package/themes/borderless-light-panelless..js +1 -1
  140. package/themes/borderless-light-panelless..min.js +1 -1
  141. package/themes/borderless-light.js +1 -1
  142. package/themes/borderless-light.min.js +1 -1
  143. package/themes/contrast-dark-panelless.js +1 -1
  144. package/themes/contrast-dark-panelless.min.js +1 -1
  145. package/themes/contrast-dark.js +1 -1
  146. package/themes/contrast-dark.min.js +1 -1
  147. package/themes/contrast-light-panelless.js +1 -1
  148. package/themes/contrast-light-panelless.min.js +1 -1
  149. package/themes/contrast-light.js +1 -1
  150. package/themes/contrast-light.min.js +1 -1
  151. package/themes/default-dark-panelless.js +1 -1
  152. package/themes/default-dark-panelless.min.js +1 -1
  153. package/themes/default-dark.js +1 -1
  154. package/themes/default-dark.min.js +1 -1
  155. package/themes/default-light-panelless.js +1 -1
  156. package/themes/default-light-panelless.min.js +1 -1
  157. package/themes/default-light.js +1 -1
  158. package/themes/default-light.min.js +1 -1
  159. package/themes/doubleborder-dark-panelless.js +1 -1
  160. package/themes/doubleborder-dark-panelless.min.js +1 -1
  161. package/themes/doubleborder-dark.js +1 -1
  162. package/themes/doubleborder-dark.min.js +1 -1
  163. package/themes/doubleborder-light-panelles.js +1 -1
  164. package/themes/doubleborder-light-panelles.min.js +1 -1
  165. package/themes/doubleborder-light.js +1 -1
  166. package/themes/doubleborder-light.min.js +1 -1
  167. package/themes/flat-dark-panelless.js +1 -1
  168. package/themes/flat-dark-panelless.min.js +1 -1
  169. package/themes/flat-dark.js +1 -1
  170. package/themes/flat-dark.min.js +1 -1
  171. package/themes/flat-light-panelless.js +1 -1
  172. package/themes/flat-light-panelless.min.js +1 -1
  173. package/themes/flat-light.js +1 -1
  174. package/themes/flat-light.min.js +1 -1
  175. package/themes/index.js +1 -1
  176. package/themes/index.min.js +1 -1
  177. package/themes/layered-dark-panelless.js +1 -1
  178. package/themes/layered-dark-panelless.min.js +1 -1
  179. package/themes/layered-dark.js +1 -1
  180. package/themes/layered-dark.min.js +1 -1
  181. package/themes/layered-light-panelless.js +1 -1
  182. package/themes/layered-light-panelless.min.js +1 -1
  183. package/themes/layered-light.js +1 -1
  184. package/themes/layered-light.min.js +1 -1
  185. package/themes/plain-dark-panelless.js +1 -1
  186. package/themes/plain-dark-panelless.min.js +1 -1
  187. package/themes/plain-dark.js +1 -1
  188. package/themes/plain-dark.min.js +1 -1
  189. package/themes/plain-light-panelless.js +1 -1
  190. package/themes/plain-light-panelless.min.js +1 -1
  191. package/themes/plain-light.js +1 -1
  192. package/themes/plain-light.min.js +1 -1
  193. package/themes/sharp-dark-panelless.js +1 -1
  194. package/themes/sharp-dark-panelless.min.js +1 -1
  195. package/themes/sharp-dark.js +1 -1
  196. package/themes/sharp-dark.min.js +1 -1
  197. package/themes/sharp-light-panelless.js +1 -1
  198. package/themes/sharp-light-panelless.min.js +1 -1
  199. package/themes/sharp-light.js +1 -1
  200. package/themes/sharp-light.min.js +1 -1
  201. package/themes/solid-dark-panelless.js +1 -1
  202. package/themes/solid-dark-panelless.min.js +1 -1
  203. package/themes/solid-dark.js +1 -1
  204. package/themes/solid-dark.min.js +1 -1
  205. package/themes/solid-light-panelless.js +1 -1
  206. package/themes/solid-light-panelless.min.js +1 -1
  207. package/themes/solid-light.js +1 -1
  208. package/themes/solid-light.min.js +1 -1
  209. package/themes/three-dimensional-dark-panelless.js +1 -1
  210. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  211. package/themes/three-dimensional-dark.js +1 -1
  212. package/themes/three-dimensional-dark.min.js +1 -1
  213. package/themes/three-dimensional-light-panelless.js +1 -1
  214. package/themes/three-dimensional-light-panelless.min.js +1 -1
  215. package/themes/three-dimensional-light.js +1 -1
  216. package/themes/three-dimensional-light.min.js +1 -1
  217. package/ts3.4/typings/base-interfaces.d.ts +4 -0
  218. package/ts3.4/typings/defaultCss/cssmodern.d.ts +2 -0
  219. package/ts3.4/typings/defaultCss/cssstandard.d.ts +2 -0
  220. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +3 -0
  221. package/ts3.4/typings/dragdrop/dom-adapter.d.ts +2 -1
  222. package/ts3.4/typings/dropdownListModel.d.ts +2 -0
  223. package/ts3.4/typings/entries/chunks/model.d.ts +2 -2
  224. package/ts3.4/typings/header.d.ts +3 -0
  225. package/ts3.4/typings/jsonobject.d.ts +7 -0
  226. package/ts3.4/typings/panel.d.ts +7 -1
  227. package/ts3.4/typings/popup-survey.d.ts +10 -0
  228. package/ts3.4/typings/question_boolean.d.ts +3 -0
  229. package/ts3.4/typings/question_custom.d.ts +2 -0
  230. package/ts3.4/typings/question_file.d.ts +2 -1
  231. package/ts3.4/typings/question_matrixdropdownbase.d.ts +13 -8
  232. package/ts3.4/typings/question_matrixdropdowncolumn.d.ts +17 -0
  233. package/ts3.4/typings/question_matrixdropdownrendered.d.ts +1 -0
  234. package/ts3.4/typings/question_matrixdynamic.d.ts +2 -3
  235. package/ts3.4/typings/question_paneldynamic.d.ts +1 -1
  236. package/ts3.4/typings/settings.d.ts +27 -11
  237. package/ts3.4/typings/survey-events-api.d.ts +19 -0
  238. package/ts3.4/typings/survey.d.ts +19 -1
  239. package/ts3.4/typings/utils/utils.d.ts +4 -3
  240. package/typings/base-interfaces.d.ts +4 -0
  241. package/typings/defaultCss/cssmodern.d.ts +2 -0
  242. package/typings/defaultCss/cssstandard.d.ts +2 -0
  243. package/typings/defaultCss/defaultV2Css.d.ts +3 -0
  244. package/typings/dragdrop/dom-adapter.d.ts +2 -1
  245. package/typings/dropdownListModel.d.ts +2 -0
  246. package/typings/entries/chunks/model.d.ts +2 -2
  247. package/typings/header.d.ts +3 -0
  248. package/typings/jsonobject.d.ts +7 -0
  249. package/typings/panel.d.ts +7 -1
  250. package/typings/popup-survey.d.ts +12 -0
  251. package/typings/question_boolean.d.ts +3 -0
  252. package/typings/question_custom.d.ts +2 -0
  253. package/typings/question_file.d.ts +2 -1
  254. package/typings/question_matrixdropdownbase.d.ts +14 -8
  255. package/typings/question_matrixdropdowncolumn.d.ts +18 -0
  256. package/typings/question_matrixdropdownrendered.d.ts +1 -0
  257. package/typings/question_matrixdynamic.d.ts +2 -3
  258. package/typings/question_paneldynamic.d.ts +1 -1
  259. package/typings/settings.d.ts +27 -11
  260. package/typings/survey-events-api.d.ts +19 -0
  261. package/typings/survey.d.ts +19 -1
  262. 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.130
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: {
@@ -5640,6 +5649,7 @@ var defaultV2Css = {
5640
5649
  itemOnError: "sd-boolean--error",
5641
5650
  control: "sd-boolean__control sd-visuallyhidden",
5642
5651
  itemChecked: "sd-boolean--checked",
5652
+ itemExchanged: "sd-boolean--exchanged",
5643
5653
  itemIndeterminate: "sd-boolean--indeterminate",
5644
5654
  itemDisabled: "sd-boolean--disabled",
5645
5655
  itemHover: "sd-boolean--allowhover",
@@ -6010,6 +6020,7 @@ var defaultV2Css = {
6010
6020
  window: {
6011
6021
  root: "sv_window",
6012
6022
  rootCollapsedMod: "sv_window--collapsed",
6023
+ rootFullScreenMode: "sv_window--full-screen",
6013
6024
  rootContent: "sv_window_root-content",
6014
6025
  body: "sv_window_content",
6015
6026
  header: {
@@ -6020,7 +6031,8 @@ var defaultV2Css = {
6020
6031
  buttonExpanded: "",
6021
6032
  buttonCollapsed: "",
6022
6033
  collapseButton: "sv_window_button sv_window_button_collapse",
6023
- closeButton: "sv_window_button sv_window_button_close"
6034
+ closeButton: "sv_window_button sv_window_button_close",
6035
+ fullScreenButton: "sv_window_button sv_window_button_full_screen"
6024
6036
  }
6025
6037
  },
6026
6038
  ranking: {
@@ -6813,6 +6825,7 @@ __webpack_require__.r(__webpack_exports__);
6813
6825
  var DragDropCore = /** @class */ (function () {
6814
6826
  function DragDropCore(surveyValue, creator, longTap, domAdapter) {
6815
6827
  var _this = this;
6828
+ var _a;
6816
6829
  this.surveyValue = surveyValue;
6817
6830
  this.creator = creator;
6818
6831
  this._isBottom = null;
@@ -6833,7 +6846,7 @@ var DragDropCore = /** @class */ (function () {
6833
6846
  _this.isBottom = null;
6834
6847
  };
6835
6848
  this.doBanDropHere = function () { };
6836
- this.domAdapter = domAdapter || new _dom_adapter__WEBPACK_IMPORTED_MODULE_1__["DragDropDOMAdapter"](this, longTap);
6849
+ this.domAdapter = domAdapter || new _dom_adapter__WEBPACK_IMPORTED_MODULE_1__["DragDropDOMAdapter"](this, longTap, (_a = this.survey) === null || _a === void 0 ? void 0 : _a.fitToContainer);
6837
6850
  }
6838
6851
  Object.defineProperty(DragDropCore.prototype, "isBottom", {
6839
6852
  get: function () {
@@ -6858,7 +6871,8 @@ var DragDropCore = /** @class */ (function () {
6858
6871
  });
6859
6872
  Object.defineProperty(DragDropCore.prototype, "survey", {
6860
6873
  get: function () {
6861
- return this.surveyValue || this.creator.survey;
6874
+ var _a;
6875
+ return this.surveyValue || ((_a = this.creator) === null || _a === void 0 ? void 0 : _a.survey);
6862
6876
  },
6863
6877
  enumerable: false,
6864
6878
  configurable: true
@@ -7014,11 +7028,13 @@ if (typeof window !== "undefined") {
7014
7028
  }, { passive: false });
7015
7029
  }
7016
7030
  var DragDropDOMAdapter = /** @class */ (function () {
7017
- function DragDropDOMAdapter(dd, longTap) {
7031
+ function DragDropDOMAdapter(dd, longTap, fitToContainer) {
7018
7032
  var _this = this;
7019
7033
  if (longTap === void 0) { longTap = true; }
7034
+ if (fitToContainer === void 0) { fitToContainer = false; }
7020
7035
  this.dd = dd;
7021
7036
  this.longTap = longTap;
7037
+ this.fitToContainer = fitToContainer;
7022
7038
  this.scrollIntervalId = null;
7023
7039
  this.stopLongTapIfMoveEnough = function (pointerMoveEvent) {
7024
7040
  pointerMoveEvent.preventDefault();
@@ -7131,6 +7147,8 @@ var DragDropDOMAdapter = /** @class */ (function () {
7131
7147
  DragDropDOMAdapter.prototype.moveShortcutElement = function (event) {
7132
7148
  var rootElementX = this.rootElement.getBoundingClientRect().x;
7133
7149
  var rootElementY = this.rootElement.getBoundingClientRect().y;
7150
+ var rootElementScrollLeft = this.rootElement.scrollLeft;
7151
+ var rootElementScrollTop = this.rootElement.scrollTop;
7134
7152
  this.doScroll(event.clientY, event.clientX);
7135
7153
  var shortcutHeight = this.draggedElementShortcut.offsetHeight;
7136
7154
  var shortcutWidth = this.draggedElementShortcut.offsetWidth;
@@ -7147,6 +7165,10 @@ var DragDropDOMAdapter = /** @class */ (function () {
7147
7165
  var pageY = event.pageY;
7148
7166
  var clientX = event.clientX;
7149
7167
  var clientY = event.clientY;
7168
+ if (!!this.fitToContainer) {
7169
+ rootElementX -= rootElementScrollLeft;
7170
+ rootElementY -= rootElementScrollTop;
7171
+ }
7150
7172
  var shortcutBottomCoordinate = this.getShortcutBottomCoordinate(clientY, shortcutHeight, shortcutYOffset);
7151
7173
  var shortcutRightCoordinate = this.getShortcutRightCoordinate(clientX, shortcutWidth, shortcutXOffset);
7152
7174
  if (shortcutRightCoordinate >= documentRight) { // right boundary
@@ -7872,6 +7894,9 @@ var DropdownListModel = /** @class */ (function (_super) {
7872
7894
  _this.qustionPropertyChangedHandler = function (sender, options) {
7873
7895
  _this.onPropertyChangedHandler(sender, options);
7874
7896
  };
7897
+ if ("undefined" !== typeof document) {
7898
+ _this.htmlCleanerElement = document.createElement("div");
7899
+ }
7875
7900
  question.onPropertyChanged.add(_this.qustionPropertyChangedHandler);
7876
7901
  _this.showInputFieldComponent = _this.question.showInputFieldComponent;
7877
7902
  _this.listModel = _this.createListModel();
@@ -8007,7 +8032,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8007
8032
  _this.question.value = item.id;
8008
8033
  if (_this.question.searchEnabled)
8009
8034
  _this.applyInputString(item);
8010
- _this._popupModel.toggleVisibility();
8035
+ _this.popupModel.isVisible = false;
8011
8036
  };
8012
8037
  }
8013
8038
  var res = new _list__WEBPACK_IMPORTED_MODULE_3__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
@@ -8092,7 +8117,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8092
8117
  var hasHtml = item === null || item === void 0 ? void 0 : item.locText.hasHtml;
8093
8118
  if (hasHtml || this.question.inputFieldComponentName) {
8094
8119
  this._markdownMode = true;
8095
- this.inputString = "";
8120
+ this.inputString = this.cleanHtml(item === null || item === void 0 ? void 0 : item.locText.getHtmlValue());
8096
8121
  this.hintString = "";
8097
8122
  }
8098
8123
  else {
@@ -8100,6 +8125,12 @@ var DropdownListModel = /** @class */ (function (_super) {
8100
8125
  this.hintString = item === null || item === void 0 ? void 0 : item.title;
8101
8126
  }
8102
8127
  };
8128
+ DropdownListModel.prototype.cleanHtml = function (html) {
8129
+ if (!this.htmlCleanerElement)
8130
+ return "";
8131
+ this.htmlCleanerElement.innerHTML = html;
8132
+ return this.htmlCleanerElement.textContent;
8133
+ };
8103
8134
  DropdownListModel.prototype.fixInputCase = function () {
8104
8135
  var hintStringMiddle = this.hintStringMiddle;
8105
8136
  if (hintStringMiddle && this.inputString != hintStringMiddle)
@@ -8919,7 +8950,7 @@ var ElementHelper = /** @class */ (function () {
8919
8950
  /*!*************************************!*\
8920
8951
  !*** ./src/entries/chunks/model.ts ***!
8921
8952
  \*************************************/
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 */
8953
+ /*! 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, QuestionMatrixDropdownRenderedErrorRow, 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
8954
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8924
8955
 
8925
8956
  "use strict";
@@ -9085,6 +9116,8 @@ __webpack_require__.r(__webpack_exports__);
9085
9116
 
9086
9117
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_20__["QuestionMatrixDropdownRenderedRow"]; });
9087
9118
 
9119
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_20__["QuestionMatrixDropdownRenderedErrorRow"]; });
9120
+
9088
9121
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_20__["QuestionMatrixDropdownRenderedTable"]; });
9089
9122
 
9090
9123
  /* harmony import */ var _question_matrixdropdown__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../question_matrixdropdown */ "./src/question_matrixdropdown.ts");
@@ -9370,6 +9403,8 @@ __webpack_require__.r(__webpack_exports__);
9370
9403
 
9371
9404
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_83__["createSvg"]; });
9372
9405
 
9406
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_83__["chooseFiles"]; });
9407
+
9373
9408
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_83__["sanitizeEditableContent"]; });
9374
9409
 
9375
9410
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../../utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
@@ -9396,8 +9431,8 @@ __webpack_require__.r(__webpack_exports__);
9396
9431
  //import "../../modern.scss";
9397
9432
  var Version;
9398
9433
  var ReleaseDate;
9399
- Version = "" + "1.9.128";
9400
- ReleaseDate = "" + "2024-01-30";
9434
+ Version = "" + "1.9.130";
9435
+ ReleaseDate = "" + "2024-02-15";
9401
9436
  function checkLibraryVersion(ver, libraryName) {
9402
9437
  if (Version != ver) {
9403
9438
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9572,7 +9607,7 @@ function checkPrefix(prefix) {
9572
9607
  /*!**************************************!*\
9573
9608
  !*** ./src/entries/core-wo-model.ts ***!
9574
9609
  \**************************************/
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 */
9610
+ /*! 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, QuestionMatrixDropdownRenderedErrorRow, 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
9611
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9577
9612
 
9578
9613
  "use strict";
@@ -9724,6 +9759,8 @@ __webpack_require__.r(__webpack_exports__);
9724
9759
 
9725
9760
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedRow"]; });
9726
9761
 
9762
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedErrorRow"]; });
9763
+
9727
9764
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedTable"]; });
9728
9765
 
9729
9766
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixDropdownRowModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["MatrixDropdownRowModel"]; });
@@ -9946,6 +9983,8 @@ __webpack_require__.r(__webpack_exports__);
9946
9983
 
9947
9984
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["createSvg"]; });
9948
9985
 
9986
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["chooseFiles"]; });
9987
+
9949
9988
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["sanitizeEditableContent"]; });
9950
9989
 
9951
9990
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]; });
@@ -10037,7 +10076,7 @@ __webpack_require__.r(__webpack_exports__);
10037
10076
  /*!*****************************!*\
10038
10077
  !*** ./src/entries/core.ts ***!
10039
10078
  \*****************************/
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 */
10079
+ /*! 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, QuestionMatrixDropdownRenderedErrorRow, 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
10080
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10042
10081
 
10043
10082
  "use strict";
@@ -10189,6 +10228,8 @@ __webpack_require__.r(__webpack_exports__);
10189
10228
 
10190
10229
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedRow"]; });
10191
10230
 
10231
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedErrorRow"]; });
10232
+
10192
10233
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedTable"]; });
10193
10234
 
10194
10235
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixDropdownRowModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["MatrixDropdownRowModel"]; });
@@ -10411,6 +10452,8 @@ __webpack_require__.r(__webpack_exports__);
10411
10452
 
10412
10453
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["createSvg"]; });
10413
10454
 
10455
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["chooseFiles"]; });
10456
+
10414
10457
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["sanitizeEditableContent"]; });
10415
10458
 
10416
10459
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]; });
@@ -15310,6 +15353,21 @@ function propertyValue(params) {
15310
15353
  return q ? q[params[1]] : undefined;
15311
15354
  }
15312
15355
  FunctionFactory.Instance.register("propertyValue", propertyValue);
15356
+ function substring_(params) {
15357
+ if (params.length < 2)
15358
+ return "";
15359
+ var s = params[0];
15360
+ if (!s || typeof s !== "string")
15361
+ return "";
15362
+ var start = params[1];
15363
+ if (!_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isNumber(start))
15364
+ return "";
15365
+ var end = params.length > 2 ? params[2] : undefined;
15366
+ if (!_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isNumber(end))
15367
+ return s.substring(start);
15368
+ return s.substring(start, end);
15369
+ }
15370
+ FunctionFactory.Instance.register("substring", substring_);
15313
15371
 
15314
15372
 
15315
15373
  /***/ }),
@@ -15451,13 +15509,10 @@ var Cover = /** @class */ (function (_super) {
15451
15509
  function Cover() {
15452
15510
  var _this = _super.call(this) || this;
15453
15511
  _this.cells = [];
15454
- _this.renderBackgroundImage = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_3__["wrapUrlForBackgroundImage"])(_this.backgroundImage);
15455
15512
  ["top", "middle", "bottom"].forEach(function (positionY) {
15456
15513
  return ["left", "center", "right"].forEach(function (positionX) { return _this.cells.push(new CoverCell(_this, positionX, positionY)); });
15457
15514
  });
15458
- _this.updateHeaderClasses();
15459
- _this.updateContentClasses();
15460
- _this.updateBackgroundImageClasses();
15515
+ _this.init();
15461
15516
  return _this;
15462
15517
  }
15463
15518
  Cover.prototype.calcBackgroundSize = function (backgroundImageFit) {
@@ -15473,6 +15528,9 @@ var Cover = /** @class */ (function (_super) {
15473
15528
  this.headerClasses = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_2__["CssClassBuilder"]()
15474
15529
  .append("sv-header")
15475
15530
  .append("sv-header__without-background", (this.backgroundColor === "transparent") && !this.backgroundImage)
15531
+ .append("sv-header__background-color--none", this.backgroundColor === "transparent" && !this.titleColor && !this.descriptionColor)
15532
+ .append("sv-header__background-color--accent", !this.backgroundColor && !this.titleColor && !this.descriptionColor)
15533
+ .append("sv-header__background-color--custom", !!this.backgroundColor && this.backgroundColor !== "transparent" && !this.titleColor && !this.descriptionColor)
15476
15534
  .append("sv-header__overlap", this.overlapEnabled)
15477
15535
  .toString();
15478
15536
  };
@@ -15496,7 +15554,16 @@ var Cover = /** @class */ (function (_super) {
15496
15554
  _super.prototype.fromJSON.call(this, theme.header);
15497
15555
  if (!!theme.cssVariables) {
15498
15556
  this.backgroundColor = theme.cssVariables["--sjs-header-backcolor"];
15557
+ this.titleColor = theme.cssVariables["--sjs-font-headertitle-color"];
15558
+ this.descriptionColor = theme.cssVariables["--sjs-font-headerdescription-color"];
15499
15559
  }
15560
+ this.init();
15561
+ };
15562
+ Cover.prototype.init = function () {
15563
+ this.renderBackgroundImage = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_3__["wrapUrlForBackgroundImage"])(this.backgroundImage);
15564
+ this.updateHeaderClasses();
15565
+ this.updateContentClasses();
15566
+ this.updateBackgroundImageClasses();
15500
15567
  };
15501
15568
  Cover.prototype.getType = function () {
15502
15569
  return "cover";
@@ -15619,6 +15686,12 @@ var Cover = /** @class */ (function (_super) {
15619
15686
  __decorate([
15620
15687
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
15621
15688
  ], Cover.prototype, "backgroundColor", void 0);
15689
+ __decorate([
15690
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
15691
+ ], Cover.prototype, "titleColor", void 0);
15692
+ __decorate([
15693
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
15694
+ ], Cover.prototype, "descriptionColor", void 0);
15622
15695
  __decorate([
15623
15696
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
15624
15697
  onSet: function (newVal, target) {
@@ -16207,12 +16280,14 @@ var map = {
16207
16280
  "./V2Check.svg": "./src/images/V2Check.svg",
16208
16281
  "./V2Check_24x24.svg": "./src/images/V2Check_24x24.svg",
16209
16282
  "./V2DragElement_16x16.svg": "./src/images/V2DragElement_16x16.svg",
16283
+ "./back-to-panel_16x16.svg": "./src/images/back-to-panel_16x16.svg",
16210
16284
  "./chevron.svg": "./src/images/chevron.svg",
16211
16285
  "./clear_16x16.svg": "./src/images/clear_16x16.svg",
16212
16286
  "./close_16x16.svg": "./src/images/close_16x16.svg",
16213
16287
  "./collapseDetail.svg": "./src/images/collapseDetail.svg",
16214
16288
  "./drag-n-drop.svg": "./src/images/drag-n-drop.svg",
16215
16289
  "./expandDetail.svg": "./src/images/expandDetail.svg",
16290
+ "./full-screen_16x16.svg": "./src/images/full-screen_16x16.svg",
16216
16291
  "./loading.svg": "./src/images/loading.svg",
16217
16292
  "./minimize_16x16.svg": "./src/images/minimize_16x16.svg",
16218
16293
  "./no-image.svg": "./src/images/no-image.svg",
@@ -16589,6 +16664,17 @@ module.exports = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\
16589
16664
 
16590
16665
  /***/ }),
16591
16666
 
16667
+ /***/ "./src/images/back-to-panel_16x16.svg":
16668
+ /*!********************************************!*\
16669
+ !*** ./src/images/back-to-panel_16x16.svg ***!
16670
+ \********************************************/
16671
+ /*! no static exports found */
16672
+ /***/ (function(module, exports) {
16673
+
16674
+ 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>"
16675
+
16676
+ /***/ }),
16677
+
16592
16678
  /***/ "./src/images/chevron.svg":
16593
16679
  /*!********************************!*\
16594
16680
  !*** ./src/images/chevron.svg ***!
@@ -16655,6 +16741,17 @@ module.exports = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\
16655
16741
 
16656
16742
  /***/ }),
16657
16743
 
16744
+ /***/ "./src/images/full-screen_16x16.svg":
16745
+ /*!******************************************!*\
16746
+ !*** ./src/images/full-screen_16x16.svg ***!
16747
+ \******************************************/
16748
+ /*! no static exports found */
16749
+ /***/ (function(module, exports) {
16750
+
16751
+ 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>"
16752
+
16753
+ /***/ }),
16754
+
16658
16755
  /***/ "./src/images/loading.svg":
16659
16756
  /*!********************************!*\
16660
16757
  !*** ./src/images/loading.svg ***!
@@ -17908,22 +18005,32 @@ var JsonObjectProperty = /** @class */ (function () {
17908
18005
  enumerable: false,
17909
18006
  configurable: true
17910
18007
  });
18008
+ JsonObjectProperty.prototype.isEnable = function (obj) {
18009
+ if (this.readOnly)
18010
+ return false;
18011
+ if (!obj || !this.enableIf)
18012
+ return true;
18013
+ return this.enableIf(this.getOriginalObj(obj));
18014
+ };
17911
18015
  JsonObjectProperty.prototype.isVisible = function (layout, obj) {
17912
18016
  if (obj === void 0) { obj = null; }
17913
18017
  var isLayout = !this.layout || this.layout == layout;
17914
18018
  if (!this.visible || !isLayout)
17915
18019
  return false;
17916
18020
  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);
18021
+ return this.visibleIf(this.getOriginalObj(obj));
17924
18022
  }
17925
18023
  return true;
17926
18024
  };
18025
+ JsonObjectProperty.prototype.getOriginalObj = function (obj) {
18026
+ if (obj && obj.getOriginalObj) {
18027
+ var orjObj = obj.getOriginalObj();
18028
+ if (orjObj && Serializer.findProperty(orjObj.getType(), this.name)) {
18029
+ return orjObj;
18030
+ }
18031
+ }
18032
+ return obj;
18033
+ };
17927
18034
  Object.defineProperty(JsonObjectProperty.prototype, "visible", {
17928
18035
  get: function () {
17929
18036
  return this.visibleValue != null ? this.visibleValue : true;
@@ -17935,14 +18042,21 @@ var JsonObjectProperty = /** @class */ (function () {
17935
18042
  configurable: true
17936
18043
  });
17937
18044
  JsonObjectProperty.prototype.isAvailableInVersion = function (ver) {
17938
- if (!!this.alternativeName)
18045
+ if (!!this.alternativeName || this.oldName)
17939
18046
  return true;
17940
18047
  return this.isAvailableInVersionCore(ver);
17941
18048
  };
17942
18049
  JsonObjectProperty.prototype.getSerializedName = function (ver) {
17943
18050
  if (!this.alternativeName)
17944
18051
  return this.name;
17945
- return this.isAvailableInVersionCore(ver) ? this.name : this.alternativeName;
18052
+ return this.isAvailableInVersionCore(ver) ? this.name : this.alternativeName || this.oldName;
18053
+ };
18054
+ JsonObjectProperty.prototype.getSerializedProperty = function (obj, ver) {
18055
+ if (!this.oldName || this.isAvailableInVersionCore(ver))
18056
+ return this;
18057
+ if (!obj || !obj.getType)
18058
+ return null;
18059
+ return Serializer.findProperty(obj.getType(), this.oldName);
17946
18060
  };
17947
18061
  JsonObjectProperty.prototype.isAvailableInVersionCore = function (ver) {
17948
18062
  if (!ver || !this.version)
@@ -18028,6 +18142,7 @@ var JsonObjectProperty = /** @class */ (function () {
18028
18142
  "isLocalizableValue",
18029
18143
  "className",
18030
18144
  "alternativeName",
18145
+ "oldName",
18031
18146
  "layout",
18032
18147
  "version",
18033
18148
  "classNamePart",
@@ -18047,6 +18162,7 @@ var JsonObjectProperty = /** @class */ (function () {
18047
18162
  "showMode",
18048
18163
  "dependedProperties",
18049
18164
  "visibleIf",
18165
+ "enableIf",
18050
18166
  "onExecuteExpression",
18051
18167
  "onPropertyEditorUpdate",
18052
18168
  "maxLength",
@@ -18365,7 +18481,7 @@ var JsonMetadataClass = /** @class */ (function () {
18365
18481
  if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(propInfo.maxLength)) {
18366
18482
  prop.maxLength = propInfo.maxLength;
18367
18483
  }
18368
- if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(propInfo.displayName)) {
18484
+ if (propInfo.displayName !== undefined) {
18369
18485
  prop.displayName = propInfo.displayName;
18370
18486
  }
18371
18487
  if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(propInfo.category)) {
@@ -18416,6 +18532,9 @@ var JsonMetadataClass = /** @class */ (function () {
18416
18532
  if (!!propInfo.visibleIf) {
18417
18533
  prop.visibleIf = propInfo.visibleIf;
18418
18534
  }
18535
+ if (!!propInfo.enableIf) {
18536
+ prop.enableIf = propInfo.enableIf;
18537
+ }
18419
18538
  if (!!propInfo.onExecuteExpression) {
18420
18539
  prop.onExecuteExpression = propInfo.onExecuteExpression;
18421
18540
  }
@@ -18475,6 +18594,9 @@ var JsonMetadataClass = /** @class */ (function () {
18475
18594
  if (propInfo.alternativeName) {
18476
18595
  prop.alternativeName = propInfo.alternativeName;
18477
18596
  }
18597
+ if (propInfo.oldName) {
18598
+ prop.oldName = propInfo.oldName;
18599
+ }
18478
18600
  if (propInfo.layout) {
18479
18601
  prop.layout = propInfo.layout;
18480
18602
  }
@@ -18537,11 +18659,11 @@ var JsonMetadata = /** @class */ (function () {
18537
18659
  this.dynamicPropsCache = {};
18538
18660
  }
18539
18661
  JsonMetadata.prototype.getObjPropertyValue = function (obj, name) {
18540
- if (this.isObjWrapper(obj)) {
18662
+ if (this.isObjWrapper(obj) && this.isNeedUseObjWrapper(obj, name)) {
18541
18663
  var orignalObj = obj.getOriginalObj();
18542
- var prop = Serializer.findProperty(orignalObj.getType(), name);
18543
- if (!!prop)
18544
- return this.getObjPropertyValueCore(orignalObj, prop);
18664
+ var prop_1 = Serializer.findProperty(orignalObj.getType(), name);
18665
+ if (!!prop_1)
18666
+ return this.getObjPropertyValueCore(orignalObj, prop_1);
18545
18667
  }
18546
18668
  var prop = Serializer.findProperty(obj.getType(), name);
18547
18669
  if (!prop)
@@ -18578,6 +18700,18 @@ var JsonMetadata = /** @class */ (function () {
18578
18700
  JsonMetadata.prototype.isObjWrapper = function (obj) {
18579
18701
  return !!obj.getOriginalObj && !!obj.getOriginalObj();
18580
18702
  };
18703
+ JsonMetadata.prototype.isNeedUseObjWrapper = function (obj, name) {
18704
+ if (!obj.getDynamicProperties)
18705
+ return true;
18706
+ var props = obj.getDynamicProperties();
18707
+ if (!Array.isArray(props))
18708
+ return false;
18709
+ for (var i = 0; i < props.length; i++) {
18710
+ if (props[i].name === name)
18711
+ return true;
18712
+ }
18713
+ return false;
18714
+ };
18581
18715
  JsonMetadata.prototype.addClass = function (name, properties, creator, parentName) {
18582
18716
  if (creator === void 0) { creator = null; }
18583
18717
  if (parentName === void 0) { parentName = null; }
@@ -19279,6 +19413,14 @@ var JsonObject = /** @class */ (function () {
19279
19413
  return;
19280
19414
  if (options.version && !prop.isAvailableInVersion(options.version))
19281
19415
  return;
19416
+ this.valueToJsonCore(obj, result, prop, options);
19417
+ };
19418
+ JsonObject.prototype.valueToJsonCore = function (obj, result, prop, options) {
19419
+ var serProp = prop.getSerializedProperty(obj, options.version);
19420
+ if (serProp && serProp !== prop) {
19421
+ this.valueToJsonCore(obj, result, serProp, options);
19422
+ return;
19423
+ }
19282
19424
  var value = prop.getSerializableValue(obj);
19283
19425
  if (!options.storeDefaults && prop.isDefaultValueByObj(obj, value))
19284
19426
  return;
@@ -19342,9 +19484,7 @@ var JsonObject = /** @class */ (function () {
19342
19484
  JsonObject.prototype.removePosOnValueToJson = function (property, value) {
19343
19485
  if (!property.isCustom || !value)
19344
19486
  return value;
19345
- if (!!value[JsonObject.positionPropertyName]) {
19346
- delete value[JsonObject.positionPropertyName];
19347
- }
19487
+ this.removePosFromObj(value);
19348
19488
  return value;
19349
19489
  };
19350
19490
  JsonObject.prototype.removePos = function (property, value) {
@@ -19360,9 +19500,14 @@ var JsonObject = /** @class */ (function () {
19360
19500
  this.removePosFromObj(obj[i]);
19361
19501
  }
19362
19502
  }
19503
+ if (typeof obj !== "object")
19504
+ return;
19363
19505
  if (!!obj[JsonObject.positionPropertyName]) {
19364
19506
  delete obj[JsonObject.positionPropertyName];
19365
19507
  }
19508
+ for (var key in obj) {
19509
+ this.removePosFromObj(obj[key]);
19510
+ }
19366
19511
  };
19367
19512
  JsonObject.prototype.isValueArray = function (value) {
19368
19513
  return value && Array.isArray(value);
@@ -20231,7 +20376,11 @@ var LocalizableString = /** @class */ (function () {
20231
20376
  keys[0] == _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.defaultLocaleName &&
20232
20377
  !_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].serialization.localizableStringSerializeAsObject)
20233
20378
  return this.values[keys[0]];
20234
- return this.values;
20379
+ var res = {};
20380
+ for (var key in this.values) {
20381
+ res[key] = this.values[key];
20382
+ }
20383
+ return res;
20235
20384
  };
20236
20385
  LocalizableString.prototype.setJson = function (value) {
20237
20386
  if (!!this.sharedData) {
@@ -20577,7 +20726,7 @@ var englishStrings = {
20577
20726
  chooseFile: "Choose file(s)...",
20578
20727
  noFileChosen: "No file chosen",
20579
20728
  filePlaceholder: "Drag and drop a file here or click the button below to select a file to upload.",
20580
- confirmDelete: "Do you want to delete the record?",
20729
+ confirmDelete: "Are you sure you want to delete this record?",
20581
20730
  keyDuplicationError: "This value should be unique.",
20582
20731
  addColumn: "Add Column",
20583
20732
  addRow: "Add Row",
@@ -20620,12 +20769,12 @@ var englishStrings = {
20620
20769
  modalApplyButtonText: "Apply",
20621
20770
  filterStringPlaceholder: "Type to search...",
20622
20771
  emptyMessage: "No data to display",
20623
- noEntriesText: "There are no entries yet.\nClick the button below to add a new entry.",
20624
- noEntriesReadonlyText: "There are no entries.",
20772
+ noEntriesText: "No entries yet.\nClick the button below to add a new entry.",
20773
+ noEntriesReadonlyText: "No entries.",
20625
20774
  more: "More",
20626
20775
  tagboxDoneButtonCaption: "OK",
20627
- selectToRankEmptyRankedAreaText: "All choices are ranked",
20628
- selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them",
20776
+ selectToRankEmptyRankedAreaText: "All choices are selected for ranking",
20777
+ selectToRankEmptyUnrankedAreaText: "Drag choices here to rank them",
20629
20778
  ok: "OK",
20630
20779
  cancel: "Cancel",
20631
20780
  };
@@ -21729,6 +21878,11 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
21729
21878
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21730
21879
  return c > 3 && r && Object.defineProperty(target, key, r), r;
21731
21880
  };
21881
+ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from) {
21882
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
21883
+ to[j] = from[i];
21884
+ return to;
21885
+ };
21732
21886
 
21733
21887
 
21734
21888
 
@@ -21759,6 +21913,8 @@ var QuestionRowModel = /** @class */ (function (_super) {
21759
21913
  QuestionRowModel.prototype.startLazyRendering = function (rowContainerDiv, findScrollableContainer) {
21760
21914
  var _this = this;
21761
21915
  if (findScrollableContainer === void 0) { findScrollableContainer = _utils_utils__WEBPACK_IMPORTED_MODULE_8__["findScrollableParent"]; }
21916
+ if ("undefined" === typeof document)
21917
+ return;
21762
21918
  this._scrollableParent = findScrollableContainer(rowContainerDiv);
21763
21919
  // if this._scrollableParent is html the scroll event isn't fired, so we should use window
21764
21920
  if (this._scrollableParent === document.documentElement) {
@@ -21973,6 +22129,7 @@ var PanelModelBase = /** @class */ (function (_super) {
21973
22129
  _this.isQuestionsReady = false;
21974
22130
  _this.questionsValue = new Array();
21975
22131
  _this.isRandomizing = false;
22132
+ _this.locCountRowUpdates = 0;
21976
22133
  _this.createNewArray("rows");
21977
22134
  _this.elementsValue = _this.createNewArray("elements", _this.onAddElement.bind(_this), _this.onRemoveElement.bind(_this));
21978
22135
  _this.id = PanelModelBase.getPanelId();
@@ -22847,14 +23004,92 @@ var PanelModelBase = /** @class */ (function (_super) {
22847
23004
  return;
22848
23005
  this.setArrayPropertyDirectly("rows", this.buildRows());
22849
23006
  };
23007
+ PanelModelBase.prototype.blockRowsUpdates = function () {
23008
+ this.locCountRowUpdates++;
23009
+ };
23010
+ PanelModelBase.prototype.releaseRowsUpdates = function () {
23011
+ this.locCountRowUpdates--;
23012
+ };
23013
+ PanelModelBase.prototype.updateRowsBeforeElementRemoved = function (element) {
23014
+ var _this = this;
23015
+ var elementRow = this.findRowByElement(element);
23016
+ var elementRowIndex = this.rows.indexOf(elementRow);
23017
+ var elementIndexInRow = elementRow.elements.indexOf(element);
23018
+ elementRow.elements.splice(elementIndexInRow, 1);
23019
+ if (elementRow.elements.length == 0) {
23020
+ this.rows.splice(elementRowIndex, 1);
23021
+ }
23022
+ else if (!elementRow.elements[0].startWithNewLine && this.rows[elementRowIndex - 1]) {
23023
+ elementRow.elements.forEach(function (el) { return _this.rows[elementRowIndex - 1].addElement(el); });
23024
+ this.rows.splice(elementRowIndex, 1);
23025
+ }
23026
+ else {
23027
+ elementRow.updateVisible();
23028
+ }
23029
+ };
23030
+ PanelModelBase.prototype.updateRowsOnElementAdded = function (element) {
23031
+ var _this = this;
23032
+ var index = this.elements.indexOf(element);
23033
+ var targetElement = this.elements[index + 1];
23034
+ var createRowAtIndex = function (index) {
23035
+ var row = _this.createRowAndSetLazy(index);
23036
+ if (_this.isDesignModeV2) {
23037
+ row.setIsLazyRendering(false);
23038
+ }
23039
+ _this.rows.splice(index, 0, row);
23040
+ return row;
23041
+ };
23042
+ var updateRow = function (row, start, deleteCount) {
23043
+ var _a;
23044
+ var elements = [];
23045
+ for (var _i = 3; _i < arguments.length; _i++) {
23046
+ elements[_i - 3] = arguments[_i];
23047
+ }
23048
+ var removedElements = (_a = row.elements).splice.apply(_a, __spreadArray([start, deleteCount], elements));
23049
+ row.updateVisible();
23050
+ return removedElements;
23051
+ };
23052
+ if (!targetElement) {
23053
+ if (index == 0 || element.startWithNewLine) {
23054
+ updateRow(createRowAtIndex(this.rows.length), 0, 0, element);
23055
+ }
23056
+ else {
23057
+ this.rows[this.rows.length - 1].addElement(element);
23058
+ }
23059
+ return;
23060
+ }
23061
+ var targetRow = this.findRowByElement(targetElement);
23062
+ if (!targetRow)
23063
+ return;
23064
+ var targetRowIndex = this.rows.indexOf(targetRow);
23065
+ var targetElementIndexInRow = targetRow.elements.indexOf(targetElement);
23066
+ if (targetElementIndexInRow == 0) {
23067
+ if (!targetElement.startWithNewLine) {
23068
+ updateRow(targetRow, 0, 0, element);
23069
+ }
23070
+ else if (element.startWithNewLine || targetRowIndex < 1) {
23071
+ createRowAtIndex(targetRowIndex).addElement(element);
23072
+ }
23073
+ else {
23074
+ this.rows[targetRowIndex - 1].addElement(element);
23075
+ }
23076
+ }
23077
+ else {
23078
+ if (element.startWithNewLine) {
23079
+ updateRow.apply(void 0, __spreadArray([createRowAtIndex(targetRowIndex + 1), 0, 0], [element].concat(updateRow(targetRow, targetElementIndexInRow, targetRow.elements.length))));
23080
+ }
23081
+ else {
23082
+ updateRow(targetRow, targetElementIndexInRow, 0, element);
23083
+ }
23084
+ }
23085
+ };
22850
23086
  PanelModelBase.prototype.onAddElement = function (element, index) {
22851
23087
  var _this = this;
22852
23088
  element.setSurveyImpl(this.surveyImpl);
22853
23089
  element.parent = this;
22854
23090
  this.markQuestionListDirty();
22855
23091
  if (this.canBuildRows()) {
22856
- var dragDropInfo = _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].supportCreatorV2 ? this.getDragDropInfo() : undefined;
22857
- this.dragDropPanelHelper.updateRowsOnElementAdded(element, index, dragDropInfo, this);
23092
+ this.updateRowsOnElementAdded(element);
22858
23093
  }
22859
23094
  if (element.isPanel) {
22860
23095
  var p = element;
@@ -22908,7 +23143,10 @@ var PanelModelBase = /** @class */ (function (_super) {
22908
23143
  }
22909
23144
  };
22910
23145
  PanelModelBase.prototype.onElementStartWithNewLineChanged = function (element) {
22911
- this.onRowsChanged();
23146
+ if (this.locCountRowUpdates > 0)
23147
+ return;
23148
+ this.updateRowsBeforeElementRemoved(element);
23149
+ this.updateRowsOnElementAdded(element);
22912
23150
  };
22913
23151
  PanelModelBase.prototype.updateRowsVisibility = function (element) {
22914
23152
  var rows = this.rows;
@@ -22969,7 +23207,9 @@ var PanelModelBase = /** @class */ (function (_super) {
22969
23207
  return;
22970
23208
  row.elements.splice(elIndex, 1);
22971
23209
  if (row.elements.length > 0) {
23210
+ this.blockRowsUpdates();
22972
23211
  row.elements[0].startWithNewLine = true;
23212
+ this.releaseRowsUpdates();
22973
23213
  row.updateVisible();
22974
23214
  }
22975
23215
  else {
@@ -23195,6 +23435,42 @@ var PanelModelBase = /** @class */ (function (_super) {
23195
23435
  }
23196
23436
  return true;
23197
23437
  };
23438
+ PanelModelBase.prototype.insertElement = function (element, dest, location) {
23439
+ if (location === void 0) { location = "bottom"; }
23440
+ if (!dest) {
23441
+ this.addElement(element);
23442
+ return;
23443
+ }
23444
+ this.blockRowsUpdates();
23445
+ var index = this.elements.indexOf(dest);
23446
+ var destRow = this.findRowByElement(dest);
23447
+ if (location == "left" || location == "right") {
23448
+ if (location == "right") {
23449
+ element.startWithNewLine = false;
23450
+ index++;
23451
+ }
23452
+ else {
23453
+ if (destRow.elements.indexOf(dest) == 0) {
23454
+ dest.startWithNewLine = false;
23455
+ element.startWithNewLine = true;
23456
+ }
23457
+ else {
23458
+ element.startWithNewLine = false;
23459
+ }
23460
+ }
23461
+ }
23462
+ else {
23463
+ element.startWithNewLine = true;
23464
+ if (location == "top") {
23465
+ index = this.elements.indexOf(destRow.elements[0]);
23466
+ }
23467
+ else {
23468
+ index = this.elements.indexOf(destRow.elements[destRow.elements.length - 1]) + 1;
23469
+ }
23470
+ }
23471
+ this.releaseRowsUpdates();
23472
+ this.addElement(element, index);
23473
+ };
23198
23474
  PanelModelBase.prototype.insertElementAfter = function (element, after) {
23199
23475
  var index = this.elements.indexOf(after);
23200
23476
  if (index >= 0)
@@ -23240,7 +23516,7 @@ var PanelModelBase = /** @class */ (function (_super) {
23240
23516
  *
23241
23517
  * This method returns `null` if the panel cannot be created or added to this panel/page; otherwise, the method returns the created panel.
23242
23518
  * @param name A panel name.
23243
- * @see elements
23519
+ * @see elementsup
23244
23520
  * @see addElement
23245
23521
  */
23246
23522
  PanelModelBase.prototype.addNewPanel = function (name) {
@@ -23869,7 +24145,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("panel", [
23869
24145
  { name: "minWidth", defaultFunc: function () { return "auto"; } },
23870
24146
  { name: "maxWidth", defaultFunc: function () { return _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].maxWidth; } },
23871
24147
  { name: "innerIndent:number", default: 0, choices: [0, 1, 2, 3] },
23872
- { name: "indent:number", default: 0, choices: [0, 1, 2, 3] },
24148
+ { name: "indent:number", default: 0, choices: [0, 1, 2, 3], visible: false },
23873
24149
  {
23874
24150
  name: "page",
23875
24151
  isSerializable: false,
@@ -24042,13 +24318,15 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
24042
24318
  };
24043
24319
  PopupDropdownViewModel.prototype.getActualHorizontalPosition = function () {
24044
24320
  var actualHorizontalPosition = this.model.horizontalPosition;
24045
- var isRtl = !!document && document.defaultView.getComputedStyle(document.body).direction == "rtl";
24046
- if (isRtl) {
24047
- if (this.model.horizontalPosition === "left") {
24048
- actualHorizontalPosition = "right";
24049
- }
24050
- else if (this.model.horizontalPosition === "right") {
24051
- actualHorizontalPosition = "left";
24321
+ if ("undefined" !== typeof document) {
24322
+ var isRtl = !!document && document.defaultView.getComputedStyle(document.body).direction == "rtl";
24323
+ if (isRtl) {
24324
+ if (this.model.horizontalPosition === "left") {
24325
+ actualHorizontalPosition = "right";
24326
+ }
24327
+ else if (this.model.horizontalPosition === "right") {
24328
+ actualHorizontalPosition = "left";
24329
+ }
24052
24330
  }
24053
24331
  }
24054
24332
  return actualHorizontalPosition;
@@ -24337,7 +24615,7 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24337
24615
  else {
24338
24616
  _this.surveyValue = _this.createSurvey(jsonObj);
24339
24617
  }
24340
- //this.surveyValue.showTitle = false;
24618
+ _this.surveyValue.fitToContainer = true;
24341
24619
  if ("undefined" !== typeof document) {
24342
24620
  _this.windowElement = document.createElement("div");
24343
24621
  }
@@ -24386,6 +24664,20 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24386
24664
  enumerable: false,
24387
24665
  configurable: true
24388
24666
  });
24667
+ Object.defineProperty(PopupSurveyModel.prototype, "isFullScreen", {
24668
+ get: function () {
24669
+ return this.getPropertyValue("isFullScreen", false);
24670
+ },
24671
+ set: function (val) {
24672
+ if (!this.isExpanded && !!val) {
24673
+ this.isExpanded = true;
24674
+ }
24675
+ this.setPropertyValue("isFullScreen", val);
24676
+ this.setCssRoot();
24677
+ },
24678
+ enumerable: false,
24679
+ configurable: true
24680
+ });
24389
24681
  /**
24390
24682
  * Shows the pop-up survey. The survey may appear [expanded or collapsed](#isExpanded).
24391
24683
  *
@@ -24406,6 +24698,9 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24406
24698
  PopupSurveyModel.prototype.hide = function () {
24407
24699
  this.isShowing = false;
24408
24700
  };
24701
+ PopupSurveyModel.prototype.toggleFullScreen = function () {
24702
+ this.isFullScreen = !this.isFullScreen;
24703
+ };
24409
24704
  Object.defineProperty(PopupSurveyModel.prototype, "isExpanded", {
24410
24705
  /**
24411
24706
  * Indicates whether the pop-up window is expanded or collapsed.
@@ -24416,6 +24711,9 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24416
24711
  return this.getPropertyValue("isExpanded", false);
24417
24712
  },
24418
24713
  set: function (val) {
24714
+ if (!!this.isFullScreen && !val) {
24715
+ this.isFullScreen = false;
24716
+ }
24419
24717
  this.setPropertyValue("isExpanded", val);
24420
24718
  },
24421
24719
  enumerable: false,
@@ -24506,6 +24804,21 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24506
24804
  enumerable: false,
24507
24805
  configurable: true
24508
24806
  });
24807
+ Object.defineProperty(PopupSurveyModel.prototype, "allowFullScreen", {
24808
+ /**
24809
+ * Specifies whether to display a button that allows respondents to show the pop-up survey in full screen mode.
24810
+ *
24811
+ * Default value: `false`
24812
+ */
24813
+ get: function () {
24814
+ return this.getPropertyValue("allowFullScreen", false);
24815
+ },
24816
+ set: function (val) {
24817
+ this.setPropertyValue("allowFullScreen", val);
24818
+ },
24819
+ enumerable: false,
24820
+ configurable: true
24821
+ });
24509
24822
  Object.defineProperty(PopupSurveyModel.prototype, "css", {
24510
24823
  get: function () {
24511
24824
  return this.survey.css;
@@ -24586,6 +24899,13 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24586
24899
  enumerable: false,
24587
24900
  configurable: true
24588
24901
  });
24902
+ Object.defineProperty(PopupSurveyModel.prototype, "cssHeaderFullScreenButton", {
24903
+ get: function () {
24904
+ return this.getPropertyValue("cssHeaderFullScreenButton", "");
24905
+ },
24906
+ enumerable: false,
24907
+ configurable: true
24908
+ });
24589
24909
  Object.defineProperty(PopupSurveyModel.prototype, "renderedWidth", {
24590
24910
  get: function () {
24591
24911
  var width = this.getPropertyValue("width", "60%");
@@ -24600,7 +24920,7 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24600
24920
  if (!this.css || !this.css.window)
24601
24921
  return;
24602
24922
  var cssWindow = this.css.window;
24603
- this.setPropertyValue("cssRoot", cssWindow.root);
24923
+ this.setCssRoot();
24604
24924
  this.setPropertyValue("cssRootCollapsedMod", cssWindow.rootCollapsedMod);
24605
24925
  this.setPropertyValue("cssRootContent", cssWindow.rootContent);
24606
24926
  this.setPropertyValue("cssBody", cssWindow.body);
@@ -24612,8 +24932,18 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24612
24932
  this.setPropertyValue("cssHeaderButtonsContainer", cssHeader.buttonsContainer);
24613
24933
  this.setPropertyValue("cssHeaderCollapseButton", cssHeader.collapseButton);
24614
24934
  this.setPropertyValue("cssHeaderCloseButton", cssHeader.closeButton);
24935
+ this.setPropertyValue("cssHeaderFullScreenButton", cssHeader.fullScreenButton);
24615
24936
  this.updateCssButton();
24616
24937
  };
24938
+ PopupSurveyModel.prototype.setCssRoot = function () {
24939
+ var cssWindow = this.css.window;
24940
+ if (this.isFullScreen) {
24941
+ this.setPropertyValue("cssRoot", cssWindow.root + " " + cssWindow.rootFullScreenMode);
24942
+ }
24943
+ else {
24944
+ this.setPropertyValue("cssRoot", cssWindow.root);
24945
+ }
24946
+ };
24617
24947
  PopupSurveyModel.prototype.updateCssButton = function () {
24618
24948
  var cssHeader = !!this.css.window ? this.css.window.header : null;
24619
24949
  if (!cssHeader)
@@ -25043,7 +25373,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
25043
25373
  this.resetComponentElement();
25044
25374
  };
25045
25375
  PopupBaseViewModel.prototype.initializePopupContainer = function () {
25046
- if (!this.container) {
25376
+ if (!this.container && ("undefined" !== typeof document)) {
25047
25377
  var container = document.createElement("div");
25048
25378
  this.createdContainer = container;
25049
25379
  Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["getElement"])(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.popupMountContainer).appendChild(container);
@@ -31323,8 +31653,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("selectbase", [
31323
31653
  { name: "separateSpecialChoices:boolean", visible: false },
31324
31654
  { name: "showOtherItem:boolean", alternativeName: "hasOther" },
31325
31655
  { name: "showNoneItem:boolean", alternativeName: "hasNone" },
31326
- { name: "showRefuseItem:boolean", visible: false },
31327
- { name: "showDontKnowItem:boolean", visible: false },
31656
+ { name: "showRefuseItem:boolean", visible: false, version: "1.9.128" },
31657
+ { name: "showDontKnowItem:boolean", visible: false, version: "1.9.128" },
31328
31658
  {
31329
31659
  name: "otherPlaceholder",
31330
31660
  alternativeName: "otherPlaceHolder",
@@ -31501,8 +31831,8 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31501
31831
  });
31502
31832
  QuestionBooleanModel.prototype.setBooleanValue = function (val) {
31503
31833
  if (this.isValueEmpty(val)) {
31504
- this.value = null;
31505
- this.booleanValueRendered = null;
31834
+ this.value = undefined;
31835
+ this.booleanValueRendered = undefined;
31506
31836
  }
31507
31837
  else {
31508
31838
  this.value = val == true ? this.getValueTrue() : this.getValueFalse();
@@ -31518,8 +31848,6 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31518
31848
  val = "true";
31519
31849
  if (val === false)
31520
31850
  val = "false";
31521
- if (val === undefined)
31522
- val = "indeterminate";
31523
31851
  this.setPropertyValue("defaultValue", val);
31524
31852
  this.updateValueWithDefaults();
31525
31853
  },
@@ -31527,13 +31855,10 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31527
31855
  configurable: true
31528
31856
  });
31529
31857
  QuestionBooleanModel.prototype.getDefaultValue = function () {
31530
- if (this.defaultValue == "indeterminate")
31531
- return null;
31532
- if (this.defaultValue === undefined)
31533
- return null;
31534
- return this.defaultValue == "true"
31535
- ? this.getValueTrue()
31536
- : this.getValueFalse();
31858
+ var val = this.defaultValue;
31859
+ if (val === "indeterminate" || val === undefined || val === null)
31860
+ return undefined;
31861
+ return val == "true" ? this.getValueTrue() : this.getValueFalse();
31537
31862
  };
31538
31863
  Object.defineProperty(QuestionBooleanModel.prototype, "locTitle", {
31539
31864
  get: function () {
@@ -31592,7 +31917,21 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31592
31917
  });
31593
31918
  Object.defineProperty(QuestionBooleanModel.prototype, "isDeterminated", {
31594
31919
  get: function () {
31595
- return this.booleanValue !== null;
31920
+ return this.booleanValue !== null && this.booleanValue !== undefined;
31921
+ },
31922
+ enumerable: false,
31923
+ configurable: true
31924
+ });
31925
+ Object.defineProperty(QuestionBooleanModel.prototype, "locLabelLeft", {
31926
+ get: function () {
31927
+ return this.swapOrder ? this.getLocalizableString("labelTrue") : this.getLocalizableString("labelFalse");
31928
+ },
31929
+ enumerable: false,
31930
+ configurable: true
31931
+ });
31932
+ Object.defineProperty(QuestionBooleanModel.prototype, "locLabelRight", {
31933
+ get: function () {
31934
+ return this.swapOrder ? this.getLocalizableString("labelFalse") : this.getLocalizableString("labelTrue");
31596
31935
  },
31597
31936
  enumerable: false,
31598
31937
  configurable: true
@@ -31632,8 +31971,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31632
31971
  this.setBooleanValue(true);
31633
31972
  if (this.isDefaultValueSet("false", this.valueFalse))
31634
31973
  this.setBooleanValue(false);
31635
- if (this.defaultValue == "indeterminate")
31636
- this.setBooleanValue(null);
31974
+ var val = this.defaultValue;
31975
+ if (val === "indeterminate" || val === null || val === undefined)
31976
+ this.setBooleanValue(undefined);
31637
31977
  };
31638
31978
  QuestionBooleanModel.prototype.isDefaultValueSet = function (defaultValueCheck, valueTrueOrFalse) {
31639
31979
  return this.defaultValue == defaultValueCheck || (valueTrueOrFalse !== undefined && this.defaultValue === valueTrueOrFalse);
@@ -31650,7 +31990,8 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31650
31990
  .append(css.itemDisabled, this.isReadOnly)
31651
31991
  .append(css.itemHover, !this.isDesignMode)
31652
31992
  .append(css.itemChecked, !!this.booleanValue)
31653
- .append(css.itemIndeterminate, this.booleanValue === null)
31993
+ .append(css.itemExchanged, !!this.swapOrder)
31994
+ .append(css.itemIndeterminate, !this.isDeterminated)
31654
31995
  .toString();
31655
31996
  };
31656
31997
  QuestionBooleanModel.prototype.getItemCss = function () {
@@ -31669,15 +32010,15 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31669
32010
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
31670
32011
  .append(this.cssClasses.label)
31671
32012
  .append(this.cssClasses.disabledLabel, this.booleanValue === !checked || this.isReadOnly)
31672
- .append(this.cssClasses.labelTrue, !this.isIndeterminate && checked === true)
31673
- .append(this.cssClasses.labelFalse, !this.isIndeterminate && checked === false)
32013
+ .append(this.cssClasses.labelTrue, !this.isIndeterminate && checked === !this.swapOrder)
32014
+ .append(this.cssClasses.labelFalse, !this.isIndeterminate && checked === this.swapOrder)
31674
32015
  .toString();
31675
32016
  };
31676
32017
  Object.defineProperty(QuestionBooleanModel.prototype, "svgIcon", {
31677
32018
  get: function () {
31678
32019
  if (this.booleanValue && this.cssClasses.svgIconCheckedId)
31679
32020
  return this.cssClasses.svgIconCheckedId;
31680
- if (this.booleanValue === null && this.cssClasses.svgIconIndId)
32021
+ if (!this.isDeterminated && this.cssClasses.svgIconIndId)
31681
32022
  return this.cssClasses.svgIconIndId;
31682
32023
  if (!this.booleanValue && this.cssClasses.svgIconUncheckedId)
31683
32024
  return this.cssClasses.svgIconUncheckedId;
@@ -31707,8 +32048,8 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31707
32048
  newValue = true;
31708
32049
  if (newValue === "false" && this.valueFalse !== "false")
31709
32050
  newValue = false;
31710
- if (newValue === "indeterminate")
31711
- newValue = null;
32051
+ if (newValue === "indeterminate" || newValue === null)
32052
+ newValue = undefined;
31712
32053
  _super.prototype.setQuestionValue.call(this, newValue, updateIsAnswered);
31713
32054
  };
31714
32055
  /* #region web-based methods */
@@ -31720,7 +32061,10 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31720
32061
  return true;
31721
32062
  };
31722
32063
  QuestionBooleanModel.prototype.calculateBooleanValueByEvent = function (event, isRightClick) {
31723
- var isRtl = document.defaultView.getComputedStyle(event.target).direction == "rtl";
32064
+ var isRtl = false;
32065
+ if ("undefined" !== typeof document) {
32066
+ isRtl = document.defaultView.getComputedStyle(event.target).direction == "rtl";
32067
+ }
31724
32068
  this.booleanValue = isRtl ? !isRightClick : isRightClick;
31725
32069
  };
31726
32070
  QuestionBooleanModel.prototype.onSwitchClickModel = function (event) {
@@ -31783,6 +32127,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31783
32127
  __decorate([
31784
32128
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: true })
31785
32129
  ], QuestionBooleanModel.prototype, "label", void 0);
32130
+ __decorate([
32131
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
32132
+ ], QuestionBooleanModel.prototype, "swapOrder", void 0);
31786
32133
  __decorate([
31787
32134
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
31788
32135
  ], QuestionBooleanModel.prototype, "valueTrue", void 0);
@@ -31805,6 +32152,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("boolean", [
31805
32152
  },
31806
32153
  "valueTrue",
31807
32154
  "valueFalse",
32155
+ { name: "swapOrder:boolean", category: "general" },
31808
32156
  { name: "renderAs", default: "default", visible: false },
31809
32157
  ], function () {
31810
32158
  return new QuestionBooleanModel("");
@@ -33217,8 +33565,8 @@ var ComponentQuestionJSON = /** @class */ (function () {
33217
33565
  });
33218
33566
  ComponentQuestionJSON.prototype.getDynamicProperties = function () {
33219
33567
  if (!Array.isArray(this.dynamicProperties)) {
33568
+ this.dynamicProperties = this.calcDynamicProperties();
33220
33569
  }
33221
- this.dynamicProperties = this.calcDynamicProperties();
33222
33570
  return this.dynamicProperties;
33223
33571
  };
33224
33572
  ComponentQuestionJSON.prototype.calcDynamicProperties = function () {
@@ -33595,8 +33943,25 @@ var QuestionCustomModel = /** @class */ (function (_super) {
33595
33943
  return this.questionWrapper;
33596
33944
  };
33597
33945
  QuestionCustomModel.prototype.createWrapper = function () {
33946
+ var _this = this;
33598
33947
  this.questionWrapper = this.createQuestion();
33599
33948
  this.createDynamicProperties(this.questionWrapper);
33949
+ if (this.getDynamicProperties().length > 0) {
33950
+ this.questionWrapper.onPropertyValueChangedCallback = function (name, oldValue, newValue, sender, arrayChanges) {
33951
+ var prop = _this.getDynamicProperty(name);
33952
+ if (prop) {
33953
+ _this.propertyValueChanged(name, oldValue, newValue, arrayChanges);
33954
+ }
33955
+ };
33956
+ }
33957
+ };
33958
+ QuestionCustomModel.prototype.getDynamicProperty = function (name) {
33959
+ var props = this.getDynamicProperties();
33960
+ for (var i = 0; i < props.length; i++) {
33961
+ if (props[i].name === name)
33962
+ return props[i];
33963
+ }
33964
+ return null;
33600
33965
  };
33601
33966
  QuestionCustomModel.prototype.getElement = function () {
33602
33967
  return this.contentQuestion;
@@ -34006,6 +34371,13 @@ var QuestionCompositeModel = /** @class */ (function (_super) {
34006
34371
  _super.prototype.setValue.call(this, name, newValue, locNotification, allowNotifyValueChanged);
34007
34372
  this.settingNewValue = false;
34008
34373
  };
34374
+ QuestionCompositeModel.prototype.getFilteredValues = function () {
34375
+ var values = !!this.data ? this.data.getFilteredValues() : {};
34376
+ if (!!this.contentPanel) {
34377
+ values[QuestionCompositeModel.ItemVariableName] = this.contentPanel.getValue();
34378
+ }
34379
+ return values;
34380
+ };
34009
34381
  QuestionCompositeModel.prototype.updateValueCoreWithPanelValue = function () {
34010
34382
  var panelValue = this.getContentPanelValue();
34011
34383
  if (this.isTwoValueEquals(this.getValueCore(), panelValue))
@@ -35420,7 +35792,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
35420
35792
  };
35421
35793
  _this.doClean = function () {
35422
35794
  if (_this.needConfirmRemoveFile) {
35423
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(_this.confirmRemoveAllMessage, function () { _this.clearFilesCore(); }, undefined, _this.getLocale());
35795
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(_this.confirmRemoveAllMessage, function () { _this.clearFilesCore(); }, undefined, _this.getLocale(), _this.survey.rootElement);
35424
35796
  return;
35425
35797
  }
35426
35798
  _this.clearFilesCore();
@@ -35774,6 +36146,20 @@ var QuestionFileModel = /** @class */ (function (_super) {
35774
36146
  enumerable: false,
35775
36147
  configurable: true
35776
36148
  });
36149
+ QuestionFileModel.prototype.chooseFile = function (event) {
36150
+ var _this = this;
36151
+ var inputElement = document.getElementById(this.inputId);
36152
+ event.preventDefault();
36153
+ event.stopImmediatePropagation();
36154
+ if (inputElement) {
36155
+ if (this.survey) {
36156
+ this.survey.chooseFiles(inputElement, function (files) { return _this.loadFiles(files); }, { element: this });
36157
+ }
36158
+ else {
36159
+ inputElement.click();
36160
+ }
36161
+ }
36162
+ };
35777
36163
  Object.defineProperty(QuestionFileModel.prototype, "needConfirmRemoveFile", {
35778
36164
  /**
35779
36165
  * Specifies whether users should confirm file deletion.
@@ -36246,8 +36632,8 @@ var QuestionFileModel = /** @class */ (function (_super) {
36246
36632
  _super.prototype.updateElementCss.call(this, reNew);
36247
36633
  this.updateCurrentMode();
36248
36634
  };
36249
- QuestionFileModel.prototype.endLoadingFromJson = function () {
36250
- _super.prototype.endLoadingFromJson.call(this);
36635
+ QuestionFileModel.prototype.onSurveyLoad = function () {
36636
+ _super.prototype.onSurveyLoad.call(this);
36251
36637
  this.updateCurrentMode();
36252
36638
  this.updateActionsVisibility();
36253
36639
  this.loadPreview(this.value);
@@ -36310,7 +36696,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
36310
36696
  QuestionFileModel.prototype.doRemoveFile = function (data) {
36311
36697
  var _this = this;
36312
36698
  if (this.needConfirmRemoveFile) {
36313
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(this.getConfirmRemoveMessage(data.name), function () { _this.removeFileCore(data); }, undefined, this.getLocale());
36699
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(this.getConfirmRemoveMessage(data.name), function () { _this.removeFileCore(data); }, undefined, this.getLocale(), this.survey.rootElement);
36314
36700
  return;
36315
36701
  }
36316
36702
  this.removeFileCore(data);
@@ -36335,9 +36721,12 @@ var QuestionFileModel = /** @class */ (function (_super) {
36335
36721
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: 0 })
36336
36722
  ], QuestionFileModel.prototype, "indexToShow", void 0);
36337
36723
  __decorate([
36338
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: 1, onSet: function (_, target) {
36724
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
36725
+ defaultValue: 1,
36726
+ onSet: function (_, target) {
36339
36727
  target.updateFileNavigator();
36340
- } })
36728
+ }
36729
+ })
36341
36730
  ], QuestionFileModel.prototype, "pageSize", void 0);
36342
36731
  __decorate([
36343
36732
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
@@ -36346,11 +36735,13 @@ var QuestionFileModel = /** @class */ (function (_super) {
36346
36735
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
36347
36736
  ], QuestionFileModel.prototype, "allowCameraAccess", void 0);
36348
36737
  __decorate([
36349
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ onSet: function (val, obj) {
36738
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
36739
+ onSet: function (val, obj) {
36350
36740
  if (!obj.isLoadingFromJson) {
36351
36741
  obj.updateCurrentMode();
36352
36742
  }
36353
- } })
36743
+ }
36744
+ })
36354
36745
  ], QuestionFileModel.prototype, "sourceType", void 0);
36355
36746
  __decorate([
36356
36747
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
@@ -38762,6 +39153,9 @@ var MatrixDropdownCell = /** @class */ (function () {
38762
39153
  enumerable: false,
38763
39154
  configurable: true
38764
39155
  });
39156
+ MatrixDropdownCell.prototype.getQuestionWrapperClassName = function (className) {
39157
+ return className;
39158
+ };
38765
39159
  MatrixDropdownCell.prototype.runCondition = function (values, properties) {
38766
39160
  this.question.runCondition(values, properties);
38767
39161
  };
@@ -38801,6 +39195,22 @@ var MatrixDropdownTotalCell = /** @class */ (function (_super) {
38801
39195
  this.question.unlocCalculation();
38802
39196
  this.question.runIfReadOnly = true;
38803
39197
  };
39198
+ MatrixDropdownTotalCell.prototype.getQuestionWrapperClassName = function (className) {
39199
+ var result = _super.prototype.getQuestionWrapperClassName.call(this, className);
39200
+ if (!result) {
39201
+ return result;
39202
+ }
39203
+ if (this.question.expression && this.question.expression != "''") {
39204
+ result += " " + className + "--expression";
39205
+ }
39206
+ var alignment = this.column.totalAlignment;
39207
+ if (alignment === "auto") {
39208
+ if (this.column.cellType === "dropdown") {
39209
+ alignment = "left";
39210
+ }
39211
+ }
39212
+ return result + " " + className + "--" + alignment;
39213
+ };
38804
39214
  MatrixDropdownTotalCell.prototype.getTotalExpression = function () {
38805
39215
  if (!!this.column.totalExpression)
38806
39216
  return this.column.totalExpression;
@@ -39512,7 +39922,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
39512
39922
  _this.clearRowsAndResetRenderedTable();
39513
39923
  });
39514
39924
  _this.registerPropertyChangedHandlers([
39515
- "columnLayout",
39925
+ "transposeData",
39516
39926
  "addRowLocation",
39517
39927
  "hideColumnsIfEmpty",
39518
39928
  "showHeader",
@@ -39609,20 +40019,32 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
39609
40019
  this.clearRowsAndResetRenderedTable();
39610
40020
  }
39611
40021
  };
39612
- Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "columnLayout", {
40022
+ Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "transposeData", {
39613
40023
  /**
39614
- * Specifies the matrix layout. Set this property to `"vertical"` if you want to display columns instead of rows and rows instead of columns.
40024
+ * Specifies whether to display [`columns`](#columns) as rows and [`rows`](#rows) as columns.
39615
40025
  *
39616
- * Default value: `"horizontal"`
39617
- * @see columns
39618
- * @see rows
39619
- * @see isColumnLayoutHorizontal
40026
+ * Default value: `false`
40027
+ *
40028
+ * [View Demo](https://surveyjs.io/form-library/examples/transpose-dynamic-rows-to-columns-in-matrix/ (linkStyle))
39620
40029
  */
39621
40030
  get: function () {
39622
- return this.getPropertyValue("columnLayout");
40031
+ return this.getPropertyValue("transposeData");
39623
40032
  },
39624
40033
  set: function (val) {
39625
- this.setPropertyValue("columnLayout", val);
40034
+ this.setPropertyValue("transposeData", val);
40035
+ },
40036
+ enumerable: false,
40037
+ configurable: true
40038
+ });
40039
+ Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "columnLayout", {
40040
+ /**
40041
+ * This property is obsolete. Use the [`transposeData`](#transposeData) property instead.
40042
+ */
40043
+ get: function () {
40044
+ return this.transposeData ? "vertical" : "horizontal";
40045
+ },
40046
+ set: function (val) {
40047
+ this.transposeData = val === "vertical";
39626
40048
  },
39627
40049
  enumerable: false,
39628
40050
  configurable: true
@@ -39685,15 +40107,13 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
39685
40107
  };
39686
40108
  Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "isColumnLayoutHorizontal", {
39687
40109
  /**
39688
- * Returns `true` if columns are placed in the horizontal direction and rows in the vertical direction.
40110
+ * Returns `true` if [`columns`](#columns) are placed in the horizontal direction and [`rows`](#columns) in the vertical direction.
39689
40111
  *
39690
- * To specify the layout, use the `columnLayout` property. If you set it to `"vertical"`, the survey applies it only when the screen has enough space. Otherwise, the survey falls back to the horizontal layout, but the `columnLayout` property remains set to `"vertical"`. Unlike `columnLayout`, the `isColumnLayoutHorizontal` property always indicates the current layout.
39691
- * @see columnLayout
40112
+ * To specify the layout, use the [`transposeData`](#transposeData) property. If you set it to `true`, the survey applies it only when the screen has enough space. Otherwise, the survey falls back to the original layout, but the `transposeData` property remains set to `true`. Unlike `transposeData`, the `isColumnLayoutHorizontal` property always indicates the current layout.
40113
+ * @see transposeData
39692
40114
  */
39693
40115
  get: function () {
39694
- if (this.isMobile)
39695
- return true;
39696
- return this.columnLayout != "vertical";
40116
+ return this.isMobile ? true : !this.transposeData;
39697
40117
  },
39698
40118
  enumerable: false,
39699
40119
  configurable: true
@@ -41228,8 +41648,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownb
41228
41648
  {
41229
41649
  name: "columnLayout",
41230
41650
  alternativeName: "columnsLocation",
41231
- default: "horizontal",
41232
41651
  choices: ["horizontal", "vertical"],
41652
+ visible: false, isSerializable: false
41653
+ },
41654
+ {
41655
+ name: "transposeData:boolean", version: "1.9.130", oldName: "columnLayout"
41233
41656
  },
41234
41657
  {
41235
41658
  name: "detailElements",
@@ -41242,9 +41665,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownb
41242
41665
  default: "none",
41243
41666
  },
41244
41667
  { 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"; }
41668
+ {
41669
+ name: "detailErrorLocation", default: "default", choices: ["default", "top", "bottom"],
41670
+ visibleIf: function (obj) { return !!obj && obj.detailPanelMode != "none"; }
41246
41671
  },
41247
- "horizontalScroll:boolean",
41672
+ { name: "horizontalScroll:boolean", visible: false, },
41248
41673
  {
41249
41674
  name: "choices:itemvalue[]", uniqueProperty: "value",
41250
41675
  },
@@ -42041,6 +42466,32 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
42041
42466
  enumerable: false,
42042
42467
  configurable: true
42043
42468
  });
42469
+ Object.defineProperty(MatrixDropdownColumn.prototype, "totalAlignment", {
42470
+ /**
42471
+ * An alignment for calculated total values.
42472
+ *
42473
+ * Possible values:
42474
+ *
42475
+ * - `"left"`
42476
+ * - `"center"`
42477
+ * - `"right"`
42478
+ * - `"auto"` (default) - Applies one of the values above based on the column's [cell type](#cellType).
42479
+ *
42480
+ * [View Demo](https://surveyjs.io/form-library/examples/aggregate-data-within-form/ (linkStyle))
42481
+ * @see totalType
42482
+ * @see totalFormat
42483
+ * @see totalCurrency
42484
+ * @see totalDisplayStyle
42485
+ */
42486
+ get: function () {
42487
+ return this.getPropertyValue("totalAlignment");
42488
+ },
42489
+ set: function (val) {
42490
+ this.setPropertyValue("totalAlignment", val);
42491
+ },
42492
+ enumerable: false,
42493
+ configurable: true
42494
+ });
42044
42495
  Object.defineProperty(MatrixDropdownColumn.prototype, "totalCurrency", {
42045
42496
  /**
42046
42497
  * Specifies a currency used to display calculated total values. Applies only if [`totalDisplayStyle`](#totalDisplayStyle) is set to `"currency"`.
@@ -42359,6 +42810,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownc
42359
42810
  default: "none",
42360
42811
  choices: ["none", "decimal", "currency", "percent"],
42361
42812
  },
42813
+ {
42814
+ name: "totalAlignment",
42815
+ default: "auto",
42816
+ choices: ["auto", "left", "center", "right"],
42817
+ },
42362
42818
  {
42363
42819
  name: "totalCurrency",
42364
42820
  choices: function () {
@@ -42549,6 +43005,13 @@ var QuestionMatrixDropdownRenderedCell = /** @class */ (function () {
42549
43005
  enumerable: false,
42550
43006
  configurable: true
42551
43007
  });
43008
+ Object.defineProperty(QuestionMatrixDropdownRenderedCell.prototype, "cellQuestionWrapperClassName", {
43009
+ get: function () {
43010
+ return this.cell.getQuestionWrapperClassName(this.matrix.cssClasses.cellQuestionWrapper);
43011
+ },
43012
+ enumerable: false,
43013
+ configurable: true
43014
+ });
42552
43015
  Object.defineProperty(QuestionMatrixDropdownRenderedCell.prototype, "headers", {
42553
43016
  get: function () {
42554
43017
  if (this.cell && this.cell.column) {
@@ -43884,7 +44347,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
43884
44347
  };
43885
44348
  Object.defineProperty(QuestionMatrixDynamicModel.prototype, "allowRowsDragAndDrop", {
43886
44349
  /**
43887
- * Specifies whether users can drag and drop matrix rows to reorder them. Applies only if [`columnLayout`](#columnLayout) is `"horizontal"`.
44350
+ * Specifies whether users can drag and drop matrix rows to reorder them. Applies only if [`transposeData`](#transposeData) is `false`.
43888
44351
  *
43889
44352
  * Default value: `false`
43890
44353
  */
@@ -44231,7 +44694,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
44231
44694
  confirmDelete = this.isRequireConfirmOnRowDelete(index);
44232
44695
  }
44233
44696
  if (confirmDelete) {
44234
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removeRowAsync(index, row); }, undefined, this.getLocale());
44697
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removeRowAsync(index, row); }, undefined, this.getLocale(), this.survey.rootElement);
44235
44698
  return;
44236
44699
  }
44237
44700
  this.removeRowAsync(index, row);
@@ -44329,8 +44792,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
44329
44792
  * - `"bottom"` - Displays the Add Row button at the bottom of the matrix.
44330
44793
  * - `"topBottom"` - Displays the Add Row button at the top and bottom of the matrix.
44331
44794
  *
44332
- * Default value: `"top"` if `columnLayout` is `vertical`; `"bottom"` if `columnLayout` is `"horizontal"` or the matrix is in compact mode.
44333
- * @see columnLayout
44795
+ * Default value: `"top"` if [`transposeData`](#transposeData) is `true`; `"bottom"` if `transposeData` is `false` or the matrix is in compact mode.
44334
44796
  * @see addRowText
44335
44797
  */
44336
44798
  get: function () {
@@ -47337,6 +47799,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
47337
47799
  if (this.renderMode === "list" && this.panelsState !== "default") {
47338
47800
  newPanel.expand();
47339
47801
  }
47802
+ newPanel.focusFirstQuestion();
47340
47803
  return newPanel;
47341
47804
  };
47342
47805
  /**
@@ -47411,7 +47874,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
47411
47874
  if (!this.canRemovePanel)
47412
47875
  return;
47413
47876
  if (this.isRequireConfirmOnDelete(value)) {
47414
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removePanel(value); }, undefined, this.getLocale());
47877
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removePanel(value); }, undefined, this.getLocale(), this.survey.rootElement);
47415
47878
  }
47416
47879
  else {
47417
47880
  this.removePanel(value);
@@ -48258,7 +48721,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
48258
48721
  };
48259
48722
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "noEntriesText", {
48260
48723
  /**
48261
- * A text displayed when Dynamic Panel contains no entries. Applies only in the Default V2 theme.
48724
+ * A text displayed when Dynamic Panel contains no entries.
48262
48725
  */
48263
48726
  get: function () {
48264
48727
  return this.getLocalizableStringText("noEntriesText");
@@ -48528,6 +48991,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
48528
48991
  name: "panelsState",
48529
48992
  default: "default",
48530
48993
  choices: ["default", "collapsed", "expanded", "firstExpanded"],
48994
+ visibleIf: function (obj) { return obj.renderMode === "list"; }
48531
48995
  },
48532
48996
  { name: "keyName" },
48533
48997
  {
@@ -48538,24 +49002,45 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
48538
49002
  {
48539
49003
  name: "confirmDeleteText",
48540
49004
  serializationProperty: "locConfirmDeleteText",
49005
+ visibleIf: function (obj) { return obj.confirmDelete; }
49006
+ },
49007
+ {
49008
+ name: "panelAddText",
49009
+ serializationProperty: "locPanelAddText",
49010
+ visibleIf: function (obj) { return obj.allowAddPanel; }
49011
+ },
49012
+ {
49013
+ name: "panelRemoveText",
49014
+ serializationProperty: "locPanelRemoveText",
49015
+ visibleIf: function (obj) { return obj.allowRemovePanel; }
49016
+ },
49017
+ {
49018
+ name: "panelPrevText",
49019
+ serializationProperty: "locPanelPrevText",
49020
+ visibleIf: function (obj) { return obj.renderMode !== "list"; }
49021
+ },
49022
+ {
49023
+ name: "panelNextText",
49024
+ serializationProperty: "locPanelNextText",
49025
+ visibleIf: function (obj) { return obj.renderMode !== "list"; }
48541
49026
  },
48542
- { name: "panelAddText", serializationProperty: "locPanelAddText" },
48543
- { name: "panelRemoveText", serializationProperty: "locPanelRemoveText" },
48544
- { name: "panelPrevText", serializationProperty: "locPanelPrevText" },
48545
- { name: "panelNextText", serializationProperty: "locPanelNextText" },
48546
49027
  {
48547
49028
  name: "showQuestionNumbers",
48548
49029
  default: "off",
48549
49030
  choices: ["off", "onPanel", "onSurvey"],
48550
49031
  },
48551
- { name: "showRangeInProgress:boolean", default: true },
49032
+ {
49033
+ name: "showRangeInProgress:boolean",
49034
+ default: true,
49035
+ visibleIf: function (obj) { return obj.renderMode !== "list"; }
49036
+ },
48552
49037
  {
48553
49038
  name: "renderMode",
48554
49039
  default: "list",
48555
49040
  choices: ["list", "progressTop", "progressBottom", "progressTopBottom", "tab"],
48556
49041
  },
48557
49042
  {
48558
- name: "tabAlign", default: "center", choices: ["center", "left", "right"],
49043
+ name: "tabAlign", default: "center", choices: ["left", "center", "right"],
48559
49044
  visibleIf: function (obj) { return obj.renderMode === "tab"; }
48560
49045
  },
48561
49046
  {
@@ -48572,6 +49057,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
48572
49057
  name: "panelRemoveButtonLocation",
48573
49058
  default: "bottom",
48574
49059
  choices: ["bottom", "right"],
49060
+ visibleIf: function (obj) { return obj.allowRemovePanel; }
48575
49061
  },
48576
49062
  ], function () {
48577
49063
  return new QuestionPanelDynamicModel("");
@@ -50405,7 +50891,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50405
50891
  default: "labels",
50406
50892
  category: "rateValues",
50407
50893
  choices: ["labels", "stars", "smileys"],
50408
- visibleIndex: 0
50894
+ visibleIndex: 1
50409
50895
  },
50410
50896
  {
50411
50897
  name: "scaleColorMode",
@@ -50415,7 +50901,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50415
50901
  visibleIf: function (obj) {
50416
50902
  return obj.rateDisplayMode == "smileys";
50417
50903
  },
50418
- visibleIndex: 1
50904
+ visibleIndex: 2
50419
50905
  },
50420
50906
  {
50421
50907
  name: "rateColorMode",
@@ -50425,20 +50911,20 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50425
50911
  visibleIf: function (obj) {
50426
50912
  return obj.rateDisplayMode == "smileys" && obj.scaleColorMode == "monochrome";
50427
50913
  },
50428
- visibleIndex: 2
50914
+ visibleIndex: 3
50429
50915
  },
50430
50916
  {
50431
50917
  name: "autoGenerate",
50432
50918
  category: "rateValues",
50433
50919
  default: true,
50434
50920
  choices: [true, false],
50435
- visibleIndex: 4
50921
+ visibleIndex: 5
50436
50922
  },
50437
50923
  {
50438
50924
  name: "rateCount:number",
50439
50925
  default: 5,
50440
50926
  category: "rateValues",
50441
- visibleIndex: 3,
50927
+ visibleIndex: 4,
50442
50928
  onSettingValue: function (obj, val) {
50443
50929
  if (val < 2)
50444
50930
  return 2;
@@ -50458,7 +50944,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50458
50944
  visibleIf: function (obj) {
50459
50945
  return !obj.autoGenerate;
50460
50946
  },
50461
- visibleIndex: 5
50947
+ visibleIndex: 6
50462
50948
  },
50463
50949
  {
50464
50950
  name: "rateMin:number", default: 1,
@@ -50468,7 +50954,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50468
50954
  visibleIf: function (obj) {
50469
50955
  return !!obj.autoGenerate;
50470
50956
  },
50471
- visibleIndex: 6
50957
+ visibleIndex: 7
50472
50958
  },
50473
50959
  {
50474
50960
  name: "rateMax:number", default: 5,
@@ -50478,7 +50964,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50478
50964
  visibleIf: function (obj) {
50479
50965
  return !!obj.autoGenerate;
50480
50966
  },
50481
- visibleIndex: 7
50967
+ visibleIndex: 8
50482
50968
  },
50483
50969
  {
50484
50970
  name: "rateStep:number", default: 1, minValue: 0.1,
@@ -50492,24 +50978,24 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50492
50978
  visibleIf: function (obj) {
50493
50979
  return !!obj.autoGenerate;
50494
50980
  },
50495
- visibleIndex: 8
50981
+ visibleIndex: 9
50496
50982
  },
50497
50983
  {
50498
50984
  name: "minRateDescription",
50499
50985
  alternativeName: "mininumRateDescription",
50500
50986
  serializationProperty: "locMinRateDescription",
50501
- visibleIndex: 17
50987
+ visibleIndex: 18
50502
50988
  },
50503
50989
  {
50504
50990
  name: "maxRateDescription",
50505
50991
  alternativeName: "maximumRateDescription",
50506
50992
  serializationProperty: "locMaxRateDescription",
50507
- visibleIndex: 18
50993
+ visibleIndex: 19
50508
50994
  },
50509
50995
  {
50510
50996
  name: "displayRateDescriptionsAsExtremeItems:boolean",
50511
50997
  default: false,
50512
- visibleIndex: 19,
50998
+ visibleIndex: 21,
50513
50999
  visibleIf: function (obj) {
50514
51000
  return obj.rateType == "labels";
50515
51001
  }
@@ -50517,14 +51003,14 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50517
51003
  {
50518
51004
  name: "rateDescriptionLocation",
50519
51005
  default: "leftRight",
50520
- category: "layout",
50521
51006
  choices: ["leftRight", "top", "bottom", "topBottom"],
51007
+ visibleIndex: 20
50522
51008
  },
50523
51009
  {
50524
51010
  name: "displayMode",
50525
51011
  default: "auto",
50526
51012
  choices: ["auto", "buttons", "dropdown"],
50527
- visibleIndex: 20
51013
+ visibleIndex: 0
50528
51014
  },
50529
51015
  { name: "itemComponent", visible: false, defaultFunc: function (obj) {
50530
51016
  if (!obj)
@@ -50690,6 +51176,8 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
50690
51176
  };
50691
51177
  QuestionSignaturePadModel.prototype.fromUrl = function (url) {
50692
51178
  var _this = this;
51179
+ if ("undefined" === typeof document)
51180
+ return;
50693
51181
  var img = document.createElement("img");
50694
51182
  img.crossOrigin = "anonymous";
50695
51183
  img.src = url;
@@ -53104,34 +53592,50 @@ var settings = {
53104
53592
  */
53105
53593
  tagboxCloseOnSelect: false,
53106
53594
  /**
53107
- * A property that allows you to display a custom confirm dialog.
53595
+ * A function that activates a browser confirm dialog.
53596
+ *
53597
+ * Use the following code to execute this function:
53598
+ *
53599
+ * ```js
53600
+ * import { settings } from "survey-core";
53108
53601
  *
53109
- * Set this property to a function that renders your custom dialog window. This function should return `true` if a user confirms an action or `false` otherwise.
53602
+ * // `result` contains `true` if the action was confirmed or `false` otherwise
53603
+ * const result = settings.confirmActionFunc("Are you sure?");
53604
+ * ```
53605
+ *
53606
+ * You can redefine the `confirmActionFunc` function if you want to display a custom dialog window. Your function should return `true` if a user confirms an action or `false` otherwise.
53110
53607
  * @param message A message to be displayed in the confirm dialog window.
53111
53608
  */
53112
53609
  confirmActionFunc: function (message) {
53113
53610
  return confirm(message);
53114
53611
  },
53115
53612
  /**
53116
- * A property that allows you to display a custom confirm dialog in async mode or activate the standard browser dialog.
53117
- *
53118
- * To display a custom confirm dialog, set this property to a function that renders it. This function should return `true` to be enabled; otherwise, a survey executes the [`confirmActionFunc`](#confirmActionFunc) function. Pass the dialog result as the `callback` parameter: `true` if a user confirms an action, `false` otherwise.
53613
+ * A function that activates a proprietary SurveyJS confirm dialog.
53119
53614
  *
53120
- * To activate the standard browser dialog, set the `confirmActionAsync` property to a function that returns `false`. With this configuration, a survey falls back to the [`confirmActionFunc`](#confirmActionFunc) function, which renders the standard browser dialog by default.
53615
+ * Use the following code to execute this function:
53121
53616
  *
53122
53617
  * ```js
53123
53618
  * import { settings } from "survey-core";
53124
53619
  *
53125
- * // Display the standard browser dialog
53126
- * settings.confirmActionAsync = () => {
53127
- * return false;
53128
- * }
53620
+ * settings.confirmActionAsync("Are you sure?", (confirmed) => {
53621
+ * if (confirmed) {
53622
+ * // ...
53623
+ * // Proceed with the action
53624
+ * // ...
53625
+ * } else {
53626
+ * // ...
53627
+ * // Cancel the action
53628
+ * // ...
53629
+ * }
53630
+ * });
53129
53631
  * ```
53632
+ *
53633
+ * You can redefine the `confirmActionAsync` function if you want to display a custom dialog window. Your function should return `true` to be enabled; otherwise, a survey executes the [`confirmActionFunc`](#confirmActionFunc) function. Pass the dialog result as the `callback` parameter: `true` if a user confirms an action, `false` otherwise.
53130
53634
  * @param message A message to be displayed in the confirm dialog window.
53131
53635
  * @param callback A callback function that should be called with `true` if a user confirms an action or `false` otherwise.
53132
53636
  */
53133
- confirmActionAsync: function (message, callback, applyTitle, locale) {
53134
- return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["showConfirmDialog"])(message, callback, applyTitle, locale);
53637
+ confirmActionAsync: function (message, callback, applyTitle, locale, rootElement) {
53638
+ return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["showConfirmDialog"])(message, callback, applyTitle, locale, rootElement);
53135
53639
  },
53136
53640
  /**
53137
53641
  * A minimum width value for all survey elements.
@@ -54975,7 +55479,7 @@ var SurveyElement = /** @class */ (function (_super) {
54975
55479
  });
54976
55480
  SurveyElement.prototype.isContainsSelection = function (el) {
54977
55481
  var elementWithSelection = undefined;
54978
- if (document["selection"]) {
55482
+ if ((typeof document !== "undefined") && document["selection"]) {
54979
55483
  elementWithSelection = document["selection"].createRange().parentElement();
54980
55484
  }
54981
55485
  else {
@@ -55558,6 +56062,12 @@ var SurveyModel = /** @class */ (function (_super) {
55558
56062
  * @see getResult
55559
56063
  */
55560
56064
  _this.onGetResult = _this.addEvent();
56065
+ /**
56066
+ * An event that is raised when Survey Creator opens a dialog window for users to select files.
56067
+ * @see onUploadFile
56068
+ * @see uploadFiles
56069
+ */
56070
+ _this.onOpenFileChooser = _this.addEvent();
55561
56071
  /**
55562
56072
  * 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
56073
  *
@@ -56131,6 +56641,7 @@ var SurveyModel = /** @class */ (function (_super) {
56131
56641
  component: "sv-action-bar",
56132
56642
  data: _this.navigationBar
56133
56643
  });
56644
+ _this.locTitle.onStringChanged.add(function () { return _this.titleIsEmpty = _this.locTitle.isEmpty; });
56134
56645
  return _this;
56135
56646
  }
56136
56647
  Object.defineProperty(SurveyModel, "cssType", {
@@ -57429,7 +57940,7 @@ var SurveyModel = /** @class */ (function (_super) {
57429
57940
  get: function () {
57430
57941
  if (this.isDesignMode)
57431
57942
  return this.isPropertyVisible("title");
57432
- return !this.locTitle.isEmpty && this.showTitle;
57943
+ return !this.titleIsEmpty && this.showTitle;
57433
57944
  },
57434
57945
  enumerable: false,
57435
57946
  configurable: true
@@ -59225,7 +59736,7 @@ var SurveyModel = /** @class */ (function (_super) {
59225
59736
  });
59226
59737
  Object.defineProperty(SurveyModel.prototype, "isDisplayMode", {
59227
59738
  get: function () {
59228
- return this.mode == "display" || this.state == "preview";
59739
+ return this.mode == "display" && !this.isDesignMode || this.state == "preview";
59229
59740
  },
59230
59741
  enumerable: false,
59231
59742
  configurable: true
@@ -60496,7 +61007,7 @@ var SurveyModel = /** @class */ (function (_super) {
60496
61007
  .append(this.css.root)
60497
61008
  .append(this.css.rootMobile, this.isMobile)
60498
61009
  .append(this.css.rootAnimationDisabled, !_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].animationEnabled)
60499
- .append(this.css.rootReadOnly, this.mode === "display")
61010
+ .append(this.css.rootReadOnly, this.mode === "display" && !this.isDesignMode)
60500
61011
  .append(this.css.rootCompact, this.isCompact)
60501
61012
  .append(this.css.rootFitToContainer, this.fitToContainer)
60502
61013
  .toString();
@@ -60876,6 +61387,26 @@ var SurveyModel = /** @class */ (function (_super) {
60876
61387
  _survey_element__WEBPACK_IMPORTED_MODULE_3__["SurveyElement"].ScrollElementToTop(options.elementId, scrollIfVisible);
60877
61388
  }
60878
61389
  };
61390
+ /**
61391
+ * Opens a dialog window for users to select files.
61392
+ * @param input A [file input HTML element](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement).
61393
+ * @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.
61394
+ * @see onOpenFileChooser
61395
+ * @see onUploadFile
61396
+ */
61397
+ SurveyModel.prototype.chooseFiles = function (input, callback, context) {
61398
+ if (this.onOpenFileChooser.isEmpty) {
61399
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_15__["chooseFiles"])(input, callback);
61400
+ }
61401
+ else {
61402
+ this.onOpenFileChooser.fire(this, {
61403
+ input: input,
61404
+ element: context && context.element || this.survey,
61405
+ item: context && context.item,
61406
+ callback: callback
61407
+ });
61408
+ }
61409
+ };
60879
61410
  /**
60880
61411
  * Uploads files to a server.
60881
61412
  *
@@ -61794,6 +62325,7 @@ var SurveyModel = /** @class */ (function (_super) {
61794
62325
  this.updateRenderBackgroundImage();
61795
62326
  this.updateCurrentPage();
61796
62327
  this.hasDescription = !!this.description;
62328
+ this.titleIsEmpty = this.locTitle.isEmpty;
61797
62329
  this.setCalculatedWidthModeUpdater();
61798
62330
  };
61799
62331
  SurveyModel.prototype.updateNavigationCss = function () {
@@ -63216,6 +63748,9 @@ var SurveyModel = /** @class */ (function (_super) {
63216
63748
  if (isStrCiEqual(this.showProgressBar, "aboveHeader")) {
63217
63749
  isBelowHeader = false;
63218
63750
  }
63751
+ if (isStrCiEqual(this.showProgressBar, "belowHeader")) {
63752
+ isBelowHeader = true;
63753
+ }
63219
63754
  if (container === "header" && !isBelowHeader) {
63220
63755
  layoutElement.index = -150;
63221
63756
  if (this.isShowProgressBarOnTop && !this.isShowStartingPage) {
@@ -63415,6 +63950,9 @@ var SurveyModel = /** @class */ (function (_super) {
63415
63950
  __decorate([
63416
63951
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
63417
63952
  ], SurveyModel.prototype, "lazyRenderingFirstBatchSizeValue", void 0);
63953
+ __decorate([
63954
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: true })
63955
+ ], SurveyModel.prototype, "titleIsEmpty", void 0);
63418
63956
  __decorate([
63419
63957
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: {} })
63420
63958
  ], SurveyModel.prototype, "cssVariables", void 0);
@@ -63551,7 +64089,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63551
64089
  default: "bottom",
63552
64090
  choices: ["none", "top", "bottom", "both"],
63553
64091
  },
63554
- { name: "showPrevButton:boolean", default: true },
64092
+ {
64093
+ name: "showPrevButton:boolean",
64094
+ default: true,
64095
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none"; }
64096
+ },
63555
64097
  { name: "showTitle:boolean", default: true },
63556
64098
  { name: "showPageTitles:boolean", default: true },
63557
64099
  { name: "showCompletedPage:boolean", default: true },
@@ -63602,9 +64144,19 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63602
64144
  "requiredQuestions",
63603
64145
  "correctQuestions",
63604
64146
  ],
64147
+ visibleIf: function (obj) { return obj.showProgressBar !== "off"; }
64148
+ },
64149
+ {
64150
+ name: "progressBarShowPageTitles:switch",
64151
+ category: "navigation",
64152
+ visibleIf: function (obj) { return obj.showProgressBar !== "off" && obj.progressBarType === "pages"; }
64153
+ },
64154
+ {
64155
+ name: "progressBarShowPageNumbers:switch",
64156
+ default: false,
64157
+ category: "navigation",
64158
+ visibleIf: function (obj) { return obj.showProgressBar !== "off" && obj.progressBarType === "pages"; }
63605
64159
  },
63606
- { name: "progressBarShowPageTitles:switch", category: "navigation" },
63607
- { name: "progressBarShowPageNumbers:switch", default: false, category: "navigation" },
63608
64160
  {
63609
64161
  name: "showTOC:switch",
63610
64162
  default: false
@@ -63644,12 +64196,36 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63644
64196
  },
63645
64197
  { name: "autoGrowComment:boolean", default: false },
63646
64198
  { name: "allowResizeComment:boolean", default: true },
63647
- { name: "startSurveyText", serializationProperty: "locStartSurveyText" },
63648
- { name: "pagePrevText", serializationProperty: "locPagePrevText" },
63649
- { name: "pageNextText", serializationProperty: "locPageNextText" },
63650
- { name: "completeText", serializationProperty: "locCompleteText" },
63651
- { name: "previewText", serializationProperty: "locPreviewText" },
63652
- { name: "editText", serializationProperty: "locEditText" },
64199
+ {
64200
+ name: "startSurveyText",
64201
+ serializationProperty: "locStartSurveyText",
64202
+ visibleIf: function (obj) { return obj.firstPageIsStarted; }
64203
+ },
64204
+ {
64205
+ name: "pagePrevText",
64206
+ serializationProperty: "locPagePrevText",
64207
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none" && obj.showPrevButton; }
64208
+ },
64209
+ {
64210
+ name: "pageNextText",
64211
+ serializationProperty: "locPageNextText",
64212
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none"; }
64213
+ },
64214
+ {
64215
+ name: "completeText",
64216
+ serializationProperty: "locCompleteText",
64217
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none"; }
64218
+ },
64219
+ {
64220
+ name: "previewText",
64221
+ serializationProperty: "locPreviewText",
64222
+ visibleIf: function (obj) { return obj.showPreviewBeforeComplete !== "noPreview"; }
64223
+ },
64224
+ {
64225
+ name: "editText",
64226
+ serializationProperty: "locEditText",
64227
+ visibleIf: function (obj) { return obj.showPreviewBeforeComplete !== "noPreview"; }
64228
+ },
63653
64229
  { name: "requiredText", default: "*" },
63654
64230
  {
63655
64231
  name: "questionStartIndex",
@@ -63682,7 +64258,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63682
64258
  {
63683
64259
  name: "questionsOnPageMode",
63684
64260
  default: "standard",
63685
- choices: ["singlePage", "standard", "questionPerPage"],
64261
+ choices: ["standard", "singlePage", "questionPerPage"],
63686
64262
  },
63687
64263
  {
63688
64264
  name: "showPreviewBeforeComplete",
@@ -63699,7 +64275,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63699
64275
  {
63700
64276
  name: "showTimerPanelMode",
63701
64277
  default: "all",
63702
- choices: ["all", "page", "survey"],
64278
+ choices: ["page", "survey", "all"],
63703
64279
  },
63704
64280
  {
63705
64281
  name: "widthMode",
@@ -63707,7 +64283,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63707
64283
  choices: ["auto", "static", "responsive"],
63708
64284
  },
63709
64285
  { name: "width", visibleIf: function (obj) { return obj.widthMode === "static"; } },
63710
- { name: "fitToContainer:boolean", default: false },
64286
+ { name: "fitToContainer:boolean", default: true, visible: false },
63711
64287
  { name: "headerView", default: "basic", choices: ["basic", "advanced"], visible: false },
63712
64288
  { name: "backgroundImage:file", visible: false },
63713
64289
  { name: "backgroundImageFit", default: "cover", choices: ["auto", "contain", "cover"], visible: false },
@@ -64388,6 +64964,8 @@ var SvgIconRegistry = /** @class */ (function () {
64388
64964
  };
64389
64965
  SvgIconRegistry.prototype.registerIconFromSvgViaElement = function (iconId, iconSvg, iconPrefix) {
64390
64966
  if (iconPrefix === void 0) { iconPrefix = this.iconPrefix; }
64967
+ if (typeof document === "undefined")
64968
+ return;
64391
64969
  iconId = this.processId(iconId, iconPrefix);
64392
64970
  var divSvg = document.createElement("div");
64393
64971
  divSvg.innerHTML = iconSvg;
@@ -66077,7 +66655,7 @@ var VerticalResponsivityManager = /** @class */ (function (_super) {
66077
66655
  /*!****************************!*\
66078
66656
  !*** ./src/utils/utils.ts ***!
66079
66657
  \****************************/
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 */
66658
+ /*! 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
66659
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
66082
66660
 
66083
66661
  "use strict";
@@ -66116,6 +66694,7 @@ __webpack_require__.r(__webpack_exports__);
66116
66694
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "preventDefaults", function() { return preventDefaults; });
66117
66695
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findParentByClassNames", function() { return findParentByClassNames; });
66118
66696
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFirstVisibleChild", function() { return getFirstVisibleChild; });
66697
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return chooseFiles; });
66119
66698
  /* harmony import */ var _localizablestring__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../localizablestring */ "./src/localizablestring.ts");
66120
66699
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../settings */ "./src/settings.ts");
66121
66700
  /* harmony import */ var _surveyStrings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../surveyStrings */ "./src/surveyStrings.ts");
@@ -66140,7 +66719,7 @@ function confirmAction(message) {
66140
66719
  return _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionFunc(message);
66141
66720
  return confirm(message);
66142
66721
  }
66143
- function confirmActionAsync(message, funcOnYes, funcOnNo, locale) {
66722
+ function confirmActionAsync(message, funcOnYes, funcOnNo, locale, rootElement) {
66144
66723
  var callbackFunc = function (res) {
66145
66724
  if (res)
66146
66725
  funcOnYes();
@@ -66148,7 +66727,7 @@ function confirmActionAsync(message, funcOnYes, funcOnNo, locale) {
66148
66727
  funcOnNo();
66149
66728
  };
66150
66729
  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))
66730
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync(message, callbackFunc, undefined, locale, rootElement))
66152
66731
  return;
66153
66732
  }
66154
66733
  callbackFunc(confirmAction(message));
@@ -66497,7 +67076,7 @@ var Logger = /** @class */ (function () {
66497
67076
  return Logger;
66498
67077
  }());
66499
67078
 
66500
- function showConfirmDialog(message, callback, applyTitle, locale) {
67079
+ function showConfirmDialog(message, callback, applyTitle, locale, rootElement) {
66501
67080
  var locStr = new _localizablestring__WEBPACK_IMPORTED_MODULE_0__["LocalizableString"](undefined);
66502
67081
  var popupViewModel = _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].showDialog({
66503
67082
  componentName: "sv-string-viewer",
@@ -66514,7 +67093,7 @@ function showConfirmDialog(message, callback, applyTitle, locale) {
66514
67093
  displayMode: "popup",
66515
67094
  isFocusedContent: false,
66516
67095
  cssClass: "sv-popup--confirm-delete"
66517
- }, /*settings.rootElement*/ document.body); //TODO survey root
67096
+ }, rootElement);
66518
67097
  var toolbar = popupViewModel.footerToolbar;
66519
67098
  var applyBtn = toolbar.getActionById("apply");
66520
67099
  var cancelBtn = toolbar.getActionById("cancel");
@@ -66525,6 +67104,23 @@ function showConfirmDialog(message, callback, applyTitle, locale) {
66525
67104
  popupViewModel.width = "452px";
66526
67105
  return true;
66527
67106
  }
67107
+ function chooseFiles(input, callback) {
67108
+ if (!window || !window["FileReader"])
67109
+ return;
67110
+ input.value = "";
67111
+ input.onchange = function (event) {
67112
+ if (!window["FileReader"])
67113
+ return;
67114
+ if (!input || !input.files || input.files.length < 1)
67115
+ return;
67116
+ var files = [];
67117
+ for (var i = 0; i < input.files.length; i++) {
67118
+ files.push(input.files[i]);
67119
+ }
67120
+ callback(files);
67121
+ };
67122
+ input.click();
67123
+ }
66528
67124
 
66529
67125
 
66530
67126