survey-core 1.9.129 → 1.9.131

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 (253) hide show
  1. package/defaultV2.css +30 -5
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +30 -5
  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 +2 -2
  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 +1 -1
  88. package/i18n/slovak.min.js +1 -1
  89. package/i18n/spanish.js +2 -2
  90. package/i18n/spanish.js.map +1 -1
  91. package/i18n/spanish.min.js +2 -2
  92. package/i18n/swahili.js +1 -1
  93. package/i18n/swahili.min.js +1 -1
  94. package/i18n/swedish.js +1 -1
  95. package/i18n/swedish.min.js +1 -1
  96. package/i18n/tajik.js +1 -1
  97. package/i18n/tajik.min.js +1 -1
  98. package/i18n/telugu.js +1 -1
  99. package/i18n/telugu.min.js +1 -1
  100. package/i18n/thai.js +1 -1
  101. package/i18n/thai.min.js +1 -1
  102. package/i18n/traditional-chinese.js +1 -1
  103. package/i18n/traditional-chinese.min.js +1 -1
  104. package/i18n/turkish.js +1 -1
  105. package/i18n/turkish.min.js +1 -1
  106. package/i18n/ukrainian.js +1 -1
  107. package/i18n/ukrainian.min.js +1 -1
  108. package/i18n/urdu.js +1 -1
  109. package/i18n/urdu.min.js +1 -1
  110. package/i18n/vietnamese.js +1 -1
  111. package/i18n/vietnamese.min.js +1 -1
  112. package/i18n/welsh.js +1 -1
  113. package/i18n/welsh.min.js +1 -1
  114. package/modern.css +19 -3
  115. package/modern.css.map +1 -1
  116. package/modern.fontless.css +19 -3
  117. package/modern.fontless.css.map +1 -1
  118. package/modern.fontless.min.css +2 -2
  119. package/modern.min.css +2 -2
  120. package/package.json +1 -1
  121. package/plugins/bootstrap-integration.js +1 -1
  122. package/plugins/bootstrap-integration.min.js +1 -1
  123. package/plugins/bootstrap-material-integration.js +1 -1
  124. package/plugins/bootstrap-material-integration.min.js +1 -1
  125. package/survey.core.js +498 -146
  126. package/survey.core.js.map +1 -1
  127. package/survey.core.min.js +3 -3
  128. package/survey.css +3 -2
  129. package/survey.css.map +1 -1
  130. package/survey.i18n.js +2 -2
  131. package/survey.i18n.js.map +1 -1
  132. package/survey.i18n.min.js +2 -2
  133. package/survey.min.css +2 -2
  134. package/themes/borderless-dark-panelless.js +1 -1
  135. package/themes/borderless-dark-panelless.min.js +1 -1
  136. package/themes/borderless-dark.js +1 -1
  137. package/themes/borderless-dark.min.js +1 -1
  138. package/themes/borderless-light-panelless..js +1 -1
  139. package/themes/borderless-light-panelless..min.js +1 -1
  140. package/themes/borderless-light.js +1 -1
  141. package/themes/borderless-light.min.js +1 -1
  142. package/themes/contrast-dark-panelless.js +1 -1
  143. package/themes/contrast-dark-panelless.min.js +1 -1
  144. package/themes/contrast-dark.js +1 -1
  145. package/themes/contrast-dark.min.js +1 -1
  146. package/themes/contrast-light-panelless.js +1 -1
  147. package/themes/contrast-light-panelless.min.js +1 -1
  148. package/themes/contrast-light.js +1 -1
  149. package/themes/contrast-light.min.js +1 -1
  150. package/themes/default-dark-panelless.js +1 -1
  151. package/themes/default-dark-panelless.min.js +1 -1
  152. package/themes/default-dark.js +1 -1
  153. package/themes/default-dark.min.js +1 -1
  154. package/themes/default-light-panelless.js +1 -1
  155. package/themes/default-light-panelless.min.js +1 -1
  156. package/themes/default-light.js +1 -1
  157. package/themes/default-light.min.js +1 -1
  158. package/themes/doubleborder-dark-panelless.js +1 -1
  159. package/themes/doubleborder-dark-panelless.min.js +1 -1
  160. package/themes/doubleborder-dark.js +1 -1
  161. package/themes/doubleborder-dark.min.js +1 -1
  162. package/themes/doubleborder-light-panelles.js +1 -1
  163. package/themes/doubleborder-light-panelles.min.js +1 -1
  164. package/themes/doubleborder-light.js +1 -1
  165. package/themes/doubleborder-light.min.js +1 -1
  166. package/themes/flat-dark-panelless.js +1 -1
  167. package/themes/flat-dark-panelless.min.js +1 -1
  168. package/themes/flat-dark.js +1 -1
  169. package/themes/flat-dark.min.js +1 -1
  170. package/themes/flat-light-panelless.js +1 -1
  171. package/themes/flat-light-panelless.min.js +1 -1
  172. package/themes/flat-light.js +1 -1
  173. package/themes/flat-light.min.js +1 -1
  174. package/themes/index.js +1 -1
  175. package/themes/index.min.js +1 -1
  176. package/themes/layered-dark-panelless.js +1 -1
  177. package/themes/layered-dark-panelless.min.js +1 -1
  178. package/themes/layered-dark.js +1 -1
  179. package/themes/layered-dark.min.js +1 -1
  180. package/themes/layered-light-panelless.js +1 -1
  181. package/themes/layered-light-panelless.min.js +1 -1
  182. package/themes/layered-light.js +1 -1
  183. package/themes/layered-light.min.js +1 -1
  184. package/themes/plain-dark-panelless.js +1 -1
  185. package/themes/plain-dark-panelless.min.js +1 -1
  186. package/themes/plain-dark.js +1 -1
  187. package/themes/plain-dark.min.js +1 -1
  188. package/themes/plain-light-panelless.js +1 -1
  189. package/themes/plain-light-panelless.min.js +1 -1
  190. package/themes/plain-light.js +1 -1
  191. package/themes/plain-light.min.js +1 -1
  192. package/themes/sharp-dark-panelless.js +1 -1
  193. package/themes/sharp-dark-panelless.min.js +1 -1
  194. package/themes/sharp-dark.js +1 -1
  195. package/themes/sharp-dark.min.js +1 -1
  196. package/themes/sharp-light-panelless.js +1 -1
  197. package/themes/sharp-light-panelless.min.js +1 -1
  198. package/themes/sharp-light.js +1 -1
  199. package/themes/sharp-light.min.js +1 -1
  200. package/themes/solid-dark-panelless.js +1 -1
  201. package/themes/solid-dark-panelless.min.js +1 -1
  202. package/themes/solid-dark.js +1 -1
  203. package/themes/solid-dark.min.js +1 -1
  204. package/themes/solid-light-panelless.js +1 -1
  205. package/themes/solid-light-panelless.min.js +1 -1
  206. package/themes/solid-light.js +1 -1
  207. package/themes/solid-light.min.js +1 -1
  208. package/themes/three-dimensional-dark-panelless.js +1 -1
  209. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  210. package/themes/three-dimensional-dark.js +1 -1
  211. package/themes/three-dimensional-dark.min.js +1 -1
  212. package/themes/three-dimensional-light-panelless.js +1 -1
  213. package/themes/three-dimensional-light-panelless.min.js +1 -1
  214. package/themes/three-dimensional-light.js +1 -1
  215. package/themes/three-dimensional-light.min.js +1 -1
  216. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +1 -0
  217. package/ts3.4/typings/dragdrop/dom-adapter.d.ts +2 -1
  218. package/ts3.4/typings/dropdownListModel.d.ts +1 -0
  219. package/ts3.4/typings/entries/chunks/model.d.ts +2 -2
  220. package/ts3.4/typings/jsonobject.d.ts +59 -5
  221. package/ts3.4/typings/localizablestring.d.ts +2 -0
  222. package/ts3.4/typings/panel.d.ts +7 -1
  223. package/ts3.4/typings/popup-survey.d.ts +1 -2
  224. package/ts3.4/typings/question.d.ts +1 -0
  225. package/ts3.4/typings/questionCustomWidgets.d.ts +1 -0
  226. package/ts3.4/typings/question_boolean.d.ts +3 -0
  227. package/ts3.4/typings/question_file.d.ts +2 -2
  228. package/ts3.4/typings/question_matrixdropdownbase.d.ts +11 -8
  229. package/ts3.4/typings/question_matrixdynamic.d.ts +2 -3
  230. package/ts3.4/typings/question_paneldynamic.d.ts +1 -1
  231. package/ts3.4/typings/question_tagbox.d.ts +10 -0
  232. package/ts3.4/typings/settings.d.ts +26 -10
  233. package/ts3.4/typings/survey.d.ts +1 -0
  234. package/ts3.4/typings/utils/utils.d.ts +1 -1
  235. package/typings/defaultCss/defaultV2Css.d.ts +1 -0
  236. package/typings/dragdrop/dom-adapter.d.ts +2 -1
  237. package/typings/dropdownListModel.d.ts +1 -0
  238. package/typings/entries/chunks/model.d.ts +2 -2
  239. package/typings/jsonobject.d.ts +59 -5
  240. package/typings/localizablestring.d.ts +2 -0
  241. package/typings/panel.d.ts +7 -1
  242. package/typings/popup-survey.d.ts +1 -2
  243. package/typings/question.d.ts +1 -0
  244. package/typings/questionCustomWidgets.d.ts +1 -0
  245. package/typings/question_boolean.d.ts +3 -0
  246. package/typings/question_file.d.ts +2 -2
  247. package/typings/question_matrixdropdownbase.d.ts +12 -8
  248. package/typings/question_matrixdynamic.d.ts +2 -3
  249. package/typings/question_paneldynamic.d.ts +1 -1
  250. package/typings/question_tagbox.d.ts +10 -0
  251. package/typings/settings.d.ts +26 -10
  252. package/typings/survey.d.ts +1 -0
  253. package/typings/utils/utils.d.ts +1 -1
package/survey.core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.129
2
+ * surveyjs - Survey JavaScript library v1.9.131
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
  */
