survey-react 1.9.128 → 1.9.130

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/survey.react.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.128
2
+ * surveyjs - Survey JavaScript library v1.9.130
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -2297,18 +2297,23 @@ var Base = /** @class */ (function () {
2297
2297
  configurable: true
2298
2298
  });
2299
2299
  Base.prototype.doPropertyValueChangedCallback = function (name, oldValue, newValue, arrayChanges, target) {
2300
- if (this.isInternal)
2300
+ var fireCallback = function (obj) {
2301
+ if (!!obj && !!obj.onPropertyValueChangedCallback) {
2302
+ obj.onPropertyValueChangedCallback(name, oldValue, newValue, target, arrayChanges);
2303
+ }
2304
+ };
2305
+ if (this.isInternal) {
2306
+ fireCallback(this);
2301
2307
  return;
2308
+ }
2302
2309
  if (!target)
2303
2310
  target = this;
2304
2311
  var notifier = this.getSurvey();
2305
2312
  if (!notifier)
2306
2313
  notifier = this;
2307
- if (!!notifier.onPropertyValueChangedCallback) {
2308
- notifier.onPropertyValueChangedCallback(name, oldValue, newValue, target, arrayChanges);
2309
- }
2310
- if (notifier !== this && !!this.onPropertyValueChangedCallback) {
2311
- this.onPropertyValueChangedCallback(name, oldValue, newValue, target, arrayChanges);
2314
+ fireCallback(notifier);
2315
+ if (notifier !== this) {
2316
+ fireCallback(this);
2312
2317
  }
2313
2318
  };
2314
2319
  Base.prototype.addExpressionProperty = function (name, onExecute, canRun) {
@@ -4778,7 +4783,7 @@ var modernCss = {
4778
4783
  cellText: "sv-matrix__text",
4779
4784
  cellTextSelected: "sv-matrix__text--checked",
4780
4785
  cellTextDisabled: "sv-matrix__text--disabled",
4781
- cellResponsiveTitle: "sv-hidden",
4786
+ cellResponsiveTitle: "sv-matrix__cell-responsive-title",
4782
4787
  itemSvgIconId: "#icon-modernradio",
4783
4788
  },
4784
4789
  matrixdropdown: {
@@ -4890,6 +4895,7 @@ var modernCss = {
4890
4895
  window: {
4891
4896
  root: "sv_window",
4892
4897
  rootCollapsedMod: "sv_window--collapsed",
4898
+ rootFullScreenMode: "sv_window--full-screen",
4893
4899
  rootContent: "sv_window_root-content",
4894
4900
  body: "sv_window_content",
4895
4901
  header: {
@@ -4900,7 +4906,8 @@ var modernCss = {
4900
4906
  buttonExpanded: "",
4901
4907
  buttonCollapsed: "",
4902
4908
  collapseButton: "sv_window_button sv_window_button_collapse",
4903
- closeButton: "sv_window_button sv_window_button_close"
4909
+ closeButton: "sv_window_button sv_window_button_close",
4910
+ fullScreenButton: "sv_window_button sv_window_button_full_screen"
4904
4911
  }
4905
4912
  },
4906
4913
  variables: {
@@ -5122,7 +5129,7 @@ var defaultStandardCss = {
5122
5129
  cellText: "sv_q_m_cell_text",
5123
5130
  cellTextSelected: "sv_q_m_cell_selected",
5124
5131
  cellLabel: "sv_q_m_cell_label",
5125
- cellResponsiveTitle: "sv-hidden"
5132
+ cellResponsiveTitle: "sv_q_m_cell_responsive_title"
5126
5133
  },
5127
5134
  matrixdropdown: {
5128
5135
  root: "sv_q_matrix_dropdown",
@@ -5288,6 +5295,7 @@ var defaultStandardCss = {
5288
5295
  window: {
5289
5296
  root: "sv_window",
5290
5297
  rootCollapsedMod: "sv_window--collapsed",
5298
+ rootFullScreenMode: "sv_window--full-screen",
5291
5299
  rootContent: "sv_window_root-content",
5292
5300
  body: "sv_window_content",
5293
5301
  header: {
@@ -5298,7 +5306,8 @@ var defaultStandardCss = {
5298
5306
  buttonExpanded: "",
5299
5307
  buttonCollapsed: "",
5300
5308
  collapseButton: "sv_window_button sv_window_button_collapse",
5301
- closeButton: "sv_window_button sv_window_button_close"
5309
+ closeButton: "sv_window_button sv_window_button_close",
5310
+ fullScreenButton: "sv_window_button sv_window_button_full_screen"
5302
5311
  }
5303
5312
  },
5304
5313
  variables: {
@@ -5640,6 +5649,7 @@ var defaultV2Css = {
5640
5649
  itemOnError: "sd-boolean--error",
5641
5650
  control: "sd-boolean__control sd-visuallyhidden",
5642
5651
  itemChecked: "sd-boolean--checked",
5652
+ itemExchanged: "sd-boolean--exchanged",
5643
5653
  itemIndeterminate: "sd-boolean--indeterminate",
5644
5654
  itemDisabled: "sd-boolean--disabled",
5645
5655
  itemHover: "sd-boolean--allowhover",
@@ -6010,6 +6020,7 @@ var defaultV2Css = {
6010
6020
  window: {
6011
6021
  root: "sv_window",
6012
6022
  rootCollapsedMod: "sv_window--collapsed",
6023
+ rootFullScreenMode: "sv_window--full-screen",
6013
6024
  rootContent: "sv_window_root-content",
6014
6025
  body: "sv_window_content",
6015
6026
  header: {
@@ -6020,7 +6031,8 @@ var defaultV2Css = {
6020
6031
  buttonExpanded: "",
6021
6032
  buttonCollapsed: "",
6022
6033
  collapseButton: "sv_window_button sv_window_button_collapse",
6023
- closeButton: "sv_window_button sv_window_button_close"
6034
+ closeButton: "sv_window_button sv_window_button_close",
6035
+ fullScreenButton: "sv_window_button sv_window_button_full_screen"
6024
6036
  }
6025
6037
  },
6026
6038
  ranking: {
@@ -6813,6 +6825,7 @@ __webpack_require__.r(__webpack_exports__);
6813
6825
  var DragDropCore = /** @class */ (function () {
6814
6826
  function DragDropCore(surveyValue, creator, longTap, domAdapter) {
6815
6827
  var _this = this;
6828
+ var _a;
6816
6829
  this.surveyValue = surveyValue;
6817
6830
  this.creator = creator;
6818
6831
  this._isBottom = null;
@@ -6833,7 +6846,7 @@ var DragDropCore = /** @class */ (function () {
6833
6846
  _this.isBottom = null;
6834
6847
  };
6835
6848
  this.doBanDropHere = function () { };
6836
- this.domAdapter = domAdapter || new _dom_adapter__WEBPACK_IMPORTED_MODULE_1__["DragDropDOMAdapter"](this, longTap);
6849
+ this.domAdapter = domAdapter || new _dom_adapter__WEBPACK_IMPORTED_MODULE_1__["DragDropDOMAdapter"](this, longTap, (_a = this.survey) === null || _a === void 0 ? void 0 : _a.fitToContainer);
6837
6850
  }
6838
6851
  Object.defineProperty(DragDropCore.prototype, "isBottom", {
6839
6852
  get: function () {
@@ -6858,7 +6871,8 @@ var DragDropCore = /** @class */ (function () {
6858
6871
  });
6859
6872
  Object.defineProperty(DragDropCore.prototype, "survey", {
6860
6873
  get: function () {
6861
- return this.surveyValue || this.creator.survey;
6874
+ var _a;
6875
+ return this.surveyValue || ((_a = this.creator) === null || _a === void 0 ? void 0 : _a.survey);
6862
6876
  },
6863
6877
  enumerable: false,
6864
6878
  configurable: true
@@ -7014,11 +7028,13 @@ if (typeof window !== "undefined") {
7014
7028
  }, { passive: false });
7015
7029
  }
7016
7030
  var DragDropDOMAdapter = /** @class */ (function () {
7017
- function DragDropDOMAdapter(dd, longTap) {
7031
+ function DragDropDOMAdapter(dd, longTap, fitToContainer) {
7018
7032
  var _this = this;
7019
7033
  if (longTap === void 0) { longTap = true; }
7034
+ if (fitToContainer === void 0) { fitToContainer = false; }
7020
7035
  this.dd = dd;
7021
7036
  this.longTap = longTap;
7037
+ this.fitToContainer = fitToContainer;
7022
7038
  this.scrollIntervalId = null;
7023
7039
  this.stopLongTapIfMoveEnough = function (pointerMoveEvent) {
7024
7040
  pointerMoveEvent.preventDefault();
@@ -7131,6 +7147,8 @@ var DragDropDOMAdapter = /** @class */ (function () {
7131
7147
  DragDropDOMAdapter.prototype.moveShortcutElement = function (event) {
7132
7148
  var rootElementX = this.rootElement.getBoundingClientRect().x;
7133
7149
  var rootElementY = this.rootElement.getBoundingClientRect().y;
7150
+ var rootElementScrollLeft = this.rootElement.scrollLeft;
7151
+ var rootElementScrollTop = this.rootElement.scrollTop;
7134
7152
  this.doScroll(event.clientY, event.clientX);
7135
7153
  var shortcutHeight = this.draggedElementShortcut.offsetHeight;
7136
7154
  var shortcutWidth = this.draggedElementShortcut.offsetWidth;
@@ -7147,6 +7165,10 @@ var DragDropDOMAdapter = /** @class */ (function () {
7147
7165
  var pageY = event.pageY;
7148
7166
  var clientX = event.clientX;
7149
7167
  var clientY = event.clientY;
7168
+ if (!!this.fitToContainer) {
7169
+ rootElementX -= rootElementScrollLeft;
7170
+ rootElementY -= rootElementScrollTop;
7171
+ }
7150
7172
  var shortcutBottomCoordinate = this.getShortcutBottomCoordinate(clientY, shortcutHeight, shortcutYOffset);
7151
7173
  var shortcutRightCoordinate = this.getShortcutRightCoordinate(clientX, shortcutWidth, shortcutXOffset);
7152
7174
  if (shortcutRightCoordinate >= documentRight) { // right boundary
@@ -7872,6 +7894,9 @@ var DropdownListModel = /** @class */ (function (_super) {
7872
7894
  _this.qustionPropertyChangedHandler = function (sender, options) {
7873
7895
  _this.onPropertyChangedHandler(sender, options);
7874
7896
  };
7897
+ if ("undefined" !== typeof document) {
7898
+ _this.htmlCleanerElement = document.createElement("div");
7899
+ }
7875
7900
  question.onPropertyChanged.add(_this.qustionPropertyChangedHandler);
7876
7901
  _this.showInputFieldComponent = _this.question.showInputFieldComponent;
7877
7902
  _this.listModel = _this.createListModel();
@@ -8007,7 +8032,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8007
8032
  _this.question.value = item.id;
8008
8033
  if (_this.question.searchEnabled)
8009
8034
  _this.applyInputString(item);
8010
- _this._popupModel.toggleVisibility();
8035
+ _this.popupModel.isVisible = false;
8011
8036
  };
8012
8037
  }
8013
8038
  var res = new _list__WEBPACK_IMPORTED_MODULE_3__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
@@ -8092,7 +8117,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8092
8117
  var hasHtml = item === null || item === void 0 ? void 0 : item.locText.hasHtml;
8093
8118
  if (hasHtml || this.question.inputFieldComponentName) {
8094
8119
  this._markdownMode = true;
8095
- this.inputString = "";
8120
+ this.inputString = this.cleanHtml(item === null || item === void 0 ? void 0 : item.locText.getHtmlValue());
8096
8121
  this.hintString = "";
8097
8122
  }
8098
8123
  else {
@@ -8100,6 +8125,12 @@ var DropdownListModel = /** @class */ (function (_super) {
8100
8125
  this.hintString = item === null || item === void 0 ? void 0 : item.title;
8101
8126
  }
8102
8127
  };
8128
+ DropdownListModel.prototype.cleanHtml = function (html) {
8129
+ if (!this.htmlCleanerElement)
8130
+ return "";
8131
+ this.htmlCleanerElement.innerHTML = html;
8132
+ return this.htmlCleanerElement.textContent;
8133
+ };
8103
8134
  DropdownListModel.prototype.fixInputCase = function () {
8104
8135
  var hintStringMiddle = this.hintStringMiddle;
8105
8136
  if (hintStringMiddle && this.inputString != hintStringMiddle)
@@ -9030,7 +9061,7 @@ __webpack_require__.r(__webpack_exports__);
9030
9061
  /*!*************************************!*\
9031
9062
  !*** ./src/entries/chunks/model.ts ***!
9032
9063
  \*************************************/
9033
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
9064
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedErrorRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
9034
9065
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9035
9066
 
9036
9067
  "use strict";
@@ -9196,6 +9227,8 @@ __webpack_require__.r(__webpack_exports__);
9196
9227
 
9197
9228
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_20__["QuestionMatrixDropdownRenderedRow"]; });
9198
9229
 
9230
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_20__["QuestionMatrixDropdownRenderedErrorRow"]; });
9231
+
9199
9232
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _question_matrixdropdownrendered__WEBPACK_IMPORTED_MODULE_20__["QuestionMatrixDropdownRenderedTable"]; });
9200
9233
 
9201
9234
  /* harmony import */ var _question_matrixdropdown__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../question_matrixdropdown */ "./src/question_matrixdropdown.ts");
@@ -9481,6 +9514,8 @@ __webpack_require__.r(__webpack_exports__);
9481
9514
 
9482
9515
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_83__["createSvg"]; });
9483
9516
 
9517
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_83__["chooseFiles"]; });
9518
+
9484
9519
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_83__["sanitizeEditableContent"]; });
9485
9520
 
9486
9521
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../../utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
@@ -9507,8 +9542,8 @@ __webpack_require__.r(__webpack_exports__);
9507
9542
  //import "../../modern.scss";
9508
9543
  var Version;
9509
9544
  var ReleaseDate;
9510
- Version = "" + "1.9.128";
9511
- ReleaseDate = "" + "2024-01-30";
9545
+ Version = "" + "1.9.130";
9546
+ ReleaseDate = "" + "2024-02-15";
9512
9547
  function checkLibraryVersion(ver, libraryName) {
9513
9548
  if (Version != ver) {
9514
9549
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9683,7 +9718,7 @@ function checkPrefix(prefix) {
9683
9718
  /*!**************************************!*\
9684
9719
  !*** ./src/entries/core-wo-model.ts ***!
9685
9720
  \**************************************/
9686
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper */
9721
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedErrorRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper */
9687
9722
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9688
9723
 
9689
9724
  "use strict";
@@ -9835,6 +9870,8 @@ __webpack_require__.r(__webpack_exports__);
9835
9870
 
9836
9871
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedRow"]; });
9837
9872
 
9873
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedErrorRow"]; });
9874
+
9838
9875
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedTable"]; });
9839
9876
 
9840
9877
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixDropdownRowModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["MatrixDropdownRowModel"]; });
@@ -10057,6 +10094,8 @@ __webpack_require__.r(__webpack_exports__);
10057
10094
 
10058
10095
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["createSvg"]; });
10059
10096
 
10097
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["chooseFiles"]; });
10098
+
10060
10099
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["sanitizeEditableContent"]; });
10061
10100
 
10062
10101
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]; });
@@ -10148,7 +10187,7 @@ __webpack_require__.r(__webpack_exports__);
10148
10187
  /*!*****************************!*\
10149
10188
  !*** ./src/entries/core.ts ***!
10150
10189
  \*****************************/
10151
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model */
10190
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedErrorRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model */
10152
10191
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10153
10192
 
10154
10193
  "use strict";
@@ -10300,6 +10339,8 @@ __webpack_require__.r(__webpack_exports__);
10300
10339
 
10301
10340
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedRow"]; });
10302
10341
 
10342
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedErrorRow"]; });
10343
+
10303
10344
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedTable"]; });
10304
10345
 
10305
10346
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixDropdownRowModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["MatrixDropdownRowModel"]; });
@@ -10522,6 +10563,8 @@ __webpack_require__.r(__webpack_exports__);
10522
10563
 
10523
10564
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["createSvg"]; });
10524
10565
 
10566
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["chooseFiles"]; });
10567
+
10525
10568
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["sanitizeEditableContent"]; });
10526
10569
 
10527
10570
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]; });
@@ -11005,7 +11048,7 @@ __webpack_require__.r(__webpack_exports__);
11005
11048
  /*!******************************!*\
11006
11049
  !*** ./src/entries/react.ts ***!
11007
11050
  \******************************/
11008
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionMatrixCell, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent, SvgBundleComponent */
11051
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedErrorRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionMatrixCell, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent, SvgBundleComponent */
11009
11052
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
11010
11053
 
11011
11054
  "use strict";
@@ -11157,6 +11200,8 @@ __webpack_require__.r(__webpack_exports__);
11157
11200
 
11158
11201
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedRow", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedRow"]; });
11159
11202
 
