survey-core 1.9.129 → 1.9.130

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/defaultV2.css +18 -4
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +18 -4
  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 +5 -3
  115. package/modern.css.map +1 -1
  116. package/modern.fontless.css +5 -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 +432 -129
  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/entries/chunks/model.d.ts +1 -1
  219. package/ts3.4/typings/jsonobject.d.ts +4 -0
  220. package/ts3.4/typings/panel.d.ts +7 -1
  221. package/ts3.4/typings/popup-survey.d.ts +1 -2
  222. package/ts3.4/typings/question_boolean.d.ts +3 -0
  223. package/ts3.4/typings/question_file.d.ts +2 -2
  224. package/ts3.4/typings/question_matrixdropdownbase.d.ts +11 -8
  225. package/ts3.4/typings/question_matrixdynamic.d.ts +2 -3
  226. package/ts3.4/typings/question_paneldynamic.d.ts +1 -1
  227. package/ts3.4/typings/settings.d.ts +26 -10
  228. package/ts3.4/typings/survey.d.ts +1 -0
  229. package/typings/defaultCss/defaultV2Css.d.ts +1 -0
  230. package/typings/dragdrop/dom-adapter.d.ts +2 -1
  231. package/typings/entries/chunks/model.d.ts +1 -1
  232. package/typings/jsonobject.d.ts +4 -0
  233. package/typings/panel.d.ts +7 -1
  234. package/typings/popup-survey.d.ts +1 -2
  235. package/typings/question_boolean.d.ts +3 -0
  236. package/typings/question_file.d.ts +2 -2
  237. package/typings/question_matrixdropdownbase.d.ts +12 -8
  238. package/typings/question_matrixdynamic.d.ts +2 -3
  239. package/typings/question_paneldynamic.d.ts +1 -1
  240. package/typings/settings.d.ts +26 -10
  241. package/typings/survey.d.ts +1 -0
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.130
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -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();
@@ -8113,6 +8126,8 @@ var DropdownListModel = /** @class */ (function (_super) {
8113
8126
  }
8114
8127
  };
8115
8128
  DropdownListModel.prototype.cleanHtml = function (html) {
8129
+ if (!this.htmlCleanerElement)
8130
+ return "";
8116
8131
  this.htmlCleanerElement.innerHTML = html;
8117
8132
  return this.htmlCleanerElement.textContent;
8118
8133
  };
@@ -8935,7 +8950,7 @@ var ElementHelper = /** @class */ (function () {
8935
8950
  /*!*************************************!*\
8936
8951
  !*** ./src/entries/chunks/model.ts ***!
8937
8952
  \*************************************/
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 */
8953
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedErrorRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
8939
8954
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8940
8955
 
8941
8956
  "use strict";
@@ -9101,6 +9116,8 @@ __webpack_require__.r(__webpack_exports__);
9101
9116
 
9102
9117
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_20__["QuestionMatrixDropdownRenderedRow"]; });
9103
9118
 
9119
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_20__["QuestionMatrixDropdownRenderedErrorRow"]; });
9120
+
9104
9121
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_20__["QuestionMatrixDropdownRenderedTable"]; });
9105
9122
 
9106
9123
  /* harmony import */ var _question_matrixdropdown__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../question_matrixdropdown */ "./src/question_matrixdropdown.ts");
@@ -9414,8 +9431,8 @@ __webpack_require__.r(__webpack_exports__);
9414
9431
  //import "../../modern.scss";
9415
9432
  var Version;
9416
9433
  var ReleaseDate;
9417
- Version = "" + "1.9.129";
9418
- ReleaseDate = "" + "2024-02-06";
9434
+ Version = "" + "1.9.130";
9435
+ ReleaseDate = "" + "2024-02-15";
9419
9436
  function checkLibraryVersion(ver, libraryName) {
9420
9437
  if (Version != ver) {
9421
9438
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9590,7 +9607,7 @@ function checkPrefix(prefix) {
9590
9607
  /*!**************************************!*\
9591
9608
  !*** ./src/entries/core-wo-model.ts ***!
9592
9609
  \**************************************/
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 */
9610
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedErrorRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper */
9594
9611
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9595
9612
 
9596
9613
  "use strict";
@@ -9742,6 +9759,8 @@ __webpack_require__.r(__webpack_exports__);
9742
9759
 
9743
9760
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedRow"]; });
9744
9761
 
9762
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedErrorRow"]; });
9763
+
9745
9764
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedTable"]; });
9746
9765
 
9747
9766
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixDropdownRowModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["MatrixDropdownRowModel"]; });
@@ -10057,7 +10076,7 @@ __webpack_require__.r(__webpack_exports__);
10057
10076
  /*!*****************************!*\
10058
10077
  !*** ./src/entries/core.ts ***!
10059
10078
  \*****************************/
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 */
10079
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedErrorRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model */
10061
10080
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10062
10081
 
10063
10082
  "use strict";
@@ -10209,6 +10228,8 @@ __webpack_require__.r(__webpack_exports__);
10209
10228
 
10210
10229
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedRow"]; });
10211
10230
 
10231
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedErrorRow"]; });
10232
+
10212
10233
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedTable"]; });
10213
10234
 
10214
10235
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixDropdownRowModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["MatrixDropdownRowModel"]; });
@@ -18021,14 +18042,21 @@ var JsonObjectProperty = /** @class */ (function () {
18021
18042
  configurable: true
18022
18043
  });
18023
18044
  JsonObjectProperty.prototype.isAvailableInVersion = function (ver) {
18024
- if (!!this.alternativeName)
18045
+ if (!!this.alternativeName || this.oldName)
18025
18046
  return true;
18026
18047
  return this.isAvailableInVersionCore(ver);
18027
18048
  };
18028
18049
  JsonObjectProperty.prototype.getSerializedName = function (ver) {
18029
18050
  if (!this.alternativeName)
18030
18051
  return this.name;
18031
- return this.isAvailableInVersionCore(ver) ? this.name : this.alternativeName;
18052
+ return this.isAvailableInVersionCore(ver) ? this.name : this.alternativeName || this.oldName;
18053
+ };
18054
+ JsonObjectProperty.prototype.getSerializedProperty = function (obj, ver) {
18055
+ if (!this.oldName || this.isAvailableInVersionCore(ver))
18056
+ return this;
18057
+ if (!obj || !obj.getType)
18058
+ return null;
18059
+ return Serializer.findProperty(obj.getType(), this.oldName);
18032
18060
  };
