survey-react 1.10.1 → 1.10.3

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.10.1
2
+ * surveyjs - Survey JavaScript library v1.10.3
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -742,11 +742,12 @@ function createDropdownActionModelAdvanced(actionOptions, listOptions, popupOpti
742
742
  }
743
743
  listOptions.onSelectionChanged(item);
744
744
  innerPopupModel.toggleVisibility();
745
- }, listOptions.allowSelection, listOptions.selectedItem, listOptions.onFilterStringChangedCallback);
745
+ }, listOptions.allowSelection, listOptions.selectedItem);
746
746
  listModel.locOwner = locOwner;
747
- 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 () {
748
- listModel.dispose();
749
- });
747
+ listModel.setOnFilterStringChangedCallback(listOptions.onFilterStringChangedCallback);
748
+ var options = popupOptions || {};
749
+ options.onDispose = function () { listModel.dispose(); };
750
+ var innerPopupModel = new _popup__WEBPACK_IMPORTED_MODULE_4__["PopupModel"]("sv-list", { model: listModel }, options);
750
751
  innerPopupModel.displayMode = popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.displayMode;
751
752
  var newActionOptions = Object.assign({}, actionOptions, {
752
753
  component: "sv-action-bar-item-dropdown",
@@ -770,7 +771,6 @@ var BaseAction = /** @class */ (function (_super) {
770
771
  function BaseAction() {
771
772
  var _this = _super !== null && _super.apply(this, arguments) || this;
772
773
  _this.rendredIdValue = BaseAction.getNextRendredId();
773
- _this.iconSize = 24;
774
774
  return _this;
775
775
  }
776
776
  BaseAction.getNextRendredId = function () { return BaseAction.renderedId++; };
@@ -973,7 +973,7 @@ var BaseAction = /** @class */ (function (_super) {
973
973
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])()
974
974
  ], BaseAction.prototype, "iconName", void 0);
975
975
  __decorate([
976
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])()
976
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])({ defaultValue: 24 })
977
977
  ], BaseAction.prototype, "iconSize", void 0);