11203
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedErrorRow", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedErrorRow"]; });
11204
+
11160
11205
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionMatrixDropdownRenderedTable", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["QuestionMatrixDropdownRenderedTable"]; });
11161
11206
 
11162
11207
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixDropdownRowModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["MatrixDropdownRowModel"]; });
@@ -11379,6 +11424,8 @@ __webpack_require__.r(__webpack_exports__);
11379
11424
 
11380
11425
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["createSvg"]; });
11381
11426
 
11427
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["chooseFiles"]; });
11428
+
11382
11429
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["sanitizeEditableContent"]; });
11383
11430
 
11384
11431
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]; });
@@ -16495,6 +16542,21 @@ function propertyValue(params) {
16495
16542
  return q ? q[params[1]] : undefined;
16496
16543
  }
16497
16544
  FunctionFactory.Instance.register("propertyValue", propertyValue);
16545
+ function substring_(params) {
16546
+ if (params.length < 2)
16547
+ return "";
16548
+ var s = params[0];
16549
+ if (!s || typeof s !== "string")
16550
+ return "";
16551
+ var start = params[1];
16552
+ if (!_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isNumber(start))
16553
+ return "";
16554
+ var end = params.length > 2 ? params[2] : undefined;
16555
+ if (!_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isNumber(end))
16556
+ return s.substring(start);
16557
+ return s.substring(start, end);
16558
+ }
16559
+ FunctionFactory.Instance.register("substring", substring_);
16498
16560
 
16499
16561
 
16500
16562
  /***/ }),