18033
18061
  JsonObjectProperty.prototype.isAvailableInVersionCore = function (ver) {
18034
18062
  if (!ver || !this.version)
@@ -18114,6 +18142,7 @@ var JsonObjectProperty = /** @class */ (function () {
18114
18142
  "isLocalizableValue",
18115
18143
  "className",
18116
18144
  "alternativeName",
18145
+ "oldName",
18117
18146
  "layout",
18118
18147
  "version",
18119
18148
  "classNamePart",
@@ -18565,6 +18594,9 @@ var JsonMetadataClass = /** @class */ (function () {
18565
18594
  if (propInfo.alternativeName) {
18566
18595
  prop.alternativeName = propInfo.alternativeName;
18567
18596
  }
18597
+ if (propInfo.oldName) {
18598
+ prop.oldName = propInfo.oldName;
18599
+ }
18568
18600
  if (propInfo.layout) {
18569
18601
  prop.layout = propInfo.layout;
18570
18602
  }
@@ -18627,11 +18659,11 @@ var JsonMetadata = /** @class */ (function () {
18627
18659
  this.dynamicPropsCache = {};
18628
18660
  }
18629
18661
  JsonMetadata.prototype.getObjPropertyValue = function (obj, name) {
18630
- if (this.isObjWrapper(obj)) {
18662
+ if (this.isObjWrapper(obj) && this.isNeedUseObjWrapper(obj, name)) {
18631
18663
  var orignalObj = obj.getOriginalObj();
18632
- var prop = Serializer.findProperty(orignalObj.getType(), name);
18633
- if (!!prop)
18634
- return this.getObjPropertyValueCore(orignalObj, prop);
18664
+ var prop_1 = Serializer.findProperty(orignalObj.getType(), name);
18665
+ if (!!prop_1)
18666
+ return this.getObjPropertyValueCore(orignalObj, prop_1);
18635
18667
  }
18636
18668
  var prop = Serializer.findProperty(obj.getType(), name);
18637
18669
  if (!prop)
@@ -18668,6 +18700,18 @@ var JsonMetadata = /** @class */ (function () {
18668
18700
  JsonMetadata.prototype.isObjWrapper = function (obj) {
18669
18701
  return !!obj.getOriginalObj && !!obj.getOriginalObj();
18670
18702
  };
18703
+ JsonMetadata.prototype.isNeedUseObjWrapper = function (obj, name) {
18704
+ if (!obj.getDynamicProperties)
18705
+ return true;
18706
+ var props = obj.getDynamicProperties();
18707
+ if (!Array.isArray(props))
18708
+ return false;
18709
+ for (var i = 0; i < props.length; i++) {
18710
+ if (props[i].name === name)
18711
+ return true;
18712
+ }
18713
+ return false;
18714
+ };
18671
18715
  JsonMetadata.prototype.addClass = function (name, properties, creator, parentName) {
18672
18716
  if (creator === void 0) { creator = null; }
18673
18717
  if (parentName === void 0) { parentName = null; }
@@ -19369,6 +19413,14 @@ var JsonObject = /** @class */ (function () {
19369
19413
  return;
19370
19414
  if (options.version && !prop.isAvailableInVersion(options.version))
19371
19415
  return;
19416
+ this.valueToJsonCore(obj, result, prop, options);
19417
+ };
19418
+ JsonObject.prototype.valueToJsonCore = function (obj, result, prop, options) {
19419
+ var serProp = prop.getSerializedProperty(obj, options.version);
19420
+ if (serProp && serProp !== prop) {
19421
+ this.valueToJsonCore(obj, result, serProp, options);
19422
+ return;
19423
+ }
19372
19424
  var value = prop.getSerializableValue(obj);
19373
19425
  if (!options.storeDefaults && prop.isDefaultValueByObj(obj, value))
19374
19426
  return;
@@ -20324,7 +20376,11 @@ var LocalizableString = /** @class */ (function () {
20324
20376
  keys[0] == _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.defaultLocaleName &&
20325
20377
  !_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].serialization.localizableStringSerializeAsObject)
20326
20378
  return this.values[keys[0]];
20327
- return this.values;
20379
+ var res = {};
20380
+ for (var key in this.values) {
20381
+ res[key] = this.values[key];
20382
+ }
20383
+ return res;
20328
20384
  };
20329
20385
  LocalizableString.prototype.setJson = function (value) {
20330
20386
  if (!!this.sharedData) {
@@ -20670,7 +20726,7 @@ var englishStrings = {
20670
20726
  chooseFile: "Choose file(s)...",
20671
20727
  noFileChosen: "No file chosen",
20672
20728
  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?",
20729
+ confirmDelete: "Are you sure you want to delete this record?",
20674
20730
  keyDuplicationError: "This value should be unique.",
20675
20731
  addColumn: "Add Column",
20676
20732
  addRow: "Add Row",
@@ -20713,12 +20769,12 @@ var englishStrings = {
20713
20769
  modalApplyButtonText: "Apply",
20714
20770
  filterStringPlaceholder: "Type to search...",
20715
20771
  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.",
20772
+ noEntriesText: "No entries yet.\nClick the button below to add a new entry.",
20773
+ noEntriesReadonlyText: "No entries.",
20718
20774
  more: "More",
20719
20775
  tagboxDoneButtonCaption: "OK",
20720
- selectToRankEmptyRankedAreaText: "All choices are ranked",
20721
- selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them",
20776
+ selectToRankEmptyRankedAreaText: "All choices are selected for ranking",
20777
+ selectToRankEmptyUnrankedAreaText: "Drag choices here to rank them",
20722
20778
  ok: "OK",
20723
20779
  cancel: "Cancel",
20724
20780
  };
@@ -21822,6 +21878,11 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
21822
21878
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21823
21879
  return c > 3 && r && Object.defineProperty(target, key, r), r;
21824
21880
  };
21881
+ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from) {
21882
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
21883
+ to[j] = from[i];
21884
+ return to;
21885
+ };
21825
21886
 
21826
21887
 
21827
21888
 
@@ -21852,6 +21913,8 @@ var QuestionRowModel = /** @class */ (function (_super) {
21852
21913
  QuestionRowModel.prototype.startLazyRendering = function (rowContainerDiv, findScrollableContainer) {
21853
21914
  var _this = this;
21854
21915
  if (findScrollableContainer === void 0) { findScrollableContainer = _utils_utils__WEBPACK_IMPORTED_MODULE_8__["findScrollableParent"]; }
21916
+ if ("undefined" === typeof document)
21917
+ return;
21855
21918
  this._scrollableParent = findScrollableContainer(rowContainerDiv);
21856
21919
  // if this._scrollableParent is html the scroll event isn't fired, so we should use window
21857
21920
  if (this._scrollableParent === document.documentElement) {
@@ -22066,6 +22129,7 @@ var PanelModelBase = /** @class */ (function (_super) {
22066
22129
  _this.isQuestionsReady = false;
22067
22130
  _this.questionsValue = new Array();
22068
22131
  _this.isRandomizing = false;
22132
+ _this.locCountRowUpdates = 0;
22069
22133
  _this.createNewArray("rows");
22070
22134
  _this.elementsValue = _this.createNewArray("elements", _this.onAddElement.bind(_this), _this.onRemoveElement.bind(_this));
22071
22135
  _this.id = PanelModelBase.getPanelId();
@@ -22940,14 +23004,92 @@ var PanelModelBase = /** @class */ (function (_super) {
22940
23004
  return;
22941
23005
  this.setArrayPropertyDirectly("rows", this.buildRows());
22942
23006
  };
23007
+ PanelModelBase.prototype.blockRowsUpdates = function () {
23008
+ this.locCountRowUpdates++;
23009
+ };
23010
+ PanelModelBase.prototype.releaseRowsUpdates = function () {
23011
+ this.locCountRowUpdates--;
23012
+ };
23013
+ PanelModelBase.prototype.updateRowsBeforeElementRemoved = function (element) {
23014
+ var _this = this;
23015
+ var elementRow = this.findRowByElement(element);
23016
+ var elementRowIndex = this.rows.indexOf(elementRow);
23017
+ var elementIndexInRow = elementRow.elements.indexOf(element);
23018
+ elementRow.elements.splice(elementIndexInRow, 1);
23019
+ if (elementRow.elements.length == 0) {
23020
+ this.rows.splice(elementRowIndex, 1);
23021
+ }
23022
+ else if (!elementRow.elements[0].startWithNewLine && this.rows[elementRowIndex - 1]) {
23023
+ elementRow.elements.forEach(function (el) { return _this.rows[elementRowIndex - 1].addElement(el); });
23024
+ this.rows.splice(elementRowIndex, 1);
23025
+ }
23026
+ else {
23027
+ elementRow.updateVisible();
23028
+ }
23029
+ };
23030
+ PanelModelBase.prototype.updateRowsOnElementAdded = function (element) {
23031
+ var _this = this;
23032
+ var index = this.elements.indexOf(element);
23033
+ var targetElement = this.elements[index + 1];
23034
+ var createRowAtIndex = function (index) {
23035
+ var row = _this.createRowAndSetLazy(index);
23036
+ if (_this.isDesignModeV2) {
23037
+ row.setIsLazyRendering(false);
23038
+ }
23039
+ _this.rows.splice(index, 0, row);
23040
+ return row;
23041
+ };
23042
+ var updateRow = function (row, start, deleteCount) {
23043
+ var _a;
23044
+ var elements = [];
23045
+ for (var _i = 3; _i < arguments.length; _i++) {
23046
+ elements[_i - 3] = arguments[_i];
23047
+ }
23048
+ var removedElements = (_a = row.elements).splice.apply(_a, __spreadArray([start, deleteCount], elements));
23049
+ row.updateVisible();
23050
+ return removedElements;
23051
+ };
23052
+ if (!targetElement) {
23053
+ if (index == 0 || element.startWithNewLine) {
23054
+ updateRow(createRowAtIndex(this.rows.length), 0, 0, element);
23055
+ }
23056
+ else {
23057
+ this.rows[this.rows.length - 1].addElement(element);
23058
+ }
23059
+ return;
23060
+ }
23061
+ var targetRow = this.findRowByElement(targetElement);
23062
+ if (!targetRow)
23063
+ return;
23064
+ var targetRowIndex = this.rows.indexOf(targetRow);
23065
+ var targetElementIndexInRow = targetRow.elements.indexOf(targetElement);
23066
+ if (targetElementIndexInRow == 0) {
23067
+ if (!targetElement.startWithNewLine) {
23068
+ updateRow(targetRow, 0, 0, element);
23069
+ }
23070
+ else if (element.startWithNewLine || targetRowIndex < 1) {
23071
+ createRowAtIndex(targetRowIndex).addElement(element);
23072
+ }
23073
+ else {
23074
+ this.rows[targetRowIndex - 1].addElement(element);
23075
+ }
23076
+ }
23077
+ else {
23078
+ if (element.startWithNewLine) {
23079
+ updateRow.apply(void 0, __spreadArray([createRowAtIndex(targetRowIndex + 1), 0, 0], [element].concat(updateRow(targetRow, targetElementIndexInRow, targetRow.elements.length))));
23080
+ }
23081
+ else {
23082
+ updateRow(targetRow, targetElementIndexInRow, 0, element);
23083
+ }
23084
+ }
23085
+ };
22943
23086
  PanelModelBase.prototype.onAddElement = function (element, index) {
22944
23087
  var _this = this;
22945
23088
  element.setSurveyImpl(this.surveyImpl);
22946
23089
  element.parent = this;
22947
23090
  this.markQuestionListDirty();
22948
23091
  if (this.canBuildRows()) {
22949
- var dragDropInfo = _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].supportCreatorV2 ? this.getDragDropInfo() : undefined;
22950
- this.dragDropPanelHelper.updateRowsOnElementAdded(element, index, dragDropInfo, this);
23092
+ this.updateRowsOnElementAdded(element);
22951
23093
  }
22952
23094
  if (element.isPanel) {
22953
23095
  var p = element;
@@ -23001,7 +23143,10 @@ var PanelModelBase = /** @class */ (function (_super) {
23001
23143
  }
23002
23144
  };
23003
23145
  PanelModelBase.prototype.onElementStartWithNewLineChanged = function (element) {
23004
- this.onRowsChanged();
23146
+ if (this.locCountRowUpdates > 0)
23147
+ return;
23148
+ this.updateRowsBeforeElementRemoved(element);
23149
+ this.updateRowsOnElementAdded(element);
23005
23150
  };
23006
23151
  PanelModelBase.prototype.updateRowsVisibility = function (element) {
23007
23152
  var rows = this.rows;
@@ -23062,7 +23207,9 @@ var PanelModelBase = /** @class */ (function (_super) {
23062
23207
  return;
23063
23208
  row.elements.splice(elIndex, 1);
23064
23209
  if (row.elements.length > 0) {
23210
+ this.blockRowsUpdates();
23065
23211
  row.elements[0].startWithNewLine = true;
23212
+ this.releaseRowsUpdates();
23066
23213
  row.updateVisible();
23067
23214
  }
23068
23215
  else {
@@ -23288,6 +23435,42 @@ var PanelModelBase = /** @class */ (function (_super) {
23288
23435
  }
23289
23436
  return true;
23290
23437
  };
23438
+ PanelModelBase.prototype.insertElement = function (element, dest, location) {
23439
+ if (location === void 0) { location = "bottom"; }
23440
+ if (!dest) {
23441
+ this.addElement(element);
23442
+ return;
23443
+ }
23444
+ this.blockRowsUpdates();
23445
+ var index = this.elements.indexOf(dest);
23446
+ var destRow = this.findRowByElement(dest);
23447
+ if (location == "left" || location == "right") {
23448
+ if (location == "right") {
23449
+ element.startWithNewLine = false;
23450
+ index++;
23451
+ }
23452
+ else {
23453
+ if (destRow.elements.indexOf(dest) == 0) {
23454
+ dest.startWithNewLine = false;
23455
+ element.startWithNewLine = true;
23456
+ }
23457
+ else {
23458
+ element.startWithNewLine = false;
23459
+ }
23460
+ }
23461
+ }
23462
+ else {
23463
+ element.startWithNewLine = true;
23464
+ if (location == "top") {
23465
+ index = this.elements.indexOf(destRow.elements[0]);
23466
+ }
23467
+ else {
23468
+ index = this.elements.indexOf(destRow.elements[destRow.elements.length - 1]) + 1;
23469
+ }
23470
+ }
23471
+ this.releaseRowsUpdates();
23472
+ this.addElement(element, index);
23473
+ };
23291
23474
  PanelModelBase.prototype.insertElementAfter = function (element, after) {
23292
23475
  var index = this.elements.indexOf(after);
23293
23476
  if (index >= 0)
@@ -23333,7 +23516,7 @@ var PanelModelBase = /** @class */ (function (_super) {
23333
23516
  *
23334
23517
  * This method returns `null` if the panel cannot be created or added to this panel/page; otherwise, the method returns the created panel.
23335
23518
  * @param name A panel name.
23336
- * @see elements
23519
+ * @see elementsup
23337
23520
  * @see addElement
23338
23521
  */
23339
23522
  PanelModelBase.prototype.addNewPanel = function (name) {
@@ -23962,7 +24145,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("panel", [
23962
24145
  { name: "minWidth", defaultFunc: function () { return "auto"; } },
23963
24146
  { name: "maxWidth", defaultFunc: function () { return _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].maxWidth; } },
23964
24147
  { name: "innerIndent:number", default: 0, choices: [0, 1, 2, 3] },
23965
- { name: "indent:number", default: 0, choices: [0, 1, 2, 3] },
24148
+ { name: "indent:number", default: 0, choices: [0, 1, 2, 3], visible: false },
23966
24149
  {
23967
24150
  name: "page",
23968
24151
  isSerializable: false,
@@ -24135,13 +24318,15 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
24135
24318
  };
24136
24319
  PopupDropdownViewModel.prototype.getActualHorizontalPosition = function () {
24137
24320
  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";
24321
+ if ("undefined" !== typeof document) {
24322
+ var isRtl = !!document && document.defaultView.getComputedStyle(document.body).direction == "rtl";
24323
+ if (isRtl) {
24324
+ if (this.model.horizontalPosition === "left") {
24325
+ actualHorizontalPosition = "right";
24326
+ }
24327
+ else if (this.model.horizontalPosition === "right") {
24328
+ actualHorizontalPosition = "left";
24329
+ }
24145
24330
  }
24146
24331
  }
24147
24332
  return actualHorizontalPosition;
@@ -24621,10 +24806,9 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24621
24806
  });
24622
24807
  Object.defineProperty(PopupSurveyModel.prototype, "allowFullScreen", {
24623
24808
  /**
24624
- * Specifies whether to display a button that allow showing pop-up in full-screen mode.
24809
+ * Specifies whether to display a button that allows respondents to show the pop-up survey in full screen mode.
24625
24810
  *
24626
24811
  * Default value: `false`
24627
- *
24628
24812
  */
24629
24813
  get: function () {
24630
24814
  return this.getPropertyValue("allowFullScreen", false);
@@ -25189,7 +25373,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
25189
25373
  this.resetComponentElement();
25190
25374
  };
25191
25375
  PopupBaseViewModel.prototype.initializePopupContainer = function () {
25192
- if (!this.container) {
25376
+ if (!this.container && ("undefined" !== typeof document)) {
25193
25377
  var container = document.createElement("div");
25194
25378
  this.createdContainer = container;
25195
25379
  Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["getElement"])(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.popupMountContainer).appendChild(container);
@@ -31469,8 +31653,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("selectbase", [
31469
31653
  { name: "separateSpecialChoices:boolean", visible: false },
31470
31654
  { name: "showOtherItem:boolean", alternativeName: "hasOther" },
31471
31655
  { name: "showNoneItem:boolean", alternativeName: "hasNone" },
31472
- { name: "showRefuseItem:boolean", visible: false },
31473
- { name: "showDontKnowItem:boolean", visible: false },
31656
+ { name: "showRefuseItem:boolean", visible: false, version: "1.9.128" },
31657
+ { name: "showDontKnowItem:boolean", visible: false, version: "1.9.128" },
31474
31658
  {
31475
31659
  name: "otherPlaceholder",
31476
31660
  alternativeName: "otherPlaceHolder",
@@ -31647,8 +31831,8 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31647
31831
  });
31648
31832
  QuestionBooleanModel.prototype.setBooleanValue = function (val) {
31649
31833
  if (this.isValueEmpty(val)) {
31650
- this.value = null;
31651
- this.booleanValueRendered = null;
31834
+ this.value = undefined;
31835
+ this.booleanValueRendered = undefined;
31652
31836
  }
31653
31837
  else {
31654
31838
  this.value = val == true ? this.getValueTrue() : this.getValueFalse();
@@ -31664,8 +31848,6 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31664
31848
  val = "true";
31665
31849
  if (val === false)
31666
31850
  val = "false";
31667
- if (val === undefined)
31668
- val = "indeterminate";
31669
31851
  this.setPropertyValue("defaultValue", val);
31670
31852
  this.updateValueWithDefaults();
31671
31853
  },
@@ -31673,13 +31855,10 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31673
31855
  configurable: true
31674
31856
  });
31675
31857
  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();
31858
+ var val = this.defaultValue;
31859
+ if (val === "indeterminate" || val === undefined || val === null)
31860
+ return undefined;
31861
+ return val == "true" ? this.getValueTrue() : this.getValueFalse();
31683
31862
  };
31684
31863
  Object.defineProperty(QuestionBooleanModel.prototype, "locTitle", {
31685
31864
  get: function () {
@@ -31738,7 +31917,21 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31738
31917
  });
31739
31918
  Object.defineProperty(QuestionBooleanModel.prototype, "isDeterminated", {
31740
31919
  get: function () {
31741
- return this.booleanValue !== null;
31920
+ return this.booleanValue !== null && this.booleanValue !== undefined;
31921
+ },
31922
+ enumerable: false,
31923
+ configurable: true
31924
+ });
31925
+ Object.defineProperty(QuestionBooleanModel.prototype, "locLabelLeft", {
31926
+ get: function () {
31927
+ return this.swapOrder ? this.getLocalizableString("labelTrue") : this.getLocalizableString("labelFalse");
31928
+ },
31929
+ enumerable: false,
31930
+ configurable: true
31931
+ });
31932
+ Object.defineProperty(QuestionBooleanModel.prototype, "locLabelRight", {
31933
+ get: function () {
31934
+ return this.swapOrder ? this.getLocalizableString("labelFalse") : this.getLocalizableString("labelTrue");
31742
31935
  },
31743
31936
  enumerable: false,
31744
31937
  configurable: true
@@ -31778,8 +31971,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31778
31971
  this.setBooleanValue(true);
31779
31972
  if (this.isDefaultValueSet("false", this.valueFalse))
31780
31973
  this.setBooleanValue(false);
31781
- if (this.defaultValue == "indeterminate")
31782
- this.setBooleanValue(null);
31974
+ var val = this.defaultValue;
31975
+ if (val === "indeterminate" || val === null || val === undefined)
31976
+ this.setBooleanValue(undefined);
31783
31977
  };
31784
31978
  QuestionBooleanModel.prototype.isDefaultValueSet = function (defaultValueCheck, valueTrueOrFalse) {
31785
31979
  return this.defaultValue == defaultValueCheck || (valueTrueOrFalse !== undefined && this.defaultValue === valueTrueOrFalse);
@@ -31796,7 +31990,8 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31796
31990
  .append(css.itemDisabled, this.isReadOnly)
31797
31991
  .append(css.itemHover, !this.isDesignMode)
31798
31992
  .append(css.itemChecked, !!this.booleanValue)
31799
- .append(css.itemIndeterminate, this.booleanValue === null)
31993
+ .append(css.itemExchanged, !!this.swapOrder)
31994
+ .append(css.itemIndeterminate, !this.isDeterminated)
31800
31995
  .toString();
31801
31996
  };
31802
31997
  QuestionBooleanModel.prototype.getItemCss = function () {
@@ -31815,15 +32010,15 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31815
32010
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
31816
32011
  .append(this.cssClasses.label)
31817
32012
  .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)
32013
+ .append(this.cssClasses.labelTrue, !this.isIndeterminate && checked === !this.swapOrder)
32014
+ .append(this.cssClasses.labelFalse, !this.isIndeterminate && checked === this.swapOrder)
31820
32015
  .toString();
31821
32016
  };
31822
32017
  Object.defineProperty(QuestionBooleanModel.prototype, "svgIcon", {
31823
32018
  get: function () {
31824
32019
  if (this.booleanValue && this.cssClasses.svgIconCheckedId)
31825
32020
  return this.cssClasses.svgIconCheckedId;
31826
- if (this.booleanValue === null && this.cssClasses.svgIconIndId)
32021
+ if (!this.isDeterminated && this.cssClasses.svgIconIndId)
31827
32022
  return this.cssClasses.svgIconIndId;
31828
32023
  if (!this.booleanValue && this.cssClasses.svgIconUncheckedId)
31829
32024
  return this.cssClasses.svgIconUncheckedId;
@@ -31853,8 +32048,8 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31853
32048
  newValue = true;
31854
32049
  if (newValue === "false" && this.valueFalse !== "false")
31855
32050
  newValue = false;
31856
- if (newValue === "indeterminate")
31857
- newValue = null;
32051
+ if (newValue === "indeterminate" || newValue === null)
32052
+ newValue = undefined;
31858
32053
  _super.prototype.setQuestionValue.call(this, newValue, updateIsAnswered);
31859
32054
  };
31860
32055
  /* #region web-based methods */
@@ -31866,7 +32061,10 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31866
32061
  return true;
31867
32062
  };
31868
32063
  QuestionBooleanModel.prototype.calculateBooleanValueByEvent = function (event, isRightClick) {
31869
- var isRtl = document.defaultView.getComputedStyle(event.target).direction == "rtl";
32064
+ var isRtl = false;
32065
+ if ("undefined" !== typeof document) {
32066
+ isRtl = document.defaultView.getComputedStyle(event.target).direction == "rtl";
32067
+ }
31870
32068
  this.booleanValue = isRtl ? !isRightClick : isRightClick;
31871
32069
  };
31872
32070
  QuestionBooleanModel.prototype.onSwitchClickModel = function (event) {
@@ -31929,6 +32127,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
31929
32127
  __decorate([
31930
32128
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: true })
31931
32129
  ], QuestionBooleanModel.prototype, "label", void 0);
32130
+ __decorate([
32131
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
32132
+ ], QuestionBooleanModel.prototype, "swapOrder", void 0);
31932
32133
  __decorate([
31933
32134
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
31934
32135
  ], QuestionBooleanModel.prototype, "valueTrue", void 0);
@@ -31951,6 +32152,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("boolean", [
31951
32152
  },
31952
32153
  "valueTrue",
31953
32154
  "valueFalse",
32155
+ { name: "swapOrder:boolean", category: "general" },
31954
32156
  { name: "renderAs", default: "default", visible: false },
31955
32157
  ], function () {
31956
32158
  return new QuestionBooleanModel("");
@@ -35944,9 +36146,11 @@ var QuestionFileModel = /** @class */ (function (_super) {
35944
36146
  enumerable: false,
35945
36147
  configurable: true
35946
36148
  });
35947
- QuestionFileModel.prototype.chooseFile = function () {
36149
+ QuestionFileModel.prototype.chooseFile = function (event) {
35948
36150
  var _this = this;
35949
36151
  var inputElement = document.getElementById(this.inputId);
36152
+ event.preventDefault();
36153
+ event.stopImmediatePropagation();
35950
36154
  if (inputElement) {
35951
36155
  if (this.survey) {
35952
36156
  this.survey.chooseFiles(inputElement, function (files) { return _this.loadFiles(files); }, { element: this });
@@ -36428,8 +36632,8 @@ var QuestionFileModel = /** @class */ (function (_super) {
36428
36632
  _super.prototype.updateElementCss.call(this, reNew);
36429
36633
  this.updateCurrentMode();
36430
36634
  };
36431
- QuestionFileModel.prototype.endLoadingFromJson = function () {
36432
- _super.prototype.endLoadingFromJson.call(this);
36635
+ QuestionFileModel.prototype.onSurveyLoad = function () {
36636
+ _super.prototype.onSurveyLoad.call(this);
36433
36637
  this.updateCurrentMode();
36434
36638
  this.updateActionsVisibility();
36435
36639
  this.loadPreview(this.value);
@@ -39718,7 +39922,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
39718
39922
  _this.clearRowsAndResetRenderedTable();
39719
39923
  });
39720
39924
  _this.registerPropertyChangedHandlers([
39721
- "columnLayout",
39925
+ "transposeData",
39722
39926
  "addRowLocation",
39723
39927
  "hideColumnsIfEmpty",
39724
39928
  "showHeader",
@@ -39815,20 +40019,32 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
39815
40019
  this.clearRowsAndResetRenderedTable();
39816
40020
  }
39817
40021
  };
39818
- Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "columnLayout", {
40022
+ Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "transposeData", {
39819
40023
  /**
39820
- * Specifies the matrix layout. Set this property to `"vertical"` if you want to display columns instead of rows and rows instead of columns.
40024
+ * Specifies whether to display [`columns`](#columns) as rows and [`rows`](#rows) as columns.
39821
40025
  *
39822
- * Default value: `"horizontal"`
39823
- * @see columns
39824
- * @see rows
39825
- * @see isColumnLayoutHorizontal
40026
+ * Default value: `false`
40027
+ *
40028
+ * [View Demo](https://surveyjs.io/form-library/examples/transpose-dynamic-rows-to-columns-in-matrix/ (linkStyle))
39826
40029
  */
39827
40030
  get: function () {
39828
- return this.getPropertyValue("columnLayout");
40031
+ return this.getPropertyValue("transposeData");
39829
40032
  },
39830
40033
  set: function (val) {
39831
- this.setPropertyValue("columnLayout", val);
40034
+ this.setPropertyValue("transposeData", val);
40035
+ },
40036
+ enumerable: false,
40037
+ configurable: true
40038
+ });
40039
+ Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "columnLayout", {
40040
+ /**
40041
+ * This property is obsolete. Use the [`transposeData`](#transposeData) property instead.
40042
+ */
40043
+ get: function () {
40044
+ return this.transposeData ? "vertical" : "horizontal";
40045
+ },
40046
+ set: function (val) {
40047
+ this.transposeData = val === "vertical";
39832
40048
  },
39833
40049
  enumerable: false,
39834
40050
  configurable: true
@@ -39891,15 +40107,13 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
39891
40107
  };
39892
40108
  Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "isColumnLayoutHorizontal", {
39893
40109
  /**
39894
- * Returns `true` if columns are placed in the horizontal direction and rows in the vertical direction.
40110
+ * Returns `true` if [`columns`](#columns) are placed in the horizontal direction and [`rows`](#columns) in the vertical direction.
39895
40111
  *
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
40112
+ * To specify the layout, use the [`transposeData`](#transposeData) property. If you set it to `true`, the survey applies it only when the screen has enough space. Otherwise, the survey falls back to the original layout, but the `transposeData` property remains set to `true`. Unlike `transposeData`, the `isColumnLayoutHorizontal` property always indicates the current layout.
40113
+ * @see transposeData
39898
40114
  */
39899
40115
  get: function () {
39900
- if (this.isMobile)
39901
- return true;
39902
- return this.columnLayout != "vertical";
40116
+ return this.isMobile ? true : !this.transposeData;
39903
40117
  },
39904
40118
  enumerable: false,
39905
40119
  configurable: true
@@ -41434,8 +41648,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownb
41434
41648
  {
41435
41649
  name: "columnLayout",
41436
41650
  alternativeName: "columnsLocation",
41437
- default: "horizontal",
41438
41651
  choices: ["horizontal", "vertical"],
41652
+ visible: false, isSerializable: false
41653
+ },
41654
+ {
41655
+ name: "transposeData:boolean", version: "1.9.130", oldName: "columnLayout"
41439
41656
  },
41440
41657
  {
41441
41658
  name: "detailElements",
@@ -44130,7 +44347,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
44130
44347
  };
44131
44348
  Object.defineProperty(QuestionMatrixDynamicModel.prototype, "allowRowsDragAndDrop", {
44132
44349
  /**
44133
- * Specifies whether users can drag and drop matrix rows to reorder them. Applies only if [`columnLayout`](#columnLayout) is `"horizontal"`.
44350
+ * Specifies whether users can drag and drop matrix rows to reorder them. Applies only if [`transposeData`](#transposeData) is `false`.
44134
44351
  *
44135
44352
  * Default value: `false`
44136
44353
  */
@@ -44575,8 +44792,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
44575
44792
  * - `"bottom"` - Displays the Add Row button at the bottom of the matrix.
44576
44793
  * - `"topBottom"` - Displays the Add Row button at the top and bottom of the matrix.
44577
44794
  *
44578
- * Default value: `"top"` if `columnLayout` is `vertical`; `"bottom"` if `columnLayout` is `"horizontal"` or the matrix is in compact mode.
44579
- * @see columnLayout
44795
+ * Default value: `"top"` if [`transposeData`](#transposeData) is `true`; `"bottom"` if `transposeData` is `false` or the matrix is in compact mode.
44580
44796
  * @see addRowText
44581
44797
  */
44582
44798
  get: function () {
@@ -47583,6 +47799,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
47583
47799
  if (this.renderMode === "list" && this.panelsState !== "default") {
47584
47800
  newPanel.expand();
47585
47801
  }
47802
+ newPanel.focusFirstQuestion();
47586
47803
  return newPanel;
47587
47804
  };
47588
47805
  /**
@@ -48504,7 +48721,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
48504
48721
  };
48505
48722
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "noEntriesText", {
48506
48723
  /**
48507
- * A text displayed when Dynamic Panel contains no entries. Applies only in the Default V2 theme.
48724
+ * A text displayed when Dynamic Panel contains no entries.
48508
48725
  */
48509
48726
  get: function () {
48510
48727
  return this.getLocalizableStringText("noEntriesText");
@@ -48774,6 +48991,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
48774
48991
  name: "panelsState",
48775
48992
  default: "default",
48776
48993
  choices: ["default", "collapsed", "expanded", "firstExpanded"],
48994
+ visibleIf: function (obj) { return obj.renderMode === "list"; }
48777
48995
  },
48778
48996
  { name: "keyName" },
48779
48997
  {
@@ -48784,24 +49002,45 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
48784
49002
  {
48785
49003
  name: "confirmDeleteText",
48786
49004
  serializationProperty: "locConfirmDeleteText",
49005
+ visibleIf: function (obj) { return obj.confirmDelete; }
49006
+ },
49007
+ {
49008
+ name: "panelAddText",
49009
+ serializationProperty: "locPanelAddText",
49010
+ visibleIf: function (obj) { return obj.allowAddPanel; }
49011
+ },
49012
+ {
49013
+ name: "panelRemoveText",
49014
+ serializationProperty: "locPanelRemoveText",
49015
+ visibleIf: function (obj) { return obj.allowRemovePanel; }
49016
+ },
49017
+ {
49018
+ name: "panelPrevText",
49019
+ serializationProperty: "locPanelPrevText",
49020
+ visibleIf: function (obj) { return obj.renderMode !== "list"; }
49021
+ },
49022
+ {
49023
+ name: "panelNextText",
49024
+ serializationProperty: "locPanelNextText",
49025
+ visibleIf: function (obj) { return obj.renderMode !== "list"; }
48787
49026
  },
48788
- { name: "panelAddText", serializationProperty: "locPanelAddText" },
48789
- { name: "panelRemoveText", serializationProperty: "locPanelRemoveText" },
48790
- { name: "panelPrevText", serializationProperty: "locPanelPrevText" },
48791
- { name: "panelNextText", serializationProperty: "locPanelNextText" },
48792
49027
  {
48793
49028
  name: "showQuestionNumbers",
48794
49029
  default: "off",
48795
49030
  choices: ["off", "onPanel", "onSurvey"],
48796
49031
  },
48797
- { name: "showRangeInProgress:boolean", default: true },
49032
+ {
49033
+ name: "showRangeInProgress:boolean",
49034
+ default: true,
49035
+ visibleIf: function (obj) { return obj.renderMode !== "list"; }
49036
+ },
48798
49037
  {
48799
49038
  name: "renderMode",
48800
49039
  default: "list",
48801
49040
  choices: ["list", "progressTop", "progressBottom", "progressTopBottom", "tab"],
48802
49041
  },
48803
49042
  {
48804
- name: "tabAlign", default: "center", choices: ["center", "left", "right"],
49043
+ name: "tabAlign", default: "center", choices: ["left", "center", "right"],
48805
49044
  visibleIf: function (obj) { return obj.renderMode === "tab"; }
48806
49045
  },
48807
49046
  {
@@ -48818,6 +49057,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
48818
49057
  name: "panelRemoveButtonLocation",
48819
49058
  default: "bottom",
48820
49059
  choices: ["bottom", "right"],
49060
+ visibleIf: function (obj) { return obj.allowRemovePanel; }
48821
49061
  },
48822
49062
  ], function () {
48823
49063
  return new QuestionPanelDynamicModel("");
@@ -50651,7 +50891,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50651
50891
  default: "labels",
50652
50892
  category: "rateValues",
50653
50893
  choices: ["labels", "stars", "smileys"],
50654
- visibleIndex: 0
50894
+ visibleIndex: 1
50655
50895
  },
50656
50896
  {
50657
50897
  name: "scaleColorMode",
@@ -50661,7 +50901,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50661
50901
  visibleIf: function (obj) {
50662
50902
  return obj.rateDisplayMode == "smileys";
50663
50903
  },
50664
- visibleIndex: 1
50904
+ visibleIndex: 2
50665
50905
  },
50666
50906
  {
50667
50907
  name: "rateColorMode",
@@ -50671,20 +50911,20 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50671
50911
  visibleIf: function (obj) {
50672
50912
  return obj.rateDisplayMode == "smileys" && obj.scaleColorMode == "monochrome";
50673
50913
  },
50674
- visibleIndex: 2
50914
+ visibleIndex: 3
50675
50915
  },
50676
50916
  {
50677
50917
  name: "autoGenerate",
50678
50918
  category: "rateValues",
50679
50919
  default: true,
50680
50920
  choices: [true, false],
50681
- visibleIndex: 4
50921
+ visibleIndex: 5
50682
50922
  },
50683
50923
  {
50684
50924
  name: "rateCount:number",
50685
50925
  default: 5,
50686
50926
  category: "rateValues",
50687
- visibleIndex: 3,
50927
+ visibleIndex: 4,
50688
50928
  onSettingValue: function (obj, val) {
50689
50929
  if (val < 2)
50690
50930
  return 2;
@@ -50704,7 +50944,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50704
50944
  visibleIf: function (obj) {
50705
50945
  return !obj.autoGenerate;
50706
50946
  },
50707
- visibleIndex: 5
50947
+ visibleIndex: 6
50708
50948
  },
50709
50949
  {
50710
50950
  name: "rateMin:number", default: 1,
@@ -50714,7 +50954,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50714
50954
  visibleIf: function (obj) {
50715
50955
  return !!obj.autoGenerate;
50716
50956
  },
50717
- visibleIndex: 6
50957
+ visibleIndex: 7
50718
50958
  },
50719
50959
  {
50720
50960
  name: "rateMax:number", default: 5,
@@ -50724,7 +50964,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50724
50964
  visibleIf: function (obj) {
50725
50965
  return !!obj.autoGenerate;
50726
50966
  },
50727
- visibleIndex: 7
50967
+ visibleIndex: 8
50728
50968
  },
50729
50969
  {
50730
50970
  name: "rateStep:number", default: 1, minValue: 0.1,
@@ -50738,24 +50978,24 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50738
50978
  visibleIf: function (obj) {
50739
50979
  return !!obj.autoGenerate;
50740
50980
  },
50741
- visibleIndex: 8
50981
+ visibleIndex: 9
50742
50982
  },
50743
50983
  {
50744
50984
  name: "minRateDescription",
50745
50985
  alternativeName: "mininumRateDescription",
50746
50986
  serializationProperty: "locMinRateDescription",
50747
- visibleIndex: 17
50987
+ visibleIndex: 18
50748
50988
  },
50749
50989
  {
50750
50990
  name: "maxRateDescription",
50751
50991
  alternativeName: "maximumRateDescription",
50752
50992
  serializationProperty: "locMaxRateDescription",
50753
- visibleIndex: 18
50993
+ visibleIndex: 19
50754
50994
  },
50755
50995
  {
50756
50996
  name: "displayRateDescriptionsAsExtremeItems:boolean",
50757
50997
  default: false,
50758
- visibleIndex: 19,
50998
+ visibleIndex: 21,
50759
50999
  visibleIf: function (obj) {
50760
51000
  return obj.rateType == "labels";
50761
51001
  }
@@ -50763,14 +51003,14 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
50763
51003
  {
50764
51004
  name: "rateDescriptionLocation",
50765
51005
  default: "leftRight",
50766
- category: "layout",
50767
51006
  choices: ["leftRight", "top", "bottom", "topBottom"],
51007
+ visibleIndex: 20
50768
51008
  },
50769
51009
  {
50770
51010
  name: "displayMode",
50771
51011
  default: "auto",
50772
51012
  choices: ["auto", "buttons", "dropdown"],
50773
- visibleIndex: 20
51013
+ visibleIndex: 0
50774
51014
  },
50775
51015
  { name: "itemComponent", visible: false, defaultFunc: function (obj) {
50776
51016
  if (!obj)
@@ -50936,6 +51176,8 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
50936
51176
  };
50937
51177
  QuestionSignaturePadModel.prototype.fromUrl = function (url) {
50938
51178
  var _this = this;
51179
+ if ("undefined" === typeof document)
51180
+ return;
50939
51181
  var img = document.createElement("img");
50940
51182
  img.crossOrigin = "anonymous";
50941
51183
  img.src = url;
@@ -53350,29 +53592,45 @@ var settings = {
53350
53592
  */
53351
53593
  tagboxCloseOnSelect: false,
53352
53594
  /**
53353
- * A property that allows you to display a custom confirm dialog.
53595
+ * A function that activates a browser confirm dialog.
53354
53596
  *
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.
53597
+ * Use the following code to execute this function:
53598
+ *
53599
+ * ```js
53600
+ * import { settings } from "survey-core";
53601
+ *
53602
+ * // `result` contains `true` if the action was confirmed or `false` otherwise
53603
+ * const result = settings.confirmActionFunc("Are you sure?");
53604
+ * ```
53605
+ *
53606
+ * You can redefine the `confirmActionFunc` function if you want to display a custom dialog window. Your function should return `true` if a user confirms an action or `false` otherwise.
53356
53607
  * @param message A message to be displayed in the confirm dialog window.
53357
53608
  */
53358
53609
  confirmActionFunc: function (message) {
53359
53610
  return confirm(message);
53360
53611
  },
53361
53612
  /**
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.
53613
+ * A function that activates a proprietary SurveyJS confirm dialog.
53365
53614
  *
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.
53615
+ * Use the following code to execute this function:
53367
53616
  *
53368
53617
  * ```js
53369
53618
  * import { settings } from "survey-core";
53370
53619
  *
53371
- * // Display the standard browser dialog
53372
- * settings.confirmActionAsync = () => {
53373
- * return false;
53374
- * }
53620
+ * settings.confirmActionAsync("Are you sure?", (confirmed) => {
53621
+ * if (confirmed) {
53622
+ * // ...
53623
+ * // Proceed with the action
53624
+ * // ...
53625
+ * } else {
53626
+ * // ...
53627
+ * // Cancel the action
53628
+ * // ...
53629
+ * }
53630
+ * });
53375
53631
  * ```
53632
+ *
53633
+ * You can redefine the `confirmActionAsync` function if you want to display a custom dialog window. Your function should return `true` to be enabled; otherwise, a survey executes the [`confirmActionFunc`](#confirmActionFunc) function. Pass the dialog result as the `callback` parameter: `true` if a user confirms an action, `false` otherwise.
53376
53634
  * @param message A message to be displayed in the confirm dialog window.
53377
53635
  * @param callback A callback function that should be called with `true` if a user confirms an action or `false` otherwise.
53378
53636
  */
@@ -55221,7 +55479,7 @@ var SurveyElement = /** @class */ (function (_super) {
55221
55479
  });
55222
55480
  SurveyElement.prototype.isContainsSelection = function (el) {
55223
55481
  var elementWithSelection = undefined;
55224
- if (document["selection"]) {
55482
+ if ((typeof document !== "undefined") && document["selection"]) {
55225
55483
  elementWithSelection = document["selection"].createRange().parentElement();
55226
55484
  }
55227
55485
  else {
@@ -56383,6 +56641,7 @@ var SurveyModel = /** @class */ (function (_super) {
56383
56641
  component: "sv-action-bar",
56384
56642
  data: _this.navigationBar
56385
56643
  });
56644
+ _this.locTitle.onStringChanged.add(function () { return _this.titleIsEmpty = _this.locTitle.isEmpty; });
56386
56645
  return _this;
56387
56646
  }
56388
56647
  Object.defineProperty(SurveyModel, "cssType", {
@@ -57681,7 +57940,7 @@ var SurveyModel = /** @class */ (function (_super) {
57681
57940
  get: function () {
57682
57941
  if (this.isDesignMode)
57683
57942
  return this.isPropertyVisible("title");
57684
- return !this.locTitle.isEmpty && this.showTitle;
57943
+ return !this.titleIsEmpty && this.showTitle;
57685
57944
  },
57686
57945
  enumerable: false,
57687
57946
  configurable: true
@@ -59477,7 +59736,7 @@ var SurveyModel = /** @class */ (function (_super) {
59477
59736
  });
59478
59737
  Object.defineProperty(SurveyModel.prototype, "isDisplayMode", {
59479
59738
  get: function () {
59480
- return this.mode == "display" || this.state == "preview";
59739
+ return this.mode == "display" && !this.isDesignMode || this.state == "preview";
59481
59740
  },
59482
59741
  enumerable: false,
59483
59742
  configurable: true
@@ -60748,7 +61007,7 @@ var SurveyModel = /** @class */ (function (_super) {
60748
61007
  .append(this.css.root)
60749
61008
  .append(this.css.rootMobile, this.isMobile)
60750
61009
  .append(this.css.rootAnimationDisabled, !_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].animationEnabled)
60751
- .append(this.css.rootReadOnly, this.mode === "display")
61010
+ .append(this.css.rootReadOnly, this.mode === "display" && !this.isDesignMode)
60752
61011
  .append(this.css.rootCompact, this.isCompact)
60753
61012
  .append(this.css.rootFitToContainer, this.fitToContainer)
60754
61013
  .toString();
@@ -62066,6 +62325,7 @@ var SurveyModel = /** @class */ (function (_super) {
62066
62325
  this.updateRenderBackgroundImage();
62067
62326
  this.updateCurrentPage();
62068
62327
  this.hasDescription = !!this.description;
62328
+ this.titleIsEmpty = this.locTitle.isEmpty;
62069
62329
  this.setCalculatedWidthModeUpdater();
62070
62330
  };
62071
62331
  SurveyModel.prototype.updateNavigationCss = function () {
@@ -63690,6 +63950,9 @@ var SurveyModel = /** @class */ (function (_super) {
63690
63950
  __decorate([
63691
63951
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
63692
63952
  ], SurveyModel.prototype, "lazyRenderingFirstBatchSizeValue", void 0);
63953
+ __decorate([
63954
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: true })
63955
+ ], SurveyModel.prototype, "titleIsEmpty", void 0);
63693
63956
  __decorate([
63694
63957
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: {} })
63695
63958
  ], SurveyModel.prototype, "cssVariables", void 0);
@@ -63826,7 +64089,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63826
64089
  default: "bottom",
63827
64090
  choices: ["none", "top", "bottom", "both"],
63828
64091
  },
63829
- { name: "showPrevButton:boolean", default: true },
64092
+ {
64093
+ name: "showPrevButton:boolean",
64094
+ default: true,
64095
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none"; }
64096
+ },
63830
64097
  { name: "showTitle:boolean", default: true },
63831
64098
  { name: "showPageTitles:boolean", default: true },
63832
64099
  { name: "showCompletedPage:boolean", default: true },
@@ -63877,9 +64144,19 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63877
64144
  "requiredQuestions",
63878
64145
  "correctQuestions",
63879
64146
  ],
64147
+ visibleIf: function (obj) { return obj.showProgressBar !== "off"; }
64148
+ },
64149
+ {
64150
+ name: "progressBarShowPageTitles:switch",
64151
+ category: "navigation",
64152
+ visibleIf: function (obj) { return obj.showProgressBar !== "off" && obj.progressBarType === "pages"; }
64153
+ },
64154
+ {
64155
+ name: "progressBarShowPageNumbers:switch",
64156
+ default: false,
64157
+ category: "navigation",
64158
+ visibleIf: function (obj) { return obj.showProgressBar !== "off" && obj.progressBarType === "pages"; }
63880
64159
  },
63881
- { name: "progressBarShowPageTitles:switch", category: "navigation" },
63882
- { name: "progressBarShowPageNumbers:switch", default: false, category: "navigation" },
63883
64160
  {
63884
64161
  name: "showTOC:switch",
63885
64162
  default: false
@@ -63919,12 +64196,36 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63919
64196
  },
63920
64197
  { name: "autoGrowComment:boolean", default: false },
63921
64198
  { 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" },
64199
+ {
64200
+ name: "startSurveyText",
64201
+ serializationProperty: "locStartSurveyText",
64202
+ visibleIf: function (obj) { return obj.firstPageIsStarted; }
64203
+ },
64204
+ {
64205
+ name: "pagePrevText",
64206
+ serializationProperty: "locPagePrevText",
64207
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none" && obj.showPrevButton; }
64208
+ },
64209
+ {
64210
+ name: "pageNextText",
64211
+ serializationProperty: "locPageNextText",
64212
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none"; }
64213
+ },
64214
+ {
64215
+ name: "completeText",
64216
+ serializationProperty: "locCompleteText",
64217
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none"; }
64218
+ },
64219
+ {
64220
+ name: "previewText",
64221
+ serializationProperty: "locPreviewText",
64222
+ visibleIf: function (obj) { return obj.showPreviewBeforeComplete !== "noPreview"; }
64223
+ },
64224
+ {
64225
+ name: "editText",
64226
+ serializationProperty: "locEditText",
64227
+ visibleIf: function (obj) { return obj.showPreviewBeforeComplete !== "noPreview"; }
64228
+ },
63928
64229
  { name: "requiredText", default: "*" },
63929
64230
  {
63930
64231
  name: "questionStartIndex",
@@ -63957,7 +64258,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63957
64258
  {
63958
64259
  name: "questionsOnPageMode",
63959
64260
  default: "standard",
63960
- choices: ["singlePage", "standard", "questionPerPage"],
64261
+ choices: ["standard", "singlePage", "questionPerPage"],
63961
64262
  },
63962
64263
  {
63963
64264
  name: "showPreviewBeforeComplete",
@@ -63974,7 +64275,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63974
64275
  {
63975
64276
  name: "showTimerPanelMode",
63976
64277
  default: "all",
63977
- choices: ["all", "page", "survey"],
64278
+ choices: ["page", "survey", "all"],
63978
64279
  },
63979
64280
  {
63980
64281
  name: "widthMode",
@@ -63982,7 +64283,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63982
64283
  choices: ["auto", "static", "responsive"],
63983
64284
  },
63984
64285
  { name: "width", visibleIf: function (obj) { return obj.widthMode === "static"; } },
63985
- { name: "fitToContainer:boolean", default: false },
64286
+ { name: "fitToContainer:boolean", default: true, visible: false },
63986
64287
  { name: "headerView", default: "basic", choices: ["basic", "advanced"], visible: false },
63987
64288
  { name: "backgroundImage:file", visible: false },
63988
64289
  { name: "backgroundImageFit", default: "cover", choices: ["auto", "contain", "cover"], visible: false },
@@ -64663,6 +64964,8 @@ var SvgIconRegistry = /** @class */ (function () {
64663
64964
  };
64664
64965
  SvgIconRegistry.prototype.registerIconFromSvgViaElement = function (iconId, iconSvg, iconPrefix) {
64665
64966
  if (iconPrefix === void 0) { iconPrefix = this.iconPrefix; }
64967
+ if (typeof document === "undefined")
64968
+ return;
64666
64969
  iconId = this.processId(iconId, iconPrefix);
64667
64970
  var divSvg = document.createElement("div");
64668
64971
  divSvg.innerHTML = iconSvg;