978
978
  __decorate([
979
979
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])()
@@ -994,9 +994,9 @@ var Action = /** @class */ (function (_super) {
994
994
  //Object.assign(this, item) to support IE11
995
995
  if (!!innerItem) {
996
996
  for (var key in innerItem) {
997
- if (key !== "locTitle") {
998
- _this[key] = innerItem[key];
999
- }
997
+ if (key === "locTitle" || key === "title" && !!_this.locTitle && !!_this.title)
998
+ continue;
999
+ _this[key] = innerItem[key];
1000
1000
  }
1001
1001
  }
1002
1002
  if (!!_this.locTitleName) {
@@ -1847,6 +1847,8 @@ var Base = /** @class */ (function () {
1847
1847
  * A new value for the property.
1848
1848
  * - `options.oldValue`: `any`\
1849
1849
  * An old value of the property. If the property is an array, `oldValue` contains the same array as `newValue` does.
1850
+ *
1851
+ * If you need to add and remove property change event handlers dynamically, use the [`registerPropertyChangedHandlers`](#registerPropertyChangedHandlers) and [`unregisterPropertyChangedHandlers`](#unregisterPropertyChangedHandlers) methods instead.
1850
1852
  */
1851
1853
  this.onPropertyChanged = this.addEvent();
1852
1854
  /**
@@ -2242,8 +2244,6 @@ var Base = /** @class */ (function () {
2242
2244
  * @param val A new value for the property.
2243
2245
  */
2244
2246
  Base.prototype.setPropertyValue = function (name, val) {
2245
- if (name) {
2246
- }
2247
2247
  if (!this.isLoadingFromJson) {
2248
2248
  var prop = this.getPropertyByName(name);
2249
2249
  if (!!prop) {
@@ -2419,9 +2419,11 @@ var Base = /** @class */ (function () {
2419
2419
  return res;
2420
2420
  };
2421
2421
  /**
2422
- * Registers a function to call when a property value changes.
2422
+ * Registers a single value change handler for one or multiple properties.
2423
+ *
2424
+ * The `registerPropertyChangedHandlers` and [`unregisterPropertyChangedHandlers`](#unregisterPropertyChangedHandlers) methods allow you to manage property change event handlers dynamically. If you only need to attach an event handler without removing it afterwards, you can use the [`onPropertyChanged`](#onPropertyChanged) event instead.
2423
2425
  * @param propertyNames An array of one or multiple property names.
2424
- * @param handler A function to call when one of the listed properties change.
2426
+ * @param handler A function to call when one of the listed properties change. Accepts a new property value as an argument.
2425
2427
  * @param key *(Optional)* A key that identifies the current registration. If a function for one of the properties is already registered with the same key, the function will be overwritten. You can also use the key to subsequently unregister handlers.
2426
2428
  * @see unregisterPropertyChangedHandlers
2427
2429
  */
@@ -6037,6 +6039,8 @@ var defaultV2Css = {
6037
6039
  selectWrapper: "sv-dropdown_select-wrapper",
6038
6040
  controlValue: "sd-dropdown__value",
6039
6041
  controlDisabled: "sd-input--disabled",
6042
+ controlReadOnly: "sd-input--readonly",
6043
+ controlPreview: "sd-input--preview",
6040
6044
  controlEmpty: "sd-dropdown--empty",
6041
6045
  filterStringInput: "sd-dropdown__filter-string-input",
6042
6046
  chevronButton: "sd-dropdown_chevron-button",
@@ -7366,17 +7370,12 @@ var DragDropDOMAdapter = /** @class */ (function () {
7366
7370
  DragDropDOMAdapter.prototype.getShortcutRightCoordinate = function (currentX, shortcutWidth, shortcutXOffset) {
7367
7371
  return currentX + shortcutWidth - shortcutXOffset;
7368
7372
  };
7369
- DragDropDOMAdapter.prototype.doScroll = function (clientY, clientX) {
7373
+ DragDropDOMAdapter.prototype.requestAnimationFrame = function (callback) {
7374
+ return requestAnimationFrame(callback);
7375
+ };
7376
+ DragDropDOMAdapter.prototype.scrollByDrag = function (scrollableParentNode, clientY, clientX) {
7370
7377
  var _this = this;
7371
- cancelAnimationFrame(this.scrollIntervalId);
7372
7378
  var startScrollBoundary = 100;
7373
- var displayProp = this.draggedElementShortcut.style.display;
7374
- //this.draggedElementShortcut.hidden = true;
7375
- this.draggedElementShortcut.style.display = "none";
7376
- var dragOverNode = this.documentOrShadowRoot.elementFromPoint(clientX, clientY);
7377
- //this.draggedElementShortcut.hidden = false;
7378
- this.draggedElementShortcut.style.display = displayProp || "block";
7379
- var scrollableParentNode = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["findScrollableParent"])(dragOverNode);
7380
7379
  var top;
7381
7380
  var bottom;
7382
7381
  var left;
@@ -7394,21 +7393,36 @@ var DragDropDOMAdapter = /** @class */ (function () {
7394
7393
  right = scrollableParentNode.getBoundingClientRect().right;
7395
7394
  }
7396
7395
  var repeat = function () {
7397
- if (clientY - top <= startScrollBoundary) {
7396
+ var isTop = clientY - top <= startScrollBoundary;
7397
+ var isBottom = bottom - clientY <= startScrollBoundary;
7398
+ var isLeft = clientX - left <= startScrollBoundary;
7399
+ var isRight = right - clientX <= startScrollBoundary;
7400
+ if (isTop && !isLeft && !isRight) {
7398
7401
  scrollableParentNode.scrollTop -= 15;
7399
7402
  }
7400
- else if (bottom - clientY <= startScrollBoundary) {
7403
+ else if (isBottom && !isLeft && !isRight) {
7401
7404
  scrollableParentNode.scrollTop += 15;
7402
7405
  }
7403
- else if (right - clientX <= startScrollBoundary) {
7406
+ else if (isRight && !isTop && !isBottom) {
7404
7407
  scrollableParentNode.scrollLeft += 15;
7405
7408
  }
7406
- else if (clientX - left <= startScrollBoundary) {
7409
+ else if (isLeft && !isTop && !isBottom) {
7407
7410
  scrollableParentNode.scrollLeft -= 15;
7408
7411
  }
7409
- _this.scrollIntervalId = requestAnimationFrame(repeat);
7412
+ _this.scrollIntervalId = _this.requestAnimationFrame(repeat);
7410
7413
  };
7411
- this.scrollIntervalId = requestAnimationFrame(repeat);
7414
+ this.scrollIntervalId = this.requestAnimationFrame(repeat);
7415
+ };
7416
+ DragDropDOMAdapter.prototype.doScroll = function (clientY, clientX) {
7417
+ cancelAnimationFrame(this.scrollIntervalId);
7418
+ var displayProp = this.draggedElementShortcut.style.display;
7419
+ //this.draggedElementShortcut.hidden = true;
7420
+ this.draggedElementShortcut.style.display = "none";
7421
+ var dragOverNode = this.documentOrShadowRoot.elementFromPoint(clientX, clientY);
7422
+ //this.draggedElementShortcut.hidden = false;
7423
+ this.draggedElementShortcut.style.display = displayProp || "block";
7424
+ var scrollableParentNode = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["findScrollableParent"])(dragOverNode);
7425
+ this.scrollByDrag(scrollableParentNode, clientY, clientX);
7412
7426
  };
7413
7427
  DragDropDOMAdapter.prototype.doStartDrag = function (event, draggedElement, parentElement, draggedElementNode) {
7414
7428
  if (_utils_devices__WEBPACK_IMPORTED_MODULE_1__["IsTouch"]) {
@@ -7702,7 +7716,6 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7702
7716
  if (!draggedElementShortcut)
7703
7717
  return;
7704
7718
  draggedElementShortcut.className = this.shortcutClass + " sv-ranking-shortcut";
7705
- draggedElementShortcut.style.cssText = " \n cursor: grabbing;\n position: absolute;\n z-index: 10000;\n border-radius: calc(12.5 * var(--sjs-base-unit, var(--base-unit, 8px)));\n min-width: 100px;\n max-width: 400px;\n box-shadow: var(--sjs-shadow-medium, 0px 2px 6px 0px rgba(0, 0, 0, 0.1)), var(--sjs-shadow-large, 0px 8px 16px 0px rgba(0, 0, 0, 0.1));\n background-color: var(--sjs-general-backcolor, var(--background, #fff));\n font-family: var(--sjs-font-family, var(--font-family, var(--sjs-default-font-family)));\n ";
7706
7719
  var isDeepClone = true;
7707
7720
  var clone = draggedElementNode.cloneNode(isDeepClone);
7708
7721
  draggedElementShortcut.appendChild(clone);
@@ -8097,6 +8110,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8097
8110
  _this.showInputFieldComponent = _this.question.showInputFieldComponent;
8098
8111
  _this.listModel = _this.createListModel();
8099
8112
  _this.updateAfterListModelCreated(_this.listModel);
8113
+ _this.setChoicesLazyLoadEnabled(_this.question.choicesLazyLoadEnabled);
8100
8114
  _this.setSearchEnabled(_this.question.searchEnabled);
8101
8115
  _this.setTextWrapEnabled(_this.question.textWrapEnabled);
8102
8116
  _this.createPopup();
@@ -8159,7 +8173,8 @@ var DropdownListModel = /** @class */ (function (_super) {
8159
8173
  };
8160
8174
  DropdownListModel.prototype.createPopup = function () {
8161
8175
  var _this = this;
8162
- this._popupModel = new _popup__WEBPACK_IMPORTED_MODULE_5__["PopupModel"]("sv-list", { model: this.listModel }, "bottom", "center", false);
8176
+ var popupOptions = { verticalPosition: "bottom", horizontalPosition: "center", showPointer: false };
8177
+ this._popupModel = new _popup__WEBPACK_IMPORTED_MODULE_5__["PopupModel"]("sv-list", { model: this.listModel }, popupOptions);
8163
8178
  this._popupModel.displayMode = _utils_devices__WEBPACK_IMPORTED_MODULE_9__["IsTouch"] ? "overlay" : "popup";
8164
8179
  this._popupModel.positionMode = "fixed";
8165
8180
  this._popupModel.isFocusedContainer = false;
@@ -8177,6 +8192,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8177
8192
  }
8178
8193
  if (option.isVisible && _this.question.choicesLazyLoadEnabled) {
8179
8194
  _this.listModel.actions = [];
8195
+ _this.resetItemsSettings();
8180
8196
  _this.updateQuestionChoices();
8181
8197
  }
8182
8198
  if (option.isVisible && !!_this.question.onOpenedCallBack) {
@@ -8219,7 +8235,6 @@ var DropdownListModel = /** @class */ (function (_super) {
8219
8235
  DropdownListModel.prototype.onHidePopup = function () {
8220
8236
  this.resetFilterString();
8221
8237
  this.question.suggestedItem = null;
8222
- this.listModel.refresh();
8223
8238
  };
8224
8239
  DropdownListModel.prototype.getAvailableItems = function () {
8225
8240
  return this.question.visibleChoices;
@@ -8247,7 +8262,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8247
8262
  _this.popupModel.isVisible = false;
8248
8263
  };
8249
8264
  }
8250
- var res = new _list__WEBPACK_IMPORTED_MODULE_4__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
8265
+ var res = new _list__WEBPACK_IMPORTED_MODULE_4__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, this.listElementId);
8251
8266
  this.setOnTextSearchCallbackForListModel(res);
8252
8267
  res.renderElements = false;
8253
8268
  res.forceShowFilter = true;
@@ -8480,6 +8495,9 @@ var DropdownListModel = /** @class */ (function (_super) {
8480
8495
  this.listModel.showSearchClearButton = _utils_devices__WEBPACK_IMPORTED_MODULE_9__["IsTouch"];
8481
8496
  this.searchEnabled = newValue;
8482
8497
  };
8498
+ DropdownListModel.prototype.setChoicesLazyLoadEnabled = function (newValue) {
8499
+ this.listModel.setOnFilterStringChangedCallback(newValue ? this.listModelFilterStringChanged : undefined);
8500
+ };
8483
8501
  DropdownListModel.prototype.updateItems = function () {
8484
8502
  this.listModel.setItems(this.getAvailableItems());
8485
8503
  };
@@ -8499,9 +8517,6 @@ var DropdownListModel = /** @class */ (function (_super) {
8499
8517
  if (options.name == "value") {
8500
8518
  this.showInputFieldComponent = this.question.showInputFieldComponent;
8501
8519
  }
8502
- if (options.name == "choicesLazyLoadEnabled" && options.newValue) {
8503
- this.listModel.setOnFilterStringChangedCallback(this.listModelFilterStringChanged);
8504
- }
8505
8520
  if (options.name == "textWrapEnabled") {
8506
8521
  this.setTextWrapEnabled(options.newValue);
8507
8522
  }
@@ -8830,7 +8845,7 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
8830
8845
  }
8831
8846
  };
8832
8847
  }
8833
- var res = new _multiSelectListModel__WEBPACK_IMPORTED_MODULE_3__["MultiSelectListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
8848
+ var res = new _multiSelectListModel__WEBPACK_IMPORTED_MODULE_3__["MultiSelectListModel"](visibleItems, _onSelectionChanged, false, undefined, this.listElementId);
8834
8849
  res.actions.forEach(function (a) { return a.disableTabStop = true; });
8835
8850
  this.setOnTextSearchCallbackForListModel(res);
8836
8851
  res.forceShowFilter = true;
@@ -9805,8 +9820,8 @@ __webpack_require__.r(__webpack_exports__);
9805
9820
 
9806
9821
  var Version;
9807
9822
  var ReleaseDate;
9808
- Version = "" + "1.10.1";
9809
- ReleaseDate = "" + "2024-04-25";
9823
+ Version = "" + "1.10.3";
9824
+ ReleaseDate = "" + "2024-05-07";
9810
9825
  function checkLibraryVersion(ver, libraryName) {
9811
9826
  if (Version != ver) {
9812
9827
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -10993,7 +11008,7 @@ var defaultBootstrapMaterialCss = _plugins_themes_bootstrapmaterial_cssbootstrap
10993
11008
  /*!***************************************!*\
10994
11009
  !*** ./src/entries/react-ui-model.ts ***!
10995
11010
  \***************************************/
10996
- /*! 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, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionMatrixCell, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent, SvgBundleComponent */
11011
+ /*! 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, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionMatrixCell, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, QuestionErrorComponent, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent, SvgBundleComponent */
10997
11012
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10998
11013
 
10999
11014
  "use strict";
@@ -11241,39 +11256,42 @@ __webpack_require__.r(__webpack_exports__);
11241
11256
  /* harmony import */ var _react_components_survey_actions_survey_nav_button__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../react/components/survey-actions/survey-nav-button */ "./src/react/components/survey-actions/survey-nav-button.tsx");
11242
11257
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyNavigationButton", function() { return _react_components_survey_actions_survey_nav_button__WEBPACK_IMPORTED_MODULE_70__["SurveyNavigationButton"]; });
11243
11258
 
11244
- /* harmony import */ var _react_components_matrix_row__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../react/components/matrix/row */ "./src/react/components/matrix/row.tsx");
11245
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixRow", function() { return _react_components_matrix_row__WEBPACK_IMPORTED_MODULE_71__["MatrixRow"]; });
11259
+ /* harmony import */ var _react_components_question_error__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../react/components/question-error */ "./src/react/components/question-error.tsx");
11260
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionErrorComponent", function() { return _react_components_question_error__WEBPACK_IMPORTED_MODULE_71__["QuestionErrorComponent"]; });
11246
11261
 
11247
- /* harmony import */ var _react_components_skeleton__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../react/components/skeleton */ "./src/react/components/skeleton.tsx");
11248
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Skeleton", function() { return _react_components_skeleton__WEBPACK_IMPORTED_MODULE_72__["Skeleton"]; });
11262
+ /* harmony import */ var _react_components_matrix_row__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../react/components/matrix/row */ "./src/react/components/matrix/row.tsx");
11263
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixRow", function() { return _react_components_matrix_row__WEBPACK_IMPORTED_MODULE_72__["MatrixRow"]; });
11249
11264
 
11250
- /* harmony import */ var _react_components_notifier__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../react/components/notifier */ "./src/react/components/notifier.tsx");
11251
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NotifierComponent", function() { return _react_components_notifier__WEBPACK_IMPORTED_MODULE_73__["NotifierComponent"]; });
11265
+ /* harmony import */ var _react_components_skeleton__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../react/components/skeleton */ "./src/react/components/skeleton.tsx");
11266
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Skeleton", function() { return _react_components_skeleton__WEBPACK_IMPORTED_MODULE_73__["Skeleton"]; });
11252
11267
 
11253
- /* harmony import */ var _react_components_components_container__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../react/components/components-container */ "./src/react/components/components-container.tsx");
11254
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentsContainer", function() { return _react_components_components_container__WEBPACK_IMPORTED_MODULE_74__["ComponentsContainer"]; });
11268
+ /* harmony import */ var _react_components_notifier__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../react/components/notifier */ "./src/react/components/notifier.tsx");
11269
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NotifierComponent", function() { return _react_components_notifier__WEBPACK_IMPORTED_MODULE_74__["NotifierComponent"]; });
11255
11270
 
11256
- /* harmony import */ var _react_components_character_counter__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../react/components/character-counter */ "./src/react/components/character-counter.tsx");
11257
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CharacterCounterComponent", function() { return _react_components_character_counter__WEBPACK_IMPORTED_MODULE_75__["CharacterCounterComponent"]; });
11271
+ /* harmony import */ var _react_components_components_container__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../react/components/components-container */ "./src/react/components/components-container.tsx");
11272
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentsContainer", function() { return _react_components_components_container__WEBPACK_IMPORTED_MODULE_75__["ComponentsContainer"]; });
11258
11273
 
11259
- /* harmony import */ var _react_components_header__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../react/components/header */ "./src/react/components/header.tsx");
11260
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderMobile", function() { return _react_components_header__WEBPACK_IMPORTED_MODULE_76__["HeaderMobile"]; });
11274
+ /* harmony import */ var _react_components_character_counter__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../react/components/character-counter */ "./src/react/components/character-counter.tsx");
11275
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CharacterCounterComponent", function() { return _react_components_character_counter__WEBPACK_IMPORTED_MODULE_76__["CharacterCounterComponent"]; });
11261
11276
 
11262
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderCell", function() { return _react_components_header__WEBPACK_IMPORTED_MODULE_76__["HeaderCell"]; });
11277
+ /* harmony import */ var _react_components_header__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../react/components/header */ "./src/react/components/header.tsx");
11278
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderMobile", function() { return _react_components_header__WEBPACK_IMPORTED_MODULE_77__["HeaderMobile"]; });
11263
11279
 
11264
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Header", function() { return _react_components_header__WEBPACK_IMPORTED_MODULE_76__["Header"]; });
11280
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderCell", function() { return _react_components_header__WEBPACK_IMPORTED_MODULE_77__["HeaderCell"]; });
11265
11281
 
11266
- /* harmony import */ var _react_string_viewer__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../react/string-viewer */ "./src/react/string-viewer.tsx");
11267
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyLocStringViewer", function() { return _react_string_viewer__WEBPACK_IMPORTED_MODULE_77__["SurveyLocStringViewer"]; });
11282
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Header", function() { return _react_components_header__WEBPACK_IMPORTED_MODULE_77__["Header"]; });
11268
11283
 
11269
- /* harmony import */ var _react_string_editor__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../react/string-editor */ "./src/react/string-editor.tsx");
11270
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyLocStringEditor", function() { return _react_string_editor__WEBPACK_IMPORTED_MODULE_78__["SurveyLocStringEditor"]; });
11284
+ /* harmony import */ var _react_string_viewer__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../react/string-viewer */ "./src/react/string-viewer.tsx");
11285
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyLocStringViewer", function() { return _react_string_viewer__WEBPACK_IMPORTED_MODULE_78__["SurveyLocStringViewer"]; });
11271
11286
 
11272
- /* harmony import */ var _react_components_loading_indicator__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../react/components/loading-indicator */ "./src/react/components/loading-indicator.tsx");
11273
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LoadingIndicatorComponent", function() { return _react_components_loading_indicator__WEBPACK_IMPORTED_MODULE_79__["LoadingIndicatorComponent"]; });
11287
+ /* harmony import */ var _react_string_editor__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../react/string-editor */ "./src/react/string-editor.tsx");
11288
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyLocStringEditor", function() { return _react_string_editor__WEBPACK_IMPORTED_MODULE_79__["SurveyLocStringEditor"]; });
11274
11289
 
11275
- /* harmony import */ var _react_svgbundle__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../react/svgbundle */ "./src/react/svgbundle.tsx");
11276
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SvgBundleComponent", function() { return _react_svgbundle__WEBPACK_IMPORTED_MODULE_80__["SvgBundleComponent"]; });
11290
+ /* harmony import */ var _react_components_loading_indicator__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../react/components/loading-indicator */ "./src/react/components/loading-indicator.tsx");
11291
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LoadingIndicatorComponent", function() { return _react_components_loading_indicator__WEBPACK_IMPORTED_MODULE_80__["LoadingIndicatorComponent"]; });
11292
+
11293
+ /* harmony import */ var _react_svgbundle__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../react/svgbundle */ "./src/react/svgbundle.tsx");
11294
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SvgBundleComponent", function() { return _react_svgbundle__WEBPACK_IMPORTED_MODULE_81__["SvgBundleComponent"]; });
11277
11295
 
11278
11296
  // react
11279
11297
 
@@ -11355,6 +11373,7 @@ __webpack_require__.r(__webpack_exports__);
11355
11373
 
11356
11374
 
11357
11375
 
11376
+
11358
11377
 
11359
11378
 
11360
11379
  //Uncomment to include the "date" question type.
@@ -11367,7 +11386,7 @@ __webpack_require__.r(__webpack_exports__);
11367
11386
  /*!******************************!*\
11368
11387
  !*** ./src/entries/react.ts ***!
11369
11388
  \******************************/
11370
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedErrorRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, InputMaskBase, InputMaskPattern, InputMaskNumeric, InputMaskDateTime, InputMaskCurrency, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AnimationUtils, AnimationPropertyUtils, AnimationGroupUtils, AnimationProperty, AnimationBoolean, AnimationGroup, AnimationTab, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionMatrixCell, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent, SvgBundleComponent */
11389
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedErrorRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, InputMaskBase, InputMaskPattern, InputMaskNumeric, InputMaskDateTime, InputMaskCurrency, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AnimationUtils, AnimationPropertyUtils, AnimationGroupUtils, AnimationProperty, AnimationBoolean, AnimationGroup, AnimationTab, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionMatrixCell, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, QuestionErrorComponent, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent, SvgBundleComponent */
11371
11390
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
11372
11391
 
11373
11392
  "use strict";
@@ -12020,6 +12039,8 @@ __webpack_require__.r(__webpack_exports__);
12020
12039
 
12021
12040
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyNavigationButton", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_3__["SurveyNavigationButton"]; });
12022
12041
 
12042
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionErrorComponent", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_3__["QuestionErrorComponent"]; });
12043
+
12023
12044
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixRow", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_3__["MatrixRow"]; });
12024
12045
 
12025
12046
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Skeleton", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_3__["Skeleton"]; });
@@ -20434,10 +20455,18 @@ var JsonMetadata = /** @class */ (function () {
20434
20455
  return metaClass.getAllProperties();
20435
20456
  };
20436
20457
  JsonMetadata.prototype.getPropertiesByObj = function (obj) {
20437
- if (!obj || !obj.getType)
20458
+ var type = !!obj && !!obj.getType ? obj.getType() : undefined;
20459
+ if (!type)
20438
20460
  return [];
20439
- var props = this.getProperties(obj.getType());
20461
+ var props = this.getProperties(type);
20440
20462
  var dynamicProps = this.getDynamicPropertiesByObj(obj);
20463
+ for (var i = dynamicProps.length - 1; i >= 0; i--) {
20464
+ if (this.findProperty(type, dynamicProps[i].name)) {
20465
+ dynamicProps.splice(i, 1);
20466
+ }
20467
+ }
20468
+ if (dynamicProps.length === 0)
20469
+ return props;
20441
20470
  return [].concat(props).concat(dynamicProps);
20442
20471
  };
20443
20472
  JsonMetadata.prototype.addDynamicPropertiesIntoObj = function (dest, src, props) {
@@ -21148,7 +21177,7 @@ var JsonObject = /** @class */ (function () {
21148
21177
  this.removePosFromObj(value);
21149
21178
  };
21150
21179
  JsonObject.prototype.removePosFromObj = function (obj) {
21151
- if (!obj)
21180
+ if (!obj || typeof obj.getType === "function")
21152
21181
  return;
21153
21182
  if (Array.isArray(obj)) {
21154
21183
  for (var i = 0; i < obj.length; i++) {
@@ -21365,11 +21394,10 @@ var defaultListCss = {
21365
21394
  };
21366
21395
  var ListModel = /** @class */ (function (_super) {
21367
21396
  __extends(ListModel, _super);
21368
- function ListModel(items, onSelectionChanged, allowSelection, selectedItem, onFilterStringChangedCallback, elementId) {
21397
+ function ListModel(items, onSelectionChanged, allowSelection, selectedItem, elementId) {
21369
21398
  var _this = _super.call(this) || this;
21370
21399
  _this.onSelectionChanged = onSelectionChanged;
21371
21400
  _this.allowSelection = allowSelection;
21372
- _this.onFilterStringChangedCallback = onFilterStringChangedCallback;
21373
21401
  _this.elementId = elementId;
21374
21402
  _this.onItemClick = function (itemValue) {
21375
21403
  if (_this.isItemDisabled(itemValue)) {
@@ -23646,7 +23674,7 @@ var englishStrings = {
23646
23674
  questionsProgressText: "Answered {0}/{1} questions",
23647
23675
  emptySurvey: "The survey doesn't contain any visible elements.",
23648
23676
  completingSurvey: "Thank you for completing the survey",
23649
- completingSurveyBefore: "Our records show that you have already completed this survey.",
23677
+ completingSurveyBefore: "You have already completed this survey.",
23650
23678
  loadingSurvey: "Loading Survey...",
23651
23679
  placeholder: "Select...",
23652
23680
  ratingOptionsCaption: "Select...",
@@ -23696,7 +23724,7 @@ var englishStrings = {
23696
23724
  savingData: "The results are being saved on the server...",
23697
23725
  savingDataError: "An error occurred and we could not save the results.",
23698
23726
  savingDataSuccess: "The results were saved successfully!",
23699
- savingExceedSize: "Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.",
23727
+ savingExceedSize: "Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact the survey owner.",
23700
23728
  saveAgainButton: "Try again",
23701
23729
  timerMin: "min",
23702
23730
  timerSec: "sec",
@@ -24416,7 +24444,7 @@ var germanSurveyStrings = {
24416
24444
  startSurveyText: "Start",
24417
24445
  otherItemText: "Sonstiges (Bitte angeben)",
24418
24446
  noneItemText: "Nichts trifft zu",
24419
- refuseItemText: "Verweigern Sie die Antwort",
24447
+ refuseItemText: "Antwort verweigern",
24420
24448
  dontKnowItemText: "Weiß ich nicht",
24421
24449
  selectAllItemText: "Alles auswählen",
24422
24450
  progressText: "Seite {0} von {1}",
@@ -24426,7 +24454,7 @@ var germanSurveyStrings = {
24426
24454
  questionsProgressText: "{0}/{1} Fragen beantwortet",
24427
24455
  emptySurvey: "Es sind keine Fragen vorhanden.",
24428
24456
  completingSurvey: "Vielen Dank, dass Sie die Umfrage abgeschlossen haben!",
24429
- completingSurveyBefore: "Aus unseren Unterlagen geht hervor, dass Sie diese Umfrage bereits abgeschlossen haben.",
24457
+ completingSurveyBefore: "Sie haben diese Umfrage bereits abgeschlossen.",
24430
24458
  loadingSurvey: "Umfrage wird geladen...",
24431
24459
  placeholder: "Bitte auswählen...",
24432
24460
  ratingOptionsCaption: "Tippen Sie hier, um zu bewerten...",
@@ -24476,7 +24504,7 @@ var germanSurveyStrings = {
24476
24504
  savingData: "Die Ergebnisse werden auf dem Server gespeichert...",
24477
24505
  savingDataError: "Es ist ein Fehler aufgetreten. Die Ergebnisse konnten nicht gespeichert werden.",
24478
24506
  savingDataSuccess: "Die Ergebnisse wurden gespeichert!",
24479
- savingExceedSize: "Ihre Antwort überschreitet 64 KB. Reduzieren Sie die Größe Ihrer Datei(en) und versuchen Sie es erneut, oder wenden Sie sich an einen Umfragebesitzer.",
24507
+ savingExceedSize: "Ihre Antwort überschreitet 64 KB. Reduzieren Sie die Größe Ihrer Datei(en) und versuchen Sie es erneut, oder wenden Sie sich an den Umfragebesitzer.",
24480
24508
  saveAgainButton: "Erneut absenden",
24481
24509
  timerMin: "Min.",
24482
24510
  timerSec: "Sek.",
@@ -24492,7 +24520,7 @@ var germanSurveyStrings = {
24492
24520
  chooseFileCaption: "Datei auswählen",
24493
24521
  takePhotoCaption: "Foto machen",
24494
24522
  photoPlaceholder: "Klicken Sie auf die Schaltfläche unten, um ein Foto mit der Kamera aufzunehmen.",
24495
- fileOrPhotoPlaceholder: "Ziehen Sie eine Datei per Drag & Drop oder wählen Sie sie aus, um sie hochzuladen oder ein Foto mit der Kamera aufzunehmen.",
24523
+ fileOrPhotoPlaceholder: "Ziehen Sie eine Datei per Drag & Drop oder wählen Sie sie aus, um sie hochzuladen oder machen Sie ein Foto mit der Kamera.",
24496
24524
  replaceFileCaption: "Datei ersetzen",
24497
24525
  removeFileCaption: "Datei löschen",
24498
24526
  booleanCheckedLabel: "Ja",
@@ -24502,38 +24530,21 @@ var germanSurveyStrings = {
24502
24530
  questionTitlePatternText: "Fragentitel",
24503
24531
  modalCancelButtonText: "Abbrechen",
24504
24532
  modalApplyButtonText: "Anwenden",
24505
- filterStringPlaceholder: "Tippe um zu suchen...",
24533
+ filterStringPlaceholder: "Tippen Sie, um zu suchen...",
24506
24534
  emptyMessage: "Es gibt noch keine Daten.",
24507
24535
  noEntriesText: "Es gibt noch keine Einträge.\nKlicken Sie auf die Schaltfläche unten, um einen neuen Eintrag hinzuzufügen.",
24508
24536
  noEntriesReadonlyText: "Es gibt keine Einträge.",
24509
24537
  more: "Mehr",
24510
- tagboxDoneButtonCaption: "OKAY",
24538
+ tagboxDoneButtonCaption: "OK",
24511
24539
  selectToRankEmptyRankedAreaText: "Alle Auswahlmöglichkeiten sind in einer Rangfolge angeordnet",
24512
24540
  selectToRankEmptyUnrankedAreaText: "Ziehen Sie die Auswahl hierher, um sie zu ordnen",
24513
- ok: "OKAY",
24541
+ ok: "OK",
24514
24542
  cancel: "Abbrechen"
24515
24543
  };
24516
24544
  survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].locales["de"] = germanSurveyStrings;
24517
24545
  survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["de"] = "deutsch";
24518
24546
  // The following strings have been translated by a machine translation service
24519
24547
  // Remove those strings that you have corrected manually
24520
- // panelDynamicTabTextFormat: "Panel {panelIndex}" => "Bereich {panelIndex}"
24521
- // noEntriesReadonlyText: "There are no entries." => "Es gibt keine Einträge."
24522
- // tagboxDoneButtonCaption: "OK" => "OKAY"
24523
- // selectToRankEmptyRankedAreaText: "All choices are ranked" => "Alle Auswahlmöglichkeiten sind in einer Rangfolge angeordnet"
24524
- // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Ziehen Sie die Auswahl hierher, um sie zu ordnen"// takePhotoCaption: "Take Photo" => "Foto machen"
24525
- // photoPlaceholder: "Click the button below to take a photo using the camera." => "Klicken Sie auf die Schaltfläche unten, um ein Foto mit der Kamera aufzunehmen."
24526
- // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Ziehen Sie eine Datei per Drag & Drop oder wählen Sie sie aus, um sie hochzuladen oder ein Foto mit der Kamera aufzunehmen."
24527
- // replaceFileCaption: "Replace file" => "Datei ersetzen"// eachRowUniqueError: "Each row must have a unique value." => "Jede Zeile muss einen eindeutigen Wert haben."
24528
- // noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Dateien können nicht hochgeladen werden. Fügen Sie einen Handler für das Ereignis 'onUploadFiles' hinzu."
24529
- // showDetails: "Show Details" => "Details anzeigen"
24530
- // hideDetails: "Hide Details" => "Details ausblenden"
24531
- // ok: "OK" => "OKAY"
24532
- // cancel: "Cancel" => "Abbrechen"
24533
- // refuseItemText: "Refuse to answer" => "Verweigern Sie die Antwort"
24534
- // dontKnowItemText: "Don't know" => "Weiß ich nicht"
24535
- // savingExceedSize: "Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner." => "Ihre Antwort überschreitet 64 KB. Reduzieren Sie die Größe Ihrer Datei(en) und versuchen Sie es erneut, oder wenden Sie sich an einen Umfragebesitzer."
24536
- // signaturePlaceHolderReadOnly: "No signature" => "Keine Unterschrift"
24537
24548
 
24538
24549
 
24539
24550
  /***/ }),
@@ -31899,8 +31910,8 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
31899
31910
 
31900
31911
  var MultiSelectListModel = /** @class */ (function (_super) {
31901
31912
  __extends(MultiSelectListModel, _super);
31902
- function MultiSelectListModel(items, onSelectionChanged, allowSelection, selectedItems, onFilterStringChangedCallback, elementId) {
31903
- var _this = _super.call(this, items, onSelectionChanged, allowSelection, undefined, onFilterStringChangedCallback, elementId) || this;
31913
+ function MultiSelectListModel(items, onSelectionChanged, allowSelection, selectedItems, elementId) {
31914
+ var _this = _super.call(this, items, onSelectionChanged, allowSelection, undefined, elementId) || this;
31904
31915
  _this.onItemClick = function (item) {
31905
31916
  if (_this.isItemDisabled(item))
31906
31917
  return;
@@ -32134,7 +32145,6 @@ var PageModel = /** @class */ (function (_super) {
32134
32145
  return _this.num + ". " + text;
32135
32146
  return text;
32136
32147
  };
32137
- _this.createLocalizableString("navigationTitle", _this, true);
32138
32148
  _this.createLocalizableString("navigationDescription", _this, true);
32139
32149
  _this.dragDropPageHelper = new _drag_drop_page_helper_v1__WEBPACK_IMPORTED_MODULE_3__["DragDropPageHelperV1"](_this);
32140
32150
  return _this;
@@ -32173,13 +32183,6 @@ var PageModel = /** @class */ (function (_super) {
32173
32183
  enumerable: false,
32174
32184
  configurable: true
32175
32185
  });
32176
- Object.defineProperty(PageModel.prototype, "locNavigationTitle", {
32177
- get: function () {
32178
- return this.getLocalizableString("navigationTitle");
32179
- },
32180
- enumerable: false,
32181
- configurable: true
32182
- });
32183
32186
  Object.defineProperty(PageModel.prototype, "navigationDescription", {
32184
32187
  /**
32185
32188
  * Explanatory text displayed under a navigation button in the progress bar. Applies when the [progress bar is visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showProgressBar), `SurveyModel`'s [`progressBarType`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarType) is set to `"pages"`, and [`progressBarShowPageTitles`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarShowPageTitles) is `true`.
@@ -32201,16 +32204,12 @@ var PageModel = /** @class */ (function (_super) {
32201
32204
  configurable: true
32202
32205
  });
32203
32206
  PageModel.prototype.navigationLocStrChanged = function () {
32207
+ if (this.locNavigationTitle.isEmpty) {
32208
+ this.locTitle.strChanged();
32209
+ }
32204
32210
  this.locNavigationTitle.strChanged();
32205
32211
  this.locNavigationDescription.strChanged();
32206
32212
  };
32207
- Object.defineProperty(PageModel.prototype, "renderedNavigationTitle", {
32208
- get: function () {
32209
- return this.locNavigationTitle.renderedHtml || this.title || this.name;
32210
- },
32211
- enumerable: false,
32212
- configurable: true
32213
- });
32214
32213
  Object.defineProperty(PageModel.prototype, "passed", {
32215
32214
  get: function () {
32216
32215
  return this.getPropertyValue("passed", false);
@@ -32852,6 +32851,9 @@ var PanelModelBase = /** @class */ (function (_super) {
32852
32851
  _this.addExpressionProperty("enableIf", function (obj, res) { _this.readOnly = res === false; });
32853
32852
  _this.addExpressionProperty("requiredIf", function (obj, res) { _this.isRequired = res === true; });
32854
32853
  _this.createLocalizableString("requiredErrorText", _this);
32854
+ _this.createLocalizableString("navigationTitle", _this, true).onGetTextCallback = function (text) {
32855
+ return text || _this.title || _this.name;
32856
+ };
32855
32857
  _this.registerPropertyChangedHandlers(["questionTitleLocation"], function () {
32856
32858
  _this.onVisibleChanged.bind(_this);
32857
32859
  _this.updateElementCss(true);
@@ -32968,9 +32970,22 @@ var PanelModelBase = /** @class */ (function (_super) {
32968
32970
  this.elements[i].locStrsChanged();
32969
32971
  }
32970
32972
  };
32973
+ PanelModelBase.prototype.getMarkdownHtml = function (text, name) {
32974
+ if (name === "navigationTitle" && this.locNavigationTitle.isEmpty) {
32975
+ return this.locTitle.renderedHtml || this.name;
32976
+ }
32977
+ return _super.prototype.getMarkdownHtml.call(this, text, name);
32978
+ };
32979
+ Object.defineProperty(PanelModelBase.prototype, "locNavigationTitle", {
32980
+ get: function () {
32981
+ return this.getLocalizableString("navigationTitle");
32982
+ },
32983
+ enumerable: false,
32984
+ configurable: true
32985
+ });
32971
32986
  Object.defineProperty(PanelModelBase.prototype, "renderedNavigationTitle", {
32972
32987
  get: function () {
32973
- return this.title || this.name;
32988
+ return this.locNavigationTitle.renderedHtml;
32974
32989
  },
32975
32990
  enumerable: false,
32976
32991
  configurable: true
@@ -33482,7 +33497,7 @@ var PanelModelBase = /** @class */ (function (_super) {
33482
33497
  if (rec.result !== true)
33483
33498
  rec.result = false;
33484
33499
  this.hasErrorsCore(rec);
33485
- if (rec.firstErrorQuestion) {
33500
+ if (rec.focuseOnFirstError && rec.firstErrorQuestion) {
33486
33501
  rec.firstErrorQuestion.focus(true);
33487
33502
  }
33488
33503
  return !rec.result;
@@ -37161,14 +37176,30 @@ __webpack_require__.r(__webpack_exports__);
37161
37176
  /* harmony import */ var _popup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./popup */ "./src/popup.ts");
37162
37177
  /* harmony import */ var _popup_dropdown_view_model__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./popup-dropdown-view-model */ "./src/popup-dropdown-view-model.ts");
37163
37178
  /* harmony import */ var _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./popup-modal-view-model */ "./src/popup-modal-view-model.ts");
37179
+ var __assign = (undefined && undefined.__assign) || function () {
37180
+ __assign = Object.assign || function(t) {
37181
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
37182
+ s = arguments[i];
37183
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
37184
+ t[p] = s[p];
37185
+ }
37186
+ return t;
37187
+ };
37188
+ return __assign.apply(this, arguments);
37189
+ };
37164
37190
 
37165
37191
 
37166
37192
 
37167
37193
 
37168
37194
  function createPopupModalViewModel(options, rootElement) {
37169
37195
  var _a;
37170
- var popupModel = new _popup__WEBPACK_IMPORTED_MODULE_1__["PopupModel"](options.componentName, options.data, "top", "left", false, true, options.onCancel, options.onApply, options.onHide, options.onShow, options.cssClass, options.title);
37171
- popupModel.displayMode = options.displayMode || "popup";
37196
+ var popupOptions = __assign({}, options);
37197
+ popupOptions.verticalPosition = "top";
37198
+ popupOptions.horizontalPosition = "left";
37199
+ popupOptions.showPointer = false;
37200
+ popupOptions.isModal = true;
37201
+ popupOptions.displayMode = options.displayMode || "popup";
37202
+ var popupModel = new _popup__WEBPACK_IMPORTED_MODULE_1__["PopupModel"](options.componentName, options.data, popupOptions);
37172
37203
  popupModel.isFocusedContent = (_a = options.isFocusedContent) !== null && _a !== void 0 ? _a : true;
37173
37204
  var popupViewModel = new _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_3__["PopupModalViewModel"](popupModel);
37174
37205
  if (!!rootElement && !!rootElement.appendChild) {
@@ -37672,36 +37703,29 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
37672
37703
 
37673
37704
  var PopupModel = /** @class */ (function (_super) {
37674
37705
  __extends(PopupModel, _super);
37675
- function PopupModel(contentComponentName, contentComponentData, verticalPosition, horizontalPosition, showPointer, isModal, onCancel, onApply, onHide, onShow, cssClass, title, onDispose) {
37676
- if (verticalPosition === void 0) { verticalPosition = "bottom"; }
37677
- if (horizontalPosition === void 0) { horizontalPosition = "left"; }
37678
- if (showPointer === void 0) { showPointer = true; }
37679
- if (isModal === void 0) { isModal = false; }
37680
- if (onCancel === void 0) { onCancel = function () { }; }
37681
- if (onApply === void 0) { onApply = function () { return true; }; }
37682
- if (onHide === void 0) { onHide = function () { }; }
37683
- if (onShow === void 0) { onShow = function () { }; }
37684
- if (cssClass === void 0) { cssClass = ""; }
37685
- if (title === void 0) { title = ""; }
37686
- if (onDispose === void 0) { onDispose = function () { }; }
37706
+ function PopupModel(contentComponentName, contentComponentData, option1, option2) {
37687
37707
  var _this = _super.call(this) || this;
37688
- _this.onDispose = onDispose;
37689
37708
  _this.focusFirstInputSelector = "";
37709
+ _this.onCancel = function () { };
37710
+ _this.onApply = function () { return true; };
37711
+ _this.onHide = function () { };
37712
+ _this.onShow = function () { };
37713
+ _this.onDispose = function () { };
37690
37714
  _this.onVisibilityChanged = _this.addEvent();
37691
37715
  _this.onFooterActionsCreated = _this.addEvent();
37692
37716
  _this.onRecalculatePosition = _this.addEvent();
37693
37717
  _this.contentComponentName = contentComponentName;
37694
37718
  _this.contentComponentData = contentComponentData;
37695
- _this.verticalPosition = verticalPosition;
37696
- _this.horizontalPosition = horizontalPosition;
37697
- _this.showPointer = showPointer;
37698
- _this.isModal = isModal;
37699
- _this.onCancel = onCancel;
37700
- _this.onApply = onApply;
37701
- _this.onHide = onHide;
37702
- _this.onShow = onShow;
37703
- _this.cssClass = cssClass;
37704
- _this.title = title;
37719
+ if (!!option1 && typeof option1 === "string") {
37720
+ _this.verticalPosition = option1;
37721
+ _this.horizontalPosition = option2;
37722
+ }
37723
+ else if (!!option1) {
37724
+ var popupOptions = option1;
37725
+ for (var key in popupOptions) {
37726
+ _this[key] = popupOptions[key];
37727
+ }
37728
+ }
37705
37729
  return _this;
37706
37730
  }
37707
37731
  PopupModel.prototype.refreshInnerModel = function () {
@@ -37757,7 +37781,7 @@ var PopupModel = /** @class */ (function (_super) {
37757
37781
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: "left" })
37758
37782
  ], PopupModel.prototype, "horizontalPosition", void 0);
37759
37783
  __decorate([
37760
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
37784
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: true })
37761
37785
  ], PopupModel.prototype, "showPointer", void 0);
37762
37786
  __decorate([
37763
37787
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
@@ -37768,18 +37792,6 @@ var PopupModel = /** @class */ (function (_super) {
37768
37792
  __decorate([
37769
37793
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: true })
37770
37794
  ], PopupModel.prototype, "isFocusedContainer", void 0);
37771
- __decorate([
37772
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: function () { } })
37773
- ], PopupModel.prototype, "onCancel", void 0);
37774
- __decorate([
37775
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: function () { return true; } })
37776
- ], PopupModel.prototype, "onApply", void 0);
37777
- __decorate([
37778
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: function () { } })
37779
- ], PopupModel.prototype, "onHide", void 0);
37780
- __decorate([
37781
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: function () { } })
37782
- ], PopupModel.prototype, "onShow", void 0);
37783
37795
  __decorate([
37784
37796
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: "" })
37785
37797
  ], PopupModel.prototype, "cssClass", void 0);
@@ -40938,7 +40950,6 @@ var Question = /** @class */ (function (_super) {
40938
40950
  };
40939
40951
  Question.prototype.isDefaultRendering = function () {
40940
40952
  return (!!this.customWidget ||
40941
- this.renderAs === "default" ||
40942
40953
  this.getComponentName() === "default");
40943
40954
  };
40944
40955
  //ISurveyErrorOwner
@@ -41762,7 +41773,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
41762
41773
  return "itemvalue";
41763
41774
  };
41764
41775
  QuestionSelectBase.prototype.createItemValue = function (value, text) {
41765
- var res = _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].createClass(this.getItemValueType(), value);
41776
+ var res = _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].createClass(this.getItemValueType(), { value: value });
41766
41777
  res.locOwner = this;
41767
41778
  if (!!text)
41768
41779
  res.text = text;
@@ -42216,7 +42227,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
42216
42227
  QuestionSelectBase.prototype.canSurveyChangeItemVisibility = function () {
42217
42228
  return !!this.survey && this.survey.canChangeChoiceItemsVisibility();
42218
42229
  };
42219
- QuestionSelectBase.prototype.changeItemVisisbility = function () {
42230
+ QuestionSelectBase.prototype.changeItemVisibility = function () {
42220
42231
  var _this = this;
42221
42232
  return this.canSurveyChangeItemVisibility() ?
42222
42233
  function (item, val) { return _this.survey.getChoiceItemVisibility(_this, item, val); }
@@ -42224,7 +42235,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
42224
42235
  };
42225
42236
  QuestionSelectBase.prototype.runConditionsForItems = function (values, properties) {
42226
42237
  this.filteredChoicesValue = [];
42227
- var calcVisibility = this.changeItemVisisbility();
42238
+ var calcVisibility = this.changeItemVisibility();
42228
42239
  return _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"].runConditionsForItems(this.activeChoices, this.getFilteredChoices(), this.areInvisibleElementsShowing
42229
42240
  ? null
42230
42241
  : this.conditionChoicesVisibleIfRunner, values, properties, !this.survey || !this.survey.areInvisibleElementsShowing, function (item, val) {
@@ -42882,7 +42893,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
42882
42893
  QuestionSelectBase.prototype.canShowOptionItem = function (item, isAddAll, hasItem) {
42883
42894
  var res = (isAddAll && (!!this.canShowOptionItemCallback ? this.canShowOptionItemCallback(item) : true)) || hasItem;
42884
42895
  if (this.canSurveyChangeItemVisibility()) {
42885
- var calc = this.changeItemVisisbility();
42896
+ var calc = this.changeItemVisibility();
42886
42897
  return calc(item, res);
42887
42898
  }
42888
42899
  return res;
@@ -43430,8 +43441,8 @@ var QuestionSelectBase = /** @class */ (function (_super) {
43430
43441
  var superVal = _super.prototype.isVisibleCore.call(this);
43431
43442
  if (!this.hideIfChoicesEmpty || !superVal)
43432
43443
  return superVal;
43433
- var filteredChoices = this.getFilteredChoices();
43434
- return !filteredChoices || filteredChoices.length > 0;
43444
+ var choices = this.isUsingCarryForward ? this.visibleChoices : this.getFilteredChoices();
43445
+ return !choices || choices.length > 0;
43435
43446
  };
43436
43447
  QuestionSelectBase.prototype.sortVisibleChoices = function (array) {
43437
43448
  if (this.isDesignMode)
@@ -44151,6 +44162,7 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
44151
44162
  this.value = val == true ? this.getValueTrue() : this.getValueFalse();
44152
44163
  this.booleanValueRendered = val;
44153
44164
  }
44165
+ this.updateThumbMargin();
44154
44166
  };
44155
44167
  Object.defineProperty(QuestionBooleanModel.prototype, "defaultValue", {
44156
44168
  get: function () {
@@ -44190,6 +44202,27 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
44190
44202
  enumerable: false,
44191
44203
  configurable: true
44192
44204
  });
44205
+ QuestionBooleanModel.prototype.updateThumbMargin = function () {
44206
+ var _this = this;
44207
+ if (!this.isIndeterminate && this.leftAnswerElement) {
44208
+ if (!this.swapOrder && this.value === this.getValueTrue() || this.swapOrder && this.value === this.getValueFalse()) {
44209
+ var el_1 = this.leftAnswerElement;
44210
+ setTimeout(function () {
44211
+ _this.thumbMargin = el_1.clientWidth + (_this.swapOrder ? 4 : 2) + "px";
44212
+ }, 50);
44213
+ }
44214
+ }
44215
+ this.thumbMargin = undefined;
44216
+ };
44217
+ QuestionBooleanModel.prototype.afterRender = function (el) {
44218
+ _super.prototype.afterRender.call(this, el);
44219
+ this.leftAnswerElement = el.querySelectorAll("." + this.cssClasses.sliderGhost)[0];
44220
+ this.updateThumbMargin();
44221
+ };
44222
+ QuestionBooleanModel.prototype.beforeDestroyQuestionElement = function (el) {
44223
+ _super.prototype.beforeDestroyQuestionElement.call(this, el);
44224
+ this.leftAnswerElement = undefined;
44225
+ };
44193
44226
  Object.defineProperty(QuestionBooleanModel.prototype, "isLabelRendered", {
44194
44227
  get: function () {
44195
44228
  return this.titleLocation === "hidden";
@@ -44460,6 +44493,12 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
44460
44493
  __decorate([
44461
44494
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
44462
44495
  ], QuestionBooleanModel.prototype, "booleanValueRendered", void 0);
44496
+ __decorate([
44497
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
44498
+ ], QuestionBooleanModel.prototype, "leftAnswerElement", void 0);
44499
+ __decorate([
44500
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
44501
+ ], QuestionBooleanModel.prototype, "thumbMargin", void 0);
44463
44502
  __decorate([
44464
44503
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
44465
44504
  ], QuestionBooleanModel.prototype, "showTitle", void 0);
@@ -45393,7 +45432,7 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
45393
45432
  QuestionCheckboxModel.prototype.getConditionJson = function (operator, path) {
45394
45433
  if (operator === void 0) { operator = null; }
45395
45434
  if (path === void 0) { path = null; }
45396
- var json = _super.prototype.getConditionJson.call(this);
45435
+ var json = _super.prototype.getConditionJson.call(this, operator, path);
45397
45436
  if (operator == "contains" || operator == "notcontains") {
45398
45437
  json["type"] = "radiogroup";
45399
45438
  }
@@ -47320,7 +47359,13 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
47320
47359
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: "" })
47321
47360
  ], QuestionDropdownModel.prototype, "readOnlyText", void 0);
47322
47361
  __decorate([
47323
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
47362
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({
47363
+ onSet: function (newValue, target) {
47364
+ if (!!target.dropdownListModel) {
47365
+ target.dropdownListModel.setChoicesLazyLoadEnabled(newValue);
47366
+ }
47367
+ }
47368
+ })
47324
47369
  ], QuestionDropdownModel.prototype, "choicesLazyLoadEnabled", void 0);
47325
47370
  __decorate([
47326
47371
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
@@ -48221,6 +48266,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
48221
48266
  }
48222
48267
  };
48223
48268
  _this.createLocalizableString("takePhotoCaption", _this, false, true);
48269
+ _this.createLocalizableString("clearCaption", _this, false, true);
48224
48270
  _this.actionsContainer = new _actions_container__WEBPACK_IMPORTED_MODULE_7__["ActionContainer"]();
48225
48271
  _this.actionsContainer.locOwner = _this;
48226
48272
  _this.fileIndexAction = new _actions_action__WEBPACK_IMPORTED_MODULE_8__["Action"]({
@@ -48297,7 +48343,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
48297
48343
  iconName: "icon-clear",
48298
48344
  id: "sv-file-clean",
48299
48345
  iconSize: "auto",
48300
- title: new _base__WEBPACK_IMPORTED_MODULE_3__["ComputedUpdater"](function () { return _this.clearButtonCaption; }),
48346
+ locTitle: _this.locClearButtonCaption,
48301
48347
  showTitle: false,
48302
48348
  enabledIf: function () { return !_this.isInputReadOnly; },
48303
48349
  innerCss: new _base__WEBPACK_IMPORTED_MODULE_3__["ComputedUpdater"](function () { return _this.cssClasses.removeButton; }),
@@ -48609,6 +48655,23 @@ var QuestionFileModel = /** @class */ (function (_super) {
48609
48655
  enumerable: false,
48610
48656
  configurable: true
48611
48657
  });
48658
+ Object.defineProperty(QuestionFileModel.prototype, "clearButtonCaption", {
48659
+ get: function () {
48660
+ return this.getLocalizableStringText("clearCaption");
48661
+ },
48662
+ set: function (value) {
48663
+ this.setLocalizableStringText("clearCaption", value);
48664
+ },
48665
+ enumerable: false,
48666
+ configurable: true
48667
+ });
48668
+ Object.defineProperty(QuestionFileModel.prototype, "locClearButtonCaption", {
48669
+ get: function () {
48670
+ return this.getLocalizableString("clearCaption");
48671
+ },
48672
+ enumerable: false,
48673
+ configurable: true
48674
+ });
48612
48675
  Object.defineProperty(QuestionFileModel.prototype, "locRenderedPlaceholder", {
48613
48676
  get: function () {
48614
48677
  var _this = this;
@@ -49184,9 +49247,6 @@ var QuestionFileModel = /** @class */ (function (_super) {
49184
49247
  __decorate([
49185
49248
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: { defaultStr: "replaceFileCaption" } })
49186
49249
  ], QuestionFileModel.prototype, "replaceButtonCaption", void 0);
49187
- __decorate([
49188
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: { defaultStr: "clearCaption" } })
49189
- ], QuestionFileModel.prototype, "clearButtonCaption", void 0);
49190
49250
  __decorate([
49191
49251
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: { defaultStr: "removeFileCaption" } })
49192
49252
  ], QuestionFileModel.prototype, "removeFileCaption", void 0);
@@ -50208,6 +50268,9 @@ var QuestionImagePickerModel = /** @class */ (function (_super) {
50208
50268
  QuestionImagePickerModel.prototype.needResponsiveness = function () {
50209
50269
  return this.supportResponsiveness() && this.isDefaultV2Theme;
50210
50270
  };
50271
+ QuestionImagePickerModel.prototype.needResponsiveWidth = function () {
50272
+ return this.colCount > 2;
50273
+ };
50211
50274
  QuestionImagePickerModel.prototype.getCurrentColCount = function () {
50212
50275
  if (this.responsiveColCount === undefined || this.colCount === 0) {
50213
50276
  return this.colCount;
@@ -50439,6 +50502,9 @@ var MatrixRowModel = /** @class */ (function (_super) {
50439
50502
  if (_this.data)
50440
50503
  _this.data.onMatrixRowChanged(_this);
50441
50504
  });
50505
+ if (_this.data && _this.data.hasErrorInRow(_this)) {
50506
+ _this.hasError = true;
50507
+ }
50442
50508
  return _this;
50443
50509
  }
50444
50510
  Object.defineProperty(MatrixRowModel.prototype, "name", {
@@ -50489,11 +50555,21 @@ var MatrixRowModel = /** @class */ (function (_super) {
50489
50555
  enumerable: false,
50490
50556
  configurable: true
50491
50557
  });
50558
+ Object.defineProperty(MatrixRowModel.prototype, "hasError", {
50559
+ get: function () {
50560
+ return this.getPropertyValue("hasError", false);
50561
+ },
50562
+ set: function (val) {
50563
+ this.setPropertyValue("hasError", val);
50564
+ },
50565
+ enumerable: false,
50566
+ configurable: true
50567
+ });
50492
50568
  Object.defineProperty(MatrixRowModel.prototype, "rowClasses", {
50493
50569
  get: function () {
50494
50570
  var cssClasses = this.data.cssClasses;
50495
50571
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_11__["CssClassBuilder"]().append(cssClasses.row)
50496
- .append(cssClasses.rowError, this.data.hasErrorInRow(this))
50572
+ .append(cssClasses.rowError, this.hasError)
50497
50573
  .append(cssClasses.rowReadOnly, this.isReadOnly)
50498
50574
  .append(cssClasses.rowDisabled, this.data.isDisabledStyle)
50499
50575
  .toString();
@@ -50819,7 +50895,7 @@ var QuestionMatrixModel = /** @class */ (function (_super) {
50819
50895
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_11__["CssClassBuilder"]()
50820
50896
  .append(css.cell, hasCellText)
50821
50897
  .append(hasCellText ? css.cellText : css.label)
50822
- .append(css.itemOnError, !hasCellText && (this.isAllRowRequired ? this.hasErrorInRow(row) : this.hasCssError()))
50898
+ .append(css.itemOnError, !hasCellText && (this.isAllRowRequired || this.eachRowUnique ? row.hasError : this.hasCssError()))
50823
50899
  .append(hasCellText ? css.cellTextSelected : css.itemChecked, isChecked)
50824
50900
  .append(hasCellText ? css.cellTextDisabled : css.itemDisabled, this.isDisabledStyle)
50825
50901
  .append(hasCellText ? css.cellTextReadOnly : css.itemReadOnly, this.isReadOnlyStyle)
@@ -50949,72 +51025,76 @@ var QuestionMatrixModel = /** @class */ (function (_super) {
50949
51025
  return loc ? loc : this.emptyLocalizableString;
50950
51026
  };
50951
51027
  QuestionMatrixModel.prototype.supportGoNextPageAutomatic = function () {
50952
- return this.isMouseDown === true && this.hasValuesInAllRows(false);
51028
+ return this.isMouseDown === true && this.hasValuesInAllRows();
50953
51029
  };
50954
51030
  QuestionMatrixModel.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
50955
51031
  _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
50956
- this.errorsInRow = undefined;
50957
51032
  if (!isOnValueChanged || this.hasCssError()) {
50958
- if (this.hasErrorAllRowsRequired()) {
51033
+ var rowsErrors = { noValue: false, isNotUnique: false };
51034
+ this.checkErrorsAllRows(true, rowsErrors);
51035
+ if (rowsErrors.noValue) {
50959
51036
  errors.push(new _error__WEBPACK_IMPORTED_MODULE_6__["RequiredInAllRowsError"](null, this));
50960
51037
  }
50961
- if (this.hasErrorEachRowUnique()) {
51038
+ if (rowsErrors.isNotUnique) {
50962
51039
  errors.push(new _error__WEBPACK_IMPORTED_MODULE_6__["EachRowUniqueError"](null, this));
50963
51040
  }
50964
51041
  }
50965
51042
  };
50966
- QuestionMatrixModel.prototype.hasErrorAllRowsRequired = function () {
50967
- return this.isAllRowRequired && !this.hasValuesInAllRows(true);
50968
- };
50969
- QuestionMatrixModel.prototype.hasErrorEachRowUnique = function () {
50970
- return this.eachRowUnique && this.hasNonUniqueValueInRow();
51043
+ QuestionMatrixModel.prototype.hasValuesInAllRows = function () {
51044
+ var rowsErrors = { noValue: false, isNotUnique: false };
51045
+ this.checkErrorsAllRows(false, rowsErrors, true);
51046
+ return !rowsErrors.noValue;
50971
51047
  };
50972
- QuestionMatrixModel.prototype.hasValuesInAllRows = function (addError) {
51048
+ QuestionMatrixModel.prototype.checkErrorsAllRows = function (modifyErrors, res, allRowsRequired) {
51049
+ var _this = this;
50973
51050
  var rows = this.generatedVisibleRows;
50974
51051
  if (!rows)
50975
51052
  rows = this.visibleRows;
50976
51053
  if (!rows)
50977
- return true;
50978
- var res = true;
50979
- for (var i = 0; i < rows.length; i++) {
50980
- var row = rows[i];
50981
- var hasValue = !this.isValueEmpty(row.value);
50982
- if (addError && !hasValue) {
50983
- this.addErrorIntoRow(row);
50984
- }
50985
- res = res && hasValue;
51054
+ return;
51055
+ var rowsRequired = this.isAllRowRequired || allRowsRequired;
51056
+ var rowsUnique = this.eachRowUnique;
51057
+ res.noValue = false;
51058
+ res.isNotUnique = false;
51059
+ if (modifyErrors) {
51060
+ this.errorsInRow = undefined;
50986
51061
  }
50987
- return res;
50988
- };
50989
- QuestionMatrixModel.prototype.hasNonUniqueValueInRow = function () {
50990
- var rows = this.generatedVisibleRows;
50991
- if (!rows)
50992
- rows = this.visibleRows;
50993
- if (!rows)
50994
- return false;
51062
+ if (!rowsRequired && !rowsUnique)
51063
+ return;
50995
51064
  var hash = {};
50996
- var res = true;
50997
51065
  for (var i = 0; i < rows.length; i++) {
50998
51066
  var val = rows[i].value;
50999
51067
  var isEmpty = this.isValueEmpty(val);
51000
- var isUnique = isEmpty || hash[val] !== true;
51001
- if (!isUnique) {
51068
+ var isNotUnique = rowsUnique && (!isEmpty && hash[val] === true);
51069
+ isEmpty = isEmpty && rowsRequired;
51070
+ if (modifyErrors && (isEmpty || isNotUnique)) {
51002
51071
  this.addErrorIntoRow(rows[i]);
51003
51072
  }
51004
- res = res && isUnique;
51005
51073
  if (!isEmpty) {
51006
51074
  hash[val] = true;
51007
51075
  }
51076
+ res.noValue = res.noValue || isEmpty;
51077
+ res.isNotUnique = res.isNotUnique || isNotUnique;
51078
+ }
51079
+ if (modifyErrors) {
51080
+ rows.forEach(function (row) {
51081
+ row.hasError = _this.hasErrorInRow(row);
51082
+ });
51008
51083
  }
51009
- return !res;
51010
51084
  };
51011
51085
  QuestionMatrixModel.prototype.addErrorIntoRow = function (row) {
51012
51086
  if (!this.errorsInRow)
51013
51087
  this.errorsInRow = {};
51014
51088
  this.errorsInRow[row.name] = true;
51089
+ row.hasError = true;
51090
+ };
51091
+ QuestionMatrixModel.prototype.refreshRowsErrors = function () {
51092
+ if (!this.errorsInRow)
51093
+ return;
51094
+ this.checkErrorsAllRows(true, { noValue: false, isNotUnique: false });
51015
51095
  };
51016
51096
  QuestionMatrixModel.prototype.getIsAnswered = function () {
51017
- return _super.prototype.getIsAnswered.call(this) && this.hasValuesInAllRows(false);
51097
+ return _super.prototype.getIsAnswered.call(this) && this.hasValuesInAllRows();
51018
51098
  };
51019
51099
  QuestionMatrixModel.prototype.createMatrixRow = function (item, fullName, value) {
51020
51100
  var row = new MatrixRowModel(item, fullName, this, value);
@@ -51043,6 +51123,7 @@ var QuestionMatrixModel = /** @class */ (function (_super) {
51043
51123
  this.generatedVisibleRows[i].setValueDirectly(rowVal);
51044
51124
  }
51045
51125
  }
51126
+ this.refreshRowsErrors();
51046
51127
  this.updateIsAnswered();
51047
51128
  this.isRowChanging = false;
51048
51129
  };
@@ -51110,7 +51191,7 @@ var QuestionMatrixModel = /** @class */ (function (_super) {
51110
51191
  if (operator === void 0) { operator = null; }
51111
51192
  if (path === void 0) { path = null; }
51112
51193
  if (!path)
51113
- return _super.prototype.getConditionJson.call(this);
51194
+ return _super.prototype.getConditionJson.call(this, operator);
51114
51195
  var question = new _question_dropdown__WEBPACK_IMPORTED_MODULE_9__["QuestionDropdownModel"](path);
51115
51196
  question.choices = this.columns;
51116
51197
  var json = new _jsonobject__WEBPACK_IMPORTED_MODULE_3__["JsonObject"]().toJsonObject(question);
@@ -52947,7 +53028,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
52947
53028
  if (operator === void 0) { operator = null; }
52948
53029
  if (path === void 0) { path = null; }
52949
53030
  if (!path)
52950
- return _super.prototype.getConditionJson.call(this);
53031
+ return _super.prototype.getConditionJson.call(this, operator);
52951
53032
  var columnName = "";
52952
53033
  for (var i = path.length - 1; i >= 0; i--) {
52953
53034
  if (path[i] == ".")
@@ -58372,7 +58453,7 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
58372
58453
  if (operator === void 0) { operator = null; }
58373
58454
  if (path === void 0) { path = null; }
58374
58455
  if (!path)
58375
- return _super.prototype.getConditionJson.call(this);
58456
+ return _super.prototype.getConditionJson.call(this, operator);
58376
58457
  var item = this.getItemByName(path);
58377
58458
  if (!item)
58378
58459
  return null;
@@ -59631,14 +59712,23 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
59631
59712
  });
59632
59713
  QuestionPanelDynamicModel.prototype.getPanelsAnimationOptions = function () {
59633
59714
  var _this = this;
59634
- var getDirection = function () {
59715
+ var getDirectionCssClass = function () {
59635
59716
  if (_this.isRenderModeList)
59636
59717
  return "";
59718
+ var cssClass = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__["CssClassBuilder"]();
59719
+ var isRemoving = false;
59637
59720
  var leavingPanel = _this.renderedPanels.filter(function (el) { return el !== _this.currentPanel; })[0];
59638
59721
  var leavingPanelIndex = _this.visiblePanels.indexOf(leavingPanel);
59639
- if (leavingPanelIndex < 0)
59722
+ if (leavingPanelIndex < 0) {
59723
+ isRemoving = true;
59640
59724
  leavingPanelIndex = _this.removedPanelIndex;
59641
- return leavingPanelIndex > _this.currentIndex ? "-right" : "-left";
59725
+ }
59726
+ return cssClass
59727
+ .append("sv-pd-animation-adding", !!_this.focusNewPanelCallback)
59728
+ .append("sv-pd-animation-removing", isRemoving)
59729
+ .append("sv-pd-animation-left", leavingPanelIndex <= _this.currentIndex)
59730
+ .append("sv-pd-animation-right", leavingPanelIndex > _this.currentIndex)
59731
+ .toString();
59642
59732
  };
59643
59733
  return {
59644
59734
  getAnimatedElement: function (panel) {
@@ -59649,7 +59739,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
59649
59739
  }
59650
59740
  },
59651
59741
  getEnterOptions: function () {
59652
- var cssClass = _this.cssClasses.panelWrapperFadeIn ? "" + _this.cssClasses.panelWrapperFadeIn + getDirection() : "";
59742
+ var cssClass = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__["CssClassBuilder"]().append(_this.cssClasses.panelWrapperFadeIn).append(getDirectionCssClass()).toString();
59653
59743
  return {
59654
59744
  onBeforeRunAnimation: function (el) {
59655
59745
  var _a;
@@ -59668,7 +59758,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
59668
59758
  };
59669
59759
  },
59670
59760
  getLeaveOptions: function () {
59671
- var cssClass = _this.cssClasses.panelWrapperFadeOut ? "" + _this.cssClasses.panelWrapperFadeOut + getDirection() : "";
59761
+ var cssClass = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__["CssClassBuilder"]().append(_this.cssClasses.panelWrapperFadeOut).append(getDirectionCssClass()).toString();
59672
59762
  return {
59673
59763
  onBeforeRunAnimation: function (el) {
59674
59764
  var _a;
@@ -60808,11 +60898,16 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
60808
60898
  var prefixName = this.getValueName() + indexStr;
60809
60899
  var prefixText = this.processedTitle + indexStr;
60810
60900
  for (var i = 0; i < panelObjs.length; i++) {
60811
- objects.push({
60812
- name: prefixName + panelObjs[i].name,
60813
- text: prefixText + panelObjs[i].text,
60814
- question: panelObjs[i].question,
60815
- });
60901
+ if (!!panelObjs[i].context) {
60902
+ objects.push(panelObjs[i]);
60903
+ }
60904
+ else {
60905
+ objects.push({
60906
+ name: prefixName + panelObjs[i].name,
60907
+ text: prefixText + panelObjs[i].text,
60908
+ question: panelObjs[i].question,
60909
+ });
60910
+ }
60816
60911
  }
60817
60912
  }
60818
60913
  if (hasContext) {
@@ -60826,9 +60921,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
60826
60921
  text: prefixText + QuestionPanelDynamicItem.ItemVariableName + "." + panelObjs[i].text,
60827
60922
  question: panelObjs[i].question
60828
60923
  };
60829
- if (context === true) {
60830
- obj.context = this;
60831
- }
60924
+ obj.context = this;
60832
60925
  objects.push(obj);
60833
60926
  }
60834
60927
  }
@@ -60845,7 +60938,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
60845
60938
  if (operator === void 0) { operator = null; }
60846
60939
  if (path === void 0) { path = null; }
60847
60940
  if (!path)
60848
- return _super.prototype.getConditionJson.call(this, operator, path);
60941
+ return _super.prototype.getConditionJson.call(this, operator);
60849
60942
  var questionName = path;
60850
60943
  var pos = path.indexOf(".");
60851
60944
  if (pos > -1) {
@@ -61954,6 +62047,13 @@ var QuestionRadiogroupModel = /** @class */ (function (_super) {
61954
62047
  QuestionRadiogroupModel.prototype.supportGoNextPageAutomatic = function () {
61955
62048
  return this.isMouseDown === true && !this.isOtherSelected;
61956
62049
  };
62050
+ QuestionRadiogroupModel.prototype.getConditionJson = function (operator, path) {
62051
+ if (operator === void 0) { operator = null; }
62052
+ if (path === void 0) { path = null; }
62053
+ var json = _super.prototype.getConditionJson.call(this, operator, path);
62054
+ delete json["showClearButton"];
62055
+ return json;
62056
+ };
61957
62057
  QuestionRadiogroupModel.prototype.setNewComment = function (newValue) {
61958
62058
  this.isMouseDown = true;
61959
62059
  _super.prototype.setNewComment.call(this, newValue);
@@ -63615,7 +63715,9 @@ var QuestionRatingModel = /** @class */ (function (_super) {
63615
63715
  .append(this.cssClasses.control)
63616
63716
  .append(this.cssClasses.controlEmpty, this.isEmpty())
63617
63717
  .append(this.cssClasses.onError, this.hasCssError())
63618
- .append(this.cssClasses.controlDisabled, this.isReadOnly)
63718
+ .append(this.cssClasses.controlDisabled, this.isDisabledStyle)
63719
+ .append(this.cssClasses.controlReadOnly, this.isReadOnlyStyle)
63720
+ .append(this.cssClasses.controlPreview, this.isPreviewStyle)
63619
63721
  .toString();
63620
63722
  };
63621
63723
  Object.defineProperty(QuestionRatingModel.prototype, "placeholder", {
@@ -64590,7 +64692,14 @@ var QuestionTagboxModel = /** @class */ (function (_super) {
64590
64692
  };
64591
64693
  QuestionTagboxModel.prototype.onSurveyLoad = function () {
64592
64694
  _super.prototype.onSurveyLoad.call(this);
64593
- if (!this.dropdownListModel) {
64695
+ this.createDropdownListModel();
64696
+ };
64697
+ QuestionTagboxModel.prototype.onSetData = function () {
64698
+ _super.prototype.onSetData.call(this);
64699
+ this.createDropdownListModel();
64700
+ };
64701
+ QuestionTagboxModel.prototype.createDropdownListModel = function () {
64702
+ if (!this.dropdownListModel && !this.isLoadingFromJson) {
64594
64703
  this.dropdownListModel = new _dropdownMultiSelectListModel__WEBPACK_IMPORTED_MODULE_4__["DropdownMultiSelectListModel"](this);
64595
64704
  }
64596
64705
  };
@@ -64801,7 +64910,13 @@ var QuestionTagboxModel = /** @class */ (function (_super) {
64801
64910
  })
64802
64911
  ], QuestionTagboxModel.prototype, "hideSelectedItems", void 0);
64803
64912
  __decorate([
64804
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
64913
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({
64914
+ onSet: function (newValue, target) {
64915
+ if (!!target.dropdownListModel) {
64916
+ target.dropdownListModel.setChoicesLazyLoadEnabled(newValue);
64917
+ }
64918
+ }
64919
+ })
64805
64920
  ], QuestionTagboxModel.prototype, "choicesLazyLoadEnabled", void 0);
64806
64921
  __decorate([
64807
64922
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
@@ -66509,7 +66624,7 @@ var SurveyQuestionBoolean = /** @class */ (function (_super) {
66509
66624
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.sliderGhost, onClick: function (event) { return _this.handleOnLabelClick(event, _this.question.swapOrder); } },
66510
66625
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.getLabelCss(this.question.swapOrder) }, this.renderLocString(this.question.locLabelLeft))),
66511
66626
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.switch, onClick: this.handleOnSwitchClick },
66512
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: cssClasses.slider }, this.question.isDeterminated && cssClasses.sliderText ?
66627
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: cssClasses.slider, style: { marginLeft: this.question.thumbMargin } }, this.question.isDeterminated && cssClasses.sliderText ?
66513
66628
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: cssClasses.sliderText }, this.renderLocString(this.question.getCheckedLabel()))
66514
66629
  : null)),
66515
66630
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.sliderGhost, onClick: function (event) { return _this.handleOnLabelClick(event, !_this.question.swapOrder); } },
@@ -68543,6 +68658,59 @@ survey_core__WEBPACK_IMPORTED_MODULE_2__["settings"].showModal = showModal;
68543
68658
  survey_core__WEBPACK_IMPORTED_MODULE_2__["settings"].showDialog = showDialog;
68544
68659
 
68545
68660
 
68661
+ /***/ }),
68662
+
68663
+ /***/ "./src/react/components/question-error.tsx":
68664
+ /*!*************************************************!*\
68665
+ !*** ./src/react/components/question-error.tsx ***!
68666
+ \*************************************************/
68667
+ /*! exports provided: QuestionErrorComponent */
68668
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
68669
+
68670
+ "use strict";
68671
+ __webpack_require__.r(__webpack_exports__);
68672
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QuestionErrorComponent", function() { return QuestionErrorComponent; });
68673
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
68674
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
68675
+ /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../element-factory */ "./src/react/element-factory.tsx");
68676
+ /* harmony import */ var _string_viewer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../string-viewer */ "./src/react/string-viewer.tsx");
68677
+ var __extends = (undefined && undefined.__extends) || (function () {
68678
+ var extendStatics = function (d, b) {
68679
+ extendStatics = Object.setPrototypeOf ||
68680
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
68681
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
68682
+ return extendStatics(d, b);
68683
+ };
68684
+ return function (d, b) {
68685
+ if (typeof b !== "function" && b !== null)
68686
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
68687
+ extendStatics(d, b);
68688
+ function __() { this.constructor = d; }
68689
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
68690
+ };
68691
+ })();
68692
+
68693
+
68694
+
68695
+ var QuestionErrorComponent = /** @class */ (function (_super) {
68696
+ __extends(QuestionErrorComponent, _super);
68697
+ function QuestionErrorComponent() {
68698
+ return _super !== null && _super.apply(this, arguments) || this;
68699
+ }
68700
+ QuestionErrorComponent.prototype.render = function () {
68701
+ return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", null,
68702
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { className: this.props.cssClasses.error.icon || undefined, "aria-hidden": "true" }),
68703
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { className: this.props.cssClasses.error.item || undefined },
68704
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_string_viewer__WEBPACK_IMPORTED_MODULE_2__["SurveyLocStringViewer"], { locStr: this.props.error.locText }))));
68705
+ };
68706
+ return QuestionErrorComponent;
68707
+ }(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component));
68708
+
68709
+ _element_factory__WEBPACK_IMPORTED_MODULE_1__["ReactElementFactory"].Instance.registerElement("sv-question-error", function (props) {
68710
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(QuestionErrorComponent, props);
68711
+ });
68712
+
68713
+
68546
68714
  /***/ }),
68547
68715
 
68548
68716
  /***/ "./src/react/components/rating/rating-dropdown-item.tsx":
@@ -70986,6 +71154,7 @@ __webpack_require__.r(__webpack_exports__);
70986
71154
  /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-core */ "./src/entries/core.ts");
70987
71155
  /* harmony import */ var _reactSurveyNavigationBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reactSurveyNavigationBase */ "./src/react/reactSurveyNavigationBase.tsx");
70988
71156
  /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./element-factory */ "./src/react/element-factory.tsx");
71157
+ /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reactquestion_element */ "./src/react/reactquestion_element.tsx");
70989
71158
  var __extends = (undefined && undefined.__extends) || (function () {
70990
71159
  var extendStatics = function (d, b) {
70991
71160
  extendStatics = Object.setPrototypeOf ||
@@ -71005,6 +71174,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
71005
71174
 
71006
71175
 
71007
71176
 
71177
+
71008
71178
  var SurveyProgressButtons = /** @class */ (function (_super) {
71009
71179
  __extends(SurveyProgressButtons, _super);
71010
71180
  function SurveyProgressButtons(props) {
@@ -71064,12 +71234,13 @@ var SurveyProgressButtons = /** @class */ (function (_super) {
71064
71234
  };
71065
71235
  SurveyProgressButtons.prototype.renderListElement = function (page, index) {
71066
71236
  var _this = this;
71237
+ var text = _reactquestion_element__WEBPACK_IMPORTED_MODULE_4__["SurveyElementBase"].renderLocString(page.locNavigationTitle);
71067
71238
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("li", { key: "listelement" + index, className: this.model.getListElementCss(index), onClick: this.model.isListElementClickable(index)
71068
71239
  ? function () { return _this.model.clickListElement(page); }
71069
71240
  : undefined, "data-page-number": this.model.getItemNumber(page) },
71070
71241
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsConnector }),
71071
71242
  this.state.canShowItemTitles ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
71072
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageTitle, title: page.renderedNavigationTitle }, page.renderedNavigationTitle),
71243
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageTitle, title: page.renderedNavigationTitle }, text),
71073
71244
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageDescription, title: page.navigationDescription }, page.navigationDescription)) : null,
71074
71245
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsButton },
71075
71246
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsButtonBackground }),
@@ -71398,14 +71569,13 @@ __webpack_require__.r(__webpack_exports__);
71398
71569
  /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-core */ "./src/entries/core.ts");
71399
71570
  /* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./page */ "./src/react/page.tsx");
71400
71571
  /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reactquestion_element */ "./src/react/reactquestion_element.tsx");
71401
- /* harmony import */ var _string_viewer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./string-viewer */ "./src/react/string-viewer.tsx");
71402
- /* harmony import */ var _components_survey_header_survey_header__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/survey-header/survey-header */ "./src/react/components/survey-header/survey-header.tsx");
71403
- /* harmony import */ var _reactquestion_factory__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./reactquestion_factory */ "./src/react/reactquestion_factory.tsx");
71404
- /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./element-factory */ "./src/react/element-factory.tsx");
71405
- /* harmony import */ var _components_brand_info__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/brand-info */ "./src/react/components/brand-info.tsx");
71406
- /* harmony import */ var _components_notifier__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./components/notifier */ "./src/react/components/notifier.tsx");
71407
- /* harmony import */ var _components_components_container__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./components/components-container */ "./src/react/components/components-container.tsx");
71408
- /* harmony import */ var _svgbundle__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./svgbundle */ "./src/react/svgbundle.tsx");
71572
+ /* harmony import */ var _components_survey_header_survey_header__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/survey-header/survey-header */ "./src/react/components/survey-header/survey-header.tsx");
71573
+ /* harmony import */ var _reactquestion_factory__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./reactquestion_factory */ "./src/react/reactquestion_factory.tsx");
71574
+ /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./element-factory */ "./src/react/element-factory.tsx");
71575
+ /* harmony import */ var _components_brand_info__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/brand-info */ "./src/react/components/brand-info.tsx");
71576
+ /* harmony import */ var _components_notifier__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/notifier */ "./src/react/components/notifier.tsx");
71577
+ /* harmony import */ var _components_components_container__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./components/components-container */ "./src/react/components/components-container.tsx");
71578
+ /* harmony import */ var _svgbundle__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./svgbundle */ "./src/react/svgbundle.tsx");
71409
71579
  var __extends = (undefined && undefined.__extends) || (function () {
71410
71580
  var extendStatics = function (d, b) {
71411
71581
  extendStatics = Object.setPrototypeOf ||
@@ -71443,7 +71613,6 @@ var __assign = (undefined && undefined.__assign) || function () {
71443
71613
 
71444
71614
 
71445
71615
 
71446
-
71447
71616
  var Survey = /** @class */ (function (_super) {
71448
71617
  __extends(Survey, _super);
71449
71618
  function Survey(props) {
@@ -71531,7 +71700,7 @@ var Survey = /** @class */ (function (_super) {
71531
71700
  renderResult = this.renderSurvey();
71532
71701
  }
71533
71702
  var backgroundImage = !!this.survey.backgroundImage ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.rootBackgroundImage, style: this.survey.backgroundImageStyle }) : null;
71534
- var header = this.survey.headerView === "basic" ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_survey_header_survey_header__WEBPACK_IMPORTED_MODULE_5__["SurveyHeader"], { survey: this.survey }) : null;
71703
+ var header = this.survey.headerView === "basic" ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_survey_header_survey_header__WEBPACK_IMPORTED_MODULE_4__["SurveyHeader"], { survey: this.survey }) : null;
71535
71704
  var onSubmit = function (event) {
71536
71705
  event.preventDefault();
71537
71706
  };
@@ -71542,18 +71711,18 @@ var Survey = /** @class */ (function (_super) {
71542
71711
  var rootCss = this.survey.getRootCss();
71543
71712
  var cssClasses = this.rootNodeClassName ? this.rootNodeClassName + " " + rootCss : rootCss;
71544
71713
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { id: this.rootNodeId, ref: this.rootRef, className: cssClasses, style: this.survey.themeVariables },
71545
- this.survey.needRenderIcons ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_svgbundle__WEBPACK_IMPORTED_MODULE_11__["SvgBundleComponent"], null) : null,
71714
+ this.survey.needRenderIcons ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_svgbundle__WEBPACK_IMPORTED_MODULE_10__["SvgBundleComponent"], null) : null,
71546
71715
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.survey.wrapperFormCss },
71547
71716
  backgroundImage,
71548
71717
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("form", { onSubmit: onSubmit },
71549
71718
  customHeader,
71550
71719
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.container },
71551
71720
  header,
71552
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_10__["ComponentsContainer"], { survey: this.survey, container: "header", needRenderWrapper: false }),
71721
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_9__["ComponentsContainer"], { survey: this.survey, container: "header", needRenderWrapper: false }),
71553
71722
  renderResult,
71554
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_10__["ComponentsContainer"], { survey: this.survey, container: "footer", needRenderWrapper: false }))),
71555
- this.survey.showBrandInfo ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_brand_info__WEBPACK_IMPORTED_MODULE_8__["BrandInfo"], null) : null,
71556
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_notifier__WEBPACK_IMPORTED_MODULE_9__["NotifierComponent"], { notifier: this.survey.notifier }))));
71723
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_9__["ComponentsContainer"], { survey: this.survey, container: "footer", needRenderWrapper: false }))),
71724
+ this.survey.showBrandInfo ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_brand_info__WEBPACK_IMPORTED_MODULE_7__["BrandInfo"], null) : null,
71725
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_notifier__WEBPACK_IMPORTED_MODULE_8__["NotifierComponent"], { notifier: this.survey.notifier }))));
71557
71726
  };
71558
71727
  Survey.prototype.renderElement = function () {
71559
71728
  return this.doRender();
@@ -71574,7 +71743,7 @@ var Survey = /** @class */ (function (_super) {
71574
71743
  var htmlValue = { __html: this.survey.processedCompletedHtml };
71575
71744
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
71576
71745
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { dangerouslySetInnerHTML: htmlValue, className: this.survey.completedCss }),
71577
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_10__["ComponentsContainer"], { survey: this.survey, container: "completePage", needRenderWrapper: false })));
71746
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_9__["ComponentsContainer"], { survey: this.survey, container: "completePage", needRenderWrapper: false })));
71578
71747
  };