@@ -16636,13 +16698,10 @@ var Cover = /** @class */ (function (_super) {
16636
16698
  function Cover() {
16637
16699
  var _this = _super.call(this) || this;
16638
16700
  _this.cells = [];
16639
- _this.renderBackgroundImage = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_3__["wrapUrlForBackgroundImage"])(_this.backgroundImage);
16640
16701
  ["top", "middle", "bottom"].forEach(function (positionY) {
16641
16702
  return ["left", "center", "right"].forEach(function (positionX) { return _this.cells.push(new CoverCell(_this, positionX, positionY)); });
16642
16703
  });
16643
- _this.updateHeaderClasses();
16644
- _this.updateContentClasses();
16645
- _this.updateBackgroundImageClasses();
16704
+ _this.init();
16646
16705
  return _this;
16647
16706
  }
16648
16707
  Cover.prototype.calcBackgroundSize = function (backgroundImageFit) {
@@ -16658,6 +16717,9 @@ var Cover = /** @class */ (function (_super) {
16658
16717
  this.headerClasses = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_2__["CssClassBuilder"]()
16659
16718
  .append("sv-header")
16660
16719
  .append("sv-header__without-background", (this.backgroundColor === "transparent") && !this.backgroundImage)
16720
+ .append("sv-header__background-color--none", this.backgroundColor === "transparent" && !this.titleColor && !this.descriptionColor)
16721
+ .append("sv-header__background-color--accent", !this.backgroundColor && !this.titleColor && !this.descriptionColor)
16722
+ .append("sv-header__background-color--custom", !!this.backgroundColor && this.backgroundColor !== "transparent" && !this.titleColor && !this.descriptionColor)
16661
16723
  .append("sv-header__overlap", this.overlapEnabled)
16662
16724
  .toString();
16663
16725
  };
@@ -16681,7 +16743,16 @@ var Cover = /** @class */ (function (_super) {
16681
16743
  _super.prototype.fromJSON.call(this, theme.header);
16682
16744
  if (!!theme.cssVariables) {
16683
16745
  this.backgroundColor = theme.cssVariables["--sjs-header-backcolor"];
16746
+ this.titleColor = theme.cssVariables["--sjs-font-headertitle-color"];
16747
+ this.descriptionColor = theme.cssVariables["--sjs-font-headerdescription-color"];
16684
16748
  }
16749
+ this.init();
16750
+ };
16751
+ Cover.prototype.init = function () {
16752
+ this.renderBackgroundImage = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_3__["wrapUrlForBackgroundImage"])(this.backgroundImage);
16753
+ this.updateHeaderClasses();
16754
+ this.updateContentClasses();
16755
+ this.updateBackgroundImageClasses();
16685
16756
  };
16686
16757
  Cover.prototype.getType = function () {
16687
16758
  return "cover";
@@ -16804,6 +16875,12 @@ var Cover = /** @class */ (function (_super) {
16804
16875
  __decorate([
16805
16876
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
16806
16877
  ], Cover.prototype, "backgroundColor", void 0);
16878
+ __decorate([
16879
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
16880
+ ], Cover.prototype, "titleColor", void 0);
16881
+ __decorate([
16882
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
16883
+ ], Cover.prototype, "descriptionColor", void 0);
16807
16884
  __decorate([
16808
16885
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
16809
16886
  onSet: function (newVal, target) {
@@ -17392,12 +17469,14 @@ var map = {
17392
17469
  "./V2Check.svg": "./src/images/V2Check.svg",
17393
17470
  "./V2Check_24x24.svg": "./src/images/V2Check_24x24.svg",
17394
17471
  "./V2DragElement_16x16.svg": "./src/images/V2DragElement_16x16.svg",
17472
+ "./back-to-panel_16x16.svg": "./src/images/back-to-panel_16x16.svg",
17395
17473
  "./chevron.svg": "./src/images/chevron.svg",
17396
17474
  "./clear_16x16.svg": "./src/images/clear_16x16.svg",
17397
17475
  "./close_16x16.svg": "./src/images/close_16x16.svg",
17398
17476
  "./collapseDetail.svg": "./src/images/collapseDetail.svg",
17399
17477
  "./drag-n-drop.svg": "./src/images/drag-n-drop.svg",
17400
17478
  "./expandDetail.svg": "./src/images/expandDetail.svg",
17479
+ "./full-screen_16x16.svg": "./src/images/full-screen_16x16.svg",
17401
17480
  "./loading.svg": "./src/images/loading.svg",
17402
17481
  "./minimize_16x16.svg": "./src/images/minimize_16x16.svg",
17403
17482
  "./no-image.svg": "./src/images/no-image.svg",
@@ -17774,6 +17853,17 @@ module.exports = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\
17774
17853
 
17775
17854
  /***/ }),
17776
17855
 
17856
+ /***/ "./src/images/back-to-panel_16x16.svg":
17857
+ /*!********************************************!*\
17858
+ !*** ./src/images/back-to-panel_16x16.svg ***!
17859
+ \********************************************/
17860
+ /*! no static exports found */
17861
+ /***/ (function(module, exports) {
17862
+
17863
+ module.exports = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15.0001 6C15.0001 6.55 14.5501 7 14.0001 7H10.0001C9.45006 7 9.00006 6.55 9.00006 6V2C9.00006 1.45 9.45006 1 10.0001 1C10.5501 1 11.0001 1.45 11.0001 2V3.59L13.2901 1.29C13.4901 1.09 13.7401 1 14.0001 1C14.2601 1 14.5101 1.1 14.7101 1.29C15.1001 1.68 15.1001 2.31 14.7101 2.7L12.4201 4.99H14.0101C14.5601 4.99 15.0101 5.44 15.0101 5.99L15.0001 6ZM6.00006 9H2.00006C1.45006 9 1.00006 9.45 1.00006 10C1.00006 10.55 1.45006 11 2.00006 11H3.59006L1.29006 13.29C0.900059 13.68 0.900059 14.31 1.29006 14.7C1.68006 15.09 2.31006 15.09 2.70006 14.7L4.99006 12.41V14C4.99006 14.55 5.44006 15 5.99006 15C6.54006 15 6.99006 14.55 6.99006 14V10C6.99006 9.45 6.54006 9 5.99006 9H6.00006Z\"></path></svg>"
17864
+
17865
+ /***/ }),
17866
+
17777
17867
  /***/ "./src/images/chevron.svg":
17778
17868
  /*!********************************!*\
17779
17869
  !*** ./src/images/chevron.svg ***!
@@ -17840,6 +17930,17 @@ module.exports = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\
17840
17930
 
17841
17931
  /***/ }),
17842
17932
 
17933
+ /***/ "./src/images/full-screen_16x16.svg":
17934
+ /*!******************************************!*\
17935
+ !*** ./src/images/full-screen_16x16.svg ***!
17936
+ \******************************************/
17937
+ /*! no static exports found */
17938
+ /***/ (function(module, exports) {
17939
+
17940
+ module.exports = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6.71 10.71L4.42 13H6.01C6.56 13 7.01 13.45 7.01 14C7.01 14.55 6.56 15 6.01 15H2C1.45 15 1 14.55 1 14V10C1 9.45 1.45 9 2 9C2.55 9 3 9.45 3 10V11.59L5.29 9.3C5.68 8.91 6.31 8.91 6.7 9.3C7.09 9.69 7.09 10.32 6.7 10.71H6.71ZM14 1H10C9.45 1 9 1.45 9 2C9 2.55 9.45 3 10 3H11.59L9.3 5.29C8.91 5.68 8.91 6.31 9.3 6.7C9.5 6.9 9.75 6.99 10.01 6.99C10.27 6.99 10.52 6.89 10.72 6.7L13.01 4.41V6C13.01 6.55 13.46 7 14.01 7C14.56 7 15.01 6.55 15.01 6V2C15.01 1.45 14.56 1 14.01 1H14Z\"></path></svg>"
17941
+
17942
+ /***/ }),
17943
+
17843
17944
  /***/ "./src/images/loading.svg":
17844
17945
  /*!********************************!*\
17845
17946
  !*** ./src/images/loading.svg ***!
@@ -19093,22 +19194,32 @@ var JsonObjectProperty = /** @class */ (function () {
19093
19194
  enumerable: false,
19094
19195
  configurable: true
19095
19196
  });
19197
+ JsonObjectProperty.prototype.isEnable = function (obj) {
19198
+ if (this.readOnly)
19199
+ return false;
19200
+ if (!obj || !this.enableIf)
19201
+ return true;
19202
+ return this.enableIf(this.getOriginalObj(obj));
19203
+ };
19096
19204
  JsonObjectProperty.prototype.isVisible = function (layout, obj) {
19097
19205
  if (obj === void 0) { obj = null; }
19098
19206
  var isLayout = !this.layout || this.layout == layout;
19099
19207
  if (!this.visible || !isLayout)
19100
19208
  return false;
19101
19209
  if (!!this.visibleIf && !!obj) {
19102
- if (obj.getOriginalObj) {
19103
- var orjObj = obj.getOriginalObj();
19104
- if (orjObj && Serializer.findProperty(orjObj.getType(), this.name)) {
19105
- obj = orjObj;
19106
- }
19107
- }
19108
- return this.visibleIf(obj);
19210
+ return this.visibleIf(this.getOriginalObj(obj));
19109
19211
  }
19110
19212
  return true;
19111
19213
  };
19214
+ JsonObjectProperty.prototype.getOriginalObj = function (obj) {
19215
+ if (obj && obj.getOriginalObj) {
19216
+ var orjObj = obj.getOriginalObj();
19217
+ if (orjObj && Serializer.findProperty(orjObj.getType(), this.name)) {
19218
+ return orjObj;
19219
+ }
19220
+ }
19221
+ return obj;
19222
+ };
19112
19223
  Object.defineProperty(JsonObjectProperty.prototype, "visible", {
19113
19224
  get: function () {
19114
19225
  return this.visibleValue != null ? this.visibleValue : true;
@@ -19120,14 +19231,21 @@ var JsonObjectProperty = /** @class */ (function () {
19120
19231
  configurable: true
19121
19232
  });
19122
19233
  JsonObjectProperty.prototype.isAvailableInVersion = function (ver) {
19123
- if (!!this.alternativeName)
19234
+ if (!!this.alternativeName || this.oldName)
19124
19235
  return true;
19125
19236
  return this.isAvailableInVersionCore(ver);
19126
19237
  };
19127
19238
  JsonObjectProperty.prototype.getSerializedName = function (ver) {
19128
19239
  if (!this.alternativeName)
19129
19240
  return this.name;
19130
- return this.isAvailableInVersionCore(ver) ? this.name : this.alternativeName;
19241
+ return this.isAvailableInVersionCore(ver) ? this.name : this.alternativeName || this.oldName;
19242
+ };
19243
+ JsonObjectProperty.prototype.getSerializedProperty = function (obj, ver) {
19244
+ if (!this.oldName || this.isAvailableInVersionCore(ver))
19245
+ return this;
19246
+ if (!obj || !obj.getType)
19247
+ return null;
19248
+ return Serializer.findProperty(obj.getType(), this.oldName);
19131
19249
  };
19132
19250
  JsonObjectProperty.prototype.isAvailableInVersionCore = function (ver) {
19133
19251
  if (!ver || !this.version)
@@ -19213,6 +19331,7 @@ var JsonObjectProperty = /** @class */ (function () {
19213
19331
  "isLocalizableValue",
19214
19332
  "className",
19215
19333
  "alternativeName",
19334
+ "oldName",
19216
19335
  "layout",
19217
19336
  "version",
19218
19337
  "classNamePart",
@@ -19232,6 +19351,7 @@ var JsonObjectProperty = /** @class */ (function () {
19232
19351
  "showMode",
19233
19352
  "dependedProperties",
19234
19353
  "visibleIf",
19354
+ "enableIf",
19235
19355
  "onExecuteExpression",
19236
19356
  "onPropertyEditorUpdate",
19237
19357
  "maxLength",
@@ -19550,7 +19670,7 @@ var JsonMetadataClass = /** @class */ (function () {
19550
19670
  if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(propInfo.maxLength)) {
19551
19671
  prop.maxLength = propInfo.maxLength;
19552
19672
  }
19553
- if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(propInfo.displayName)) {
19673
+ if (propInfo.displayName !== undefined) {
19554
19674
  prop.displayName = propInfo.displayName;
19555
19675
  }
19556
19676
  if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(propInfo.category)) {
@@ -19601,6 +19721,9 @@ var JsonMetadataClass = /** @class */ (function () {
19601
19721
  if (!!propInfo.visibleIf) {
19602
19722
  prop.visibleIf = propInfo.visibleIf;
19603
19723
  }
19724
+ if (!!propInfo.enableIf) {
19725
+ prop.enableIf = propInfo.enableIf;
19726
+ }
19604
19727
  if (!!propInfo.onExecuteExpression) {
19605
19728
  prop.onExecuteExpression = propInfo.onExecuteExpression;
19606
19729
  }
@@ -19660,6 +19783,9 @@ var JsonMetadataClass = /** @class */ (function () {
19660
19783
  if (propInfo.alternativeName) {
19661
19784
  prop.alternativeName = propInfo.alternativeName;
19662
19785
  }
19786
+ if (propInfo.oldName) {
19787
+ prop.oldName = propInfo.oldName;
19788
+ }
19663
19789
  if (propInfo.layout) {
19664
19790
  prop.layout = propInfo.layout;
19665
19791
  }
@@ -19722,11 +19848,11 @@ var JsonMetadata = /** @class */ (function () {
19722
19848
  this.dynamicPropsCache = {};
19723
19849
  }
19724
19850
  JsonMetadata.prototype.getObjPropertyValue = function (obj, name) {
19725
- if (this.isObjWrapper(obj)) {
19851
+ if (this.isObjWrapper(obj) && this.isNeedUseObjWrapper(obj, name)) {
19726
19852
  var orignalObj = obj.getOriginalObj();
19727
- var prop = Serializer.findProperty(orignalObj.getType(), name);
19728
- if (!!prop)
19729
- return this.getObjPropertyValueCore(orignalObj, prop);
19853
+ var prop_1 = Serializer.findProperty(orignalObj.getType(), name);
19854
+ if (!!prop_1)
19855
+ return this.getObjPropertyValueCore(orignalObj, prop_1);
19730
19856
  }
19731
19857
  var prop = Serializer.findProperty(obj.getType(), name);
19732
19858
  if (!prop)
@@ -19763,6 +19889,18 @@ var JsonMetadata = /** @class */ (function () {
19763
19889
  JsonMetadata.prototype.isObjWrapper = function (obj) {
19764
19890
  return !!obj.getOriginalObj && !!obj.getOriginalObj();
19765
19891
  };
19892
+ JsonMetadata.prototype.isNeedUseObjWrapper = function (obj, name) {
19893
+ if (!obj.getDynamicProperties)
19894
+ return true;
19895
+ var props = obj.getDynamicProperties();
19896
+ if (!Array.isArray(props))
19897
+ return false;
19898
+ for (var i = 0; i < props.length; i++) {
19899
+ if (props[i].name === name)
19900
+ return true;
19901
+ }
19902
+ return false;
19903
+ };
19766
19904
  JsonMetadata.prototype.addClass = function (name, properties, creator, parentName) {
19767
19905
  if (creator === void 0) { creator = null; }
19768
19906
  if (parentName === void 0) { parentName = null; }
@@ -20464,6 +20602,14 @@ var JsonObject = /** @class */ (function () {
20464
20602
  return;
20465
20603
  if (options.version && !prop.isAvailableInVersion(options.version))
20466
20604
  return;
20605
+ this.valueToJsonCore(obj, result, prop, options);
20606
+ };
20607
+ JsonObject.prototype.valueToJsonCore = function (obj, result, prop, options) {
20608
+ var serProp = prop.getSerializedProperty(obj, options.version);
20609
+ if (serProp && serProp !== prop) {
20610
+ this.valueToJsonCore(obj, result, serProp, options);
20611
+ return;
20612
+ }
20467
20613
  var value = prop.getSerializableValue(obj);
20468
20614
  if (!options.storeDefaults && prop.isDefaultValueByObj(obj, value))
20469
20615
  return;
@@ -20527,9 +20673,7 @@ var JsonObject = /** @class */ (function () {
20527
20673
  JsonObject.prototype.removePosOnValueToJson = function (property, value) {
20528
20674
  if (!property.isCustom || !value)
20529
20675
  return value;
20530
- if (!!value[JsonObject.positionPropertyName]) {
20531
- delete value[JsonObject.positionPropertyName];
20532
- }
20676
+ this.removePosFromObj(value);
20533
20677
  return value;
20534
20678
  };
20535
20679
  JsonObject.prototype.removePos = function (property, value) {
@@ -20545,9 +20689,14 @@ var JsonObject = /** @class */ (function () {
20545
20689
  this.removePosFromObj(obj[i]);
20546
20690
  }
20547
20691
  }
20692
+ if (typeof obj !== "object")
20693
+ return;
20548
20694
  if (!!obj[JsonObject.positionPropertyName]) {
20549
20695
  delete obj[JsonObject.positionPropertyName];
20550
20696
  }
20697
+ for (var key in obj) {
20698
+ this.removePosFromObj(obj[key]);
20699
+ }
20551
20700
  };
20552
20701
  JsonObject.prototype.isValueArray = function (value) {
20553
20702
  return value && Array.isArray(value);
@@ -21416,7 +21565,11 @@ var LocalizableString = /** @class */ (function () {
21416
21565
  keys[0] == _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.defaultLocaleName &&
21417
21566
  !_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].serialization.localizableStringSerializeAsObject)
21418
21567
  return this.values[keys[0]];
21419
- return this.values;
21568
+ var res = {};
21569
+ for (var key in this.values) {
21570
+ res[key] = this.values[key];
21571
+ }
21572
+ return res;
21420
21573
  };
21421
21574
  LocalizableString.prototype.setJson = function (value) {
21422
21575
  if (!!this.sharedData) {
@@ -23015,7 +23168,7 @@ var englishStrings = {
23015
23168
  chooseFile: "Choose file(s)...",
23016
23169
  noFileChosen: "No file chosen",
23017
23170
  filePlaceholder: "Drag and drop a file here or click the button below to select a file to upload.",
23018
- confirmDelete: "Do you want to delete the record?",
23171
+ confirmDelete: "Are you sure you want to delete this record?",
23019
23172
  keyDuplicationError: "This value should be unique.",
23020
23173
  addColumn: "Add Column",
23021
23174
  addRow: "Add Row",
@@ -23058,12 +23211,12 @@ var englishStrings = {
23058
23211
  modalApplyButtonText: "Apply",
23059
23212
  filterStringPlaceholder: "Type to search...",
23060
23213
  emptyMessage: "No data to display",
23061
- noEntriesText: "There are no entries yet.\nClick the button below to add a new entry.",
23062
- noEntriesReadonlyText: "There are no entries.",
23214
+ noEntriesText: "No entries yet.\nClick the button below to add a new entry.",
23215
+ noEntriesReadonlyText: "No entries.",
23063
23216
  more: "More",
23064
23217
  tagboxDoneButtonCaption: "OK",
23065
- selectToRankEmptyRankedAreaText: "All choices are ranked",
23066
- selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them",
23218
+ selectToRankEmptyRankedAreaText: "All choices are selected for ranking",
23219
+ selectToRankEmptyUnrankedAreaText: "Drag choices here to rank them",
23067
23220
  ok: "OK",
23068
23221
  cancel: "Cancel",
23069
23222
  };
@@ -27443,7 +27596,7 @@ var slovakSurveyStrings = {
27443
27596
  cancel: "Zrušiť"
27444
27597
  };
27445
27598
  survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].locales["sk"] = slovakSurveyStrings;
27446
- survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["sk"] = "slovenčina";
27599
+ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["sk"] = "slovak";
27447
27600
  // The following strings have been translated by a machine translation service
27448
27601
  // Remove those strings that you have corrected manually
27449
27602
  // indexText: "{0} of {1}" => "{0} {1}"
@@ -27559,7 +27712,7 @@ var spanishSurveyStrings = {
27559
27712
  timerLimitAll: "Has gastado {0} de {1} en esta página y {2} de {3} en total.",
27560
27713
  timerLimitPage: "Has gastado {0} de {1} en esta página.",
27561
27714
  timerLimitSurvey: "Usted ha gastado {0} de {1} en total.",
27562
- clearCaption: "Despejen",
27715
+ clearCaption: "Borrar",
27563
27716
  signaturePlaceHolder: "Firma aqui",
27564
27717
  chooseFileCaption: "Elija el archivo",
27565
27718
  takePhotoCaption: "Tomar foto",
@@ -30185,6 +30338,11 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
30185
30338
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
30186
30339
  return c > 3 && r && Object.defineProperty(target, key, r), r;
30187
30340
  };
30341
+ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from) {
30342
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
30343
+ to[j] = from[i];
30344
+ return to;
30345
+ };
30188
30346
 
30189
30347
 
30190
30348
 
@@ -30215,6 +30373,8 @@ var QuestionRowModel = /** @class */ (function (_super) {
30215
30373
  QuestionRowModel.prototype.startLazyRendering = function (rowContainerDiv, findScrollableContainer) {
30216
30374
  var _this = this;
30217
30375
  if (findScrollableContainer === void 0) { findScrollableContainer = _utils_utils__WEBPACK_IMPORTED_MODULE_8__["findScrollableParent"]; }
30376
+ if ("undefined" === typeof document)
30377
+ return;
30218
30378
  this._scrollableParent = findScrollableContainer(rowContainerDiv);
30219
30379
  // if this._scrollableParent is html the scroll event isn't fired, so we should use window
30220
30380
  if (this._scrollableParent === document.documentElement) {
@@ -30429,6 +30589,7 @@ var PanelModelBase = /** @class */ (function (_super) {
30429
30589
  _this.isQuestionsReady = false;
30430
30590
  _this.questionsValue = new Array();
30431
30591
  _this.isRandomizing = false;
30592
+ _this.locCountRowUpdates = 0;
30432
30593
  _this.createNewArray("rows");
30433
30594
  _this.elementsValue = _this.createNewArray("elements", _this.onAddElement.bind(_this), _this.onRemoveElement.bind(_this));
30434
30595
  _this.id = PanelModelBase.getPanelId();
@@ -31303,14 +31464,92 @@ var PanelModelBase = /** @class */ (function (_super) {
31303
31464
  return;
31304
31465
  this.setArrayPropertyDirectly("rows", this.buildRows());
31305
31466
  };
31467
+ PanelModelBase.prototype.blockRowsUpdates = function () {
31468
+ this.locCountRowUpdates++;
31469
+ };
31470
+ PanelModelBase.prototype.releaseRowsUpdates = function () {
31471
+ this.locCountRowUpdates--;
31472
+ };
31473
+ PanelModelBase.prototype.updateRowsBeforeElementRemoved = function (element) {
31474
+ var _this = this;
31475
+ var elementRow = this.findRowByElement(element);
31476
+ var elementRowIndex = this.rows.indexOf(elementRow);
31477
+ var elementIndexInRow = elementRow.elements.indexOf(element);
31478
+ elementRow.elements.splice(elementIndexInRow, 1);
31479
+ if (elementRow.elements.length == 0) {
31480
+ this.rows.splice(elementRowIndex, 1);
31481
+ }
31482
+ else if (!elementRow.elements[0].startWithNewLine && this.rows[elementRowIndex - 1]) {
31483
+ elementRow.elements.forEach(function (el) { return _this.rows[elementRowIndex - 1].addElement(el); });
31484
+ this.rows.splice(elementRowIndex, 1);
31485
+ }
31486
+ else {
31487
+ elementRow.updateVisible();
31488
+ }
31489
+ };
31490
+ PanelModelBase.prototype.updateRowsOnElementAdded = function (element) {
31491
+ var _this = this;
31492
+ var index = this.elements.indexOf(element);
31493
+ var targetElement = this.elements[index + 1];
31494
+ var createRowAtIndex = function (index) {
31495
+ var row = _this.createRowAndSetLazy(index);
31496
+ if (_this.isDesignModeV2) {
31497
+ row.setIsLazyRendering(false);
31498
+ }
31499
+ _this.rows.splice(index, 0, row);
31500
+ return row;
31501
+ };
31502
+ var updateRow = function (row, start, deleteCount) {
31503
+ var _a;
31504
+ var elements = [];
31505
+ for (var _i = 3; _i < arguments.length; _i++) {
31506
+ elements[_i - 3] = arguments[_i];
31507
+ }
31508
+ var removedElements = (_a = row.elements).splice.apply(_a, __spreadArray([start, deleteCount], elements));
31509
+ row.updateVisible();
31510
+ return removedElements;
31511
+ };
31512
+ if (!targetElement) {
31513
+ if (index == 0 || element.startWithNewLine) {
31514
+ updateRow(createRowAtIndex(this.rows.length), 0, 0, element);
31515
+ }
31516
+ else {
31517
+ this.rows[this.rows.length - 1].addElement(element);
31518
+ }
31519
+ return;
31520
+ }
31521
+ var targetRow = this.findRowByElement(targetElement);
31522
+ if (!targetRow)
31523
+ return;
31524
+ var targetRowIndex = this.rows.indexOf(targetRow);
31525
+ var targetElementIndexInRow = targetRow.elements.indexOf(targetElement);
31526
+ if (targetElementIndexInRow == 0) {
31527
+ if (!targetElement.startWithNewLine) {
31528
+ updateRow(targetRow, 0, 0, element);
31529
+ }
31530
+ else if (element.startWithNewLine || targetRowIndex < 1) {
31531
+ createRowAtIndex(targetRowIndex).addElement(element);
31532
+ }
31533
+ else {
31534
+ this.rows[targetRowIndex - 1].addElement(element);
31535
+ }
31536
+ }
31537
+ else {
31538
+ if (element.startWithNewLine) {
31539
+ updateRow.apply(void 0, __spreadArray([createRowAtIndex(targetRowIndex + 1), 0, 0], [element].concat(updateRow(targetRow, targetElementIndexInRow, targetRow.elements.length))));
31540
+ }
31541
+ else {
31542
+ updateRow(targetRow, targetElementIndexInRow, 0, element);
31543
+ }
31544
+ }
31545
+ };
31306
31546
  PanelModelBase.prototype.onAddElement = function (element, index) {
31307
31547
  var _this = this;
31308
31548
  element.setSurveyImpl(this.surveyImpl);
31309
31549
  element.parent = this;
31310
31550
  this.markQuestionListDirty();
31311
31551
  if (this.canBuildRows()) {
31312
- var dragDropInfo = _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].supportCreatorV2 ? this.getDragDropInfo() : undefined;
31313
- this.dragDropPanelHelper.updateRowsOnElementAdded(element, index, dragDropInfo, this);
31552
+ this.updateRowsOnElementAdded(element);
31314
31553
  }
31315
31554
  if (element.isPanel) {
31316
31555
  var p = element;
@@ -31364,7 +31603,10 @@ var PanelModelBase = /** @class */ (function (_super) {
31364
31603
  }
31365
31604
  };
31366
31605
  PanelModelBase.prototype.onElementStartWithNewLineChanged = function (element) {
31367
- this.onRowsChanged();
31606
+ if (this.locCountRowUpdates > 0)
31607
+ return;
31608
+ this.updateRowsBeforeElementRemoved(element);
31609
+ this.updateRowsOnElementAdded(element);
31368
31610
  };
31369
31611
  PanelModelBase.prototype.updateRowsVisibility = function (element) {
31370
31612
  var rows = this.rows;
@@ -31425,7 +31667,9 @@ var PanelModelBase = /** @class */ (function (_super) {
31425
31667
  return;
31426
31668
  row.elements.splice(elIndex, 1);
31427
31669
  if (row.elements.length > 0) {
31670
+ this.blockRowsUpdates();
31428
31671
  row.elements[0].startWithNewLine = true;
31672
+ this.releaseRowsUpdates();
31429
31673
  row.updateVisible();
31430
31674
  }
31431
31675
  else {
@@ -31651,6 +31895,42 @@ var PanelModelBase = /** @class */ (function (_super) {
31651
31895
  }
31652
31896
  return true;
31653
31897
  };
31898
+ PanelModelBase.prototype.insertElement = function (element, dest, location) {
31899
+ if (location === void 0) { location = "bottom"; }
31900
+ if (!dest) {
31901
+ this.addElement(element);
31902
+ return;
31903
+ }
31904
+ this.blockRowsUpdates();
31905
+ var index = this.elements.indexOf(dest);
31906
+ var destRow = this.findRowByElement(dest);
31907
+ if (location == "left" || location == "right") {
31908
+ if (location == "right") {
31909
+ element.startWithNewLine = false;
31910
+ index++;
31911
+ }
31912
+ else {
31913
+ if (destRow.elements.indexOf(dest) == 0) {
31914
+ dest.startWithNewLine = false;
31915
+ element.startWithNewLine = true;
31916
+ }
31917
+ else {
31918
+ element.startWithNewLine = false;
31919
+ }
31920
+ }
31921
+ }
31922
+ else {
31923
+ element.startWithNewLine = true;
31924
+ if (location == "top") {
31925
+ index = this.elements.indexOf(destRow.elements[0]);
31926
+ }
31927
+ else {
31928
+ index = this.elements.indexOf(destRow.elements[destRow.elements.length - 1]) + 1;
31929
+ }
31930
+ }
31931
+ this.releaseRowsUpdates();
31932
+ this.addElement(element, index);
31933
+ };
31654
31934
  PanelModelBase.prototype.insertElementAfter = function (element, after) {
31655
31935
  var index = this.elements.indexOf(after);
31656
31936
  if (index >= 0)
@@ -31696,7 +31976,7 @@ var PanelModelBase = /** @class */ (function (_super) {
31696
31976
  *
31697
31977
  * This method returns `null` if the panel cannot be created or added to this panel/page; otherwise, the method returns the created panel.
31698
31978
  * @param name A panel name.
31699
- * @see elements
31979
+ * @see elementsup
31700
31980
  * @see addElement
31701
31981
  */
31702
31982
  PanelModelBase.prototype.addNewPanel = function (name) {
@@ -32325,7 +32605,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("panel", [
32325
32605
  { name: "minWidth", defaultFunc: function () { return "auto"; } },
32326
32606
  { name: "maxWidth", defaultFunc: function () { return _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].maxWidth; } },
32327
32607
  { name: "innerIndent:number", default: 0, choices: [0, 1, 2, 3] },
32328
- { name: "indent:number", default: 0, choices: [0, 1, 2, 3] },
32608
+ { name: "indent:number", default: 0, choices: [0, 1, 2, 3], visible: false },
32329
32609
  {
32330
32610
  name: "page",
32331
32611
  isSerializable: false,
@@ -33856,13 +34136,15 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
33856
34136
  };
33857
34137
  PopupDropdownViewModel.prototype.getActualHorizontalPosition = function () {
33858
34138
  var actualHorizontalPosition = this.model.horizontalPosition;
33859
- var isRtl = !!document && document.defaultView.getComputedStyle(document.body).direction == "rtl";
33860
- if (isRtl) {
33861
- if (this.model.horizontalPosition === "left") {
33862
- actualHorizontalPosition = "right";
33863
- }
33864
- else if (this.model.horizontalPosition === "right") {
33865
- actualHorizontalPosition = "left";
34139
+ if ("undefined" !== typeof document) {
34140
+ var isRtl = !!document && document.defaultView.getComputedStyle(document.body).direction == "rtl";
34141
+ if (isRtl) {
34142
+ if (this.model.horizontalPosition === "left") {
34143
+ actualHorizontalPosition = "right";
34144
+ }
34145
+ else if (this.model.horizontalPosition === "right") {
34146
+ actualHorizontalPosition = "left";
34147
+ }
33866
34148
  }
33867
34149
  }
33868
34150
  return actualHorizontalPosition;
@@ -34151,7 +34433,7 @@ var PopupSurveyModel = /** @class */ (function (_super) {
34151
34433
  else {
34152
34434
  _this.surveyValue = _this.createSurvey(jsonObj);
34153
34435
  }
34154
- //this.surveyValue.showTitle = false;
34436
+ _this.surveyValue.fitToContainer = true;
34155
34437
  if ("undefined" !== typeof document) {
34156
34438
  _this.windowElement = document.createElement("div");
34157
34439
  }
@@ -34200,6 +34482,20 @@ var PopupSurveyModel = /** @class */ (function (_super) {
34200
34482
  enumerable: false,
34201
34483
  configurable: true
34202
34484
  });
34485
+ Object.defineProperty(PopupSurveyModel.prototype, "isFullScreen", {
34486
+ get: function () {
34487
+ return this.getPropertyValue("isFullScreen", false);
34488
+ },
34489
+ set: function (val) {
34490
+ if (!this.isExpanded && !!val) {
34491
+ this.isExpanded = true;
34492
+ }
34493
+ this.setPropertyValue("isFullScreen", val);
34494
+ this.setCssRoot();
34495
+ },
34496
+ enumerable: false,
34497
+ configurable: true
34498
+ });
34203
34499
  /**
34204
34500
  * Shows the pop-up survey. The survey may appear [expanded or collapsed](#isExpanded).
34205
34501
  *
@@ -34220,6 +34516,9 @@ var PopupSurveyModel = /** @class */ (function (_super) {
34220
34516
  PopupSurveyModel.prototype.hide = function () {
34221
34517
  this.isShowing = false;
34222
34518
  };
34519
+ PopupSurveyModel.prototype.toggleFullScreen = function () {
34520
+ this.isFullScreen = !this.isFullScreen;
34521
+ };
34223
34522
  Object.defineProperty(PopupSurveyModel.prototype, "isExpanded", {
34224
34523
  /**
34225
34524
  * Indicates whether the pop-up window is expanded or collapsed.
@@ -34230,6 +34529,9 @@ var PopupSurveyModel = /** @class */ (function (_super) {
34230
34529
  return this.getPropertyValue("isExpanded", false);
34231
34530
  },
34232
34531
  set: function (val) {
34532
+ if (!!this.isFullScreen && !val) {
34533
+ this.isFullScreen = false;
34534
+ }
34233
34535
  this.setPropertyValue("isExpanded", val);
34234
34536
  },
34235
34537
  enumerable: false,
@@ -34320,6 +34622,21 @@ var PopupSurveyModel = /** @class */ (function (_super) {
34320
34622
  enumerable: false,
34321
34623
  configurable: true
34322
34624
  });
34625
+ Object.defineProperty(PopupSurveyModel.prototype, "allowFullScreen", {
34626
+ /**
34627
+ * Specifies whether to display a button that allows respondents to show the pop-up survey in full screen mode.
34628
+ *
34629
+ * Default value: `false`
34630
+ */
34631
+ get: function () {
34632
+ return this.getPropertyValue("allowFullScreen", false);
34633
+ },
34634
+ set: function (val) {
34635
+ this.setPropertyValue("allowFullScreen", val);
34636
+ },
34637
+ enumerable: false,
34638
+ configurable: true
34639
+ });
34323
34640
  Object.defineProperty(PopupSurveyModel.prototype, "css", {
34324
34641
  get: function () {
34325
34642
  return this.survey.css;
@@ -34400,6 +34717,13 @@ var PopupSurveyModel = /** @class */ (function (_super) {
34400
34717
  enumerable: false,
34401
34718
  configurable: true
34402
34719
  });
34720
+ Object.defineProperty(PopupSurveyModel.prototype, "cssHeaderFullScreenButton", {
34721
+ get: function () {
34722
+ return this.getPropertyValue("cssHeaderFullScreenButton", "");
34723
+ },
34724
+ enumerable: false,
34725
+ configurable: true
34726
+ });
34403
34727
  Object.defineProperty(PopupSurveyModel.prototype, "renderedWidth", {
34404
34728
  get: function () {
34405
34729
  var width = this.getPropertyValue("width", "60%");
@@ -34414,7 +34738,7 @@ var PopupSurveyModel = /** @class */ (function (_super) {
34414
34738
  if (!this.css || !this.css.window)
34415
34739
  return;
34416
34740
  var cssWindow = this.css.window;
34417
- this.setPropertyValue("cssRoot", cssWindow.root);
34741
+ this.setCssRoot();
34418
34742
  this.setPropertyValue("cssRootCollapsedMod", cssWindow.rootCollapsedMod);
34419
34743
  this.setPropertyValue("cssRootContent", cssWindow.rootContent);
34420
34744
  this.setPropertyValue("cssBody", cssWindow.body);
@@ -34426,8 +34750,18 @@ var PopupSurveyModel = /** @class */ (function (_super) {
34426
34750
  this.setPropertyValue("cssHeaderButtonsContainer", cssHeader.buttonsContainer);
34427
34751
  this.setPropertyValue("cssHeaderCollapseButton", cssHeader.collapseButton);
34428
34752
  this.setPropertyValue("cssHeaderCloseButton", cssHeader.closeButton);
34753
+ this.setPropertyValue("cssHeaderFullScreenButton", cssHeader.fullScreenButton);
34429
34754
  this.updateCssButton();
34430
34755
  };
34756
+ PopupSurveyModel.prototype.setCssRoot = function () {
34757
+ var cssWindow = this.css.window;
34758
+ if (this.isFullScreen) {
34759
+ this.setPropertyValue("cssRoot", cssWindow.root + " " + cssWindow.rootFullScreenMode);
34760
+ }
34761
+ else {
34762
+ this.setPropertyValue("cssRoot", cssWindow.root);
34763
+ }
34764
+ };
34431
34765
  PopupSurveyModel.prototype.updateCssButton = function () {
34432
34766
  var cssHeader = !!this.css.window ? this.css.window.header : null;
34433
34767
  if (!cssHeader)
@@ -34857,7 +35191,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
34857
35191
  this.resetComponentElement();
34858
35192
  };
34859
35193
  PopupBaseViewModel.prototype.initializePopupContainer = function () {
34860
- if (!this.container) {
35194
+ if (!this.container && ("undefined" !== typeof document)) {
34861
35195
  var container = document.createElement("div");
34862
35196
  this.createdContainer = container;
34863
35197
  Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["getElement"])(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.popupMountContainer).appendChild(container);
@@ -41137,8 +41471,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("selectbase", [
41137
41471
  { name: "separateSpecialChoices:boolean", visible: false },
41138
41472
  { name: "showOtherItem:boolean", alternativeName: "hasOther" },
41139
41473
  { name: "showNoneItem:boolean", alternativeName: "hasNone" },
41140
- { name: "showRefuseItem:boolean", visible: false },
41141
- { name: "showDontKnowItem:boolean", visible: false },
41474
+ { name: "showRefuseItem:boolean", visible: false, version: "1.9.128" },
41475
+ { name: "showDontKnowItem:boolean", visible: false, version: "1.9.128" },
41142
41476
  {
41143
41477
  name: "otherPlaceholder",
41144
41478
  alternativeName: "otherPlaceHolder",
@@ -41315,8 +41649,8 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41315
41649
  });
41316
41650
  QuestionBooleanModel.prototype.setBooleanValue = function (val) {
41317
41651
  if (this.isValueEmpty(val)) {
41318
- this.value = null;
41319
- this.booleanValueRendered = null;
41652
+ this.value = undefined;
41653
+ this.booleanValueRendered = undefined;
41320
41654
  }
41321
41655
  else {
41322
41656
  this.value = val == true ? this.getValueTrue() : this.getValueFalse();
@@ -41332,8 +41666,6 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41332
41666
  val = "true";
41333
41667
  if (val === false)
41334
41668
  val = "false";
41335
- if (val === undefined)
41336
- val = "indeterminate";
41337
41669
  this.setPropertyValue("defaultValue", val);
41338
41670
  this.updateValueWithDefaults();
41339
41671
  },
@@ -41341,13 +41673,10 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41341
41673
  configurable: true
41342
41674
  });
41343
41675
  QuestionBooleanModel.prototype.getDefaultValue = function () {
41344
- if (this.defaultValue == "indeterminate")
41345
- return null;
41346
- if (this.defaultValue === undefined)
41347
- return null;
41348
- return this.defaultValue == "true"
41349
- ? this.getValueTrue()
41350
- : this.getValueFalse();
41676
+ var val = this.defaultValue;
41677
+ if (val === "indeterminate" || val === undefined || val === null)
41678
+ return undefined;
41679
+ return val == "true" ? this.getValueTrue() : this.getValueFalse();
41351
41680
  };
41352
41681
  Object.defineProperty(QuestionBooleanModel.prototype, "locTitle", {
41353
41682
  get: function () {
@@ -41406,7 +41735,21 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41406
41735
  });
41407
41736
  Object.defineProperty(QuestionBooleanModel.prototype, "isDeterminated", {
41408
41737
  get: function () {
41409
- return this.booleanValue !== null;
41738
+ return this.booleanValue !== null && this.booleanValue !== undefined;
41739
+ },
41740
+ enumerable: false,
41741
+ configurable: true
41742
+ });
41743
+ Object.defineProperty(QuestionBooleanModel.prototype, "locLabelLeft", {
41744
+ get: function () {
41745
+ return this.swapOrder ? this.getLocalizableString("labelTrue") : this.getLocalizableString("labelFalse");
41746
+ },
41747
+ enumerable: false,
41748
+ configurable: true
41749
+ });
41750
+ Object.defineProperty(QuestionBooleanModel.prototype, "locLabelRight", {
41751
+ get: function () {
41752
+ return this.swapOrder ? this.getLocalizableString("labelFalse") : this.getLocalizableString("labelTrue");
41410
41753
  },
41411
41754
  enumerable: false,
41412
41755
  configurable: true
@@ -41446,8 +41789,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41446
41789
  this.setBooleanValue(true);
41447
41790
  if (this.isDefaultValueSet("false", this.valueFalse))
41448
41791
  this.setBooleanValue(false);
41449
- if (this.defaultValue == "indeterminate")
41450
- this.setBooleanValue(null);
41792
+ var val = this.defaultValue;
41793
+ if (val === "indeterminate" || val === null || val === undefined)
41794
+ this.setBooleanValue(undefined);
41451
41795
  };
41452
41796
  QuestionBooleanModel.prototype.isDefaultValueSet = function (defaultValueCheck, valueTrueOrFalse) {
41453
41797
  return this.defaultValue == defaultValueCheck || (valueTrueOrFalse !== undefined && this.defaultValue === valueTrueOrFalse);
@@ -41464,7 +41808,8 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41464
41808
  .append(css.itemDisabled, this.isReadOnly)
41465
41809
  .append(css.itemHover, !this.isDesignMode)
41466
41810
  .append(css.itemChecked, !!this.booleanValue)
41467
- .append(css.itemIndeterminate, this.booleanValue === null)
41811
+ .append(css.itemExchanged, !!this.swapOrder)
41812
+ .append(css.itemIndeterminate, !this.isDeterminated)
41468
41813
  .toString();
41469
41814
  };
41470
41815
  QuestionBooleanModel.prototype.getItemCss = function () {
@@ -41483,15 +41828,15 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41483
41828
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
41484
41829
  .append(this.cssClasses.label)
41485
41830
  .append(this.cssClasses.disabledLabel, this.booleanValue === !checked || this.isReadOnly)
41486
- .append(this.cssClasses.labelTrue, !this.isIndeterminate && checked === true)
41487
- .append(this.cssClasses.labelFalse, !this.isIndeterminate && checked === false)
41831
+ .append(this.cssClasses.labelTrue, !this.isIndeterminate && checked === !this.swapOrder)
41832
+ .append(this.cssClasses.labelFalse, !this.isIndeterminate && checked === this.swapOrder)
41488
41833
  .toString();
41489
41834
  };
41490
41835
  Object.defineProperty(QuestionBooleanModel.prototype, "svgIcon", {
41491
41836
  get: function () {
41492
41837
  if (this.booleanValue && this.cssClasses.svgIconCheckedId)
41493
41838
  return this.cssClasses.svgIconCheckedId;
41494
- if (this.booleanValue === null && this.cssClasses.svgIconIndId)
41839
+ if (!this.isDeterminated && this.cssClasses.svgIconIndId)
41495
41840
  return this.cssClasses.svgIconIndId;
41496
41841
  if (!this.booleanValue && this.cssClasses.svgIconUncheckedId)
41497
41842
  return this.cssClasses.svgIconUncheckedId;
@@ -41521,8 +41866,8 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41521
41866
  newValue = true;
41522
41867
  if (newValue === "false" && this.valueFalse !== "false")
41523
41868
  newValue = false;
41524
- if (newValue === "indeterminate")
41525
- newValue = null;
41869
+ if (newValue === "indeterminate" || newValue === null)
41870
+ newValue = undefined;
41526
41871
  _super.prototype.setQuestionValue.call(this, newValue, updateIsAnswered);
41527
41872
  };
41528
41873
  /* #region web-based methods */
@@ -41534,7 +41879,10 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41534
41879
  return true;
41535
41880
  };
41536
41881
  QuestionBooleanModel.prototype.calculateBooleanValueByEvent = function (event, isRightClick) {
41537
- var isRtl = document.defaultView.getComputedStyle(event.target).direction == "rtl";
41882
+ var isRtl = false;
41883
+ if ("undefined" !== typeof document) {
41884
+ isRtl = document.defaultView.getComputedStyle(event.target).direction == "rtl";
41885
+ }
41538
41886
  this.booleanValue = isRtl ? !isRightClick : isRightClick;
41539
41887
  };
41540
41888
  QuestionBooleanModel.prototype.onSwitchClickModel = function (event) {
@@ -41597,6 +41945,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
41597
41945
  __decorate([
41598
41946
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: true })
41599
41947
  ], QuestionBooleanModel.prototype, "label", void 0);
41948
+ __decorate([
41949
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
41950
+ ], QuestionBooleanModel.prototype, "swapOrder", void 0);
41600
41951
  __decorate([
41601
41952
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
41602
41953
  ], QuestionBooleanModel.prototype, "valueTrue", void 0);
@@ -41619,6 +41970,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("boolean", [
41619
41970
  },
41620
41971
  "valueTrue",
41621
41972
  "valueFalse",
41973
+ { name: "swapOrder:boolean", category: "general" },
41622
41974
  { name: "renderAs", default: "default", visible: false },
41623
41975
  ], function () {
41624
41976
  return new QuestionBooleanModel("");
@@ -43031,8 +43383,8 @@ var ComponentQuestionJSON = /** @class */ (function () {
43031
43383
  });
43032
43384
  ComponentQuestionJSON.prototype.getDynamicProperties = function () {
43033
43385
  if (!Array.isArray(this.dynamicProperties)) {
43386
+ this.dynamicProperties = this.calcDynamicProperties();
43034
43387
  }
43035
- this.dynamicProperties = this.calcDynamicProperties();
43036
43388
  return this.dynamicProperties;
43037
43389
  };
43038
43390
  ComponentQuestionJSON.prototype.calcDynamicProperties = function () {
@@ -43409,8 +43761,25 @@ var QuestionCustomModel = /** @class */ (function (_super) {
43409
43761
  return this.questionWrapper;
43410
43762
  };
43411
43763
  QuestionCustomModel.prototype.createWrapper = function () {
43764
+ var _this = this;
43412
43765
  this.questionWrapper = this.createQuestion();
43413
43766
  this.createDynamicProperties(this.questionWrapper);
43767
+ if (this.getDynamicProperties().length > 0) {
43768
+ this.questionWrapper.onPropertyValueChangedCallback = function (name, oldValue, newValue, sender, arrayChanges) {
43769
+ var prop = _this.getDynamicProperty(name);
43770
+ if (prop) {
43771
+ _this.propertyValueChanged(name, oldValue, newValue, arrayChanges);
43772
+ }
43773
+ };
43774
+ }
43775
+ };
43776
+ QuestionCustomModel.prototype.getDynamicProperty = function (name) {
43777
+ var props = this.getDynamicProperties();
43778
+ for (var i = 0; i < props.length; i++) {
43779
+ if (props[i].name === name)
43780
+ return props[i];
43781
+ }
43782
+ return null;
43414
43783
  };
43415
43784
  QuestionCustomModel.prototype.getElement = function () {
43416
43785
  return this.contentQuestion;
@@ -43820,6 +44189,13 @@ var QuestionCompositeModel = /** @class */ (function (_super) {
43820
44189
  _super.prototype.setValue.call(this, name, newValue, locNotification, allowNotifyValueChanged);
43821
44190
  this.settingNewValue = false;
43822
44191
  };
44192
+ QuestionCompositeModel.prototype.getFilteredValues = function () {
44193
+ var values = !!this.data ? this.data.getFilteredValues() : {};
44194
+ if (!!this.contentPanel) {
44195
+ values[QuestionCompositeModel.ItemVariableName] = this.contentPanel.getValue();
44196
+ }
44197
+ return values;
44198
+ };
43823
44199
  QuestionCompositeModel.prototype.updateValueCoreWithPanelValue = function () {
43824
44200
  var panelValue = this.getContentPanelValue();
43825
44201
  if (this.isTwoValueEquals(this.getValueCore(), panelValue))
@@ -45234,7 +45610,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
45234
45610
  };
45235
45611
  _this.doClean = function () {
45236
45612
  if (_this.needConfirmRemoveFile) {
45237
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(_this.confirmRemoveAllMessage, function () { _this.clearFilesCore(); }, undefined, _this.getLocale());
45613
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(_this.confirmRemoveAllMessage, function () { _this.clearFilesCore(); }, undefined, _this.getLocale(), _this.survey.rootElement);
45238
45614
  return;
45239
45615
  }
45240
45616
  _this.clearFilesCore();
@@ -45588,6 +45964,20 @@ var QuestionFileModel = /** @class */ (function (_super) {
45588
45964
  enumerable: false,
45589
45965
  configurable: true
45590
45966
  });
45967
+ QuestionFileModel.prototype.chooseFile = function (event) {
45968
+ var _this = this;
45969
+ var inputElement = document.getElementById(this.inputId);
45970
+ event.preventDefault();
45971
+ event.stopImmediatePropagation();
45972
+ if (inputElement) {
45973
+ if (this.survey) {
45974
+ this.survey.chooseFiles(inputElement, function (files) { return _this.loadFiles(files); }, { element: this });
45975
+ }
45976
+ else {
45977
+ inputElement.click();
45978
+ }
45979
+ }
45980
+ };
45591
45981
  Object.defineProperty(QuestionFileModel.prototype, "needConfirmRemoveFile", {
45592
45982
  /**
45593
45983
  * Specifies whether users should confirm file deletion.
@@ -46060,8 +46450,8 @@ var QuestionFileModel = /** @class */ (function (_super) {
46060
46450
  _super.prototype.updateElementCss.call(this, reNew);
46061
46451
  this.updateCurrentMode();
46062
46452
  };
46063
- QuestionFileModel.prototype.endLoadingFromJson = function () {
46064
- _super.prototype.endLoadingFromJson.call(this);
46453
+ QuestionFileModel.prototype.onSurveyLoad = function () {
46454
+ _super.prototype.onSurveyLoad.call(this);
46065
46455
  this.updateCurrentMode();
46066
46456
  this.updateActionsVisibility();
46067
46457
  this.loadPreview(this.value);
@@ -46124,7 +46514,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
46124
46514
  QuestionFileModel.prototype.doRemoveFile = function (data) {
46125
46515
  var _this = this;
46126
46516
  if (this.needConfirmRemoveFile) {
46127
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(this.getConfirmRemoveMessage(data.name), function () { _this.removeFileCore(data); }, undefined, this.getLocale());
46517
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(this.getConfirmRemoveMessage(data.name), function () { _this.removeFileCore(data); }, undefined, this.getLocale(), this.survey.rootElement);
46128
46518
  return;
46129
46519
  }
46130
46520
  this.removeFileCore(data);
@@ -46149,9 +46539,12 @@ var QuestionFileModel = /** @class */ (function (_super) {
46149
46539
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: 0 })
46150
46540
  ], QuestionFileModel.prototype, "indexToShow", void 0);
46151
46541
  __decorate([
46152
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: 1, onSet: function (_, target) {
46542
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
46543
+ defaultValue: 1,
46544
+ onSet: function (_, target) {
46153
46545
  target.updateFileNavigator();
46154
- } })
46546
+ }
46547
+ })
46155
46548
  ], QuestionFileModel.prototype, "pageSize", void 0);
46156
46549
  __decorate([
46157
46550
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
@@ -46160,11 +46553,13 @@ var QuestionFileModel = /** @class */ (function (_super) {
46160
46553
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
46161
46554
  ], QuestionFileModel.prototype, "allowCameraAccess", void 0);
46162
46555
  __decorate([
46163
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ onSet: function (val, obj) {
46556
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
46557
+ onSet: function (val, obj) {
46164
46558
  if (!obj.isLoadingFromJson) {
46165
46559
  obj.updateCurrentMode();
46166
46560
  }
46167
- } })
46561
+ }
46562
+ })
46168
46563
  ], QuestionFileModel.prototype, "sourceType", void 0);
46169
46564
  __decorate([
46170
46565
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
@@ -48576,6 +48971,9 @@ var MatrixDropdownCell = /** @class */ (function () {
48576
48971
  enumerable: false,
48577
48972
  configurable: true
48578
48973
  });
48974
+ MatrixDropdownCell.prototype.getQuestionWrapperClassName = function (className) {
48975
+ return className;
48976
+ };
48579
48977
  MatrixDropdownCell.prototype.runCondition = function (values, properties) {
48580
48978
  this.question.runCondition(values, properties);
48581
48979
  };
@@ -48615,6 +49013,22 @@ var MatrixDropdownTotalCell = /** @class */ (function (_super) {
48615
49013
  this.question.unlocCalculation();
48616
49014
  this.question.runIfReadOnly = true;
48617
49015
  };
49016
+ MatrixDropdownTotalCell.prototype.getQuestionWrapperClassName = function (className) {
49017
+ var result = _super.prototype.getQuestionWrapperClassName.call(this, className);
49018
+ if (!result) {
49019
+ return result;
49020
+ }
49021
+ if (this.question.expression && this.question.expression != "''") {
49022
+ result += " " + className + "--expression";
49023
+ }
49024
+ var alignment = this.column.totalAlignment;
49025
+ if (alignment === "auto") {
49026
+ if (this.column.cellType === "dropdown") {
49027
+ alignment = "left";
49028
+ }
49029
+ }
49030
+ return result + " " + className + "--" + alignment;
49031
+ };
48618
49032
  MatrixDropdownTotalCell.prototype.getTotalExpression = function () {
48619
49033
  if (!!this.column.totalExpression)
48620
49034
  return this.column.totalExpression;
@@ -49326,7 +49740,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
49326
49740
  _this.clearRowsAndResetRenderedTable();
49327
49741
  });
49328
49742
  _this.registerPropertyChangedHandlers([
49329
- "columnLayout",
49743
+ "transposeData",
49330
49744
  "addRowLocation",
49331
49745
  "hideColumnsIfEmpty",
49332
49746
  "showHeader",
@@ -49423,20 +49837,32 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
49423
49837
  this.clearRowsAndResetRenderedTable();
49424
49838
  }
49425
49839
  };
49426
- Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "columnLayout", {
49840
+ Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "transposeData", {
49427
49841
  /**
49428
- * Specifies the matrix layout. Set this property to `"vertical"` if you want to display columns instead of rows and rows instead of columns.
49842
+ * Specifies whether to display [`columns`](#columns) as rows and [`rows`](#rows) as columns.
49429
49843
  *
49430
- * Default value: `"horizontal"`
49431
- * @see columns
49432
- * @see rows
49433
- * @see isColumnLayoutHorizontal
49844
+ * Default value: `false`
49845
+ *
49846
+ * [View Demo](https://surveyjs.io/form-library/examples/transpose-dynamic-rows-to-columns-in-matrix/ (linkStyle))
49847
+ */
49848
+ get: function () {
49849
+ return this.getPropertyValue("transposeData");
49850
+ },
49851
+ set: function (val) {
49852
+ this.setPropertyValue("transposeData", val);
49853
+ },
49854
+ enumerable: false,
49855
+ configurable: true
49856
+ });
49857
+ Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "columnLayout", {
49858
+ /**
49859
+ * This property is obsolete. Use the [`transposeData`](#transposeData) property instead.
49434
49860
  */
49435
49861
  get: function () {
49436
- return this.getPropertyValue("columnLayout");
49862
+ return this.transposeData ? "vertical" : "horizontal";
49437
49863
  },
49438
49864
  set: function (val) {
49439
- this.setPropertyValue("columnLayout", val);
49865
+ this.transposeData = val === "vertical";
49440
49866
  },
49441
49867
  enumerable: false,
49442
49868
  configurable: true
@@ -49499,15 +49925,13 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
49499
49925
  };
49500
49926
  Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "isColumnLayoutHorizontal", {
49501
49927
  /**
49502
- * Returns `true` if columns are placed in the horizontal direction and rows in the vertical direction.
49928
+ * Returns `true` if [`columns`](#columns) are placed in the horizontal direction and [`rows`](#columns) in the vertical direction.
49503
49929
  *
49504
- * To specify the layout, use the `columnLayout` property. If you set it to `"vertical"`, the survey applies it only when the screen has enough space. Otherwise, the survey falls back to the horizontal layout, but the `columnLayout` property remains set to `"vertical"`. Unlike `columnLayout`, the `isColumnLayoutHorizontal` property always indicates the current layout.
49505
- * @see columnLayout
49930
+ * To specify the layout, use the [`transposeData`](#transposeData) property. If you set it to `true`, the survey applies it only when the screen has enough space. Otherwise, the survey falls back to the original layout, but the `transposeData` property remains set to `true`. Unlike `transposeData`, the `isColumnLayoutHorizontal` property always indicates the current layout.
49931
+ * @see transposeData
49506
49932
  */
49507
49933
  get: function () {
49508
- if (this.isMobile)
49509
- return true;
49510
- return this.columnLayout != "vertical";
49934
+ return this.isMobile ? true : !this.transposeData;
49511
49935
  },
49512
49936
  enumerable: false,
49513
49937
  configurable: true
@@ -51042,8 +51466,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownb
51042
51466
  {
51043
51467
  name: "columnLayout",
51044
51468
  alternativeName: "columnsLocation",
51045
- default: "horizontal",
51046
51469
  choices: ["horizontal", "vertical"],
51470
+ visible: false, isSerializable: false
51471
+ },
51472
+ {
51473
+ name: "transposeData:boolean", version: "1.9.130", oldName: "columnLayout"
51047
51474
  },
51048
51475
  {
51049
51476
  name: "detailElements",
@@ -51056,9 +51483,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownb
51056
51483
  default: "none",
51057
51484
  },
51058
51485
  { name: "cellErrorLocation", default: "default", choices: ["default", "top", "bottom"] },
51059
- { name: "detailErrorLocation", default: "default", choices: ["default", "top", "bottom"], visibleIf: function (obj) { return !!obj && obj.detailPanelMode != "none"; }
51486
+ {
51487
+ name: "detailErrorLocation", default: "default", choices: ["default", "top", "bottom"],
51488
+ visibleIf: function (obj) { return !!obj && obj.detailPanelMode != "none"; }
51060
51489
  },
51061
- "horizontalScroll:boolean",
51490
+ { name: "horizontalScroll:boolean", visible: false, },
51062
51491
  {
51063
51492
  name: "choices:itemvalue[]", uniqueProperty: "value",
51064
51493
  },
@@ -51855,6 +52284,32 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
51855
52284
  enumerable: false,
51856
52285
  configurable: true
51857
52286
  });
52287
+ Object.defineProperty(MatrixDropdownColumn.prototype, "totalAlignment", {
52288
+ /**
52289
+ * An alignment for calculated total values.
52290
+ *
52291
+ * Possible values:
52292
+ *
52293
+ * - `"left"`
52294
+ * - `"center"`
52295
+ * - `"right"`
52296
+ * - `"auto"` (default) - Applies one of the values above based on the column's [cell type](#cellType).
52297
+ *
52298
+ * [View Demo](https://surveyjs.io/form-library/examples/aggregate-data-within-form/ (linkStyle))
52299
+ * @see totalType
52300
+ * @see totalFormat
52301
+ * @see totalCurrency
52302
+ * @see totalDisplayStyle
52303
+ */
52304
+ get: function () {
52305
+ return this.getPropertyValue("totalAlignment");
52306
+ },
52307
+ set: function (val) {
52308
+ this.setPropertyValue("totalAlignment", val);
52309
+ },
52310
+ enumerable: false,
52311
+ configurable: true
52312
+ });
51858
52313
  Object.defineProperty(MatrixDropdownColumn.prototype, "totalCurrency", {
51859
52314
  /**
51860
52315
  * Specifies a currency used to display calculated total values. Applies only if [`totalDisplayStyle`](#totalDisplayStyle) is set to `"currency"`.
@@ -52173,6 +52628,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownc
52173
52628
  default: "none",
52174
52629
  choices: ["none", "decimal", "currency", "percent"],
52175
52630
  },
52631
+ {
52632
+ name: "totalAlignment",
52633
+ default: "auto",
52634
+ choices: ["auto", "left", "center", "right"],
52635
+ },
52176
52636
  {
52177
52637
  name: "totalCurrency",
52178
52638
  choices: function () {
@@ -52363,6 +52823,13 @@ var QuestionMatrixDropdownRenderedCell = /** @class */ (function () {
52363
52823
  enumerable: false,
52364
52824
  configurable: true
52365
52825
  });
52826
+ Object.defineProperty(QuestionMatrixDropdownRenderedCell.prototype, "cellQuestionWrapperClassName", {
52827
+ get: function () {
52828
+ return this.cell.getQuestionWrapperClassName(this.matrix.cssClasses.cellQuestionWrapper);
52829
+ },
52830
+ enumerable: false,
52831
+ configurable: true
52832
+ });
52366
52833
  Object.defineProperty(QuestionMatrixDropdownRenderedCell.prototype, "headers", {
52367
52834
  get: function () {
52368
52835
  if (this.cell && this.cell.column) {
@@ -53698,7 +54165,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
53698
54165
  };
53699
54166
  Object.defineProperty(QuestionMatrixDynamicModel.prototype, "allowRowsDragAndDrop", {
53700
54167
  /**
53701
- * Specifies whether users can drag and drop matrix rows to reorder them. Applies only if [`columnLayout`](#columnLayout) is `"horizontal"`.
54168
+ * Specifies whether users can drag and drop matrix rows to reorder them. Applies only if [`transposeData`](#transposeData) is `false`.
53702
54169
  *
53703
54170
  * Default value: `false`
53704
54171
  */
@@ -54045,7 +54512,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
54045
54512
  confirmDelete = this.isRequireConfirmOnRowDelete(index);
54046
54513
  }
54047
54514
  if (confirmDelete) {
54048
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removeRowAsync(index, row); }, undefined, this.getLocale());
54515
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removeRowAsync(index, row); }, undefined, this.getLocale(), this.survey.rootElement);
54049
54516
  return;
54050
54517
  }
54051
54518
  this.removeRowAsync(index, row);
@@ -54143,8 +54610,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
54143
54610
  * - `"bottom"` - Displays the Add Row button at the bottom of the matrix.
54144
54611
  * - `"topBottom"` - Displays the Add Row button at the top and bottom of the matrix.
54145
54612
  *
54146
- * Default value: `"top"` if `columnLayout` is `vertical`; `"bottom"` if `columnLayout` is `"horizontal"` or the matrix is in compact mode.
54147
- * @see columnLayout
54613
+ * Default value: `"top"` if [`transposeData`](#transposeData) is `true`; `"bottom"` if `transposeData` is `false` or the matrix is in compact mode.
54148
54614
  * @see addRowText
54149
54615
  */
54150
54616
  get: function () {
@@ -57151,6 +57617,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
57151
57617
  if (this.renderMode === "list" && this.panelsState !== "default") {
57152
57618
  newPanel.expand();
57153
57619
  }
57620
+ newPanel.focusFirstQuestion();
57154
57621
  return newPanel;
57155
57622
  };
57156
57623
  /**
@@ -57225,7 +57692,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
57225
57692
  if (!this.canRemovePanel)
57226
57693
  return;
57227
57694
  if (this.isRequireConfirmOnDelete(value)) {
57228
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removePanel(value); }, undefined, this.getLocale());
57695
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removePanel(value); }, undefined, this.getLocale(), this.survey.rootElement);
57229
57696
  }
57230
57697
  else {
57231
57698
  this.removePanel(value);
@@ -58072,7 +58539,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
58072
58539
  };
58073
58540
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "noEntriesText", {
58074
58541
  /**
58075
- * A text displayed when Dynamic Panel contains no entries. Applies only in the Default V2 theme.
58542
+ * A text displayed when Dynamic Panel contains no entries.
58076
58543
  */
58077
58544
  get: function () {
58078
58545
  return this.getLocalizableStringText("noEntriesText");
@@ -58342,6 +58809,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
58342
58809
  name: "panelsState",
58343
58810
  default: "default",
58344
58811
  choices: ["default", "collapsed", "expanded", "firstExpanded"],
58812
+ visibleIf: function (obj) { return obj.renderMode === "list"; }
58345
58813
  },
58346
58814
  { name: "keyName" },
58347
58815
  {
@@ -58352,24 +58820,45 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
58352
58820
  {
58353
58821
  name: "confirmDeleteText",
58354
58822
  serializationProperty: "locConfirmDeleteText",
58823
+ visibleIf: function (obj) { return obj.confirmDelete; }
58824
+ },
58825
+ {
58826
+ name: "panelAddText",
58827
+ serializationProperty: "locPanelAddText",
58828
+ visibleIf: function (obj) { return obj.allowAddPanel; }
58829
+ },
58830
+ {
58831
+ name: "panelRemoveText",
58832
+ serializationProperty: "locPanelRemoveText",
58833
+ visibleIf: function (obj) { return obj.allowRemovePanel; }
58834
+ },
58835
+ {
58836
+ name: "panelPrevText",
58837
+ serializationProperty: "locPanelPrevText",
58838
+ visibleIf: function (obj) { return obj.renderMode !== "list"; }
58839
+ },
58840
+ {
58841
+ name: "panelNextText",
58842
+ serializationProperty: "locPanelNextText",
58843
+ visibleIf: function (obj) { return obj.renderMode !== "list"; }
58355
58844
  },
58356
- { name: "panelAddText", serializationProperty: "locPanelAddText" },
58357
- { name: "panelRemoveText", serializationProperty: "locPanelRemoveText" },
58358
- { name: "panelPrevText", serializationProperty: "locPanelPrevText" },
58359
- { name: "panelNextText", serializationProperty: "locPanelNextText" },
58360
58845
  {
58361
58846
  name: "showQuestionNumbers",
58362
58847
  default: "off",
58363
58848
  choices: ["off", "onPanel", "onSurvey"],
58364
58849
  },
58365
- { name: "showRangeInProgress:boolean", default: true },
58850
+ {
58851
+ name: "showRangeInProgress:boolean",
58852
+ default: true,
58853
+ visibleIf: function (obj) { return obj.renderMode !== "list"; }
58854
+ },
58366
58855
  {
58367
58856
  name: "renderMode",
58368
58857
  default: "list",
58369
58858
  choices: ["list", "progressTop", "progressBottom", "progressTopBottom", "tab"],
58370
58859
  },
58371
58860
  {
58372
- name: "tabAlign", default: "center", choices: ["center", "left", "right"],
58861
+ name: "tabAlign", default: "center", choices: ["left", "center", "right"],
58373
58862
  visibleIf: function (obj) { return obj.renderMode === "tab"; }
58374
58863
  },
58375
58864
  {
@@ -58386,6 +58875,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
58386
58875
  name: "panelRemoveButtonLocation",
58387
58876
  default: "bottom",
58388
58877
  choices: ["bottom", "right"],
58878
+ visibleIf: function (obj) { return obj.allowRemovePanel; }
58389
58879
  },
58390
58880
  ], function () {
58391
58881
  return new QuestionPanelDynamicModel("");
@@ -60219,7 +60709,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60219
60709
  default: "labels",
60220
60710
  category: "rateValues",
60221
60711
  choices: ["labels", "stars", "smileys"],
60222
- visibleIndex: 0
60712
+ visibleIndex: 1
60223
60713
  },
60224
60714
  {
60225
60715
  name: "scaleColorMode",
@@ -60229,7 +60719,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60229
60719
  visibleIf: function (obj) {
60230
60720
  return obj.rateDisplayMode == "smileys";
60231
60721
  },
60232
- visibleIndex: 1
60722
+ visibleIndex: 2
60233
60723
  },
60234
60724
  {
60235
60725
  name: "rateColorMode",
@@ -60239,20 +60729,20 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60239
60729
  visibleIf: function (obj) {
60240
60730
  return obj.rateDisplayMode == "smileys" && obj.scaleColorMode == "monochrome";
60241
60731
  },
60242
- visibleIndex: 2
60732
+ visibleIndex: 3
60243
60733
  },
60244
60734
  {
60245
60735
  name: "autoGenerate",
60246
60736
  category: "rateValues",
60247
60737
  default: true,
60248
60738
  choices: [true, false],
60249
- visibleIndex: 4
60739
+ visibleIndex: 5
60250
60740
  },
60251
60741
  {
60252
60742
  name: "rateCount:number",
60253
60743
  default: 5,
60254
60744
  category: "rateValues",
60255
- visibleIndex: 3,
60745
+ visibleIndex: 4,
60256
60746
  onSettingValue: function (obj, val) {
60257
60747
  if (val < 2)
60258
60748
  return 2;
@@ -60272,7 +60762,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60272
60762
  visibleIf: function (obj) {
60273
60763
  return !obj.autoGenerate;
60274
60764
  },
60275
- visibleIndex: 5
60765
+ visibleIndex: 6
60276
60766
  },
60277
60767
  {
60278
60768
  name: "rateMin:number", default: 1,
@@ -60282,7 +60772,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60282
60772
  visibleIf: function (obj) {
60283
60773
  return !!obj.autoGenerate;
60284
60774
  },
60285
- visibleIndex: 6
60775
+ visibleIndex: 7
60286
60776
  },
60287
60777
  {
60288
60778
  name: "rateMax:number", default: 5,
@@ -60292,7 +60782,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60292
60782
  visibleIf: function (obj) {
60293
60783
  return !!obj.autoGenerate;
60294
60784
  },
60295
- visibleIndex: 7
60785
+ visibleIndex: 8
60296
60786
  },
60297
60787
  {
60298
60788
  name: "rateStep:number", default: 1, minValue: 0.1,
@@ -60306,24 +60796,24 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60306
60796
  visibleIf: function (obj) {
60307
60797
  return !!obj.autoGenerate;
60308
60798
  },
60309
- visibleIndex: 8
60799
+ visibleIndex: 9
60310
60800
  },
60311
60801
  {
60312
60802
  name: "minRateDescription",
60313
60803
  alternativeName: "mininumRateDescription",
60314
60804
  serializationProperty: "locMinRateDescription",
60315
- visibleIndex: 17
60805
+ visibleIndex: 18
60316
60806
  },
60317
60807
  {
60318
60808
  name: "maxRateDescription",
60319
60809
  alternativeName: "maximumRateDescription",
60320
60810
  serializationProperty: "locMaxRateDescription",
60321
- visibleIndex: 18
60811
+ visibleIndex: 19
60322
60812
  },
60323
60813
  {
60324
60814
  name: "displayRateDescriptionsAsExtremeItems:boolean",
60325
60815
  default: false,
60326
- visibleIndex: 19,
60816
+ visibleIndex: 21,
60327
60817
  visibleIf: function (obj) {
60328
60818
  return obj.rateType == "labels";
60329
60819
  }
@@ -60331,14 +60821,14 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
60331
60821
  {
60332
60822
  name: "rateDescriptionLocation",
60333
60823
  default: "leftRight",
60334
- category: "layout",
60335
60824
  choices: ["leftRight", "top", "bottom", "topBottom"],
60825
+ visibleIndex: 20
60336
60826
  },
60337
60827
  {
60338
60828
  name: "displayMode",
60339
60829
  default: "auto",
60340
60830
  choices: ["auto", "buttons", "dropdown"],
60341
- visibleIndex: 20
60831
+ visibleIndex: 0
60342
60832
  },
60343
60833
  { name: "itemComponent", visible: false, defaultFunc: function (obj) {
60344
60834
  if (!obj)
@@ -60504,6 +60994,8 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
60504
60994
  };
60505
60995
  QuestionSignaturePadModel.prototype.fromUrl = function (url) {
60506
60996
  var _this = this;
60997
+ if ("undefined" === typeof document)
60998
+ return;
60507
60999
  var img = document.createElement("img");
60508
61000
  img.crossOrigin = "anonymous";
60509
61001
  img.src = url;
@@ -62706,14 +63198,14 @@ var SurveyQuestionBoolean = /** @class */ (function (_super) {
62706
63198
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { ref: this.checkRef, type: "checkbox", name: this.question.name, value: this.question.booleanValue === null
62707
63199
  ? ""
62708
63200
  : this.question.booleanValue, id: this.question.inputId, className: cssClasses.control, disabled: this.isDisplayMode, checked: this.question.booleanValue || false, onChange: this.handleOnChange, role: this.question.a11y_input_ariaRole, "aria-required": this.question.a11y_input_ariaRequired, "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-invalid": this.question.a11y_input_ariaInvalid, "aria-describedby": this.question.a11y_input_ariaDescribedBy }),
62709
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.sliderGhost, onClick: function (event) { return _this.handleOnLabelClick(event, false); } },
62710
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.getLabelCss(false) }, this.renderLocString(this.question.locLabelFalse))),
63201
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.sliderGhost, onClick: function (event) { return _this.handleOnLabelClick(event, _this.question.swapOrder); } },
63202
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.getLabelCss(this.question.swapOrder) }, this.renderLocString(this.question.locLabelLeft))),
62711
63203
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.switch, onClick: this.handleOnSwitchClick },
62712
63204
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: cssClasses.slider }, this.question.isDeterminated && cssClasses.sliderText ?
62713
63205
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: cssClasses.sliderText }, this.renderLocString(this.question.getCheckedLabel()))
62714
63206
  : null)),
62715
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.sliderGhost, onClick: function (event) { return _this.handleOnLabelClick(event, true); } },
62716
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.getLabelCss(true) }, this.renderLocString(this.question.locLabelTrue))))));
63207
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.sliderGhost, onClick: function (event) { return _this.handleOnLabelClick(event, !_this.question.swapOrder); } },
63208
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.getLabelCss(!this.question.swapOrder) }, this.renderLocString(this.question.locLabelRight))))));
62717
63209
  };
62718
63210
  return SurveyQuestionBoolean;
62719
63211
  }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["SurveyQuestionElementBase"]));
@@ -63273,7 +63765,8 @@ var SurveyFileChooseButton = /** @class */ (function (_super) {
63273
63765
  configurable: true
63274
63766
  });
63275
63767
  SurveyFileChooseButton.prototype.render = function () {
63276
- return Object(_reactSurvey__WEBPACK_IMPORTED_MODULE_1__["attachKey2click"])(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("label", { tabIndex: 0, className: this.question.getChooseFileCss(), htmlFor: this.question.inputId, "aria-label": this.question.chooseButtonText },
63768
+ var _this = this;
63769
+ return Object(_reactSurvey__WEBPACK_IMPORTED_MODULE_1__["attachKey2click"])(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("label", { tabIndex: 0, className: this.question.getChooseFileCss(), htmlFor: this.question.inputId, "aria-label": this.question.chooseButtonText, onClick: function (e) { return _this.question.chooseFile(e.nativeEvent); } },
63277
63770
  (!!this.question.cssClasses.chooseFileIconId) ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { title: this.question.chooseButtonText, iconName: this.question.cssClasses.chooseFileIconId, size: "auto" }) : null,
63278
63771
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, this.question.chooseButtonText)));
63279
63772
  };
@@ -63486,7 +63979,7 @@ var Header = /** @class */ (function (_super) {
63486
63979
  };
63487
63980
  Header.prototype.renderElement = function () {
63488
63981
  this.model.survey = this.props.survey;
63489
- if (!(this.props.survey.headerView === "advanced" && this.props.survey.renderedHasHeader)) {
63982
+ if (!(this.props.survey.headerView === "advanced")) {
63490
63983
  return null;
63491
63984
  }
63492
63985
  var headerContent = null;
@@ -66791,7 +67284,6 @@ var SurveyPanelBase = /** @class */ (function (_super) {
66791
67284
  __extends(SurveyPanelBase, _super);
66792
67285
  function SurveyPanelBase(props) {
66793
67286
  var _this = _super.call(this, props) || this;
66794
- _this.renderedRowsCache = {};
66795
67287
  _this.rootRef = react__WEBPACK_IMPORTED_MODULE_0__["createRef"]();
66796
67288
  return _this;
66797
67289
  }
@@ -66874,20 +67366,8 @@ var SurveyPanelBase = /** @class */ (function (_super) {
66874
67366
  && this.panelBase.isVisible && !!this.panelBase.survey);
66875
67367
  };
66876
67368
  SurveyPanelBase.prototype.renderRows = function (css) {
66877
- if (this.changedStatePropName !== "rows") {
66878
- this.renderedRowsCache = {};
66879
- }
66880
- var rows = [];
66881
- var questionRows = this.panelBase.rows;
66882
- for (var i = 0; i < questionRows.length; i++) {
66883
- var row = this.renderedRowsCache[questionRows[i].id];
66884
- if (!row) {
66885
- row = this.createRow(questionRows[i], css);
66886
- this.renderedRowsCache[questionRows[i].id] = row;
66887
- }
66888
- rows.push(row);
66889
- }
66890
- return rows;
67369
+ var _this = this;
67370
+ return this.panelBase.rows.map(function (row) { return _this.createRow(row, css); });
66891
67371
  };
66892
67372
  SurveyPanelBase.prototype.createRow = function (row, css) {
66893
67373
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_row__WEBPACK_IMPORTED_MODULE_2__["SurveyRow"], { key: row.id, row: row, survey: this.survey, creator: this.creator, css: css }));
@@ -67231,7 +67711,9 @@ var SurveyProgressButtons = /** @class */ (function (_super) {
67231
67711
  }, 10);
67232
67712
  };
67233
67713
  SurveyProgressButtons.prototype.componentWillUnmount = function () {
67234
- this.respManager.dispose();
67714
+ if (!!this.respManager) {
67715
+ this.respManager.dispose();
67716
+ }
67235
67717
  _super.prototype.componentWillUnmount.call(this);
67236
67718
  };
67237
67719
  return SurveyProgressButtons;
@@ -67440,6 +67922,7 @@ var PopupSurvey = /** @class */ (function (_super) {
67440
67922
  var titleCollapsed = null;
67441
67923
  var expandCollapseIcon;
67442
67924
  var closeButton = null;
67925
+ var allowFullScreenButon = null;
67443
67926
  if (popup.isCollapsed) {
67444
67927
  headerCss += " " + popup.cssRootCollapsedMod;
67445
67928
  titleCollapsed = this.renderTitleCollapsed(popup);
@@ -67451,9 +67934,13 @@ var PopupSurvey = /** @class */ (function (_super) {
67451
67934
  if (popup.allowClose) {
67452
67935
  closeButton = this.renderCloseButton(this.popup);
67453
67936
  }
67937
+ if (popup.allowFullScreen) {
67938
+ allowFullScreenButon = this.renderAllowFullScreenButon(this.popup);
67939
+ }
67454
67940
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: popup.cssHeaderRoot },
67455
67941
  titleCollapsed,
67456
67942
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: popup.cssHeaderButtonsContainer },
67943
+ allowFullScreenButon,
67457
67944
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: popup.cssHeaderCollapseButton, onClick: this.handleOnExpanded }, expandCollapseIcon),
67458
67945
  closeButton)));
67459
67946
  };
@@ -67472,6 +67959,16 @@ var PopupSurvey = /** @class */ (function (_super) {
67472
67959
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: popup.cssHeaderCloseButton, onClick: function () { popup.hide(); } },
67473
67960
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { iconName: "icon-close_16x16", size: 16 })));
67474
67961
  };
67962
+ PopupSurvey.prototype.renderAllowFullScreenButon = function (popup) {
67963
+ var Icon;
67964
+ if (popup.isFullScreen) {
67965
+ Icon = react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { iconName: "icon-back-to-panel_16x16", size: 16 });
67966
+ }
67967
+ else {
67968
+ Icon = react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { iconName: "icon-full-screen_16x16", size: 16 });
67969
+ }
67970
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: popup.cssHeaderFullScreenButton, onClick: function () { popup.toggleFullScreen(); } }, Icon));
67971
+ };
67475
67972
  PopupSurvey.prototype.renderBody = function () {
67476
67973
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.popup.cssBody }, this.doRender());
67477
67974
  };
@@ -67484,6 +67981,7 @@ var PopupSurvey = /** @class */ (function (_super) {
67484
67981
  this.popup.closeOnCompleteTimeout = newProps.closeOnCompleteTimeout;
67485
67982
  }
67486
67983
  this.popup.allowClose = newProps.allowClose;
67984
+ this.popup.allowFullScreen = newProps.allowFullScreen;
67487
67985
  this.popup.isShowing = true;
67488
67986
  if (!this.popup.isExpanded && (newProps.expanded || newProps.isExpanded))
67489
67987
  this.popup.expand();
@@ -68267,7 +68765,7 @@ var SurveyQuestionAndErrorsCell = /** @class */ (function (_super) {
68267
68765
  var style = this.getCellStyle();
68268
68766
  var cell = this.props.cell;
68269
68767
  var focusIn = function () { cell.focusIn(); };
68270
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("td", { ref: this.cellRef, className: this.itemCss, colSpan: cell.colSpans, "data-responsive-title": this.getHeaderText(), title: cell.getTitle(), style: style, onFocus: focusIn }, this.wrapCell(this.props.cell, (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.cssClasses.cellQuestionWrapper }, this.renderQuestion())))));
68768
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("td", { ref: this.cellRef, className: this.itemCss, colSpan: cell.colSpans, "data-responsive-title": this.getHeaderText(), title: cell.getTitle(), style: style, onFocus: focusIn }, this.wrapCell(this.props.cell, (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.props.cell.cellQuestionWrapperClassName }, this.renderQuestion())))));
68271
68769
  };
68272
68770
  SurveyQuestionAndErrorsCell.prototype.getCellStyle = function () {
68273
68771
  return null;
@@ -69617,8 +70115,8 @@ var SurveyQuestionFile = /** @class */ (function (_super) {
69617
70115
  var clearButtonBottom = this.question.showRemoveButtonBottom ? this.renderClearButton(this.question.cssClasses.removeButtonBottom) : null;
69618
70116
  var fileNavigator = this.question.fileNavigatorVisible ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_1__["SurveyActionBar"], { model: this.question.fileNavigator })) : null;
69619
70117
  var fileInput = (this.isDisplayMode ?
69620
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "file", disabled: this.isDisplayMode, className: !this.isDisplayMode ? this.question.cssClasses.fileInput : this.question.getReadOnlyFileCss(), id: this.question.inputId, ref: function (input) { return (_this.setControl(input)); }, style: !this.isDisplayMode ? {} : { color: "transparent" }, onChange: !this.isDisplayMode ? this.question.doChange : (function () { }), multiple: this.question.allowMultiple, placeholder: this.question.title, accept: this.question.acceptedTypes }) : this.question.hasFileUI ?
69621
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "file", disabled: this.isDisplayMode, tabIndex: -1, className: !this.isDisplayMode ? this.question.cssClasses.fileInput : this.question.getReadOnlyFileCss(), id: this.question.inputId, ref: function (input) { return (_this.setControl(input)); }, style: !this.isDisplayMode ? {} : { color: "transparent" }, onChange: !this.isDisplayMode ? this.question.doChange : (function () { }), "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-describedby": this.question.ariaDescribedBy, multiple: this.question.allowMultiple, title: this.question.inputTitle, accept: this.question.acceptedTypes, capture: this.question.renderCapture }) : null);
70118
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "file", disabled: this.isDisplayMode, className: !this.isDisplayMode ? this.question.cssClasses.fileInput : this.question.getReadOnlyFileCss(), id: this.question.inputId, ref: function (input) { return (_this.setControl(input)); }, style: !this.isDisplayMode ? {} : { color: "transparent" }, multiple: this.question.allowMultiple, placeholder: this.question.title, accept: this.question.acceptedTypes }) : this.question.hasFileUI ?
70119
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "file", disabled: this.isDisplayMode, tabIndex: -1, className: !this.isDisplayMode ? this.question.cssClasses.fileInput : this.question.getReadOnlyFileCss(), id: this.question.inputId, ref: function (input) { return (_this.setControl(input)); }, style: !this.isDisplayMode ? {} : { color: "transparent" }, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-describedby": this.question.ariaDescribedBy, multiple: this.question.allowMultiple, title: this.question.inputTitle, accept: this.question.acceptedTypes, capture: this.question.renderCapture }) : null);
69622
70120
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.fileRootCss },
69623
70121
  fileInput,
69624
70122
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.dragArea, onDrop: this.question.onDrop, onDragOver: this.question.onDragOver, onDragLeave: this.question.onDragLeave, onDragEnter: this.question.onDragEnter },
@@ -72958,34 +73456,50 @@ var settings = {
72958
73456
  */
72959
73457
  tagboxCloseOnSelect: false,
72960
73458
  /**
72961
- * A property that allows you to display a custom confirm dialog.
73459
+ * A function that activates a browser confirm dialog.
73460
+ *
73461
+ * Use the following code to execute this function:
73462
+ *
73463
+ * ```js
73464
+ * import { settings } from "survey-core";
73465
+ *
73466
+ * // `result` contains `true` if the action was confirmed or `false` otherwise
73467
+ * const result = settings.confirmActionFunc("Are you sure?");
73468
+ * ```
72962
73469
  *
72963
- * 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.
73470
+ * You can redefine the `confirmActionFunc` function if you want to display a custom dialog window. Your function should return `true` if a user confirms an action or `false` otherwise.
72964
73471
  * @param message A message to be displayed in the confirm dialog window.
72965
73472
  */
72966
73473
  confirmActionFunc: function (message) {
72967
73474
  return confirm(message);
72968
73475
  },
72969
73476
  /**
72970
- * A property that allows you to display a custom confirm dialog in async mode or activate the standard browser dialog.
72971
- *
72972
- * To display a custom confirm dialog, set this property to a function that renders it. This function should return `true` to be enabled; otherwise, a survey executes the [`confirmActionFunc`](#confirmActionFunc) function. Pass the dialog result as the `callback` parameter: `true` if a user confirms an action, `false` otherwise.
73477
+ * A function that activates a proprietary SurveyJS confirm dialog.
72973
73478
  *
72974
- * To activate the standard browser dialog, set the `confirmActionAsync` property to a function that returns `false`. With this configuration, a survey falls back to the [`confirmActionFunc`](#confirmActionFunc) function, which renders the standard browser dialog by default.
73479
+ * Use the following code to execute this function:
72975
73480
  *
72976
73481
  * ```js
72977
73482
  * import { settings } from "survey-core";
72978
73483
  *
72979
- * // Display the standard browser dialog
72980
- * settings.confirmActionAsync = () => {
72981
- * return false;
72982
- * }
73484
+ * settings.confirmActionAsync("Are you sure?", (confirmed) => {
73485
+ * if (confirmed) {
73486
+ * // ...
73487
+ * // Proceed with the action
73488
+ * // ...
73489
+ * } else {
73490
+ * // ...
73491
+ * // Cancel the action
73492
+ * // ...
73493
+ * }
73494
+ * });
72983
73495
  * ```
73496
+ *
73497
+ * You can redefine the `confirmActionAsync` function if you want to display a custom dialog window. Your function should return `true` to be enabled; otherwise, a survey executes the [`confirmActionFunc`](#confirmActionFunc) function. Pass the dialog result as the `callback` parameter: `true` if a user confirms an action, `false` otherwise.
72984
73498
  * @param message A message to be displayed in the confirm dialog window.
72985
73499
  * @param callback A callback function that should be called with `true` if a user confirms an action or `false` otherwise.
72986
73500
  */
72987
- confirmActionAsync: function (message, callback, applyTitle, locale) {
72988
- return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["showConfirmDialog"])(message, callback, applyTitle, locale);
73501
+ confirmActionAsync: function (message, callback, applyTitle, locale, rootElement) {
73502
+ return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["showConfirmDialog"])(message, callback, applyTitle, locale, rootElement);
72989
73503
  },
72990
73504
  /**
72991
73505
  * A minimum width value for all survey elements.
@@ -74829,7 +75343,7 @@ var SurveyElement = /** @class */ (function (_super) {
74829
75343
  });
74830
75344
  SurveyElement.prototype.isContainsSelection = function (el) {
74831
75345
  var elementWithSelection = undefined;
74832
- if (document["selection"]) {
75346
+ if ((typeof document !== "undefined") && document["selection"]) {
74833
75347
  elementWithSelection = document["selection"].createRange().parentElement();
74834
75348
  }
74835
75349
  else {
@@ -75412,6 +75926,12 @@ var SurveyModel = /** @class */ (function (_super) {
75412
75926
  * @see getResult
75413
75927
  */
75414
75928
  _this.onGetResult = _this.addEvent();
75929
+ /**
75930
+ * An event that is raised when Survey Creator opens a dialog window for users to select files.
75931
+ * @see onUploadFile
75932
+ * @see uploadFiles
75933
+ */
75934
+ _this.onOpenFileChooser = _this.addEvent();
75415
75935
  /**
75416
75936
  * An event that is raised when a File Upload or Signature Pad question starts to upload a file. Applies only if [`storeDataAsText`](https://surveyjs.io/form-library/documentation/api-reference/file-model#storeDataAsText) is `false`. Use this event to upload files to your server.
75417
75937
  *
@@ -75985,6 +76505,7 @@ var SurveyModel = /** @class */ (function (_super) {
75985
76505
  component: "sv-action-bar",
75986
76506
  data: _this.navigationBar
75987
76507
  });
76508
+ _this.locTitle.onStringChanged.add(function () { return _this.titleIsEmpty = _this.locTitle.isEmpty; });
75988
76509
  return _this;
75989
76510
  }
75990
76511
  Object.defineProperty(SurveyModel, "cssType", {
@@ -77283,7 +77804,7 @@ var SurveyModel = /** @class */ (function (_super) {
77283
77804
  get: function () {
77284
77805
  if (this.isDesignMode)
77285
77806
  return this.isPropertyVisible("title");
77286
- return !this.locTitle.isEmpty && this.showTitle;
77807
+ return !this.titleIsEmpty && this.showTitle;
77287
77808
  },
77288
77809
  enumerable: false,
77289
77810
  configurable: true
@@ -79079,7 +79600,7 @@ var SurveyModel = /** @class */ (function (_super) {
79079
79600
  });
79080
79601
  Object.defineProperty(SurveyModel.prototype, "isDisplayMode", {
79081
79602
  get: function () {
79082
- return this.mode == "display" || this.state == "preview";
79603
+ return this.mode == "display" && !this.isDesignMode || this.state == "preview";
79083
79604
  },
79084
79605
  enumerable: false,
79085
79606
  configurable: true
@@ -80350,7 +80871,7 @@ var SurveyModel = /** @class */ (function (_super) {
80350
80871
  .append(this.css.root)
80351
80872
  .append(this.css.rootMobile, this.isMobile)
80352
80873
  .append(this.css.rootAnimationDisabled, !_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].animationEnabled)
80353
- .append(this.css.rootReadOnly, this.mode === "display")
80874
+ .append(this.css.rootReadOnly, this.mode === "display" && !this.isDesignMode)
80354
80875
  .append(this.css.rootCompact, this.isCompact)
80355
80876
  .append(this.css.rootFitToContainer, this.fitToContainer)
80356
80877
  .toString();
@@ -80730,6 +81251,26 @@ var SurveyModel = /** @class */ (function (_super) {
80730
81251
  _survey_element__WEBPACK_IMPORTED_MODULE_3__["SurveyElement"].ScrollElementToTop(options.elementId, scrollIfVisible);
80731
81252
  }
80732
81253
  };
81254
+ /**
81255
+ * Opens a dialog window for users to select files.
81256
+ * @param input A [file input HTML element](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement).
81257
+ * @param callback A callback function that you can use to process selected files. Accepts an array of JavaScript <a href="https://developer.mozilla.org/en-US/docs/Web/API/File" target="_blank">File</a> objects.
81258
+ * @see onOpenFileChooser
81259
+ * @see onUploadFile
81260
+ */
81261
+ SurveyModel.prototype.chooseFiles = function (input, callback, context) {
81262
+ if (this.onOpenFileChooser.isEmpty) {
81263
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_15__["chooseFiles"])(input, callback);
81264
+ }
81265
+ else {
81266
+ this.onOpenFileChooser.fire(this, {
81267
+ input: input,
81268
+ element: context && context.element || this.survey,
81269
+ item: context && context.item,
81270
+ callback: callback
81271
+ });
81272
+ }
81273
+ };
80733
81274
  /**
80734
81275
  * Uploads files to a server.
80735
81276
  *
@@ -81648,6 +82189,7 @@ var SurveyModel = /** @class */ (function (_super) {
81648
82189
  this.updateRenderBackgroundImage();
81649
82190
  this.updateCurrentPage();
81650
82191
  this.hasDescription = !!this.description;
82192
+ this.titleIsEmpty = this.locTitle.isEmpty;
81651
82193
  this.setCalculatedWidthModeUpdater();
81652
82194
  };
81653
82195
  SurveyModel.prototype.updateNavigationCss = function () {
@@ -83070,6 +83612,9 @@ var SurveyModel = /** @class */ (function (_super) {
83070
83612
  if (isStrCiEqual(this.showProgressBar, "aboveHeader")) {
83071
83613
  isBelowHeader = false;
83072
83614
  }
83615
+ if (isStrCiEqual(this.showProgressBar, "belowHeader")) {
83616
+ isBelowHeader = true;
83617
+ }
83073
83618
  if (container === "header" && !isBelowHeader) {
83074
83619
  layoutElement.index = -150;
83075
83620
  if (this.isShowProgressBarOnTop && !this.isShowStartingPage) {
@@ -83269,6 +83814,9 @@ var SurveyModel = /** @class */ (function (_super) {
83269
83814
  __decorate([
83270
83815
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
83271
83816
  ], SurveyModel.prototype, "lazyRenderingFirstBatchSizeValue", void 0);
83817
+ __decorate([
83818
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: true })
83819
+ ], SurveyModel.prototype, "titleIsEmpty", void 0);
83272
83820
  __decorate([
83273
83821
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: {} })
83274
83822
  ], SurveyModel.prototype, "cssVariables", void 0);
@@ -83405,7 +83953,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
83405
83953
  default: "bottom",
83406
83954
  choices: ["none", "top", "bottom", "both"],
83407
83955
  },
83408
- { name: "showPrevButton:boolean", default: true },
83956
+ {
83957
+ name: "showPrevButton:boolean",
83958
+ default: true,
83959
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none"; }
83960
+ },
83409
83961
  { name: "showTitle:boolean", default: true },
83410
83962
  { name: "showPageTitles:boolean", default: true },
83411
83963
  { name: "showCompletedPage:boolean", default: true },
@@ -83456,9 +84008,19 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
83456
84008
  "requiredQuestions",
83457
84009
  "correctQuestions",
83458
84010
  ],
84011
+ visibleIf: function (obj) { return obj.showProgressBar !== "off"; }
84012
+ },
84013
+ {
84014
+ name: "progressBarShowPageTitles:switch",
84015
+ category: "navigation",
84016
+ visibleIf: function (obj) { return obj.showProgressBar !== "off" && obj.progressBarType === "pages"; }
84017
+ },
84018
+ {
84019
+ name: "progressBarShowPageNumbers:switch",
84020
+ default: false,
84021
+ category: "navigation",
84022
+ visibleIf: function (obj) { return obj.showProgressBar !== "off" && obj.progressBarType === "pages"; }
83459
84023
  },
83460
- { name: "progressBarShowPageTitles:switch", category: "navigation" },
83461
- { name: "progressBarShowPageNumbers:switch", default: false, category: "navigation" },
83462
84024
  {
83463
84025
  name: "showTOC:switch",
83464
84026
  default: false
@@ -83498,12 +84060,36 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
83498
84060
  },
83499
84061
  { name: "autoGrowComment:boolean", default: false },
83500
84062
  { name: "allowResizeComment:boolean", default: true },
83501
- { name: "startSurveyText", serializationProperty: "locStartSurveyText" },
83502
- { name: "pagePrevText", serializationProperty: "locPagePrevText" },
83503
- { name: "pageNextText", serializationProperty: "locPageNextText" },
83504
- { name: "completeText", serializationProperty: "locCompleteText" },
83505
- { name: "previewText", serializationProperty: "locPreviewText" },
83506
- { name: "editText", serializationProperty: "locEditText" },
84063
+ {
84064
+ name: "startSurveyText",
84065
+ serializationProperty: "locStartSurveyText",
84066
+ visibleIf: function (obj) { return obj.firstPageIsStarted; }
84067
+ },
84068
+ {
84069
+ name: "pagePrevText",
84070
+ serializationProperty: "locPagePrevText",
84071
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none" && obj.showPrevButton; }
84072
+ },
84073
+ {
84074
+ name: "pageNextText",
84075
+ serializationProperty: "locPageNextText",
84076
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none"; }
84077
+ },
84078
+ {
84079
+ name: "completeText",
84080
+ serializationProperty: "locCompleteText",
84081
+ visibleIf: function (obj) { return obj.showNavigationButtons !== "none"; }
84082
+ },
84083
+ {
84084
+ name: "previewText",
84085
+ serializationProperty: "locPreviewText",
84086
+ visibleIf: function (obj) { return obj.showPreviewBeforeComplete !== "noPreview"; }
84087
+ },
84088
+ {
84089
+ name: "editText",
84090
+ serializationProperty: "locEditText",
84091
+ visibleIf: function (obj) { return obj.showPreviewBeforeComplete !== "noPreview"; }
84092
+ },
83507
84093
  { name: "requiredText", default: "*" },
83508
84094
  {
83509
84095
  name: "questionStartIndex",
@@ -83536,7 +84122,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
83536
84122
  {
83537
84123
  name: "questionsOnPageMode",
83538
84124
  default: "standard",
83539
- choices: ["singlePage", "standard", "questionPerPage"],
84125
+ choices: ["standard", "singlePage", "questionPerPage"],
83540
84126
  },
83541
84127
  {
83542
84128
  name: "showPreviewBeforeComplete",
@@ -83553,7 +84139,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
83553
84139
  {
83554
84140
  name: "showTimerPanelMode",
83555
84141
  default: "all",
83556
- choices: ["all", "page", "survey"],
84142
+ choices: ["page", "survey", "all"],
83557
84143
  },
83558
84144
  {
83559
84145
  name: "widthMode",
@@ -83561,7 +84147,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
83561
84147
  choices: ["auto", "static", "responsive"],
83562
84148
  },
83563
84149
  { name: "width", visibleIf: function (obj) { return obj.widthMode === "static"; } },
83564
- { name: "fitToContainer:boolean", default: false },
84150
+ { name: "fitToContainer:boolean", default: true, visible: false },
83565
84151
  { name: "headerView", default: "basic", choices: ["basic", "advanced"], visible: false },
83566
84152
  { name: "backgroundImage:file", visible: false },
83567
84153
  { name: "backgroundImageFit", default: "cover", choices: ["auto", "contain", "cover"], visible: false },
@@ -84242,6 +84828,8 @@ var SvgIconRegistry = /** @class */ (function () {
84242
84828
  };
84243
84829
  SvgIconRegistry.prototype.registerIconFromSvgViaElement = function (iconId, iconSvg, iconPrefix) {
84244
84830
  if (iconPrefix === void 0) { iconPrefix = this.iconPrefix; }
84831
+ if (typeof document === "undefined")
84832
+ return;
84245
84833
  iconId = this.processId(iconId, iconPrefix);
84246
84834
  var divSvg = document.createElement("div");
84247
84835
  divSvg.innerHTML = iconSvg;
@@ -85931,7 +86519,7 @@ var VerticalResponsivityManager = /** @class */ (function (_super) {
85931
86519
  /*!****************************!*\
85932
86520
  !*** ./src/utils/utils.ts ***!
85933
86521
  \****************************/
85934
- /*! exports provided: unwrap, getRenderedSize, getRenderedStyleSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, showConfirmDialog, mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild */
86522
+ /*! exports provided: unwrap, getRenderedSize, getRenderedStyleSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, showConfirmDialog, mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, chooseFiles */
85935
86523
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
85936
86524
 
85937
86525
  "use strict";
@@ -85970,6 +86558,7 @@ __webpack_require__.r(__webpack_exports__);
85970
86558
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "preventDefaults", function() { return preventDefaults; });
85971
86559
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findParentByClassNames", function() { return findParentByClassNames; });
85972
86560
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFirstVisibleChild", function() { return getFirstVisibleChild; });
86561
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return chooseFiles; });
85973
86562
  /* harmony import */ var _localizablestring__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../localizablestring */ "./src/localizablestring.ts");
85974
86563
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../settings */ "./src/settings.ts");
85975
86564
  /* harmony import */ var _surveyStrings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../surveyStrings */ "./src/surveyStrings.ts");
@@ -85994,7 +86583,7 @@ function confirmAction(message) {
85994
86583
  return _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionFunc(message);
85995
86584
  return confirm(message);
85996
86585
  }
85997
- function confirmActionAsync(message, funcOnYes, funcOnNo, locale) {
86586
+ function confirmActionAsync(message, funcOnYes, funcOnNo, locale, rootElement) {
85998
86587
  var callbackFunc = function (res) {
85999
86588
  if (res)
86000
86589
  funcOnYes();
@@ -86002,7 +86591,7 @@ function confirmActionAsync(message, funcOnYes, funcOnNo, locale) {
86002
86591
  funcOnNo();
86003
86592
  };
86004
86593
  if (!!_settings__WEBPACK_IMPORTED_MODULE_1__["settings"] && !!_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync) {
86005
- if (_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync(message, callbackFunc, undefined, locale))
86594
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync(message, callbackFunc, undefined, locale, rootElement))
86006
86595
  return;
86007
86596
  }
86008
86597
  callbackFunc(confirmAction(message));
@@ -86351,7 +86940,7 @@ var Logger = /** @class */ (function () {
86351
86940
  return Logger;
86352
86941
  }());
86353
86942
 
86354
- function showConfirmDialog(message, callback, applyTitle, locale) {
86943
+ function showConfirmDialog(message, callback, applyTitle, locale, rootElement) {
86355
86944
  var locStr = new _localizablestring__WEBPACK_IMPORTED_MODULE_0__["LocalizableString"](undefined);
86356
86945
  var popupViewModel = _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].showDialog({
86357
86946
  componentName: "sv-string-viewer",
@@ -86368,7 +86957,7 @@ function showConfirmDialog(message, callback, applyTitle, locale) {
86368
86957
  displayMode: "popup",
86369
86958
  isFocusedContent: false,
86370
86959
  cssClass: "sv-popup--confirm-delete"
86371
- }, /*settings.rootElement*/ document.body); //TODO survey root
86960
+ }, rootElement);
86372
86961
  var toolbar = popupViewModel.footerToolbar;
86373
86962
  var applyBtn = toolbar.getActionById("apply");
86374
86963
  var cancelBtn = toolbar.getActionById("cancel");
@@ -86379,6 +86968,23 @@ function showConfirmDialog(message, callback, applyTitle, locale) {
86379
86968
  popupViewModel.width = "452px";
86380
86969
  return true;
86381
86970
  }
86971
+ function chooseFiles(input, callback) {
86972
+ if (!window || !window["FileReader"])
86973
+ return;
86974
+ input.value = "";
86975
+ input.onchange = function (event) {
86976
+ if (!window["FileReader"])
86977
+ return;
86978
+ if (!input || !input.files || input.files.length < 1)
86979
+ return;
86980
+ var files = [];
86981
+ for (var i = 0; i < input.files.length; i++) {
86982
+ files.push(input.files[i]);
86983
+ }
86984
+ callback(files);
86985
+ };
86986
+ input.click();
86987
+ }
86382
86988
 
86383
86989
 
86384
86990