survey-react 1.9.102 → 1.9.104

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/survey.react.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.102
2
+ * surveyjs - Survey JavaScript library v1.9.104
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -2066,13 +2066,13 @@ var Base = /** @class */ (function () {
2066
2066
  return locStr.text;
2067
2067
  if (defaultValue != null)
2068
2068
  return defaultValue;
2069
- var propDefaultValue = this.getDefaultValueFromProperty(name);
2069
+ var propDefaultValue = this.getDefaultPropertyValue(name);
2070
2070
  if (propDefaultValue !== undefined)
2071
2071
  return propDefaultValue;
2072
2072
  }
2073
2073
  return res;
2074
2074
  };
2075
- Base.prototype.getDefaultValueFromProperty = function (name) {
2075
+ Base.prototype.getDefaultPropertyValue = function (name) {
2076
2076
  var prop = this.getPropertyByName(name);
2077
2077
  if (!prop || prop.isCustom && this.isCreating)
2078
2078
  return undefined;
@@ -2085,6 +2085,12 @@ var Base = /** @class */ (function () {
2085
2085
  return prop.onGetValue(this);
2086
2086
  return undefined;
2087
2087
  };
2088
+ Base.prototype.hasDefaultPropertyValue = function (name) {
2089
+ return this.getDefaultPropertyValue(name) !== undefined;
2090
+ };
2091
+ Base.prototype.resetPropertyValue = function (name) {
2092
+ this.setPropertyValue(name, undefined);
2093
+ };
2088
2094
  Base.prototype.getPropertyValueWithoutDefault = function (name) {
2089
2095
  return this.getPropertyValueCore(this.propertyHash, name);
2090
2096
  };
@@ -2931,7 +2937,7 @@ var CalculatedValue = /** @class */ (function (_super) {
2931
2937
  return;
2932
2938
  this.expressionRunner = new _conditions__WEBPACK_IMPORTED_MODULE_2__["ExpressionRunner"](this.expression);
2933
2939
  this.expressionRunner.onRunComplete = function (newValue) {
2934
- if (!_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isTwoValueEquals(newValue, _this.value, false, true)) {
2940
+ if (!_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isTwoValueEquals(newValue, _this.value, false, true, false)) {
2935
2941
  _this.setValue(newValue);
2936
2942
  }
2937
2943
  _this.unlocCalculation();
@@ -4229,11 +4235,11 @@ var ConsoleWarnings = /** @class */ (function () {
4229
4235
  function ConsoleWarnings() {
4230
4236
  }
4231
4237
  ConsoleWarnings.disposedObjectChangedProperty = function (propName, objType) {
4232
- ConsoleWarnings.warn("Attempt to set property '" + propName + "' of a disposed object '" + objType + "'");
4238
+ ConsoleWarnings.warn("An attempt to set a property \"" + propName + "\" of a disposed object \"" + objType + "\"");
4233
4239
  };
4234
4240
  ConsoleWarnings.inCorrectQuestionValue = function (questionName, val) {
4235
4241
  var valStr = JSON.stringify(val, null, 3);
4236
- ConsoleWarnings.warn("Try to set incorrect value into question. Question name: '" + questionName + "', value: " + valStr);
4242
+ ConsoleWarnings.warn("An attempt to assign an incorrect value" + valStr + " to the following question: \"" + questionName + "\"");
4237
4243
  };
4238
4244
  ConsoleWarnings.warn = function (text) {
4239
4245
  // eslint-disable-next-line no-console
@@ -5509,6 +5515,7 @@ var defaultV2Css = {
5509
5515
  mainRoot: "sd-element sd-question sd-row__question sd-element--complex sd-question--complex sd-question--table",
5510
5516
  tableWrapper: "sd-matrix sd-table-wrapper",
5511
5517
  root: "sd-table sd-matrix__table",
5518
+ noHeader: "sd-table--no-header",
5512
5519
  rootVerticalAlignTop: "sd-table--align-top",
5513
5520
  rootVerticalAlignMiddle: "sd-table--align-middle",
5514
5521
  rootAlternateRows: "sd-table--alternate-rows",
@@ -5535,6 +5542,7 @@ var defaultV2Css = {
5535
5542
  mainRoot: "sd-element sd-question sd-row__question sd-element--complex sd-question--complex sd-question--table",
5536
5543
  rootScroll: "sd-question--scroll",
5537
5544
  root: "sd-table sd-matrixdropdown",
5545
+ noHeader: "sd-table--no-header",
5538
5546
  rootVerticalAlignTop: "sd-table--align-top",
5539
5547
  rootVerticalAlignMiddle: "sd-table--align-middle",
5540
5548
  tableWrapper: "sd-table-wrapper",
@@ -5547,6 +5555,7 @@ var defaultV2Css = {
5547
5555
  row: "sd-table__row",
5548
5556
  headerCell: "sd-table__cell sd-table__cell--header",
5549
5557
  rowTextCell: "sd-table__cell sd-table__cell--row-text",
5558
+ columnTitleCell: "sd-table__cell--column-title",
5550
5559
  cellRequiredText: "sd-question__required-text",
5551
5560
  detailButton: "sd-table__cell--detail-button",
5552
5561
  detailButtonExpanded: "sd-table__cell--detail-button--expanded",
@@ -5554,7 +5563,9 @@ var defaultV2Css = {
5554
5563
  detailIconExpanded: "sd-detail-panel__icon--expanded",
5555
5564
  detailIconId: "icon-expanddetail",
5556
5565
  detailIconExpandedId: "icon-collapsedetail",
5566
+ detailPanelCell: "sd-table__cell--detail-panel",
5557
5567
  actionsCell: "sd-table__cell sd-table__cell--actions",
5568
+ actionsCellDrag: "sd-table__cell--drag",
5558
5569
  emptyCell: "sd-table__cell--empty",
5559
5570
  verticalCell: "sd-table__cell--vertical",
5560
5571
  cellQuestionWrapper: "sd-table__question-wrapper",
@@ -5565,6 +5576,7 @@ var defaultV2Css = {
5565
5576
  rootScroll: "sd-question--scroll",
5566
5577
  empty: "sd-question--empty",
5567
5578
  root: "sd-table sd-matrixdynamic",
5579
+ noHeader: "sd-table--no-header",
5568
5580
  tableWrapper: "sd-table-wrapper",
5569
5581
  content: "sd-matrixdynamic__content sd-question__content",
5570
5582
  cell: "sd-table__cell",
@@ -5572,6 +5584,7 @@ var defaultV2Css = {
5572
5584
  itemCell: "sd-table__cell--item",
5573
5585
  headerCell: "sd-table__cell sd-table__cell--header",
5574
5586
  rowTextCell: "sd-table__cell sd-table__cell--row-text",
5587
+ columnTitleCell: "sd-table__cell--column-title",
5575
5588
  cellRequiredText: "sd-question__required-text",
5576
5589
  button: "sd-action sd-matrixdynamic__btn",
5577
5590
  detailRow: "sd-table__row sd-table__row--detail",
@@ -5583,6 +5596,7 @@ var defaultV2Css = {
5583
5596
  detailIconExpandedId: "icon-collapsedetail",
5584
5597
  detailPanelCell: "sd-table__cell--detail-panel",
5585
5598
  actionsCell: "sd-table__cell sd-table__cell--actions",
5599
+ actionsCellDrag: "sd-table__cell--drag",
5586
5600
  buttonAdd: "sd-matrixdynamic__add-btn",
5587
5601
  buttonRemove: "sd-action--negative sd-matrixdynamic__remove-btn",
5588
5602
  iconAdd: "",
@@ -7720,6 +7734,13 @@ var DropdownListModel = /** @class */ (function (_super) {
7720
7734
  enumerable: false,
7721
7735
  configurable: true
7722
7736
  });
7737
+ Object.defineProperty(DropdownListModel.prototype, "canShowSelectedItem", {
7738
+ get: function () {
7739
+ return !this.focused || this._markdownMode || !this.searchEnabled;
7740
+ },
7741
+ enumerable: false,
7742
+ configurable: true
7743
+ });
7723
7744
  DropdownListModel.prototype.applyInputString = function (item) {
7724
7745
  var hasHtml = item === null || item === void 0 ? void 0 : item.locText.hasHtml;
7725
7746
  if (hasHtml || this.question.inputFieldComponentName) {
@@ -7754,7 +7775,12 @@ var DropdownListModel = /** @class */ (function (_super) {
7754
7775
  set: function (val) {
7755
7776
  this.inputString = val;
7756
7777
  this.filterString = val;
7757
- this.applyHintString(this.listModel.focusedItem || this.question.selectedItem);
7778
+ if (!val) {
7779
+ this.hintString = "";
7780
+ }
7781
+ else {
7782
+ this.applyHintString(this.listModel.focusedItem || this.question.selectedItem);
7783
+ }
7758
7784
  },
7759
7785
  enumerable: false,
7760
7786
  configurable: true
@@ -7867,6 +7893,8 @@ var DropdownListModel = /** @class */ (function (_super) {
7867
7893
  this.listModel.setItems(this.getAvailableItems());
7868
7894
  };
7869
7895
  DropdownListModel.prototype.onClick = function (event) {
7896
+ if (this.question.readOnly)
7897
+ return;
7870
7898
  this._popupModel.toggleVisibility();
7871
7899
  this.focusItemOnClickAndPopup();
7872
7900
  if (this.searchEnabled && !!event && !!event.target) {
@@ -8633,7 +8661,7 @@ __webpack_require__.r(__webpack_exports__);
8633
8661
  /*!*************************************!*\
8634
8662
  !*** ./src/entries/chunks/model.ts ***!
8635
8663
  \*************************************/
8636
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
8664
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
8637
8665
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8638
8666
 
8639
8667
  "use strict";
@@ -9052,6 +9080,8 @@ __webpack_require__.r(__webpack_exports__);
9052
9080
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../../utils/utils */ "./src/utils/utils.ts");
9053
9081
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "confirmAction", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_82__["confirmAction"]; });
9054
9082
 
9083
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "confirmActionAsync", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_82__["confirmActionAsync"]; });
9084
+
9055
9085
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "detectIEOrEdge", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_82__["detectIEOrEdge"]; });
9056
9086
 
9057
9087
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickUp", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_82__["doKey2ClickUp"]; });
@@ -9092,8 +9122,8 @@ __webpack_require__.r(__webpack_exports__);
9092
9122
  //import "../../modern.scss";
9093
9123
  var Version;
9094
9124
  var ReleaseDate;
9095
- Version = "" + "1.9.102";
9096
- ReleaseDate = "" + "2023-08-08";
9125
+ Version = "" + "1.9.104";
9126
+ ReleaseDate = "" + "2023-08-22";
9097
9127
  function checkLibraryVersion(ver, libraryName) {
9098
9128
  if (Version != ver) {
9099
9129
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9241,7 +9271,7 @@ function slk(k, lh, rd) {
9241
9271
  /*!**************************************!*\
9242
9272
  !*** ./src/entries/core-wo-model.ts ***!
9243
9273
  \**************************************/
9244
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper */
9274
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper */
9245
9275
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9246
9276
 
9247
9277
  "use strict";
@@ -9583,6 +9613,8 @@ __webpack_require__.r(__webpack_exports__);
9583
9613
 
9584
9614
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "confirmAction", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["confirmAction"]; });
9585
9615
 
9616
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "confirmActionAsync", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["confirmActionAsync"]; });
9617
+
9586
9618
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "detectIEOrEdge", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["detectIEOrEdge"]; });
9587
9619
 
9588
9620
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickUp", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["doKey2ClickUp"]; });
@@ -9692,7 +9724,7 @@ __webpack_require__.r(__webpack_exports__);
9692
9724
  /*!*****************************!*\
9693
9725
  !*** ./src/entries/core.ts ***!
9694
9726
  \*****************************/
9695
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model */
9727
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model */
9696
9728
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9697
9729
 
9698
9730
  "use strict";
@@ -10034,6 +10066,8 @@ __webpack_require__.r(__webpack_exports__);
10034
10066
 
10035
10067
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "confirmAction", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["confirmAction"]; });
10036
10068
 
10069
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "confirmActionAsync", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["confirmActionAsync"]; });
10070
+
10037
10071
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "detectIEOrEdge", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["detectIEOrEdge"]; });
10038
10072
 
10039
10073
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickUp", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["doKey2ClickUp"]; });
@@ -10503,7 +10537,7 @@ __webpack_require__.r(__webpack_exports__);
10503
10537
  /*!******************************!*\
10504
10538
  !*** ./src/entries/react.ts ***!
10505
10539
  \******************************/
10506
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, SurveyLocStringViewer, SurveyLocStringEditor */
10540
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, SurveyLocStringViewer, SurveyLocStringEditor */
10507
10541
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10508
10542
 
10509
10543
  "use strict";
@@ -10845,6 +10879,8 @@ __webpack_require__.r(__webpack_exports__);
10845
10879
 
10846
10880
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "confirmAction", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["confirmAction"]; });
10847
10881
 
10882
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "confirmActionAsync", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["confirmActionAsync"]; });
10883
+
10848
10884
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "detectIEOrEdge", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["detectIEOrEdge"]; });
10849
10885
 
10850
10886
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickUp", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["doKey2ClickUp"]; });
@@ -21505,6 +21541,7 @@ var englishStrings = {
21505
21541
  clearCaption: "Clear",
21506
21542
  signaturePlaceHolder: "Sign here",
21507
21543
  chooseFileCaption: "Choose file",
21544
+ replaceFileCaption: "Replace file",
21508
21545
  removeFileCaption: "Remove this file",
21509
21546
  booleanCheckedLabel: "Yes",
21510
21547
  booleanUncheckedLabel: "No",
@@ -27043,6 +27080,7 @@ var QuestionMatrixBaseModel = /** @class */ (function (_super) {
27043
27080
  QuestionMatrixBaseModel.prototype.getTableCss = function () {
27044
27081
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
27045
27082
  .append(this.cssClasses.root)
27083
+ .append(this.cssClasses.noHeader, !this.showHeader)
27046
27084
  .append(this.cssClasses.rootAlternateRows, this.alternateRows)
27047
27085
  .append(this.cssClasses.rootVerticalAlignTop, (this.verticalAlign === "top"))
27048
27086
  .append(this.cssClasses.rootVerticalAlignMiddle, (this.verticalAlign === "middle")).toString();
@@ -27897,7 +27935,6 @@ var QuestionRowModel = /** @class */ (function (_super) {
27897
27935
  var preSetWidthElements = [];
27898
27936
  for (var i = 0; i < this.elements.length; i++) {
27899
27937
  var el = this.elements[i];
27900
- this.setElementMaxMinWidth(el);
27901
27938
  if (el.isVisible) {
27902
27939
  el.isSingleInRow = isSingleInRow;
27903
27940
  var width = this.getElementWidth(el);
@@ -27929,14 +27966,6 @@ var QuestionRowModel = /** @class */ (function (_super) {
27929
27966
  }
27930
27967
  }
27931
27968
  };
27932
- QuestionRowModel.prototype.setElementMaxMinWidth = function (el) {
27933
- if (el.width &&
27934
- typeof el.width === "string" &&
27935
- el.width.indexOf("%") === -1) {
27936
- el.minWidth = el.width;
27937
- el.maxWidth = el.width;
27938
- }
27939
- };
27940
27969
  QuestionRowModel.prototype.getRenderedCalcWidth = function (el, preSetWidthElements, visCount) {
27941
27970
  var expression = "100%";
27942
27971
  for (var i = 0; i < preSetWidthElements.length; i++) {
@@ -29342,6 +29371,34 @@ var PanelModelBase = /** @class */ (function (_super) {
29342
29371
  enumerable: false,
29343
29372
  configurable: true
29344
29373
  });
29374
+ Object.defineProperty(PanelModelBase.prototype, "questionErrorLocation", {
29375
+ /**
29376
+ * Specifies the error message position for questions that belong to this page/panel.
29377
+ *
29378
+ * Use this property to override the [`questionErrorLocation`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#questionErrorLocation) property specified for the survey. You can also set the [`errorLocation`](https://surveyjs.io/form-library/documentation/question#errorLocation) property for individual questions.
29379
+ *
29380
+ * Possible values:
29381
+ *
29382
+ * - `"default"` (default) - Inherits the setting from the `questionErrorLocation` property specified for the survey.
29383
+ * - `"top"` - Displays error messages above questions.
29384
+ * - `"bottom"` - Displays error messages below questions.
29385
+ */
29386
+ get: function () {
29387
+ return this.getPropertyValue("questionErrorLocation");
29388
+ },
29389
+ set: function (val) {
29390
+ this.setPropertyValue("questionErrorLocation", val);
29391
+ },
29392
+ enumerable: false,
29393
+ configurable: true
29394
+ });
29395
+ PanelModelBase.prototype.getQuestionErrorLocation = function () {
29396
+ if (this.questionErrorLocation !== "default")
29397
+ return this.questionErrorLocation;
29398
+ if (this.parent)
29399
+ return this.parent.getQuestionErrorLocation();
29400
+ return this.survey ? this.survey.questionErrorLocation : "top";
29401
+ };
29345
29402
  Object.defineProperty(PanelModelBase.prototype, "no", {
29346
29403
  //ITitleOwner
29347
29404
  get: function () { return ""; },
@@ -29798,11 +29855,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("panelbase", [
29798
29855
  visible: false,
29799
29856
  isLightSerializable: false,
29800
29857
  },
29801
- { name: "visible:switch", default: true },
29858
+ { name: "visible:switch", default: true, overridingProperty: "visibleIf" },
29859
+ { name: "readOnly:boolean", overridingProperty: "enableIf" },
29802
29860
  "visibleIf:condition",
29803
29861
  "enableIf:condition",
29804
29862
  "requiredIf:condition",
29805
- "readOnly:boolean",
29806
29863
  {
29807
29864
  name: "questionTitleLocation",
29808
29865
  default: "default",
@@ -29815,6 +29872,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("panelbase", [
29815
29872
  default: "default",
29816
29873
  choices: ["default", "initial", "random"],
29817
29874
  },
29875
+ { name: "questionErrorLocation", default: "default", choices: ["default", "top", "bottom"] }
29818
29876
  ], function () {
29819
29877
  return new PanelModelBase();
29820
29878
  });
@@ -29824,7 +29882,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("panel", [
29824
29882
  default: "default",
29825
29883
  choices: ["default", "collapsed", "expanded"],
29826
29884
  },
29827
- "isRequired:switch",
29885
+ { name: "isRequired:switch", overridingProperty: "requiredIf" },
29828
29886
  {
29829
29887
  name: "requiredErrorText:text",
29830
29888
  serializationProperty: "locRequiredErrorText",
@@ -30982,9 +31040,12 @@ function setStyles() {
30982
31040
  ".sv_q_dd_clean-button-svg": "width: 1em; height: 1em;",
30983
31041
  ".sv_q_dd_control": "display: flex; justify-content: space-between; appearance: none;",
30984
31042
  ".sv_q_dd_value": "width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; position: relative;",
31043
+ ".sv_q_dd_hint-prefix span": "white-space: pre;",
31044
+ ".sv_q_dd_hint-suffix": "display: flex;",
30985
31045
  ".sv_q_dd_root": "position: relative;",
31046
+ ".sv_q_dd_select_wrapper": "position: relative;",
30986
31047
  ".sv_q_dd_select_wrapper::after": "content: \"\"; display: block;background-image: url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='utf-8'%3F%3E%3C!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 10 10' style='enable-background:new 0 0 10 10;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0%7Bfill:%23404040;%7D%0A%3C/style%3E%3Cpolygon class='st0' points='2,2 0,4 5,9 10,4 8,2 5,5 '/%3E%3C/svg%3E%0A\"); background-repeat: no-repeat; background-position: center center; background-size: 10px 12px; width: 34px; height: 100%; position: absolute; inset-inline-end: 0; top: 0;",
30987
- ".sv_q_dd_filter-string-input": "outline: none; border: none; background-color: transparent; position: absolute; inset-inline-start: 0; inset-block-start: 0;",
31048
+ ".sv_q_dd_filter-string-input": "outline: none; border: none; background-color: transparent; position: absolute; inset-inline-start: 0; inset-block-start: 0; width: 100%; max-width: 100%; padding: 0;",
30988
31049
  ".sv_q_dropdown_clean-button": "margin: auto 2em;",
30989
31050
  ".sv_q_tagbox__placeholder": "position: absolute; top: 0; inset-inline-start: 1em; max-width: 100%; width: auto; height: 100%; text-align: start; cursor: text; pointer-events: none;",
30990
31051
  ".sv_qstn .sv-q-col-1, .sv-question .sv-q-col-1": "width: 100%; display: inline-block; padding-right: 1em; box-sizing: border-box; word-break: break-word;",
@@ -31144,6 +31205,7 @@ function setStyles() {
31144
31205
  //popup
31145
31206
  "sv-popup": "display: block; position: absolute; z-index: -1;",
31146
31207
  ".sv-popup": "position: fixed; left: 0; top: 0; width: 100vw; height: 100vh; outline: none; z-index: 1500;",
31208
+ ".sv-popup.sv-dropdown-popup": "height: 0;",
31147
31209
  ".sv-popup__container": "box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.1); position: absolute; padding: 0;",
31148
31210
  ".sv-popup__body-content": "background-color: var(--background, #fff); border-radius: calc(0.5 * var(--base-unit, 8px)); width: 100%; height: 100%; box-sizing: border-box; display: flex; flex-direction: column; max-height: 90vh; max-width: 100vw;",
31149
31211
  ".sv-popup--modal .sv-list__filter": "padding-top: 8px;",
@@ -31329,10 +31391,16 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
31329
31391
  this.height = newVerticalDimensions.height + "px";
31330
31392
  pos.top = newVerticalDimensions.top;
31331
31393
  }
31332
- var newHorizontalDimensions = _utils_popup__WEBPACK_IMPORTED_MODULE_1__["PopupUtils"].updateHorizontalDimensions(pos.left, width, window.innerWidth, actualHorizontalPosition, this.model.positionMode, { left: marginLeft, right: marginRight });
31333
- if (!!newHorizontalDimensions) {
31334
- this.width = newHorizontalDimensions.width ? newHorizontalDimensions.width + "px" : undefined;
31335
- pos.left = newHorizontalDimensions.left;
31394
+ if (this.model.setWidthByTarget) {
31395
+ this.width = targetElementRect.width + "px";
31396
+ pos.left = targetElementRect.left;
31397
+ }
31398
+ else {
31399
+ var newHorizontalDimensions = _utils_popup__WEBPACK_IMPORTED_MODULE_1__["PopupUtils"].updateHorizontalDimensions(pos.left, width, window.innerWidth, actualHorizontalPosition, this.model.positionMode, { left: marginLeft, right: marginRight });
31400
+ if (!!newHorizontalDimensions) {
31401
+ this.width = newHorizontalDimensions.width ? newHorizontalDimensions.width + "px" : undefined;
31402
+ pos.left = newHorizontalDimensions.left;
31403
+ }
31336
31404
  }
31337
31405
  }
31338
31406
  if (!!fixedPopupContainer) {
@@ -32554,6 +32622,7 @@ var Question = /** @class */ (function (_super) {
32554
32622
  var _this = _super.call(this, name) || this;
32555
32623
  _this.customWidgetData = { isNeedRender: true };
32556
32624
  _this.isReadyValue = true;
32625
+ _this.dependedQuestions = [];
32557
32626
  /**
32558
32627
  * An event that is raised when the question's ready state has changed (expressions are evaluated, choices are loaded from a web resource specified by the `choicesByUrl` property, etc.).
32559
32628
  *
@@ -32760,6 +32829,26 @@ var Question = /** @class */ (function (_super) {
32760
32829
  this.removeSelfFromList(this.parent.elements);
32761
32830
  }
32762
32831
  };
32832
+ Question.prototype.addDependedQuestion = function (question) {
32833
+ if (!question || this.dependedQuestions.indexOf(question) > -1)
32834
+ return;
32835
+ this.dependedQuestions.push(question);
32836
+ };
32837
+ Question.prototype.removeDependedQuestion = function (question) {
32838
+ if (!question)
32839
+ return;
32840
+ var index = this.dependedQuestions.indexOf(question);
32841
+ if (index > -1) {
32842
+ this.dependedQuestions.splice(index, 1);
32843
+ }
32844
+ };
32845
+ Question.prototype.updateDependedQuestions = function () {
32846
+ for (var i = 0; i < this.dependedQuestions.length; i++) {
32847
+ this.dependedQuestions[i].updateDependedQuestion();
32848
+ }
32849
+ };
32850
+ Question.prototype.updateDependedQuestion = function () { };
32851
+ Question.prototype.resetDependedQuestion = function () { };
32763
32852
  Object.defineProperty(Question.prototype, "isFlowLayout", {
32764
32853
  get: function () {
32765
32854
  return this.getLayoutType() === "flow";
@@ -33114,12 +33203,36 @@ var Question = /** @class */ (function (_super) {
33114
33203
  configurable: true
33115
33204
  });
33116
33205
  Object.defineProperty(Question.prototype, "errorLocation", {
33206
+ /**
33207
+ * Specifies the error message position. Overrides the `questionErrorLocation` property specified for the question's container ([survey](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#questionErrorLocation), [page](https://surveyjs.io/form-library/documentation/api-reference/page-model#questionErrorLocation), or [panel](https://surveyjs.io/form-library/documentation/api-reference/panel-model#questionErrorLocation)).
33208
+ *
33209
+ * Possible values:
33210
+ *
33211
+ * - `"default"` (default) - Inherits the setting from the `questionErrorLocation` property specified for the question's container.
33212
+ * - `"top"` - Displays error messages above questions.
33213
+ * - `"bottom"` - Displays error messages below questions.
33214
+ */
33117
33215
  get: function () {
33118
- return this.survey ? this.survey.questionErrorLocation : "top";
33216
+ return this.getPropertyValue("errorLocation");
33217
+ },
33218
+ set: function (val) {
33219
+ this.setPropertyValue("errorLocation", val);
33119
33220
  },
33120
33221
  enumerable: false,
33121
33222
  configurable: true
33122
33223
  });
33224
+ Question.prototype.getErrorLocation = function () {
33225
+ if (this.errorLocation !== "default")
33226
+ return this.errorLocation;
33227
+ if (this.parentQuestion)
33228
+ return this.parentQuestion.getChildErrorLocation(this);
33229
+ if (this.parent)
33230
+ return this.parent.getQuestionErrorLocation();
33231
+ return this.survey ? this.survey.questionErrorLocation : "top";
33232
+ };
33233
+ Question.prototype.getChildErrorLocation = function (child) {
33234
+ return this.getErrorLocation();
33235
+ };
33123
33236
  Object.defineProperty(Question.prototype, "hasInput", {
33124
33237
  /**
33125
33238
  * Returns `false` if the question has no input fields ([HTML](https://surveyjs.io/form-library/documentation/questionhtmlmodel), [Image](https://surveyjs.io/form-library/documentation/questionimagemodel), and similar question types).
@@ -33523,7 +33636,7 @@ var Question = /** @class */ (function (_super) {
33523
33636
  return _super.prototype.getIsErrorsModeTooltip.call(this) && !this.customWidget;
33524
33637
  };
33525
33638
  Question.prototype.showErrorOnCore = function (location) {
33526
- return !this.isErrorsModeTooltip && !this.showErrorsAboveQuestion && !this.showErrorsBelowQuestion && this.errorLocation === location;
33639
+ return !this.isErrorsModeTooltip && !this.showErrorsAboveQuestion && !this.showErrorsBelowQuestion && this.getErrorLocation() === location;
33527
33640
  };
33528
33641
  Object.defineProperty(Question.prototype, "showErrorOnTop", {
33529
33642
  get: function () {
@@ -33556,14 +33669,14 @@ var Question = /** @class */ (function (_super) {
33556
33669
  });
33557
33670
  Object.defineProperty(Question.prototype, "showErrorsAboveQuestion", {
33558
33671
  get: function () {
33559
- return this.showErrorsOutsideQuestion && this.errorLocation === "top";
33672
+ return this.showErrorsOutsideQuestion && this.getErrorLocation() === "top";
33560
33673
  },
33561
33674
  enumerable: false,
33562
33675
  configurable: true
33563
33676
  });
33564
33677
  Object.defineProperty(Question.prototype, "showErrorsBelowQuestion", {
33565
33678
  get: function () {
33566
- return this.showErrorsOutsideQuestion && this.errorLocation === "bottom";
33679
+ return this.showErrorsOutsideQuestion && this.getErrorLocation() === "bottom";
33567
33680
  },
33568
33681
  enumerable: false,
33569
33682
  configurable: true
@@ -34057,11 +34170,40 @@ var Question = /** @class */ (function (_super) {
34057
34170
  enumerable: false,
34058
34171
  configurable: true
34059
34172
  });
34173
+ Object.defineProperty(Question.prototype, "isValueArray", {
34174
+ get: function () { return false; },
34175
+ enumerable: false,
34176
+ configurable: true
34177
+ });
34060
34178
  Object.defineProperty(Question.prototype, "value", {
34061
34179
  /**
34062
34180
  * Gets or sets the question value.
34063
- * @see SurveyModel.setValue
34064
- * @see SurveyModel.getValue
34181
+ *
34182
+ * The following table illustrates how the value type depends on the question type:
34183
+ *
34184
+ * | Question type | Value type(s) |
34185
+ * | ------------- | ------------- |
34186
+ * | Checkboxes | `Array<String \| Number>` |
34187
+ * | Dropdown | `String` \| `Number` |
34188
+ * | Dynamic Matrix | `Array<Object>` |
34189
+ * | Dynamic Panel | `Array<Object>` |
34190
+ * | Expression | `String` \| `Number` \| `Boolean` |
34191
+ * | File Upload | `File` \| `Array<File>` |
34192
+ * | HTML | (no value) |
34193
+ * | Image | (no value) |
34194
+ * | Image Picker | `Array<String \| Number>` |
34195
+ * | Long Text | `String` |
34196
+ * | Multi-Select Dropdown | `Object` |
34197
+ * | Multi-Select Matrix | `Object` |
34198
+ * | Multiple Textboxes | `Array<String>` |
34199
+ * | Panel | (no value) |
34200
+ * | Radio Button Group | `String` \| `Number` |
34201
+ * | Ranking | `Array<String \| Number>` |
34202
+ * | Rating Scale | `Number` \| `String` |
34203
+ * | Signature | `String` (base64-encoded image) |
34204
+ * | Single-Line Input | `String` \| `Number` \| `Date` |
34205
+ * | Single-Select Matrix | `Object` |
34206
+ * | Yes/No (Boolean) | `Boolean` \| `String` |
34065
34207
  */
34066
34208
  get: function () {
34067
34209
  return this.getValueCore();
@@ -34219,7 +34361,7 @@ var Question = /** @class */ (function (_super) {
34219
34361
  return res;
34220
34362
  }
34221
34363
  value = value == undefined ? this.createValueCopy() : value;
34222
- if (this.isValueEmpty(value))
34364
+ if (this.isValueEmpty(value, !this.allowSpaceAsAnswer))
34223
34365
  return this.getDisplayValueEmpty();
34224
34366
  return this.getDisplayValueCore(keysAsText, value);
34225
34367
  };
@@ -34434,7 +34576,7 @@ var Question = /** @class */ (function (_super) {
34434
34576
  return this.defaultValue;
34435
34577
  };
34436
34578
  Question.prototype.isDefaultValueEmpty = function () {
34437
- return !this.defaultValueExpression && this.isValueEmpty(this.defaultValue);
34579
+ return !this.defaultValueExpression && this.isValueEmpty(this.defaultValue, !this.allowSpaceAsAnswer);
34438
34580
  };
34439
34581
  Question.prototype.getDefaultRunner = function (runner, expression) {
34440
34582
  if (!runner && !!expression) {
@@ -34550,7 +34692,7 @@ var Question = /** @class */ (function (_super) {
34550
34692
  * Returns `true` if the question value is an empty string, array, or object or if it equals `undefined` or `null`.
34551
34693
  */
34552
34694
  Question.prototype.isEmpty = function () {
34553
- return this.isValueEmpty(this.value);
34695
+ return this.isValueEmpty(this.value, !this.allowSpaceAsAnswer);
34554
34696
  };
34555
34697
  Object.defineProperty(Question.prototype, "isAnswered", {
34556
34698
  get: function () {
@@ -34753,7 +34895,7 @@ var Question = /** @class */ (function (_super) {
34753
34895
  };
34754
34896
  Question.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
34755
34897
  var _this = this;
34756
- if (!isOnValueChanged && this.hasRequiredError()) {
34898
+ if ((!isOnValueChanged || this.isOldAnswered) && this.hasRequiredError()) {
34757
34899
  var err = new _error__WEBPACK_IMPORTED_MODULE_3__["AnswerRequiredError"](this.requiredErrorText, this);
34758
34900
  err.onUpdateErrorTextCallback = function (err) { err.text = _this.requiredErrorText; };
34759
34901
  errors.push(err);
@@ -34800,23 +34942,24 @@ var Question = /** @class */ (function (_super) {
34800
34942
  Question.prototype.setNewValue = function (newValue) {
34801
34943
  if (this.isNewValueEqualsToValue(newValue))
34802
34944
  return;
34803
- if (!this.isValueEmpty(newValue) && !this.isNewValueCorrect(newValue)) {
34945
+ if (!this.isValueEmpty(newValue, !this.allowSpaceAsAnswer) && !this.isNewValueCorrect(newValue)) {
34804
34946
  _console_warnings__WEBPACK_IMPORTED_MODULE_12__["ConsoleWarnings"].inCorrectQuestionValue(this.name, newValue);
34805
34947
  return;
34806
34948
  }
34807
- var oldAnswered = this.isAnswered;
34949
+ this.isOldAnswered = this.isAnswered;
34808
34950
  this.setNewValueInData(newValue);
34809
34951
  this.allowNotifyValueChanged && this.onValueChanged();
34810
- if (this.isAnswered != oldAnswered) {
34952
+ if (this.isAnswered !== this.isOldAnswered) {
34811
34953
  this.updateQuestionCss();
34812
34954
  }
34955
+ this.isOldAnswered = undefined;
34813
34956
  };
34814
34957
  Question.prototype.isNewValueCorrect = function (val) {
34815
34958
  return true;
34816
34959
  };
34817
34960
  Question.prototype.isNewValueEqualsToValue = function (newValue) {
34818
34961
  var val = this.value;
34819
- if (!this.isTwoValueEquals(newValue, val))
34962
+ if (!this.isTwoValueEquals(newValue, val, false, false))
34820
34963
  return false;
34821
34964
  var isObj = newValue === val && !!val && (Array.isArray(val) || typeof val === "object");
34822
34965
  return !isObj;
@@ -34894,6 +35037,7 @@ var Question = /** @class */ (function (_super) {
34894
35037
  newValue = this.valueFromDataCallback(newValue);
34895
35038
  }
34896
35039
  this.setQuestionValue(this.valueFromData(newValue));
35040
+ this.updateDependedQuestions();
34897
35041
  this.updateIsAnswered();
34898
35042
  };
34899
35043
  Question.prototype.updateCommentFromSurvey = function (newValue) {
@@ -35125,6 +35269,9 @@ var Question = /** @class */ (function (_super) {
35125
35269
  };
35126
35270
  Question.prototype.dispose = function () {
35127
35271
  _super.prototype.dispose.call(this);
35272
+ for (var i = 0; i < this.dependedQuestions.length; i++) {
35273
+ this.dependedQuestions[i].resetDependedQuestion();
35274
+ }
35128
35275
  this.destroyResizeObserver();
35129
35276
  };
35130
35277
  Question.TextPreprocessorValuesMap = {
@@ -35256,6 +35403,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("question", [
35256
35403
  name: "requiredErrorText:text",
35257
35404
  serializationProperty: "locRequiredErrorText",
35258
35405
  },
35406
+ { name: "errorLocation", default: "default", choices: ["default", "top", "bottom"] },
35259
35407
  { name: "readOnly:switch", overridingProperty: "enableIf" },
35260
35408
  {
35261
35409
  name: "validators:validators",
@@ -35537,14 +35685,13 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
35537
35685
 
35538
35686
 
35539
35687
  /**
35540
- * A base class for multiple-choice question types ([Checkbox](https://surveyjs.io/form-library/documentation/questioncheckboxmodel), [Dropdown](https://surveyjs.io/form-library/documentation/questiondropdownmodel), [Radiogroup](https://surveyjs.io/form-library/documentation/questionradiogroupmodel), etc.).
35688
+ * A base class for multiple-choice question types ([Checkboxes](https://surveyjs.io/form-library/documentation/questioncheckboxmodel), [Dropdown](https://surveyjs.io/form-library/documentation/questiondropdownmodel), [Radio Button Group](https://surveyjs.io/form-library/documentation/questionradiogroupmodel), etc.).
35541
35689
  */
35542
35690
  var QuestionSelectBase = /** @class */ (function (_super) {
35543
35691
  __extends(QuestionSelectBase, _super);
35544
35692
  function QuestionSelectBase(name) {
35545
35693
  var _this = _super.call(this, name) || this;
35546
35694
  _this.otherItemValue = new _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"]("other");
35547
- _this.dependedQuestions = [];
35548
35695
  _this.noneItemValue = new _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"](_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].noneItemValue);
35549
35696
  _this.isSettingDefaultValue = false;
35550
35697
  _this.isSettingComment = false;
@@ -35561,7 +35708,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
35561
35708
  _this.onVisibleChoicesChanged();
35562
35709
  }
35563
35710
  });
35564
- _this.registerPropertyChangedHandlers(["choicesFromQuestion", "choicesFromQuestionMode", "showNoneItem"], function () {
35711
+ _this.registerPropertyChangedHandlers(["choicesFromQuestion", "choicesFromQuestionMode", "choiceValuesFromQuestion", "choiceTextsFromQuestion", "showNoneItem"], function () {
35565
35712
  _this.onVisibleChoicesChanged();
35566
35713
  });
35567
35714
  _this.registerPropertyChangedHandlers(["hideIfChoicesEmpty"], function () {
@@ -35609,10 +35756,13 @@ var QuestionSelectBase = /** @class */ (function (_super) {
35609
35756
  };
35610
35757
  QuestionSelectBase.prototype.dispose = function () {
35611
35758
  _super.prototype.dispose.call(this);
35612
- for (var i = 0; i < this.dependedQuestions.length; i++) {
35613
- this.dependedQuestions[i].choicesFromQuestion = "";
35759
+ var q = this.getQuestionWithChoices();
35760
+ if (!!q) {
35761
+ q.removeDependedQuestion(this);
35614
35762
  }
35615
- this.removeFromDependedQuestion(this.getQuestionWithChoices());
35763
+ };
35764
+ QuestionSelectBase.prototype.resetDependedQuestion = function () {
35765
+ this.choicesFromQuestion = "";
35616
35766
  };
35617
35767
  Object.defineProperty(QuestionSelectBase.prototype, "otherId", {
35618
35768
  get: function () {
@@ -35636,13 +35786,21 @@ var QuestionSelectBase = /** @class */ (function (_super) {
35636
35786
  };
35637
35787
  Object.defineProperty(QuestionSelectBase.prototype, "isUsingCarryForward", {
35638
35788
  get: function () {
35639
- return this.getPropertyValue("isUsingCarrayForward", false);
35789
+ return !!this.carryForwardQuestionType;
35790
+ },
35791
+ enumerable: false,
35792
+ configurable: true
35793
+ });
35794
+ Object.defineProperty(QuestionSelectBase.prototype, "carryForwardQuestionType", {
35795
+ get: function () {
35796
+ return this.getPropertyValue("carryForwardQuestionType");
35640
35797
  },
35641
35798
  enumerable: false,
35642
35799
  configurable: true
35643
35800
  });
35644
- QuestionSelectBase.prototype.setIsUsingCarrayForward = function (val) {
35645
- this.setPropertyValue("isUsingCarrayForward", val);
35801
+ QuestionSelectBase.prototype.setCarryForwardQuestionType = function (selBaseQuestion, arrayQuestion) {
35802
+ var mode = selBaseQuestion ? "select" : (arrayQuestion ? "array" : undefined);
35803
+ this.setPropertyValue("carryForwardQuestionType", mode);
35646
35804
  };
35647
35805
  QuestionSelectBase.prototype.supportGoNextPageError = function () {
35648
35806
  return !this.isOtherSelected || !!this.otherValue;
@@ -36251,11 +36409,11 @@ var QuestionSelectBase = /** @class */ (function (_super) {
36251
36409
  });
36252
36410
  Object.defineProperty(QuestionSelectBase.prototype, "choicesFromQuestion", {
36253
36411
  /**
36254
- * Inherits choice items from a specified question. Accepts a question name.
36412
+ * Copies choice items from a specified question. Accepts a question name.
36255
36413
  *
36256
- * If you specify this property, the `choices`, `choicesVisibleIf`, `choicesEnableIf`, and `choicesOrder` properties do not apply because their values are inherited.
36414
+ * If you specify this property, the `choices`, `choicesVisibleIf`, `choicesEnableIf`, and `choicesOrder` properties do not apply because their values are copied.
36257
36415
  *
36258
- * In addition, you can specify the `choicesFromQuestionMode` property if you do not want to inherit all choice items.
36416
+ * In addition, you can specify the `choicesFromQuestionMode` property if you do not want to copy all choice items.
36259
36417
  * @see choicesFromQuestionMode
36260
36418
  * @see choices
36261
36419
  */
@@ -36266,7 +36424,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
36266
36424
  var question = this.getQuestionWithChoices();
36267
36425
  this.isLockVisibleChoices = !!question && question.name === val;
36268
36426
  if (!!question && question.name !== val) {
36269
- question.removeFromDependedQuestion(this);
36427
+ question.removeDependedQuestion(this);
36270
36428
  }
36271
36429
  this.setPropertyValue("choicesFromQuestion", val);
36272
36430
  this.isLockVisibleChoices = false;
@@ -36274,30 +36432,17 @@ var QuestionSelectBase = /** @class */ (function (_super) {
36274
36432
  enumerable: false,
36275
36433
  configurable: true
36276
36434
  });
36277
- QuestionSelectBase.prototype.addIntoDependedQuestion = function (question) {
36278
- if (!question || question.dependedQuestions.indexOf(this) > -1)
36279
- return;
36280
- question.dependedQuestions.push(this);
36281
- };
36282
- QuestionSelectBase.prototype.removeFromDependedQuestion = function (question) {
36283
- if (!question)
36284
- return;
36285
- var index = question.dependedQuestions.indexOf(this);
36286
- if (index > -1) {
36287
- question.dependedQuestions.splice(index, 1);
36288
- }
36289
- };
36290
36435
  Object.defineProperty(QuestionSelectBase.prototype, "choicesFromQuestionMode", {
36291
36436
  /**
36292
- * Specifies which choice items to inherit from another question. Applies only when the `choicesFromQuestion` property is specified.
36437
+ * Specifies which choice items to copy from another question. Applies only when the `choicesFromQuestion` property is specified.
36293
36438
  *
36294
36439
  * Possible values:
36295
36440
  *
36296
- * - `"all"` (default) - Inherits all choice items.
36297
- * - `"selected"` - Inherits only selected choice items.
36298
- * - `"unselected"` - Inherits only unselected choice items.
36441
+ * - `"all"` (default) - Copies all choice items.
36442
+ * - `"selected"` - Copies only selected choice items.
36443
+ * - `"unselected"` - Copies only unselected choice items.
36299
36444
  *
36300
- * Use the `visibleChoices` property to access inherited choice items.
36445
+ * Use the `visibleChoices` property to access copied choice items.
36301
36446
  * @see choicesFromQuestion
36302
36447
  * @see visibleChoices
36303
36448
  */
@@ -36310,6 +36455,36 @@ var QuestionSelectBase = /** @class */ (function (_super) {
36310
36455
  enumerable: false,
36311
36456
  configurable: true
36312
36457
  });
36458
+ Object.defineProperty(QuestionSelectBase.prototype, "choiceValuesFromQuestion", {
36459
+ /**
36460
+ * Specifies which matrix column or dynamic panel question supplies choice values. Use this property to construct choice items based on cell values in Dynamic Matrix and question values in Dynamic Panel.
36461
+ *
36462
+ * Each choice item consists of a value saved in survey results and a text displayed in the UI. To construct a choice item, assign the `name` of a Dynamic Matrix or Dynamic Panel to the [`choicesFromQuestion`](#choicesFromQuestion) property and specify which dynamic panel question or matrix column supplies values and which provides texts. Use the `choiceValuesFromQuestion` and [`choiceTextsFromQuestion`](#choiceTextsFromQuestion) properties for this purpose. If a choice text is empty, a choice value is used as a display text and saved in survey results.
36463
+ */
36464
+ get: function () {
36465
+ return this.getPropertyValue("choiceValuesFromQuestion");
36466
+ },
36467
+ set: function (val) {
36468
+ this.setPropertyValue("choiceValuesFromQuestion", val);
36469
+ },
36470
+ enumerable: false,
36471
+ configurable: true
36472
+ });
36473
+ Object.defineProperty(QuestionSelectBase.prototype, "choiceTextsFromQuestion", {
36474
+ /**
36475
+ * Specifies which matrix column or dynamic panel question supplies choice texts. Use this property to construct choice items based on cell values in Dynamic Matrix and question values in Dynamic Panel.
36476
+ *
36477
+ * Each choice item consists of a value saved in survey results and a text displayed in the UI. To construct a choice item, assign the `name` of a Dynamic Matrix or Dynamic Panel to the [`choicesFromQuestion`](#choicesFromQuestion) property and specify which dynamic panel question or matrix column supplies values and which provides texts. Use the [`choiceValuesFromQuestion`](#choiceValuesFromQuestion) and `choiceTextsFromQuestion` properties for this purpose. If a choice text is empty, a choice value is used as a display text and saved in survey results.
36478
+ */
36479
+ get: function () {
36480
+ return this.getPropertyValue("choiceTextsFromQuestion");
36481
+ },
36482
+ set: function (val) {
36483
+ this.setPropertyValue("choiceTextsFromQuestion", val);
36484
+ },
36485
+ enumerable: false,
36486
+ configurable: true
36487
+ });
36313
36488
  Object.defineProperty(QuestionSelectBase.prototype, "hideIfChoicesEmpty", {
36314
36489
  /**
36315
36490
  * Specifies whether to hide the question if no choice items are visible.
@@ -36630,24 +36805,71 @@ var QuestionSelectBase = /** @class */ (function (_super) {
36630
36805
  };
36631
36806
  Object.defineProperty(QuestionSelectBase.prototype, "activeChoices", {
36632
36807
  get: function () {
36633
- var question = this.getQuestionWithChoices();
36634
- this.setIsUsingCarrayForward(!!question);
36635
- if (this.isUsingCarryForward) {
36636
- this.addIntoDependedQuestion(question);
36637
- return this.getChoicesFromQuestion(question);
36808
+ var question = this.getCarryForwardQuestion();
36809
+ if (this.carryForwardQuestionType === "select") {
36810
+ question.addDependedQuestion(this);
36811
+ return this.getChoicesFromSelectQuestion(question);
36812
+ }
36813
+ if (this.carryForwardQuestionType === "array") {
36814
+ question.addDependedQuestion(this);
36815
+ return this.getChoicesFromArrayQuestion(question);
36638
36816
  }
36639
36817
  return this.choicesFromUrl ? this.choicesFromUrl : this.getChoices();
36640
36818
  },
36641
36819
  enumerable: false,
36642
36820
  configurable: true
36643
36821
  });
36822
+ QuestionSelectBase.prototype.getCarryForwardQuestion = function (data) {
36823
+ var question = this.findCarryForwardQuestion(data);
36824
+ var selBaseQuestion = this.getQuestionWithChoicesCore(question);
36825
+ var arrayQuestion = !selBaseQuestion ? this.getQuestionWithArrayValue(question) : null;
36826
+ this.setCarryForwardQuestionType(!!selBaseQuestion, !!arrayQuestion);
36827
+ return !!selBaseQuestion || !!arrayQuestion ? question : null;
36828
+ };
36644
36829
  QuestionSelectBase.prototype.getQuestionWithChoices = function () {
36645
- if (!this.choicesFromQuestion || !this.data)
36830
+ return this.getQuestionWithChoicesCore(this.findCarryForwardQuestion());
36831
+ };
36832
+ QuestionSelectBase.prototype.findCarryForwardQuestion = function (data) {
36833
+ if (!data)
36834
+ data = this.data;
36835
+ if (!this.choicesFromQuestion || !data)
36646
36836
  return null;
36647
- var res = this.data.findQuestionByName(this.choicesFromQuestion);
36648
- return !!res && !!res.visibleChoices && Array.isArray(res.dependedQuestions) && res !== this ? res : null;
36837
+ return data.findQuestionByName(this.choicesFromQuestion);
36838
+ };
36839
+ QuestionSelectBase.prototype.getQuestionWithChoicesCore = function (question) {
36840
+ if (!!question && !!question.visibleChoices && (_jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].isDescendantOf(question.getType(), "selectbase")) && question !== this)
36841
+ return question;
36842
+ return null;
36649
36843
  };
36650
- QuestionSelectBase.prototype.getChoicesFromQuestion = function (question) {
36844
+ QuestionSelectBase.prototype.getQuestionWithArrayValue = function (question) {
36845
+ return !!question && question.isValueArray ? question : null;
36846
+ };
36847
+ QuestionSelectBase.prototype.getChoicesFromArrayQuestion = function (question) {
36848
+ if (this.isDesignMode)
36849
+ return [];
36850
+ var val = question.value;
36851
+ if (!Array.isArray(val))
36852
+ return [];
36853
+ var res = [];
36854
+ for (var i = 0; i < val.length; i++) {
36855
+ var obj = val[i];
36856
+ if (!_helpers__WEBPACK_IMPORTED_MODULE_8__["Helpers"].isValueObject(obj))
36857
+ continue;
36858
+ var key = this.getValueKeyName(obj);
36859
+ if (!!key && !this.isValueEmpty(obj[key])) {
36860
+ var text = !!this.choiceTextsFromQuestion ? obj[this.choiceTextsFromQuestion] : undefined;
36861
+ res.push(this.createItemValue(obj[key], text));
36862
+ }
36863
+ }
36864
+ return res;
36865
+ };
36866
+ QuestionSelectBase.prototype.getValueKeyName = function (obj) {
36867
+ if (this.choiceValuesFromQuestion)
36868
+ return this.choiceValuesFromQuestion;
36869
+ var keys = Object.keys(obj);
36870
+ return keys.length > 0 ? keys[0] : undefined;
36871
+ };
36872
+ QuestionSelectBase.prototype.getChoicesFromSelectQuestion = function (question) {
36651
36873
  if (this.isDesignMode)
36652
36874
  return [];
36653
36875
  var res = [];
@@ -36938,13 +37160,13 @@ var QuestionSelectBase = /** @class */ (function (_super) {
36938
37160
  !this.allowNotifyValueChanged || this.choicesByUrl.isRunning)
36939
37161
  return;
36940
37162
  this.isUpdatingChoicesDependedQuestions = true;
36941
- for (var i = 0; i < this.dependedQuestions.length; i++) {
36942
- var q = this.dependedQuestions[i];
36943
- q.onVisibleChoicesChanged();
36944
- q.clearIncorrectValues();
36945
- }
37163
+ this.updateDependedQuestions();
36946
37164
  this.isUpdatingChoicesDependedQuestions = false;
36947
37165
  };
37166
+ QuestionSelectBase.prototype.updateDependedQuestion = function () {
37167
+ this.onVisibleChoicesChanged();
37168
+ this.clearIncorrectValues();
37169
+ };
36948
37170
  QuestionSelectBase.prototype.onSurveyValueChanged = function (newValue) {
36949
37171
  _super.prototype.onSurveyValueChanged.call(this, newValue);
36950
37172
  this.updateChoicesDependedQuestions();
@@ -37408,9 +37630,21 @@ var QuestionCheckboxBase = /** @class */ (function (_super) {
37408
37630
  return QuestionCheckboxBase;
37409
37631
  }(QuestionSelectBase));
37410
37632
 
37633
+ function checkCopyPropVisibility(obj, mode) {
37634
+ var _a;
37635
+ if (!obj)
37636
+ return false;
37637
+ if (!!obj.templateQuestion) {
37638
+ var data = (_a = obj.colOwner) === null || _a === void 0 ? void 0 : _a.data;
37639
+ obj = obj.templateQuestion;
37640
+ if (!obj.getCarryForwardQuestion(data))
37641
+ return false;
37642
+ }
37643
+ return obj.carryForwardQuestionType === mode;
37644
+ }
37411
37645
  _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("selectbase", [
37412
37646
  { name: "showCommentArea:switch", layout: "row", visible: true, category: "general" },
37413
- "choicesFromQuestion:question_selectbase",
37647
+ "choicesFromQuestion:question_carryforward",
37414
37648
  {
37415
37649
  name: "choices:itemvalue[]", uniqueProperty: "value",
37416
37650
  baseValue: function () {
@@ -37427,7 +37661,21 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("selectbase", [
37427
37661
  choices: ["all", "selected", "unselected"],
37428
37662
  dependsOn: "choicesFromQuestion",
37429
37663
  visibleIf: function (obj) {
37430
- return !!obj.choicesFromQuestion;
37664
+ return checkCopyPropVisibility(obj, "select");
37665
+ },
37666
+ },
37667
+ {
37668
+ name: "choiceValuesFromQuestion",
37669
+ dependsOn: "choicesFromQuestion",
37670
+ visibleIf: function (obj) {
37671
+ return checkCopyPropVisibility(obj, "array");
37672
+ },
37673
+ },
37674
+ {
37675
+ name: "choiceTextsFromQuestion",
37676
+ dependsOn: "choicesFromQuestion",
37677
+ visibleIf: function (obj) {
37678
+ return checkCopyPropVisibility(obj, "array");
37431
37679
  },
37432
37680
  },
37433
37681
  {
@@ -37562,7 +37810,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
37562
37810
 
37563
37811
 
37564
37812
  /**
37565
- * A class that describes the Boolean question type.
37813
+ * A class that describes the Yes/No (Boolean) question type.
37566
37814
  *
37567
37815
  * [View Demo](https://surveyjs.io/form-library/examples/questiontype-boolean/ (linkStyle))
37568
37816
  */
@@ -38197,7 +38445,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
38197
38445
 
38198
38446
 
38199
38447
  /**
38200
- * A class that describes the Checkbox question type.
38448
+ * A class that describes the Checkboxes question type.
38201
38449
  *
38202
38450
  * [View Demo](https://surveyjs.io/form-library/examples/questiontype-checkbox/ (linkStyle))
38203
38451
  */
@@ -38390,6 +38638,11 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
38390
38638
  return val;
38391
38639
  return !this.valuePropertyName ? val : val[this.valuePropertyName];
38392
38640
  };
38641
+ Object.defineProperty(QuestionCheckboxModel.prototype, "isValueArray", {
38642
+ get: function () { return true; },
38643
+ enumerable: false,
38644
+ configurable: true
38645
+ });
38393
38646
  Object.defineProperty(QuestionCheckboxModel.prototype, "maxSelectedChoices", {
38394
38647
  /**
38395
38648
  * Specifies the maximum number of selected choices.
@@ -38892,7 +39145,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
38892
39145
 
38893
39146
 
38894
39147
  /**
38895
- * A class that describes the Comment question type.
39148
+ * A class that describes the Long Text question type.
38896
39149
  *
38897
39150
  * [View Demo](https://surveyjs.io/form-library/examples/questiontype-comment/ (linkStyle))
38898
39151
  */
@@ -39458,6 +39711,9 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
39458
39711
  QuestionCustomModelBase.prototype.validateContainerOnly = function () {
39459
39712
  // do nothing
39460
39713
  };
39714
+ QuestionCustomModelBase.prototype.getQuestionErrorLocation = function () {
39715
+ return this.getErrorLocation();
39716
+ };
39461
39717
  QuestionCustomModelBase.prototype.getContentDisplayValueCore = function (keyAsText, value, question) {
39462
39718
  if (!question)
39463
39719
  return _super.prototype.getDisplayValueCore.call(this, keyAsText, value);
@@ -40230,7 +40486,7 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
40230
40486
  });
40231
40487
  Object.defineProperty(QuestionDropdownModel.prototype, "showSelectedItemLocText", {
40232
40488
  get: function () {
40233
- return !this.inputHasValue && !this.inputFieldComponentName && !!this.selectedItemLocText;
40489
+ return !this.inputHasValue && !this.inputFieldComponentName && !!this.selectedItemLocText && this.dropdownListModel.canShowSelectedItem;
40234
40490
  },
40235
40491
  enumerable: false,
40236
40492
  configurable: true
@@ -41041,7 +41297,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
41041
41297
 
41042
41298
 
41043
41299
  /**
41044
- * A class that describes the File question type.
41300
+ * A class that describes the File Upload question type.
41045
41301
  *
41046
41302
  * [View Demo](https://surveyjs.io/form-library/examples/file-upload/ (linkStyle))
41047
41303
  */
@@ -41102,16 +41358,11 @@ var QuestionFileModel = /** @class */ (function (_super) {
41102
41358
  _this.onChange(src);
41103
41359
  };
41104
41360
  _this.doClean = function (event) {
41105
- var src = event.currentTarget || event.srcElement;
41106
41361
  if (_this.needConfirmRemoveFile) {
41107
- var isConfirmed = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmAction"])(_this.confirmRemoveAllMessage);
41108
- if (!isConfirmed)
41109
- return;
41110
- }
41111
- if (_this.rootElement) {
41112
- _this.rootElement.querySelectorAll("input")[0].value = "";
41362
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmActionAsync"])(_this.confirmRemoveAllMessage, function () { _this.clearFilesCore(); });
41363
+ return;
41113
41364
  }
41114
- _this.clear();
41365
+ _this.clearFilesCore();
41115
41366
  };
41116
41367
  _this.doDownloadFile = function (event, data) {
41117
41368
  if (Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["detectIEOrEdge"])()) {
@@ -41159,6 +41410,11 @@ var QuestionFileModel = /** @class */ (function (_super) {
41159
41410
  QuestionFileModel.prototype.getFileIndexCaption = function () {
41160
41411
  return this.getLocalizationFormatString("indexText", this.indexToShow + 1, this.previewValue.length);
41161
41412
  };
41413
+ QuestionFileModel.prototype.previewValueChanged = function () {
41414
+ this.indexToShow = this.previewValue.length > 0 ? (this.indexToShow > 0 ? this.indexToShow - 1 : 0) : 0;
41415
+ this.fileIndexAction.title = this.getFileIndexCaption();
41416
+ this.containsMultiplyFiles = this.previewValue.length > 1;
41417
+ };
41162
41418
  QuestionFileModel.prototype.isPreviewVisible = function (index) {
41163
41419
  return !this.isMobile || index === this.indexToShow;
41164
41420
  };
@@ -41331,6 +41587,13 @@ var QuestionFileModel = /** @class */ (function (_super) {
41331
41587
  enumerable: false,
41332
41588
  configurable: true
41333
41589
  });
41590
+ Object.defineProperty(QuestionFileModel.prototype, "chooseButtonText", {
41591
+ get: function () {
41592
+ return this.isEmpty() || this.allowMultiple ? this.chooseButtonCaption : this.replaceButtonCaption;
41593
+ },
41594
+ enumerable: false,
41595
+ configurable: true
41596
+ });
41334
41597
  QuestionFileModel.prototype.clear = function (doneCallback) {
41335
41598
  var _this = this;
41336
41599
  if (!this.survey)
@@ -41391,7 +41654,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
41391
41654
  if (status === "success") {
41392
41655
  var oldValue = _this.value;
41393
41656
  if (Array.isArray(oldValue)) {
41394
- _this.value = oldValue.filter(function (f) { return !_helpers__WEBPACK_IMPORTED_MODULE_8__["Helpers"].isTwoValueEquals(f, content, true); });
41657
+ _this.value = oldValue.filter(function (f) { return !_helpers__WEBPACK_IMPORTED_MODULE_8__["Helpers"].isTwoValueEquals(f, content, true, false, false); });
41395
41658
  }
41396
41659
  else {
41397
41660
  _this.value = undefined;
@@ -41488,6 +41751,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
41488
41751
  loaded.forEach(function (val) {
41489
41752
  _this.previewValue.push(val);
41490
41753
  });
41754
+ _this.previewValueChanged();
41491
41755
  }
41492
41756
  _this.isReady = true;
41493
41757
  _this._previewLoader.dispose();
@@ -41495,9 +41759,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
41495
41759
  });
41496
41760
  this._previewLoader.load(newValues);
41497
41761
  }
41498
- this.indexToShow = this.previewValue.length > 0 ? (this.indexToShow > 0 ? this.indexToShow - 1 : 0) : 0;
41499
- this.fileIndexAction.title = this.getFileIndexCaption();
41500
- this.containsMultiplyFiles = this.previewValue.length > 1;
41762
+ this.previewValueChanged();
41501
41763
  };
41502
41764
  QuestionFileModel.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
41503
41765
  _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
@@ -41628,12 +41890,21 @@ var QuestionFileModel = /** @class */ (function (_super) {
41628
41890
  this.rootElement = el;
41629
41891
  _super.prototype.afterRender.call(this, el);
41630
41892
  };
41893
+ QuestionFileModel.prototype.clearFilesCore = function () {
41894
+ if (this.rootElement) {
41895
+ this.rootElement.querySelectorAll("input")[0].value = "";
41896
+ }
41897
+ this.clear();
41898
+ };
41631
41899
  QuestionFileModel.prototype.doRemoveFile = function (data) {
41900
+ var _this = this;
41632
41901
  if (this.needConfirmRemoveFile) {
41633
- var isConfirmed = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmAction"])(this.getConfirmRemoveMessage(data.name));
41634
- if (!isConfirmed)
41635
- return;
41902
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmActionAsync"])(this.getConfirmRemoveMessage(data.name), function () { _this.removeFileCore(data); });
41903
+ return;
41636
41904
  }
41905
+ this.removeFileCore(data);
41906
+ };
41907
+ QuestionFileModel.prototype.removeFileCore = function (data) {
41637
41908
  var previewIndex = this.previewValue.indexOf(data);
41638
41909
  this.removeFileByContent(previewIndex === -1 ? data : this.value[previewIndex]);
41639
41910
  };
@@ -41667,6 +41938,9 @@ var QuestionFileModel = /** @class */ (function (_super) {
41667
41938
  __decorate([
41668
41939
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: { defaultStr: "chooseFileCaption" } })
41669
41940
  ], QuestionFileModel.prototype, "chooseButtonCaption", void 0);
41941
+ __decorate([
41942
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: { defaultStr: "replaceFileCaption" } })
41943
+ ], QuestionFileModel.prototype, "replaceButtonCaption", void 0);
41670
41944
  __decorate([
41671
41945
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: { defaultStr: "clearCaption" } })
41672
41946
  ], QuestionFileModel.prototype, "clearButtonCaption", void 0);
@@ -41784,7 +42058,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
41784
42058
 
41785
42059
 
41786
42060
  /**
41787
- * A class that describes the Html question type. Unlike other question types, Html cannot have a title or value.
42061
+ * A class that describes the HTML question type. Unlike other question types, HTML cannot have a title or value.
41788
42062
  *
41789
42063
  * [View Demo](https://surveyjs.io/form-library/examples/questiontype-html/ (linkStyle))
41790
42064
  */
@@ -43081,7 +43355,7 @@ var MatrixCells = /** @class */ (function () {
43081
43355
  }());
43082
43356
 
43083
43357
  /**
43084
- * A class that describes the Single-Choice Matrix question type.
43358
+ * A class that describes the Single-Select Matrix question type.
43085
43359
  *
43086
43360
  * [View Demo](https://surveyjs.io/form-library/examples/single-selection-matrix-table-question/ (linkStyle))
43087
43361
  */
@@ -43616,7 +43890,7 @@ var MatrixDropdownRowModel = /** @class */ (function (_super) {
43616
43890
  }(_question_matrixdropdownbase__WEBPACK_IMPORTED_MODULE_0__["MatrixDropdownRowModelBase"]));
43617
43891
 
43618
43892
  /**
43619
- * A class that describes the Multiple-Choice Matrix question type. Multiple-Choice Matrix allows you to use the [Dropdown](https://surveyjs.io/form-library/documentation/questiondropdownmodel), [Checkbox](https://surveyjs.io/form-library/documentation/questioncheckboxmodel), [Radiogroup](https://surveyjs.io/form-library/documentation/questionradiogroupmodel), [Text](https://surveyjs.io/form-library/documentation/questiontextmodel), and [Comment](https://surveyjs.io/form-library/documentation/questioncommentmodel) question types as cell editors.
43893
+ * A class that describes the Multi-Select Matrix question type. Multi-Select Matrix allows you to use the [Dropdown](https://surveyjs.io/form-library/documentation/questiondropdownmodel), [Checkbox](https://surveyjs.io/form-library/documentation/questioncheckboxmodel), [Radiogroup](https://surveyjs.io/form-library/documentation/questionradiogroupmodel), [Text](https://surveyjs.io/form-library/documentation/questiontextmodel), and [Comment](https://surveyjs.io/form-library/documentation/questioncommentmodel) question types as cell editors.
43620
43894
  *
43621
43895
  * [View Demo](https://surveyjs.io/form-library/examples/questiontype-matrixdropdown/ (linkStyle))
43622
43896
  */
@@ -44748,6 +45022,52 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
44748
45022
  enumerable: false,
44749
45023
  configurable: true
44750
45024
  });
45025
+ Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "detailErrorLocation", {
45026
+ /**
45027
+ * Specifies the error message position for question within detail sections.
45028
+ *
45029
+ * Possible values:
45030
+ *
45031
+ * - `"default"` (default) - Inherits the setting from the [`errorLocation`](#errorLocation) property.
45032
+ * - `"top"` - Displays error messages above questions.
45033
+ * - `"bottom"` - Displays error messages below questions.
45034
+ * @see cellErrorLocation
45035
+ */
45036
+ get: function () {
45037
+ return this.getPropertyValue("detailErrorLocation");
45038
+ },
45039
+ set: function (value) {
45040
+ this.setPropertyValue("detailErrorLocation", value.toLowerCase());
45041
+ },
45042
+ enumerable: false,
45043
+ configurable: true
45044
+ });
45045
+ Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "cellErrorLocation", {
45046
+ /**
45047
+ * Specifies the error message position relative to matrix cells.
45048
+ *
45049
+ * Possible values:
45050
+ *
45051
+ * - `"default"` (default) - Inherits the setting from the [`errorLocation`](#errorLocation) property.
45052
+ * - `"top"` - Displays error messages above matrix cells.
45053
+ * - `"bottom"` - Displays error messages below matrix cells.
45054
+ * @see detailErrorLocation
45055
+ */
45056
+ get: function () {
45057
+ return this.getPropertyValue("cellErrorLocation");
45058
+ },
45059
+ set: function (value) {
45060
+ this.setPropertyValue("cellErrorLocation", value.toLowerCase());
45061
+ },
45062
+ enumerable: false,
45063
+ configurable: true
45064
+ });
45065
+ QuestionMatrixDropdownModelBase.prototype.getChildErrorLocation = function (child) {
45066
+ var errLocation = !!child.parent ? this.detailErrorLocation : this.cellErrorLocation;
45067
+ if (errLocation !== "default")
45068
+ return errLocation;
45069
+ return _super.prototype.getChildErrorLocation.call(this, child);
45070
+ };
44751
45071
  Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "isColumnLayoutHorizontal", {
44752
45072
  /**
44753
45073
  * Returns `true` if columns are placed in the horizontal direction and rows in the vertical direction.
@@ -45277,6 +45597,9 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
45277
45597
  newValues["totalRow"] = totalRow;
45278
45598
  return newValues;
45279
45599
  };
45600
+ QuestionMatrixDropdownModelBase.prototype.IsMultiplyColumn = function (column) {
45601
+ return column.isShowInMultipleColumns && !this.isMobile;
45602
+ };
45280
45603
  QuestionMatrixDropdownModelBase.prototype.locStrsChanged = function () {
45281
45604
  _super.prototype.locStrsChanged.call(this);
45282
45605
  var columns = this.columns;
@@ -46122,6 +46445,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
46122
46445
  this.setPropertyValue("detailButtonCss" + row.id, buttonBuilder.toString());
46123
46446
  };
46124
46447
  QuestionMatrixDropdownModelBase.prototype.createRowDetailPanel = function (row) {
46448
+ var _this = this;
46125
46449
  if (this.isDesignMode)
46126
46450
  return this.detailPanel;
46127
46451
  var panel = this.createNewDetailPanel();
@@ -46133,6 +46457,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
46133
46457
  if (!!this.onCreateDetailPanelCallback) {
46134
46458
  this.onCreateDetailPanelCallback(row, panel);
46135
46459
  }
46460
+ panel.questions.forEach(function (q) { return q.setParentQuestion(_this); });
46136
46461
  return panel;
46137
46462
  };
46138
46463
  QuestionMatrixDropdownModelBase.prototype.getSharedQuestionByName = function (columnName, row) {
@@ -46242,6 +46567,9 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownb
46242
46567
  choices: ["none", "underRow", "underRowSingle"],
46243
46568
  default: "none",
46244
46569
  },
46570
+ { name: "cellErrorLocation", default: "default", choices: ["default", "top", "bottom"] },
46571
+ { name: "detailErrorLocation", default: "default", choices: ["default", "top", "bottom"], visibleIf: function (obj) { return !!obj && obj.detailPanelMode != "none"; }
46572
+ },
46245
46573
  "horizontalScroll:boolean",
46246
46574
  {
46247
46575
  name: "choices:itemvalue[]", uniqueProperty: "value",
@@ -47283,7 +47611,7 @@ var QuestionMatrixDropdownRenderedCell = /** @class */ (function () {
47283
47611
  if (!!this.cell.column.cellHint) {
47284
47612
  return this.cell.column.locCellHint.renderedHtml;
47285
47613
  }
47286
- if (this.cell.column.isShowInMultipleColumns) {
47614
+ if (this.matrix.IsMultiplyColumn(this.cell.column)) {
47287
47615
  if (!!this.item) {
47288
47616
  return this.item.locText.renderedHtml;
47289
47617
  }
@@ -47499,7 +47827,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
47499
47827
  Object.defineProperty(QuestionMatrixDropdownRenderedTable.prototype, "showCellErrorsTop", {
47500
47828
  get: function () {
47501
47829
  //todo
47502
- return this.matrix.errorLocation == "top";
47830
+ return this.matrix.getErrorLocation() === "top";
47503
47831
  },
47504
47832
  enumerable: false,
47505
47833
  configurable: true
@@ -47507,7 +47835,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
47507
47835
  Object.defineProperty(QuestionMatrixDropdownRenderedTable.prototype, "showCellErrorsBottom", {
47508
47836
  get: function () {
47509
47837
  //todo
47510
- return this.matrix.errorLocation == "bottom";
47838
+ return this.matrix.getErrorLocation() === "bottom";
47511
47839
  },
47512
47840
  enumerable: false,
47513
47841
  configurable: true
@@ -47650,10 +47978,10 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
47650
47978
  return;
47651
47979
  this.headerRowValue = this.createRenderedRow(this.cssClasses);
47652
47980
  if (this.allowRowsDragAndDrop) {
47653
- this.headerRow.cells.push(this.createHeaderCell(null));
47981
+ this.headerRow.cells.push(this.createHeaderCell(null, "action"));
47654
47982
  }
47655
47983
  if (this.hasActionCellInRows("start")) {
47656
- this.headerRow.cells.push(this.createHeaderCell(null));
47984
+ this.headerRow.cells.push(this.createHeaderCell(null, "action"));
47657
47985
  }
47658
47986
  if (this.matrix.hasRowText && this.matrix.showHeader) {
47659
47987
  this.headerRow.cells.push(this.createHeaderCell(null));
@@ -47663,7 +47991,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
47663
47991
  var column = this.matrix.visibleColumns[i];
47664
47992
  if (!column.hasVisibleCell)
47665
47993
  continue;
47666
- if (column.isShowInMultipleColumns) {
47994
+ if (this.matrix.IsMultiplyColumn(column)) {
47667
47995
  this.createMutlipleColumnsHeader(column);
47668
47996
  }
47669
47997
  else {
@@ -47675,11 +48003,14 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
47675
48003
  var rows = this.matrix.visibleRows;
47676
48004
  for (var i = 0; i < rows.length; i++) {
47677
48005
  var cell = this.createTextCell(rows[i].locText);
48006
+ this.setHeaderCellCssClasses(cell);
47678
48007
  cell.row = rows[i];
47679
48008
  this.headerRow.cells.push(cell);
47680
48009
  }
47681
48010
  if (this.matrix.hasFooter) {
47682
- this.headerRow.cells.push(this.createTextCell(this.matrix.getFooterText()));
48011
+ var cell = this.createTextCell(this.matrix.getFooterText());
48012
+ this.setHeaderCellCssClasses(cell);
48013
+ this.headerRow.cells.push(cell);
47683
48014
  }
47684
48015
  }
47685
48016
  if (this.hasActionCellInRows("end")) {
@@ -47704,7 +48035,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
47704
48035
  var cell = cells[i];
47705
48036
  if (!cell.column.hasVisibleCell)
47706
48037
  continue;
47707
- if (cell.column.isShowInMultipleColumns) {
48038
+ if (this.matrix.IsMultiplyColumn(cell.column)) {
47708
48039
  this.createMutlipleColumnsFooter(this.footerRow, cell);
47709
48040
  }
47710
48041
  else {
@@ -47781,12 +48112,13 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
47781
48112
  QuestionMatrixDropdownRenderedTable.prototype.getRowDragCell = function (rowIndex) {
47782
48113
  var cell = new QuestionMatrixDropdownRenderedCell();
47783
48114
  cell.isDragHandlerCell = true;
47784
- cell.className = this.getActionsCellClassName();
48115
+ cell.className = this.getActionsCellClassName(cell);
47785
48116
  cell.row = this.matrix.visibleRows[rowIndex];
47786
48117
  return cell;
47787
48118
  };
47788
- QuestionMatrixDropdownRenderedTable.prototype.getActionsCellClassName = function () {
47789
- return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]().append(this.cssClasses.actionsCell).append(this.cssClasses.verticalCell, !this.matrix.isColumnLayoutHorizontal).toString();
48119
+ QuestionMatrixDropdownRenderedTable.prototype.getActionsCellClassName = function (cell) {
48120
+ if (cell === void 0) { cell = null; }
48121
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]().append(this.cssClasses.actionsCell).append(this.cssClasses.actionsCellDrag, cell === null || cell === void 0 ? void 0 : cell.isDragHandlerCell).append(this.cssClasses.verticalCell, !this.matrix.isColumnLayoutHorizontal).toString();
47790
48122
  };
47791
48123
  QuestionMatrixDropdownRenderedTable.prototype.getRowActionsCell = function (rowIndex, location) {
47792
48124
  var rowActions = this.getRowActions(rowIndex, location);
@@ -47800,7 +48132,8 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
47800
48132
  var itemValue = new _itemvalue__WEBPACK_IMPORTED_MODULE_2__["ItemValue"](actionContainer);
47801
48133
  cell.item = itemValue;
47802
48134
  cell.isActionsCell = true;
47803
- cell.className = this.getActionsCellClassName();
48135
+ cell.isDragHandlerCell = false;
48136
+ cell.className = this.getActionsCellClassName(cell);
47804
48137
  cell.row = this.matrix.visibleRows[rowIndex];
47805
48138
  return cell;
47806
48139
  }
@@ -47879,7 +48212,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
47879
48212
  if (!cell.hasQuestion) {
47880
48213
  res.cells.push(this.createEmptyCell());
47881
48214
  }
47882
- else if (cell.cell.column.isShowInMultipleColumns) {
48215
+ else if (this.matrix.IsMultiplyColumn(cell.cell.column)) {
47883
48216
  if (cell.isFirstChoice) {
47884
48217
  res.cells.push(this.createErrorCell(cell.cell));
47885
48218
  }
@@ -47911,6 +48244,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
47911
48244
  renderedCell.className = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
47912
48245
  .append(renderedCell.className)
47913
48246
  .append(this.cssClasses.rowTextCell)
48247
+ .append(this.cssClasses.columnTitleCell, !this.matrix.isColumnLayoutHorizontal)
47914
48248
  .append(this.cssClasses.detailRowText, row.hasPanel)
47915
48249
  .toString();
47916
48250
  }
@@ -47918,10 +48252,13 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
47918
48252
  var cell = row.cells[i];
47919
48253
  if (!cell.column.hasVisibleCell)
47920
48254
  continue;
47921
- if (cell.column.isShowInMultipleColumns) {
48255
+ if (this.matrix.IsMultiplyColumn(cell.column)) {
47922
48256
  this.createMutlipleEditCells(res, cell);
47923
48257
  }
47924
48258
  else {
48259
+ if (cell.column.isShowInMultipleColumns) {
48260
+ cell.question.visibleChoices.map(function (c) { return c.hideCaption = false; });
48261
+ }
47925
48262
  var renderedCell = this.createEditCell(cell);
47926
48263
  res.cells.push(renderedCell);
47927
48264
  if (useAsHeader) {
@@ -47984,7 +48321,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
47984
48321
  for (var i = 0; i < columns.length; i++) {
47985
48322
  var col = columns[i];
47986
48323
  if (col.isVisible && col.hasVisibleCell) {
47987
- if (col.isShowInMultipleColumns) {
48324
+ if (this.matrix.IsMultiplyColumn(col)) {
47988
48325
  this.createMutlipleVerticalRows(renderedRows, col, i);
47989
48326
  }
47990
48327
  else {
@@ -48033,7 +48370,8 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
48033
48370
  hCell.column = column;
48034
48371
  hCell.className = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
48035
48372
  .append(hCell.className)
48036
- .append(this.cssClasses.rowTextCell).toString();
48373
+ .append(this.cssClasses.rowTextCell)
48374
+ .append(this.cssClasses.columnTitleCell).toString();
48037
48375
  if (!choice) {
48038
48376
  this.setRequriedToHeaderCell(column, hCell);
48039
48377
  }
@@ -48149,15 +48487,18 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
48149
48487
  QuestionMatrixDropdownRenderedTable.prototype.setHeaderCellCssClasses = function (cell, cellType) {
48150
48488
  cell.className = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
48151
48489
  .append(this.cssClasses.headerCell)
48490
+ .append(this.cssClasses.columnTitleCell, this.matrix.isColumnLayoutHorizontal)
48152
48491
  .append(this.cssClasses.emptyCell, !!cell.isEmpty)
48153
48492
  .append(this.cssClasses.cell + "--" + cellType, !!cellType)
48154
48493
  .toString();
48155
48494
  };
48156
- QuestionMatrixDropdownRenderedTable.prototype.createHeaderCell = function (column) {
48495
+ QuestionMatrixDropdownRenderedTable.prototype.createHeaderCell = function (column, cellType) {
48496
+ if (cellType === void 0) { cellType = null; }
48157
48497
  var cell = !!column ? this.createTextCell(column.locTitle) : this.createEmptyCell();
48158
48498
  cell.column = column;
48159
48499
  this.setHeaderCell(column, cell);
48160
- var cellType = (!!column && column.cellType !== "default") ? column.cellType : this.matrix.cellType;
48500
+ if (!cellType)
48501
+ cellType = (!!column && column.cellType !== "default") ? column.cellType : this.matrix.cellType;
48161
48502
  this.setHeaderCellCssClasses(cell, cellType);
48162
48503
  return cell;
48163
48504
  };
@@ -48197,6 +48538,10 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
48197
48538
  QuestionMatrixDropdownRenderedTable.prototype.createEmptyCell = function () {
48198
48539
  var res = this.createTextCell(null);
48199
48540
  res.isEmpty = true;
48541
+ res.className = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
48542
+ .append(this.cssClasses.cell)
48543
+ .append(this.cssClasses.emptyCell)
48544
+ .toString();
48200
48545
  return res;
48201
48546
  };
48202
48547
  __decorate([
@@ -48371,6 +48716,11 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
48371
48716
  enumerable: false,
48372
48717
  configurable: true
48373
48718
  });
48719
+ Object.defineProperty(QuestionMatrixDynamicModel.prototype, "isValueArray", {
48720
+ get: function () { return true; },
48721
+ enumerable: false,
48722
+ configurable: true
48723
+ });
48374
48724
  Object.defineProperty(QuestionMatrixDynamicModel.prototype, "keyName", {
48375
48725
  /**
48376
48726
  * Specifies a key column. Set this property to a column name, and the question will display `keyDuplicationError` if a user tries to enter a duplicate value in this column.
@@ -48853,6 +49203,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
48853
49203
  * @param confirmDelete *Optional.* A Boolean value that specifies whether to display a confirmation dialog. If you do not specify this parameter, the [`confirmDelete`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model#confirmDelete) property value is used.
48854
49204
  */
48855
49205
  QuestionMatrixDynamicModel.prototype.removeRow = function (index, confirmDelete) {
49206
+ var _this = this;
48856
49207
  if (!this.canRemoveRows)
48857
49208
  return;
48858
49209
  if (index < 0 || index >= this.rowCount)
@@ -48863,8 +49214,13 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
48863
49214
  if (confirmDelete === undefined) {
48864
49215
  confirmDelete = this.isRequireConfirmOnRowDelete(index);
48865
49216
  }
48866
- if (confirmDelete && !Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmAction"])(this.confirmDeleteText))
49217
+ if (confirmDelete) {
49218
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removeRowAsync(index, row); });
48867
49219
  return;
49220
+ }
49221
+ this.removeRowAsync(index, row);
49222
+ };
49223
+ QuestionMatrixDynamicModel.prototype.removeRowAsync = function (index, row) {
48868
49224
  if (!!row && !!this.survey && !this.survey.matrixRowRemoving(this, index, row))
48869
49225
  return;
48870
49226
  this.onStartRowAddingRemoving();
@@ -49381,7 +49737,7 @@ var MultipleTextEditorModel = /** @class */ (function (_super) {
49381
49737
  }(_question_text__WEBPACK_IMPORTED_MODULE_3__["QuestionTextModel"]));
49382
49738
 
49383
49739
  /**
49384
- * A class that describes an item in a [Multiple Text](https://surveyjs.io/form-library/documentation/api-reference/multiple-text-entry-question-model) question.
49740
+ * A class that describes an item in a [Multiple Textboxes](https://surveyjs.io/form-library/documentation/api-reference/multiple-text-entry-question-model) question.
49385
49741
  *
49386
49742
  * [View Demo](/form-library/examples/multiple-text-box-question/)
49387
49743
  */
@@ -49462,6 +49818,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
49462
49818
  this.editor.defaultValue = data.getItemDefaultValue(this.name);
49463
49819
  this.editor.setSurveyImpl(this);
49464
49820
  this.editor.parent = data;
49821
+ this.editor.setParentQuestion(data);
49465
49822
  }
49466
49823
  };
49467
49824
  Object.defineProperty(MultipleTextItemModel.prototype, "isRequired", {
@@ -49892,6 +50249,33 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
49892
50249
  this.items[i].localeChanged();
49893
50250
  }
49894
50251
  };
50252
+ Object.defineProperty(QuestionMultipleTextModel.prototype, "itemErrorLocation", {
50253
+ /**
50254
+ * Specifies the error message position relative to individual input fields.
50255
+ *
50256
+ * Possible values:
50257
+ *
50258
+ * - `"default"` (default) - Inherits the setting from the [`errorLocation`](#errorLocation) property.
50259
+ * - `"top"` - Displays error messages above input fields.
50260
+ * - `"bottom"` - Displays error messages below input fields.
50261
+ */
50262
+ get: function () {
50263
+ return this.getPropertyValue("itemErrorLocation");
50264
+ },
50265
+ set: function (val) {
50266
+ this.setPropertyValue("itemErrorLocation", val);
50267
+ },
50268
+ enumerable: false,
50269
+ configurable: true
50270
+ });
50271
+ QuestionMultipleTextModel.prototype.getQuestionErrorLocation = function () {
50272
+ if (this.itemErrorLocation !== "default")
50273
+ return this.itemErrorLocation;
50274
+ return this.getErrorLocation();
50275
+ };
50276
+ QuestionMultipleTextModel.prototype.getChildErrorLocation = function (child) {
50277
+ return this.getQuestionErrorLocation();
50278
+ };
49895
50279
  QuestionMultipleTextModel.prototype.isNewValueCorrect = function (val) {
49896
50280
  return _helpers__WEBPACK_IMPORTED_MODULE_6__["Helpers"].isValueObject(val);
49897
50281
  };
@@ -50159,6 +50543,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_4__["Serializer"].addClass("multipletext",
50159
50543
  { name: "!items:textitems", className: "multipletextitem" },
50160
50544
  { name: "itemSize:number", minValue: 0 },
50161
50545
  { name: "colCount:number", default: 1, choices: [1, 2, 3, 4, 5] },
50546
+ { name: "itemErrorLocation", default: "default", choices: ["default", "top", "bottom"], visible: false }
50162
50547
  ], function () {
50163
50548
  return new QuestionMultipleTextModel("");
50164
50549
  }, "question");
@@ -50352,7 +50737,7 @@ var QuestionPanelDynamicItem = /** @class */ (function () {
50352
50737
  QuestionPanelDynamicItem.prototype.setValue = function (name, newValue) {
50353
50738
  var oldItemData = this.data.getPanelItemData(this);
50354
50739
  var oldValue = !!oldItemData ? oldItemData[name] : undefined;
50355
- if (_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isTwoValueEquals(newValue, oldValue, false, true))
50740
+ if (_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isTwoValueEquals(newValue, oldValue, false, true, false))
50356
50741
  return;
50357
50742
  this.data.setPanelItemData(this, name, _helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].getUnbindValue(newValue));
50358
50743
  var questions = this.panel.questions;
@@ -51330,6 +51715,25 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
51330
51715
  enumerable: false,
51331
51716
  configurable: true
51332
51717
  });
51718
+ Object.defineProperty(QuestionPanelDynamicModel.prototype, "templateErrorLocation", {
51719
+ /**
51720
+ * Specifies the error message position.
51721
+ *
51722
+ * Possible values:
51723
+ *
51724
+ * - `"default"` (default) - Inherits the setting from the [`errorLocation`](#errorLocation) property.
51725
+ * - `"top"` - Displays error messages above questions.
51726
+ * - `"bottom"` - Displays error messages below questions.
51727
+ */
51728
+ get: function () {
51729
+ return this.getPropertyValue("templateErrorLocation");
51730
+ },
51731
+ set: function (value) {
51732
+ this.setPropertyValue("templateErrorLocation", value.toLowerCase());
51733
+ },
51734
+ enumerable: false,
51735
+ configurable: true
51736
+ });
51333
51737
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "showQuestionNumbers", {
51334
51738
  /**
51335
51739
  * Use this property to show/hide the numbers in titles in questions inside a dynamic panel.
@@ -51591,6 +51995,11 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
51591
51995
  }
51592
51996
  this.value = newValue;
51593
51997
  };
51998
+ Object.defineProperty(QuestionPanelDynamicModel.prototype, "isValueArray", {
51999
+ get: function () { return true; },
52000
+ enumerable: false,
52001
+ configurable: true
52002
+ });
51594
52003
  QuestionPanelDynamicModel.prototype.isEmpty = function () {
51595
52004
  var val = this.value;
51596
52005
  if (!val || !Array.isArray(val))
@@ -51685,9 +52094,13 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
51685
52094
  *
51686
52095
  */
51687
52096
  QuestionPanelDynamicModel.prototype.removePanelUI = function (value) {
52097
+ var _this = this;
51688
52098
  if (!this.canRemovePanel)
51689
52099
  return;
51690
- if (!this.confirmDelete || Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["confirmAction"])(this.confirmDeleteText)) {
52100
+ if (this.confirmDelete) {
52101
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removePanel(value); });
52102
+ }
52103
+ else {
51691
52104
  this.removePanel(value);
51692
52105
  }
51693
52106
  };
@@ -52210,13 +52623,11 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
52210
52623
  return panel;
52211
52624
  };
52212
52625
  QuestionPanelDynamicModel.prototype.createAndSetupNewPanelObject = function () {
52626
+ var _this = this;
52213
52627
  var panel = this.createNewPanelObject();
52214
52628
  panel.isInteractiveDesignElement = false;
52215
52629
  panel.setParentQuestion(this);
52216
- var self = this;
52217
- panel.onGetQuestionTitleLocation = function () {
52218
- return self.getTemplateQuestionTitleLocation();
52219
- };
52630
+ panel.onGetQuestionTitleLocation = function () { return _this.getTemplateQuestionTitleLocation(); };
52220
52631
  return panel;
52221
52632
  };
52222
52633
  QuestionPanelDynamicModel.prototype.getTemplateQuestionTitleLocation = function () {
@@ -52224,6 +52635,11 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
52224
52635
  ? this.templateTitleLocation
52225
52636
  : this.getTitleLocationCore();
52226
52637
  };
52638
+ QuestionPanelDynamicModel.prototype.getChildErrorLocation = function (child) {
52639
+ if (this.templateErrorLocation !== "default")
52640
+ return this.templateErrorLocation;
52641
+ return _super.prototype.getChildErrorLocation.call(this, child);
52642
+ };
52227
52643
  QuestionPanelDynamicModel.prototype.createNewPanelObject = function () {
52228
52644
  return _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].createClass("panel");
52229
52645
  };
@@ -52776,6 +53192,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
52776
53192
  default: "default",
52777
53193
  choices: ["default", "top", "bottom", "left"],
52778
53194
  },
53195
+ { name: "templateErrorLocation", default: "default", choices: ["default", "top", "bottom"] },
52779
53196
  {
52780
53197
  name: "templateVisibleIf:expression",
52781
53198
  category: "logic"
@@ -52831,7 +53248,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
52831
53248
 
52832
53249
 
52833
53250
  /**
52834
- * A class that describes the Radiogroup question type.
53251
+ * A class that describes the Radio Button Group question type.
52835
53252
  *
52836
53253
  * [View Demo](https://surveyjs.io/form-library/examples/questiontype-radiogroup/ (linkStyle))
52837
53254
  */
@@ -54688,7 +55105,7 @@ function resizeCanvas(canvas) {
54688
55105
  context.scale(ratio, ratio);
54689
55106
  }
54690
55107
  /**
54691
- * A class that describes the Signature Page question type.
55108
+ * A class that describes the Signature question type.
54692
55109
  *
54693
55110
  * [View Demo](https://surveyjs.io/form-library/examples/signature-pad-widget-javascript/ (linkStyle))
54694
55111
  */
@@ -55053,7 +55470,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
55053
55470
 
55054
55471
 
55055
55472
  /**
55056
- * A Model for a tagbox question
55473
+ * A class that describes the Multi-Select Dropdown (Tag Box) question type.
55057
55474
  *
55058
55475
  * [View Demo](https://surveyjs.io/form-library/examples/how-to-create-multiselect-tag-box/ (linkStyle))
55059
55476
  */
@@ -55326,7 +55743,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
55326
55743
 
55327
55744
 
55328
55745
  /**
55329
- * A class that describes the Text question type.
55746
+ * A class that describes the Single-Line Input question type.
55330
55747
  *
55331
55748
  * [View Demo](https://surveyjs.io/form-library/examples/questiontype-text/ (linkStyle))
55332
55749
  */
@@ -55432,6 +55849,11 @@ var QuestionTextModel = /** @class */ (function (_super) {
55432
55849
  enumerable: false,
55433
55850
  configurable: true
55434
55851
  });
55852
+ QuestionTextModel.prototype.getMaxLength = function () {
55853
+ if (this.inputType !== "text")
55854
+ return null;
55855
+ return _super.prototype.getMaxLength.call(this);
55856
+ };
55435
55857
  QuestionTextModel.prototype.runCondition = function (values, properties) {
55436
55858
  _super.prototype.runCondition.call(this, values, properties);
55437
55859
  if (!!this.minValueExpression || !!this.maxValueExpression) {
@@ -56106,7 +56528,7 @@ var CharacterCounter = /** @class */ (function (_super) {
56106
56528
  }(_base__WEBPACK_IMPORTED_MODULE_4__["Base"]));
56107
56529
 
56108
56530
  /**
56109
- * A base class for the [Text](https://surveyjs.io/form-library/documentation/questiontextmodel) and [Comment](https://surveyjs.io/form-library/documentation/questioncommentmodel) question types.
56531
+ * A base class for the [Single-Line Input](https://surveyjs.io/form-library/documentation/questiontextmodel) and [Long Text](https://surveyjs.io/form-library/documentation/questioncommentmodel) question types.
56110
56532
  */
56111
56533
  var QuestionTextBase = /** @class */ (function (_super) {
56112
56534
  __extends(QuestionTextBase, _super);
@@ -59501,7 +59923,7 @@ var SurveyQuestionDropdownBase = /** @class */ (function (_super) {
59501
59923
  if (!this.question.cssClasses.chevronButtonIconId)
59502
59924
  return null;
59503
59925
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.chevronButton },
59504
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { className: this.question.cssClasses.chevronButtonSvg, iconName: this.question.cssClasses.chevronButtonIconId, size: 24 })));
59926
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { className: this.question.cssClasses.chevronButtonSvg, iconName: this.question.cssClasses.chevronButtonIconId, size: "auto" })));
59505
59927
  };
59506
59928
  SurveyQuestionDropdownBase.prototype.renderOther = function (cssClasses) {
59507
59929
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.getCommentAreaCss(true) },
@@ -59519,7 +59941,7 @@ var SurveyQuestionDropdownBase = /** @class */ (function (_super) {
59519
59941
  if (!!this.inputElement) {
59520
59942
  var control = this.inputElement;
59521
59943
  var newValue = this.question.dropdownListModel.inputStringRendered;
59522
- if (!survey_core__WEBPACK_IMPORTED_MODULE_1__["Helpers"].isTwoValueEquals(newValue, control.value, false, true)) {
59944
+ if (!survey_core__WEBPACK_IMPORTED_MODULE_1__["Helpers"].isTwoValueEquals(newValue, control.value, false, true, false)) {
59523
59945
  control.value = this.question.dropdownListModel.inputStringRendered;
59524
59946
  }
59525
59947
  }
@@ -62863,7 +63285,7 @@ var SurveyQuestionUncontrolledElement = /** @class */ (function (_super) {
62863
63285
  function SurveyQuestionUncontrolledElement(props) {
62864
63286
  var _this = _super.call(this, props) || this;
62865
63287
  _this.updateValueOnEvent = function (event) {
62866
- if (!survey_core__WEBPACK_IMPORTED_MODULE_1__["Helpers"].isTwoValueEquals(_this.questionBase.value, event.target.value, false, true)) {
63288
+ if (!survey_core__WEBPACK_IMPORTED_MODULE_1__["Helpers"].isTwoValueEquals(_this.questionBase.value, event.target.value, false, true, false)) {
62867
63289
  _this.setValueCore(event.target.value);
62868
63290
  }
62869
63291
  };
@@ -62887,7 +63309,7 @@ var SurveyQuestionUncontrolledElement = /** @class */ (function (_super) {
62887
63309
  if (!!this.control) {
62888
63310
  var control = this.control;
62889
63311
  var newValue = this.getValueCore();
62890
- if (!survey_core__WEBPACK_IMPORTED_MODULE_1__["Helpers"].isTwoValueEquals(newValue, control.value, false, true)) {
63312
+ if (!survey_core__WEBPACK_IMPORTED_MODULE_1__["Helpers"].isTwoValueEquals(newValue, control.value, false, true, false)) {
62891
63313
  control.value = this.getValue(newValue);
62892
63314
  }
62893
63315
  }
@@ -63136,9 +63558,9 @@ var SurveyQuestionFile = /** @class */ (function (_super) {
63136
63558
  var questionCss = this.question.cssClasses;
63137
63559
  var noFileChosen = null;
63138
63560
  var chooseFile = null;
63139
- chooseFile = this.question.isReadOnly ? null : Object(_reactSurvey__WEBPACK_IMPORTED_MODULE_5__["attachKey2click"])(react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { role: "button", tabIndex: 0, className: this.question.getChooseFileCss(), htmlFor: this.question.inputId, "aria-label": this.question.chooseButtonCaption },
63140
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", null, this.question.chooseButtonCaption),
63141
- (!!this.question.cssClasses.chooseFileIconId) ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_2__["SvgIcon"], { title: this.question.chooseButtonCaption, iconName: this.question.cssClasses.chooseFileIconId, size: "auto" }) : null));
63561
+ chooseFile = this.question.isReadOnly ? null : Object(_reactSurvey__WEBPACK_IMPORTED_MODULE_5__["attachKey2click"])(react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { role: "button", tabIndex: 0, className: this.question.getChooseFileCss(), htmlFor: this.question.inputId, "aria-label": this.question.chooseButtonText },
63562
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", null, this.question.chooseButtonText),
63563
+ (!!this.question.cssClasses.chooseFileIconId) ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_2__["SvgIcon"], { title: this.question.chooseButtonText, iconName: this.question.cssClasses.chooseFileIconId, size: "auto" }) : null));
63142
63564
  if (this.question.isEmpty()) {
63143
63565
  noFileChosen = (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.cssClasses.noFileChosen }, this.question.noFileChosenCaption));
63144
63566
  }
@@ -65791,7 +66213,7 @@ var TagboxFilterString = /** @class */ (function (_super) {
65791
66213
  if (!!this.inputElement) {
65792
66214
  var control = this.inputElement;
65793
66215
  var newValue = this.model.inputStringRendered;
65794
- if (!survey_core__WEBPACK_IMPORTED_MODULE_1__["Helpers"].isTwoValueEquals(newValue, control.value, false, true)) {
66216
+ if (!survey_core__WEBPACK_IMPORTED_MODULE_1__["Helpers"].isTwoValueEquals(newValue, control.value, false, true, false)) {
65795
66217
  control.value = this.model.inputStringRendered;
65796
66218
  }
65797
66219
  }
@@ -66397,12 +66819,6 @@ var settings = {
66397
66819
  *
66398
66820
  * - `caseSensitive`: `Boolean`\
66399
66821
  * Specifies whether to differentiate between capital and lower-case letters. Default value: `false`.
66400
- *
66401
- * - `normalizedTextCallback`: `(str: string, reason: string) => string`
66402
- * Use the following function { str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); }
66403
- * If you want to 'Brouillé' to be equal to 'Brouille'.
66404
- * Use the following function { return reason === "filter" ? str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""): ""; }
66405
- * If you want to use this functionality during filtering only, for example in list.
66406
66822
  */
66407
66823
  comparator: {
66408
66824
  trimStrings: true,
@@ -66439,12 +66855,24 @@ var settings = {
66439
66855
  */
66440
66856
  tagboxCloseOnSelect: false,
66441
66857
  /**
66442
- * A property that allows you to display a custom confirm dialog instead of the standard browser dialog. Set this property to a function that renders your custom dialog window.
66858
+ * A property that allows you to display a custom confirm dialog instead of the standard browser dialog.
66859
+ *
66860
+ * Set this property to a function that renders your custom dialog window. This function should return `true` if a user confirms an action or `false` otherwise.
66443
66861
  * @param message A message to be displayed in the confirm dialog window.
66444
66862
  */
66445
66863
  confirmActionFunc: function (message) {
66446
66864
  return confirm(message);
66447
66865
  },
66866
+ /**
66867
+ * A property that allows you to display a custom confirm dialog instead of the standard browser dialog in async mode.
66868
+ *
66869
+ * Set this property to a function that renders your custom dialog window. This function should return `true` to be enabled; otherwise, a survey executes the [`confirmActionFunc`](#confirmActionFunc) function. Pass the dialog result as the `callback` parameter: `true` if a user confirms an action, `false` otherwise.
66870
+ * @param message A message to be displayed in the confirm dialog window.
66871
+ * @param callback A callback function that should be called with `true` if a user confirms an action or `false` otherwise.
66872
+ */
66873
+ confirmActionAsync: function (message, callback) {
66874
+ return false;
66875
+ },
66448
66876
  /**
66449
66877
  * A minimum width value for all survey elements.
66450
66878
  *
@@ -66536,11 +66964,22 @@ var settings = {
66536
66964
  * - `"icon"` - Users can only use the choice item icon as a drag handle.
66537
66965
  */
66538
66966
  rankingDragHandleArea: "entireItem",
66967
+ environment: defaultEnvironment,
66539
66968
  /**
66540
- * Specifies environment in which SurveyJS will exist
66969
+ * Allows you to hide the maximum length indicator in text input questions.
66970
+ *
66971
+ * If you specify a question's [`maxLength`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maxLength) property or a survey's [`maxTextLength`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#maxTextLength) property, text input questions indicate the number of entered characters and the character limit. Assign `false` to the `settings.showMaxLengthIndicator` property if you want to hide this indicator.
66972
+ *
66973
+ * Default value: `true`
66541
66974
  */
66542
- environment: defaultEnvironment,
66543
66975
  showMaxLengthIndicator: true,
66976
+ /**
66977
+ * An object that specifies heading levels (`<h1>`, `<h2>`, etc.) to use when rendering survey, page, panel, and question titles.
66978
+ *
66979
+ * Default value: `{ survey: "h3", page: "h4", panel: "h4", question: "h5" }`
66980
+ *
66981
+ * If you want to modify heading levels for individual titles, handle `SurveyModel`'s [`onGetTitleTagName`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onGetTitleTagName) event.
66982
+ */
66544
66983
  titleTags: {
66545
66984
  survey: "h3",
66546
66985
  page: "h4",
@@ -68523,7 +68962,7 @@ var SurveyModel = /** @class */ (function (_super) {
68523
68962
  *
68524
68963
  * For information on event handler parameters, refer to descriptions within the interface.
68525
68964
  *
68526
- * [Continue an Incomplete Survey](https://surveyjs.io/form-library/documentation/handle-survey-results-continue-incomplete (linkStyle)).
68965
+ * [Continue an Incomplete Survey](https://surveyjs.io/form-library/documentation/handle-survey-results-continue-incomplete (linkStyle))
68527
68966
  */
68528
68967
  _this.onPartialSend = _this.addEvent();
68529
68968
  /**
@@ -68714,26 +69153,37 @@ var SurveyModel = /** @class */ (function (_super) {
68714
69153
  */
68715
69154
  _this.onGetQuestionDisplayValue = _this.addEvent();
68716
69155
  /**
68717
- * Use this event to change the question title in code. If you want to remove question numbering then set showQuestionNumbers to "off".
68718
- * @see showQuestionNumbers
69156
+ * An event that is raised before the survey displays a question title. Handle this event to modify question titles.
69157
+ *
69158
+ * For information on event handler parameters, refer to descriptions within the interface.
69159
+ *
69160
+ * If you want to modify question numbers, handle the [`onGetQuestionNo`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onGetQuestionNo) event.
68719
69161
  * @see requiredText
68720
69162
  */
68721
69163
  _this.onGetQuestionTitle = _this.addEvent();
68722
69164
  /**
68723
- * Use this event to change the element title tag name that renders by default.
68724
- * @see showQuestionNumbers
68725
- * @see requiredText
69165
+ * An event that is raised when the survey calculates heading levels (`<h1>`, `<h2>`, etc.) for a survey, page, panel, and question title. Handle this event to change the heading level of individual titles.
69166
+ *
69167
+ * For information on event handler parameters, refer to descriptions within the interface.
69168
+ *
69169
+ * If you want to specify heading levels for all titles, use the [`titleTags`](https://surveyjs.io/form-library/documentation/api-reference/settings#titleTags) object in [global settings](https://surveyjs.io/form-library/documentation/api-reference/settings).
69170
+ * @see onGetQuestionTitle
69171
+ * @see onGetQuestionNo
68726
69172
  */
68727
69173
  _this.onGetTitleTagName = _this.addEvent();
68728
69174
  /**
68729
- * Use this event to change the question no in code. If you want to remove question numbering then set showQuestionNumbers to "off".
68730
- * @see showQuestionNumbers
69175
+ * An event that is raised before the survey calculates a question number. Handle this event to modify question numbers.
69176
+ *
69177
+ * For information on event handler parameters, refer to descriptions within the interface.
69178
+ *
69179
+ * If you want to hide question numbers, disable the [`showQuestionNumbers`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showQuestionNumbers) property.
69180
+ * @see onGetQuestionTitle
68731
69181
  * @see questionStartIndex
68732
69182
  */
68733
69183
  _this.onGetQuestionNo = _this.addEvent();
68734
69184
  /**
68735
69185
  * Use this event to change the progress text in code.
68736
- * @see progressBarType
69186
+ * @see progressBarType
68737
69187
  */
68738
69188
  _this.onProgressText = _this.addEvent();
68739
69189
  /**
@@ -69140,7 +69590,6 @@ var SurveyModel = /** @class */ (function (_super) {
69140
69590
  _this.createHtmlLocString("completedBeforeHtml", "completingSurveyBefore", htmlCallBack, "completed-before");
69141
69591
  _this.createHtmlLocString("loadingHtml", "loadingSurvey", htmlCallBack, "loading");
69142
69592
  _this.createLocalizableString("logo", _this, false);
69143
- _this.createLocalizableString("backgroundImage", _this, false);
69144
69593
  _this.createLocalizableString("startSurveyText", _this, false, true);
69145
69594
  _this.createLocalizableString("pagePrevText", _this, false, true);
69146
69595
  _this.createLocalizableString("pageNextText", _this, false, true);
@@ -70013,7 +70462,7 @@ var SurveyModel = /** @class */ (function (_super) {
70013
70462
  *
70014
70463
  * If you enable this property, the survey is also completed automatically. Set the [`allowCompleteSurveyAutomatic`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#allowCompleteSurveyAutomatic) property to `false` if you want to disable this behavior.
70015
70464
  *
70016
- * > If any of the following questions is answered last, the survey does not switch to the next page: Checkbox, Boolean (rendered as Checkbox), Comment, Signature Pad, Image Picker (with Multi Select), File, Single-Choice Matrix (not all rows are answered), Dynamic Matrix, Panel Dynamic.
70465
+ * > If any of the following questions is answered last, the survey does not switch to the next page: Checkboxes, Yes/No (Boolean) (rendered as Checkbox), Long Text, Signature, Image Picker (with Multi Select), File Upload, Single-Select Matrix (not all rows are answered), Dynamic Matrix, Dynamic Panel.
70017
70466
  *
70018
70467
  * [View Demo](https://surveyjs.io/form-library/examples/automatically-move-to-next-page-if-answer-selected/ (linkStyle))
70019
70468
  */
@@ -70632,29 +71081,8 @@ var SurveyModel = /** @class */ (function (_super) {
70632
71081
  enumerable: false,
70633
71082
  configurable: true
70634
71083
  });
70635
- Object.defineProperty(SurveyModel.prototype, "backgroundImage", {
70636
- /**
70637
- * An image to display in the background of the survey or form. Accepts a base64 or URL string value.
70638
- * @see backgroundOpacity
70639
- */
70640
- get: function () {
70641
- return this.getLocalizableStringText("backgroundImage");
70642
- },
70643
- set: function (value) {
70644
- this.setLocalizableStringText("backgroundImage", value);
70645
- },
70646
- enumerable: false,
70647
- configurable: true
70648
- });
70649
- Object.defineProperty(SurveyModel.prototype, "locBackgroundImage", {
70650
- get: function () {
70651
- return this.getLocalizableString("backgroundImage");
70652
- },
70653
- enumerable: false,
70654
- configurable: true
70655
- });
70656
71084
  SurveyModel.prototype.updateRenderBackgroundImage = function () {
70657
- var path = this.getLocalizableString("backgroundImage").renderedHtml;
71085
+ var path = this.backgroundImage;
70658
71086
  this.renderBackgroundImage = !!path ? ["url(", path, ")"].join("") : "";
70659
71087
  };
70660
71088
  Object.defineProperty(SurveyModel.prototype, "backgroundOpacity", {
@@ -71144,15 +71572,17 @@ var SurveyModel = /** @class */ (function (_super) {
71144
71572
  });
71145
71573
  Object.defineProperty(SurveyModel.prototype, "showQuestionNumbers", {
71146
71574
  /**
71147
- * Gets or sets a value that specifies how the question numbers are displayed.
71575
+ * Specifies whether to display question numbers and how to calculate them.
71148
71576
  *
71149
- * The following options are available:
71577
+ * Possible values:
71150
71578
  *
71151
- * - `on` - display question numbers
71152
- * - `onpage` - display question numbers, start numbering on every page
71153
- * - `off` - turn off the numbering for questions titles
71579
+ * - `true` or `"on"` - Displays question numbers.
71580
+ * - `"onpage"` - Displays question numbers and starts numbering on each page from scratch.
71581
+ * - `false` or `"off"` - Hides question numbers.
71154
71582
  *
71155
- * [View Demo](https://surveyjs.io/form-library/examples/survey-options/ (linkStyle))
71583
+ * [View Demo](https://surveyjs.io/form-library/examples/how-to-number-pages-and-questions/ (linkStyle))
71584
+ *
71585
+ * If you want to hide the number of an individual question, enable its [`hideNumber`](https://surveyjs.io/form-library/documentation/api-reference/question#hideNumber) property.
71156
71586
  */
71157
71587
  get: function () {
71158
71588
  return this.getPropertyValue("showQuestionNumbers");
@@ -71294,12 +71724,14 @@ var SurveyModel = /** @class */ (function (_super) {
71294
71724
  };
71295
71725
  Object.defineProperty(SurveyModel.prototype, "questionErrorLocation", {
71296
71726
  /**
71297
- * Gets or sets the error message position.
71727
+ * Specifies the error message position.
71298
71728
  *
71299
- * The following options are available:
71729
+ * Possible values:
71730
+ *
71731
+ * - `"top"` (default) - Displays error messages above questions.
71732
+ * - `"bottom"` - Displays error messages below questions.
71300
71733
  *
71301
- * - `top` - to show question error(s) over the question,
71302
- * - `bottom` - to show question error(s) under the question.
71734
+ * You can override this setting if you specify the `questionErrorLocation` property for an [individual page](https://surveyjs.io/form-library/documentation/pagemodel#questionErrorLocation) or [panel](https://surveyjs.io/form-library/documentation/panelmodel#questionErrorLocation) or set the `errorLocation` property for a [specific question](https://surveyjs.io/form-library/documentation/question#errorLocation).
71303
71735
  */
71304
71736
  get: function () {
71305
71737
  return this.getPropertyValue("questionErrorLocation");
@@ -72420,7 +72852,7 @@ var SurveyModel = /** @class */ (function (_super) {
72420
72852
  _this.doCurrentPageCompleteCore(doComplete);
72421
72853
  }
72422
72854
  };
72423
- if (this.checkErrorsMode === "onComplete") {
72855
+ if (this.isValidateOnComplete) {
72424
72856
  if (!this.isLastPage)
72425
72857
  return false;
72426
72858
  return this.validate(true, true, func) !== true;
@@ -72726,6 +73158,9 @@ var SurveyModel = /** @class */ (function (_super) {
72726
73158
  * @see nextPage
72727
73159
  */
72728
73160
  SurveyModel.prototype.completeLastPage = function () {
73161
+ if (this.isValidateOnComplete) {
73162
+ this.cancelPreview();
73163
+ }
72729
73164
  var res = this.doCurrentPageComplete(true);
72730
73165
  if (res) {
72731
73166
  this.cancelPreview();
@@ -72758,7 +73193,7 @@ var SurveyModel = /** @class */ (function (_super) {
72758
73193
  */
72759
73194
  SurveyModel.prototype.showPreview = function () {
72760
73195
  this.resetNavigationButton();
72761
- if (this.checkErrorsMode !== "onComplete") {
73196
+ if (!this.isValidateOnComplete) {
72762
73197
  if (this.hasErrorsOnNavigate(true))
72763
73198
  return false;
72764
73199
  if (this.doServerValidation(true, true))
@@ -73151,6 +73586,7 @@ var SurveyModel = /** @class */ (function (_super) {
73151
73586
  * The `doComplete()` method completes the survey regardless of validation errors and the current page. If you need to ensure that survey results are valid and full, call the [`completeLastPage()`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#completeLastPage) method instead.
73152
73587
  *
73153
73588
  * @param isCompleteOnTrigger For internal use.
73589
+ * @param completeTrigger For internal use.
73154
73590
  * @returns `false` if survey completion is cancelled within the [`onCompleting`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onCompleting) event handler; otherwise, `true`.
73155
73591
  * @see surveyPostId
73156
73592
  */
@@ -73266,7 +73702,7 @@ var SurveyModel = /** @class */ (function (_super) {
73266
73702
  self.completeServerValidation(options, isPreview);
73267
73703
  },
73268
73704
  };
73269
- if (doComplete && this.checkErrorsMode === "onComplete") {
73705
+ if (doComplete && this.isValidateOnComplete) {
73270
73706
  options.data = this.data;
73271
73707
  }
73272
73708
  else {
@@ -73289,7 +73725,7 @@ var SurveyModel = /** @class */ (function (_super) {
73289
73725
  if (!this.onServerValidateQuestions ||
73290
73726
  this.onServerValidateQuestions.isEmpty)
73291
73727
  return false;
73292
- if (!doComplete && this.checkErrorsMode === "onComplete")
73728
+ if (!doComplete && this.isValidateOnComplete)
73293
73729
  return false;
73294
73730
  this.setIsValidatingOnServer(true);
73295
73731
  var isFunc = typeof this.onServerValidateQuestions === "function";
@@ -73752,6 +74188,13 @@ var SurveyModel = /** @class */ (function (_super) {
73752
74188
  enumerable: false,
73753
74189
  configurable: true
73754
74190
  });
74191
+ Object.defineProperty(SurveyModel.prototype, "isValidateOnComplete", {
74192
+ get: function () {
74193
+ return this.checkErrorsMode === "onComplete";
74194
+ },
74195
+ enumerable: false,
74196
+ configurable: true
74197
+ });
73755
74198
  SurveyModel.prototype.matrixCellValidate = function (question, options) {
73756
74199
  options.question = question;
73757
74200
  this.onMatrixCellValidate.fire(this, options);
@@ -74309,7 +74752,7 @@ var SurveyModel = /** @class */ (function (_super) {
74309
74752
  };
74310
74753
  SurveyModel.prototype.checkQuestionErrorOnValueChanged = function (question) {
74311
74754
  if (!this.isNavigationButtonPressed &&
74312
- (this.checkErrorsMode === "onValueChanged" ||
74755
+ (this.isValidateOnValueChanged ||
74313
74756
  question.getAllErrors().length > 0)) {
74314
74757
  this.checkQuestionErrorOnValueChangedCore(question);
74315
74758
  }
@@ -75041,7 +75484,7 @@ var SurveyModel = /** @class */ (function (_super) {
75041
75484
  this.isTwoValueEquals(newValue, newQuestionValue))
75042
75485
  return;
75043
75486
  var oldValue = this.getValue(name);
75044
- if (this.isValueEmpty(newValue)) {
75487
+ if (this.isValueEmpty(newValue, false)) {
75045
75488
  this.deleteDataValueCore(this.valuesHash, name);
75046
75489
  }
75047
75490
  else {
@@ -76191,6 +76634,9 @@ var SurveyModel = /** @class */ (function (_super) {
76191
76634
  __decorate([
76192
76635
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
76193
76636
  ], SurveyModel.prototype, "_isCompact", void 0);
76637
+ __decorate([
76638
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
76639
+ ], SurveyModel.prototype, "backgroundImage", void 0);
76194
76640
  __decorate([
76195
76641
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
76196
76642
  ], SurveyModel.prototype, "renderBackgroundImage", void 0);
@@ -76352,10 +76798,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
76352
76798
  name: "showTOC:switch",
76353
76799
  default: false
76354
76800
  },
76355
- {
76356
- name: "tocLocation",
76357
- default: "left",
76358
- choices: ["left", "right"],
76801
+ { name: "tocLocation", default: "left", choices: ["left", "right"],
76802
+ dependsOn: ["showTOC"], visibleIf: function (survey) { return !!survey && survey.showTOC; }
76359
76803
  },
76360
76804
  { name: "mode", default: "edit", choices: ["edit", "display"] },
76361
76805
  { name: "storeOthersAsComment:boolean", default: true },
@@ -76397,9 +76841,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
76397
76841
  {
76398
76842
  name: "questionStartIndex",
76399
76843
  dependsOn: ["showQuestionNumbers"],
76400
- visibleIf: function (survey) {
76401
- return !survey || survey.showQuestionNumbers !== "off";
76402
- },
76844
+ visibleIf: function (survey) { return !survey || survey.showQuestionNumbers !== "off"; }
76403
76845
  },
76404
76846
  {
76405
76847
  name: "questionTitlePattern",
@@ -76452,7 +76894,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
76452
76894
  choices: ["auto", "static", "responsive"],
76453
76895
  },
76454
76896
  { name: "width", visibleIf: function (obj) { return obj.widthMode === "static"; } },
76455
- { name: "backgroundImage", serializationProperty: "locBackgroundImage", visible: false },
76897
+ { name: "backgroundImage", visible: false },
76456
76898
  { name: "backgroundImageFit", default: "cover", choices: ["auto", "contain", "cover"], visible: false },
76457
76899
  { name: "backgroundImageAttachment", default: "scroll", choices: ["scroll", "fixed"], visible: false },
76458
76900
  { name: "backgroundOpacity:number", minValue: 0, maxValue: 1, default: 1, visible: false },
@@ -78548,7 +78990,7 @@ var TooltipManager = /** @class */ (function () {
78548
78990
  /*!****************************!*\
78549
78991
  !*** ./src/utils/utils.ts ***!
78550
78992
  \****************************/
78551
- /*! exports provided: unwrap, getRenderedSize, getRenderedStyleSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild */
78993
+ /*! exports provided: unwrap, getRenderedSize, getRenderedStyleSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild */
78552
78994
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
78553
78995
 
78554
78996
  "use strict";
@@ -78567,6 +79009,7 @@ __webpack_require__.r(__webpack_exports__);
78567
79009
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "classesToSelector", function() { return classesToSelector; });
78568
79010
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compareVersions", function() { return compareVersions; });
78569
79011
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "confirmAction", function() { return confirmAction; });
79012
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "confirmActionAsync", function() { return confirmActionAsync; });
78570
79013
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectIEOrEdge", function() { return detectIEOrEdge; });
78571
79014
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectIEBrowser", function() { return detectIEBrowser; });
78572
79015
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadFileFromBase64", function() { return loadFileFromBase64; });
@@ -78604,6 +79047,19 @@ function confirmAction(message) {
78604
79047
  return _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].confirmActionFunc(message);
78605
79048
  return confirm(message);
78606
79049
  }
79050
+ function confirmActionAsync(message, funcOnYes, funcOnNo) {
79051
+ var callbackFunc = function (res) {
79052
+ if (res)
79053
+ funcOnYes();
79054
+ else if (!!funcOnNo)
79055
+ funcOnNo();
79056
+ };
79057
+ if (!!_settings__WEBPACK_IMPORTED_MODULE_0__["settings"] && !!_settings__WEBPACK_IMPORTED_MODULE_0__["settings"].confirmActionAsync) {
79058
+ if (_settings__WEBPACK_IMPORTED_MODULE_0__["settings"].confirmActionAsync(message, callbackFunc))
79059
+ return;
79060
+ }
79061
+ callbackFunc(confirmAction(message));
79062
+ }
78607
79063
  function detectIEBrowser() {
78608
79064
  if (typeof window === "undefined")
78609
79065
  return false;