survey-react 1.9.105 → 1.9.107

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.105
2
+ * surveyjs - Survey JavaScript library v1.9.107
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -734,11 +734,13 @@ function createDropdownActionModel(actionOptions, dropdownOptions, locOwner) {
734
734
  }
735
735
  function createDropdownActionModelAdvanced(actionOptions, listOptions, popupOptions, locOwner) {
736
736
  var listModel = new _list__WEBPACK_IMPORTED_MODULE_3__["ListModel"](listOptions.items, function (item) {
737
- listOptions.onSelectionChanged(item),
738
- innerPopupModel.toggleVisibility();
737
+ listOptions.onSelectionChanged(item);
738
+ innerPopupModel.toggleVisibility();
739
739
  }, listOptions.allowSelection, listOptions.selectedItem, listOptions.onFilterStringChangedCallback);
740
740
  listModel.locOwner = locOwner;
741
- var innerPopupModel = new _popup__WEBPACK_IMPORTED_MODULE_4__["PopupModel"]("sv-list", { model: listModel }, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.verticalPosition, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.horizontalPosition, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.showPointer, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.isModal, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.onCancel, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.onApply, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.onHide, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.onShow, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.cssClass, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.title);
741
+ var innerPopupModel = new _popup__WEBPACK_IMPORTED_MODULE_4__["PopupModel"]("sv-list", { model: listModel }, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.verticalPosition, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.horizontalPosition, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.showPointer, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.isModal, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.onCancel, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.onApply, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.onHide, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.onShow, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.cssClass, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.title, function () {
742
+ listModel.dispose();
743
+ });
742
744
  innerPopupModel.displayMode = popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.displayMode;
743
745
  var newActionOptions = Object.assign({}, actionOptions, {
744
746
  component: "sv-action-bar-item-dropdown",
@@ -1062,6 +1064,17 @@ var Action = /** @class */ (function (_super) {
1062
1064
  Action.prototype.getComponent = function () {
1063
1065
  return this._component;
1064
1066
  };
1067
+ Action.prototype.dispose = function () {
1068
+ this.action = undefined;
1069
+ _super.prototype.dispose.call(this);
1070
+ if (this.popupModel) {
1071
+ this.popupModel.dispose();
1072
+ }
1073
+ if (!!this.locTitleValue) {
1074
+ this.locTitleValue.onStringChanged.remove(this.locTitleChanged);
1075
+ this.locTitleChanged = undefined;
1076
+ }
1077
+ };
1065
1078
  __decorate([
1066
1079
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])()
1067
1080
  ], Action.prototype, "id", void 0);
@@ -1195,21 +1208,29 @@ var AdaptiveActionContainer = /** @class */ (function (_super) {
1195
1208
  return _this;
1196
1209
  }
1197
1210
  AdaptiveActionContainer.prototype.hideItemsGreaterN = function (visibleItemsCount) {
1198
- var actionsToHide = this.visibleActions.filter(function (action) { return !action.disableHide; });
1211
+ var actionsToHide = this.getActionsToHide();
1199
1212
  visibleItemsCount = Math.max(visibleItemsCount, this.minVisibleItemsCount - (this.visibleActions.length - actionsToHide.length));
1200
1213
  var hiddenItems = [];
1201
1214
  actionsToHide.forEach(function (item) {
1202
1215
  if (visibleItemsCount <= 0) {
1203
- item.mode = "popup";
1204
- hiddenItems.push(item.innerItem);
1216
+ if (item.removePriority) {
1217
+ item.mode = "removed";
1218
+ }
1219
+ else {
1220
+ item.mode = "popup";
1221
+ hiddenItems.push(item.innerItem);
1222
+ }
1205
1223
  }
1206
1224
  visibleItemsCount--;
1207
1225
  });
1208
1226
  this.hiddenItemsListModel.setItems(hiddenItems);
1209
1227
  };
1228
+ AdaptiveActionContainer.prototype.getActionsToHide = function () {
1229
+ return this.visibleActions.filter(function (action) { return !action.disableHide; }).sort(function (a, b) { return a.removePriority || 0 - b.removePriority || 0; });
1230
+ };
1210
1231
  AdaptiveActionContainer.prototype.getVisibleItemsCount = function (availableSize) {
1211
1232
  this.visibleActions.filter(function (action) { return action.disableHide; }).forEach(function (action) { return availableSize -= action.minDimension; });
1212
- var itemsSizes = this.visibleActions.filter(function (action) { return !action.disableHide; }).map(function (item) { return item.minDimension; });
1233
+ var itemsSizes = this.getActionsToHide().map(function (item) { return item.minDimension; });
1213
1234
  var currSize = 0;
1214
1235
  for (var i = 0; i < itemsSizes.length; i++) {
1215
1236
  currSize += itemsSizes[i];
@@ -1289,7 +1310,7 @@ var AdaptiveActionContainer = /** @class */ (function (_super) {
1289
1310
  else if (dimension < minSize) {
1290
1311
  this.setActionsMode("small");
1291
1312
  this.hideItemsGreaterN(this.getVisibleItemsCount(dimension - dotsItemSize));
1292
- this.dotsItem.visible = true;
1313
+ this.dotsItem.visible = !!this.hiddenItemsListModel.actions.length;
1293
1314
  }
1294
1315
  else {
1295
1316
  this.updateItemMode(dimension, maxSize);
@@ -1305,10 +1326,16 @@ var AdaptiveActionContainer = /** @class */ (function (_super) {
1305
1326
  }
1306
1327
  };
1307
1328
  AdaptiveActionContainer.prototype.setActionsMode = function (mode) {
1308
- this.actions.forEach(function (action) { return (action.mode = mode); });
1329
+ this.actions.forEach(function (action) {
1330
+ if (mode == "small" && action.disableShrink)
1331
+ return;
1332
+ action.mode = mode;
1333
+ });
1309
1334
  };
1310
1335
  AdaptiveActionContainer.prototype.dispose = function () {
1311
1336
  _super.prototype.dispose.call(this);
1337
+ this.dotsItem.data.dispose();
1338
+ this.dotsItem.dispose();
1312
1339
  this.resetResponsivityManager();
1313
1340
  };
1314
1341
  AdaptiveActionContainer.ContainerID = 1;
@@ -1366,6 +1393,7 @@ var defaultActionBarCss = {
1366
1393
  defaultSizeMode: "sv-action-bar--default-size-mode",
1367
1394
  smallSizeMode: "sv-action-bar--small-size-mode",
1368
1395
  item: "sv-action-bar-item",
1396
+ itemAsIcon: "sv-action-bar-item--icon",
1369
1397
  itemActive: "sv-action-bar-item--active",
1370
1398
  itemPressed: "sv-action-bar-item--pressed",
1371
1399
  itemIcon: "sv-action-bar-item__icon",
@@ -1725,6 +1753,7 @@ var Dependencies = /** @class */ (function () {
1725
1753
  this.dependencies.forEach(function (dependency) {
1726
1754
  dependency.obj.unregisterPropertyChangedHandlers([dependency.prop], dependency.id);
1727
1755
  });
1756
+ // this.currentDependency = undefined;
1728
1757
  };
1729
1758
  Dependencies.DependenciesCount = 0;
1730
1759
  return Dependencies;
@@ -1768,6 +1797,7 @@ var ComputedUpdater = /** @class */ (function () {
1768
1797
  */
1769
1798
  var Base = /** @class */ (function () {
1770
1799
  function Base() {
1800
+ this.dependencies = {};
1771
1801
  this.propertyHash = Base.createPropertiesHash();
1772
1802
  this.eventList = [];
1773
1803
  this.isLoadingFromJsonValue = false;
@@ -1871,11 +1901,13 @@ var Base = /** @class */ (function () {
1871
1901
  return {};
1872
1902
  };
1873
1903
  Base.prototype.dispose = function () {
1904
+ var _this = this;
1874
1905
  for (var i = 0; i < this.eventList.length; i++) {
1875
1906
  this.eventList[i].clear();
1876
1907
  }
1877
1908
  this.onPropertyValueChangedCallback = undefined;
1878
1909
  this.isDisposedValue = true;
1910
+ Object.keys(this.dependencies).forEach(function (key) { return _this.dependencies[key].dispose(); });
1879
1911
  };
1880
1912
  Object.defineProperty(Base.prototype, "isDisposed", {
1881
1913
  get: function () {
@@ -2079,6 +2111,9 @@ var Base = /** @class */ (function () {
2079
2111
  var dValue = prop.defaultValue;
2080
2112
  if (!this.isPropertyEmpty(dValue) && !Array.isArray(dValue))
2081
2113
  return dValue;
2114
+ var locStr = this.localizableStrings ? this.localizableStrings[name] : undefined;
2115
+ if (locStr && locStr.localizationName)
2116
+ return this.getLocalizationString(locStr.localizationName);
2082
2117
  if (prop.type == "boolean" || prop.type == "switch")
2083
2118
  return false;
2084
2119
  if (prop.isCustom && !!prop.onGetValue)
@@ -2089,7 +2124,13 @@ var Base = /** @class */ (function () {
2089
2124
  return this.getDefaultPropertyValue(name) !== undefined;
2090
2125
  };
2091
2126
  Base.prototype.resetPropertyValue = function (name) {
2092
- this.setPropertyValue(name, undefined);
2127
+ var locStr = this.localizableStrings ? this.localizableStrings[name] : undefined;
2128
+ if (locStr) {
2129
+ locStr.clearLocale();
2130
+ }
2131
+ else {
2132
+ this.setPropertyValue(name, undefined);
2133
+ }
2093
2134
  };
2094
2135
  Base.prototype.getPropertyValueWithoutDefault = function (name) {
2095
2136
  return this.getPropertyValueCore(this.propertyHash, name);
@@ -5158,6 +5199,7 @@ var defaultV2Css = {
5158
5199
  rootMobile: "sd-root-modern--mobile",
5159
5200
  rootReadOnly: "sd-root--readonly",
5160
5201
  rootCompact: "sd-root--compact",
5202
+ rootFitToContainer: "sd-root-modern--full-container",
5161
5203
  rootBackgroundImage: "sd-root_background-image",
5162
5204
  container: "sd-container-modern",
5163
5205
  header: "sd-title sd-container-modern__title",
@@ -5173,6 +5215,7 @@ var defaultV2Css = {
5173
5215
  clockTimerMinorText: "sd-timer__text--minor",
5174
5216
  clockTimerMajorText: "sd-timer__text--major",
5175
5217
  bodyEmpty: "sd-body sd-body--empty",
5218
+ bodyLoading: "sd-body--loading",
5176
5219
  footer: "sd-footer sd-body__navigation sd-clearfix",
5177
5220
  title: "sd-title",
5178
5221
  description: "sd-description",
@@ -5183,6 +5226,7 @@ var defaultV2Css = {
5183
5226
  navigationButton: "",
5184
5227
  bodyNavigationButton: "sd-btn",
5185
5228
  completedPage: "sd-completedpage",
5229
+ completedBeforePage: "sd-completed-before-page",
5186
5230
  timerRoot: "sd-body__timer",
5187
5231
  navigation: {
5188
5232
  complete: "sd-btn--action sd-navigation__complete-btn",
@@ -5458,7 +5502,10 @@ var defaultV2Css = {
5458
5502
  itemTitle: "sd-multipletext__item-title",
5459
5503
  content: "sd-multipletext__content sd-question__content",
5460
5504
  row: "sd-multipletext__row",
5461
- cell: "sd-multipletext__cell"
5505
+ cell: "sd-multipletext__cell",
5506
+ cellError: "sd-multipletext__cell--error",
5507
+ cellErrorTop: "sd-multipletext__cell--error-top",
5508
+ cellErrorBottom: "sd-multipletext__cell--error-bottom"
5462
5509
  },
5463
5510
  dropdown: {
5464
5511
  root: "sd-selectbase",
@@ -6776,9 +6823,13 @@ var DragDropDOMAdapter = /** @class */ (function () {
6776
6823
  _this.draggedElementShortcut = null;
6777
6824
  _this.scrollIntervalId = null;
6778
6825
  if (_utils_devices__WEBPACK_IMPORTED_MODULE_1__["IsTouch"]) {
6826
+ _this.savedTargetNode.style.cssText = null;
6779
6827
  _this.savedTargetNode && _this.savedTargetNode.parentElement.removeChild(_this.savedTargetNode);
6828
+ _this.savedTargetNodeParent.appendChild(_this.savedTargetNode);
6780
6829
  DragDropDOMAdapter.PreventScrolling = false;
6781
6830
  }
6831
+ _this.savedTargetNode = null;
6832
+ _this.savedTargetNodeParent = null;
6782
6833
  document.body.style.setProperty("touch-action", "");
6783
6834
  document.body.style.setProperty("user-select", "");
6784
6835
  document.body.style.setProperty("-webkit-user-select", "");
@@ -6826,6 +6877,7 @@ var DragDropDOMAdapter = /** @class */ (function () {
6826
6877
  _this.savedTargetNode = event.target;
6827
6878
  _this.savedTargetNode.style.cssText =
6828
6879
  "\n position: absolute;\n height: 1px!important;\n width: 1px!important;\n overflow: hidden;\n clip: rect(1px 1px 1px 1px);\n clip: rect(1px, 1px, 1px, 1px);\n ";
6880
+ _this.savedTargetNodeParent = _this.savedTargetNode.parentElement;
6829
6881
  _this.rootElement.appendChild(_this.savedTargetNode);
6830
6882
  }
6831
6883
  _this.stopLongTap();
@@ -6907,9 +6959,12 @@ var DragDropDOMAdapter = /** @class */ (function () {
6907
6959
  var _this = this;
6908
6960
  cancelAnimationFrame(this.scrollIntervalId);
6909
6961
  var startScrollBoundary = 100;
6910
- this.draggedElementShortcut.hidden = true;
6962
+ var displayProp = this.draggedElementShortcut.style.display;
6963
+ //this.draggedElementShortcut.hidden = true;
6964
+ this.draggedElementShortcut.style.display = "none";
6911
6965
  var dragOverNode = document.elementFromPoint(clientX, clientY);
6912
- this.draggedElementShortcut.hidden = false;
6966
+ //this.draggedElementShortcut.hidden = false;
6967
+ this.draggedElementShortcut.style.display = displayProp || "block";
6913
6968
  var scrollableParentNode = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["findScrollableParent"])(dragOverNode);
6914
6969
  var top;
6915
6970
  var bottom;
@@ -7554,9 +7609,10 @@ var DropdownListModel = /** @class */ (function (_super) {
7554
7609
  _this.filterString = newValue;
7555
7610
  }
7556
7611
  };
7557
- question.onPropertyChanged.add(function (sender, options) {
7612
+ _this.qustionPropertyChangedHandler = function (sender, options) {
7558
7613
  _this.onPropertyChangedHandler(sender, options);
7559
- });
7614
+ };
7615
+ question.onPropertyChanged.add(_this.qustionPropertyChangedHandler);
7560
7616
  _this.showInputFieldComponent = _this.question.showInputFieldComponent;
7561
7617
  _this.listModel = _this.createListModel();
7562
7618
  _this.updateAfterListModelCreated(_this.listModel);
@@ -8081,6 +8137,8 @@ var DropdownListModel = /** @class */ (function (_super) {
8081
8137
  };
8082
8138
  DropdownListModel.prototype.dispose = function () {
8083
8139
  _super.prototype.dispose.call(this);
8140
+ this.question && this.question.onPropertyChanged.remove(this.qustionPropertyChangedHandler);
8141
+ this.qustionPropertyChangedHandler = undefined;
8084
8142
  if (!!this.listModel) {
8085
8143
  this.listModel.dispose();
8086
8144
  }
@@ -8192,6 +8250,10 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
8192
8250
  _this.closeOnSelect = question.closeOnSelect;
8193
8251
  return _this;
8194
8252
  }
8253
+ DropdownMultiSelectListModel.prototype.locStrsChanged = function () {
8254
+ _super.prototype.locStrsChanged.call(this);
8255
+ this.syncFilterStringPlaceholder();
8256
+ };
8195
8257
  DropdownMultiSelectListModel.prototype.updateListState = function () {
8196
8258
  this.listModel.updateState();
8197
8259
  this.syncFilterStringPlaceholder();
@@ -8681,7 +8743,7 @@ __webpack_require__.r(__webpack_exports__);
8681
8743
  /*!*************************************!*\
8682
8744
  !*** ./src/entries/chunks/model.ts ***!
8683
8745
  \*************************************/
8684
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, 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, 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, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
8746
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, 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, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
8685
8747
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8686
8748
 
8687
8749
  "use strict";
@@ -8871,6 +8933,14 @@ __webpack_require__.r(__webpack_exports__);
8871
8933
  /* harmony import */ var _question_multipletext__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../../question_multipletext */ "./src/question_multipletext.ts");
8872
8934
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextItemModel", function() { return _question_multipletext__WEBPACK_IMPORTED_MODULE_25__["MultipleTextItemModel"]; });
8873
8935
 
8936
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextCell", function() { return _question_multipletext__WEBPACK_IMPORTED_MODULE_25__["MultipleTextCell"]; });
8937
+
8938
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextErrorCell", function() { return _question_multipletext__WEBPACK_IMPORTED_MODULE_25__["MultipleTextErrorCell"]; });
8939
+
8940
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MutlipleTextErrorRow", function() { return _question_multipletext__WEBPACK_IMPORTED_MODULE_25__["MutlipleTextErrorRow"]; });
8941
+
8942
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MutlipleTextRow", function() { return _question_multipletext__WEBPACK_IMPORTED_MODULE_25__["MutlipleTextRow"]; });
8943
+
8874
8944
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMultipleTextModel", function() { return _question_multipletext__WEBPACK_IMPORTED_MODULE_25__["QuestionMultipleTextModel"]; });
8875
8945
 
8876
8946
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextEditorModel", function() { return _question_multipletext__WEBPACK_IMPORTED_MODULE_25__["MultipleTextEditorModel"]; });
@@ -9144,8 +9214,8 @@ __webpack_require__.r(__webpack_exports__);
9144
9214
  //import "../../modern.scss";
9145
9215
  var Version;
9146
9216
  var ReleaseDate;
9147
- Version = "" + "1.9.105";
9148
- ReleaseDate = "" + "2023-08-30";
9217
+ Version = "" + "1.9.107";
9218
+ ReleaseDate = "" + "2023-09-11";
9149
9219
  function checkLibraryVersion(ver, libraryName) {
9150
9220
  if (Version != ver) {
9151
9221
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9293,7 +9363,7 @@ function slk(k, lh, rd) {
9293
9363
  /*!**************************************!*\
9294
9364
  !*** ./src/entries/core-wo-model.ts ***!
9295
9365
  \**************************************/
9296
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, 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, 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, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper */
9366
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, 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, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper */
9297
9367
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9298
9368
 
9299
9369
  "use strict";
@@ -9463,6 +9533,14 @@ __webpack_require__.r(__webpack_exports__);
9463
9533
 
9464
9534
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextItemModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["MultipleTextItemModel"]; });
9465
9535
 
9536
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextCell", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["MultipleTextCell"]; });
9537
+
9538
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextErrorCell", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["MultipleTextErrorCell"]; });
9539
+
9540
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MutlipleTextErrorRow", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["MutlipleTextErrorRow"]; });
9541
+
9542
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MutlipleTextRow", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["MutlipleTextRow"]; });
9543
+
9466
9544
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMultipleTextModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMultipleTextModel"]; });
9467
9545
 
9468
9546
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextEditorModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["MultipleTextEditorModel"]; });
@@ -9718,11 +9796,8 @@ __webpack_require__.r(__webpack_exports__);
9718
9796
 
9719
9797
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionContainer", function() { return _actions_container__WEBPACK_IMPORTED_MODULE_9__["ActionContainer"]; });
9720
9798
 
9721
- /* harmony import */ var _utils_tooltip__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/tooltip */ "./src/utils/tooltip.ts");
9722
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipManager", function() { return _utils_tooltip__WEBPACK_IMPORTED_MODULE_10__["TooltipManager"]; });
9723
-
9724
- /* harmony import */ var _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/dragOrClickHelper */ "./src/utils/dragOrClickHelper.ts");
9725
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragOrClickHelper", function() { return _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_11__["DragOrClickHelper"]; });
9799
+ /* harmony import */ var _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/dragOrClickHelper */ "./src/utils/dragOrClickHelper.ts");
9800
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragOrClickHelper", function() { return _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_10__["DragOrClickHelper"]; });
9726
9801
 
9727
9802
  // model
9728
9803
 
@@ -9741,14 +9816,13 @@ __webpack_require__.r(__webpack_exports__);
9741
9816
 
9742
9817
 
9743
9818
 
9744
-
9745
9819
  /***/ }),
9746
9820
 
9747
9821
  /***/ "./src/entries/core.ts":
9748
9822
  /*!*****************************!*\
9749
9823
  !*** ./src/entries/core.ts ***!
9750
9824
  \*****************************/
9751
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, 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, 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, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model */
9825
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, 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, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model */
9752
9826
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9753
9827
 
9754
9828
  "use strict";
@@ -9918,6 +9992,14 @@ __webpack_require__.r(__webpack_exports__);
9918
9992
 
9919
9993
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextItemModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["MultipleTextItemModel"]; });
9920
9994
 
9995
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextCell", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["MultipleTextCell"]; });
9996
+
9997
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextErrorCell", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["MultipleTextErrorCell"]; });
9998
+
9999
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MutlipleTextErrorRow", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["MutlipleTextErrorRow"]; });
10000
+
10001
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MutlipleTextRow", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["MutlipleTextRow"]; });
10002
+
9921
10003
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMultipleTextModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMultipleTextModel"]; });
9922
10004
 
9923
10005
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextEditorModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["MultipleTextEditorModel"]; });
@@ -10164,8 +10246,6 @@ __webpack_require__.r(__webpack_exports__);
10164
10246
 
10165
10247
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionContainer", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["ActionContainer"]; });
10166
10248
 
10167
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipManager", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["TooltipManager"]; });
10168
-
10169
10249
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragOrClickHelper", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["DragOrClickHelper"]; });
10170
10250
 
10171
10251
  /* harmony import */ var _survey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../survey */ "./src/survey.ts");
@@ -10219,7 +10299,7 @@ var defaultBootstrapMaterialCss = _plugins_themes_bootstrapmaterial_cssbootstrap
10219
10299
  /*!***************************************!*\
10220
10300
  !*** ./src/entries/react-ui-model.ts ***!
10221
10301
  \***************************************/
10222
- /*! exports provided: Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, 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, SurveyLocStringViewer, SurveyLocStringEditor */
10302
+ /*! exports provided: Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, 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, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent */
10223
10303
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10224
10304
 
10225
10305
  "use strict";
@@ -10477,6 +10557,9 @@ __webpack_require__.r(__webpack_exports__);
10477
10557
  /* harmony import */ var _react_string_editor__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../react/string-editor */ "./src/react/string-editor.tsx");
10478
10558
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyLocStringEditor", function() { return _react_string_editor__WEBPACK_IMPORTED_MODULE_74__["SurveyLocStringEditor"]; });
10479
10559
 
10560
+ /* harmony import */ var _react_components_loading_indicator__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../react/components/loading-indicator */ "./src/react/components/loading-indicator.tsx");
10561
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LoadingIndicatorComponent", function() { return _react_components_loading_indicator__WEBPACK_IMPORTED_MODULE_75__["LoadingIndicatorComponent"]; });
10562
+
10480
10563
  // react
10481
10564
 
10482
10565
 
@@ -10551,6 +10634,7 @@ __webpack_require__.r(__webpack_exports__);
10551
10634
 
10552
10635
 
10553
10636
 
10637
+
10554
10638
 
10555
10639
 
10556
10640
  //Uncomment to include the "date" question type.
@@ -10563,7 +10647,7 @@ __webpack_require__.r(__webpack_exports__);
10563
10647
  /*!******************************!*\
10564
10648
  !*** ./src/entries/react.ts ***!
10565
10649
  \******************************/
10566
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, 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, 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, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, 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, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, 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, SurveyLocStringViewer, SurveyLocStringEditor */
10650
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, 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, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model, 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, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, 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, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent */
10567
10651
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10568
10652
 
10569
10653
  "use strict";
@@ -10733,6 +10817,14 @@ __webpack_require__.r(__webpack_exports__);
10733
10817
 
10734
10818
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextItemModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["MultipleTextItemModel"]; });
10735
10819
 
10820
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextCell", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["MultipleTextCell"]; });
10821
+
10822
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextErrorCell", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["MultipleTextErrorCell"]; });
10823
+
10824
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MutlipleTextErrorRow", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["MutlipleTextErrorRow"]; });
10825
+
10826
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MutlipleTextRow", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["MutlipleTextRow"]; });
10827
+
10736
10828
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMultipleTextModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["QuestionMultipleTextModel"]; });
10737
10829
 
10738
10830
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultipleTextEditorModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["MultipleTextEditorModel"]; });
@@ -10979,8 +11071,6 @@ __webpack_require__.r(__webpack_exports__);
10979
11071
 
10980
11072
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionContainer", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["ActionContainer"]; });
10981
11073
 
10982
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipManager", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["TooltipManager"]; });
10983
-
10984
11074
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragOrClickHelper", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["DragOrClickHelper"]; });
10985
11075
 
10986
11076
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Model", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["Model"]; });
@@ -11182,6 +11272,8 @@ __webpack_require__.r(__webpack_exports__);
11182
11272
 
11183
11273
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyLocStringEditor", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_3__["SurveyLocStringEditor"]; });
11184
11274
 
11275
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LoadingIndicatorComponent", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_3__["LoadingIndicatorComponent"]; });
11276
+
11185
11277
 
11186
11278
  // themes settings
11187
11279
 
@@ -15001,7 +15093,7 @@ var Const = /** @class */ (function (_super) {
15001
15093
  if (OperandMaker.isNumeric(value)) {
15002
15094
  if (value.indexOf("0x") == 0)
15003
15095
  return parseInt(value);
15004
- if (value.length > 1 && value[0] == "0")
15096
+ if (value.length > 1 && value[0] == "0" && (value.length < 2 || (value[1] !== "." && value[1] !== ",")))
15005
15097
  return value;
15006
15098
  return parseFloat(value);
15007
15099
  }
@@ -16342,6 +16434,8 @@ var Helpers = /** @class */ (function () {
16342
16434
  }
16343
16435
  return a + b;
16344
16436
  }
16437
+ if (typeof a === "string" || typeof b === "string")
16438
+ return a + b;
16345
16439
  return Helpers.correctAfterPlusMinis(a, b, a + b);
16346
16440
  };
16347
16441
  Helpers.correctAfterMultiple = function (a, b, res) {
@@ -16464,6 +16558,7 @@ var map = {
16464
16558
  "./clear_16x16.svg": "./src/images/clear_16x16.svg",
16465
16559
  "./collapseDetail.svg": "./src/images/collapseDetail.svg",
16466
16560
  "./expandDetail.svg": "./src/images/expandDetail.svg",
16561
+ "./loading.svg": "./src/images/loading.svg",
16467
16562
  "./no-image.svg": "./src/images/no-image.svg",
16468
16563
  "./rating-star-2.svg": "./src/images/rating-star-2.svg",
16469
16564
  "./rating-star-small-2.svg": "./src/images/rating-star-small-2.svg",
@@ -16824,6 +16919,17 @@ module.exports = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\
16824
16919
 
16825
16920
  /***/ }),
16826
16921
 
16922
+ /***/ "./src/images/loading.svg":
16923
+ /*!********************************!*\
16924
+ !*** ./src/images/loading.svg ***!
16925
+ \********************************/
16926
+ /*! no static exports found */
16927
+ /***/ (function(module, exports) {
16928
+
16929
+ module.exports = "<svg viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_885_24957)\"><path opacity=\"0.1\" d=\"M24 40C15.18 40 8 32.82 8 24C8 15.18 15.18 8 24 8C32.82 8 40 15.18 40 24C40 32.82 32.82 40 24 40ZM24 12C17.38 12 12 17.38 12 24C12 30.62 17.38 36 24 36C30.62 36 36 30.62 36 24C36 17.38 30.62 12 24 12Z\" fill=\"black\" fill-opacity=\"0.91\"></path><path d=\"M10 26C8.9 26 8 25.1 8 24C8 15.18 15.18 8 24 8C25.1 8 26 8.9 26 10C26 11.1 25.1 12 24 12C17.38 12 12 17.38 12 24C12 25.1 11.1 26 10 26Z\" fill=\"#19B394\"></path></g><defs><clipPath id=\"clip0_885_24957\"><rect width=\"32\" height=\"32\" fill=\"white\" transform=\"translate(8 8)\"></rect></clipPath></defs></svg>"
16930
+
16931
+ /***/ }),
16932
+
16827
16933
  /***/ "./src/images/no-image.svg":
16828
16934
  /*!*********************************!*\
16829
16935
  !*** ./src/images/no-image.svg ***!
@@ -17666,6 +17772,8 @@ function getLocStringValue(target, options, key) {
17666
17772
  return "";
17667
17773
  }
17668
17774
  function property(options) {
17775
+ if (options === void 0) { options = {}; }
17776
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
17669
17777
  return function (target, key) {
17670
17778
  var processComputedUpdater = function (obj, val) {
17671
17779
  if (!!val && typeof val === "object" && val.type === _base__WEBPACK_IMPORTED_MODULE_1__["ComputedUpdater"].ComputedUpdaterType) {
@@ -17673,6 +17781,10 @@ function property(options) {
17673
17781
  var result = val.updater();
17674
17782
  var dependencies = _base__WEBPACK_IMPORTED_MODULE_1__["Base"].finishCollectDependencies();
17675
17783
  val.setDependencies(dependencies);
17784
+ if (obj.dependencies[key]) {
17785
+ obj.dependencies[key].dispose();
17786
+ }
17787
+ obj.dependencies[key] = val;
17676
17788
  return result;
17677
17789
  }
17678
17790
  return val;
@@ -17874,9 +17986,10 @@ var JsonObjectProperty = /** @class */ (function () {
17874
17986
  if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(this.defaultValue)) {
17875
17987
  return _helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isTwoValueEquals(value, this.defaultValue, false, true, false);
17876
17988
  }
17989
+ if (this.isLocalizable)
17990
+ return value === null || value === undefined;
17877
17991
  return ((value === false && (this.type == "boolean" || this.type == "switch")) ||
17878
- value === "" ||
17879
- _helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(value));
17992
+ value === "" || _helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(value));
17880
17993
  };
17881
17994
  JsonObjectProperty.prototype.getValue = function (obj) {
17882
17995
  if (this.onGetValue)
@@ -19258,7 +19371,7 @@ var JsonObject = /** @class */ (function () {
19258
19371
  }
19259
19372
  };
19260
19373
  JsonObject.prototype.valueToObj = function (value, obj, property) {
19261
- if (value == null)
19374
+ if (value === null || value === undefined)
19262
19375
  return;
19263
19376
  this.removePos(property, value);
19264
19377
  if (property != null && property.hasToUseSetValue) {
@@ -19783,6 +19896,7 @@ var ListModel = /** @class */ (function (_super) {
19783
19896
  if (!!this.loadingIndicatorValue) {
19784
19897
  this.loadingIndicatorValue.dispose();
19785
19898
  }
19899
+ this.listContainerHtmlElement = undefined;
19786
19900
  };
19787
19901
  ListModel.INDENT = 16;
19788
19902
  ListModel.MINELEMENTCOUNT = 10;
@@ -19879,6 +19993,19 @@ var LocalizableString = /** @class */ (function () {
19879
19993
  enumerable: false,
19880
19994
  configurable: true
19881
19995
  });
19996
+ Object.defineProperty(LocalizableString.prototype, "localizationName", {
19997
+ get: function () {
19998
+ return this._localizationName;
19999
+ },
20000
+ set: function (val) {
20001
+ if (this._localizationName != val) {
20002
+ this._localizationName = val;
20003
+ this.strChanged();
20004
+ }
20005
+ },
20006
+ enumerable: false,
20007
+ configurable: true
20008
+ });
19882
20009
  LocalizableString.prototype.getIsMultiple = function () { return false; };
19883
20010
  Object.defineProperty(LocalizableString.prototype, "locale", {
19884
20011
  get: function () {
@@ -19947,19 +20074,19 @@ var LocalizableString = /** @class */ (function () {
19947
20074
  if (!loc)
19948
20075
  loc = this.defaultLoc;
19949
20076
  var res = this.getValue(loc);
19950
- if (!res && loc === this.defaultLoc) {
20077
+ if (this.isValueEmpty(res) && loc === this.defaultLoc) {
19951
20078
  res = this.getValue(_surveyStrings__WEBPACK_IMPORTED_MODULE_1__["surveyLocalization"].defaultLocale);
19952
20079
  }
19953
- if (!res) {
20080
+ if (this.isValueEmpty(res)) {
19954
20081
  var dialect = this.getRootDialect(loc);
19955
20082
  if (!!dialect) {
19956
20083
  res = this.getValue(dialect);
19957
20084
  }
19958
20085
  }
19959
- if (!res && loc !== this.defaultLoc) {
20086
+ if (this.isValueEmpty(res) && loc !== this.defaultLoc) {
19960
20087
  res = this.getValue(this.defaultLoc);
19961
20088
  }
19962
- if (!res && !!this.getLocalizationName()) {
20089
+ if (this.isValueEmpty(res) && !!this.getLocalizationName()) {
19963
20090
  res = this.getLocalizationStr();
19964
20091
  if (!!this.onGetLocalizationTextCallback) {
19965
20092
  res = this.onGetLocalizationTextCallback(res);
@@ -20023,35 +20150,44 @@ var LocalizableString = /** @class */ (function () {
20023
20150
  configurable: true
20024
20151
  });
20025
20152
  LocalizableString.prototype.getLocaleText = function (loc) {
20153
+ var res = this.getLocaleTextCore(loc);
20154
+ return res ? res : "";
20155
+ };
20156
+ LocalizableString.prototype.getLocaleTextCore = function (loc) {
20026
20157
  if (!loc)
20027
20158
  loc = this.defaultLoc;
20028
- var res = this.getValue(loc);
20029
- return res ? res : "";
20159
+ return this.getValue(loc);
20030
20160
  };
20031
- LocalizableString.prototype.getLocaleTextWithDefault = function (loc) {
20032
- var res = this.getLocaleText(loc);
20161
+ LocalizableString.prototype.isLocaleTextEqualsWithDefault = function (loc, val) {
20162
+ var res = this.getLocaleTextCore(loc);
20033
20163
  if (!res && this.onGetDefaultTextCallback) {
20034
- return this.onGetDefaultTextCallback();
20164
+ res = this.onGetDefaultTextCallback();
20035
20165
  }
20036
- return res;
20166
+ if (res === val)
20167
+ return true;
20168
+ return this.isValueEmpty(res) && this.isValueEmpty(val);
20169
+ };
20170
+ LocalizableString.prototype.clear = function () {
20171
+ this.setJson(undefined);
20172
+ };
20173
+ LocalizableString.prototype.clearLocale = function (loc) {
20174
+ this.setLocaleText(loc, undefined);
20037
20175
  };
20038
20176
  LocalizableString.prototype.setLocaleText = function (loc, value) {
20039
20177
  loc = this.getValueLoc(loc);
20040
- if (!this.storeDefaultText && value == this.getLocaleTextWithDefault(loc)) {
20041
- if (!!value || !!loc && loc !== this.defaultLoc)
20178
+ if (!this.storeDefaultText && this.isLocaleTextEqualsWithDefault(loc, value)) {
20179
+ if (!this.isValueEmpty(value) || !!loc && loc !== this.defaultLoc)
20042
20180
  return;
20043
20181
  var dl = _surveyStrings__WEBPACK_IMPORTED_MODULE_1__["surveyLocalization"].defaultLocale;
20044
20182
  var oldValue_1 = this.getValue(dl);
20045
- if (!!dl && !!oldValue_1) {
20183
+ if (!!dl && !this.isValueEmpty(oldValue_1)) {
20046
20184
  this.setValue(dl, value);
20047
20185
  this.fireStrChanged(dl, oldValue_1);
20048
20186
  }
20049
20187
  return;
20050
20188
  }
20051
20189
  if (!_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.storeDuplicatedTranslations &&
20052
- value &&
20053
- loc &&
20054
- loc != this.defaultLoc &&
20190
+ !this.isValueEmpty(value) && loc && loc != this.defaultLoc &&
20055
20191
  !this.getValue(loc) &&
20056
20192
  value == this.getLocaleText(this.defaultLoc))
20057
20193
  return;
@@ -20060,9 +20196,8 @@ var LocalizableString = /** @class */ (function () {
20060
20196
  loc = this.defaultLoc;
20061
20197
  var oldValue = this.onStrChanged && loc === curLoc ? this.pureText : undefined;
20062
20198
  delete this.htmlValues[loc];
20063
- if (!value) {
20064
- if (this.getValue(loc))
20065
- this.deleteValue(loc);
20199
+ if (this.isValueEmpty(value)) {
20200
+ this.deleteValue(loc);
20066
20201
  }
20067
20202
  else {
20068
20203
  if (typeof value === "string") {
@@ -20079,6 +20214,13 @@ var LocalizableString = /** @class */ (function () {
20079
20214
  }
20080
20215
  this.fireStrChanged(loc, oldValue);
20081
20216
  };
20217
+ LocalizableString.prototype.isValueEmpty = function (val) {
20218
+ if (val === undefined || val === null)
20219
+ return true;
20220
+ if (this.localizationName)
20221
+ return false;
20222
+ return val === "";
20223
+ };
20082
20224
  Object.defineProperty(LocalizableString.prototype, "curLocale", {
20083
20225
  get: function () {
20084
20226
  return !!this.locale ? this.locale : this.defaultLoc;
@@ -20142,7 +20284,7 @@ var LocalizableString = /** @class */ (function () {
20142
20284
  }
20143
20285
  this.values = {};
20144
20286
  this.htmlValues = {};
20145
- if (!value)
20287
+ if (value === null || value === undefined)
20146
20288
  return;
20147
20289
  if (typeof value === "string") {
20148
20290
  this.setLocaleText(null, value);
@@ -23552,8 +23694,8 @@ __webpack_require__.r(__webpack_exports__);
23552
23694
  /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! survey-core */ "./src/entries/core.ts");
23553
23695
 
23554
23696
  var latvianSurveyStrings = {
23555
- pagePrevText: "Atpakaļ",
23556
- pageNextText: "Tālāk",
23697
+ pagePrevText: "Iepriekšēja lapa",
23698
+ pageNextText: "Nākamā lapa",
23557
23699
  completeText: "Iesniegt",
23558
23700
  previewText: "Priekšskatījums",
23559
23701
  editText: "Rediģēt",
@@ -28124,9 +28266,10 @@ var PanelModelBase = /** @class */ (function (_super) {
28124
28266
  PanelModelBase.prototype.canShowTitle = function () { return true; };
28125
28267
  Object.defineProperty(PanelModelBase.prototype, "_showDescription", {
28126
28268
  get: function () {
28269
+ if (!this.hasTitle && this.isDesignMode)
28270
+ return false;
28127
28271
  return this.survey && this.survey.showPageTitles && this.hasDescription ||
28128
28272
  (this.showDescription && this.isDesignMode &&
28129
- _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].designMode.showEmptyTitles &&
28130
28273
  _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].designMode.showEmptyDescriptions);
28131
28274
  },
28132
28275
  enumerable: false,
@@ -31333,6 +31476,7 @@ __webpack_require__.r(__webpack_exports__);
31333
31476
  /* harmony import */ var _popup_view_model__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./popup-view-model */ "./src/popup-view-model.ts");
31334
31477
  /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/devices */ "./src/utils/devices.ts");
31335
31478
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
31479
+ /* harmony import */ var _survey__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./survey */ "./src/survey.ts");
31336
31480
  var __extends = (undefined && undefined.__extends) || (function () {
31337
31481
  var extendStatics = function (d, b) {
31338
31482
  extendStatics = Object.setPrototypeOf ||
@@ -31359,6 +31503,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
31359
31503
 
31360
31504
 
31361
31505
 
31506
+
31362
31507
  var PopupDropdownViewModel = /** @class */ (function (_super) {
31363
31508
  __extends(PopupDropdownViewModel, _super);
31364
31509
  function PopupDropdownViewModel(model, targetElement) {
@@ -31378,7 +31523,7 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
31378
31523
  };
31379
31524
  _this.resizeWindowCallback = function () {
31380
31525
  if (!_this.isOverlay) {
31381
- _this.updatePosition(true, false);
31526
+ _this.updatePosition(true, _survey__WEBPACK_IMPORTED_MODULE_5__["SurveyModel"].platform === "vue" || _survey__WEBPACK_IMPORTED_MODULE_5__["SurveyModel"].platform === "vue3");
31382
31527
  }
31383
31528
  };
31384
31529
  _this.clientY = 0;
@@ -31389,11 +31534,7 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
31389
31534
  _this.touchMoveEventCallback = function (event) {
31390
31535
  _this.preventScrollOuside(event, _this.clientY - event.changedTouches[0].clientY);
31391
31536
  };
31392
- _this.model.onRecalculatePosition.add(function (_, options) {
31393
- if (!_this.isOverlay) {
31394
- _this.updatePosition(options.isResetHeight);
31395
- }
31396
- });
31537
+ _this.model.onRecalculatePosition.add(_this.recalculatePositionHandler);
31397
31538
  return _this;
31398
31539
  }
31399
31540
  PopupDropdownViewModel.prototype.calculateIsTablet = function (windowWidth, windowHeight) {
@@ -31426,8 +31567,8 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
31426
31567
  this.popupDirection = _utils_popup__WEBPACK_IMPORTED_MODULE_1__["PopupUtils"].calculatePopupDirection(verticalPosition, actualHorizontalPosition);
31427
31568
  var pos = _utils_popup__WEBPACK_IMPORTED_MODULE_1__["PopupUtils"].calculatePosition(targetElementRect, height, width + marginLeft + marginRight, verticalPosition, actualHorizontalPosition, this.showHeader, this.model.positionMode);
31428
31569
  if (!!window) {
31429
- var newVerticalDimensions = _utils_popup__WEBPACK_IMPORTED_MODULE_1__["PopupUtils"].updateVerticalDimensions(pos.top, height, window.innerHeight);
31430
- if (!!newVerticalDimensions) {
31570
+ var newVerticalDimensions = _utils_popup__WEBPACK_IMPORTED_MODULE_1__["PopupUtils"].getCorrectedVerticalDimensions(pos.top, height, window.innerHeight);
31571
+ if (!!newVerticalDimensions.height) {
31431
31572
  this.height = newVerticalDimensions.height + "px";
31432
31573
  pos.top = newVerticalDimensions.top;
31433
31574
  }
@@ -31488,6 +31629,10 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
31488
31629
  this.targetElement = targetElement || componentRoot.parentElement;
31489
31630
  }
31490
31631
  };
31632
+ PopupDropdownViewModel.prototype.resetComponentElement = function () {
31633
+ _super.prototype.resetComponentElement.call(this);
31634
+ this.targetElement = undefined;
31635
+ };
31491
31636
  PopupDropdownViewModel.prototype.updateOnShowing = function () {
31492
31637
  var root = _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root;
31493
31638
  this.prevActiveElement = root.activeElement;
@@ -31551,6 +31696,30 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
31551
31696
  this.minWidth = undefined;
31552
31697
  }
31553
31698
  };
31699
+ PopupDropdownViewModel.prototype.onModelChanging = function (newModel) {
31700
+ var _this = this;
31701
+ if (!!this.model) {
31702
+ this.model.onRecalculatePosition.remove(this.recalculatePositionHandler);
31703
+ }
31704
+ if (!this.recalculatePositionHandler) {
31705
+ this.recalculatePositionHandler = function (_, options) {
31706
+ if (!_this.isOverlay) {
31707
+ _this.updatePosition(options.isResetHeight);
31708
+ }
31709
+ };
31710
+ }
31711
+ _super.prototype.onModelChanging.call(this, newModel);
31712
+ newModel.onRecalculatePosition.add(this.recalculatePositionHandler);
31713
+ };
31714
+ PopupDropdownViewModel.prototype.dispose = function () {
31715
+ _super.prototype.dispose.call(this);
31716
+ this.updateOnHiding();
31717
+ if (!!this.model) {
31718
+ this.model.onRecalculatePosition.remove(this.recalculatePositionHandler);
31719
+ this.recalculatePositionHandler = undefined;
31720
+ }
31721
+ this.resetComponentElement();
31722
+ };
31554
31723
  PopupDropdownViewModel.tabletSizeBreakpoint = 600;
31555
31724
  __decorate([
31556
31725
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
@@ -31738,16 +31907,6 @@ var PopupSurveyModel = /** @class */ (function (_super) {
31738
31907
  _this.width = _this.survey.width;
31739
31908
  _this.updateCss();
31740
31909
  _this.onCreating();
31741
- _this.survey.onPopupVisibleChanged.add(function (_, opt) {
31742
- if (opt.visible) {
31743
- _this.onScrollCallback = function () {
31744
- opt.popup.toggleVisibility();
31745
- };
31746
- }
31747
- else {
31748
- _this.onScrollCallback = undefined;
31749
- }
31750
- });
31751
31910
  return _this;
31752
31911
  }
31753
31912
  PopupSurveyModel.prototype.onCreating = function () { };
@@ -31981,9 +32140,7 @@ var PopupSurveyModel = /** @class */ (function (_super) {
31981
32140
  }
31982
32141
  };
31983
32142
  PopupSurveyModel.prototype.onScroll = function () {
31984
- if (this.onScrollCallback) {
31985
- this.onScrollCallback();
31986
- }
32143
+ this.survey.onScroll();
31987
32144
  };
31988
32145
  __decorate([
31989
32146
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])()
@@ -32103,6 +32260,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
32103
32260
  __extends(PopupBaseViewModel, _super);
32104
32261
  function PopupBaseViewModel(model) {
32105
32262
  var _this = _super.call(this) || this;
32263
+ _this.subscriptionId = PopupBaseViewModel.SubscriptionId++;
32106
32264
  _this.popupSelector = ".sv-popup";
32107
32265
  _this.fixedPopupContainer = ".sv-popup";
32108
32266
  _this.containerSelector = ".sv-popup__container";
@@ -32165,11 +32323,14 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
32165
32323
  this.width = nullableValue;
32166
32324
  this.minWidth = nullableValue;
32167
32325
  };
32326
+ PopupBaseViewModel.prototype.onModelChanging = function (newModel) {
32327
+ };
32168
32328
  PopupBaseViewModel.prototype.setupModel = function (model) {
32169
32329
  var _this = this;
32170
32330
  if (!!this.model) {
32171
- this.model.unregisterPropertyChangedHandlers(["isVisible"], "PopupBaseViewModel");
32331
+ this.model.unregisterPropertyChangedHandlers(["isVisible"], "PopupBaseViewModel" + this.subscriptionId);
32172
32332
  }
32333
+ this.onModelChanging(model);
32173
32334
  this._model = model;
32174
32335
  var onIsVisibleChangedHandler = function () {
32175
32336
  if (!model.isVisible) {
@@ -32177,7 +32338,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
32177
32338
  }
32178
32339
  _this.isVisible = model.isVisible;
32179
32340
  };
32180
- model.registerPropertyChangedHandlers(["isVisible"], onIsVisibleChangedHandler, "PopupBaseViewModel");
32341
+ model.registerPropertyChangedHandlers(["isVisible"], onIsVisibleChangedHandler, "PopupBaseViewModel" + this.subscriptionId);
32181
32342
  onIsVisibleChangedHandler();
32182
32343
  };
32183
32344
  Object.defineProperty(PopupBaseViewModel.prototype, "model", {
@@ -32357,6 +32518,9 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
32357
32518
  };
32358
32519
  PopupBaseViewModel.prototype.dispose = function () {
32359
32520
  _super.prototype.dispose.call(this);
32521
+ if (this.model) {
32522
+ this.model.unregisterPropertyChangedHandlers(["isVisible"], "PopupBaseViewModel" + this.subscriptionId);
32523
+ }
32360
32524
  if (!!this.createdContainer) {
32361
32525
  this.createdContainer.remove();
32362
32526
  this.createdContainer = undefined;
@@ -32364,6 +32528,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
32364
32528
  if (!!this.footerToolbarValue) {
32365
32529
  this.footerToolbarValue.dispose();
32366
32530
  }
32531
+ this.resetComponentElement();
32367
32532
  };
32368
32533
  PopupBaseViewModel.prototype.initializePopupContainer = function () {
32369
32534
  if (!this.container) {
@@ -32379,6 +32544,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
32379
32544
  };
32380
32545
  PopupBaseViewModel.prototype.resetComponentElement = function () {
32381
32546
  this.containerElement = undefined;
32547
+ this.prevActiveElement = undefined;
32382
32548
  };
32383
32549
  PopupBaseViewModel.prototype.preventScrollOuside = function (event, deltaY) {
32384
32550
  var currentElement = event.target;
@@ -32393,6 +32559,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
32393
32559
  }
32394
32560
  event.preventDefault();
32395
32561
  };
32562
+ PopupBaseViewModel.SubscriptionId = 0;
32396
32563
  __decorate([
32397
32564
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: "0px" })
32398
32565
  ], PopupBaseViewModel.prototype, "top", void 0);
@@ -32459,7 +32626,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
32459
32626
 
32460
32627
  var PopupModel = /** @class */ (function (_super) {
32461
32628
  __extends(PopupModel, _super);
32462
- function PopupModel(contentComponentName, contentComponentData, verticalPosition, horizontalPosition, showPointer, isModal, onCancel, onApply, onHide, onShow, cssClass, title) {
32629
+ function PopupModel(contentComponentName, contentComponentData, verticalPosition, horizontalPosition, showPointer, isModal, onCancel, onApply, onHide, onShow, cssClass, title, onDispose) {
32463
32630
  if (verticalPosition === void 0) { verticalPosition = "bottom"; }
32464
32631
  if (horizontalPosition === void 0) { horizontalPosition = "left"; }
32465
32632
  if (showPointer === void 0) { showPointer = true; }
@@ -32470,7 +32637,9 @@ var PopupModel = /** @class */ (function (_super) {
32470
32637
  if (onShow === void 0) { onShow = function () { }; }
32471
32638
  if (cssClass === void 0) { cssClass = ""; }
32472
32639
  if (title === void 0) { title = ""; }
32640
+ if (onDispose === void 0) { onDispose = function () { }; }
32473
32641
  var _this = _super.call(this) || this;
32642
+ _this.onDispose = onDispose;
32474
32643
  _this.focusFirstInputSelector = "";
32475
32644
  _this.onVisibilityChanged = _this.addEvent();
32476
32645
  _this.onFooterActionsCreated = _this.addEvent();
@@ -32525,6 +32694,10 @@ var PopupModel = /** @class */ (function (_super) {
32525
32694
  this.onFooterActionsCreated.fire(this, options);
32526
32695
  return options.actions;
32527
32696
  };
32697
+ PopupModel.prototype.dispose = function () {
32698
+ _super.prototype.dispose.call(this);
32699
+ this.onDispose();
32700
+ };
32528
32701
  __decorate([
32529
32702
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
32530
32703
  ], PopupModel.prototype, "contentComponentName", void 0);
@@ -32932,11 +33105,14 @@ var Question = /** @class */ (function (_super) {
32932
33105
  configurable: true
32933
33106
  });
32934
33107
  Question.prototype.onVisibleChanged = function () {
32935
- this.setPropertyValue("isVisible", this.isVisible);
33108
+ this.updateIsVisibleProp();
32936
33109
  if (!this.isVisible && this.errors && this.errors.length > 0) {
32937
33110
  this.errors = [];
32938
33111
  }
32939
33112
  };
33113
+ Question.prototype.updateIsVisibleProp = function () {
33114
+ this.setPropertyValue("isVisible", this.isVisible);
33115
+ };
32940
33116
  Object.defineProperty(Question.prototype, "useDisplayValuesInDynamicTexts", {
32941
33117
  /**
32942
33118
  * Specifies whether to use display names for question values in placeholders.
@@ -33112,6 +33288,9 @@ var Question = /** @class */ (function (_super) {
33112
33288
  this.runConditions();
33113
33289
  }
33114
33290
  this.calcRenderedCommentPlaceholder();
33291
+ if (!this.visible) {
33292
+ this.updateIsVisibleProp();
33293
+ }
33115
33294
  };
33116
33295
  Object.defineProperty(Question.prototype, "parent", {
33117
33296
  /**
@@ -33696,11 +33875,8 @@ var Question = /** @class */ (function (_super) {
33696
33875
  .append(cssClasses.descriptionUnderInput, this.hasDescriptionUnderInput)
33697
33876
  .toString();
33698
33877
  };
33699
- Question.prototype.getIsErrorsModeTooltip = function () {
33700
- return _super.prototype.getIsErrorsModeTooltip.call(this) && !this.customWidget;
33701
- };
33702
33878
  Question.prototype.showErrorOnCore = function (location) {
33703
- return !this.isErrorsModeTooltip && !this.showErrorsAboveQuestion && !this.showErrorsBelowQuestion && this.getErrorLocation() === location;
33879
+ return !this.showErrorsAboveQuestion && !this.showErrorsBelowQuestion && this.getErrorLocation() === location;
33704
33880
  };
33705
33881
  Object.defineProperty(Question.prototype, "showErrorOnTop", {
33706
33882
  get: function () {
@@ -33716,17 +33892,9 @@ var Question = /** @class */ (function (_super) {
33716
33892
  enumerable: false,
33717
33893
  configurable: true
33718
33894
  });
33719
- Question.prototype.getIsTooltipErrorSupportedByParent = function () {
33720
- if (this.parentQuestion) {
33721
- return this.parentQuestion.getIsTooltipErrorInsideSupported();
33722
- }
33723
- else {
33724
- return _super.prototype.getIsTooltipErrorSupportedByParent.call(this);
33725
- }
33726
- };
33727
33895
  Object.defineProperty(Question.prototype, "showErrorsOutsideQuestion", {
33728
33896
  get: function () {
33729
- return this.isDefaultV2Theme && !(this.hasParent && this.getIsTooltipErrorSupportedByParent());
33897
+ return this.isDefaultV2Theme;
33730
33898
  },
33731
33899
  enumerable: false,
33732
33900
  configurable: true
@@ -33762,7 +33930,6 @@ var Question = /** @class */ (function (_super) {
33762
33930
  .append(cssClasses.error.outsideQuestion, this.showErrorsBelowQuestion || this.showErrorsAboveQuestion)
33763
33931
  .append(cssClasses.error.belowQuestion, this.showErrorsBelowQuestion)
33764
33932
  .append(cssClasses.error.aboveQuestion, this.showErrorsAboveQuestion)
33765
- .append(cssClasses.error.tooltip, this.isErrorsModeTooltip)
33766
33933
  .append(cssClasses.error.locationTop, this.showErrorOnTop)
33767
33934
  .append(cssClasses.error.locationBottom, this.showErrorOnBottom)
33768
33935
  .toString();
@@ -34280,6 +34447,12 @@ var Question = /** @class */ (function (_super) {
34280
34447
  enumerable: false,
34281
34448
  configurable: true
34282
34449
  });
34450
+ Object.defineProperty(Question.prototype, "hasFilteredValue", {
34451
+ get: function () { return false; },
34452
+ enumerable: false,
34453
+ configurable: true
34454
+ });
34455
+ Question.prototype.getFilteredValue = function () { return this.value; };
34283
34456
  Object.defineProperty(Question.prototype, "valueForSurvey", {
34284
34457
  get: function () {
34285
34458
  if (!!this.valueToDataCallback) {
@@ -34598,13 +34771,15 @@ var Question = /** @class */ (function (_super) {
34598
34771
  return this.checkIfAnswerCorrect() ? 1 : 0;
34599
34772
  };
34600
34773
  Question.prototype.checkIfAnswerCorrect = function () {
34601
- var isEqual = this.isTwoValueEquals(this.value, this.correctAnswer, !_settings__WEBPACK_IMPORTED_MODULE_8__["settings"].comparator.caseSensitive, true);
34602
- var options = { result: isEqual, correctAnswer: isEqual ? 1 : 0 };
34774
+ var isEqual = _helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isTwoValueEquals(this.value, this.correctAnswer, this.getAnswerCorrectIgnoreOrder(), _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].comparator.caseSensitive, true);
34775
+ var correct = isEqual ? 1 : 0;
34776
+ var options = { result: isEqual, correctAnswer: correct, correctAnswers: correct, incorrectAnswers: this.quizQuestionCount - correct };
34603
34777
  if (!!this.survey) {
34604
34778
  this.survey.onCorrectQuestionAnswer(this, options);
34605
34779
  }
34606
34780
  return options.result;
34607
34781
  };
34782
+ Question.prototype.getAnswerCorrectIgnoreOrder = function () { return false; };
34608
34783
  /**
34609
34784
  * Returns `true` if a question answer matches the `correctAnswer` property value.
34610
34785
  *
@@ -35115,7 +35290,9 @@ var Question = /** @class */ (function (_super) {
35115
35290
  }
35116
35291
  if (!this.checkIsValueCorrect(newValue))
35117
35292
  return;
35293
+ this.isChangingViaDefaultValue = true;
35118
35294
  this.setQuestionValue(this.valueFromData(newValue));
35295
+ this.isChangingViaDefaultValue = false;
35119
35296
  this.updateDependedQuestions();
35120
35297
  this.updateIsAnswered();
35121
35298
  };
@@ -36378,53 +36555,51 @@ var QuestionSelectBase = /** @class */ (function (_super) {
36378
36555
  return this.hasUnknownValue(val, true, false);
36379
36556
  };
36380
36557
  QuestionSelectBase.prototype.updateSelectedItemValues = function () {
36381
- if (this.waitingGetChoiceDisplayValueResponse)
36382
- return;
36383
- var IsMultipleValue = this.getIsMultipleValue();
36384
- if (IsMultipleValue) {
36385
- this.updateMultipleSelectedItemValues();
36386
- }
36387
- else {
36388
- this.updateSingleSelectedItemValues();
36389
- }
36390
- };
36391
- QuestionSelectBase.prototype.updateSingleSelectedItemValues = function () {
36392
36558
  var _this = this;
36393
- if (!!this.survey && !this.isEmpty() && !_itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"].getItemByValue(this.choices, this.value)) {
36559
+ if (this.waitingGetChoiceDisplayValueResponse || !this.survey || this.isEmpty())
36560
+ return;
36561
+ var value = this.value;
36562
+ var valueArray = Array.isArray(value) ? value : [value];
36563
+ var hasItemWithoutValues = valueArray.some(function (val) { return !_itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"].getItemByValue(_this.choices, val); });
36564
+ if (hasItemWithoutValues) {
36394
36565
  this.waitingGetChoiceDisplayValueResponse = true;
36395
36566
  this.isReady = !this.waitingAcyncOperations;
36396
36567
  this.survey.getChoiceDisplayValue({
36397
36568
  question: this,
36398
- values: [this.value],
36569
+ values: valueArray,
36399
36570
  setItems: function (displayValues) {
36571
+ var customValues = [];
36572
+ for (var _i = 1; _i < arguments.length; _i++) {
36573
+ customValues[_i - 1] = arguments[_i];
36574
+ }
36400
36575
  _this.waitingGetChoiceDisplayValueResponse = false;
36401
36576
  if (!displayValues || !displayValues.length)
36402
36577
  return;
36403
- _this.selectedItemValues = _this.createItemValue(_this.value, displayValues[0]);
36578
+ var items = displayValues.map(function (displayValue, index) { return _this.createItemValue(valueArray[index], displayValue); });
36579
+ _this.setCustomValuesIntoItems(items, customValues);
36580
+ if (Array.isArray(value)) {
36581
+ _this.selectedItemValues = items;
36582
+ }
36583
+ else {
36584
+ _this.selectedItemValues = items[0];
36585
+ }
36404
36586
  _this.isReady = !_this.waitingAcyncOperations;
36405
36587
  }
36406
36588
  });
36407
36589
  }
36408
36590
  };
36409
- QuestionSelectBase.prototype.updateMultipleSelectedItemValues = function () {
36410
- var _this = this;
36411
- var valueArray = this.value;
36412
- var hasItemWithValues = valueArray.some(function (val) { return !_itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"].getItemByValue(_this.choices, val); });
36413
- if (!!this.survey && !this.isEmpty() && hasItemWithValues) {
36414
- this.waitingGetChoiceDisplayValueResponse = true;
36415
- this.isReady = this.waitingAcyncOperations;
36416
- this.survey.getChoiceDisplayValue({
36417
- question: this,
36418
- values: valueArray,
36419
- setItems: function (displayValues) {
36420
- _this.waitingGetChoiceDisplayValueResponse = false;
36421
- if (!displayValues || !displayValues.length)
36422
- return;
36423
- _this.selectedItemValues = displayValues.map(function (displayValue, index) { return _this.createItemValue(_this.value[index], displayValue); });
36424
- _this.isReady = !_this.waitingAcyncOperations;
36591
+ QuestionSelectBase.prototype.setCustomValuesIntoItems = function (items, customValues) {
36592
+ if (!Array.isArray(customValues) || customValues.length === 0)
36593
+ return;
36594
+ customValues.forEach(function (customValue) {
36595
+ var vals = customValue.values;
36596
+ var propName = customValue.propertyName;
36597
+ if (Array.isArray(vals)) {
36598
+ for (var i = 0; i < items.length && i < vals.length; i++) {
36599
+ items[i][propName] = vals[i];
36425
36600
  }
36426
- });
36427
- }
36601
+ }
36602
+ });
36428
36603
  };
36429
36604
  QuestionSelectBase.prototype.hasUnknownValue = function (val, includeOther, isFilteredChoices, checkEmptyValue) {
36430
36605
  if (includeOther === void 0) { includeOther = false; }
@@ -38795,10 +38970,21 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
38795
38970
  enumerable: false,
38796
38971
  configurable: true
38797
38972
  });
38973
+ Object.defineProperty(QuestionCheckboxModel.prototype, "hasFilteredValue", {
38974
+ get: function () { return !!this.valuePropertyName; },
38975
+ enumerable: false,
38976
+ configurable: true
38977
+ });
38978
+ QuestionCheckboxModel.prototype.getFilteredValue = function () {
38979
+ if (this.hasFilteredValue)
38980
+ return this.renderedValue;
38981
+ return _super.prototype.getFilteredValue.call(this);
38982
+ };
38798
38983
  QuestionCheckboxModel.prototype.getMultipleSelectedItems = function () {
38799
38984
  return this.selectedChoices;
38800
38985
  };
38801
38986
  QuestionCheckboxModel.prototype.validateItemValues = function (itemValues) {
38987
+ var _this = this;
38802
38988
  if (!!itemValues.length)
38803
38989
  return itemValues;
38804
38990
  var selectedItemValues = this.selectedItemValues;
@@ -38807,8 +38993,9 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
38807
38993
  return selectedItemValues;
38808
38994
  }
38809
38995
  var val = this.renderedValue;
38810
- return val.map(function (item) { return new _itemvalue__WEBPACK_IMPORTED_MODULE_4__["ItemValue"](item); });
38996
+ return val.map(function (item) { return _this.createItemValue(item); });
38811
38997
  };
38998
+ QuestionCheckboxModel.prototype.getAnswerCorrectIgnoreOrder = function () { return true; };
38812
38999
  QuestionCheckboxModel.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
38813
39000
  _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
38814
39001
  if (isOnValueChanged)
@@ -40306,10 +40493,9 @@ __webpack_require__.r(__webpack_exports__);
40306
40493
  /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsonobject */ "./src/jsonobject.ts");
40307
40494
  /* harmony import */ var _questionfactory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./questionfactory */ "./src/questionfactory.ts");
40308
40495
  /* harmony import */ var _question_baseselect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./question_baseselect */ "./src/question_baseselect.ts");
40309
- /* harmony import */ var _itemvalue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./itemvalue */ "./src/itemvalue.ts");
40310
- /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
40311
- /* harmony import */ var _dropdownListModel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dropdownListModel */ "./src/dropdownListModel.ts");
40312
- /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
40496
+ /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
40497
+ /* harmony import */ var _dropdownListModel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dropdownListModel */ "./src/dropdownListModel.ts");
40498
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
40313
40499
  var __extends = (undefined && undefined.__extends) || (function () {
40314
40500
  var extendStatics = function (d, b) {
40315
40501
  extendStatics = Object.setPrototypeOf ||
@@ -40337,7 +40523,6 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
40337
40523
 
40338
40524
 
40339
40525
 
40340
-
40341
40526
  /**
40342
40527
  * A class that describes the Dropdown question type.
40343
40528
  *
@@ -40473,7 +40658,7 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
40473
40658
  (this.choicesMax - this.choicesMin) / this.choicesStep + 1) {
40474
40659
  this.minMaxChoices = [];
40475
40660
  for (var i = this.choicesMin; i <= this.choicesMax; i += this.choicesStep) {
40476
- this.minMaxChoices.push(new _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"](i));
40661
+ this.minMaxChoices.push(this.createItemValue(i));
40477
40662
  }
40478
40663
  }
40479
40664
  res = res.concat(this.minMaxChoices);
@@ -40557,7 +40742,7 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
40557
40742
  configurable: true
40558
40743
  });
40559
40744
  QuestionDropdownModel.prototype.getControlClass = function () {
40560
- return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_4__["CssClassBuilder"]()
40745
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
40561
40746
  .append(this.cssClasses.control)
40562
40747
  .append(this.cssClasses.controlEmpty, this.isEmpty())
40563
40748
  .append(this.cssClasses.onError, this.errors.length > 0)
@@ -40605,7 +40790,7 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
40605
40790
  Object.defineProperty(QuestionDropdownModel.prototype, "dropdownListModel", {
40606
40791
  get: function () {
40607
40792
  if (this.renderAs !== "select" && !this.dropdownListModelValue) {
40608
- this.dropdownListModelValue = new _dropdownListModel__WEBPACK_IMPORTED_MODULE_5__["DropdownListModel"](this);
40793
+ this.dropdownListModelValue = new _dropdownListModel__WEBPACK_IMPORTED_MODULE_4__["DropdownListModel"](this);
40609
40794
  }
40610
40795
  return this.dropdownListModelValue;
40611
40796
  },
@@ -40731,7 +40916,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("dropdown", [
40731
40916
  { name: "choicesMin:number", default: 0 },
40732
40917
  { name: "choicesMax:number", default: 0 },
40733
40918
  { name: "choicesStep:number", default: 1, minValue: 1 },
40734
- { name: "autocomplete", alternativeName: "autoComplete", choices: _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].questions.dataList, },
40919
+ { name: "autocomplete", alternativeName: "autoComplete", choices: _settings__WEBPACK_IMPORTED_MODULE_5__["settings"].questions.dataList, },
40735
40920
  { name: "renderAs", default: "default", visible: false },
40736
40921
  { name: "searchEnabled:boolean", default: true, visible: false },
40737
40922
  { name: "choicesLazyLoadEnabled:boolean", default: false, visible: false },
@@ -41736,16 +41921,47 @@ var QuestionFileModel = /** @class */ (function (_super) {
41736
41921
  enumerable: false,
41737
41922
  configurable: true
41738
41923
  });
41924
+ Object.defineProperty(QuestionFileModel.prototype, "showChooseButton", {
41925
+ get: function () {
41926
+ return !this.showLoadingIndicator;
41927
+ },
41928
+ enumerable: false,
41929
+ configurable: true
41930
+ });
41931
+ Object.defineProperty(QuestionFileModel.prototype, "showLoadingIndicator", {
41932
+ get: function () {
41933
+ return this.isUploading && this.isDefaultV2Theme;
41934
+ },
41935
+ enumerable: false,
41936
+ configurable: true
41937
+ });
41938
+ Object.defineProperty(QuestionFileModel.prototype, "allowShowPreview", {
41939
+ get: function () {
41940
+ return this.previewValue && this.previewValue.length > 0 && !this.showLoadingIndicator;
41941
+ },
41942
+ enumerable: false,
41943
+ configurable: true
41944
+ });
41945
+ Object.defineProperty(QuestionFileModel.prototype, "showRemoveButtonCore", {
41946
+ get: function () {
41947
+ var showLoadingIndicator = this.showLoadingIndicator;
41948
+ var isReadOnly = this.isReadOnly;
41949
+ var isEmpty = this.isEmpty();
41950
+ return !isReadOnly && !isEmpty && !showLoadingIndicator;
41951
+ },
41952
+ enumerable: false,
41953
+ configurable: true
41954
+ });
41739
41955
  Object.defineProperty(QuestionFileModel.prototype, "showRemoveButton", {
41740
41956
  get: function () {
41741
- return !this.isReadOnly && !this.isEmpty() && this.cssClasses.removeButton;
41957
+ return this.showRemoveButtonCore && this.cssClasses.removeButton;
41742
41958
  },
41743
41959
  enumerable: false,
41744
41960
  configurable: true
41745
41961
  });
41746
41962
  Object.defineProperty(QuestionFileModel.prototype, "showRemoveButtonBottom", {
41747
41963
  get: function () {
41748
- return !this.isReadOnly && !this.isEmpty() && this.cssClasses.removeButtonBottom;
41964
+ return this.showRemoveButtonCore && this.cssClasses.removeButtonBottom;
41749
41965
  },
41750
41966
  enumerable: false,
41751
41967
  configurable: true
@@ -42021,6 +42237,9 @@ var QuestionFileModel = /** @class */ (function (_super) {
42021
42237
  var previewIndex = this.previewValue.indexOf(data);
42022
42238
  this.removeFileByContent(previewIndex === -1 ? data : this.value[previewIndex]);
42023
42239
  };
42240
+ __decorate([
42241
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
42242
+ ], QuestionFileModel.prototype, "isUploading", void 0);
42024
42243
  __decorate([
42025
42244
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
42026
42245
  ], QuestionFileModel.prototype, "isDragging", void 0);
@@ -44881,8 +45100,6 @@ var MatrixDropdownRowModelBase = /** @class */ (function () {
44881
45100
  var columns = this.data.columns;
44882
45101
  for (var i = 0; i < columns.length; i++) {
44883
45102
  var column = columns[i];
44884
- if (!column.isVisible)
44885
- continue;
44886
45103
  var cell = this.createCell(column);
44887
45104
  this.cells.push(cell);
44888
45105
  var cellValue = this.getCellValue(value, column.name);
@@ -45521,10 +45738,15 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
45521
45738
  }
45522
45739
  };
45523
45740
  QuestionMatrixDropdownModelBase.prototype.onShowInMultipleColumnsChanged = function (column) {
45524
- this.clearGeneratedRows();
45525
- this.resetRenderedTable();
45741
+ this.resetTableAndRows();
45742
+ };
45743
+ QuestionMatrixDropdownModelBase.prototype.onColumnVisibilityChanged = function (column) {
45744
+ this.resetTableAndRows();
45526
45745
  };
45527
45746
  QuestionMatrixDropdownModelBase.prototype.onColumnCellTypeChanged = function (column) {
45747
+ this.resetTableAndRows();
45748
+ };
45749
+ QuestionMatrixDropdownModelBase.prototype.resetTableAndRows = function () {
45528
45750
  this.clearGeneratedRows();
45529
45751
  this.resetRenderedTable();
45530
45752
  };
@@ -45651,6 +45873,8 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
45651
45873
  this.checkColumnsRenderedRequired();
45652
45874
  };
45653
45875
  QuestionMatrixDropdownModelBase.prototype.checkColumnsVisibility = function () {
45876
+ if (this.isDesignMode)
45877
+ return;
45654
45878
  var hasChanged = false;
45655
45879
  for (var i = 0; i < this.visibleColumns.length; i++) {
45656
45880
  var column = this.visibleColumns[i];
@@ -45679,7 +45903,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
45679
45903
  }
45680
45904
  };
45681
45905
  QuestionMatrixDropdownModelBase.prototype.isColumnVisibilityChanged = function (column) {
45682
- var curVis = column.hasVisibleCell;
45906
+ var curVis = column.isColumnVisible;
45683
45907
  var isMultipleColumnsVisibility = column.isFilteredMultipleColumns;
45684
45908
  var curVisibleChoices = isMultipleColumnsVisibility ? column.getVisibleChoicesInCell : [];
45685
45909
  var newVisibleChoices = new Array();
@@ -45697,15 +45921,13 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
45697
45921
  break;
45698
45922
  }
45699
45923
  }
45700
- if (curVis != hasVisCell) {
45701
- column.hasVisibleCell = hasVisCell;
45702
- }
45924
+ column.hasVisibleCell = hasVisCell;
45703
45925
  if (isMultipleColumnsVisibility) {
45704
45926
  column.setVisibleChoicesInCell(newVisibleChoices);
45705
45927
  if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isArraysEqual(curVisibleChoices, newVisibleChoices, true, false, false))
45706
45928
  return true;
45707
45929
  }
45708
- return curVis != hasVisCell;
45930
+ return curVis != column.isVisible;
45709
45931
  };
45710
45932
  QuestionMatrixDropdownModelBase.prototype.updateNewVisibleChoices = function (q, dest) {
45711
45933
  var choices = q.visibleChoices;
@@ -46681,9 +46903,6 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
46681
46903
  QuestionMatrixDropdownModelBase.prototype.getRootCss = function () {
46682
46904
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_11__["CssClassBuilder"]().append(_super.prototype.getRootCss.call(this)).append(this.cssClasses.rootScroll, this.horizontalScroll).toString();
46683
46905
  };
46684
- QuestionMatrixDropdownModelBase.prototype.getIsTooltipErrorInsideSupported = function () {
46685
- return false;
46686
- };
46687
46906
  return QuestionMatrixDropdownModelBase;
46688
46907
  }(_martixBase__WEBPACK_IMPORTED_MODULE_1__["QuestionMatrixBaseModel"]));
46689
46908
 
@@ -46826,12 +47045,12 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
46826
47045
  var _this = _super.call(this) || this;
46827
47046
  _this.colOwnerValue = null;
46828
47047
  _this.indexValue = -1;
46829
- _this._isVisible = true;
46830
47048
  _this._hasVisibleCell = true;
46831
47049
  _this.previousChoicesId = undefined;
46832
47050
  _this.createLocalizableString("totalFormat", _this);
46833
47051
  _this.createLocalizableString("cellHint", _this);
46834
47052
  _this.registerPropertyChangedHandlers(["showInMultipleColumns"], function () { _this.doShowInMultipleColumnsChanged(); });
47053
+ _this.registerPropertyChangedHandlers(["visible"], function () { _this.doColumnVisibilityChanged(); });
46835
47054
  _this.updateTemplateQuestion();
46836
47055
  _this.name = name;
46837
47056
  if (title) {
@@ -46941,15 +47160,30 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
46941
47160
  configurable: true
46942
47161
  });
46943
47162
  Object.defineProperty(MatrixDropdownColumn.prototype, "isVisible", {
47163
+ //For filtering columns
46944
47164
  get: function () {
46945
- return this._isVisible;
47165
+ return true;
47166
+ },
47167
+ enumerable: false,
47168
+ configurable: true
47169
+ });
47170
+ Object.defineProperty(MatrixDropdownColumn.prototype, "isColumnVisible", {
47171
+ get: function () {
47172
+ if (this.isDesignMode)
47173
+ return true;
47174
+ return this.visible && this.hasVisibleCell;
47175
+ },
47176
+ enumerable: false,
47177
+ configurable: true
47178
+ });
47179
+ Object.defineProperty(MatrixDropdownColumn.prototype, "visible", {
47180
+ get: function () { return this.getPropertyValue("visible"); },
47181
+ set: function (val) {
47182
+ this.setPropertyValue("visible", val);
46946
47183
  },
46947
47184
  enumerable: false,
46948
47185
  configurable: true
46949
47186
  });
46950
- MatrixDropdownColumn.prototype.setIsVisible = function (newVal) {
46951
- this._isVisible = newVal;
46952
- };
46953
47187
  Object.defineProperty(MatrixDropdownColumn.prototype, "hasVisibleCell", {
46954
47188
  get: function () {
46955
47189
  return this._hasVisibleCell;
@@ -47487,13 +47721,18 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
47487
47721
  }
47488
47722
  };
47489
47723
  MatrixDropdownColumn.prototype.doShowInMultipleColumnsChanged = function () {
47490
- if (this.colOwner != null && !this.isLoadingFromJson) {
47724
+ if (this.colOwner != null) {
47491
47725
  this.colOwner.onShowInMultipleColumnsChanged(this);
47492
47726
  }
47493
47727
  if (this.templateQuestion) {
47494
47728
  this.templateQuestion.autoOtherMode = this.isShowInMultipleColumns;
47495
47729
  }
47496
47730
  };
47731
+ MatrixDropdownColumn.prototype.doColumnVisibilityChanged = function () {
47732
+ if (this.colOwner != null && !this.isDesignMode) {
47733
+ this.colOwner.onColumnVisibilityChanged(this);
47734
+ }
47735
+ };
47497
47736
  MatrixDropdownColumn.prototype.getProperties = function (curCellType) {
47498
47737
  return _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].getDynamicPropertiesByObj(this, curCellType);
47499
47738
  };
@@ -47575,6 +47814,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownc
47575
47814
  }
47576
47815
  },
47577
47816
  "width",
47817
+ { name: "visible:switch", default: true, overridingProperty: "visibleIf" },
47578
47818
  "visibleIf:condition",
47579
47819
  "enableIf:condition",
47580
47820
  "requiredIf:condition",
@@ -48178,7 +48418,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
48178
48418
  if (this.matrix.isColumnLayoutHorizontal) {
48179
48419
  for (var i = 0; i < this.matrix.visibleColumns.length; i++) {
48180
48420
  var column = this.matrix.visibleColumns[i];
48181
- if (!column.hasVisibleCell)
48421
+ if (!column.isColumnVisible)
48182
48422
  continue;
48183
48423
  if (this.matrix.IsMultiplyColumn(column)) {
48184
48424
  this.createMutlipleColumnsHeader(column);
@@ -48203,7 +48443,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
48203
48443
  }
48204
48444
  }
48205
48445
  if (this.hasActionCellInRows("end")) {
48206
- this.headerRow.cells.push(this.createHeaderCell(null));
48446
+ this.headerRow.cells.push(this.createHeaderCell(null, "action"));
48207
48447
  }
48208
48448
  };
48209
48449
  QuestionMatrixDropdownRenderedTable.prototype.buildFooter = function () {
@@ -48222,7 +48462,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
48222
48462
  var cells = this.matrix.visibleTotalRow.cells;
48223
48463
  for (var i = 0; i < cells.length; i++) {
48224
48464
  var cell = cells[i];
48225
- if (!cell.column.hasVisibleCell)
48465
+ if (!cell.column.isColumnVisible)
48226
48466
  continue;
48227
48467
  if (this.matrix.IsMultiplyColumn(cell.column)) {
48228
48468
  this.createMutlipleColumnsFooter(this.footerRow, cell);
@@ -48400,14 +48640,14 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
48400
48640
  for (var i = 0; i < row.cells.length; i++) {
48401
48641
  var cell = row.cells[i];
48402
48642
  if (!cell.hasQuestion) {
48403
- res.cells.push(this.createEmptyCell());
48643
+ res.cells.push(this.createEmptyCell(true));
48404
48644
  }
48405
48645
  else if (this.matrix.IsMultiplyColumn(cell.cell.column)) {
48406
48646
  if (cell.isFirstChoice) {
48407
48647
  res.cells.push(this.createErrorCell(cell.cell));
48408
48648
  }
48409
48649
  else {
48410
- res.cells.push(this.createEmptyCell());
48650
+ res.cells.push(this.createEmptyCell(true));
48411
48651
  }
48412
48652
  }
48413
48653
  else {
@@ -48440,7 +48680,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
48440
48680
  }
48441
48681
  for (var i = 0; i < row.cells.length; i++) {
48442
48682
  var cell = row.cells[i];
48443
- if (!cell.column.hasVisibleCell)
48683
+ if (!cell.column.isColumnVisible)
48444
48684
  continue;
48445
48685
  if (this.matrix.IsMultiplyColumn(cell.column)) {
48446
48686
  this.createMutlipleEditCells(res, cell);
@@ -48510,7 +48750,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
48510
48750
  var renderedRows = [];
48511
48751
  for (var i = 0; i < columns.length; i++) {
48512
48752
  var col = columns[i];
48513
- if (col.isVisible && col.hasVisibleCell) {
48753
+ if (col.isColumnVisible) {
48514
48754
  if (this.matrix.IsMultiplyColumn(col)) {
48515
48755
  this.createMutlipleVerticalRows(renderedRows, col, i);
48516
48756
  }
@@ -48725,12 +48965,14 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
48725
48965
  }
48726
48966
  return cell;
48727
48967
  };
48728
- QuestionMatrixDropdownRenderedTable.prototype.createEmptyCell = function () {
48968
+ QuestionMatrixDropdownRenderedTable.prototype.createEmptyCell = function (isError) {
48969
+ if (isError === void 0) { isError = false; }
48729
48970
  var res = this.createTextCell(null);
48730
48971
  res.isEmpty = true;
48731
48972
  res.className = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
48732
48973
  .append(this.cssClasses.cell)
48733
48974
  .append(this.cssClasses.emptyCell)
48975
+ .append(this.cssClasses.errorsCell, isError)
48734
48976
  .toString();
48735
48977
  return res;
48736
48978
  };
@@ -49863,7 +50105,7 @@ _questionfactory__WEBPACK_IMPORTED_MODULE_1__["QuestionFactory"].Instance.regist
49863
50105
  /*!**************************************!*\
49864
50106
  !*** ./src/question_multipletext.ts ***!
49865
50107
  \**************************************/
49866
- /*! exports provided: MultipleTextEditorModel, MultipleTextItemModel, QuestionMultipleTextModel */
50108
+ /*! exports provided: MultipleTextEditorModel, MultipleTextItemModel, QuestionMultipleTextModel, MutlipleTextRow, MutlipleTextErrorRow, MultipleTextCell, MultipleTextErrorCell */
49867
50109
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
49868
50110
 
49869
50111
  "use strict";
@@ -49871,6 +50113,10 @@ __webpack_require__.r(__webpack_exports__);
49871
50113
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MultipleTextEditorModel", function() { return MultipleTextEditorModel; });
49872
50114
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MultipleTextItemModel", function() { return MultipleTextItemModel; });
49873
50115
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QuestionMultipleTextModel", function() { return QuestionMultipleTextModel; });
50116
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MutlipleTextRow", function() { return MutlipleTextRow; });
50117
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MutlipleTextErrorRow", function() { return MutlipleTextErrorRow; });
50118
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MultipleTextCell", function() { return MultipleTextCell; });
50119
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MultipleTextErrorCell", function() { return MultipleTextErrorCell; });
49874
50120
  /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base */ "./src/base.ts");
49875
50121
  /* harmony import */ var _survey_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./survey-element */ "./src/survey-element.ts");
49876
50122
  /* harmony import */ var _question__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./question */ "./src/question.ts");
@@ -49895,6 +50141,12 @@ var __extends = (undefined && undefined.__extends) || (function () {
49895
50141
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
49896
50142
  };
49897
50143
  })();
50144
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50145
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50146
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50147
+ 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;
50148
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
50149
+ };
49898
50150
 
49899
50151
 
49900
50152
 
@@ -49937,6 +50189,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
49937
50189
  if (name === void 0) { name = null; }
49938
50190
  if (title === void 0) { title = null; }
49939
50191
  var _this = _super.call(this) || this;
50192
+ _this.focusIn = function () {
50193
+ _this.editor.focusIn();
50194
+ };
49940
50195
  _this.editorValue = _this.createEditor(name);
49941
50196
  _this.editor.questionTitleTemplateCallback = function () {
49942
50197
  return "";
@@ -50011,9 +50266,6 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
50011
50266
  this.editor.setParentQuestion(data);
50012
50267
  }
50013
50268
  };
50014
- MultipleTextItemModel.prototype.focusIn = function () {
50015
- this.editor.focusIn();
50016
- };
50017
50269
  Object.defineProperty(MultipleTextItemModel.prototype, "isRequired", {
50018
50270
  /**
50019
50271
  * Set this property to true, to make the item a required. If a user doesn't fill the item then a validation error will be generated.
@@ -50278,8 +50530,8 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
50278
50530
  _this.survey.multipleTextItemAdded(_this, item);
50279
50531
  }
50280
50532
  });
50281
- _this.registerPropertyChangedHandlers(["items", "colCount"], function () {
50282
- _this.fireCallback(_this.colCountChangedCallback);
50533
+ _this.registerPropertyChangedHandlers(["items", "colCount", "itemErrorLocation"], function () {
50534
+ _this.calcVisibleRows();
50283
50535
  });
50284
50536
  _this.registerPropertyChangedHandlers(["itemSize"], function () { _this.updateItemsSize(); });
50285
50537
  return _this;
@@ -50330,7 +50582,6 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
50330
50582
  QuestionMultipleTextModel.prototype.onSurveyLoad = function () {
50331
50583
  this.editorsOnSurveyLoad();
50332
50584
  _super.prototype.onSurveyLoad.call(this);
50333
- this.fireCallback(this.colCountChangedCallback);
50334
50585
  };
50335
50586
  QuestionMultipleTextModel.prototype.setQuestionValue = function (newValue, updateIsAnswered) {
50336
50587
  if (updateIsAnswered === void 0) { updateIsAnswered = true; }
@@ -50469,6 +50720,20 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
50469
50720
  return this.itemErrorLocation;
50470
50721
  return this.getErrorLocation();
50471
50722
  };
50723
+ Object.defineProperty(QuestionMultipleTextModel.prototype, "showItemErrorOnTop", {
50724
+ get: function () {
50725
+ return this.getQuestionErrorLocation() == "top";
50726
+ },
50727
+ enumerable: false,
50728
+ configurable: true
50729
+ });
50730
+ Object.defineProperty(QuestionMultipleTextModel.prototype, "showItemErrorOnBottom", {
50731
+ get: function () {
50732
+ return this.getQuestionErrorLocation() == "bottom";
50733
+ },
50734
+ enumerable: false,
50735
+ configurable: true
50736
+ });
50472
50737
  QuestionMultipleTextModel.prototype.getChildErrorLocation = function (child) {
50473
50738
  return this.getQuestionErrorLocation();
50474
50739
  };
@@ -50512,22 +50777,44 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
50512
50777
  enumerable: false,
50513
50778
  configurable: true
50514
50779
  });
50515
- QuestionMultipleTextModel.prototype.getRows = function () {
50780
+ QuestionMultipleTextModel.prototype.onRowCreated = function (row) {
50781
+ return row;
50782
+ };
50783
+ QuestionMultipleTextModel.prototype.calcVisibleRows = function () {
50516
50784
  var colCount = this.colCount;
50517
50785
  var items = this.items;
50518
- var rows = [];
50519
50786
  var index = 0;
50787
+ var row;
50788
+ var errorRow;
50789
+ var rows = [];
50520
50790
  for (var i = 0; i < items.length; i++) {
50521
50791
  if (index == 0) {
50522
- rows.push([]);
50792
+ row = this.onRowCreated(new MutlipleTextRow());
50793
+ errorRow = this.onRowCreated(new MutlipleTextErrorRow());
50794
+ if (this.showItemErrorOnTop) {
50795
+ rows.push(errorRow);
50796
+ rows.push(row);
50797
+ }
50798
+ else {
50799
+ rows.push(row);
50800
+ rows.push(errorRow);
50801
+ }
50523
50802
  }
50524
- rows[rows.length - 1].push(items[i]);
50803
+ row.cells.push(new MultipleTextCell(items[i], this));
50804
+ errorRow.cells.push(new MultipleTextErrorCell(items[i], this));
50525
50805
  index++;
50526
- if (index >= colCount) {
50806
+ if (index >= colCount || i == items.length - 1) {
50527
50807
  index = 0;
50808
+ errorRow.onAfterCreated();
50528
50809
  }
50529
50810
  }
50530
- return rows;
50811
+ this.rows = rows;
50812
+ };
50813
+ QuestionMultipleTextModel.prototype.getRows = function () {
50814
+ if (_helpers__WEBPACK_IMPORTED_MODULE_6__["Helpers"].isValueEmpty(this.rows)) {
50815
+ this.calcVisibleRows();
50816
+ }
50817
+ return this.rows;
50531
50818
  };
50532
50819
  QuestionMultipleTextModel.prototype.onValueChanged = function () {
50533
50820
  _super.prototype.onValueChanged.call(this);
@@ -50705,12 +50992,87 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
50705
50992
  QuestionMultipleTextModel.prototype.getItemTitleCss = function () {
50706
50993
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_7__["CssClassBuilder"]().append(this.cssClasses.itemTitle).toString();
50707
50994
  };
50708
- QuestionMultipleTextModel.prototype.getIsTooltipErrorInsideSupported = function () {
50709
- return true;
50710
- };
50995
+ __decorate([
50996
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_4__["propertyArray"])()
50997
+ ], QuestionMultipleTextModel.prototype, "rows", void 0);
50711
50998
  return QuestionMultipleTextModel;
50712
50999
  }(_question__WEBPACK_IMPORTED_MODULE_2__["Question"]));
50713
51000
 
51001
+ var MutlipleTextRow = /** @class */ (function (_super) {
51002
+ __extends(MutlipleTextRow, _super);
51003
+ function MutlipleTextRow() {
51004
+ var _this = _super !== null && _super.apply(this, arguments) || this;
51005
+ _this.isVisible = true;
51006
+ _this.cells = [];
51007
+ return _this;
51008
+ }
51009
+ __decorate([
51010
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_4__["property"])()
51011
+ ], MutlipleTextRow.prototype, "isVisible", void 0);
51012
+ __decorate([
51013
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_4__["propertyArray"])()
51014
+ ], MutlipleTextRow.prototype, "cells", void 0);
51015
+ return MutlipleTextRow;
51016
+ }(_base__WEBPACK_IMPORTED_MODULE_0__["Base"]));
51017
+
51018
+ var MutlipleTextErrorRow = /** @class */ (function (_super) {
51019
+ __extends(MutlipleTextErrorRow, _super);
51020
+ function MutlipleTextErrorRow() {
51021
+ return _super !== null && _super.apply(this, arguments) || this;
51022
+ }
51023
+ MutlipleTextErrorRow.prototype.onAfterCreated = function () {
51024
+ var _this = this;
51025
+ var callback = function () {
51026
+ _this.isVisible = _this.cells.some(function (cell) { var _a, _b; return ((_a = cell.item) === null || _a === void 0 ? void 0 : _a.editor) && ((_b = cell.item) === null || _b === void 0 ? void 0 : _b.editor.hasVisibleErrors); });
51027
+ };
51028
+ this.cells.forEach(function (cell) {
51029
+ var _a, _b;
51030
+ if ((_a = cell.item) === null || _a === void 0 ? void 0 : _a.editor) {
51031
+ (_b = cell.item) === null || _b === void 0 ? void 0 : _b.editor.registerFunctionOnPropertyValueChanged("hasVisibleErrors", callback);
51032
+ }
51033
+ });
51034
+ callback();
51035
+ };
51036
+ return MutlipleTextErrorRow;
51037
+ }(MutlipleTextRow));
51038
+
51039
+ var MultipleTextCell = /** @class */ (function () {
51040
+ function MultipleTextCell(item, question) {
51041
+ this.item = item;
51042
+ this.question = question;
51043
+ this.isErrorsCell = false;
51044
+ }
51045
+ MultipleTextCell.prototype.getClassName = function () {
51046
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_7__["CssClassBuilder"]().append(this.question.cssClasses.cell).toString();
51047
+ };
51048
+ Object.defineProperty(MultipleTextCell.prototype, "className", {
51049
+ get: function () {
51050
+ return this.getClassName();
51051
+ },
51052
+ enumerable: false,
51053
+ configurable: true
51054
+ });
51055
+ return MultipleTextCell;
51056
+ }());
51057
+
51058
+ var MultipleTextErrorCell = /** @class */ (function (_super) {
51059
+ __extends(MultipleTextErrorCell, _super);
51060
+ function MultipleTextErrorCell() {
51061
+ var _this = _super !== null && _super.apply(this, arguments) || this;
51062
+ _this.isErrorsCell = true;
51063
+ return _this;
51064
+ }
51065
+ MultipleTextErrorCell.prototype.getClassName = function () {
51066
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_7__["CssClassBuilder"]()
51067
+ .append(_super.prototype.getClassName.call(this))
51068
+ .append(this.question.cssClasses.cellError)
51069
+ .append(this.question.cssClasses.cellErrorTop, this.question.showItemErrorOnTop)
51070
+ .append(this.question.cssClasses.cellErrorBottom, this.question.showItemErrorOnBottom)
51071
+ .toString();
51072
+ };
51073
+ return MultipleTextErrorCell;
51074
+ }(MultipleTextCell));
51075
+
50714
51076
  _jsonobject__WEBPACK_IMPORTED_MODULE_4__["Serializer"].addClass("multipletextitem", [
50715
51077
  { name: "!name", isUnique: true },
50716
51078
  "isRequired:boolean",
@@ -52562,6 +52924,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
52562
52924
  if (!!this.parentQuestion && !!this.parent) {
52563
52925
  cachedValues[QuestionPanelDynamicItem.ParentItemVariableName] = this.parent.getValue();
52564
52926
  }
52927
+ this.isValueChangingInternally = true;
52565
52928
  for (var i = 0; i < this.panels.length; i++) {
52566
52929
  var panel = this.panels[i];
52567
52930
  var panelValues = this.getPanelItemData(panel.data);
@@ -52574,6 +52937,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
52574
52937
  newProps[panelName] = panel;
52575
52938
  panel.runCondition(newValues, newProps);
52576
52939
  }
52940
+ this.isValueChangingInternally = false;
52577
52941
  };
52578
52942
  QuestionPanelDynamicModel.prototype.onAnyValueChanged = function (name) {
52579
52943
  _super.prototype.onAnyValueChanged.call(this, name);
@@ -53218,11 +53582,22 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
53218
53582
  this.updateFooterActionsCallback();
53219
53583
  this.footerToolbarValue.setItems(items);
53220
53584
  };
53221
- QuestionPanelDynamicModel.prototype.createTabByPanel = function (panel) {
53585
+ QuestionPanelDynamicModel.prototype.createTabByPanel = function (panel, visPanelIndex) {
53222
53586
  var _this = this;
53223
53587
  if (!this.isRenderModeTab)
53224
53588
  return;
53225
53589
  var locTitle = new _localizablestring__WEBPACK_IMPORTED_MODULE_2__["LocalizableString"](panel, true);
53590
+ locTitle.onGetTextCallback = function (str) {
53591
+ if (!_this.survey)
53592
+ return str;
53593
+ var options = {
53594
+ title: str,
53595
+ panel: panel,
53596
+ visiblePanelIndex: visPanelIndex
53597
+ };
53598
+ _this.survey.dynamicPanelGetTabTitle(_this, options);
53599
+ return options.title;
53600
+ };
53226
53601
  locTitle.sharedData = this.locTemplateTabTitle;
53227
53602
  var isActive = this.getPanelIndexById(panel.id) === this.currentIndex;
53228
53603
  var newItem = new _actions_action__WEBPACK_IMPORTED_MODULE_11__["Action"]({
@@ -53266,13 +53641,20 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
53266
53641
  if (!this.isRenderModeTab)
53267
53642
  return;
53268
53643
  var items = [];
53269
- this.visiblePanels.forEach(function (panel) { return items.push(_this.createTabByPanel(panel)); });
53644
+ var visPanels = this.visiblePanels;
53645
+ var _loop_1 = function (i) {
53646
+ this_1.visiblePanels.forEach(function (panel) { return items.push(_this.createTabByPanel(visPanels[i], i)); });
53647
+ };
53648
+ var this_1 = this;
53649
+ for (var i = 0; i < visPanels.length; i++) {
53650
+ _loop_1(i);
53651
+ }
53270
53652
  this.additionalTitleToolbar.setItems(items);
53271
53653
  };
53272
53654
  QuestionPanelDynamicModel.prototype.addTabFromToolbar = function (panel, index) {
53273
53655
  if (!this.isRenderModeTab)
53274
53656
  return;
53275
- var newItem = this.createTabByPanel(panel);
53657
+ var newItem = this.createTabByPanel(panel, index);
53276
53658
  this.additionalTitleToolbar.actions.splice(index, 0, newItem);
53277
53659
  this.updateTabToolbarItemsPressedState();
53278
53660
  };
@@ -53659,7 +54041,9 @@ var QuestionRankingModel = /** @class */ (function (_super) {
53659
54041
  var target = event.target;
53660
54042
  if (!_this.isDragStartNodeValid(target))
53661
54043
  return;
53662
- if (_this.allowStartDrag && _this.canStartDragDueMaxSelectedChoices(target)) {
54044
+ if (_this.allowStartDrag &&
54045
+ _this.canStartDragDueMaxSelectedChoices(target) &&
54046
+ _this.canStartDragDueItemEnabled(choice)) {
53663
54047
  _this.dragDropRankingChoices.startDrag(event, choice, _this, node);
53664
54048
  }
53665
54049
  };
@@ -53732,7 +54116,9 @@ var QuestionRankingModel = /** @class */ (function (_super) {
53732
54116
  return "ranking";
53733
54117
  };
53734
54118
  QuestionRankingModel.prototype.getItemTabIndex = function (item) {
53735
- return this.isDesignMode ? undefined : 0;
54119
+ if (this.isDesignMode || item.disabled)
54120
+ return undefined;
54121
+ return 0;
53736
54122
  };
53737
54123
  Object.defineProperty(QuestionRankingModel.prototype, "rootClass", {
53738
54124
  get: function () {
@@ -53947,6 +54333,9 @@ var QuestionRankingModel = /** @class */ (function (_super) {
53947
54333
  }
53948
54334
  return true;
53949
54335
  };
54336
+ QuestionRankingModel.prototype.canStartDragDueItemEnabled = function (item) {
54337
+ return item.enabled;
54338
+ };
53950
54339
  QuestionRankingModel.prototype.checkMaxSelectedChoicesUnreached = function () {
53951
54340
  if (this.maxSelectedChoices < 1)
53952
54341
  return true;
@@ -55724,18 +56113,24 @@ var QuestionTagboxModel = /** @class */ (function (_super) {
55724
56113
  _this.onOpened = _this.addEvent();
55725
56114
  _this.createLocalizableString("placeholder", _this, false, true);
55726
56115
  _this.createLocalizableString("clearCaption", _this, false, true);
56116
+ _this.registerPropertyChangedHandlers(["value", "renderAs", "showOtherItem", "otherText", "placeholder", "choices", "visibleChoices"], function () {
56117
+ _this.updateReadOnlyText();
56118
+ });
56119
+ _this.updateReadOnlyText();
55727
56120
  return _this;
55728
56121
  }
56122
+ QuestionTagboxModel.prototype.locStrsChanged = function () {
56123
+ var _a;
56124
+ _super.prototype.locStrsChanged.call(this);
56125
+ this.updateReadOnlyText();
56126
+ (_a = this.dropdownListModel) === null || _a === void 0 ? void 0 : _a.locStrsChanged();
56127
+ };
56128
+ QuestionTagboxModel.prototype.updateReadOnlyText = function () {
56129
+ this.readOnlyText = this.displayValue || this.placeholder;
56130
+ };
55729
56131
  QuestionTagboxModel.prototype.getDefaultItemComponent = function () {
55730
56132
  return "";
55731
56133
  };
55732
- Object.defineProperty(QuestionTagboxModel.prototype, "readOnlyText", {
55733
- get: function () {
55734
- return this.displayValue || this.placeholder;
55735
- },
55736
- enumerable: false,
55737
- configurable: true
55738
- });
55739
56134
  QuestionTagboxModel.prototype.onSurveyLoad = function () {
55740
56135
  _super.prototype.onSurveyLoad.call(this);
55741
56136
  if (!this.dropdownListModel) {
@@ -55888,6 +56283,9 @@ var QuestionTagboxModel = /** @class */ (function (_super) {
55888
56283
  _super.prototype.clearValue.call(this);
55889
56284
  this.dropdownListModel.clear();
55890
56285
  };
56286
+ __decorate([
56287
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: "" })
56288
+ ], QuestionTagboxModel.prototype, "readOnlyText", void 0);
55891
56289
  __decorate([
55892
56290
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
55893
56291
  ], QuestionTagboxModel.prototype, "allowClear", void 0);
@@ -57993,11 +58391,11 @@ var ComponentsContainer = /** @class */ (function (_super) {
57993
58391
  }
57994
58392
  if (!needRenderWrapper) {
57995
58393
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, components.map(function (component) {
57996
- return _element_factory__WEBPACK_IMPORTED_MODULE_1__["ReactElementFactory"].Instance.createElement(component.component, { survey: _this.props.survey, model: component.data, key: component.id });
58394
+ return _element_factory__WEBPACK_IMPORTED_MODULE_1__["ReactElementFactory"].Instance.createElement(component.component, { survey: _this.props.survey, model: component.data, container: _this.props.container, key: component.id });
57997
58395
  }));
57998
58396
  }
57999
58397
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: "sv-components-column" }, components.map(function (component) {
58000
- return _element_factory__WEBPACK_IMPORTED_MODULE_1__["ReactElementFactory"].Instance.createElement(component.component, { survey: _this.props.survey, model: component.data, key: component.id });
58398
+ return _element_factory__WEBPACK_IMPORTED_MODULE_1__["ReactElementFactory"].Instance.createElement(component.component, { survey: _this.props.survey, model: component.data, container: _this.props.container, key: component.id });
58001
58399
  }));
58002
58400
  };
58003
58401
  return ComponentsContainer;
@@ -58195,6 +58593,12 @@ var List = /** @class */ (function (_super) {
58195
58593
  this.model.initListContainerHtmlElement(this.listContainerRef.current);
58196
58594
  }
58197
58595
  };
58596
+ List.prototype.componentWillUnmount = function () {
58597
+ _super.prototype.componentWillUnmount.call(this);
58598
+ if (!!this.model) {
58599
+ this.model.initListContainerHtmlElement(undefined);
58600
+ }
58601
+ };
58198
58602
  List.prototype.renderElement = function () {
58199
58603
  return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: this.model.cssClasses.root, ref: this.listContainerRef },
58200
58604
  this.searchElementContent(),
@@ -58260,6 +58664,52 @@ _element_factory__WEBPACK_IMPORTED_MODULE_2__["ReactElementFactory"].Instance.re
58260
58664
  });
58261
58665
 
58262
58666
 
58667
+ /***/ }),
58668
+
58669
+ /***/ "./src/react/components/loading-indicator.tsx":
58670
+ /*!****************************************************!*\
58671
+ !*** ./src/react/components/loading-indicator.tsx ***!
58672
+ \****************************************************/
58673
+ /*! exports provided: LoadingIndicatorComponent */
58674
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
58675
+
58676
+ "use strict";
58677
+ __webpack_require__.r(__webpack_exports__);
58678
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoadingIndicatorComponent", function() { return LoadingIndicatorComponent; });
58679
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
58680
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
58681
+ /* harmony import */ var _svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./svg-icon/svg-icon */ "./src/react/components/svg-icon/svg-icon.tsx");
58682
+ var __extends = (undefined && undefined.__extends) || (function () {
58683
+ var extendStatics = function (d, b) {
58684
+ extendStatics = Object.setPrototypeOf ||
58685
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
58686
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
58687
+ return extendStatics(d, b);
58688
+ };
58689
+ return function (d, b) {
58690
+ if (typeof b !== "function" && b !== null)
58691
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
58692
+ extendStatics(d, b);
58693
+ function __() { this.constructor = d; }
58694
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
58695
+ };
58696
+ })();
58697
+
58698
+
58699
+ var LoadingIndicatorComponent = /** @class */ (function (_super) {
58700
+ __extends(LoadingIndicatorComponent, _super);
58701
+ function LoadingIndicatorComponent() {
58702
+ return _super !== null && _super.apply(this, arguments) || this;
58703
+ }
58704
+ LoadingIndicatorComponent.prototype.render = function () {
58705
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: "sd-loading-indicator" },
58706
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_1__["SvgIcon"], { iconName: "icon-loading", size: "auto" })));
58707
+ };
58708
+ return LoadingIndicatorComponent;
58709
+ }(react__WEBPACK_IMPORTED_MODULE_0__["Component"]));
58710
+
58711
+
58712
+
58263
58713
  /***/ }),
58264
58714
 
58265
58715
  /***/ "./src/react/components/matrix-actions/detail-button/detail-button.tsx":
@@ -59000,6 +59450,10 @@ var Popup = /** @class */ (function (_super) {
59000
59450
  _super.prototype.componentDidUpdate.call(this, prevProps, prevState);
59001
59451
  this.setTargetElement();
59002
59452
  };
59453
+ Popup.prototype.componentWillUnmount = function () {
59454
+ _super.prototype.componentWillUnmount.call(this);
59455
+ this.popup.resetComponentElement();
59456
+ };
59003
59457
  Popup.prototype.shouldComponentUpdate = function (nextProps, nextState) {
59004
59458
  var _a;
59005
59459
  if (!_super.prototype.shouldComponentUpdate.call(this, nextProps, nextState))
@@ -61560,6 +62014,8 @@ var Survey = /** @class */ (function (_super) {
61560
62014
  };
61561
62015
  Survey.prototype.destroySurvey = function () {
61562
62016
  if (this.survey) {
62017
+ this.survey.renderCallback = undefined;
62018
+ this.survey.onPartialSend.clear();
61563
62019
  this.survey.stopTimer();
61564
62020
  this.survey.destroyResizeObserver();
61565
62021
  }
@@ -61582,6 +62038,9 @@ var Survey = /** @class */ (function (_super) {
61582
62038
  else if (this.survey.state == "loading") {
61583
62039
  renderResult = this.renderLoading();
61584
62040
  }
62041
+ else if (this.survey.state == "empty") {
62042
+ renderResult = this.renderEmptySurvey();
62043
+ }
61585
62044
  else {
61586
62045
  renderResult = this.renderSurvey();
61587
62046
  }
@@ -61630,11 +62089,11 @@ var Survey = /** @class */ (function (_super) {
61630
62089
  };
61631
62090
  Survey.prototype.renderCompletedBefore = function () {
61632
62091
  var htmlValue = { __html: this.survey.processedCompletedBeforeHtml };
61633
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { dangerouslySetInnerHTML: htmlValue, className: this.css.body }));
62092
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { dangerouslySetInnerHTML: htmlValue, className: this.survey.completedBeforeCss }));
61634
62093
  };
61635
62094
  Survey.prototype.renderLoading = function () {
61636
62095
  var htmlValue = { __html: this.survey.processedLoadingHtml };
61637
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { dangerouslySetInnerHTML: htmlValue, className: this.css.body }));
62096
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { dangerouslySetInnerHTML: htmlValue, className: this.survey.loadingBodyCss }));
61638
62097
  };
61639
62098
  Survey.prototype.renderSurvey = function () {
61640
62099
  var activePage = this.survey.activePage
@@ -61643,10 +62102,6 @@ var Survey = /** @class */ (function (_super) {
61643
62102
  var isStaring = this.survey.isShowStartingPage;
61644
62103
  var pageId = this.survey.activePage ? this.survey.activePage.id : "";
61645
62104
  var className = this.survey.bodyCss;
61646
- if (!activePage) {
61647
- className = this.css.bodyEmpty;
61648
- activePage = this.renderEmptySurvey();
61649
- }
61650
62105
  var style = {};
61651
62106
  if (!!this.survey.renderedWidth) {
61652
62107
  style.maxWidth = this.survey.renderedWidth;
@@ -61663,7 +62118,7 @@ var Survey = /** @class */ (function (_super) {
61663
62118
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_page__WEBPACK_IMPORTED_MODULE_2__["SurveyPage"], { survey: this.survey, page: page, css: this.css, creator: this }));
61664
62119
  };
61665
62120
  Survey.prototype.renderEmptySurvey = function () {
61666
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", null, this.survey.emptySurveyText);
62121
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.bodyEmpty }, this.survey.emptySurveyText);
61667
62122
  };
61668
62123
  Survey.prototype.createSurvey = function (newProps) {
61669
62124
  if (!newProps)
@@ -61920,7 +62375,7 @@ var SurveyProgress = /** @class */ (function (_super) {
61920
62375
  var progressStyle = {
61921
62376
  width: this.progress + "%",
61922
62377
  };
61923
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.survey.getProgressCssClasses() },
62378
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.survey.getProgressCssClasses(this.props.container) },
61924
62379
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { style: progressStyle, className: this.css.progressBar, role: "progressbar", "aria-valuemin": 0, "aria-valuemax": 100 },
61925
62380
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: survey_core__WEBPACK_IMPORTED_MODULE_1__["SurveyProgressModel"].getProgressTextInBarCss(this.css) }, this.progressText)),
61926
62381
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: survey_core__WEBPACK_IMPORTED_MODULE_1__["SurveyProgressModel"].getProgressTextUnderBarCss(this.css) }, this.progressText)));
@@ -62129,7 +62584,7 @@ _element_factory__WEBPACK_IMPORTED_MODULE_3__["ReactElementFactory"].Instance.re
62129
62584
  /*!*************************************!*\
62130
62585
  !*** ./src/react/reactquestion.tsx ***!
62131
62586
  \*************************************/
62132
- /*! exports provided: SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsWrapped, SurveyQuestionAndErrorsCell */
62587
+ /*! exports provided: SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsWrapped, SurveyQuestionAndErrorsCell, SurveyQuestionErrorCell */
62133
62588
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
62134
62589
 
62135
62590
  "use strict";
@@ -62138,15 +62593,15 @@ __webpack_require__.r(__webpack_exports__);
62138
62593
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyElementErrors", function() { return SurveyElementErrors; });
62139
62594
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionAndErrorsWrapped", function() { return SurveyQuestionAndErrorsWrapped; });
62140
62595
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionAndErrorsCell", function() { return SurveyQuestionAndErrorsCell; });
62596
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionErrorCell", function() { return SurveyQuestionErrorCell; });
62141
62597
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
62142
62598
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
62143
- /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-core */ "./src/entries/core.ts");
62144
- /* harmony import */ var _reactsurveymodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reactsurveymodel */ "./src/react/reactsurveymodel.tsx");
62145
- /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./element-factory */ "./src/react/element-factory.tsx");
62146
- /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reactquestion_element */ "./src/react/reactquestion_element.tsx");
62147
- /* harmony import */ var _reactquestion_comment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./reactquestion_comment */ "./src/react/reactquestion_comment.tsx");
62148
- /* harmony import */ var _custom_widget__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./custom-widget */ "./src/react/custom-widget.tsx");
62149
- /* harmony import */ var _element_header__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./element-header */ "./src/react/element-header.tsx");
62599
+ /* harmony import */ var _reactsurveymodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reactsurveymodel */ "./src/react/reactsurveymodel.tsx");
62600
+ /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./element-factory */ "./src/react/element-factory.tsx");
62601
+ /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reactquestion_element */ "./src/react/reactquestion_element.tsx");
62602
+ /* harmony import */ var _reactquestion_comment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reactquestion_comment */ "./src/react/reactquestion_comment.tsx");
62603
+ /* harmony import */ var _custom_widget__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./custom-widget */ "./src/react/custom-widget.tsx");
62604
+ /* harmony import */ var _element_header__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./element-header */ "./src/react/element-header.tsx");
62150
62605
  var __extends = (undefined && undefined.__extends) || (function () {
62151
62606
  var extendStatics = function (d, b) {
62152
62607
  extendStatics = Object.setPrototypeOf ||
@@ -62169,7 +62624,6 @@ var __extends = (undefined && undefined.__extends) || (function () {
62169
62624
 
62170
62625
 
62171
62626
 
62172
-
62173
62627
  var SurveyQuestion = /** @class */ (function (_super) {
62174
62628
  __extends(SurveyQuestion, _super);
62175
62629
  function SurveyQuestion(props) {
@@ -62185,7 +62639,7 @@ var SurveyQuestion = /** @class */ (function (_super) {
62185
62639
  if (!customWidget) {
62186
62640
  return creator.createQuestionElement(question);
62187
62641
  }
62188
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_custom_widget__WEBPACK_IMPORTED_MODULE_6__["SurveyCustomWidget"], { creator: creator, question: question });
62642
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_custom_widget__WEBPACK_IMPORTED_MODULE_5__["SurveyCustomWidget"], { creator: creator, question: question });
62189
62643
  };
62190
62644
  SurveyQuestion.prototype.getStateElement = function () {
62191
62645
  return this.question;
@@ -62263,9 +62717,6 @@ var SurveyQuestion = /** @class */ (function (_super) {
62263
62717
  ? this.renderErrors(cssClasses, "bottom")
62264
62718
  : null;
62265
62719
  var comment = question && question.hasComment ? this.renderComment(cssClasses) : null;
62266
- var errorsTooltip = this.question.isErrorsModeTooltip
62267
- ? this.renderErrors(cssClasses, "tooltip")
62268
- : null;
62269
62720
  var descriptionUnderInput = question.hasDescriptionUnderInput
62270
62721
  ? this.renderDescription()
62271
62722
  : null;
@@ -62274,7 +62725,6 @@ var SurveyQuestion = /** @class */ (function (_super) {
62274
62725
  questionRender,
62275
62726
  comment,
62276
62727
  errorsBottom,
62277
- errorsTooltip,
62278
62728
  descriptionUnderInput));
62279
62729
  };
62280
62730
  SurveyQuestion.prototype.renderElement = function () {
@@ -62303,7 +62753,7 @@ var SurveyQuestion = /** @class */ (function (_super) {
62303
62753
  var survey = this.question.survey;
62304
62754
  var wrapper = null;
62305
62755
  if (survey) {
62306
- wrapper = _reactsurveymodel__WEBPACK_IMPORTED_MODULE_2__["ReactSurveyElementsWrapper"].wrapElement(survey, element, this.question);
62756
+ wrapper = _reactsurveymodel__WEBPACK_IMPORTED_MODULE_1__["ReactSurveyElementsWrapper"].wrapElement(survey, element, this.question);
62307
62757
  }
62308
62758
  return wrapper !== null && wrapper !== void 0 ? wrapper : element;
62309
62759
  };
@@ -62311,7 +62761,7 @@ var SurveyQuestion = /** @class */ (function (_super) {
62311
62761
  var survey = this.question.survey;
62312
62762
  var wrapper = null;
62313
62763
  if (survey) {
62314
- wrapper = _reactsurveymodel__WEBPACK_IMPORTED_MODULE_2__["ReactSurveyElementsWrapper"].wrapQuestionContent(survey, element, this.question);
62764
+ wrapper = _reactsurveymodel__WEBPACK_IMPORTED_MODULE_1__["ReactSurveyElementsWrapper"].wrapQuestionContent(survey, element, this.question);
62315
62765
  }
62316
62766
  return wrapper !== null && wrapper !== void 0 ? wrapper : element;
62317
62767
  };
@@ -62319,24 +62769,24 @@ var SurveyQuestion = /** @class */ (function (_super) {
62319
62769
  return SurveyQuestion.renderQuestionBody(this.creator, this.question);
62320
62770
  };
62321
62771
  SurveyQuestion.prototype.renderDescription = function () {
62322
- return _reactquestion_element__WEBPACK_IMPORTED_MODULE_4__["SurveyElementBase"].renderQuestionDescription(this.question);
62772
+ return _reactquestion_element__WEBPACK_IMPORTED_MODULE_3__["SurveyElementBase"].renderQuestionDescription(this.question);
62323
62773
  };
62324
62774
  SurveyQuestion.prototype.renderComment = function (cssClasses) {
62325
- var commentText = _reactquestion_element__WEBPACK_IMPORTED_MODULE_4__["SurveyElementBase"].renderLocString(this.question.locCommentText);
62775
+ var commentText = _reactquestion_element__WEBPACK_IMPORTED_MODULE_3__["SurveyElementBase"].renderLocString(this.question.locCommentText);
62326
62776
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.getCommentAreaCss() },
62327
62777
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", null, commentText),
62328
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_reactquestion_comment__WEBPACK_IMPORTED_MODULE_5__["SurveyQuestionCommentItem"], { question: this.question, cssClasses: cssClasses, otherCss: cssClasses.other, isDisplayMode: this.question.isInputReadOnly })));
62778
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_reactquestion_comment__WEBPACK_IMPORTED_MODULE_4__["SurveyQuestionCommentItem"], { question: this.question, cssClasses: cssClasses, otherCss: cssClasses.other, isDisplayMode: this.question.isInputReadOnly })));
62329
62779
  };
62330
62780
  SurveyQuestion.prototype.renderHeader = function (question) {
62331
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_element_header__WEBPACK_IMPORTED_MODULE_7__["SurveyElementHeader"], { element: question });
62781
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_element_header__WEBPACK_IMPORTED_MODULE_6__["SurveyElementHeader"], { element: question });
62332
62782
  };
62333
62783
  SurveyQuestion.prototype.renderErrors = function (cssClasses, location) {
62334
62784
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyElementErrors, { element: this.question, cssClasses: cssClasses, creator: this.creator, location: location, id: this.question.id + "_errors" }));
62335
62785
  };
62336
62786
  return SurveyQuestion;
62337
- }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_4__["SurveyElementBase"]));
62787
+ }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_3__["SurveyElementBase"]));
62338
62788
 
62339
- _element_factory__WEBPACK_IMPORTED_MODULE_3__["ReactElementFactory"].Instance.registerElement("question", function (props) {
62789
+ _element_factory__WEBPACK_IMPORTED_MODULE_2__["ReactElementFactory"].Instance.registerElement("question", function (props) {
62340
62790
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyQuestion, props);
62341
62791
  });
62342
62792
  var SurveyElementErrors = /** @class */ (function (_super) {
@@ -62344,7 +62794,6 @@ var SurveyElementErrors = /** @class */ (function (_super) {
62344
62794
  function SurveyElementErrors(props) {
62345
62795
  var _this = _super.call(this, props) || this;
62346
62796
  _this.state = _this.getState();
62347
- _this.tooltipRef = react__WEBPACK_IMPORTED_MODULE_0__["createRef"]();
62348
62797
  return _this;
62349
62798
  }
62350
62799
  Object.defineProperty(SurveyElementErrors.prototype, "id", {
@@ -62382,26 +62831,7 @@ var SurveyElementErrors = /** @class */ (function (_super) {
62382
62831
  SurveyElementErrors.prototype.canRender = function () {
62383
62832
  return !!this.element && this.element.hasVisibleErrors;
62384
62833
  };
62385
- SurveyElementErrors.prototype.componentDidUpdate = function (prevProps, prevState) {
62386
- _super.prototype.componentDidUpdate.call(this, prevProps, prevState);
62387
- if (this.props.location == "tooltip") {
62388
- if (this.tooltipRef.current && !this.tooltipManager) {
62389
- this.tooltipManager = new survey_core__WEBPACK_IMPORTED_MODULE_1__["TooltipManager"](this.tooltipRef.current);
62390
- }
62391
- if (!!this.tooltipManager && !this.tooltipRef.current) {
62392
- this.disposeTooltipManager();
62393
- }
62394
- }
62395
- };
62396
62834
  SurveyElementErrors.prototype.componentWillUnmount = function () {
62397
- if (!!this.tooltipManager) {
62398
- this.disposeTooltipManager();
62399
- }
62400
- };
62401
- SurveyElementErrors.prototype.disposeTooltipManager = function () {
62402
- var _a;
62403
- (_a = this.tooltipManager) === null || _a === void 0 ? void 0 : _a.dispose();
62404
- this.tooltipManager = undefined;
62405
62835
  };
62406
62836
  SurveyElementErrors.prototype.renderElement = function () {
62407
62837
  var errors = [];
@@ -62409,10 +62839,10 @@ var SurveyElementErrors = /** @class */ (function (_super) {
62409
62839
  var key = "error" + i;
62410
62840
  errors.push(this.creator.renderError(key, this.element.errors[i], this.cssClasses));
62411
62841
  }
62412
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { role: "alert", "aria-live": "polite", className: this.element.cssError, id: this.id, ref: this.tooltipRef }, errors));
62842
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { role: "alert", "aria-live": "polite", className: this.element.cssError, id: this.id }, errors));
62413
62843
  };
62414
62844
  return SurveyElementErrors;
62415
- }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_4__["ReactSurveyElement"]));
62845
+ }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_3__["ReactSurveyElement"]));
62416
62846
 
62417
62847
  var SurveyQuestionAndErrorsWrapped = /** @class */ (function (_super) {
62418
62848
  __extends(SurveyQuestionAndErrorsWrapped, _super);
@@ -62458,23 +62888,9 @@ var SurveyQuestionAndErrorsWrapped = /** @class */ (function (_super) {
62458
62888
  SurveyQuestionAndErrorsWrapped.prototype.canRender = function () {
62459
62889
  return !!this.question;
62460
62890
  };
62461
- SurveyQuestionAndErrorsWrapped.prototype.renderErrors = function (errorsLocation) {
62462
- return this.getShowErrors() ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyElementErrors, { element: this.question, cssClasses: this.cssClasses, creator: this.creator, location: errorsLocation })) : null;
62463
- };
62464
62891
  SurveyQuestionAndErrorsWrapped.prototype.renderContent = function () {
62465
- var errorsLocation = this.creator.questionErrorLocation();
62466
- var errors = this.renderErrors(errorsLocation);
62467
- var errorsTop = this.question.showErrorOnTop
62468
- ? errors
62469
- : null;
62470
- var errorsBottom = this.question.showErrorOnBottom
62471
- ? errors
62472
- : null;
62473
62892
  var renderedQuestion = this.renderQuestion();
62474
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
62475
- errorsTop,
62476
- renderedQuestion,
62477
- errorsBottom));
62893
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, renderedQuestion));
62478
62894
  };
62479
62895
  SurveyQuestionAndErrorsWrapped.prototype.getShowErrors = function () {
62480
62896
  return this.question.isVisible;
@@ -62483,7 +62899,7 @@ var SurveyQuestionAndErrorsWrapped = /** @class */ (function (_super) {
62483
62899
  return SurveyQuestion.renderQuestionBody(this.creator, this.question);
62484
62900
  };
62485
62901
  return SurveyQuestionAndErrorsWrapped;
62486
- }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_4__["ReactSurveyElement"]));
62902
+ }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_3__["ReactSurveyElement"]));
62487
62903
 
62488
62904
  var SurveyQuestionAndErrorsCell = /** @class */ (function (_super) {
62489
62905
  __extends(SurveyQuestionAndErrorsCell, _super);
@@ -62520,13 +62936,63 @@ var SurveyQuestionAndErrorsCell = /** @class */ (function (_super) {
62520
62936
  var survey = this.question.survey;
62521
62937
  var wrapper = null;
62522
62938
  if (survey) {
62523
- wrapper = _reactsurveymodel__WEBPACK_IMPORTED_MODULE_2__["ReactSurveyElementsWrapper"].wrapMatrixCell(survey, element, cell, this.props.reason);
62939
+ wrapper = _reactsurveymodel__WEBPACK_IMPORTED_MODULE_1__["ReactSurveyElementsWrapper"].wrapMatrixCell(survey, element, cell, this.props.reason);
62524
62940
  }
62525
62941
  return wrapper !== null && wrapper !== void 0 ? wrapper : element;
62526
62942
  };
62527
62943
  return SurveyQuestionAndErrorsCell;
62528
62944
  }(SurveyQuestionAndErrorsWrapped));
62529
62945
 
62946
+ var SurveyQuestionErrorCell = /** @class */ (function (_super) {
62947
+ __extends(SurveyQuestionErrorCell, _super);
62948
+ function SurveyQuestionErrorCell(props) {
62949
+ var _this = _super.call(this, props) || this;
62950
+ _this.state = {
62951
+ changed: 0
62952
+ };
62953
+ if (_this.question) {
62954
+ _this.registerCallback(_this.question);
62955
+ }
62956
+ return _this;
62957
+ }
62958
+ Object.defineProperty(SurveyQuestionErrorCell.prototype, "question", {
62959
+ get: function () {
62960
+ return this.props.question;
62961
+ },
62962
+ enumerable: false,
62963
+ configurable: true
62964
+ });
62965
+ SurveyQuestionErrorCell.prototype.update = function () {
62966
+ this.setState({ changed: this.state.changed + 1 });
62967
+ };
62968
+ SurveyQuestionErrorCell.prototype.registerCallback = function (question) {
62969
+ var _this = this;
62970
+ question.registerFunctionOnPropertyValueChanged("errors", function () {
62971
+ _this.update();
62972
+ }, "__reactSubscription");
62973
+ };
62974
+ SurveyQuestionErrorCell.prototype.unRegisterCallback = function (question) {
62975
+ question.unRegisterFunctionOnPropertyValueChanged("errors", "__reactSubscription");
62976
+ };
62977
+ SurveyQuestionErrorCell.prototype.componentDidUpdate = function (prevProps) {
62978
+ if (prevProps.question && prevProps.question !== this.question) {
62979
+ this.unRegisterCallback(prevProps.cell);
62980
+ }
62981
+ if (this.question) {
62982
+ this.registerCallback(this.question);
62983
+ }
62984
+ };
62985
+ SurveyQuestionErrorCell.prototype.componentWillUnmount = function () {
62986
+ if (this.question) {
62987
+ this.unRegisterCallback(this.question);
62988
+ }
62989
+ };
62990
+ SurveyQuestionErrorCell.prototype.render = function () {
62991
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyElementErrors, { element: this.question, creator: this.props.creator, cssClasses: this.question.cssClasses });
62992
+ };
62993
+ return SurveyQuestionErrorCell;
62994
+ }(react__WEBPACK_IMPORTED_MODULE_0__["Component"]));
62995
+
62530
62996
 
62531
62997
 
62532
62998
  /***/ }),
@@ -63742,6 +64208,7 @@ __webpack_require__.r(__webpack_exports__);
63742
64208
  /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reactquestion_element */ "./src/react/reactquestion_element.tsx");
63743
64209
  /* harmony import */ var _reactquestion_factory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reactquestion_factory */ "./src/react/reactquestion_factory.tsx");
63744
64210
  /* harmony import */ var _reactSurvey__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./reactSurvey */ "./src/react/reactSurvey.tsx");
64211
+ /* harmony import */ var _components_loading_indicator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/loading-indicator */ "./src/react/components/loading-indicator.tsx");
63745
64212
  var __extends = (undefined && undefined.__extends) || (function () {
63746
64213
  var extendStatics = function (d, b) {
63747
64214
  extendStatics = Object.setPrototypeOf ||
@@ -63763,6 +64230,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
63763
64230
 
63764
64231
 
63765
64232
 
64233
+
63766
64234
  var SurveyQuestionFile = /** @class */ (function (_super) {
63767
64235
  __extends(SurveyQuestionFile, _super);
63768
64236
  function SurveyQuestionFile(props) {
@@ -63775,13 +64243,16 @@ var SurveyQuestionFile = /** @class */ (function (_super) {
63775
64243
  enumerable: false,
63776
64244
  configurable: true
63777
64245
  });
64246
+ SurveyQuestionFile.prototype.renderLoadingIndicator = function () {
64247
+ return this.question.showLoadingIndicator ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_loading_indicator__WEBPACK_IMPORTED_MODULE_6__["LoadingIndicatorComponent"], null) : null;
64248
+ };
63778
64249
  SurveyQuestionFile.prototype.renderElement = function () {
63779
64250
  var _this = this;
63780
64251
  var preview = this.renderPreview();
63781
64252
  var fileInput = null;
63782
64253
  var fileDecorator = this.renderFileDecorator();
63783
- var clearButton = this.renderClearButton(this.question.showRemoveButton);
63784
- var clearButtonBottom = this.renderClearButton(this.question.showRemoveButtonBottom);
64254
+ var clearButton = this.question.showRemoveButton ? this.renderClearButton(this.question.cssClasses.removeButton) : null;
64255
+ var clearButtonBottom = this.question.showRemoveButtonBottom ? this.renderClearButton(this.question.cssClasses.removeButtonBottom) : null;
63785
64256
  var mobileFileNavigator = this.question.mobileFileNavigatorVisible ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_1__["SurveyActionBar"], { model: this.question.mobileFileNavigator })) : null;
63786
64257
  fileInput = (this.isDisplayMode ?
63787
64258
  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 })
@@ -63797,23 +64268,31 @@ var SurveyQuestionFile = /** @class */ (function (_super) {
63797
64268
  mobileFileNavigator)));
63798
64269
  };
63799
64270
  SurveyQuestionFile.prototype.renderFileDecorator = function () {
63800
- var questionCss = this.question.cssClasses;
64271
+ var loadingIndicator = this.renderLoadingIndicator();
64272
+ var chooseButton = this.renderChooseButton();
64273
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.getFileDecoratorCss() },
64274
+ loadingIndicator,
64275
+ chooseButton));
64276
+ };
64277
+ SurveyQuestionFile.prototype.renderChooseButton = function () {
63801
64278
  var noFileChosen = null;
63802
64279
  var chooseFile = null;
64280
+ if (!this.question.showChooseButton)
64281
+ return null;
63803
64282
  chooseFile = this.question.isReadOnly ? null : Object(_reactSurvey__WEBPACK_IMPORTED_MODULE_5__["attachKey2click"])(react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { role: "button", tabIndex: 0, className: this.question.getChooseFileCss(), htmlFor: this.question.inputId, "aria-label": this.question.chooseButtonText },
63804
64283
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", null, this.question.chooseButtonText),
63805
64284
  (!!this.question.cssClasses.chooseFileIconId) ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_2__["SvgIcon"], { title: this.question.chooseButtonText, iconName: this.question.cssClasses.chooseFileIconId, size: "auto" }) : null));
63806
64285
  if (this.question.isEmpty()) {
63807
64286
  noFileChosen = (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.cssClasses.noFileChosen }, this.question.noFileChosenCaption));
63808
64287
  }
63809
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.getFileDecoratorCss() },
64288
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
63810
64289
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.cssClasses.dragAreaPlaceholder }, this.question.renderedPlaceholder),
63811
64290
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.wrapper },
63812
64291
  chooseFile,
63813
64292
  noFileChosen)));
63814
64293
  };
63815
64294
  SurveyQuestionFile.prototype.renderClearButton = function (className) {
63816
- return className ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("button", { type: "button", onClick: this.question.doClean, className: className },
64295
+ return !this.question.isUploading ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("button", { type: "button", onClick: this.question.doClean, className: className },
63817
64296
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", null, this.question.clearButtonCaption),
63818
64297
  (!!this.question.cssClasses.removeButtonIconId) ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_2__["SvgIcon"], { iconName: this.question.cssClasses.removeButtonIconId, size: "auto", title: this.question.clearButtonCaption }) : null)) : null;
63819
64298
  };
@@ -63828,7 +64307,7 @@ var SurveyQuestionFile = /** @class */ (function (_super) {
63828
64307
  };
63829
64308
  SurveyQuestionFile.prototype.renderPreview = function () {
63830
64309
  var _this = this;
63831
- if (!this.question.previewValue || !this.question.previewValue.length)
64310
+ if (!this.question.allowShowPreview)
63832
64311
  return null;
63833
64312
  var previews = this.question.previewValue.map(function (val, index) {
63834
64313
  if (!val)
@@ -64187,14 +64666,13 @@ _reactquestion_factory__WEBPACK_IMPORTED_MODULE_2__["ReactQuestionFactory"].Inst
64187
64666
  /*!********************************************************!*\
64188
64667
  !*** ./src/react/reactquestion_matrixdropdownbase.tsx ***!
64189
64668
  \********************************************************/
64190
- /*! exports provided: SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownErrorCell */
64669
+ /*! exports provided: SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdownCell */
64191
64670
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
64192
64671
 
64193
64672
  "use strict";
64194
64673
  __webpack_require__.r(__webpack_exports__);
64195
64674
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionMatrixDropdownBase", function() { return SurveyQuestionMatrixDropdownBase; });
64196
64675
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionMatrixDropdownCell", function() { return SurveyQuestionMatrixDropdownCell; });
64197
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionMatrixDropdownErrorCell", function() { return SurveyQuestionMatrixDropdownErrorCell; });
64198
64676
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
64199
64677
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
64200
64678
  /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reactquestion_element */ "./src/react/reactquestion_element.tsx");
@@ -64405,7 +64883,7 @@ var SurveyQuestionMatrixDropdownBase = /** @class */ (function (_super) {
64405
64883
  }
64406
64884
  if (cell.isErrorsCell) {
64407
64885
  if (cell.isErrorsCell) {
64408
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyQuestionMatrixDropdownErrorCell, { cell: cell, creator: this.creator }));
64886
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_reactquestion__WEBPACK_IMPORTED_MODULE_2__["SurveyQuestionErrorCell"], { question: cell.question, creator: this.creator }));
64409
64887
  }
64410
64888
  }
64411
64889
  if (!cellContent)
@@ -64554,56 +65032,6 @@ var SurveyQuestionMatrixDropdownCell = /** @class */ (function (_super) {
64554
65032
  return SurveyQuestionMatrixDropdownCell;
64555
65033
  }(_reactquestion__WEBPACK_IMPORTED_MODULE_2__["SurveyQuestionAndErrorsCell"]));
64556
65034
 
64557
- var SurveyQuestionMatrixDropdownErrorCell = /** @class */ (function (_super) {
64558
- __extends(SurveyQuestionMatrixDropdownErrorCell, _super);
64559
- function SurveyQuestionMatrixDropdownErrorCell(props) {
64560
- var _this = _super.call(this, props) || this;
64561
- _this.state = {
64562
- changed: 0
64563
- };
64564
- if (_this.cell) {
64565
- _this.registerCallback(_this.cell);
64566
- }
64567
- return _this;
64568
- }
64569
- Object.defineProperty(SurveyQuestionMatrixDropdownErrorCell.prototype, "cell", {
64570
- get: function () {
64571
- return this.props.cell;
64572
- },
64573
- enumerable: false,
64574
- configurable: true
64575
- });
64576
- SurveyQuestionMatrixDropdownErrorCell.prototype.update = function () {
64577
- this.setState({ changed: this.state.changed + 1 });
64578
- };
64579
- SurveyQuestionMatrixDropdownErrorCell.prototype.registerCallback = function (cell) {
64580
- var _this = this;
64581
- cell.question.registerFunctionOnPropertyValueChanged("errors", function () {
64582
- _this.update();
64583
- }, "__reactSubscription");
64584
- };
64585
- SurveyQuestionMatrixDropdownErrorCell.prototype.unRegisterCallback = function (cell) {
64586
- cell.question.unRegisterFunctionOnPropertyValueChanged("errors", "__reactSubscription");
64587
- };
64588
- SurveyQuestionMatrixDropdownErrorCell.prototype.componentDidUpdate = function (prevProps) {
64589
- if (prevProps.cell && prevProps.cell !== this.cell) {
64590
- this.unRegisterCallback(prevProps.cell);
64591
- }
64592
- if (this.cell) {
64593
- this.registerCallback(this.cell);
64594
- }
64595
- };
64596
- SurveyQuestionMatrixDropdownErrorCell.prototype.componentWillUnmount = function () {
64597
- if (this.cell) {
64598
- this.unRegisterCallback(this.cell);
64599
- }
64600
- };
64601
- SurveyQuestionMatrixDropdownErrorCell.prototype.render = function () {
64602
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_reactquestion__WEBPACK_IMPORTED_MODULE_2__["SurveyElementErrors"], { element: this.cell.question, creator: this.props.creator, cssClasses: this.cell.question.cssClasses });
64603
- };
64604
- return SurveyQuestionMatrixDropdownErrorCell;
64605
- }(react__WEBPACK_IMPORTED_MODULE_0__["Component"]));
64606
-
64607
65035
 
64608
65036
 
64609
65037
  /***/ }),
@@ -64794,23 +65222,30 @@ var SurveyQuestionMultipleText = /** @class */ (function (_super) {
64794
65222
  var tableRows = this.question.getRows();
64795
65223
  var rows = [];
64796
65224
  for (var i = 0; i < tableRows.length; i++) {
64797
- rows.push(this.renderRow(i, tableRows[i], cssClasses));
65225
+ if (tableRows[i].isVisible) {
65226
+ rows.push(this.renderRow(i, tableRows[i].cells, cssClasses));
65227
+ }
64798
65228
  }
64799
65229
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("table", { className: cssClasses.root },
64800
65230
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("tbody", null, rows)));
64801
65231
  };
64802
- SurveyQuestionMultipleText.prototype.renderRow = function (rowIndex, items, cssClasses) {
65232
+ SurveyQuestionMultipleText.prototype.renderCell = function (cell, cssClasses, index) {
65233
+ var cellContent;
65234
+ var focusIn = function () { cell.item.focusIn(); };
65235
+ if (cell.isErrorsCell) {
65236
+ cellContent = react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_reactquestion__WEBPACK_IMPORTED_MODULE_2__["SurveyQuestionErrorCell"], { question: cell.item.editor, creator: this.creator });
65237
+ }
65238
+ else {
65239
+ cellContent = react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyMultipleTextItem, { question: this.question, item: cell.item, creator: this.creator, cssClasses: cssClasses });
65240
+ }
65241
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("td", { key: "item" + index, className: cell.className, onFocus: focusIn }, cellContent));
65242
+ };
65243
+ SurveyQuestionMultipleText.prototype.renderRow = function (rowIndex, cells, cssClasses) {
64803
65244
  var key = "item" + rowIndex;
64804
65245
  var tds = [];
64805
- var _loop_1 = function (i) {
64806
- var item = items[i];
64807
- var focusIn = function () { item.focusIn(); };
64808
- tds.push(react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("td", { key: "item" + i, className: this_1.question.cssClasses.cell, onFocus: focusIn },
64809
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyMultipleTextItem, { question: this_1.question, item: item, creator: this_1.creator, cssClasses: cssClasses })));
64810
- };
64811
- var this_1 = this;
64812
- for (var i = 0; i < items.length; i++) {
64813
- _loop_1(i);
65246
+ for (var i = 0; i < cells.length; i++) {
65247
+ var cell = cells[i];
65248
+ tds.push(this.renderCell(cell, cssClasses, i));
64814
65249
  }
64815
65250
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("tr", { key: key, className: cssClasses.row }, tds));
64816
65251
  };
@@ -64852,11 +65287,7 @@ var SurveyMultipleTextItem = /** @class */ (function (_super) {
64852
65287
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { className: this.question.getItemLabelCss(item) },
64853
65288
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: cssClasses.itemTitle },
64854
65289
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_title_title_content__WEBPACK_IMPORTED_MODULE_4__["TitleContent"], { element: item.editor, cssClasses: item.editor.cssClasses })),
64855
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyMultipleTextItemEditor, { cssClasses: cssClasses, itemCss: this.question.getItemCss(), question: item.editor, creator: this.creator }),
64856
- this.renderItemTooltipError(item, cssClasses)));
64857
- };
64858
- SurveyMultipleTextItem.prototype.renderItemTooltipError = function (item, cssClasses) {
64859
- return this.item.editor.isErrorsModeTooltip ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_reactquestion__WEBPACK_IMPORTED_MODULE_2__["SurveyElementErrors"], { element: item.editor, cssClasses: cssClasses, creator: this.creator, location: "tooltip" })) : null;
65290
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyMultipleTextItemEditor, { cssClasses: cssClasses, itemCss: this.question.getItemCss(), question: item.editor, creator: this.creator })));
64860
65291
  };
64861
65292
  return SurveyMultipleTextItem;
64862
65293
  }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["ReactSurveyElement"]));
@@ -67801,7 +68232,7 @@ var SurveyElementCore = /** @class */ (function (_super) {
67801
68232
  var property_1 = _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].findProperty(this.getType(), "description");
67802
68233
  showPlaceholder = !!(property_1 === null || property_1 === void 0 ? void 0 : property_1.placeholder);
67803
68234
  }
67804
- this.hasDescription = !!newDescription || showPlaceholder;
68235
+ this.hasDescription = !!newDescription || (showPlaceholder && this.isDesignMode);
67805
68236
  };
67806
68237
  Object.defineProperty(SurveyElementCore.prototype, "locDescription", {
67807
68238
  get: function () {
@@ -68270,6 +68701,7 @@ var SurveyElement = /** @class */ (function (_super) {
68270
68701
  this.onSetData();
68271
68702
  }
68272
68703
  if (!!this.survey) {
68704
+ this.updateDescriptionVisibility(this.description);
68273
68705
  this.clearCssClasses();
68274
68706
  }
68275
68707
  };
@@ -68714,23 +69146,6 @@ var SurveyElement = /** @class */ (function (_super) {
68714
69146
  enumerable: false,
68715
69147
  configurable: true
68716
69148
  });
68717
- Object.defineProperty(SurveyElement.prototype, "isErrorsModeTooltip", {
68718
- get: function () {
68719
- return this.getIsErrorsModeTooltip();
68720
- },
68721
- enumerable: false,
68722
- configurable: true
68723
- });
68724
- SurveyElement.prototype.getIsErrorsModeTooltip = function () {
68725
- return this.isDefaultV2Theme && this.hasParent && this.getIsTooltipErrorSupportedByParent();
68726
- };
68727
- SurveyElement.prototype.getIsTooltipErrorSupportedByParent = function () {
68728
- var _a;
68729
- return (_a = this.parent) === null || _a === void 0 ? void 0 : _a.getIsTooltipErrorInsideSupported();
68730
- };
68731
- SurveyElement.prototype.getIsTooltipErrorInsideSupported = function () {
68732
- return false;
68733
- };
68734
69149
  Object.defineProperty(SurveyElement.prototype, "hasParent", {
68735
69150
  get: function () {
68736
69151
  return (this.parent && !this.parent.isPage && (!this.parent.originalPage || this.survey.isShowingPreview)) || (this.parent === undefined);
@@ -68749,10 +69164,10 @@ var SurveyElement = /** @class */ (function (_super) {
68749
69164
  configurable: true
68750
69165
  });
68751
69166
  SurveyElement.prototype.getHasFrameV2 = function () {
68752
- return this.shouldAddRunnerStyles() && (!this.hasParent && this.isSingleInRow);
69167
+ return this.shouldAddRunnerStyles() && (!this.hasParent);
68753
69168
  };
68754
69169
  SurveyElement.prototype.getIsNested = function () {
68755
- return this.shouldAddRunnerStyles() && (this.hasParent || !this.isSingleInRow);
69170
+ return this.shouldAddRunnerStyles() && (this.hasParent);
68756
69171
  };
68757
69172
  SurveyElement.prototype.getCssRoot = function (cssClasses) {
68758
69173
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
@@ -68958,6 +69373,12 @@ var SurveyElement = /** @class */ (function (_super) {
68958
69373
  });
68959
69374
  }
68960
69375
  };
69376
+ SurveyElement.prototype.dispose = function () {
69377
+ _super.prototype.dispose.call(this);
69378
+ if (this.titleToolbarValue) {
69379
+ this.titleToolbarValue.dispose();
69380
+ }
69381
+ };
68961
69382
  SurveyElement.CreateDisabledDesignElements = false;
68962
69383
  __decorate([
68963
69384
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: null })
@@ -69215,7 +69636,7 @@ var SurveyModel = /** @class */ (function (_super) {
69215
69636
  *
69216
69637
  * For information on event handler parameters, refer to descriptions within the interface.
69217
69638
  *
69218
- * [Continue an Incomplete Survey](https://surveyjs.io/form-library/documentation/handle-survey-results-continue-incomplete (linkStyle))
69639
+ * Alternatively, you can handle the [`onCurrentPageChanged`](#onCurrentPageChanged) and [`onValueChanged`](#onValueChanged) events, as shown in the following demo: [Continue an Incomplete Survey](https://surveyjs.io/form-library/examples/survey-editprevious/).
69219
69640
  */
69220
69641
  _this.onPartialSend = _this.addEvent();
69221
69642
  /**
@@ -69240,7 +69661,7 @@ var SurveyModel = /** @class */ (function (_super) {
69240
69661
  */
69241
69662
  _this.onValueChanging = _this.addEvent();
69242
69663
  /**
69243
- * An event that is raised after a question value is changed
69664
+ * An event that is raised after a question value is changed.
69244
69665
  *
69245
69666
  * For information on event handler parameters, refer to descriptions within the interface.
69246
69667
  *
@@ -69728,6 +70149,10 @@ var SurveyModel = /** @class */ (function (_super) {
69728
70149
  * An event that is raised after an item value is changed in a panel within a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) question.
69729
70150
  */
69730
70151
  _this.onDynamicPanelItemValueChanged = _this.addEvent();
70152
+ /**
70153
+ * An event that is raised before a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) renders [tab titles](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#templateTabTitle). Use this event to change individual tab titles.
70154
+ */
70155
+ _this.onGetDynamicPanelTabTitle = _this.addEvent();
69731
70156
  /**
69732
70157
  * Use this event to define, whether an answer to a question is correct or not.
69733
70158
  * @see Question.value
@@ -69945,6 +70370,16 @@ var SurveyModel = /** @class */ (function (_super) {
69945
70370
  _this.setCalculatedWidthModeUpdater();
69946
70371
  _this.notifier = new _notifier__WEBPACK_IMPORTED_MODULE_19__["Notifier"](_this.css.saveData);
69947
70372
  _this.notifier.addAction(_this.createTryAgainAction(), "error");
70373
+ _this.onPopupVisibleChanged.add(function (_, opt) {
70374
+ if (opt.visible) {
70375
+ _this.onScrollCallback = function () {
70376
+ opt.popup.toggleVisibility();
70377
+ };
70378
+ }
70379
+ else {
70380
+ _this.onScrollCallback = undefined;
70381
+ }
70382
+ });
69948
70383
  _this.layoutElements.push({
69949
70384
  id: "timerpanel",
69950
70385
  template: "survey-timerpanel",
@@ -70120,6 +70555,14 @@ var SurveyModel = /** @class */ (function (_super) {
70120
70555
  this.containerCss = this.css.container;
70121
70556
  this.completedCss = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_18__["CssClassBuilder"]().append(this.css.body)
70122
70557
  .append(this.css.completedPage).toString(); // for completed page
70558
+ this.completedBeforeCss = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_18__["CssClassBuilder"]()
70559
+ .append(this.css.body)
70560
+ .append(this.css.completedBeforePage)
70561
+ .toString();
70562
+ this.loadingBodyCss = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_18__["CssClassBuilder"]()
70563
+ .append(this.css.body)
70564
+ .append(this.css.bodyLoading)
70565
+ .toString();
70123
70566
  };
70124
70567
  SurveyModel.prototype.updateCss = function () {
70125
70568
  this.rootCss = this.getRootCss();
@@ -70370,7 +70813,7 @@ var SurveyModel = /** @class */ (function (_super) {
70370
70813
  /**
70371
70814
  * Specifies whether to save survey results when respondents switch between pages. Handle the [`onPartialSend`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onPartialSend) event to implement the save operation.
70372
70815
  *
70373
- * [Continue an Incomplete Survey](https://surveyjs.io/form-library/documentation/handle-survey-results-continue-incomplete (linkStyle))
70816
+ * Alternatively, you can handle the [`onCurrentPageChanged`](#onCurrentPageChanged) and [`onValueChanged`](#onValueChanged) events, as shown in the following demo: [Continue an Incomplete Survey](https://surveyjs.io/form-library/examples/survey-editprevious/).
70374
70817
  */
70375
70818
  get: function () {
70376
70819
  return this.getPropertyValue("sendResultOnPageNext");
@@ -71926,11 +72369,12 @@ var SurveyModel = /** @class */ (function (_super) {
71926
72369
  SurveyModel.prototype.getProgressTypeComponent = function () {
71927
72370
  return "sv-progress-" + this.progressBarType.toLowerCase();
71928
72371
  };
71929
- SurveyModel.prototype.getProgressCssClasses = function () {
72372
+ SurveyModel.prototype.getProgressCssClasses = function (container) {
72373
+ if (container === void 0) { container = ""; }
71930
72374
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_18__["CssClassBuilder"]()
71931
72375
  .append(this.css.progress)
71932
- .append(this.css.progressTop, this.isShowProgressBarOnTop)
71933
- .append(this.css.progressBottom, this.isShowProgressBarOnBottom)
72376
+ .append(this.css.progressTop, this.isShowProgressBarOnTop && (!container || container == "header"))
72377
+ .append(this.css.progressBottom, this.isShowProgressBarOnBottom && (!container || container == "footer"))
71934
72378
  .toString();
71935
72379
  };
71936
72380
  SurveyModel.prototype.canShowProresBar = function () {
@@ -72278,6 +72722,11 @@ var SurveyModel = /** @class */ (function (_super) {
72278
72722
  var key = keys[i];
72279
72723
  values[key] = this.getDataValueCore(this.valuesHash, key);
72280
72724
  }
72725
+ this.getAllQuestions().forEach(function (q) {
72726
+ if (q.hasFilteredValue) {
72727
+ values[q.getValueName()] = q.getFilteredValue();
72728
+ }
72729
+ });
72281
72730
  return values;
72282
72731
  };
72283
72732
  SurveyModel.prototype.addCalculatedValuesIntoFilteredValues = function (values) {
@@ -74204,6 +74653,7 @@ var SurveyModel = /** @class */ (function (_super) {
74204
74653
  .append(this.css.rootMobile, this.isMobile)
74205
74654
  .append(this.css.rootReadOnly, this.mode === "display")
74206
74655
  .append(this.css.rootCompact, this.isCompact)
74656
+ .append(this.css.rootFitToContainer, this.fitToContainer)
74207
74657
  .toString();
74208
74658
  };
74209
74659
  SurveyModel.prototype.afterRenderSurvey = function (htmlElement) {
@@ -74234,6 +74684,7 @@ var SurveyModel = /** @class */ (function (_super) {
74234
74684
  htmlElement: htmlElement,
74235
74685
  });
74236
74686
  this.rootElement = htmlElement;
74687
+ this.addScrollEventListener();
74237
74688
  };
74238
74689
  SurveyModel.prototype.processResponsiveness = function (width, mobileWidth) {
74239
74690
  var isMobile = width < mobileWidth;
@@ -74496,6 +74947,10 @@ var SurveyModel = /** @class */ (function (_super) {
74496
74947
  options.panelData = options.itemValue;
74497
74948
  this.onDynamicPanelItemValueChanged.fire(this, options);
74498
74949
  };
74950
+ SurveyModel.prototype.dynamicPanelGetTabTitle = function (question, options) {
74951
+ options.question = question;
74952
+ this.onGetDynamicPanelTabTitle.fire(this, options);
74953
+ };
74499
74954
  SurveyModel.prototype.dragAndDropAllow = function (options) {
74500
74955
  this.onDragDropAllow.fire(this, options);
74501
74956
  return options.allow;
@@ -74758,9 +75213,11 @@ var SurveyModel = /** @class */ (function (_super) {
74758
75213
  }
74759
75214
  };
74760
75215
  /**
74761
- * Returns a question by its name.
74762
- * @param name a question name
74763
- * @param caseInsensitive
75216
+ * Returns a question with a specified [`name`](https://surveyjs.io/form-library/documentation/api-reference/question#name).
75217
+ * @param name A question name
75218
+ * @param caseInsensitive (Optional) A Boolean value that specifies case sensitivity when searching for the question. Default value: `false` (uppercase and lowercase letters are treated as distinct).
75219
+ * @returns A question with a specified name.
75220
+ * @see getAllQuestions
74764
75221
  * @see getQuestionByValueName
74765
75222
  */
74766
75223
  SurveyModel.prototype.getQuestionByName = function (name, caseInsensitive) {
@@ -74782,12 +75239,14 @@ var SurveyModel = /** @class */ (function (_super) {
74782
75239
  return this.getQuestionByName(name);
74783
75240
  };
74784
75241
  /**
74785
- * Returns a question by its value name
74786
- * @param valueName a question name
74787
- * @param caseInsensitive
75242
+ * Returns a question with a specified [`valueName`](https://surveyjs.io/form-library/documentation/api-reference/question#valueName).
75243
+ *
75244
+ * > Since `valueName` does not have to be unique, multiple questions can have the same `valueName` value. In this case, the `getQuestionByValueName()` method returns the first such question. If you need to get all questions with the same `valueName`, call the `getQuestionsByValueName()` method.
75245
+ * @param valueName A question's `valueName` property value.
75246
+ * @param caseInsensitive (Optional) A Boolean value that specifies case sensitivity when searching for the question. Default value: `false` (uppercase and lowercase letters are treated as distinct).
75247
+ * @returns A question with a specified `valueName`.
75248
+ * @see getAllQuestions
74788
75249
  * @see getQuestionByName
74789
- * @see getQuestionsByValueName
74790
- * @see Question.valueName
74791
75250
  */
74792
75251
  SurveyModel.prototype.getQuestionByValueName = function (valueName, caseInsensitive) {
74793
75252
  if (caseInsensitive === void 0) { caseInsensitive = false; }
@@ -74795,12 +75254,12 @@ var SurveyModel = /** @class */ (function (_super) {
74795
75254
  return !!res ? res[0] : null;
74796
75255
  };
74797
75256
  /**
74798
- * Returns all questions by their valueName. name property is used if valueName property is empty.
74799
- * @param valueName a question name
74800
- * @param caseInsensitive
75257
+ * Returns all questions with a specified [`valueName`](https://surveyjs.io/form-library/documentation/api-reference/question#valueName). If a question's `valueName` is undefined, its [`name`](https://surveyjs.io/form-library/documentation/api-reference/question#name) property is used.
75258
+ * @param valueName A question's `valueName` property value.
75259
+ * @param caseInsensitive (Optional) A Boolean value that specifies case sensitivity when searching for the questions. Default value: `false` (uppercase and lowercase letters are treated as distinct).
75260
+ * @returns An array of questions with a specified `valueName`.
75261
+ * @see getAllQuestions
74801
75262
  * @see getQuestionByName
74802
- * @see getQuestionByValueName
74803
- * @see Question.valueName
74804
75263
  */
74805
75264
  SurveyModel.prototype.getQuestionsByValueName = function (valueName, caseInsensitive) {
74806
75265
  if (caseInsensitive === void 0) { caseInsensitive = false; }
@@ -74820,9 +75279,11 @@ var SurveyModel = /** @class */ (function (_super) {
74820
75279
  return null;
74821
75280
  };
74822
75281
  /**
74823
- * Gets a list of questions by their names.
74824
- * @param names an array of question names
74825
- * @param caseInsensitive
75282
+ * Returns an array of questions with specified [names](https://surveyjs.io/form-library/documentation/api-reference/question#name).
75283
+ * @param names An array of question names.
75284
+ * @param caseInsensitive (Optional) A Boolean value that specifies case sensitivity when searching for the questions. Default value: `false` (uppercase and lowercase letters are treated as distinct).
75285
+ * @returns An array of questions with specified names
75286
+ * @see getAllQuestions
74826
75287
  */
74827
75288
  SurveyModel.prototype.getQuestionsByNames = function (names, caseInsensitive) {
74828
75289
  if (caseInsensitive === void 0) { caseInsensitive = false; }
@@ -74886,10 +75347,12 @@ var SurveyModel = /** @class */ (function (_super) {
74886
75347
  return result;
74887
75348
  };
74888
75349
  /**
74889
- * Returns a list of all questions in the survey.
75350
+ * Returns a list of all [questions](https://surveyjs.io/form-library/documentation/api-reference/question) in the survey.
74890
75351
  * @param visibleOnly A Boolean value that specifies whether to include only visible questions.
74891
75352
  * @param includeDesignTime For internal use.
74892
75353
  * @param includeNested A Boolean value that specifies whether to include nested questions, such as questions within matrix cells.
75354
+ * @returns An array of questions.
75355
+ * @see getQuestionByName
74893
75356
  */
74894
75357
  SurveyModel.prototype.getAllQuestions = function (visibleOnly, includeDesignTime, includeNested) {
74895
75358
  if (visibleOnly === void 0) { visibleOnly = false; }
@@ -74911,7 +75374,10 @@ var SurveyModel = /** @class */ (function (_super) {
74911
75374
  return res2;
74912
75375
  };
74913
75376
  /**
74914
- * Returns quiz questions. All visible questions that has input(s) widgets.
75377
+ * Returns an array of quiz questions. A question counts if it is visible, has an input field, and specifies [`correctAnswer`](https://surveyjs.io/form-library/documentation/api-reference/checkbox-question-model#correctAnswer).
75378
+ *
75379
+ * For more information about quizzes, refer to the following tutorial: [Create a Quiz](https://surveyjs.io/form-library/documentation/design-survey/create-a-quiz).
75380
+ * @returns An array of quiz questions.
74915
75381
  * @see getQuizQuestionCount
74916
75382
  */
74917
75383
  SurveyModel.prototype.getQuizQuestions = function () {
@@ -74931,10 +75397,11 @@ var SurveyModel = /** @class */ (function (_super) {
74931
75397
  return result;
74932
75398
  };
74933
75399
  /**
74934
- * Returns a panel by its name.
74935
- * @param name a panel name
74936
- * @param caseInsensitive
74937
- * @see getQuestionByName
75400
+ * Returns a [panel](https://surveyjs.io/form-library/documentation/api-reference/panel-model) with a specified [`name`](https://surveyjs.io/form-library/documentation/api-reference/panel-model#name).
75401
+ * @param name A panel name.
75402
+ * @param caseInsensitive (Optional) A Boolean value that specifies case sensitivity when searching for the panel. Default value: `false` (uppercase and lowercase letters are treated as distinct).
75403
+ * @returns A panel with a specified name.
75404
+ * @see getAllPanels
74938
75405
  */
74939
75406
  SurveyModel.prototype.getPanelByName = function (name, caseInsensitive) {
74940
75407
  if (caseInsensitive === void 0) { caseInsensitive = false; }
@@ -74951,7 +75418,11 @@ var SurveyModel = /** @class */ (function (_super) {
74951
75418
  return null;
74952
75419
  };
74953
75420
  /**
74954
- * Returns a list of all survey's panels.
75421
+ * Returns a list of all [panels](https://surveyjs.io/form-library/documentation/api-reference/panel-model) in the survey.
75422
+ * @param visibleOnly A Boolean value that specifies whether to include only visible panels.
75423
+ * @param includeDesignTime For internal use.
75424
+ * @returns An array of panels.
75425
+ * @see getPanelByName
74955
75426
  */
74956
75427
  SurveyModel.prototype.getAllPanels = function (visibleOnly, includeDesignTime) {
74957
75428
  if (visibleOnly === void 0) { visibleOnly = false; }
@@ -75666,9 +76137,13 @@ var SurveyModel = /** @class */ (function (_super) {
75666
76137
  }
75667
76138
  };
75668
76139
  /**
75669
- * Returns a variable value. Variable, unlike values, are not stored in the survey results.
75670
- * @param name A variable name
75671
- * @see SetVariable
76140
+ * Returns a variable value.
76141
+ *
76142
+ * [Variables help topic](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#variables (linkStyle))
76143
+ * @param name A variable name.
76144
+ * @return A variable value.
76145
+ * @see setVariable
76146
+ * @see getVariableNames
75672
76147
  */
75673
76148
  SurveyModel.prototype.getVariable = function (name) {
75674
76149
  if (!name)
@@ -75684,10 +76159,13 @@ var SurveyModel = /** @class */ (function (_super) {
75684
76159
  return res;
75685
76160
  };
75686
76161
  /**
75687
- * Sets a variable value. Variable, unlike values, are not stored in the survey results.
75688
- * @param name A variable name
75689
- * @param newValue A variable new value
75690
- * @see GetVariable
76162
+ * Sets a variable value.
76163
+ *
76164
+ * [Variables help topic](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#variables (linkStyle))
76165
+ * @param name A variable name.
76166
+ * @param newValue A new variable value.
76167
+ * @see getVariable
76168
+ * @see getVariableNames
75691
76169
  */
75692
76170
  SurveyModel.prototype.setVariable = function (name, newValue) {
75693
76171
  if (!name)
@@ -75702,7 +76180,10 @@ var SurveyModel = /** @class */ (function (_super) {
75702
76180
  this.onVariableChanged.fire(this, { name: name, value: newValue });
75703
76181
  };
75704
76182
  /**
75705
- * Returns all variables in the survey. Use setVariable function to create a new variable.
76183
+ * Returns the names of all variables in the survey.
76184
+ *
76185
+ * [Variables help topic](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#variables (linkStyle))
76186
+ * @returns An array of variable names.
75706
76187
  * @see getVariable
75707
76188
  * @see setVariable
75708
76189
  */
@@ -75720,8 +76201,9 @@ var SurveyModel = /** @class */ (function (_super) {
75720
76201
  return _helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].getUnbindValue(value);
75721
76202
  };
75722
76203
  /**
75723
- * Returns a question value (answer) by a question's name.
75724
- * @param name A question name
76204
+ * Returns a value (answer) for a question with a specified `name`.
76205
+ * @param name A question name.
76206
+ * @returns A question value (answer).
75725
76207
  * @see data
75726
76208
  * @see setValue
75727
76209
  */
@@ -75732,16 +76214,15 @@ var SurveyModel = /** @class */ (function (_super) {
75732
76214
  return this.getUnbindValue(value);
75733
76215
  };
75734
76216
  /**
75735
- * Sets a question value (answer). It runs all triggers and conditions (`visibleIf` properties).
76217
+ * Sets a question value (answer).
75736
76218
  *
75737
- * Goes to the next page if `goNextPageAutomatic` is `true` and all questions on the current page are answered correctly.
75738
- * @param name A question name
75739
- * @param newValue A new question value
76219
+ * > This method executes all triggers and reevaluates conditions (`visibleIf`, `requiredId`, and others). It also switches the survey to the next page if the [`goNextPageAutomatic`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#goNextPageAutomatic) property is enabled and all questions on the current page have correct answers.
76220
+ * @param name A question name.
76221
+ * @param newValue A new question value.
76222
+ * @param locNotification For internal use.
76223
+ * @param allowNotifyValueChanged For internal use.
75740
76224
  * @see data
75741
76225
  * @see getValue
75742
- * @see PageModel.visibleIf
75743
- * @see Question.visibleIf
75744
- * @see goNextPageAutomatic
75745
76226
  */
75746
76227
  SurveyModel.prototype.setValue = function (name, newQuestionValue, locNotification, allowNotifyValueChanged) {
75747
76228
  if (locNotification === void 0) { locNotification = false; }
@@ -75758,7 +76239,7 @@ var SurveyModel = /** @class */ (function (_super) {
75758
76239
  this.isTwoValueEquals(newValue, newQuestionValue))
75759
76240
  return;
75760
76241
  var oldValue = this.getValue(name);
75761
- if (this.isValueEmpty(newValue, false)) {
76242
+ if (this.isValueEmpyOnSetValue(name, newValue)) {
75762
76243
  this.deleteDataValueCore(this.valuesHash, name);
75763
76244
  }
75764
76245
  else {
@@ -75767,6 +76248,13 @@ var SurveyModel = /** @class */ (function (_super) {
75767
76248
  }
75768
76249
  this.updateOnSetValue(name, newValue, oldValue, locNotification, allowNotifyValueChanged);
75769
76250
  };
76251
+ SurveyModel.prototype.isValueEmpyOnSetValue = function (name, val) {
76252
+ if (!this.isValueEmpty(val, false))
76253
+ return false;
76254
+ if (!this.editingObj || val === null || val === undefined)
76255
+ return true;
76256
+ return this.editingObj.getDefaultPropertyValue(name) === val;
76257
+ };
75770
76258
  SurveyModel.prototype.updateOnSetValue = function (name, newValue, oldValue, locNotification, allowNotifyValueChanged) {
75771
76259
  if (locNotification === void 0) { locNotification = false; }
75772
76260
  if (allowNotifyValueChanged === void 0) { allowNotifyValueChanged = true; }
@@ -75865,8 +76353,9 @@ var SurveyModel = /** @class */ (function (_super) {
75865
76353
  }
75866
76354
  };
75867
76355
  /**
75868
- * Returns the comment value.
75869
- * @param name A comment's name.
76356
+ * Returns a comment value from a question with a specified `name`.
76357
+ * @param name A question name.
76358
+ * @returns A comment.
75870
76359
  * @see setComment
75871
76360
  */
75872
76361
  SurveyModel.prototype.getComment = function (name) {
@@ -75874,9 +76363,10 @@ var SurveyModel = /** @class */ (function (_super) {
75874
76363
  return res || "";
75875
76364
  };
75876
76365
  /**
75877
- * Sets a comment value.
75878
- * @param name A comment name.
76366
+ * Sets a comment value to a question with a specified `name`.
76367
+ * @param name A question name.
75879
76368
  * @param newValue A new comment value.
76369
+ * @param locNotification For internal use.
75880
76370
  * @see getComment
75881
76371
  */
75882
76372
  SurveyModel.prototype.setComment = function (name, newValue, locNotification) {
@@ -76146,16 +76636,26 @@ var SurveyModel = /** @class */ (function (_super) {
76146
76636
  return options.html;
76147
76637
  };
76148
76638
  SurveyModel.prototype.getCorrectedAnswerCount = function () {
76149
- return this.getCorrectedAnswerCountCore(true);
76639
+ return this.getCorrectAnswerCount();
76150
76640
  };
76151
76641
  /**
76152
- * Returns an amount of corrected quiz answers.
76642
+ * Returns the number of correct answers in a quiz.
76643
+ *
76644
+ * For more information about quizzes, refer to the following tutorial: [Create a Quiz](https://surveyjs.io/form-library/documentation/design-survey/create-a-quiz).
76645
+ * @returns The number of correct answers in a quiz.
76646
+ * @see getQuizQuestionCount
76647
+ * @see getInCorrectAnswerCount
76153
76648
  */
76154
76649
  SurveyModel.prototype.getCorrectAnswerCount = function () {
76155
76650
  return this.getCorrectedAnswerCountCore(true);
76156
76651
  };
76157
76652
  /**
76158
- * Returns quiz question number. It may be different from `getQuizQuestions.length` because some widgets like matrix may have several questions.
76653
+ * Returns the number of quiz questions. A question counts if it is visible, has an input field, and specifies [`correctAnswer`](https://surveyjs.io/form-library/documentation/api-reference/checkbox-question-model#correctAnswer).
76654
+ *
76655
+ * This number may be different from `getQuizQuestions().length` because certain question types (for instance, matrix-like types) include more than one question.
76656
+ *
76657
+ * For more information about quizzes, refer to the following tutorial: [Create a Quiz](https://surveyjs.io/form-library/documentation/design-survey/create-a-quiz).
76658
+ * @returns The number of quiz questions.
76159
76659
  * @see getQuizQuestions
76160
76660
  */
76161
76661
  SurveyModel.prototype.getQuizQuestionCount = function () {
@@ -76167,10 +76667,14 @@ var SurveyModel = /** @class */ (function (_super) {
76167
76667
  return res;
76168
76668
  };
76169
76669
  SurveyModel.prototype.getInCorrectedAnswerCount = function () {
76170
- return this.getCorrectedAnswerCountCore(false);
76670
+ return this.getInCorrectAnswerCount();
76171
76671
  };
76172
76672
  /**
76173
- * Returns an amount of incorrect quiz answers.
76673
+ * Returns the number of incorrect answers in a quiz.
76674
+ *
76675
+ * For more information about quizzes, refer to the following tutorial: [Create a Quiz](https://surveyjs.io/form-library/documentation/design-survey/create-a-quiz).
76676
+ * @returns The number of incorrect answers in a quiz.
76677
+ * @see getCorrectAnswerCount
76174
76678
  */
76175
76679
  SurveyModel.prototype.getInCorrectAnswerCount = function () {
76176
76680
  return this.getCorrectedAnswerCountCore(false);
@@ -76184,32 +76688,14 @@ var SurveyModel = /** @class */ (function (_super) {
76184
76688
  SurveyModel.prototype.getCorrectedAnswerCountCore = function (isCorrect) {
76185
76689
  var questions = this.getQuizQuestions();
76186
76690
  var counter = 0;
76187
- var options = {
76188
- question: null,
76189
- result: false,
76190
- correctAnswers: 0,
76191
- incorrectAnswers: 0,
76192
- };
76193
76691
  for (var i = 0; i < questions.length; i++) {
76194
76692
  var q = questions[i];
76195
- var quizQuestionCount = q.quizQuestionCount;
76196
- options.question = q;
76197
- options.correctAnswers = q.correctAnswerCount;
76198
- options.incorrectAnswers = quizQuestionCount - options.correctAnswers;
76199
- options.result = options.question.isAnswerCorrect();
76200
- this.onIsAnswerCorrect.fire(this, options);
76693
+ var correctCount = q.correctAnswerCount;
76201
76694
  if (isCorrect) {
76202
- if (options.result || options.correctAnswers < quizQuestionCount) {
76203
- var addCount = options.correctAnswers;
76204
- if (addCount == 0 && options.result)
76205
- addCount = 1;
76206
- counter += addCount;
76207
- }
76695
+ counter += correctCount;
76208
76696
  }
76209
76697
  else {
76210
- if (!options.result || options.incorrectAnswers < quizQuestionCount) {
76211
- counter += options.incorrectAnswers;
76212
- }
76698
+ counter += q.quizQuestionCount - correctCount;
76213
76699
  }
76214
76700
  }
76215
76701
  return counter;
@@ -76810,7 +77296,7 @@ var SurveyModel = /** @class */ (function (_super) {
76810
77296
  containerLayoutElements.push(layoutElement);
76811
77297
  }
76812
77298
  }
76813
- if (container === "contentBottom") {
77299
+ if (container === "footer") {
76814
77300
  if (this.isShowProgressBarOnBottom && !this.isShowStartingPage) {
76815
77301
  containerLayoutElements.push(layoutElement);
76816
77302
  }
@@ -76869,12 +77355,14 @@ var SurveyModel = /** @class */ (function (_super) {
76869
77355
  * Use this method to dispose survey model properly.
76870
77356
  */
76871
77357
  SurveyModel.prototype.dispose = function () {
76872
- this.currentPage = null;
77358
+ this.removeScrollEventListener();
76873
77359
  this.destroyResizeObserver();
77360
+ this.rootElement = undefined;
76874
77361
  _super.prototype.dispose.call(this);
76875
77362
  this.editingObj = null;
76876
77363
  if (!this.pages)
76877
77364
  return;
77365
+ this.currentPage = null;
76878
77366
  for (var i = 0; i < this.pages.length; i++) {
76879
77367
  this.pages[i].setSurveyImpl(undefined);
76880
77368
  this.pages[i].dispose();
@@ -76884,15 +77372,39 @@ var SurveyModel = /** @class */ (function (_super) {
76884
77372
  this.disposeCallback();
76885
77373
  }
76886
77374
  };
77375
+ SurveyModel.prototype.onScroll = function () {
77376
+ if (this.onScrollCallback) {
77377
+ this.onScrollCallback();
77378
+ }
77379
+ };
77380
+ SurveyModel.prototype.addScrollEventListener = function () {
77381
+ var _this = this;
77382
+ this.scrollHandler = function () { _this.onScroll(); };
77383
+ this.rootElement.addEventListener("scroll", this.scrollHandler);
77384
+ };
77385
+ SurveyModel.prototype.removeScrollEventListener = function () {
77386
+ if (!!this.rootElement && !!this.scrollHandler) {
77387
+ this.rootElement.removeEventListener("scroll", this.scrollHandler);
77388
+ }
77389
+ };
76887
77390
  SurveyModel.TemplateRendererComponentName = "sv-template-renderer";
76888
77391
  SurveyModel.stylesManager = null;
76889
77392
  SurveyModel.platform = "unknown";
76890
77393
  __decorate([
76891
77394
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
76892
77395
  ], SurveyModel.prototype, "completedCss", void 0);
77396
+ __decorate([
77397
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
77398
+ ], SurveyModel.prototype, "completedBeforeCss", void 0);
77399
+ __decorate([
77400
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
77401
+ ], SurveyModel.prototype, "loadingBodyCss", void 0);
76893
77402
  __decorate([
76894
77403
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
76895
77404
  ], SurveyModel.prototype, "containerCss", void 0);
77405
+ __decorate([
77406
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ onSet: function (newValue, target) { target.updateCss(); } })
77407
+ ], SurveyModel.prototype, "fitToContainer", void 0);
76896
77408
  __decorate([
76897
77409
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
76898
77410
  ], SurveyModel.prototype, "showBrandInfo", void 0);
@@ -77168,6 +77680,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
77168
77680
  choices: ["auto", "static", "responsive"],
77169
77681
  },
77170
77682
  { name: "width", visibleIf: function (obj) { return obj.widthMode === "static"; } },
77683
+ { name: "fitToContainer:boolean", default: false },
77171
77684
  { name: "backgroundImage", visible: false },
77172
77685
  { name: "backgroundImageFit", default: "cover", choices: ["auto", "contain", "cover"], visible: false },
77173
77686
  { name: "backgroundImageAttachment", default: "scroll", choices: ["scroll", "fixed"], visible: false },
@@ -78972,8 +79485,8 @@ var PopupUtils = /** @class */ (function () {
78972
79485
  }
78973
79486
  return { left: Math.round(currentLeft), top: Math.round(currentTop) };
78974
79487
  };
78975
- PopupUtils.updateVerticalDimensions = function (top, height, windowHeight) {
78976
- var result;
79488
+ PopupUtils.getCorrectedVerticalDimensions = function (top, height, windowHeight) {
79489
+ var result = { height: height, top: top };
78977
79490
  if (top < 0) {
78978
79491
  result = { height: height + top, top: 0 };
78979
79492
  }
@@ -79242,37 +79755,6 @@ var VerticalResponsivityManager = /** @class */ (function (_super) {
79242
79755
 
79243
79756
 
79244
79757
 
79245
- /***/ }),
79246
-
79247
- /***/ "./src/utils/tooltip.ts":
79248
- /*!******************************!*\
79249
- !*** ./src/utils/tooltip.ts ***!
79250
- \******************************/
79251
- /*! exports provided: TooltipManager */
79252
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
79253
-
79254
- "use strict";
79255
- __webpack_require__.r(__webpack_exports__);
79256
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipManager", function() { return TooltipManager; });
79257
- var TooltipManager = /** @class */ (function () {
79258
- function TooltipManager(tooltipElement) {
79259
- var _this = this;
79260
- this.tooltipElement = tooltipElement;
79261
- this.onMouseMoveCallback = function (e) {
79262
- _this.tooltipElement.style.left = e.clientX + 12 + "px";
79263
- _this.tooltipElement.style.top = e.clientY + 12 + "px";
79264
- };
79265
- this.targetElement = tooltipElement.parentElement;
79266
- this.targetElement.addEventListener("mousemove", this.onMouseMoveCallback);
79267
- }
79268
- TooltipManager.prototype.dispose = function () {
79269
- this.targetElement.removeEventListener("mousemove", this.onMouseMoveCallback);
79270
- };
79271
- return TooltipManager;
79272
- }());
79273
-
79274
-
79275
-
79276
79758
  /***/ }),
79277
79759
 
79278
79760
  /***/ "./src/utils/utils.ts":