71579
71748
  Survey.prototype.renderCompletedBefore = function () {
71580
71749
  var htmlValue = { __html: this.survey.processedCompletedBeforeHtml };
@@ -71596,14 +71765,14 @@ var Survey = /** @class */ (function (_super) {
71596
71765
  style.maxWidth = this.survey.renderedWidth;
71597
71766
  }
71598
71767
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.survey.bodyContainerCss },
71599
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_10__["ComponentsContainer"], { survey: this.survey, container: "left" }),
71768
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_9__["ComponentsContainer"], { survey: this.survey, container: "left" }),
71600
71769
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: "sv-components-column sv-components-column--expandable" },
71601
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_10__["ComponentsContainer"], { survey: this.survey, container: "center" }),
71770
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_9__["ComponentsContainer"], { survey: this.survey, container: "center" }),
71602
71771
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { id: pageId, className: className, style: style },
71603
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_10__["ComponentsContainer"], { survey: this.survey, container: "contentTop" }),
71772
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_9__["ComponentsContainer"], { survey: this.survey, container: "contentTop" }),
71604
71773
  activePage,
71605
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_10__["ComponentsContainer"], { survey: this.survey, container: "contentBottom" }))),
71606
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_10__["ComponentsContainer"], { survey: this.survey, container: "right" })));
71774
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_9__["ComponentsContainer"], { survey: this.survey, container: "contentBottom" }))),
71775
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_9__["ComponentsContainer"], { survey: this.survey, container: "right" })));
71607
71776
  };
