survey-react 1.9.129 → 1.9.131

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/survey.react.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.129
2
+ * surveyjs - Survey JavaScript library v1.9.131
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -5649,6 +5649,7 @@ var defaultV2Css = {
5649
5649
  itemOnError: "sd-boolean--error",
5650
5650
  control: "sd-boolean__control sd-visuallyhidden",
5651
5651
  itemChecked: "sd-boolean--checked",
5652
+ itemExchanged: "sd-boolean--exchanged",
5652
5653
  itemIndeterminate: "sd-boolean--indeterminate",
5653
5654
  itemDisabled: "sd-boolean--disabled",
5654
5655
  itemHover: "sd-boolean--allowhover",
@@ -6824,6 +6825,7 @@ __webpack_require__.r(__webpack_exports__);
6824
6825
  var DragDropCore = /** @class */ (function () {
6825
6826
  function DragDropCore(surveyValue, creator, longTap, domAdapter) {
6826
6827
  var _this = this;
6828
+ var _a;
6827
6829
  this.surveyValue = surveyValue;
6828
6830
  this.creator = creator;
6829
6831
  this._isBottom = null;
@@ -6844,7 +6846,7 @@ var DragDropCore = /** @class */ (function () {
6844
6846
  _this.isBottom = null;
6845
6847
  };
6846
6848
  this.doBanDropHere = function () { };
6847
- this.domAdapter = domAdapter || new _dom_adapter__WEBPACK_IMPORTED_MODULE_1__["DragDropDOMAdapter"](this, longTap);
6849
+ this.domAdapter = domAdapter || new _dom_adapter__WEBPACK_IMPORTED_MODULE_1__["DragDropDOMAdapter"](this, longTap, (_a = this.survey) === null || _a === void 0 ? void 0 : _a.fitToContainer);
6848
6850
  }
6849
6851
  Object.defineProperty(DragDropCore.prototype, "isBottom", {
6850
6852
  get: function () {
@@ -6869,7 +6871,8 @@ var DragDropCore = /** @class */ (function () {
6869
6871
  });
6870
6872
  Object.defineProperty(DragDropCore.prototype, "survey", {
6871
6873
  get: function () {
6872
- return this.surveyValue || this.creator.survey;
6874
+ var _a;
6875
+ return this.surveyValue || ((_a = this.creator) === null || _a === void 0 ? void 0 : _a.survey);
6873
6876
  },
6874
6877
  enumerable: false,
6875
6878
  configurable: true
@@ -7025,11 +7028,13 @@ if (typeof window !== "undefined") {
7025
7028
  }, { passive: false });
7026
7029
  }
7027
7030
  var DragDropDOMAdapter = /** @class */ (function () {
7028
- function DragDropDOMAdapter(dd, longTap) {
7031
+ function DragDropDOMAdapter(dd, longTap, fitToContainer) {
7029
7032
  var _this = this;
7030
7033
  if (longTap === void 0) { longTap = true; }
7034
+ if (fitToContainer === void 0) { fitToContainer = false; }
7031
7035
  this.dd = dd;
7032
7036
  this.longTap = longTap;
7037
+ this.fitToContainer = fitToContainer;
7033
7038
  this.scrollIntervalId = null;
7034
7039
  this.stopLongTapIfMoveEnough = function (pointerMoveEvent) {
7035
7040
  pointerMoveEvent.preventDefault();
@@ -7142,6 +7147,8 @@ var DragDropDOMAdapter = /** @class */ (function () {
7142
7147
  DragDropDOMAdapter.prototype.moveShortcutElement = function (event) {
7143
7148
  var rootElementX = this.rootElement.getBoundingClientRect().x;
7144
7149
  var rootElementY = this.rootElement.getBoundingClientRect().y;
7150
+ var rootElementScrollLeft = this.rootElement.scrollLeft;
7151
+ var rootElementScrollTop = this.rootElement.scrollTop;
7145
7152
  this.doScroll(event.clientY, event.clientX);
7146
7153
  var shortcutHeight = this.draggedElementShortcut.offsetHeight;
7147
7154
  var shortcutWidth = this.draggedElementShortcut.offsetWidth;
@@ -7158,6 +7165,10 @@ var DragDropDOMAdapter = /** @class */ (function () {
7158
7165
  var pageY = event.pageY;
7159
7166
  var clientX = event.clientX;
7160
7167
  var clientY = event.clientY;
7168
+ if (!!this.fitToContainer) {
7169
+ rootElementX -= rootElementScrollLeft;
7170
+ rootElementY -= rootElementScrollTop;
7171
+ }
7161
7172
  var shortcutBottomCoordinate = this.getShortcutBottomCoordinate(clientY, shortcutHeight, shortcutYOffset);
7162
7173
  var shortcutRightCoordinate = this.getShortcutRightCoordinate(clientX, shortcutWidth, shortcutXOffset);
7163
7174
  if (shortcutRightCoordinate >= documentRight) { // right boundary
@@ -7883,7 +7894,9 @@ var DropdownListModel = /** @class */ (function (_super) {
7883
7894
  _this.qustionPropertyChangedHandler = function (sender, options) {
7884
7895
  _this.onPropertyChangedHandler(sender, options);
7885
7896
  };
7886
- _this.htmlCleanerElement = document.createElement("div");
7897
+ if ("undefined" !== typeof document) {
7898
+ _this.htmlCleanerElement = document.createElement("div");
7899
+ }
7887
7900
  question.onPropertyChanged.add(_this.qustionPropertyChangedHandler);
7888
7901
  _this.showInputFieldComponent = _this.question.showInputFieldComponent;
7889
7902
  _this.listModel = _this.createListModel();
@@ -8010,6 +8023,17 @@ var DropdownListModel = /** @class */ (function (_super) {
8010
8023
  DropdownListModel.prototype.getAvailableItems = function () {
8011
8024
  return this.question.visibleChoices;
8012
8025
  };
8026
+ DropdownListModel.prototype.setOnTextSearchCallbackForListModel = function (listModel) {
8027
+ var _this = this;
8028
+ listModel.setOnTextSearchCallback(function (item, textToSearch) {
8029
+ if (_this.filteredItems)
8030
+ return _this.filteredItems.indexOf(item) >= 0;
8031
+ var textInLow = item.text.toLocaleLowerCase();
8032
+ textInLow = _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].comparator.normalizeTextCallback(textInLow, "filter");
8033
+ var index = textInLow.indexOf(textToSearch.toLocaleLowerCase());
8034
+ return _this.question.searchMode == "startsWith" ? index == 0 : index > -1;
8035
+ });
8036
+ };
8013
8037
  DropdownListModel.prototype.createListModel = function () {
8014
8038
  var _this = this;
8015
8039
  var visibleItems = this.getAvailableItems();
@@ -8023,14 +8047,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8023
8047
  };
8024
8048
  }
8025
8049
  var res = new _list__WEBPACK_IMPORTED_MODULE_3__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
8026
- res.setOnTextSearchCallback(function (item, textToSearch) {
8027
- if (_this.filteredItems)
8028
- return _this.filteredItems.indexOf(item) >= 0;
8029
- var textInLow = item.text.toLocaleLowerCase();
8030
- textInLow = _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].comparator.normalizeTextCallback(textInLow, "filter");
8031
- var index = textInLow.indexOf(textToSearch.toLocaleLowerCase());
8032
- return _this.question.searchMode == "startsWith" ? index == 0 : index > -1;
8033
- });
8050
+ this.setOnTextSearchCallbackForListModel(res);
8034
8051
  res.renderElements = false;
8035
8052
  res.forceShowFilter = true;
8036
8053
  res.areSameItemsCallback = function (item1, item2) {
@@ -8113,6 +8130,8 @@ var DropdownListModel = /** @class */ (function (_super) {
8113
8130
  }
8114
8131
  };
8115
8132
  DropdownListModel.prototype.cleanHtml = function (html) {
8133
+ if (!this.htmlCleanerElement)
8134
+ return "";
8116
8135
  this.htmlCleanerElement.innerHTML = html;
8117
8136
  return this.htmlCleanerElement.textContent;
8118
8137
  };
@@ -8607,6 +8626,7 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
8607
8626
  };
8608
8627
  }
8609
8628
  var res = new _multiSelectListModel__WEBPACK_IMPORTED_MODULE_3__["MultiSelectListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
8629
+ this.setOnTextSearchCallbackForListModel(res);
8610
8630
  res.forceShowFilter = true;
8611
8631
  return res;
8612
8632
  };
@@ -9046,7 +9066,7 @@ __webpack_require__.r(__webpack_exports__);
9046
9066
  /*!*************************************!*\
9047
9067
  !*** ./src/entries/chunks/model.ts ***!
9048
9068
  \*************************************/
9049
- /*! 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 */
9069
+ /*! 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 */
9050
9070
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9051
9071
 
9052
9072
  "use strict";
@@ -9212,6 +9232,8 @@ __webpack_require__.r(__webpack_exports__);
9212
9232
 
9213
9233
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_20__["QuestionMatrixDropdownRenderedRow"]; });
9214
9234
 
9235
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_20__["QuestionMatrixDropdownRenderedErrorRow"]; });
9236
+
9215
9237
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_20__["QuestionMatrixDropdownRenderedTable"]; });
9216
9238
 
9217
9239
  /* harmony import */ var _question_matrixdropdown__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../question_matrixdropdown */ "./src/question_matrixdropdown.ts");
@@ -9525,8 +9547,8 @@ __webpack_require__.r(__webpack_exports__);
9525
9547
  //import "../../modern.scss";
9526
9548
  var Version;
9527
9549
  var ReleaseDate;
9528
- Version = "" + "1.9.129";
9529
- ReleaseDate = "" + "2024-02-06";
9550
+ Version = "" + "1.9.131";
9551
+ ReleaseDate = "" + "2024-02-20";
9530
9552
  function checkLibraryVersion(ver, libraryName) {
9531
9553
  if (Version != ver) {
9532
9554
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9701,7 +9723,7 @@ function checkPrefix(prefix) {
9701
9723
  /*!**************************************!*\
9702
9724
  !*** ./src/entries/core-wo-model.ts ***!
9703
9725
  \**************************************/
9704
- /*! 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 */
9726
+ /*! 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 */
9705
9727
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9706
9728
 
9707
9729
  "use strict";
@@ -9853,6 +9875,8 @@ __webpack_require__.r(__webpack_exports__);
9853
9875
 
9854
9876
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedRow"]; });
9855
9877
 
9878
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedErrorRow"]; });
9879
+
9856
9880
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedTable"]; });
9857
9881
 
9858
9882
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixDropdownRowModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["MatrixDropdownRowModel"]; });
@@ -10168,7 +10192,7 @@ __webpack_require__.r(__webpack_exports__);
10168
10192
  /*!*****************************!*\
10169
10193
  !*** ./src/entries/core.ts ***!
10170
10194
  \*****************************/
10171
- /*! 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 */
10195
+ /*! 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 */
10172
10196
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10173
10197
 
10174
10198
  "use strict";
@@ -10320,6 +10344,8 @@ __webpack_require__.r(__webpack_exports__);
10320
10344
 
10321
10345
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedRow"]; });
10322
10346
 
10347
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedErrorRow"]; });
10348
+
10323
10349
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedTable"]; });
10324
10350
 
10325
10351
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixDropdownRowModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["MatrixDropdownRowModel"]; });
@@ -11027,7 +11053,7 @@ __webpack_require__.r(__webpack_exports__);
11027
11053
  /*!******************************!*\
11028
11054
  !*** ./src/entries/react.ts ***!
11029
11055
  \******************************/
11030
- /*! 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, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionMatrixCell, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent, SvgBundleComponent */
11056
+ /*! 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, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionMatrixCell, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent, SvgBundleComponent */
11031
11057
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
11032
11058
 
11033
11059
  "use strict";
@@ -11179,6 +11205,8 @@ __webpack_require__.r(__webpack_exports__);
11179
11205
 
11180
11206
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedRow"]; });
11181
11207
 
11208
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedErrorRow"]; });
11209
+
11182
11210
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedTable"]; });
11183
11211
 
11184
11212
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixDropdownRowModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["MatrixDropdownRowModel"]; });
@@ -19208,14 +19236,21 @@ var JsonObjectProperty = /** @class */ (function () {
19208
19236
  configurable: true
19209
19237
  });
19210
19238
  JsonObjectProperty.prototype.isAvailableInVersion = function (ver) {
19211
- if (!!this.alternativeName)
19239
+ if (!!this.alternativeName || this.oldName)
19212
19240
  return true;
19213
19241
  return this.isAvailableInVersionCore(ver);
19214
19242
  };
19215
19243
  JsonObjectProperty.prototype.getSerializedName = function (ver) {
19216
19244
  if (!this.alternativeName)
19217
19245
  return this.name;
19218
- return this.isAvailableInVersionCore(ver) ? this.name : this.alternativeName;
19246
+ return this.isAvailableInVersionCore(ver) ? this.name : this.alternativeName || this.oldName;
19247
+ };
19248
+ JsonObjectProperty.prototype.getSerializedProperty = function (obj, ver) {
19249
+ if (!this.oldName || this.isAvailableInVersionCore(ver))
19250
+ return this;
19251
+ if (!obj || !obj.getType)
19252
+ return null;
19253
+ return Serializer.findProperty(obj.getType(), this.oldName);
19219
19254
  };
19220
19255
  JsonObjectProperty.prototype.isAvailableInVersionCore = function (ver) {
19221
19256
  if (!ver || !this.version)
@@ -19301,6 +19336,7 @@ var JsonObjectProperty = /** @class */ (function () {
19301
19336
  "isLocalizableValue",
19302
19337
  "className",
19303
19338
  "alternativeName",
19339
+ "oldName",
19304
19340
  "layout",
19305
19341
  "version",
19306
19342
  "classNamePart",
@@ -19752,6 +19788,9 @@ var JsonMetadataClass = /** @class */ (function () {
19752
19788
  if (propInfo.alternativeName) {
19753
19789
  prop.alternativeName = propInfo.alternativeName;
19754
19790
  }
19791
+ if (propInfo.oldName) {
19792
+ prop.oldName = propInfo.oldName;
19793
+ }
19755
19794
  if (propInfo.layout) {
19756
19795
  prop.layout = propInfo.layout;
19757
19796
  }
@@ -19814,11 +19853,11 @@ var JsonMetadata = /** @class */ (function () {
19814
19853
  this.dynamicPropsCache = {};
19815
19854
  }
19816
19855
  JsonMetadata.prototype.getObjPropertyValue = function (obj, name) {
19817
- if (this.isObjWrapper(obj)) {
19856
+ if (this.isObjWrapper(obj) && this.isNeedUseObjWrapper(obj, name)) {
19818
19857
  var orignalObj = obj.getOriginalObj();
19819
- var prop = Serializer.findProperty(orignalObj.getType(), name);
19820
- if (!!prop)
19821
- return this.getObjPropertyValueCore(orignalObj, prop);
19858
+ var prop_1 = Serializer.findProperty(orignalObj.getType(), name);
19859
+ if (!!prop_1)
19860
+ return this.getObjPropertyValueCore(orignalObj, prop_1);
19822
19861
  }
19823
19862
  var prop = Serializer.findProperty(obj.getType(), name);
19824
19863
  if (!prop)
@@ -19855,6 +19894,18 @@ var JsonMetadata = /** @class */ (function () {
19855
19894
  JsonMetadata.prototype.isObjWrapper = function (obj) {
19856
19895
  return !!obj.getOriginalObj && !!obj.getOriginalObj();
19857
19896
  };
19897
+ JsonMetadata.prototype.isNeedUseObjWrapper = function (obj, name) {
19898
+ if (!obj.getDynamicProperties)
19899
+ return true;
19900
+ var props = obj.getDynamicProperties();
19901
+ if (!Array.isArray(props))
19902
+ return false;
19903
+ for (var i = 0; i < props.length; i++) {
19904
+ if (props[i].name === name)
19905
+ return true;
19906
+ }
19907
+ return false;
19908
+ };
19858
19909
  JsonMetadata.prototype.addClass = function (name, properties, creator, parentName) {
19859
19910
  if (creator === void 0) { creator = null; }
19860
19911
  if (parentName === void 0) { parentName = null; }
@@ -20556,6 +20607,14 @@ var JsonObject = /** @class */ (function () {
20556
20607
  return;
20557
20608
  if (options.version && !prop.isAvailableInVersion(options.version))
20558
20609
  return;
20610
+ this.valueToJsonCore(obj, result, prop, options);
20611
+ };
20612
+ JsonObject.prototype.valueToJsonCore = function (obj, result, prop, options) {
20613
+ var serProp = prop.getSerializedProperty(obj, options.version);
20614
+ if (serProp && serProp !== prop) {
20615
+ this.valueToJsonCore(obj, result, serProp, options);
20616
+ return;
20617
+ }
20559
20618
  var value = prop.getSerializableValue(obj);
20560
20619
  if (!options.storeDefaults && prop.isDefaultValueByObj(obj, value))
20561
20620
  return;
@@ -21203,6 +21262,10 @@ __webpack_require__.r(__webpack_exports__);
21203
21262
  /* harmony import */ var _surveyStrings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./surveyStrings */ "./src/surveyStrings.ts");
21204
21263
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
21205
21264
  /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./base */ "./src/base.ts");
21265
+ /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./jsonobject */ "./src/jsonobject.ts");
21266
+ /* harmony import */ var _survey_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./survey-element */ "./src/survey-element.ts");
21267
+
21268
+
21206
21269
 
21207
21270
 
21208
21271
 
@@ -21214,12 +21277,17 @@ __webpack_require__.r(__webpack_exports__);
21214
21277
  var LocalizableString = /** @class */ (function () {
21215
21278
  function LocalizableString(owner, useMarkdown, name) {
21216
21279
  if (useMarkdown === void 0) { useMarkdown = false; }
21280
+ var _a;
21217
21281
  this.owner = owner;
21218
21282
  this.useMarkdown = useMarkdown;
21219
21283
  this.name = name;
21220
21284
  this.values = {};
21221
21285
  this.htmlValues = {};
21286
+ this._allowLineBreaks = false;
21222
21287
  this.onStringChanged = new _base__WEBPACK_IMPORTED_MODULE_3__["EventBase"]();
21288
+ if (owner instanceof _survey_element__WEBPACK_IMPORTED_MODULE_5__["SurveyElementCore"]) {
21289
+ this._allowLineBreaks = ((_a = _jsonobject__WEBPACK_IMPORTED_MODULE_4__["Serializer"].findProperty(owner.getType(), name)) === null || _a === void 0 ? void 0 : _a.type) == "text";
21290
+ }
21223
21291
  this.onCreating();
21224
21292
  }
21225
21293
  Object.defineProperty(LocalizableString, "defaultLocale", {
@@ -21245,6 +21313,13 @@ var LocalizableString = /** @class */ (function () {
21245
21313
  enumerable: false,
21246
21314
  configurable: true
21247
21315
  });
21316
+ Object.defineProperty(LocalizableString.prototype, "allowLineBreaks", {
21317
+ get: function () {
21318
+ return this._allowLineBreaks;
21319
+ },
21320
+ enumerable: false,
21321
+ configurable: true
21322
+ });
21248
21323
  LocalizableString.prototype.getIsMultiple = function () { return false; };
21249
21324
  Object.defineProperty(LocalizableString.prototype, "locale", {
21250
21325
  get: function () {
@@ -21511,7 +21586,11 @@ var LocalizableString = /** @class */ (function () {
21511
21586
  keys[0] == _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.defaultLocaleName &&
21512
21587
  !_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].serialization.localizableStringSerializeAsObject)
21513
21588
  return this.values[keys[0]];
21514
- return this.values;
21589
+ var res = {};
21590
+ for (var key in this.values) {
21591
+ res[key] = this.values[key];
21592
+ }
21593
+ return res;
21515
21594
  };
21516
21595
  LocalizableString.prototype.setJson = function (value) {
21517
21596
  if (!!this.sharedData) {
@@ -23110,7 +23189,7 @@ var englishStrings = {
23110
23189
  chooseFile: "Choose file(s)...",
23111
23190
  noFileChosen: "No file chosen",
23112
23191
  filePlaceholder: "Drag and drop a file here or click the button below to select a file to upload.",
23113
- confirmDelete: "Do you want to delete the record?",
23192
+ confirmDelete: "Are you sure you want to delete this record?",
23114
23193
  keyDuplicationError: "This value should be unique.",
23115
23194
  addColumn: "Add Column",
23116
23195
  addRow: "Add Row",
@@ -23153,12 +23232,12 @@ var englishStrings = {
23153
23232
  modalApplyButtonText: "Apply",
23154
23233
  filterStringPlaceholder: "Type to search...",
23155
23234
  emptyMessage: "No data to display",
23156
- noEntriesText: "There are no entries yet.\nClick the button below to add a new entry.",
23157
- noEntriesReadonlyText: "There are no entries.",
23235
+ noEntriesText: "No entries yet.\nClick the button below to add a new entry.",
23236
+ noEntriesReadonlyText: "No entries.",
23158
23237
  more: "More",
23159
23238
  tagboxDoneButtonCaption: "OK",
23160
- selectToRankEmptyRankedAreaText: "All choices are ranked",
23161
- selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them",
23239
+ selectToRankEmptyRankedAreaText: "All choices are selected for ranking",
23240
+ selectToRankEmptyUnrankedAreaText: "Drag choices here to rank them",
23162
23241
  ok: "OK",
23163
23242
  cancel: "Cancel",
23164
23243
  };
@@ -27654,7 +27733,7 @@ var spanishSurveyStrings = {
27654
27733
  timerLimitAll: "Has gastado {0} de {1} en esta página y {2} de {3} en total.",
27655
27734
  timerLimitPage: "Has gastado {0} de {1} en esta página.",
27656
27735
  timerLimitSurvey: "Usted ha gastado {0} de {1} en total.",
27657
- clearCaption: "Despejen",
27736
+ clearCaption: "Borrar",
27658
27737
  signaturePlaceHolder: "Firma aqui",
27659
27738
  chooseFileCaption: "Elija el archivo",
27660
27739
  takePhotoCaption: "Tomar foto",
@@ -30280,6 +30359,11 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
30280
30359
  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;
30281
30360
  return c > 3 && r && Object.defineProperty(target, key, r), r;
30282
30361
  };
30362
+ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from) {
30363
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
30364
+ to[j] = from[i];
30365
+ return to;
30366
+ };
30283
30367
 
30284
30368
 
30285
30369
 
@@ -30310,6 +30394,8 @@ var QuestionRowModel = /** @class */ (function (_super) {
30310
30394
  QuestionRowModel.prototype.startLazyRendering = function (rowContainerDiv, findScrollableContainer) {
30311
30395
  var _this = this;
30312
30396
  if (findScrollableContainer === void 0) { findScrollableContainer = _utils_utils__WEBPACK_IMPORTED_MODULE_8__["findScrollableParent"]; }
30397
+ if ("undefined" === typeof document)
30398
+ return;
30313
30399
  this._scrollableParent = findScrollableContainer(rowContainerDiv);
30314
30400
  // if this._scrollableParent is html the scroll event isn't fired, so we should use window
30315
30401
  if (this._scrollableParent === document.documentElement) {
@@ -30524,6 +30610,7 @@ var PanelModelBase = /** @class */ (function (_super) {
30524
30610
  _this.isQuestionsReady = false;
30525
30611
  _this.questionsValue = new Array();
30526
30612
  _this.isRandomizing = false;
30613
+ _this.locCountRowUpdates = 0;
30527
30614
  _this.createNewArray("rows");
30528
30615
  _this.elementsValue = _this.createNewArray("elements", _this.onAddElement.bind(_this), _this.onRemoveElement.bind(_this));
30529
30616
  _this.id = PanelModelBase.getPanelId();
@@ -31398,14 +31485,92 @@ var PanelModelBase = /** @class */ (function (_super) {
31398
31485
  return;
31399
31486
  this.setArrayPropertyDirectly("rows", this.buildRows());
31400
31487
  };
31488
+ PanelModelBase.prototype.blockRowsUpdates = function () {
31489
+ this.locCountRowUpdates++;
31490
+ };
31491
+ PanelModelBase.prototype.releaseRowsUpdates = function () {
31492
+ this.locCountRowUpdates--;
31493
+ };
31494
+ PanelModelBase.prototype.updateRowsBeforeElementRemoved = function (element) {
31495
+ var _this = this;
31496
+ var elementRow = this.findRowByElement(element);
31497
+ var elementRowIndex = this.rows.indexOf(elementRow);
31498
+ var elementIndexInRow = elementRow.elements.indexOf(element);
31499
+ elementRow.elements.splice(elementIndexInRow, 1);
31500
+ if (elementRow.elements.length == 0) {
31501
+ this.rows.splice(elementRowIndex, 1);
31502
+ }
31503
+ else if (!elementRow.elements[0].startWithNewLine && this.rows[elementRowIndex - 1]) {
31504
+ elementRow.elements.forEach(function (el) { return _this.rows[elementRowIndex - 1].addElement(el); });
31505
+ this.rows.splice(elementRowIndex, 1);
31506
+ }
31507
+ else {
31508
+ elementRow.updateVisible();
31509
+ }
31510
+ };
31511
+ PanelModelBase.prototype.updateRowsOnElementAdded = function (element) {
31512
+ var _this = this;
31513
+ var index = this.elements.indexOf(element);
31514
+ var targetElement = this.elements[index + 1];
31515
+ var createRowAtIndex = function (index) {
31516
+ var row = _this.createRowAndSetLazy(index);
31517
+ if (_this.isDesignModeV2) {
31518
+ row.setIsLazyRendering(false);
31519
+ }
31520
+ _this.rows.splice(index, 0, row);
31521
+ return row;
31522
+ };
31523
+ var updateRow = function (row, start, deleteCount) {
31524
+ var _a;
31525
+ var elements = [];
31526
+ for (var _i = 3; _i < arguments.length; _i++) {
31527
+ elements[_i - 3] = arguments[_i];
31528
+ }
31529
+ var removedElements = (_a = row.elements).splice.apply(_a, __spreadArray([start, deleteCount], elements));
31530
+ row.updateVisible();
31531
+ return removedElements;
31532
+ };
31533
+ if (!targetElement) {
31534
+ if (index == 0 || element.startWithNewLine) {
31535
+ updateRow(createRowAtIndex(this.rows.length), 0, 0, element);
31536
+ }
31537
+ else {
31538
+ this.rows[this.rows.length - 1].addElement(element);
31539
+ }
31540
+ return;
31541
+ }
31542
+ var targetRow = this.findRowByElement(targetElement);
31543
+ if (!targetRow)
31544
+ return;
31545
+ var targetRowIndex = this.rows.indexOf(targetRow);
31546
+ var targetElementIndexInRow = targetRow.elements.indexOf(targetElement);
31547
+ if (targetElementIndexInRow == 0) {
31548
+ if (!targetElement.startWithNewLine) {
31549
+ updateRow(targetRow, 0, 0, element);
31550
+ }
31551
+ else if (element.startWithNewLine || targetRowIndex < 1) {
31552
+ createRowAtIndex(targetRowIndex).addElement(element);
31553
+ }
31554
+ else {
31555
+ this.rows[targetRowIndex - 1].addElement(element);
31556
+ }
31557
+ }
31558
+ else {
31559
+ if (element.startWithNewLine) {
31560
+ updateRow.apply(void 0, __spreadArray([createRowAtIndex(targetRowIndex + 1), 0, 0], [element].concat(updateRow(targetRow, targetElementIndexInRow, targetRow.elements.length))));
31561
+ }
31562
+ else {
31563
+ updateRow(targetRow, targetElementIndexInRow, 0, element);
31564
+ }
31565
+ }
31566
+ };
31401
31567
  PanelModelBase.prototype.onAddElement = function (element, index) {
31402
31568
  var _this = this;
31403
31569
  element.setSurveyImpl(this.surveyImpl);
31404
31570
  element.parent = this;
31405
31571
  this.markQuestionListDirty();
31406
31572
  if (this.canBuildRows()) {
31407
- var dragDropInfo = _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].supportCreatorV2 ? this.getDragDropInfo() : undefined;
31408
- this.dragDropPanelHelper.updateRowsOnElementAdded(element, index, dragDropInfo, this);
31573
+ this.updateRowsOnElementAdded(element);
31409
31574
  }
31410
31575
  if (element.isPanel) {
31411
31576
  var p = element;
@@ -31459,7 +31624,10 @@ var PanelModelBase = /** @class */ (function (_super) {
31459
31624
  }
31460
31625
  };
31461
31626
  PanelModelBase.prototype.onElementStartWithNewLineChanged = function (element) {
31462
- this.onRowsChanged();
31627
+ if (this.locCountRowUpdates > 0)
31628
+ return;
31629
+ this.updateRowsBeforeElementRemoved(element);
31630
+ this.updateRowsOnElementAdded(element);
31463
31631
  };
31464
31632
  PanelModelBase.prototype.updateRowsVisibility = function (element) {
31465
31633
  var rows = this.rows;
@@ -31520,7 +31688,9 @@ var PanelModelBase = /** @class */ (function (_super) {
31520
31688
  return;
31521
31689
  row.elements.splice(elIndex, 1);
31522
31690
  if (row.elements.length > 0) {
31691
+ this.blockRowsUpdates();
31523
31692
  row.elements[0].startWithNewLine = true;
31693
+ this.releaseRowsUpdates();
31524
31694
  row.updateVisible();
31525
31695
  }
31526
31696
  else {
@@ -31746,6 +31916,42 @@ var PanelModelBase = /** @class */ (function (_super) {
31746
31916
  }
31747
31917
  return true;
31748
31918
  };
31919
+ PanelModelBase.prototype.insertElement = function (element, dest, location) {
31920
+ if (location === void 0) { location = "bottom"; }
31921
+ if (!dest) {
31922
+ this.addElement(element);
31923
+ return;
31924
+ }
31925
+ this.blockRowsUpdates();
31926
+ var index = this.elements.indexOf(dest);
31927
+ var destRow = this.findRowByElement(dest);
31928
+ if (location == "left" || location == "right") {
31929
+ if (location == "right") {
31930
+ element.startWithNewLine = false;
31931
+ index++;
31932
+ }
31933
+ else {
31934
+ if (destRow.elements.indexOf(dest) == 0) {
31935
+ dest.startWithNewLine = false;
31936
+ element.startWithNewLine = true;
31937
+ }
31938
+ else {
31939
+ element.startWithNewLine = false;
31940
+ }
31941
+ }
31942
+ }
31943
+ else {
31944
+ element.startWithNewLine = true;
31945
+ if (location == "top") {
31946
+ index = this.elements.indexOf(destRow.elements[0]);
31947
+ }
31948
+ else {
31949
+ index = this.elements.indexOf(destRow.elements[destRow.elements.length - 1]) + 1;
31950
+ }
31951
+ }
31952
+ this.releaseRowsUpdates();
31953
+ this.addElement(element, index);
31954
+ };
31749
31955
  PanelModelBase.prototype.insertElementAfter = function (element, after) {
31750
31956
  var index = this.elements.indexOf(after);
31751
31957
  if (index >= 0)
@@ -31791,7 +31997,7 @@ var PanelModelBase = /** @class */ (function (_super) {
31791
31997
  *
31792
31998
  * This method returns `null` if the panel cannot be created or added to this panel/page; otherwise, the method returns the created panel.
31793
31999
  * @param name A panel name.
31794
- * @see elements
32000
+ * @see elementsup
31795
32001
  * @see addElement
31796
32002
  */
31797
32003
  PanelModelBase.prototype.addNewPanel = function (name) {
@@ -32420,7 +32626,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("panel", [
32420
32626
  { name: "minWidth", defaultFunc: function () { return "auto"; } },
32421
32627
  { name: "maxWidth", defaultFunc: function () { return _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].maxWidth; } },
32422
32628
  { name: "innerIndent:number", default: 0, choices: [0, 1, 2, 3] },
32423
- { name: "indent:number", default: 0, choices: [0, 1, 2, 3] },
32629
+ { name: "indent:number", default: 0, choices: [0, 1, 2, 3], visible: false },
32424
32630
  {
32425
32631
  name: "page",
32426
32632
  isSerializable: false,
@@ -33951,13 +34157,15 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
33951
34157
  };
33952
34158
  PopupDropdownViewModel.prototype.getActualHorizontalPosition = function () {
33953
34159
  var actualHorizontalPosition = this.model.horizontalPosition;
33954
- var isRtl = !!document && document.defaultView.getComputedStyle(document.body).direction == "rtl";
33955
- if (isRtl) {
33956
- if (this.model.horizontalPosition === "left") {
33957
- actualHorizontalPosition = "right";
33958
- }
33959
- else if (this.model.horizontalPosition === "right") {
33960
- actualHorizontalPosition = "left";
34160
+ if ("undefined" !== typeof document) {
34161
+ var isRtl = !!document && document.defaultView.getComputedStyle(document.body).direction == "rtl";
34162
+ if (isRtl) {
34163
+ if (this.model.horizontalPosition === "left") {
34164
+ actualHorizontalPosition = "right";
34165
+ }
34166
+ else if (this.model.horizontalPosition === "right") {
34167
+ actualHorizontalPosition = "left";
34168
+ }
33961
34169
  }
33962
34170
  }
33963
34171
  return actualHorizontalPosition;
@@ -34437,10 +34645,9 @@ var PopupSurveyModel = /** @class */ (function (_super) {
34437
34645
  });
34438
34646
  Object.defineProperty(PopupSurveyModel.prototype, "allowFullScreen", {
34439
34647
  /**
34440
- * Specifies whether to display a button that allow showing pop-up in full-screen mode.
34648
+ * Specifies whether to display a button that allows respondents to show the pop-up survey in full screen mode.
34441
34649
  *
34442
34650
  * Default value: `false`
34443
- *
34444
34651
  */
34445
34652
  get: function () {
34446
34653
  return this.getPropertyValue("allowFullScreen", false);
@@ -35005,7 +35212,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
35005
35212
  this.resetComponentElement();
35006
35213
  };
35007
35214
  PopupBaseViewModel.prototype.initializePopupContainer = function () {
35008
- if (!this.container) {
35215
+ if (!this.container && ("undefined" !== typeof document)) {
35009
35216
  var container = document.createElement("div");
35010
35217
  this.createdContainer = container;
35011
35218
  Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["getElement"])(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.popupMountContainer).appendChild(container);
@@ -37950,7 +38157,6 @@ var Question = /** @class */ (function (_super) {
37950
38157
  Question.prototype.hasErrors = function (fireCallback, rec) {
37951
38158
  if (fireCallback === void 0) { fireCallback = true; }
37952
38159
  if (rec === void 0) { rec = null; }
37953
- var oldHasErrors = this.errors.length > 0;
37954
38160
  var errors = this.checkForErrors(!!rec && rec.isOnValueChanged === true);
37955
38161
  if (fireCallback) {
37956
38162
  if (!!this.survey) {
@@ -38008,13 +38214,16 @@ var Question = /** @class */ (function (_super) {
38008
38214
  return;
38009
38215
  var newError = null;
38010
38216
  if (typeof error === "string" || error instanceof String) {
38011
- newError = new _error__WEBPACK_IMPORTED_MODULE_3__["CustomError"](error, this.survey);
38217
+ newError = this.addCustomError(error);
38012
38218
  }
38013
38219
  else {
38014
38220
  newError = error;
38015
38221
  }
38016
38222
  this.errors.push(newError);
38017
38223
  };
38224
+ Question.prototype.addCustomError = function (error) {
38225
+ return new _error__WEBPACK_IMPORTED_MODULE_3__["CustomError"](error, this.survey);
38226
+ };
38018
38227
  Question.prototype.removeError = function (error) {
38019
38228
  var errors = this.errors;
38020
38229
  var index = errors.indexOf(error);
@@ -38065,6 +38274,12 @@ var Question = /** @class */ (function (_super) {
38065
38274
  err.onUpdateErrorTextCallback = function (err) { err.text = _this.requiredErrorText; };
38066
38275
  errors.push(err);
38067
38276
  }
38277
+ if (!this.isEmpty() && this.customWidget) {
38278
+ var text = this.customWidget.validate(this);
38279
+ if (!!text) {
38280
+ errors.push(this.addCustomError(text));
38281
+ }
38282
+ }
38068
38283
  };
38069
38284
  Question.prototype.hasRequiredError = function () {
38070
38285
  return this.isRequired && this.isEmpty();
@@ -38827,6 +39042,11 @@ var QuestionCustomWidget = /** @class */ (function () {
38827
39042
  return this.widgetJson.getDisplayValue(question, value);
38828
39043
  return null;
38829
39044
  };
39045
+ QuestionCustomWidget.prototype.validate = function (question) {
39046
+ if (this.widgetJson.validate)
39047
+ return this.widgetJson.validate(question);
39048
+ return undefined;
39049
+ };
38830
39050
  QuestionCustomWidget.prototype.isFit = function (question) {
38831
39051
  if (this.isLibraryLoaded() && this.widgetJson.isFit)
38832
39052
  return this.widgetJson.isFit(question);
@@ -41285,8 +41505,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("selectbase", [
41285
41505
  { name: "separateSpecialChoices:boolean", visible: false },
41286
41506
  { name: "showOtherItem:boolean", alternativeName: "hasOther" },
41287
41507
  { name: "showNoneItem:boolean", alternativeName: "hasNone" },
41288
- { name: "showRefuseItem:boolean", visible: false },
41289
- { name: "showDontKnowItem:boolean", visible: false },
41508
+ { name: "showRefuseItem:boolean", visible: false, version: "1.9.128" },
41509
+ { name: "showDontKnowItem:boolean", visible: false, version: "1.9.128" },
41290
41510
  {
41291
41511
  name: "otherPlaceholder",
41292
41512
  alternativeName: "otherPlaceHolder",
@@ -41463,8 +41683,8 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41463
41683
  });
41464
41684
  QuestionBooleanModel.prototype.setBooleanValue = function (val) {
41465
41685
  if (this.isValueEmpty(val)) {
41466
- this.value = null;
41467
- this.booleanValueRendered = null;
41686
+ this.value = undefined;
41687
+ this.booleanValueRendered = undefined;
41468
41688
  }
41469
41689
  else {
41470
41690
  this.value = val == true ? this.getValueTrue() : this.getValueFalse();
@@ -41480,8 +41700,6 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41480
41700
  val = "true";
41481
41701
  if (val === false)
41482
41702
  val = "false";
41483
- if (val === undefined)
41484
- val = "indeterminate";
41485
41703
  this.setPropertyValue("defaultValue", val);
41486
41704
  this.updateValueWithDefaults();
41487
41705
  },
@@ -41489,13 +41707,10 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41489
41707
  configurable: true
41490
41708
  });
41491
41709
  QuestionBooleanModel.prototype.getDefaultValue = function () {
41492
- if (this.defaultValue == "indeterminate")
41493
- return null;
41494
- if (this.defaultValue === undefined)
41495
- return null;
41496
- return this.defaultValue == "true"
41497
- ? this.getValueTrue()
41498
- : this.getValueFalse();
41710
+ var val = this.defaultValue;
41711
+ if (val === "indeterminate" || val === undefined || val === null)
41712
+ return undefined;
41713
+ return val == "true" ? this.getValueTrue() : this.getValueFalse();
41499
41714
  };
41500
41715
  Object.defineProperty(QuestionBooleanModel.prototype, "locTitle", {
41501
41716
  get: function () {
@@ -41554,7 +41769,21 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41554
41769
  });
41555
41770
  Object.defineProperty(QuestionBooleanModel.prototype, "isDeterminated", {
41556
41771
  get: function () {
41557
- return this.booleanValue !== null;
41772
+ return this.booleanValue !== null && this.booleanValue !== undefined;
41773
+ },
41774
+ enumerable: false,
41775
+ configurable: true
41776
+ });
41777
+ Object.defineProperty(QuestionBooleanModel.prototype, "locLabelLeft", {
41778
+ get: function () {
41779
+ return this.swapOrder ? this.getLocalizableString("labelTrue") : this.getLocalizableString("labelFalse");
41780
+ },
41781
+ enumerable: false,
41782
+ configurable: true
41783
+ });
41784
+ Object.defineProperty(QuestionBooleanModel.prototype, "locLabelRight", {
41785
+ get: function () {
41786
+ return this.swapOrder ? this.getLocalizableString("labelFalse") : this.getLocalizableString("labelTrue");
41558
41787
  },
41559
41788
  enumerable: false,
41560
41789
  configurable: true
@@ -41594,8 +41823,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41594
41823
  this.setBooleanValue(true);
41595
41824
  if (this.isDefaultValueSet("false", this.valueFalse))
41596
41825
  this.setBooleanValue(false);
41597
- if (this.defaultValue == "indeterminate")
41598
- this.setBooleanValue(null);
41826
+ var val = this.defaultValue;
41827
+ if (val === "indeterminate" || val === null || val === undefined)
41828
+ this.setBooleanValue(undefined);
41599
41829
  };
41600
41830
  QuestionBooleanModel.prototype.isDefaultValueSet = function (defaultValueCheck, valueTrueOrFalse) {
41601
41831
  return this.defaultValue == defaultValueCheck || (valueTrueOrFalse !== undefined && this.defaultValue === valueTrueOrFalse);
@@ -41612,7 +41842,8 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41612
41842
  .append(css.itemDisabled, this.isReadOnly)
41613
41843
  .append(css.itemHover, !this.isDesignMode)
41614
41844
  .append(css.itemChecked, !!this.booleanValue)
41615
- .append(css.itemIndeterminate, this.booleanValue === null)
41845
+ .append(css.itemExchanged, !!this.swapOrder)
41846
+ .append(css.itemIndeterminate, !this.isDeterminated)
41616
41847
  .toString();
41617
41848
  };
41618
41849
  QuestionBooleanModel.prototype.getItemCss = function () {
@@ -41631,15 +41862,15 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41631
41862
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
41632
41863
  .append(this.cssClasses.label)
41633
41864
  .append(this.cssClasses.disabledLabel, this.booleanValue === !checked || this.isReadOnly)
41634
- .append(this.cssClasses.labelTrue, !this.isIndeterminate && checked === true)
41635
- .append(this.cssClasses.labelFalse, !this.isIndeterminate && checked === false)
41865
+ .append(this.cssClasses.labelTrue, !this.isIndeterminate && checked === !this.swapOrder)
41866
+ .append(this.cssClasses.labelFalse, !this.isIndeterminate && checked === this.swapOrder)
41636
41867
  .toString();
41637
41868
  };
41638
41869
  Object.defineProperty(QuestionBooleanModel.prototype, "svgIcon", {
41639
41870
  get: function () {
41640
41871
  if (this.booleanValue && this.cssClasses.svgIconCheckedId)
41641
41872
  return this.cssClasses.svgIconCheckedId;
41642
- if (this.booleanValue === null && this.cssClasses.svgIconIndId)
41873
+ if (!this.isDeterminated && this.cssClasses.svgIconIndId)
41643
41874
  return this.cssClasses.svgIconIndId;
41644
41875
  if (!this.booleanValue && this.cssClasses.svgIconUncheckedId)
41645
41876
  return this.cssClasses.svgIconUncheckedId;
@@ -41669,8 +41900,8 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41669
41900
  newValue = true;
41670
41901
  if (newValue === "false" && this.valueFalse !== "false")
41671
41902
  newValue = false;
41672
- if (newValue === "indeterminate")
41673
- newValue = null;
41903
+ if (newValue === "indeterminate" || newValue === null)
41904
+ newValue = undefined;
41674
41905
  _super.prototype.setQuestionValue.call(this, newValue, updateIsAnswered);
41675
41906
  };
41676
41907
  /* #region web-based methods */
@@ -41682,7 +41913,10 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41682
41913
  return true;
41683
41914
  };
41684
41915
  QuestionBooleanModel.prototype.calculateBooleanValueByEvent = function (event, isRightClick) {
41685
- var isRtl = document.defaultView.getComputedStyle(event.target).direction == "rtl";
41916
+ var isRtl = false;
41917
+ if ("undefined" !== typeof document) {
41918
+ isRtl = document.defaultView.getComputedStyle(event.target).direction == "rtl";
41919
+ }
41686
41920
  this.booleanValue = isRtl ? !isRightClick : isRightClick;
41687
41921
  };
41688
41922
  QuestionBooleanModel.prototype.onSwitchClickModel = function (event) {
@@ -41745,6 +41979,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41745
41979
  __decorate([
41746
41980
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: true })
41747
41981
  ], QuestionBooleanModel.prototype, "label", void 0);
41982
+ __decorate([
41983
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
41984
+ ], QuestionBooleanModel.prototype, "swapOrder", void 0);
41748
41985
  __decorate([
41749
41986
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
41750
41987
  ], QuestionBooleanModel.prototype, "valueTrue", void 0);
@@ -41767,6 +42004,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("boolean", [
41767
42004
  },
41768
42005
  "valueTrue",
41769
42006
  "valueFalse",
42007
+ { name: "swapOrder:boolean", category: "general" },
41770
42008
  { name: "renderAs", default: "default", visible: false },
41771
42009
  ], function () {
41772
42010
  return new QuestionBooleanModel("");
@@ -45760,9 +45998,11 @@ var QuestionFileModel = /** @class */ (function (_super) {
45760
45998
  enumerable: false,
45761
45999
  configurable: true
45762
46000
  });
45763
- QuestionFileModel.prototype.chooseFile = function () {
46001
+ QuestionFileModel.prototype.chooseFile = function (event) {
45764
46002
  var _this = this;
45765
46003
  var inputElement = document.getElementById(this.inputId);
46004
+ event.preventDefault();
46005
+ event.stopImmediatePropagation();
45766
46006
  if (inputElement) {
45767
46007
  if (this.survey) {
45768
46008
  this.survey.chooseFiles(inputElement, function (files) { return _this.loadFiles(files); }, { element: this });
@@ -46244,8 +46484,8 @@ var QuestionFileModel = /** @class */ (function (_super) {
46244
46484
  _super.prototype.updateElementCss.call(this, reNew);
46245
46485
  this.updateCurrentMode();
46246
46486
  };
46247
- QuestionFileModel.prototype.endLoadingFromJson = function () {
46248
- _super.prototype.endLoadingFromJson.call(this);
46487
+ QuestionFileModel.prototype.onSurveyLoad = function () {
46488
+ _super.prototype.onSurveyLoad.call(this);
46249
46489
  this.updateCurrentMode();
46250
46490
  this.updateActionsVisibility();
46251
46491
  this.loadPreview(this.value);
@@ -49534,7 +49774,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
49534
49774
  _this.clearRowsAndResetRenderedTable();
49535
49775
  });
49536
49776
  _this.registerPropertyChangedHandlers([
49537
- "columnLayout",
49777
+ "transposeData",
49538
49778
  "addRowLocation",
49539
49779
  "hideColumnsIfEmpty",
49540
49780
  "showHeader",
@@ -49631,20 +49871,32 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
49631
49871
  this.clearRowsAndResetRenderedTable();
49632
49872
  }
49633
49873
  };
49634
- Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "columnLayout", {
49874
+ Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "transposeData", {
49635
49875
  /**
49636
- * Specifies the matrix layout. Set this property to `"vertical"` if you want to display columns instead of rows and rows instead of columns.
49876
+ * Specifies whether to display [`columns`](#columns) as rows and [`rows`](#rows) as columns.
49637
49877
  *
49638
- * Default value: `"horizontal"`
49639
- * @see columns
49640
- * @see rows
49641
- * @see isColumnLayoutHorizontal
49878
+ * Default value: `false`
49879
+ *
49880
+ * [View Demo](https://surveyjs.io/form-library/examples/transpose-dynamic-rows-to-columns-in-matrix/ (linkStyle))
49881
+ */
49882
+ get: function () {
49883
+ return this.getPropertyValue("transposeData");
49884
+ },
49885
+ set: function (val) {
49886
+ this.setPropertyValue("transposeData", val);
49887
+ },
49888
+ enumerable: false,
49889
+ configurable: true
49890
+ });
49891
+ Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "columnLayout", {
49892
+ /**
49893
+ * This property is obsolete. Use the [`transposeData`](#transposeData) property instead.
49642
49894
  */
49643
49895
  get: function () {
49644
- return this.getPropertyValue("columnLayout");
49896
+ return this.transposeData ? "vertical" : "horizontal";
49645
49897
  },
49646
49898
  set: function (val) {
49647
- this.setPropertyValue("columnLayout", val);
49899
+ this.transposeData = val === "vertical";
49648
49900
  },
49649
49901
  enumerable: false,
49650
49902
  configurable: true
@@ -49707,15 +49959,13 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
49707
49959
  };
49708
49960
  Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "isColumnLayoutHorizontal", {
49709
49961
  /**
49710
- * Returns `true` if columns are placed in the horizontal direction and rows in the vertical direction.
49962
+ * Returns `true` if [`columns`](#columns) are placed in the horizontal direction and [`rows`](#columns) in the vertical direction.
49711
49963
  *
49712
- * 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.
49713
- * @see columnLayout
49964
+ * 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.
49965
+ * @see transposeData
49714
49966
  */
49715
49967
  get: function () {
49716
- if (this.isMobile)
49717
- return true;
49718
- return this.columnLayout != "vertical";
49968
+ return this.isMobile ? true : !this.transposeData;
49719
49969
  },
49720
49970
  enumerable: false,
49721
49971
  configurable: true
@@ -51250,8 +51500,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownb
51250
51500
  {
51251
51501
  name: "columnLayout",
51252
51502
  alternativeName: "columnsLocation",
51253
- default: "horizontal",
51254
51503
  choices: ["horizontal", "vertical"],
51504
+ visible: false, isSerializable: false
51505
+ },
51506
+ {
51507
+ name: "transposeData:boolean", version: "1.9.130", oldName: "columnLayout"
51255
51508
  },
51256
51509
  {
51257
51510
  name: "detailElements",
@@ -53946,7 +54199,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
53946
54199
  };
53947
54200
  Object.defineProperty(QuestionMatrixDynamicModel.prototype, "allowRowsDragAndDrop", {
53948
54201
  /**
53949
- * Specifies whether users can drag and drop matrix rows to reorder them. Applies only if [`columnLayout`](#columnLayout) is `"horizontal"`.
54202
+ * Specifies whether users can drag and drop matrix rows to reorder them. Applies only if [`transposeData`](#transposeData) is `false`.
53950
54203
  *
53951
54204
  * Default value: `false`
53952
54205
  */
@@ -54391,8 +54644,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
54391
54644
  * - `"bottom"` - Displays the Add Row button at the bottom of the matrix.
54392
54645
  * - `"topBottom"` - Displays the Add Row button at the top and bottom of the matrix.
54393
54646
  *
54394
- * Default value: `"top"` if `columnLayout` is `vertical`; `"bottom"` if `columnLayout` is `"horizontal"` or the matrix is in compact mode.
54395
- * @see columnLayout
54647
+ * Default value: `"top"` if [`transposeData`](#transposeData) is `true`; `"bottom"` if `transposeData` is `false` or the matrix is in compact mode.
54396
54648
  * @see addRowText
54397
54649
  */
54398
54650
  get: function () {
@@ -57399,6 +57651,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
57399
57651
  if (this.renderMode === "list" && this.panelsState !== "default") {
57400
57652
  newPanel.expand();
57401
57653
  }
57654
+ newPanel.focusFirstQuestion();
57402
57655
  return newPanel;
57403
57656
  };
57404
57657
  /**
@@ -58320,7 +58573,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
58320
58573
  };
58321
58574
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "noEntriesText", {
58322
58575
  /**
58323
- * A text displayed when Dynamic Panel contains no entries. Applies only in the Default V2 theme.
58576
+ * A text displayed when Dynamic Panel contains no entries.
58324
58577
  */
58325
58578
  get: function () {
58326
58579
  return this.getLocalizableStringText("noEntriesText");
@@ -58590,6 +58843,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
58590
58843
  name: "panelsState",
58591
58844
  default: "default",
58592
58845
  choices: ["default", "collapsed", "expanded", "firstExpanded"],
58846
+ visibleIf: function (obj) { return obj.renderMode === "list"; }
58593
58847
  },
58594
58848
  { name: "keyName" },
58595
58849
  {
@@ -58600,24 +58854,45 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
58600
58854
  {
58601
58855
  name: "confirmDeleteText",
58602
58856
  serializationProperty: "locConfirmDeleteText",
58857
+ visibleIf: function (obj) { return obj.confirmDelete; }
58858
+ },
58859
+ {
58860
+ name: "panelAddText",
58861
+ serializationProperty: "locPanelAddText",
58862
+ visibleIf: function (obj) { return obj.allowAddPanel; }
58863
+ },
58864
+ {
58865
+ name: "panelRemoveText",
58866
+ serializationProperty: "locPanelRemoveText",
58867
+ visibleIf: function (obj) { return obj.allowRemovePanel; }
58868
+ },
58869
+ {
58870
+ name: "panelPrevText",
58871
+ serializationProperty: "locPanelPrevText",
58872
+ visibleIf: function (obj) { return obj.renderMode !== "list"; }
58873
+ },
58874
+ {
58875
+ name: "panelNextText",
58876
+ serializationProperty: "locPanelNextText",
58877
+ visibleIf: function (obj) { return obj.renderMode !== "list"; }
58603
58878
  },
58604
- { name: "panelAddText", serializationProperty: "locPanelAddText" },
58605
- { name: "panelRemoveText", serializationProperty: "locPanelRemoveText" },
58606
- { name: "panelPrevText", serializationProperty: "locPanelPrevText" },
58607
- { name: "panelNextText", serializationProperty: "locPanelNextText" },
58608
58879
  {
58609
58880
  name: "showQuestionNumbers",
58610
58881
  default: "off",
58611
58882
  choices: ["off", "onPanel", "onSurvey"],
58612
58883
  },
58613
- { name: "showRangeInProgress:boolean", default: true },
58884
+ {
58885
+ name: "showRangeInProgress:boolean",
58886
+ default: true,
58887
+ visibleIf: function (obj) { return obj.renderMode !== "list"; }
58888
+ },
58614
58889
  {
58615
58890
  name: "renderMode",
58616
58891
  default: "list",
58617
58892
  choices: ["list", "progressTop", "progressBottom", "progressTopBottom", "tab"],
58618
58893
  },
58619
58894
  {
58620
- name: "tabAlign", default: "center", choices: ["center", "left", "right"],
58895
+ name: "tabAlign", default: "center", choices: ["left", "center", "right"],
58621
58896
  visibleIf: function (obj) { return obj.renderMode === "tab"; }
58622
58897
  },
58623
58898
  {
@@ -58634,6 +58909,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
58634
58909
  name: "panelRemoveButtonLocation",
58635
58910
  default: "bottom",
58636
58911
  choices: ["bottom", "right"],
58912
+ visibleIf: function (obj) { return obj.allowRemovePanel; }
58637
58913
  },
58638
58914
  ], function () {
58639
58915
  return new QuestionPanelDynamicModel("");
@@ -60467,7 +60743,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60467
60743
  default: "labels",
60468
60744
  category: "rateValues",
60469
60745
  choices: ["labels", "stars", "smileys"],
60470
- visibleIndex: 0
60746
+ visibleIndex: 1
60471
60747
  },
60472
60748
  {
60473
60749
  name: "scaleColorMode",
@@ -60477,7 +60753,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60477
60753
  visibleIf: function (obj) {
60478
60754
  return obj.rateDisplayMode == "smileys";
60479
60755
  },
60480
- visibleIndex: 1
60756
+ visibleIndex: 2
60481
60757
  },
60482
60758
  {
60483
60759
  name: "rateColorMode",
@@ -60487,20 +60763,20 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60487
60763
  visibleIf: function (obj) {
60488
60764
  return obj.rateDisplayMode == "smileys" && obj.scaleColorMode == "monochrome";
60489
60765
  },
60490
- visibleIndex: 2
60766
+ visibleIndex: 3
60491
60767
  },
60492
60768
  {
60493
60769
  name: "autoGenerate",
60494
60770
  category: "rateValues",
60495
60771
  default: true,
60496
60772
  choices: [true, false],
60497
- visibleIndex: 4
60773
+ visibleIndex: 5
60498
60774
  },
60499
60775
  {
60500
60776
  name: "rateCount:number",
60501
60777
  default: 5,
60502
60778
  category: "rateValues",
60503
- visibleIndex: 3,
60779
+ visibleIndex: 4,
60504
60780
  onSettingValue: function (obj, val) {
60505
60781
  if (val < 2)
60506
60782
  return 2;
@@ -60520,7 +60796,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60520
60796
  visibleIf: function (obj) {
60521
60797
  return !obj.autoGenerate;
60522
60798
  },
60523
- visibleIndex: 5
60799
+ visibleIndex: 6
60524
60800
  },
60525
60801
  {
60526
60802
  name: "rateMin:number", default: 1,
@@ -60530,7 +60806,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60530
60806
  visibleIf: function (obj) {
60531
60807
  return !!obj.autoGenerate;
60532
60808
  },
60533
- visibleIndex: 6
60809
+ visibleIndex: 7
60534
60810
  },
60535
60811
  {
60536
60812
  name: "rateMax:number", default: 5,
@@ -60540,7 +60816,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60540
60816
  visibleIf: function (obj) {
60541
60817
  return !!obj.autoGenerate;
60542
60818
  },
60543
- visibleIndex: 7
60819
+ visibleIndex: 8
60544
60820
  },
60545
60821
  {
60546
60822
  name: "rateStep:number", default: 1, minValue: 0.1,
@@ -60554,24 +60830,24 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60554
60830
  visibleIf: function (obj) {
60555
60831
  return !!obj.autoGenerate;
60556
60832
  },
60557
- visibleIndex: 8
60833
+ visibleIndex: 9
60558
60834
  },
60559
60835
  {
60560
60836
  name: "minRateDescription",
60561
60837
  alternativeName: "mininumRateDescription",
60562
60838
  serializationProperty: "locMinRateDescription",
60563
- visibleIndex: 17
60839
+ visibleIndex: 18
60564
60840
  },
60565
60841
  {
60566
60842
  name: "maxRateDescription",
60567
60843
  alternativeName: "maximumRateDescription",
60568
60844
  serializationProperty: "locMaxRateDescription",
60569
- visibleIndex: 18
60845
+ visibleIndex: 19
60570
60846
  },
60571
60847
  {
60572
60848
  name: "displayRateDescriptionsAsExtremeItems:boolean",
60573
60849
  default: false,
60574
- visibleIndex: 19,
60850
+ visibleIndex: 21,
60575
60851
  visibleIf: function (obj) {
60576
60852
  return obj.rateType == "labels";
60577
60853
  }
@@ -60579,14 +60855,14 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60579
60855
  {
60580
60856
  name: "rateDescriptionLocation",
60581
60857
  default: "leftRight",
60582
- category: "layout",
60583
60858
  choices: ["leftRight", "top", "bottom", "topBottom"],
60859
+ visibleIndex: 20
60584
60860
  },
60585
60861
  {
60586
60862
  name: "displayMode",
60587
60863
  default: "auto",
60588
60864
  choices: ["auto", "buttons", "dropdown"],
60589
- visibleIndex: 20
60865
+ visibleIndex: 0
60590
60866
  },
60591
60867
  { name: "itemComponent", visible: false, defaultFunc: function (obj) {
60592
60868
  if (!obj)
@@ -60752,6 +61028,8 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
60752
61028
  };
60753
61029
  QuestionSignaturePadModel.prototype.fromUrl = function (url) {
60754
61030
  var _this = this;
61031
+ if ("undefined" === typeof document)
61032
+ return;
60755
61033
  var img = document.createElement("img");
60756
61034
  img.crossOrigin = "anonymous";
60757
61035
  img.src = url;
@@ -61412,6 +61690,9 @@ var QuestionTagboxModel = /** @class */ (function (_super) {
61412
61690
  enumerable: false,
61413
61691
  configurable: true
61414
61692
  });
61693
+ __decorate([
61694
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
61695
+ ], QuestionTagboxModel.prototype, "searchMode", void 0);
61415
61696
  __decorate([
61416
61697
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
61417
61698
  ], QuestionTagboxModel.prototype, "allowClear", void 0);
@@ -61453,7 +61734,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("tagbox", [
61453
61734
  { name: "choicesLazyLoadPageSize:number", default: 25, visible: false },
61454
61735
  { name: "hideSelectedItems:boolean", default: false },
61455
61736
  { name: "closeOnSelect:boolean" },
61456
- { name: "itemComponent", visible: false, default: "" }
61737
+ { name: "itemComponent", visible: false, default: "" },
61738
+ { name: "searchMode", default: "contains", choices: ["contains", "startsWith"] }
61457
61739
  ], function () {
61458
61740
  return new QuestionTagboxModel("");
61459
61741
  }, "checkbox");
@@ -62954,14 +63236,14 @@ var SurveyQuestionBoolean = /** @class */ (function (_super) {
62954
63236
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { ref: this.checkRef, type: "checkbox", name: this.question.name, value: this.question.booleanValue === null
62955
63237
  ? ""
62956
63238
  : this.question.booleanValue, id: this.question.inputId, className: cssClasses.control, disabled: this.isDisplayMode, checked: this.question.booleanValue || false, onChange: this.handleOnChange, role: this.question.a11y_input_ariaRole, "aria-required": this.question.a11y_input_ariaRequired, "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-invalid": this.question.a11y_input_ariaInvalid, "aria-describedby": this.question.a11y_input_ariaDescribedBy }),
62957
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.sliderGhost, onClick: function (event) { return _this.handleOnLabelClick(event, false); } },
62958
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.getLabelCss(false) }, this.renderLocString(this.question.locLabelFalse))),
63239
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.sliderGhost, onClick: function (event) { return _this.handleOnLabelClick(event, _this.question.swapOrder); } },
63240
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.getLabelCss(this.question.swapOrder) }, this.renderLocString(this.question.locLabelLeft))),
62959
63241
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.switch, onClick: this.handleOnSwitchClick },
62960
63242
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: cssClasses.slider }, this.question.isDeterminated && cssClasses.sliderText ?
62961
63243
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: cssClasses.sliderText }, this.renderLocString(this.question.getCheckedLabel()))
62962
63244
  : null)),
62963
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.sliderGhost, onClick: function (event) { return _this.handleOnLabelClick(event, true); } },
62964
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.getLabelCss(true) }, this.renderLocString(this.question.locLabelTrue))))));
63245
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.sliderGhost, onClick: function (event) { return _this.handleOnLabelClick(event, !_this.question.swapOrder); } },
63246
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.getLabelCss(!this.question.swapOrder) }, this.renderLocString(this.question.locLabelRight))))));
62965
63247
  };
62966
63248
  return SurveyQuestionBoolean;
62967
63249
  }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["SurveyQuestionElementBase"]));
@@ -63522,7 +63804,7 @@ var SurveyFileChooseButton = /** @class */ (function (_super) {
63522
63804
  });
63523
63805
  SurveyFileChooseButton.prototype.render = function () {
63524
63806
  var _this = this;
63525
- return Object(_reactSurvey__WEBPACK_IMPORTED_MODULE_1__["attachKey2click"])(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("label", { tabIndex: 0, className: this.question.getChooseFileCss(), htmlFor: this.question.inputId, "aria-label": this.question.chooseButtonText, onClick: function () { return _this.question.chooseFile(); } },
63807
+ return Object(_reactSurvey__WEBPACK_IMPORTED_MODULE_1__["attachKey2click"])(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("label", { tabIndex: 0, className: this.question.getChooseFileCss(), htmlFor: this.question.inputId, "aria-label": this.question.chooseButtonText, onClick: function (e) { return _this.question.chooseFile(e.nativeEvent); } },
63526
63808
  (!!this.question.cssClasses.chooseFileIconId) ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { title: this.question.chooseButtonText, iconName: this.question.cssClasses.chooseFileIconId, size: "auto" }) : null,
63527
63809
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, this.question.chooseButtonText)));
63528
63810
  };
@@ -67040,7 +67322,6 @@ var SurveyPanelBase = /** @class */ (function (_super) {
67040
67322
  __extends(SurveyPanelBase, _super);
67041
67323
  function SurveyPanelBase(props) {
67042
67324
  var _this = _super.call(this, props) || this;
67043
- _this.renderedRowsCache = {};
67044
67325
  _this.rootRef = react__WEBPACK_IMPORTED_MODULE_0__["createRef"]();
67045
67326
  return _this;
67046
67327
  }
@@ -67123,20 +67404,8 @@ var SurveyPanelBase = /** @class */ (function (_super) {
67123
67404
  && this.panelBase.isVisible && !!this.panelBase.survey);
67124
67405
  };
67125
67406
  SurveyPanelBase.prototype.renderRows = function (css) {
67126
- if (this.changedStatePropName !== "rows") {
67127
- this.renderedRowsCache = {};
67128
- }
67129
- var rows = [];
67130
- var questionRows = this.panelBase.rows;
67131
- for (var i = 0; i < questionRows.length; i++) {
67132
- var row = this.renderedRowsCache[questionRows[i].id];
67133
- if (!row) {
67134
- row = this.createRow(questionRows[i], css);
67135
- this.renderedRowsCache[questionRows[i].id] = row;
67136
- }
67137
- rows.push(row);
67138
- }
67139
- return rows;
67407
+ var _this = this;
67408
+ return this.panelBase.rows.map(function (row) { return _this.createRow(row, css); });
67140
67409
  };
67141
67410
  SurveyPanelBase.prototype.createRow = function (row, css) {
67142
67411
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_row__WEBPACK_IMPORTED_MODULE_2__["SurveyRow"], { key: row.id, row: row, survey: this.survey, creator: this.creator, css: css }));
@@ -67480,7 +67749,9 @@ var SurveyProgressButtons = /** @class */ (function (_super) {
67480
67749
  }, 10);
67481
67750
  };
67482
67751
  SurveyProgressButtons.prototype.componentWillUnmount = function () {
67483
- this.respManager.dispose();
67752
+ if (!!this.respManager) {
67753
+ this.respManager.dispose();
67754
+ }
67484
67755
  _super.prototype.componentWillUnmount.call(this);
67485
67756
  };
67486
67757
  return SurveyProgressButtons;
@@ -69882,8 +70153,8 @@ var SurveyQuestionFile = /** @class */ (function (_super) {
69882
70153
  var clearButtonBottom = this.question.showRemoveButtonBottom ? this.renderClearButton(this.question.cssClasses.removeButtonBottom) : null;
69883
70154
  var fileNavigator = this.question.fileNavigatorVisible ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_1__["SurveyActionBar"], { model: this.question.fileNavigator })) : null;
69884
70155
  var fileInput = (this.isDisplayMode ?
69885
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "file", disabled: this.isDisplayMode, className: !this.isDisplayMode ? this.question.cssClasses.fileInput : this.question.getReadOnlyFileCss(), id: this.question.inputId, ref: function (input) { return (_this.setControl(input)); }, style: !this.isDisplayMode ? {} : { color: "transparent" }, onChange: !this.isDisplayMode ? this.question.doChange : (function () { }), multiple: this.question.allowMultiple, placeholder: this.question.title, accept: this.question.acceptedTypes }) : this.question.hasFileUI ?
69886
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "file", disabled: this.isDisplayMode, tabIndex: -1, className: !this.isDisplayMode ? this.question.cssClasses.fileInput : this.question.getReadOnlyFileCss(), id: this.question.inputId, ref: function (input) { return (_this.setControl(input)); }, style: !this.isDisplayMode ? {} : { color: "transparent" }, onChange: !this.isDisplayMode ? this.question.doChange : (function () { }), "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-describedby": this.question.ariaDescribedBy, multiple: this.question.allowMultiple, title: this.question.inputTitle, accept: this.question.acceptedTypes, capture: this.question.renderCapture }) : null);
70156
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "file", disabled: this.isDisplayMode, className: !this.isDisplayMode ? this.question.cssClasses.fileInput : this.question.getReadOnlyFileCss(), id: this.question.inputId, ref: function (input) { return (_this.setControl(input)); }, style: !this.isDisplayMode ? {} : { color: "transparent" }, multiple: this.question.allowMultiple, placeholder: this.question.title, accept: this.question.acceptedTypes }) : this.question.hasFileUI ?
70157
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "file", disabled: this.isDisplayMode, tabIndex: -1, className: !this.isDisplayMode ? this.question.cssClasses.fileInput : this.question.getReadOnlyFileCss(), id: this.question.inputId, ref: function (input) { return (_this.setControl(input)); }, style: !this.isDisplayMode ? {} : { color: "transparent" }, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-describedby": this.question.ariaDescribedBy, multiple: this.question.allowMultiple, title: this.question.inputTitle, accept: this.question.acceptedTypes, capture: this.question.renderCapture }) : null);
69887
70158
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.fileRootCss },
69888
70159
  fileInput,
69889
70160
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.dragArea, onDrop: this.question.onDrop, onDragOver: this.question.onDragOver, onDragLeave: this.question.onDragLeave, onDragEnter: this.question.onDragEnter },
@@ -72514,11 +72785,12 @@ var SurveyLocStringViewer = /** @class */ (function (_super) {
72514
72785
  return strEl;
72515
72786
  };
72516
72787
  SurveyLocStringViewer.prototype.renderString = function () {
72788
+ var className = this.locStr.allowLineBreaks ? "sv-string-viewer sv-string-viewer--multiline" : "sv-string-viewer";
72517
72789
  if (this.locStr.hasHtml) {
72518
72790
  var htmlValue = { __html: this.locStr.renderedHtml };
72519
- return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { ref: this.rootRef, className: "sv-string-viewer", style: this.style, dangerouslySetInnerHTML: htmlValue });
72791
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { ref: this.rootRef, className: className, style: this.style, dangerouslySetInnerHTML: htmlValue });
72520
72792
  }
72521
- return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { ref: this.rootRef, className: "sv-string-viewer", style: this.style }, this.locStr.renderedHtml);
72793
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { ref: this.rootRef, className: className, style: this.style }, this.locStr.renderedHtml);
72522
72794
  };
72523
72795
  return SurveyLocStringViewer;
72524
72796
  }(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component));
@@ -73223,29 +73495,45 @@ var settings = {
73223
73495
  */
73224
73496
  tagboxCloseOnSelect: false,
73225
73497
  /**
73226
- * A property that allows you to display a custom confirm dialog.
73498
+ * A function that activates a browser confirm dialog.
73499
+ *
73500
+ * Use the following code to execute this function:
73501
+ *
73502
+ * ```js
73503
+ * import { settings } from "survey-core";
73504
+ *
73505
+ * // `result` contains `true` if the action was confirmed or `false` otherwise
73506
+ * const result = settings.confirmActionFunc("Are you sure?");
73507
+ * ```
73227
73508
  *
73228
- * 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.
73509
+ * 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.
73229
73510
  * @param message A message to be displayed in the confirm dialog window.
73230
73511
  */
73231
73512
  confirmActionFunc: function (message) {
73232
73513
  return confirm(message);
73233
73514
  },
73234
73515
  /**
73235
- * A property that allows you to display a custom confirm dialog in async mode or activate the standard browser dialog.
73516
+ * A function that activates a proprietary SurveyJS confirm dialog.
73236
73517
  *
73237
- * 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.
73238
- *
73239
- * 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.
73518
+ * Use the following code to execute this function:
73240
73519
  *
73241
73520
  * ```js
73242
73521
  * import { settings } from "survey-core";
73243
73522
  *
73244
- * // Display the standard browser dialog
73245
- * settings.confirmActionAsync = () => {
73246
- * return false;
73247
- * }
73523
+ * settings.confirmActionAsync("Are you sure?", (confirmed) => {
73524
+ * if (confirmed) {
73525
+ * // ...
73526
+ * // Proceed with the action
73527
+ * // ...
73528
+ * } else {
73529
+ * // ...
73530
+ * // Cancel the action
73531
+ * // ...
73532
+ * }
73533
+ * });
73248
73534
  * ```
73535
+ *
73536
+ * 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.
73249
73537
  * @param message A message to be displayed in the confirm dialog window.
73250
73538
  * @param callback A callback function that should be called with `true` if a user confirms an action or `false` otherwise.
73251
73539
  */
@@ -75094,7 +75382,7 @@ var SurveyElement = /** @class */ (function (_super) {
75094
75382
  });
75095
75383
  SurveyElement.prototype.isContainsSelection = function (el) {
75096
75384
  var elementWithSelection = undefined;
75097
- if (document["selection"]) {
75385
+ if ((typeof document !== "undefined") && document["selection"]) {
75098
75386
  elementWithSelection = document["selection"].createRange().parentElement();
75099
75387
  }
75100
75388
  else {
@@ -76256,6 +76544,7 @@ var SurveyModel = /** @class */ (function (_super) {
76256
76544
  component: "sv-action-bar",
76257
76545
  data: _this.navigationBar
76258
76546
  });
76547
+ _this.locTitle.onStringChanged.add(function () { return _this.titleIsEmpty = _this.locTitle.isEmpty; });
76259
76548
  return _this;
76260
76549
  }
76261
76550
  Object.defineProperty(SurveyModel, "cssType", {
@@ -77554,7 +77843,7 @@ var SurveyModel = /** @class */ (function (_super) {
77554
77843
  get: function () {
77555
77844
  if (this.isDesignMode)
77556
77845
  return this.isPropertyVisible("title");
77557
- return !this.locTitle.isEmpty && this.showTitle;
77846
+ return !this.titleIsEmpty && this.showTitle;
77558
77847
  },
77559
77848
  enumerable: false,
77560
77849
  configurable: true
@@ -79350,7 +79639,7 @@ var SurveyModel = /** @class */ (function (_super) {
79350
79639
  });
79351
79640
  Object.defineProperty(SurveyModel.prototype, "isDisplayMode", {
79352
79641
  get: function () {
79353
- return this.mode == "display" || this.state == "preview";
79642
+ return this.mode == "display" && !this.isDesignMode || this.state == "preview";
79354
79643
  },
79355
79644
  enumerable: false,
79356
79645
  configurable: true
@@ -80621,7 +80910,7 @@ var SurveyModel = /** @class */ (function (_super) {
80621
80910
  .append(this.css.root)
80622
80911
  .append(this.css.rootMobile, this.isMobile)
80623
80912
  .append(this.css.rootAnimationDisabled, !_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].animationEnabled)
80624
- .append(this.css.rootReadOnly, this.mode === "display")
80913
+ .append(this.css.rootReadOnly, this.mode === "display" && !this.isDesignMode)
80625
80914
  .append(this.css.rootCompact, this.isCompact)
80626
80915
  .append(this.css.rootFitToContainer, this.fitToContainer)
80627
80916
  .toString();
@@ -81939,6 +82228,7 @@ var SurveyModel = /** @class */ (function (_super) {
81939
82228
  this.updateRenderBackgroundImage();
81940
82229
  this.updateCurrentPage();
81941
82230
  this.hasDescription = !!this.description;
82231
+ this.titleIsEmpty = this.locTitle.isEmpty;
81942
82232
  this.setCalculatedWidthModeUpdater();
81943
82233
  };
81944
82234
  SurveyModel.prototype.updateNavigationCss = function () {
@@ -83563,6 +83853,9 @@ var SurveyModel = /** @class */ (function (_super) {
83563
83853
  __decorate([
83564
83854
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
83565
83855
  ], SurveyModel.prototype, "lazyRenderingFirstBatchSizeValue", void 0);
83856
+ __decorate([
83857
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: true })
83858
+ ], SurveyModel.prototype, "titleIsEmpty", void 0);
83566
83859
  __decorate([
83567
83860
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: {} })
83568
83861
  ], SurveyModel.prototype, "cssVariables", void 0);
@@ -83699,7 +83992,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
83699
83992
  default: "bottom",
83700
83993
  choices: ["none", "top", "bottom", "both"],
83701
83994
  },
83702
- { name: "showPrevButton:boolean", default: true },
83995
+ {
83996
+ name: "showPrevButton:boolean",
83997
+ default: true,
83998
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none"; }
83999
+ },
83703
84000
  { name: "showTitle:boolean", default: true },
83704
84001
  { name: "showPageTitles:boolean", default: true },
83705
84002
  { name: "showCompletedPage:boolean", default: true },
@@ -83750,9 +84047,19 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
83750
84047
  "requiredQuestions",
83751
84048
  "correctQuestions",
83752
84049
  ],
84050
+ visibleIf: function (obj) { return obj.showProgressBar !== "off"; }
84051
+ },
84052
+ {
84053
+ name: "progressBarShowPageTitles:switch",
84054
+ category: "navigation",
84055
+ visibleIf: function (obj) { return obj.showProgressBar !== "off" && obj.progressBarType === "pages"; }
84056
+ },
84057
+ {
84058
+ name: "progressBarShowPageNumbers:switch",
84059
+ default: false,
84060
+ category: "navigation",
84061
+ visibleIf: function (obj) { return obj.showProgressBar !== "off" && obj.progressBarType === "pages"; }
83753
84062
  },
83754
- { name: "progressBarShowPageTitles:switch", category: "navigation" },
83755
- { name: "progressBarShowPageNumbers:switch", default: false, category: "navigation" },
83756
84063
  {
83757
84064
  name: "showTOC:switch",
83758
84065
  default: false
@@ -83792,12 +84099,36 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
83792
84099
  },
83793
84100
  { name: "autoGrowComment:boolean", default: false },
83794
84101
  { name: "allowResizeComment:boolean", default: true },
83795
- { name: "startSurveyText", serializationProperty: "locStartSurveyText" },
83796
- { name: "pagePrevText", serializationProperty: "locPagePrevText" },
83797
- { name: "pageNextText", serializationProperty: "locPageNextText" },
83798
- { name: "completeText", serializationProperty: "locCompleteText" },
83799
- { name: "previewText", serializationProperty: "locPreviewText" },
83800
- { name: "editText", serializationProperty: "locEditText" },
84102
+ {
84103
+ name: "startSurveyText",
84104
+ serializationProperty: "locStartSurveyText",
84105
+ visibleIf: function (obj) { return obj.firstPageIsStarted; }
84106
+ },
84107
+ {
84108
+ name: "pagePrevText",
84109
+ serializationProperty: "locPagePrevText",
84110
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none" && obj.showPrevButton; }
84111
+ },
84112
+ {
84113
+ name: "pageNextText",
84114
+ serializationProperty: "locPageNextText",
84115
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none"; }
84116
+ },
84117
+ {
84118
+ name: "completeText",
84119
+ serializationProperty: "locCompleteText",
84120
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none"; }
84121
+ },
84122
+ {
84123
+ name: "previewText",
84124
+ serializationProperty: "locPreviewText",
84125
+ visibleIf: function (obj) { return obj.showPreviewBeforeComplete !== "noPreview"; }
84126
+ },
84127
+ {
84128
+ name: "editText",
84129
+ serializationProperty: "locEditText",
84130
+ visibleIf: function (obj) { return obj.showPreviewBeforeComplete !== "noPreview"; }
84131
+ },
83801
84132
  { name: "requiredText", default: "*" },
83802
84133
  {
83803
84134
  name: "questionStartIndex",
@@ -83830,7 +84161,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
83830
84161
  {
83831
84162
  name: "questionsOnPageMode",
83832
84163
  default: "standard",
83833
- choices: ["singlePage", "standard", "questionPerPage"],
84164
+ choices: ["standard", "singlePage", "questionPerPage"],
83834
84165
  },
83835
84166
  {
83836
84167
  name: "showPreviewBeforeComplete",
@@ -83847,7 +84178,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
83847
84178
  {
83848
84179
  name: "showTimerPanelMode",
83849
84180
  default: "all",
83850
- choices: ["all", "page", "survey"],
84181
+ choices: ["page", "survey", "all"],
83851
84182
  },
83852
84183
  {
83853
84184
  name: "widthMode",
@@ -83855,7 +84186,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
83855
84186
  choices: ["auto", "static", "responsive"],
83856
84187
  },
83857
84188
  { name: "width", visibleIf: function (obj) { return obj.widthMode === "static"; } },
83858
- { name: "fitToContainer:boolean", default: false },
84189
+ { name: "fitToContainer:boolean", default: true, visible: false },
83859
84190
  { name: "headerView", default: "basic", choices: ["basic", "advanced"], visible: false },
83860
84191
  { name: "backgroundImage:file", visible: false },
83861
84192
  { name: "backgroundImageFit", default: "cover", choices: ["auto", "contain", "cover"], visible: false },
@@ -84536,6 +84867,8 @@ var SvgIconRegistry = /** @class */ (function () {
84536
84867
  };
84537
84868
  SvgIconRegistry.prototype.registerIconFromSvgViaElement = function (iconId, iconSvg, iconPrefix) {
84538
84869
  if (iconPrefix === void 0) { iconPrefix = this.iconPrefix; }
84870
+ if (typeof document === "undefined")
84871
+ return;
84539
84872
  iconId = this.processId(iconId, iconPrefix);
84540
84873
  var divSvg = document.createElement("div");
84541
84874
  divSvg.innerHTML = iconSvg;
@@ -86592,7 +86925,8 @@ function findParentByClassNames(element, classNames) {
86592
86925
  }
86593
86926
  }
86594
86927
  }
86595
- function sanitizeEditableContent(element) {
86928
+ function sanitizeEditableContent(element, cleanLineBreaks) {
86929
+ if (cleanLineBreaks === void 0) { cleanLineBreaks = true; }
86596
86930
  if (window.getSelection && document.createRange && element.childNodes.length > 0) {
86597
86931
  var selection = document.getSelection();
86598
86932
  if (selection.rangeCount == 0) {
@@ -86603,13 +86937,23 @@ function sanitizeEditableContent(element) {
86603
86937
  range.setEndAfter(element.lastChild);
86604
86938
  selection.removeAllRanges();
86605
86939
  selection.addRange(range);
86606
- var tail_len = selection.toString().replace(/\n/g, "").length;
86607
- element.innerText = element.innerText.replace(/\n/g, "");
86940
+ var tail = selection.toString();
86941
+ var innerText = element.innerText;
86942
+ tail = tail.replace(/\r/g, "");
86943
+ if (cleanLineBreaks) {
86944
+ tail = tail.replace(/\n/g, "");
86945
+ innerText = innerText.replace(/\n/g, "");
86946
+ }
86947
+ var tail_len = tail.length;
86948
+ element.innerText = innerText;
86608
86949
  range = document.createRange();
86609
- range.setStart(element.childNodes[0], element.innerText.length - tail_len);
86610
- range.collapse(true);
86950
+ range.setStart(element.firstChild, 0);
86951
+ range.setEnd(element.firstChild, 0);
86611
86952
  selection.removeAllRanges();
86612
86953
  selection.addRange(range);
86954
+ for (var i = 0; i < innerText.length - tail_len; i++) {
86955
+ selection.modify("move", "forward", "character");
86956
+ }
86613
86957
  }
86614
86958
  }
86615
86959
  function mergeValues(src, dest) {
@@ -86671,7 +87015,7 @@ function showConfirmDialog(message, callback, applyTitle, locale, rootElement) {
86671
87015
  cancelBtn.innerCss = "sv-popup__body-footer-item sv-popup__button sd-btn sd-btn--small";
86672
87016
  applyBtn.title = applyTitle || _surveyStrings__WEBPACK_IMPORTED_MODULE_2__["surveyLocalization"].getString("ok", locale);
86673
87017
  applyBtn.innerCss = "sv-popup__body-footer-item sv-popup__button sv-popup__button--danger sd-btn sd-btn--small sd-btn--danger";
86674
- popupViewModel.width = "452px";
87018
+ //popupViewModel.width = "452px";
86675
87019
  return true;
86676
87020
  }
86677
87021
  function chooseFiles(input, callback) {