@@ -5649,6 +5649,7 @@ var defaultV2Css = {
5649
5649
  itemOnError: "sd-boolean--error",
5650
5650
  control: "sd-boolean__control sd-visuallyhidden",
5651
5651
  itemChecked: "sd-boolean--checked",
5652
+ itemExchanged: "sd-boolean--exchanged",
5652
5653
  itemIndeterminate: "sd-boolean--indeterminate",
5653
5654
  itemDisabled: "sd-boolean--disabled",
5654
5655
  itemHover: "sd-boolean--allowhover",
@@ -6824,6 +6825,7 @@ __webpack_require__.r(__webpack_exports__);
6824
6825
  var DragDropCore = /** @class */ (function () {
6825
6826
  function DragDropCore(surveyValue, creator, longTap, domAdapter) {
6826
6827
  var _this = this;
6828
+ var _a;
6827
6829
  this.surveyValue = surveyValue;
6828
6830
  this.creator = creator;
6829
6831
  this._isBottom = null;
@@ -6844,7 +6846,7 @@ var DragDropCore = /** @class */ (function () {
6844
6846
  _this.isBottom = null;
6845
6847
  };
6846
6848
  this.doBanDropHere = function () { };
6847
- 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);
6848
6850
  }
6849
6851
  Object.defineProperty(DragDropCore.prototype, "isBottom", {
6850
6852
  get: function () {
@@ -6869,7 +6871,8 @@ var DragDropCore = /** @class */ (function () {
6869
6871
  });
6870
6872
  Object.defineProperty(DragDropCore.prototype, "survey", {
6871
6873
  get: function () {
6872
- return this.surveyValue || this.creator.survey;
6874
+ var _a;
6875
+ return this.surveyValue || ((_a = this.creator) === null || _a === void 0 ? void 0 : _a.survey);
6873
6876
  },
6874
6877
  enumerable: false,
6875
6878
  configurable: true
@@ -7025,11 +7028,13 @@ if (typeof window !== "undefined") {
7025
7028
  }, { passive: false });
7026
7029
  }
7027
7030
  var DragDropDOMAdapter = /** @class */ (function () {
7028
- function DragDropDOMAdapter(dd, longTap) {
7031
+ function DragDropDOMAdapter(dd, longTap, fitToContainer) {
7029
7032
  var _this = this;
7030
7033
  if (longTap === void 0) { longTap = true; }
7034
+ if (fitToContainer === void 0) { fitToContainer = false; }
7031
7035
  this.dd = dd;
7032
7036
  this.longTap = longTap;
7037
+ this.fitToContainer = fitToContainer;
7033
7038
  this.scrollIntervalId = null;
7034
7039
  this.stopLongTapIfMoveEnough = function (pointerMoveEvent) {
7035
7040
  pointerMoveEvent.preventDefault();
@@ -7142,6 +7147,8 @@ var DragDropDOMAdapter = /** @class */ (function () {
7142
7147
  DragDropDOMAdapter.prototype.moveShortcutElement = function (event) {
7143
7148
  var rootElementX = this.rootElement.getBoundingClientRect().x;
7144
7149
  var rootElementY = this.rootElement.getBoundingClientRect().y;
7150
+ var rootElementScrollLeft = this.rootElement.scrollLeft;
7151
+ var rootElementScrollTop = this.rootElement.scrollTop;
7145
7152
  this.doScroll(event.clientY, event.clientX);
7146
7153
  var shortcutHeight = this.draggedElementShortcut.offsetHeight;
7147
7154
  var shortcutWidth = this.draggedElementShortcut.offsetWidth;
@@ -7158,6 +7165,10 @@ var DragDropDOMAdapter = /** @class */ (function () {
7158
7165
  var pageY = event.pageY;
7159
7166
  var clientX = event.clientX;
7160
7167
  var clientY = event.clientY;
7168
+ if (!!this.fitToContainer) {
7169
+ rootElementX -= rootElementScrollLeft;
7170
+ rootElementY -= rootElementScrollTop;
7171
+ }
7161
7172
  var shortcutBottomCoordinate = this.getShortcutBottomCoordinate(clientY, shortcutHeight, shortcutYOffset);
7162
7173
  var shortcutRightCoordinate = this.getShortcutRightCoordinate(clientX, shortcutWidth, shortcutXOffset);
7163
7174
  if (shortcutRightCoordinate >= documentRight) { // right boundary
@@ -7883,7 +7894,9 @@ var DropdownListModel = /** @class */ (function (_super) {
7883
7894
  _this.qustionPropertyChangedHandler = function (sender, options) {
7884
7895
  _this.onPropertyChangedHandler(sender, options);
7885
7896
  };
7886
- _this.htmlCleanerElement = document.createElement("div");
7897
+ if ("undefined" !== typeof document) {
7898
+ _this.htmlCleanerElement = document.createElement("div");
7899
+ }
7887
7900
  question.onPropertyChanged.add(_this.qustionPropertyChangedHandler);
7888
7901
  _this.showInputFieldComponent = _this.question.showInputFieldComponent;
7889
7902
  _this.listModel = _this.createListModel();
@@ -8010,6 +8023,17 @@ var DropdownListModel = /** @class */ (function (_super) {
8010
8023
  DropdownListModel.prototype.getAvailableItems = function () {
8011
8024
  return this.question.visibleChoices;
8012
8025
  };
8026
+ DropdownListModel.prototype.setOnTextSearchCallbackForListModel = function (listModel) {
8027
+ var _this = this;
8028
+ listModel.setOnTextSearchCallback(function (item, textToSearch) {
8029
+ if (_this.filteredItems)
8030
+ return _this.filteredItems.indexOf(item) >= 0;
8031
+ var textInLow = item.text.toLocaleLowerCase();
8032
+ textInLow = _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].comparator.normalizeTextCallback(textInLow, "filter");
8033
+ var index = textInLow.indexOf(textToSearch.toLocaleLowerCase());
8034
+ return _this.question.searchMode == "startsWith" ? index == 0 : index > -1;
8035
+ });
8036
+ };
8013
8037
  DropdownListModel.prototype.createListModel = function () {
8014
8038
  var _this = this;
8015
8039
  var visibleItems = this.getAvailableItems();
@@ -8023,14 +8047,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8023
8047
  };
8024
8048
  }
8025
8049
  var res = new _list__WEBPACK_IMPORTED_MODULE_3__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
8026
- res.setOnTextSearchCallback(function (item, textToSearch) {
8027
- if (_this.filteredItems)
8028
- return _this.filteredItems.indexOf(item) >= 0;
8029
- var textInLow = item.text.toLocaleLowerCase();
8030
- textInLow = _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].comparator.normalizeTextCallback(textInLow, "filter");
8031
- var index = textInLow.indexOf(textToSearch.toLocaleLowerCase());
8032
- return _this.question.searchMode == "startsWith" ? index == 0 : index > -1;
8033
- });
8050
+ this.setOnTextSearchCallbackForListModel(res);
8034
8051
  res.renderElements = false;
8035
8052
  res.forceShowFilter = true;
8036
8053
  res.areSameItemsCallback = function (item1, item2) {
@@ -8113,6 +8130,8 @@ var DropdownListModel = /** @class */ (function (_super) {
8113
8130
  }
8114
8131
  };
8115
8132
  DropdownListModel.prototype.cleanHtml = function (html) {
8133
+ if (!this.htmlCleanerElement)
8134
+ return "";
8116
8135
  this.htmlCleanerElement.innerHTML = html;
8117
8136
  return this.htmlCleanerElement.textContent;
8118
8137
  };
@@ -8607,6 +8626,7 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
8607
8626
  };
8608
8627
  }
8609
8628
  var res = new _multiSelectListModel__WEBPACK_IMPORTED_MODULE_3__["MultiSelectListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
8629
+ this.setOnTextSearchCallbackForListModel(res);
8610
8630
  res.forceShowFilter = true;
8611
8631
  return res;
8612
8632
  };
@@ -8935,7 +8955,7 @@ var ElementHelper = /** @class */ (function () {
8935
8955
  /*!*************************************!*\
8936
8956
  !*** ./src/entries/chunks/model.ts ***!
8937
8957
  \*************************************/
8938
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
8958
+ /*! 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 */
8939
8959
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8940
8960
 
8941
8961
  "use strict";
@@ -9101,6 +9121,8 @@ __webpack_require__.r(__webpack_exports__);
9101
9121
 
9102
9122
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_20__["QuestionMatrixDropdownRenderedRow"]; });
9103
9123
 
9124
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_20__["QuestionMatrixDropdownRenderedErrorRow"]; });
9125
+
9104
9126
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_20__["QuestionMatrixDropdownRenderedTable"]; });
9105
9127
 
9106
9128
  /* harmony import */ var _question_matrixdropdown__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../question_matrixdropdown */ "./src/question_matrixdropdown.ts");
@@ -9414,8 +9436,8 @@ __webpack_require__.r(__webpack_exports__);
9414
9436
  //import "../../modern.scss";
9415
9437
  var Version;
9416
9438
  var ReleaseDate;
9417
- Version = "" + "1.9.129";
9418
- ReleaseDate = "" + "2024-02-06";
9439
+ Version = "" + "1.9.131";
9440
+ ReleaseDate = "" + "2024-02-20";
9419
9441
  function checkLibraryVersion(ver, libraryName) {
9420
9442
  if (Version != ver) {
9421
9443
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9590,7 +9612,7 @@ function checkPrefix(prefix) {
9590
9612
  /*!**************************************!*\
9591
9613
  !*** ./src/entries/core-wo-model.ts ***!
9592
9614
  \**************************************/
9593
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper */
9615
+ /*! 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 */
9594
9616
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9595
9617
 
9596
9618
  "use strict";
@@ -9742,6 +9764,8 @@ __webpack_require__.r(__webpack_exports__);
9742
9764
 
9743
9765
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedRow"]; });
9744
9766
 
9767
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedErrorRow"]; });
9768
+
9745
9769
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedTable"]; });
9746
9770
 
9747
9771
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixDropdownRowModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["MatrixDropdownRowModel"]; });
@@ -10057,7 +10081,7 @@ __webpack_require__.r(__webpack_exports__);
10057
10081
  /*!*****************************!*\
10058
10082
  !*** ./src/entries/core.ts ***!
10059
10083
  \*****************************/
10060
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model */
10084
+ /*! 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 */
10061
10085
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10062
10086
 
10063
10087
  "use strict";
@@ -10209,6 +10233,8 @@ __webpack_require__.r(__webpack_exports__);
10209
10233
 
10210
10234
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedRow"]; });
10211
10235
 
10236
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedErrorRow"]; });
10237
+
10212
10238
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedTable"]; });
10213
10239
 
10214
10240
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixDropdownRowModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["MatrixDropdownRowModel"]; });
@@ -18021,14 +18047,21 @@ var JsonObjectProperty = /** @class */ (function () {
18021
18047
  configurable: true
18022
18048
  });
18023
18049
  JsonObjectProperty.prototype.isAvailableInVersion = function (ver) {
18024
- if (!!this.alternativeName)
18050
+ if (!!this.alternativeName || this.oldName)
18025
18051
  return true;
18026
18052
  return this.isAvailableInVersionCore(ver);
18027
18053
  };
18028
18054
  JsonObjectProperty.prototype.getSerializedName = function (ver) {
18029
18055
  if (!this.alternativeName)
18030
18056
  return this.name;
18031
- return this.isAvailableInVersionCore(ver) ? this.name : this.alternativeName;
18057
+ return this.isAvailableInVersionCore(ver) ? this.name : this.alternativeName || this.oldName;
18058
+ };
18059
+ JsonObjectProperty.prototype.getSerializedProperty = function (obj, ver) {
18060
+ if (!this.oldName || this.isAvailableInVersionCore(ver))
18061
+ return this;
18062
+ if (!obj || !obj.getType)
18063
+ return null;
18064
+ return Serializer.findProperty(obj.getType(), this.oldName);
18032
18065
  };
18033
18066
  JsonObjectProperty.prototype.isAvailableInVersionCore = function (ver) {
18034
18067
  if (!ver || !this.version)
@@ -18114,6 +18147,7 @@ var JsonObjectProperty = /** @class */ (function () {
18114
18147
  "isLocalizableValue",
18115
18148
  "className",
18116
18149
  "alternativeName",
18150
+ "oldName",
18117
18151
  "layout",
18118
18152
  "version",
18119
18153
  "classNamePart",
@@ -18565,6 +18599,9 @@ var JsonMetadataClass = /** @class */ (function () {
18565
18599
  if (propInfo.alternativeName) {
18566
18600
  prop.alternativeName = propInfo.alternativeName;
18567
18601
  }
18602
+ if (propInfo.oldName) {
18603
+ prop.oldName = propInfo.oldName;
18604
+ }
18568
18605
  if (propInfo.layout) {
18569
18606
  prop.layout = propInfo.layout;
18570
18607
  }
@@ -18627,11 +18664,11 @@ var JsonMetadata = /** @class */ (function () {
18627
18664
  this.dynamicPropsCache = {};
18628
18665
  }
18629
18666
  JsonMetadata.prototype.getObjPropertyValue = function (obj, name) {
18630
- if (this.isObjWrapper(obj)) {
18667
+ if (this.isObjWrapper(obj) && this.isNeedUseObjWrapper(obj, name)) {
18631
18668
  var orignalObj = obj.getOriginalObj();
18632
- var prop = Serializer.findProperty(orignalObj.getType(), name);
18633
- if (!!prop)
18634
- return this.getObjPropertyValueCore(orignalObj, prop);
18669
+ var prop_1 = Serializer.findProperty(orignalObj.getType(), name);
18670
+ if (!!prop_1)
18671
+ return this.getObjPropertyValueCore(orignalObj, prop_1);
18635
18672
  }
18636
18673
  var prop = Serializer.findProperty(obj.getType(), name);
18637
18674
  if (!prop)
@@ -18668,6 +18705,18 @@ var JsonMetadata = /** @class */ (function () {
18668
18705
  JsonMetadata.prototype.isObjWrapper = function (obj) {
18669
18706
  return !!obj.getOriginalObj && !!obj.getOriginalObj();
18670
18707
  };
18708
+ JsonMetadata.prototype.isNeedUseObjWrapper = function (obj, name) {
18709
+ if (!obj.getDynamicProperties)
18710
+ return true;
18711
+ var props = obj.getDynamicProperties();
18712
+ if (!Array.isArray(props))
18713
+ return false;
18714
+ for (var i = 0; i < props.length; i++) {
18715
+ if (props[i].name === name)
18716
+ return true;
18717
+ }
18718
+ return false;
18719
+ };
18671
18720
  JsonMetadata.prototype.addClass = function (name, properties, creator, parentName) {
18672
18721
  if (creator === void 0) { creator = null; }
18673
18722
  if (parentName === void 0) { parentName = null; }
@@ -19369,6 +19418,14 @@ var JsonObject = /** @class */ (function () {
19369
19418
  return;
19370
19419
  if (options.version && !prop.isAvailableInVersion(options.version))
19371
19420
  return;
19421
+ this.valueToJsonCore(obj, result, prop, options);
19422
+ };
19423
+ JsonObject.prototype.valueToJsonCore = function (obj, result, prop, options) {
19424
+ var serProp = prop.getSerializedProperty(obj, options.version);
19425
+ if (serProp && serProp !== prop) {
19426
+ this.valueToJsonCore(obj, result, serProp, options);
19427
+ return;
19428
+ }
19372
19429
  var value = prop.getSerializableValue(obj);
19373
19430
  if (!options.storeDefaults && prop.isDefaultValueByObj(obj, value))
19374
19431
  return;
@@ -20016,6 +20073,10 @@ __webpack_require__.r(__webpack_exports__);
20016
20073
  /* harmony import */ var _surveyStrings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./surveyStrings */ "./src/surveyStrings.ts");
20017
20074
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
20018
20075
  /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./base */ "./src/base.ts");
20076
+ /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./jsonobject */ "./src/jsonobject.ts");
20077
+ /* harmony import */ var _survey_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./survey-element */ "./src/survey-element.ts");
20078
+
20079
+
20019
20080
 
20020
20081
 
20021
20082
 
@@ -20027,12 +20088,17 @@ __webpack_require__.r(__webpack_exports__);
20027
20088
  var LocalizableString = /** @class */ (function () {
20028
20089
  function LocalizableString(owner, useMarkdown, name) {
20029
20090
  if (useMarkdown === void 0) { useMarkdown = false; }
20091
+ var _a;
20030
20092
  this.owner = owner;
20031
20093
  this.useMarkdown = useMarkdown;
20032
20094
  this.name = name;
20033
20095
  this.values = {};
20034
20096
  this.htmlValues = {};
20097
+ this._allowLineBreaks = false;
20035
20098
  this.onStringChanged = new _base__WEBPACK_IMPORTED_MODULE_3__["EventBase"]();
20099
+ if (owner instanceof _survey_element__WEBPACK_IMPORTED_MODULE_5__["SurveyElementCore"]) {
20100
+ this._allowLineBreaks = ((_a = _jsonobject__WEBPACK_IMPORTED_MODULE_4__["Serializer"].findProperty(owner.getType(), name)) === null || _a === void 0 ? void 0 : _a.type) == "text";
20101
+ }
20036
20102
  this.onCreating();
20037
20103
  }
20038
20104
  Object.defineProperty(LocalizableString, "defaultLocale", {
@@ -20058,6 +20124,13 @@ var LocalizableString = /** @class */ (function () {
20058
20124
  enumerable: false,
20059
20125
  configurable: true
20060
20126
  });
20127
+ Object.defineProperty(LocalizableString.prototype, "allowLineBreaks", {
20128
+ get: function () {
20129
+ return this._allowLineBreaks;
20130
+ },
20131
+ enumerable: false,
20132
+ configurable: true
20133
+ });
20061
20134
  LocalizableString.prototype.getIsMultiple = function () { return false; };
20062
20135
  Object.defineProperty(LocalizableString.prototype, "locale", {
20063
20136
  get: function () {
@@ -20324,7 +20397,11 @@ var LocalizableString = /** @class */ (function () {
20324
20397
  keys[0] == _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.defaultLocaleName &&
20325
20398
  !_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].serialization.localizableStringSerializeAsObject)
20326
20399
  return this.values[keys[0]];
20327
- return this.values;
20400
+ var res = {};
20401
+ for (var key in this.values) {
20402
+ res[key] = this.values[key];
20403
+ }
20404
+ return res;
20328
20405
  };
20329
20406
  LocalizableString.prototype.setJson = function (value) {
20330
20407
  if (!!this.sharedData) {
@@ -20670,7 +20747,7 @@ var englishStrings = {
20670
20747
  chooseFile: "Choose file(s)...",
20671
20748
  noFileChosen: "No file chosen",
20672
20749
  filePlaceholder: "Drag and drop a file here or click the button below to select a file to upload.",
20673
- confirmDelete: "Do you want to delete the record?",
20750
+ confirmDelete: "Are you sure you want to delete this record?",
20674
20751
  keyDuplicationError: "This value should be unique.",
20675
20752
  addColumn: "Add Column",
20676
20753
  addRow: "Add Row",
@@ -20713,12 +20790,12 @@ var englishStrings = {
20713
20790
  modalApplyButtonText: "Apply",
20714
20791
  filterStringPlaceholder: "Type to search...",
20715
20792
  emptyMessage: "No data to display",
20716
- noEntriesText: "There are no entries yet.\nClick the button below to add a new entry.",
20717
- noEntriesReadonlyText: "There are no entries.",
20793
+ noEntriesText: "No entries yet.\nClick the button below to add a new entry.",
20794
+ noEntriesReadonlyText: "No entries.",
20718
20795
  more: "More",
20719
20796
  tagboxDoneButtonCaption: "OK",
20720
- selectToRankEmptyRankedAreaText: "All choices are ranked",
20721
- selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them",
20797
+ selectToRankEmptyRankedAreaText: "All choices are selected for ranking",
20798
+ selectToRankEmptyUnrankedAreaText: "Drag choices here to rank them",
20722
20799
  ok: "OK",
20723
20800
  cancel: "Cancel",
20724
20801
  };
@@ -21822,6 +21899,11 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
21822
21899
  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;
21823
21900
  return c > 3 && r && Object.defineProperty(target, key, r), r;
21824
21901
  };
21902
+ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from) {
21903
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
21904
+ to[j] = from[i];
21905
+ return to;
21906
+ };
21825
21907
 
21826
21908
 
21827
21909
 
@@ -21852,6 +21934,8 @@ var QuestionRowModel = /** @class */ (function (_super) {
21852
21934
  QuestionRowModel.prototype.startLazyRendering = function (rowContainerDiv, findScrollableContainer) {
21853
21935
  var _this = this;
21854
21936
  if (findScrollableContainer === void 0) { findScrollableContainer = _utils_utils__WEBPACK_IMPORTED_MODULE_8__["findScrollableParent"]; }
21937
+ if ("undefined" === typeof document)
21938
+ return;
21855
21939
  this._scrollableParent = findScrollableContainer(rowContainerDiv);
21856
21940
  // if this._scrollableParent is html the scroll event isn't fired, so we should use window
21857
21941
  if (this._scrollableParent === document.documentElement) {
@@ -22066,6 +22150,7 @@ var PanelModelBase = /** @class */ (function (_super) {
22066
22150
  _this.isQuestionsReady = false;
22067
22151
  _this.questionsValue = new Array();
22068
22152
  _this.isRandomizing = false;
22153
+ _this.locCountRowUpdates = 0;
22069
22154
  _this.createNewArray("rows");
22070
22155
  _this.elementsValue = _this.createNewArray("elements", _this.onAddElement.bind(_this), _this.onRemoveElement.bind(_this));
22071
22156
  _this.id = PanelModelBase.getPanelId();
@@ -22940,14 +23025,92 @@ var PanelModelBase = /** @class */ (function (_super) {
22940
23025
  return;
22941
23026
  this.setArrayPropertyDirectly("rows", this.buildRows());
22942
23027
  };
23028
+ PanelModelBase.prototype.blockRowsUpdates = function () {
23029
+ this.locCountRowUpdates++;
23030
+ };
23031
+ PanelModelBase.prototype.releaseRowsUpdates = function () {
23032
+ this.locCountRowUpdates--;
23033
+ };
23034
+ PanelModelBase.prototype.updateRowsBeforeElementRemoved = function (element) {
23035
+ var _this = this;
23036
+ var elementRow = this.findRowByElement(element);
23037
+ var elementRowIndex = this.rows.indexOf(elementRow);
23038
+ var elementIndexInRow = elementRow.elements.indexOf(element);
23039
+ elementRow.elements.splice(elementIndexInRow, 1);
23040
+ if (elementRow.elements.length == 0) {
23041
+ this.rows.splice(elementRowIndex, 1);
23042
+ }
23043
+ else if (!elementRow.elements[0].startWithNewLine && this.rows[elementRowIndex - 1]) {
23044
+ elementRow.elements.forEach(function (el) { return _this.rows[elementRowIndex - 1].addElement(el); });
23045
+ this.rows.splice(elementRowIndex, 1);
23046
+ }
23047
+ else {
23048
+ elementRow.updateVisible();
23049
+ }
23050
+ };
23051
+ PanelModelBase.prototype.updateRowsOnElementAdded = function (element) {
23052
+ var _this = this;
23053
+ var index = this.elements.indexOf(element);
23054
+ var targetElement = this.elements[index + 1];
23055
+ var createRowAtIndex = function (index) {
23056
+ var row = _this.createRowAndSetLazy(index);
23057
+ if (_this.isDesignModeV2) {
23058
+ row.setIsLazyRendering(false);
23059
+ }
23060
+ _this.rows.splice(index, 0, row);
23061
+ return row;
23062
+ };
23063
+ var updateRow = function (row, start, deleteCount) {
23064
+ var _a;
23065
+ var elements = [];
23066
+ for (var _i = 3; _i < arguments.length; _i++) {
23067
+ elements[_i - 3] = arguments[_i];
23068
+ }
23069
+ var removedElements = (_a = row.elements).splice.apply(_a, __spreadArray([start, deleteCount], elements));
23070
+ row.updateVisible();
23071
+ return removedElements;
23072
+ };
23073
+ if (!targetElement) {
23074
+ if (index == 0 || element.startWithNewLine) {
23075
+ updateRow(createRowAtIndex(this.rows.length), 0, 0, element);
23076
+ }
23077
+ else {
23078
+ this.rows[this.rows.length - 1].addElement(element);
23079
+ }
23080
+ return;
23081
+ }
23082
+ var targetRow = this.findRowByElement(targetElement);
23083
+ if (!targetRow)
23084
+ return;
23085
+ var targetRowIndex = this.rows.indexOf(targetRow);
23086
+ var targetElementIndexInRow = targetRow.elements.indexOf(targetElement);
23087
+ if (targetElementIndexInRow == 0) {
23088
+ if (!targetElement.startWithNewLine) {
23089
+ updateRow(targetRow, 0, 0, element);
23090
+ }
23091
+ else if (element.startWithNewLine || targetRowIndex < 1) {
23092
+ createRowAtIndex(targetRowIndex).addElement(element);
23093
+ }
23094
+ else {
23095
+ this.rows[targetRowIndex - 1].addElement(element);
23096
+ }
23097
+ }
23098
+ else {
23099
+ if (element.startWithNewLine) {
23100
+ updateRow.apply(void 0, __spreadArray([createRowAtIndex(targetRowIndex + 1), 0, 0], [element].concat(updateRow(targetRow, targetElementIndexInRow, targetRow.elements.length))));
23101
+ }
23102
+ else {
23103
+ updateRow(targetRow, targetElementIndexInRow, 0, element);
23104
+ }
23105
+ }
23106
+ };
22943
23107
  PanelModelBase.prototype.onAddElement = function (element, index) {
22944
23108
  var _this = this;
22945
23109
  element.setSurveyImpl(this.surveyImpl);
22946
23110
  element.parent = this;
22947
23111
  this.markQuestionListDirty();
22948
23112
  if (this.canBuildRows()) {
22949
- var dragDropInfo = _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].supportCreatorV2 ? this.getDragDropInfo() : undefined;
22950
- this.dragDropPanelHelper.updateRowsOnElementAdded(element, index, dragDropInfo, this);
23113
+ this.updateRowsOnElementAdded(element);
22951
23114
  }
22952
23115
  if (element.isPanel) {
22953
23116
  var p = element;
@@ -23001,7 +23164,10 @@ var PanelModelBase = /** @class */ (function (_super) {
23001
23164
  }
23002
23165
  };
23003
23166
  PanelModelBase.prototype.onElementStartWithNewLineChanged = function (element) {
23004
- this.onRowsChanged();
23167
+ if (this.locCountRowUpdates > 0)
23168
+ return;
23169
+ this.updateRowsBeforeElementRemoved(element);
23170
+ this.updateRowsOnElementAdded(element);
23005
23171
  };
23006
23172
  PanelModelBase.prototype.updateRowsVisibility = function (element) {
23007
23173
  var rows = this.rows;
@@ -23062,7 +23228,9 @@ var PanelModelBase = /** @class */ (function (_super) {
23062
23228
  return;
23063
23229
  row.elements.splice(elIndex, 1);
23064
23230
  if (row.elements.length > 0) {
23231
+ this.blockRowsUpdates();
23065
23232
  row.elements[0].startWithNewLine = true;
23233
+ this.releaseRowsUpdates();
23066
23234
  row.updateVisible();
23067
23235
  }
23068
23236
  else {
@@ -23288,6 +23456,42 @@ var PanelModelBase = /** @class */ (function (_super) {
23288
23456
  }
23289
23457
  return true;
23290
23458
  };
23459
+ PanelModelBase.prototype.insertElement = function (element, dest, location) {
23460
+ if (location === void 0) { location = "bottom"; }
23461
+ if (!dest) {
23462
+ this.addElement(element);
23463
+ return;
23464
+ }
23465
+ this.blockRowsUpdates();
23466
+ var index = this.elements.indexOf(dest);
23467
+ var destRow = this.findRowByElement(dest);
23468
+ if (location == "left" || location == "right") {
23469
+ if (location == "right") {
23470
+ element.startWithNewLine = false;
23471
+ index++;
23472
+ }
23473
+ else {
23474
+ if (destRow.elements.indexOf(dest) == 0) {
23475
+ dest.startWithNewLine = false;
23476
+ element.startWithNewLine = true;
23477
+ }
23478
+ else {
23479
+ element.startWithNewLine = false;
23480
+ }
23481
+ }
23482
+ }
23483
+ else {
23484
+ element.startWithNewLine = true;
23485
+ if (location == "top") {
23486
+ index = this.elements.indexOf(destRow.elements[0]);
23487
+ }
23488
+ else {
23489
+ index = this.elements.indexOf(destRow.elements[destRow.elements.length - 1]) + 1;
23490
+ }
23491
+ }
23492
+ this.releaseRowsUpdates();
23493
+ this.addElement(element, index);
23494
+ };
23291
23495
  PanelModelBase.prototype.insertElementAfter = function (element, after) {
23292
23496
  var index = this.elements.indexOf(after);
23293
23497
  if (index >= 0)
@@ -23333,7 +23537,7 @@ var PanelModelBase = /** @class */ (function (_super) {
23333
23537
  *
23334
23538
  * This method returns `null` if the panel cannot be created or added to this panel/page; otherwise, the method returns the created panel.
23335
23539
  * @param name A panel name.
23336
- * @see elements
23540
+ * @see elementsup
23337
23541
  * @see addElement
23338
23542
  */
23339
23543
  PanelModelBase.prototype.addNewPanel = function (name) {
@@ -23962,7 +24166,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("panel", [
23962
24166
  { name: "minWidth", defaultFunc: function () { return "auto"; } },
23963
24167
  { name: "maxWidth", defaultFunc: function () { return _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].maxWidth; } },
23964
24168
  { name: "innerIndent:number", default: 0, choices: [0, 1, 2, 3] },
23965
- { name: "indent:number", default: 0, choices: [0, 1, 2, 3] },
24169
+ { name: "indent:number", default: 0, choices: [0, 1, 2, 3], visible: false },
23966
24170
  {
23967
24171
  name: "page",
23968
24172
  isSerializable: false,
@@ -24135,13 +24339,15 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
24135
24339
  };
24136
24340
  PopupDropdownViewModel.prototype.getActualHorizontalPosition = function () {
24137
24341
  var actualHorizontalPosition = this.model.horizontalPosition;
24138
- var isRtl = !!document && document.defaultView.getComputedStyle(document.body).direction == "rtl";
24139
- if (isRtl) {
24140
- if (this.model.horizontalPosition === "left") {
24141
- actualHorizontalPosition = "right";
24142
- }
24143
- else if (this.model.horizontalPosition === "right") {
24144
- actualHorizontalPosition = "left";
24342
+ if ("undefined" !== typeof document) {
24343
+ var isRtl = !!document && document.defaultView.getComputedStyle(document.body).direction == "rtl";
24344
+ if (isRtl) {
24345
+ if (this.model.horizontalPosition === "left") {
24346
+ actualHorizontalPosition = "right";
24347
+ }
24348
+ else if (this.model.horizontalPosition === "right") {
24349
+ actualHorizontalPosition = "left";
24350
+ }
24145
24351
  }
24146
24352
  }
24147
24353
  return actualHorizontalPosition;
@@ -24621,10 +24827,9 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24621
24827
  });
24622
24828
  Object.defineProperty(PopupSurveyModel.prototype, "allowFullScreen", {
24623
24829
  /**
24624
- * Specifies whether to display a button that allow showing pop-up in full-screen mode.
24830
+ * Specifies whether to display a button that allows respondents to show the pop-up survey in full screen mode.
24625
24831
  *
24626
24832
  * Default value: `false`
24627
- *
24628
24833
  */
24629
24834
  get: function () {
24630
24835
  return this.getPropertyValue("allowFullScreen", false);
@@ -25189,7 +25394,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
25189
25394
  this.resetComponentElement();
25190
25395
  };
25191
25396
  PopupBaseViewModel.prototype.initializePopupContainer = function () {
25192
- if (!this.container) {
25397
+ if (!this.container && ("undefined" !== typeof document)) {
25193
25398
  var container = document.createElement("div");
25194
25399
  this.createdContainer = container;
25195
25400
  Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["getElement"])(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.popupMountContainer).appendChild(container);
@@ -28134,7 +28339,6 @@ var Question = /** @class */ (function (_super) {
28134
28339
  Question.prototype.hasErrors = function (fireCallback, rec) {
28135
28340
  if (fireCallback === void 0) { fireCallback = true; }
28136
28341
  if (rec === void 0) { rec = null; }
28137
- var oldHasErrors = this.errors.length > 0;
28138
28342
  var errors = this.checkForErrors(!!rec && rec.isOnValueChanged === true);
28139
28343
  if (fireCallback) {
28140
28344
  if (!!this.survey) {
@@ -28192,13 +28396,16 @@ var Question = /** @class */ (function (_super) {
28192
28396
  return;
28193
28397
  var newError = null;
28194
28398
  if (typeof error === "string" || error instanceof String) {
28195
- newError = new _error__WEBPACK_IMPORTED_MODULE_3__["CustomError"](error, this.survey);
28399
+ newError = this.addCustomError(error);
28196
28400
  }
28197
28401
  else {
28198
28402
  newError = error;
28199
28403
  }
28200
28404
  this.errors.push(newError);
28201
28405
  };
28406
+ Question.prototype.addCustomError = function (error) {
28407
+ return new _error__WEBPACK_IMPORTED_MODULE_3__["CustomError"](error, this.survey);
28408
+ };
28202
28409
  Question.prototype.removeError = function (error) {
28203
28410
  var errors = this.errors;
28204
28411
  var index = errors.indexOf(error);
@@ -28249,6 +28456,12 @@ var Question = /** @class */ (function (_super) {
28249
28456
  err.onUpdateErrorTextCallback = function (err) { err.text = _this.requiredErrorText; };
28250
28457
  errors.push(err);
28251
28458
  }
28459
+ if (!this.isEmpty() && this.customWidget) {
28460
+ var text = this.customWidget.validate(this);
28461
+ if (!!text) {
28462
+ errors.push(this.addCustomError(text));
28463
+ }
28464
+ }
28252
28465
  };
28253
28466
  Question.prototype.hasRequiredError = function () {
28254
28467
  return this.isRequired && this.isEmpty();
@@ -29011,6 +29224,11 @@ var QuestionCustomWidget = /** @class */ (function () {
29011
29224
  return this.widgetJson.getDisplayValue(question, value);
29012
29225
  return null;
29013
29226
  };
29227
+ QuestionCustomWidget.prototype.validate = function (question) {
29228
+ if (this.widgetJson.validate)
29229
+ return this.widgetJson.validate(question);
29230
+ return undefined;
29231
+ };
29014
29232
  QuestionCustomWidget.prototype.isFit = function (question) {
29015
29233
  if (this.isLibraryLoaded() && this.widgetJson.isFit)
29016
29234
  return this.widgetJson.isFit(question);
@@ -31469,8 +31687,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("selectbase", [
31469
31687
  { name: "separateSpecialChoices:boolean", visible: false },
31470
31688
  { name: "showOtherItem:boolean", alternativeName: "hasOther" },
31471
31689
  { name: "showNoneItem:boolean", alternativeName: "hasNone" },
31472
- { name: "showRefuseItem:boolean", visible: false },
31473
- { name: "showDontKnowItem:boolean", visible: false },
31690
+ { name: "showRefuseItem:boolean", visible: false, version: "1.9.128" },
31691
+ { name: "showDontKnowItem:boolean", visible: false, version: "1.9.128" },
31474
31692
  {
31475
31693
  name: "otherPlaceholder",
31476
31694
  alternativeName: "otherPlaceHolder",
@@ -31647,8 +31865,8 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31647
31865
  });
31648
31866
  QuestionBooleanModel.prototype.setBooleanValue = function (val) {
31649
31867
  if (this.isValueEmpty(val)) {
31650
- this.value = null;
31651
- this.booleanValueRendered = null;
31868
+ this.value = undefined;
31869
+ this.booleanValueRendered = undefined;
31652
31870
  }
31653
31871
  else {
31654
31872
  this.value = val == true ? this.getValueTrue() : this.getValueFalse();
@@ -31664,8 +31882,6 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31664
31882
  val = "true";
31665
31883
  if (val === false)
31666
31884
  val = "false";
31667
- if (val === undefined)
31668
- val = "indeterminate";
31669
31885
  this.setPropertyValue("defaultValue", val);
31670
31886
  this.updateValueWithDefaults();
31671
31887
  },
@@ -31673,13 +31889,10 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31673
31889
  configurable: true
31674
31890
  });
31675
31891
  QuestionBooleanModel.prototype.getDefaultValue = function () {
31676
- if (this.defaultValue == "indeterminate")
31677
- return null;
31678
- if (this.defaultValue === undefined)
31679
- return null;
31680
- return this.defaultValue == "true"
31681
- ? this.getValueTrue()
31682
- : this.getValueFalse();
31892
+ var val = this.defaultValue;
31893
+ if (val === "indeterminate" || val === undefined || val === null)
31894
+ return undefined;
31895
+ return val == "true" ? this.getValueTrue() : this.getValueFalse();
31683
31896
  };
31684
31897
  Object.defineProperty(QuestionBooleanModel.prototype, "locTitle", {
31685
31898
  get: function () {
@@ -31738,7 +31951,21 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31738
31951
  });
31739
31952
  Object.defineProperty(QuestionBooleanModel.prototype, "isDeterminated", {
31740
31953
  get: function () {
31741
- return this.booleanValue !== null;
31954
+ return this.booleanValue !== null && this.booleanValue !== undefined;
31955
+ },
31956
+ enumerable: false,
31957
+ configurable: true
31958
+ });
31959
+ Object.defineProperty(QuestionBooleanModel.prototype, "locLabelLeft", {
31960
+ get: function () {
31961
+ return this.swapOrder ? this.getLocalizableString("labelTrue") : this.getLocalizableString("labelFalse");
31962
+ },
31963
+ enumerable: false,
31964
+ configurable: true
31965
+ });
31966
+ Object.defineProperty(QuestionBooleanModel.prototype, "locLabelRight", {
31967
+ get: function () {
31968
+ return this.swapOrder ? this.getLocalizableString("labelFalse") : this.getLocalizableString("labelTrue");
31742
31969
  },
31743
31970
  enumerable: false,
31744
31971
  configurable: true
@@ -31778,8 +32005,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31778
32005
  this.setBooleanValue(true);
31779
32006
  if (this.isDefaultValueSet("false", this.valueFalse))
31780
32007
  this.setBooleanValue(false);
31781
- if (this.defaultValue == "indeterminate")
31782
- this.setBooleanValue(null);
32008
+ var val = this.defaultValue;
32009
+ if (val === "indeterminate" || val === null || val === undefined)
32010
+ this.setBooleanValue(undefined);
31783
32011
  };
31784
32012
  QuestionBooleanModel.prototype.isDefaultValueSet = function (defaultValueCheck, valueTrueOrFalse) {
31785
32013
  return this.defaultValue == defaultValueCheck || (valueTrueOrFalse !== undefined && this.defaultValue === valueTrueOrFalse);
@@ -31796,7 +32024,8 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31796
32024
  .append(css.itemDisabled, this.isReadOnly)
31797
32025
  .append(css.itemHover, !this.isDesignMode)
31798
32026
  .append(css.itemChecked, !!this.booleanValue)
31799
- .append(css.itemIndeterminate, this.booleanValue === null)
32027
+ .append(css.itemExchanged, !!this.swapOrder)
32028
+ .append(css.itemIndeterminate, !this.isDeterminated)
31800
32029
  .toString();
31801
32030
  };
31802
32031
  QuestionBooleanModel.prototype.getItemCss = function () {
@@ -31815,15 +32044,15 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31815
32044
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
31816
32045
  .append(this.cssClasses.label)
31817
32046
  .append(this.cssClasses.disabledLabel, this.booleanValue === !checked || this.isReadOnly)
31818
- .append(this.cssClasses.labelTrue, !this.isIndeterminate && checked === true)
31819
- .append(this.cssClasses.labelFalse, !this.isIndeterminate && checked === false)
32047
+ .append(this.cssClasses.labelTrue, !this.isIndeterminate && checked === !this.swapOrder)
32048
+ .append(this.cssClasses.labelFalse, !this.isIndeterminate && checked === this.swapOrder)
31820
32049
  .toString();
31821
32050
  };
31822
32051
  Object.defineProperty(QuestionBooleanModel.prototype, "svgIcon", {
31823
32052
  get: function () {
31824
32053
  if (this.booleanValue && this.cssClasses.svgIconCheckedId)
31825
32054
  return this.cssClasses.svgIconCheckedId;
31826
- if (this.booleanValue === null && this.cssClasses.svgIconIndId)
32055
+ if (!this.isDeterminated && this.cssClasses.svgIconIndId)
31827
32056
  return this.cssClasses.svgIconIndId;
31828
32057
  if (!this.booleanValue && this.cssClasses.svgIconUncheckedId)
31829
32058
  return this.cssClasses.svgIconUncheckedId;
@@ -31853,8 +32082,8 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31853
32082
  newValue = true;
31854
32083
  if (newValue === "false" && this.valueFalse !== "false")
31855
32084
  newValue = false;
31856
- if (newValue === "indeterminate")
31857
- newValue = null;
32085
+ if (newValue === "indeterminate" || newValue === null)
32086
+ newValue = undefined;
31858
32087
  _super.prototype.setQuestionValue.call(this, newValue, updateIsAnswered);
31859
32088
  };
31860
32089
  /* #region web-based methods */
@@ -31866,7 +32095,10 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31866
32095
  return true;
31867
32096
  };
31868
32097
  QuestionBooleanModel.prototype.calculateBooleanValueByEvent = function (event, isRightClick) {
31869
- var isRtl = document.defaultView.getComputedStyle(event.target).direction == "rtl";
32098
+ var isRtl = false;
32099
+ if ("undefined" !== typeof document) {
32100
+ isRtl = document.defaultView.getComputedStyle(event.target).direction == "rtl";
32101
+ }
31870
32102
  this.booleanValue = isRtl ? !isRightClick : isRightClick;
31871
32103
  };
31872
32104
  QuestionBooleanModel.prototype.onSwitchClickModel = function (event) {
@@ -31929,6 +32161,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31929
32161
  __decorate([
31930
32162
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: true })
31931
32163
  ], QuestionBooleanModel.prototype, "label", void 0);
32164
+ __decorate([
32165
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
32166
+ ], QuestionBooleanModel.prototype, "swapOrder", void 0);
31932
32167
  __decorate([
31933
32168
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
31934
32169
  ], QuestionBooleanModel.prototype, "valueTrue", void 0);
@@ -31951,6 +32186,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("boolean", [
31951
32186
  },
31952
32187
  "valueTrue",
31953
32188
  "valueFalse",
32189
+ { name: "swapOrder:boolean", category: "general" },
31954
32190
  { name: "renderAs", default: "default", visible: false },
31955
32191
  ], function () {
31956
32192
  return new QuestionBooleanModel("");
@@ -35944,9 +36180,11 @@ var QuestionFileModel = /** @class */ (function (_super) {
35944
36180
  enumerable: false,
35945
36181
  configurable: true
35946
36182
  });
35947
- QuestionFileModel.prototype.chooseFile = function () {
36183
+ QuestionFileModel.prototype.chooseFile = function (event) {
35948
36184
  var _this = this;
35949
36185
  var inputElement = document.getElementById(this.inputId);
36186
+ event.preventDefault();
36187
+ event.stopImmediatePropagation();
35950
36188
  if (inputElement) {
35951
36189
  if (this.survey) {
35952
36190
  this.survey.chooseFiles(inputElement, function (files) { return _this.loadFiles(files); }, { element: this });
@@ -36428,8 +36666,8 @@ var QuestionFileModel = /** @class */ (function (_super) {
36428
36666
  _super.prototype.updateElementCss.call(this, reNew);
36429
36667
  this.updateCurrentMode();
36430
36668
  };
36431
- QuestionFileModel.prototype.endLoadingFromJson = function () {
36432
- _super.prototype.endLoadingFromJson.call(this);
36669
+ QuestionFileModel.prototype.onSurveyLoad = function () {
36670
+ _super.prototype.onSurveyLoad.call(this);
36433
36671
  this.updateCurrentMode();
36434
36672
  this.updateActionsVisibility();
36435
36673
  this.loadPreview(this.value);
@@ -39718,7 +39956,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
39718
39956
  _this.clearRowsAndResetRenderedTable();
39719
39957
  });
39720
39958
  _this.registerPropertyChangedHandlers([
39721
- "columnLayout",
39959
+ "transposeData",
39722
39960
  "addRowLocation",
39723
39961
  "hideColumnsIfEmpty",
39724
39962
  "showHeader",
@@ -39815,20 +40053,32 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
39815
40053
  this.clearRowsAndResetRenderedTable();
39816
40054
  }
39817
40055
  };
39818
- Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "columnLayout", {
40056
+ Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "transposeData", {
39819
40057
  /**
39820
- * Specifies the matrix layout. Set this property to `"vertical"` if you want to display columns instead of rows and rows instead of columns.
40058
+ * Specifies whether to display [`columns`](#columns) as rows and [`rows`](#rows) as columns.
39821
40059
  *
39822
- * Default value: `"horizontal"`
39823
- * @see columns
39824
- * @see rows
39825
- * @see isColumnLayoutHorizontal
40060
+ * Default value: `false`
40061
+ *
40062
+ * [View Demo](https://surveyjs.io/form-library/examples/transpose-dynamic-rows-to-columns-in-matrix/ (linkStyle))
40063
+ */
40064
+ get: function () {
40065
+ return this.getPropertyValue("transposeData");
40066
+ },
40067
+ set: function (val) {
40068
+ this.setPropertyValue("transposeData", val);
40069
+ },
40070
+ enumerable: false,
40071
+ configurable: true
40072
+ });
40073
+ Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "columnLayout", {
40074
+ /**
40075
+ * This property is obsolete. Use the [`transposeData`](#transposeData) property instead.
39826
40076
  */
39827
40077
  get: function () {
39828
- return this.getPropertyValue("columnLayout");
40078
+ return this.transposeData ? "vertical" : "horizontal";
39829
40079
  },
39830
40080
  set: function (val) {
39831
- this.setPropertyValue("columnLayout", val);
40081
+ this.transposeData = val === "vertical";
39832
40082
  },
39833
40083
  enumerable: false,
39834
40084
  configurable: true
@@ -39891,15 +40141,13 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
39891
40141
  };
39892
40142
  Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "isColumnLayoutHorizontal", {
39893
40143
  /**
39894
- * Returns `true` if columns are placed in the horizontal direction and rows in the vertical direction.
40144
+ * Returns `true` if [`columns`](#columns) are placed in the horizontal direction and [`rows`](#columns) in the vertical direction.
39895
40145
  *
39896
- * 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.
39897
- * @see columnLayout
40146
+ * 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.
40147
+ * @see transposeData
39898
40148
  */
39899
40149
  get: function () {
39900
- if (this.isMobile)
39901
- return true;
39902
- return this.columnLayout != "vertical";
40150
+ return this.isMobile ? true : !this.transposeData;
39903
40151
  },
39904
40152
  enumerable: false,
39905
40153
  configurable: true
@@ -41434,8 +41682,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownb
41434
41682
  {
41435
41683
  name: "columnLayout",
41436
41684
  alternativeName: "columnsLocation",
41437
- default: "horizontal",
41438
41685
  choices: ["horizontal", "vertical"],
41686
+ visible: false, isSerializable: false
41687
+ },
41688
+ {
41689
+ name: "transposeData:boolean", version: "1.9.130", oldName: "columnLayout"
41439
41690
  },
41440
41691
  {
41441
41692
  name: "detailElements",
@@ -44130,7 +44381,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
44130
44381
  };
44131
44382
  Object.defineProperty(QuestionMatrixDynamicModel.prototype, "allowRowsDragAndDrop", {
44132
44383
  /**
44133
- * Specifies whether users can drag and drop matrix rows to reorder them. Applies only if [`columnLayout`](#columnLayout) is `"horizontal"`.
44384
+ * Specifies whether users can drag and drop matrix rows to reorder them. Applies only if [`transposeData`](#transposeData) is `false`.
44134
44385
  *
44135
44386
  * Default value: `false`
44136
44387
  */
@@ -44575,8 +44826,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
44575
44826
  * - `"bottom"` - Displays the Add Row button at the bottom of the matrix.
44576
44827
  * - `"topBottom"` - Displays the Add Row button at the top and bottom of the matrix.
44577
44828
  *
44578
- * Default value: `"top"` if `columnLayout` is `vertical`; `"bottom"` if `columnLayout` is `"horizontal"` or the matrix is in compact mode.
44579
- * @see columnLayout
44829
+ * Default value: `"top"` if [`transposeData`](#transposeData) is `true`; `"bottom"` if `transposeData` is `false` or the matrix is in compact mode.
44580
44830
  * @see addRowText
44581
44831
  */
44582
44832
  get: function () {
@@ -47583,6 +47833,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
47583
47833
  if (this.renderMode === "list" && this.panelsState !== "default") {
47584
47834
  newPanel.expand();
47585
47835
  }
47836
+ newPanel.focusFirstQuestion();
47586
47837
  return newPanel;
47587
47838
  };
47588
47839
  /**
@@ -48504,7 +48755,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
48504
48755
  };
48505
48756
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "noEntriesText", {
48506
48757
  /**
48507
- * A text displayed when Dynamic Panel contains no entries. Applies only in the Default V2 theme.
48758
+ * A text displayed when Dynamic Panel contains no entries.
48508
48759
  */
48509
48760
  get: function () {
48510
48761
  return this.getLocalizableStringText("noEntriesText");
@@ -48774,6 +49025,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
48774
49025
  name: "panelsState",
48775
49026
  default: "default",
48776
49027
  choices: ["default", "collapsed", "expanded", "firstExpanded"],
49028
+ visibleIf: function (obj) { return obj.renderMode === "list"; }
48777
49029
  },
48778
49030
  { name: "keyName" },
48779
49031
  {
@@ -48784,24 +49036,45 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
48784
49036
  {
48785
49037
  name: "confirmDeleteText",
48786
49038
  serializationProperty: "locConfirmDeleteText",
49039
+ visibleIf: function (obj) { return obj.confirmDelete; }
49040
+ },
49041
+ {
49042
+ name: "panelAddText",
49043
+ serializationProperty: "locPanelAddText",
49044
+ visibleIf: function (obj) { return obj.allowAddPanel; }
49045
+ },
49046
+ {
49047
+ name: "panelRemoveText",
49048
+ serializationProperty: "locPanelRemoveText",
49049
+ visibleIf: function (obj) { return obj.allowRemovePanel; }
49050
+ },
49051
+ {
49052
+ name: "panelPrevText",
49053
+ serializationProperty: "locPanelPrevText",
49054
+ visibleIf: function (obj) { return obj.renderMode !== "list"; }
49055
+ },
49056
+ {
49057
+ name: "panelNextText",
49058
+ serializationProperty: "locPanelNextText",
49059
+ visibleIf: function (obj) { return obj.renderMode !== "list"; }
48787
49060
  },
48788
- { name: "panelAddText", serializationProperty: "locPanelAddText" },
48789
- { name: "panelRemoveText", serializationProperty: "locPanelRemoveText" },
48790
- { name: "panelPrevText", serializationProperty: "locPanelPrevText" },
48791
- { name: "panelNextText", serializationProperty: "locPanelNextText" },
48792
49061
  {
48793
49062
  name: "showQuestionNumbers",
48794
49063
  default: "off",
48795
49064
  choices: ["off", "onPanel", "onSurvey"],
48796
49065
  },
48797
- { name: "showRangeInProgress:boolean", default: true },
49066
+ {
49067
+ name: "showRangeInProgress:boolean",
49068
+ default: true,
49069
+ visibleIf: function (obj) { return obj.renderMode !== "list"; }
49070
+ },
48798
49071
  {
48799
49072
  name: "renderMode",
48800
49073
  default: "list",
48801
49074
  choices: ["list", "progressTop", "progressBottom", "progressTopBottom", "tab"],
48802
49075
  },
48803
49076
  {
48804
- name: "tabAlign", default: "center", choices: ["center", "left", "right"],
49077
+ name: "tabAlign", default: "center", choices: ["left", "center", "right"],
48805
49078
  visibleIf: function (obj) { return obj.renderMode === "tab"; }
48806
49079
  },
48807
49080
  {
@@ -48818,6 +49091,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
48818
49091
  name: "panelRemoveButtonLocation",
48819
49092
  default: "bottom",
48820
49093
  choices: ["bottom", "right"],
49094
+ visibleIf: function (obj) { return obj.allowRemovePanel; }
48821
49095
  },
48822
49096
  ], function () {
48823
49097
  return new QuestionPanelDynamicModel("");
@@ -50651,7 +50925,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50651
50925
  default: "labels",
50652
50926
  category: "rateValues",
50653
50927
  choices: ["labels", "stars", "smileys"],
50654
- visibleIndex: 0
50928
+ visibleIndex: 1
50655
50929
  },
50656
50930
  {
50657
50931
  name: "scaleColorMode",
@@ -50661,7 +50935,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50661
50935
  visibleIf: function (obj) {
50662
50936
  return obj.rateDisplayMode == "smileys";
50663
50937
  },
50664
- visibleIndex: 1
50938
+ visibleIndex: 2
50665
50939
  },
50666
50940
  {
50667
50941
  name: "rateColorMode",
@@ -50671,20 +50945,20 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50671
50945
  visibleIf: function (obj) {
50672
50946
  return obj.rateDisplayMode == "smileys" && obj.scaleColorMode == "monochrome";
50673
50947
  },
50674
- visibleIndex: 2
50948
+ visibleIndex: 3
50675
50949
  },
50676
50950
  {
50677
50951
  name: "autoGenerate",
50678
50952
  category: "rateValues",
50679
50953
  default: true,
50680
50954
  choices: [true, false],
50681
- visibleIndex: 4
50955
+ visibleIndex: 5
50682
50956
  },
50683
50957
  {
50684
50958
  name: "rateCount:number",
50685
50959
  default: 5,
50686
50960
  category: "rateValues",
50687
- visibleIndex: 3,
50961
+ visibleIndex: 4,
50688
50962
  onSettingValue: function (obj, val) {
50689
50963
  if (val < 2)
50690
50964
  return 2;
@@ -50704,7 +50978,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50704
50978
  visibleIf: function (obj) {
50705
50979
  return !obj.autoGenerate;
50706
50980
  },
50707
- visibleIndex: 5
50981
+ visibleIndex: 6
50708
50982
  },
50709
50983
  {
50710
50984
  name: "rateMin:number", default: 1,
@@ -50714,7 +50988,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50714
50988
  visibleIf: function (obj) {
50715
50989
  return !!obj.autoGenerate;
50716
50990
  },
50717
- visibleIndex: 6
50991
+ visibleIndex: 7
50718
50992
  },
50719
50993
  {
50720
50994
  name: "rateMax:number", default: 5,
@@ -50724,7 +50998,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50724
50998
  visibleIf: function (obj) {
50725
50999
  return !!obj.autoGenerate;
50726
51000
  },
50727
- visibleIndex: 7
51001
+ visibleIndex: 8
50728
51002
  },
50729
51003
  {
50730
51004
  name: "rateStep:number", default: 1, minValue: 0.1,
@@ -50738,24 +51012,24 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50738
51012
  visibleIf: function (obj) {
50739
51013
  return !!obj.autoGenerate;
50740
51014
  },
50741
- visibleIndex: 8
51015
+ visibleIndex: 9
50742
51016
  },
50743
51017
  {
50744
51018
  name: "minRateDescription",
50745
51019
  alternativeName: "mininumRateDescription",
50746
51020
  serializationProperty: "locMinRateDescription",
50747
- visibleIndex: 17
51021
+ visibleIndex: 18
50748
51022
  },
50749
51023
  {
50750
51024
  name: "maxRateDescription",
50751
51025
  alternativeName: "maximumRateDescription",
50752
51026
  serializationProperty: "locMaxRateDescription",
50753
- visibleIndex: 18
51027
+ visibleIndex: 19
50754
51028
  },
50755
51029
  {
50756
51030
  name: "displayRateDescriptionsAsExtremeItems:boolean",
50757
51031
  default: false,
50758
- visibleIndex: 19,
51032
+ visibleIndex: 21,
50759
51033
  visibleIf: function (obj) {
50760
51034
  return obj.rateType == "labels";
50761
51035
  }
@@ -50763,14 +51037,14 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50763
51037
  {
50764
51038
  name: "rateDescriptionLocation",
50765
51039
  default: "leftRight",
50766
- category: "layout",
50767
51040
  choices: ["leftRight", "top", "bottom", "topBottom"],
51041
+ visibleIndex: 20
50768
51042
  },
50769
51043
  {
50770
51044
  name: "displayMode",
50771
51045
  default: "auto",
50772
51046
  choices: ["auto", "buttons", "dropdown"],
50773
- visibleIndex: 20
51047
+ visibleIndex: 0
50774
51048
  },
50775
51049
  { name: "itemComponent", visible: false, defaultFunc: function (obj) {
50776
51050
  if (!obj)
@@ -50936,6 +51210,8 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
50936
51210
  };
50937
51211
  QuestionSignaturePadModel.prototype.fromUrl = function (url) {
50938
51212
  var _this = this;
51213
+ if ("undefined" === typeof document)
51214
+ return;
50939
51215
  var img = document.createElement("img");
50940
51216
  img.crossOrigin = "anonymous";
50941
51217
  img.src = url;
@@ -51596,6 +51872,9 @@ var QuestionTagboxModel = /** @class */ (function (_super) {
51596
51872
  enumerable: false,
51597
51873
  configurable: true
51598
51874
  });
51875
+ __decorate([
51876
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
51877
+ ], QuestionTagboxModel.prototype, "searchMode", void 0);
51599
51878
  __decorate([
51600
51879
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
51601
51880
  ], QuestionTagboxModel.prototype, "allowClear", void 0);
@@ -51637,7 +51916,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("tagbox", [
51637
51916
  { name: "choicesLazyLoadPageSize:number", default: 25, visible: false },
51638
51917
  { name: "hideSelectedItems:boolean", default: false },
51639
51918
  { name: "closeOnSelect:boolean" },
51640
- { name: "itemComponent", visible: false, default: "" }
51919
+ { name: "itemComponent", visible: false, default: "" },
51920
+ { name: "searchMode", default: "contains", choices: ["contains", "startsWith"] }
51641
51921
  ], function () {
51642
51922
  return new QuestionTagboxModel("");
51643
51923
  }, "checkbox");
@@ -53350,29 +53630,45 @@ var settings = {
53350
53630
  */
53351
53631
  tagboxCloseOnSelect: false,
53352
53632
  /**
53353
- * A property that allows you to display a custom confirm dialog.
53633
+ * A function that activates a browser confirm dialog.
53354
53634
  *
53355
- * 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.
53635
+ * Use the following code to execute this function:
53636
+ *
53637
+ * ```js
53638
+ * import { settings } from "survey-core";
53639
+ *
53640
+ * // `result` contains `true` if the action was confirmed or `false` otherwise
53641
+ * const result = settings.confirmActionFunc("Are you sure?");
53642
+ * ```
53643
+ *
53644
+ * 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.
53356
53645
  * @param message A message to be displayed in the confirm dialog window.
53357
53646
  */
53358
53647
  confirmActionFunc: function (message) {
53359
53648
  return confirm(message);
53360
53649
  },
53361
53650
  /**
53362
- * A property that allows you to display a custom confirm dialog in async mode or activate the standard browser dialog.
53363
- *
53364
- * 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.
53651
+ * A function that activates a proprietary SurveyJS confirm dialog.
53365
53652
  *
53366
- * 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.
53653
+ * Use the following code to execute this function:
53367
53654
  *
53368
53655
  * ```js
53369
53656
  * import { settings } from "survey-core";
53370
53657
  *
53371
- * // Display the standard browser dialog
53372
- * settings.confirmActionAsync = () => {
53373
- * return false;
53374
- * }
53658
+ * settings.confirmActionAsync("Are you sure?", (confirmed) => {
53659
+ * if (confirmed) {
53660
+ * // ...
53661
+ * // Proceed with the action
53662
+ * // ...
53663
+ * } else {
53664
+ * // ...
53665
+ * // Cancel the action
53666
+ * // ...
53667
+ * }
53668
+ * });
53375
53669
  * ```
53670
+ *
53671
+ * 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.
53376
53672
  * @param message A message to be displayed in the confirm dialog window.
53377
53673
  * @param callback A callback function that should be called with `true` if a user confirms an action or `false` otherwise.
53378
53674
  */
@@ -55221,7 +55517,7 @@ var SurveyElement = /** @class */ (function (_super) {
55221
55517
  });
55222
55518
  SurveyElement.prototype.isContainsSelection = function (el) {
55223
55519
  var elementWithSelection = undefined;
55224
- if (document["selection"]) {
55520
+ if ((typeof document !== "undefined") && document["selection"]) {
55225
55521
  elementWithSelection = document["selection"].createRange().parentElement();
55226
55522
  }
55227
55523
  else {
@@ -56383,6 +56679,7 @@ var SurveyModel = /** @class */ (function (_super) {
56383
56679
  component: "sv-action-bar",
56384
56680
  data: _this.navigationBar
56385
56681
  });
56682
+ _this.locTitle.onStringChanged.add(function () { return _this.titleIsEmpty = _this.locTitle.isEmpty; });
56386
56683
  return _this;
56387
56684
  }
56388
56685
  Object.defineProperty(SurveyModel, "cssType", {
@@ -57681,7 +57978,7 @@ var SurveyModel = /** @class */ (function (_super) {
57681
57978
  get: function () {
57682
57979
  if (this.isDesignMode)
57683
57980
  return this.isPropertyVisible("title");
57684
- return !this.locTitle.isEmpty && this.showTitle;
57981
+ return !this.titleIsEmpty && this.showTitle;
57685
57982
  },
57686
57983
  enumerable: false,
57687
57984
  configurable: true
@@ -59477,7 +59774,7 @@ var SurveyModel = /** @class */ (function (_super) {
59477
59774
  });
59478
59775
  Object.defineProperty(SurveyModel.prototype, "isDisplayMode", {
59479
59776
  get: function () {
59480
- return this.mode == "display" || this.state == "preview";
59777
+ return this.mode == "display" && !this.isDesignMode || this.state == "preview";
59481
59778
  },
59482
59779
  enumerable: false,
59483
59780
  configurable: true
@@ -60748,7 +61045,7 @@ var SurveyModel = /** @class */ (function (_super) {
60748
61045
  .append(this.css.root)
60749
61046
  .append(this.css.rootMobile, this.isMobile)
60750
61047
  .append(this.css.rootAnimationDisabled, !_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].animationEnabled)
60751
- .append(this.css.rootReadOnly, this.mode === "display")
61048
+ .append(this.css.rootReadOnly, this.mode === "display" && !this.isDesignMode)
60752
61049
  .append(this.css.rootCompact, this.isCompact)
60753
61050
  .append(this.css.rootFitToContainer, this.fitToContainer)
60754
61051
  .toString();
@@ -62066,6 +62363,7 @@ var SurveyModel = /** @class */ (function (_super) {
62066
62363
  this.updateRenderBackgroundImage();
62067
62364
  this.updateCurrentPage();
62068
62365
  this.hasDescription = !!this.description;
62366
+ this.titleIsEmpty = this.locTitle.isEmpty;
62069
62367
  this.setCalculatedWidthModeUpdater();
62070
62368
  };
62071
62369
  SurveyModel.prototype.updateNavigationCss = function () {
@@ -63690,6 +63988,9 @@ var SurveyModel = /** @class */ (function (_super) {
63690
63988
  __decorate([
63691
63989
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
63692
63990
  ], SurveyModel.prototype, "lazyRenderingFirstBatchSizeValue", void 0);
63991
+ __decorate([
63992
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: true })
63993
+ ], SurveyModel.prototype, "titleIsEmpty", void 0);
63693
63994
  __decorate([
63694
63995
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: {} })
63695
63996
  ], SurveyModel.prototype, "cssVariables", void 0);
@@ -63826,7 +64127,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63826
64127
  default: "bottom",
63827
64128
  choices: ["none", "top", "bottom", "both"],
63828
64129
  },
63829
- { name: "showPrevButton:boolean", default: true },
64130
+ {
64131
+ name: "showPrevButton:boolean",
64132
+ default: true,
64133
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none"; }
64134
+ },
63830
64135
  { name: "showTitle:boolean", default: true },
63831
64136
  { name: "showPageTitles:boolean", default: true },
63832
64137
  { name: "showCompletedPage:boolean", default: true },
@@ -63877,9 +64182,19 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63877
64182
  "requiredQuestions",
63878
64183
  "correctQuestions",
63879
64184
  ],
64185
+ visibleIf: function (obj) { return obj.showProgressBar !== "off"; }
64186
+ },
64187
+ {
64188
+ name: "progressBarShowPageTitles:switch",
64189
+ category: "navigation",
64190
+ visibleIf: function (obj) { return obj.showProgressBar !== "off" && obj.progressBarType === "pages"; }
64191
+ },
64192
+ {
64193
+ name: "progressBarShowPageNumbers:switch",
64194
+ default: false,
64195
+ category: "navigation",
64196
+ visibleIf: function (obj) { return obj.showProgressBar !== "off" && obj.progressBarType === "pages"; }
63880
64197
  },
63881
- { name: "progressBarShowPageTitles:switch", category: "navigation" },
63882
- { name: "progressBarShowPageNumbers:switch", default: false, category: "navigation" },
63883
64198
  {
63884
64199
  name: "showTOC:switch",
63885
64200
  default: false
@@ -63919,12 +64234,36 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63919
64234
  },
63920
64235
  { name: "autoGrowComment:boolean", default: false },
63921
64236
  { name: "allowResizeComment:boolean", default: true },
63922
- { name: "startSurveyText", serializationProperty: "locStartSurveyText" },
63923
- { name: "pagePrevText", serializationProperty: "locPagePrevText" },
63924
- { name: "pageNextText", serializationProperty: "locPageNextText" },
63925
- { name: "completeText", serializationProperty: "locCompleteText" },
63926
- { name: "previewText", serializationProperty: "locPreviewText" },
63927
- { name: "editText", serializationProperty: "locEditText" },
64237
+ {
64238
+ name: "startSurveyText",
64239
+ serializationProperty: "locStartSurveyText",
64240
+ visibleIf: function (obj) { return obj.firstPageIsStarted; }
64241
+ },
64242
+ {
64243
+ name: "pagePrevText",
64244
+ serializationProperty: "locPagePrevText",
64245
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none" && obj.showPrevButton; }
64246
+ },
64247
+ {
64248
+ name: "pageNextText",
64249
+ serializationProperty: "locPageNextText",
64250
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none"; }
64251
+ },
64252
+ {
64253
+ name: "completeText",
64254
+ serializationProperty: "locCompleteText",
64255
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none"; }
64256
+ },
64257
+ {
64258
+ name: "previewText",
64259
+ serializationProperty: "locPreviewText",
64260
+ visibleIf: function (obj) { return obj.showPreviewBeforeComplete !== "noPreview"; }
64261
+ },
64262
+ {
64263
+ name: "editText",
64264
+ serializationProperty: "locEditText",
64265
+ visibleIf: function (obj) { return obj.showPreviewBeforeComplete !== "noPreview"; }
64266
+ },
63928
64267
  { name: "requiredText", default: "*" },
63929
64268
  {
63930
64269
  name: "questionStartIndex",
@@ -63957,7 +64296,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63957
64296
  {
63958
64297
  name: "questionsOnPageMode",
63959
64298
  default: "standard",
63960
- choices: ["singlePage", "standard", "questionPerPage"],
64299
+ choices: ["standard", "singlePage", "questionPerPage"],
63961
64300
  },
63962
64301
  {
63963
64302
  name: "showPreviewBeforeComplete",
@@ -63974,7 +64313,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63974
64313
  {
63975
64314
  name: "showTimerPanelMode",
63976
64315
  default: "all",
63977
- choices: ["all", "page", "survey"],
64316
+ choices: ["page", "survey", "all"],
63978
64317
  },
63979
64318
  {
63980
64319
  name: "widthMode",
@@ -63982,7 +64321,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63982
64321
  choices: ["auto", "static", "responsive"],
63983
64322
  },
63984
64323
  { name: "width", visibleIf: function (obj) { return obj.widthMode === "static"; } },
63985
- { name: "fitToContainer:boolean", default: false },
64324
+ { name: "fitToContainer:boolean", default: true, visible: false },
63986
64325
  { name: "headerView", default: "basic", choices: ["basic", "advanced"], visible: false },
63987
64326
  { name: "backgroundImage:file", visible: false },
63988
64327
  { name: "backgroundImageFit", default: "cover", choices: ["auto", "contain", "cover"], visible: false },
@@ -64663,6 +65002,8 @@ var SvgIconRegistry = /** @class */ (function () {
64663
65002
  };
64664
65003
  SvgIconRegistry.prototype.registerIconFromSvgViaElement = function (iconId, iconSvg, iconPrefix) {
64665
65004
  if (iconPrefix === void 0) { iconPrefix = this.iconPrefix; }
65005
+ if (typeof document === "undefined")
65006
+ return;
64666
65007
  iconId = this.processId(iconId, iconPrefix);
64667
65008
  var divSvg = document.createElement("div");
64668
65009
  divSvg.innerHTML = iconSvg;
@@ -66719,7 +67060,8 @@ function findParentByClassNames(element, classNames) {
66719
67060
  }
66720
67061
  }
66721
67062
  }
66722
- function sanitizeEditableContent(element) {
67063
+ function sanitizeEditableContent(element, cleanLineBreaks) {
67064
+ if (cleanLineBreaks === void 0) { cleanLineBreaks = true; }
66723
67065
  if (window.getSelection && document.createRange && element.childNodes.length > 0) {
66724
67066
  var selection = document.getSelection();
66725
67067
  if (selection.rangeCount == 0) {
@@ -66730,13 +67072,23 @@ function sanitizeEditableContent(element) {
66730
67072
  range.setEndAfter(element.lastChild);
66731
67073
  selection.removeAllRanges();
66732
67074
  selection.addRange(range);
66733
- var tail_len = selection.toString().replace(/\n/g, "").length;
66734
- element.innerText = element.innerText.replace(/\n/g, "");
67075
+ var tail = selection.toString();
67076
+ var innerText = element.innerText;
67077
+ tail = tail.replace(/\r/g, "");
67078
+ if (cleanLineBreaks) {
67079
+ tail = tail.replace(/\n/g, "");
67080
+ innerText = innerText.replace(/\n/g, "");
67081
+ }
67082
+ var tail_len = tail.length;
67083
+ element.innerText = innerText;
66735
67084
  range = document.createRange();
66736
- range.setStart(element.childNodes[0], element.innerText.length - tail_len);
66737
- range.collapse(true);
67085
+ range.setStart(element.firstChild, 0);
67086
+ range.setEnd(element.firstChild, 0);
66738
67087
  selection.removeAllRanges();
66739
67088
  selection.addRange(range);
67089
+ for (var i = 0; i < innerText.length - tail_len; i++) {
67090
+ selection.modify("move", "forward", "character");
67091
+ }
66740
67092
  }
66741
67093
  }
66742
67094
  function mergeValues(src, dest) {
@@ -66798,7 +67150,7 @@ function showConfirmDialog(message, callback, applyTitle, locale, rootElement) {
66798
67150
  cancelBtn.innerCss = "sv-popup__body-footer-item sv-popup__button sd-btn sd-btn--small";
66799
67151
  applyBtn.title = applyTitle || _surveyStrings__WEBPACK_IMPORTED_MODULE_2__["surveyLocalization"].getString("ok", locale);
66800
67152
  applyBtn.innerCss = "sv-popup__body-footer-item sv-popup__button sv-popup__button--danger sd-btn sd-btn--small sd-btn--danger";
66801
- popupViewModel.width = "452px";
67153
+ //popupViewModel.width = "452px";
66802
67154
  return true;
66803
67155
  }
66804
67156
  function chooseFiles(input, callback) {