71608
71777
  Survey.prototype.renderPage = function (page) {
71609
71778
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_page__WEBPACK_IMPORTED_MODULE_2__["SurveyPage"], { survey: this.survey, page: page, css: this.css, creator: this }));
@@ -71684,17 +71853,14 @@ var Survey = /** @class */ (function (_super) {
71684
71853
  };
71685
71854
  //ISurveyCreator
71686
71855
  Survey.prototype.createQuestionElement = function (question) {
71687
- return _reactquestion_factory__WEBPACK_IMPORTED_MODULE_6__["ReactQuestionFactory"].Instance.createQuestion(question.isDefaultRendering() ? question.getTemplate() : question.getComponentName(), {
71856
+ return _reactquestion_factory__WEBPACK_IMPORTED_MODULE_5__["ReactQuestionFactory"].Instance.createQuestion(question.isDefaultRendering() ? question.getTemplate() : question.getComponentName(), {
71688
71857
  question: question,
71689
71858
  isDisplayMode: question.isInputReadOnly,
71690
71859
  creator: this,
71691
71860
  });
71692
71861
  };
71693
- Survey.prototype.renderError = function (key, error, cssClasses) {
71694
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { key: key },
71695
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: cssClasses.error.icon || undefined, "aria-hidden": "true" }),
71696
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: cssClasses.error.item || undefined },
71697
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_string_viewer__WEBPACK_IMPORTED_MODULE_4__["SurveyLocStringViewer"], { locStr: error.locText }))));
71862
+ Survey.prototype.renderError = function (key, error, cssClasses, element) {
71863
+ return _element_factory__WEBPACK_IMPORTED_MODULE_6__["ReactElementFactory"].Instance.createElement(this.survey.questionErrorComponent, { key: key, error: error, cssClasses: cssClasses, element: element });
71698
71864
  };
71699
71865
  Survey.prototype.questionTitleLocation = function () {
71700
71866
  return this.survey.questionTitleLocation;
@@ -71705,7 +71871,7 @@ var Survey = /** @class */ (function (_super) {
71705
71871
  return Survey;
71706
71872
  }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_3__["SurveyElementBase"]));
71707
71873
 
71708
- _element_factory__WEBPACK_IMPORTED_MODULE_7__["ReactElementFactory"].Instance.registerElement("survey", function (props) {
71874
+ _element_factory__WEBPACK_IMPORTED_MODULE_6__["ReactElementFactory"].Instance.registerElement("survey", function (props) {
71709
71875
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](Survey, props);
71710
71876
  });
71711
71877
  function attachKey2click(element, viewModel, options) {
@@ -72057,7 +72223,7 @@ var SurveyElementErrors = /** @class */ (function (_super) {
72057
72223
  var errors = [];
72058
72224
  for (var i = 0; i < this.element.errors.length; i++) {
72059
72225
  var key = "error" + i;
72060
- errors.push(this.creator.renderError(key, this.element.errors[i], this.cssClasses));
72226
+ errors.push(this.creator.renderError(key, this.element.errors[i], this.cssClasses, this.element));
72061
72227
  }
72062
72228
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { role: "alert", "aria-live": "polite", className: this.element.cssError, id: this.id }, errors));
72063
72229
  };
@@ -76406,20 +76572,34 @@ __webpack_require__.r(__webpack_exports__);
76406
76572
  var RendererFactory = /** @class */ (function () {
76407
76573
  function RendererFactory() {
76408
76574
  this.renderersHash = {};
76575
+ this.defaultHash = {};
76409
76576
  }
76410
76577
  RendererFactory.prototype.unregisterRenderer = function (questionType, rendererAs) {
76411
76578
  delete this.renderersHash[questionType][rendererAs];
76579
+ if (this.defaultHash[questionType] === rendererAs) {
76580
+ delete this.defaultHash[questionType];
76581
+ }
76412
76582
  };
76413
- RendererFactory.prototype.registerRenderer = function (questionType, renderAs, renderer) {
76583
+ RendererFactory.prototype.registerRenderer = function (questionType, renderAs, renderer, useAsDefault) {
76584
+ if (useAsDefault === void 0) { useAsDefault = false; }
76414
76585
  if (!this.renderersHash[questionType]) {
76415
76586
  this.renderersHash[questionType] = {};
76416
76587
  }
76417
76588
  this.renderersHash[questionType][renderAs] = renderer;
76589
+ if (useAsDefault) {
76590
+ this.defaultHash[questionType] = renderAs;
76591
+ }
76418
76592
  };
76419
76593
  RendererFactory.prototype.getRenderer = function (questionType, renderAs) {
76420
- return ((this.renderersHash[questionType] &&
76421
- this.renderersHash[questionType][renderAs]) ||
76422
- "default");
76594
+ var qHash = this.renderersHash[questionType];
76595
+ if (!!qHash) {
76596
+ if (!!renderAs && qHash[renderAs])
76597
+ return qHash[renderAs];
76598
+ var dVal = this.defaultHash[questionType];
76599
+ if (!!dVal && qHash[dVal])
76600
+ return qHash[dVal];
76601
+ }
76602
+ return "default";
76423
76603
  };
76424
76604
  RendererFactory.prototype.getRendererByQuestion = function (question) {
76425
76605
  return this.getRenderer(question.getType(), question.renderAs);
@@ -79922,6 +80102,7 @@ var SurveyModel = /** @class */ (function (_super) {
79922
80102
  _this.skippedPages = [];
79923
80103
  _this.skeletonComponentName = "sv-skeleton";
79924
80104
  _this.taskManager = new _surveyTaskManager__WEBPACK_IMPORTED_MODULE_22__["SurveyTaskManagerModel"]();
80105
+ _this.questionErrorComponent = "sv-question-error";
79925
80106
  if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_25__["DomDocumentHelper"].isAvailable()) {
79926
80107
  SurveyModel.stylesManager = new _stylesmanager__WEBPACK_IMPORTED_MODULE_11__["StylesManager"]();
79927
80108
  }
@@ -87586,7 +87767,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
87586
87767
  {
87587
87768
  name: "showProgressBar",
87588
87769
  default: "off",
87589
- choices: ["off", "auto", "aboveHeader", "belowHeader", "bottom", "topBottom"],
87770
+ choices: ["off", "auto", "aboveheader", "belowheader", "bottom", "topbottom"],
87590
87771
  },
87591
87772
  {
87592
87773
  name: "progressBarType",
@@ -88225,11 +88406,9 @@ function createTOCListModel(survey, onAction) {
88225
88406
  var _a;
88226
88407
  var pagesSource = survey.questionsOnPageMode === "singlePage" ? (_a = survey.pages[0]) === null || _a === void 0 ? void 0 : _a.elements : survey.pages;
88227
88408
  var items = (pagesSource || []).map(function (page) {
88228
- var _a, _b;
88229
88409
  return new _actions_action__WEBPACK_IMPORTED_MODULE_0__["Action"]({
88230
88410
  id: page.name,
88231
- locTitle: ((_a = page.locNavigationTitle) === null || _a === void 0 ? void 0 : _a.text) ? page.locNavigationTitle : (((_b = page.locTitle) === null || _b === void 0 ? void 0 : _b.text) ? page.locTitle : undefined),
88232
- title: page.renderedNavigationTitle,
88411
+ locTitle: page.locNavigationTitle,
88233
88412
  action: function () {
88234
88413
  _global_variables_utils__WEBPACK_IMPORTED_MODULE_2__["DomDocumentHelper"].activeElementBlur();
88235
88414
  !!onAction && onAction();
@@ -89491,10 +89670,15 @@ var AnimationUtils = /** @class */ (function () {
89491
89670
  options.onBeforeRunAnimation && options.onBeforeRunAnimation(element);
89492
89671
  }
89493
89672
  };
89673
+ AnimationUtils.prototype.getCssClasses = function (options) {
89674
+ return options.cssClass.replace(/\s+$/, "").split(/\s+/);
89675
+ };
89494
89676
  AnimationUtils.prototype.runAnimation = function (element, options, callback) {
89495
89677
  if (element && options.cssClass) {
89496
89678
  this.reflow(element);
89497
- element.classList.add(options.cssClass);
89679
+ this.getCssClasses(options).forEach(function (cssClass) {
89680
+ element.classList.add(cssClass);
89681
+ });
89498
89682
  this.onAnimationEnd(element, callback, options);
89499
89683
  }
89500
89684
  else {
@@ -89503,7 +89687,9 @@ var AnimationUtils = /** @class */ (function () {
89503
89687
  };
89504
89688
  AnimationUtils.prototype.clearHtmlElement = function (element, options) {
89505
89689
  if (element && options.cssClass) {
89506
- element.classList.remove(options.cssClass);
89690
+ this.getCssClasses(options).forEach(function (cssClass) {
89691
+ element.classList.remove(cssClass);
89692
+ });
89507
89693
  }
89508
89694
  };
89509
89695
  AnimationUtils.prototype.onNextRender = function (callback, runEarly, isCancel) {