survey-react 1.9.126 → 1.9.128

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.126
2
+ * surveyjs - Survey JavaScript library v1.9.128
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
  */
@@ -2041,8 +2041,8 @@ var Base = /** @class */ (function () {
2041
2041
  * Returns a JSON object that corresponds to the current SurveyJS object.
2042
2042
  * @see fromJSON
2043
2043
  */
2044
- Base.prototype.toJSON = function () {
2045
- return new _jsonobject__WEBPACK_IMPORTED_MODULE_2__["JsonObject"]().toJsonObject(this);
2044
+ Base.prototype.toJSON = function (options) {
2045
+ return new _jsonobject__WEBPACK_IMPORTED_MODULE_2__["JsonObject"]().toJsonObject(this, options);
2046
2046
  };
2047
2047
  /**
2048
2048
  * Assigns a new configuration to the current SurveyJS object. This configuration is taken from a passed JSON object.
@@ -5366,6 +5366,7 @@ var surveyCss = {
5366
5366
  var defaultV2Css = {
5367
5367
  root: "sd-root-modern",
5368
5368
  rootMobile: "sd-root-modern--mobile",
5369
+ rootAnimationDisabled: "sd-root-modern--animation-disabled",
5369
5370
  rootReadOnly: "sd-root--readonly",
5370
5371
  rootCompact: "sd-root--compact",
5371
5372
  rootFitToContainer: "sd-root-modern--full-container",
@@ -5483,8 +5484,13 @@ var defaultV2Css = {
5483
5484
  progressBottom: "sd-body__progress--bottom",
5484
5485
  progressBar: "sd-progress__bar",
5485
5486
  progressText: "sd-progress__text",
5487
+ progressButtonsRoot: "sd-progress-buttons",
5488
+ progressButtonsNumbered: "sd-progress-buttons--numbered",
5486
5489
  progressButtonsContainerCenter: "sd-progress-buttons__container-center",
5487
5490
  progressButtonsContainer: "sd-progress-buttons__container",
5491
+ progressButtonsConnector: "sd-progress-buttons__connector",
5492
+ progressButtonsHeader: "sd-progress-buttons__header",
5493
+ progressButtonsFooter: "sd-progress-buttons__footer",
5488
5494
  progressButtonsImageButtonLeft: "sd-progress-buttons__image-button-left",
5489
5495
  progressButtonsImageButtonRight: "sd-progress-buttons__image-button-right",
5490
5496
  progressButtonsImageButtonHidden: "sd-progress-buttons__image-button--hidden",
@@ -5674,6 +5680,7 @@ var defaultV2Css = {
5674
5680
  small: "sd-row__question--small",
5675
5681
  controlDisabled: "sd-input--disabled",
5676
5682
  constrolWithCharacterCounter: "sd-text__character-counter",
5683
+ characterCounterBig: "sd-text__character-counter--big",
5677
5684
  content: "sd-text__content sd-question__content",
5678
5685
  remainingCharacterCounter: "sd-remaining-character-counter",
5679
5686
  onError: "sd-input--error"
@@ -5828,6 +5835,7 @@ var defaultV2Css = {
5828
5835
  noHeader: "sd-table--no-header",
5829
5836
  hasFooter: "sd-table--has-footer",
5830
5837
  tableWrapper: "sd-table-wrapper",
5838
+ rootAlternateRows: "sd-table--alternate-rows",
5831
5839
  content: "sd-matrixdynamic__content sd-question__content",
5832
5840
  cell: "sd-table__cell",
5833
5841
  row: "sd-table__row",
@@ -5874,7 +5882,7 @@ var defaultV2Css = {
5874
5882
  rating: {
5875
5883
  rootDropdown: "sd-scrollable-container sd-scrollable-container--compact sd-selectbase",
5876
5884
  root: "sd-scrollable-container sd-rating",
5877
- rootWrappable: "sd-scrollable-container sd-rating sd-rating--wrappable",
5885
+ rootWrappable: "sd-rating--wrappable",
5878
5886
  rootLabelsTop: "sd-rating--labels-top",
5879
5887
  rootLabelsBottom: "sd-rating--labels-bottom",
5880
5888
  rootLabelsDiagonal: "sd-rating--labels-diagonal",
@@ -7765,17 +7773,20 @@ var DragDropRankingSelectToRank = /** @class */ (function (_super) {
7765
7773
  var rankingChoices = questionModel.rankingChoices;
7766
7774
  var unRankingChoices = questionModel.unRankingChoices;
7767
7775
  var item = unRankingChoices[fromIndex];
7776
+ questionModel.isValueSetByUser = true;
7768
7777
  rankingChoices.splice(toIndex, 0, item);
7769
7778
  questionModel.setPropertyValue("rankingChoices", rankingChoices);
7770
7779
  };
7771
7780
  DragDropRankingSelectToRank.prototype.unselectFromRank = function (questionModel, fromIndex, toIndex) {
7772
7781
  var rankingChoices = questionModel.rankingChoices;
7782
+ questionModel.isValueSetByUser = true;
7773
7783
  rankingChoices.splice(fromIndex, 1);
7774
7784
  questionModel.setPropertyValue("rankingChoices", rankingChoices);
7775
7785
  };
7776
7786
  DragDropRankingSelectToRank.prototype.reorderRankedItem = function (questionModel, fromIndex, toIndex) {
7777
7787
  var rankingChoices = questionModel.rankingChoices;
7778
7788
  var item = rankingChoices[fromIndex];
7789
+ questionModel.isValueSetByUser = true;
7779
7790
  rankingChoices.splice(fromIndex, 1);
7780
7791
  rankingChoices.splice(toIndex, 0, item);
7781
7792
  questionModel.setPropertyValue("rankingChoices", rankingChoices);
@@ -7803,9 +7814,10 @@ __webpack_require__.r(__webpack_exports__);
7803
7814
  /* harmony import */ var _list__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./list */ "./src/list.ts");
7804
7815
  /* harmony import */ var _popup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./popup */ "./src/popup.ts");
7805
7816
  /* harmony import */ var _question_dropdown__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./question_dropdown */ "./src/question_dropdown.ts");
7806
- /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
7807
- /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/devices */ "./src/utils/devices.ts");
7808
- /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
7817
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
7818
+ /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
7819
+ /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/devices */ "./src/utils/devices.ts");
7820
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
7809
7821
  var __extends = (undefined && undefined.__extends) || (function () {
7810
7822
  var extendStatics = function (d, b) {
7811
7823
  extendStatics = Object.setPrototypeOf ||
@@ -7836,6 +7848,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
7836
7848
 
7837
7849
 
7838
7850
 
7851
+
7839
7852
  var DropdownListModel = /** @class */ (function (_super) {
7840
7853
  __extends(DropdownListModel, _super);
7841
7854
  function DropdownListModel(question, onSelectionChanged) {
@@ -7845,6 +7858,7 @@ var DropdownListModel = /** @class */ (function (_super) {
7845
7858
  _this.minPageSize = 25;
7846
7859
  _this.loadingItemHeight = 40;
7847
7860
  _this._markdownMode = false;
7861
+ _this.filteredItems = undefined;
7848
7862
  _this.selectedItemSelector = ".sv-list__item--selected";
7849
7863
  _this.itemSelector = ".sv-list__item";
7850
7864
  _this.itemsSettings = { skip: 0, take: 0, totalCount: 0, items: [] };
@@ -7875,7 +7889,7 @@ var DropdownListModel = /** @class */ (function (_super) {
7875
7889
  configurable: true
7876
7890
  });
7877
7891
  DropdownListModel.prototype.getFocusFirstInputSelector = function () {
7878
- if (_utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"]) {
7892
+ if (_utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"]) {
7879
7893
  return this.isValueEmpty(this.question.value) ? this.itemSelector : this.selectedItemSelector;
7880
7894
  }
7881
7895
  else {
@@ -7924,11 +7938,11 @@ var DropdownListModel = /** @class */ (function (_super) {
7924
7938
  DropdownListModel.prototype.createPopup = function () {
7925
7939
  var _this = this;
7926
7940
  this._popupModel = new _popup__WEBPACK_IMPORTED_MODULE_4__["PopupModel"]("sv-list", { model: this.listModel }, "bottom", "center", false);
7927
- this._popupModel.displayMode = _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"] ? "overlay" : "popup";
7941
+ this._popupModel.displayMode = _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"] ? "overlay" : "popup";
7928
7942
  this._popupModel.positionMode = "fixed";
7929
7943
  this._popupModel.isFocusedContainer = false;
7930
- this._popupModel.isFocusedContent = _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"];
7931
- this._popupModel.setWidthByTarget = !_utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"];
7944
+ this._popupModel.isFocusedContent = _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"];
7945
+ this._popupModel.setWidthByTarget = !_utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"];
7932
7946
  this.updatePopupFocusFirstInputSelector();
7933
7947
  this.listModel.registerPropertyChangedHandlers(["showFilter"], function () {
7934
7948
  _this.updatePopupFocusFirstInputSelector();
@@ -7997,6 +8011,14 @@ var DropdownListModel = /** @class */ (function (_super) {
7997
8011
  };
7998
8012
  }
7999
8013
  var res = new _list__WEBPACK_IMPORTED_MODULE_3__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
8014
+ res.setOnTextSearchCallback(function (item, textToSearch) {
8015
+ if (_this.filteredItems)
8016
+ return _this.filteredItems.indexOf(item) >= 0;
8017
+ var textInLow = item.text.toLocaleLowerCase();
8018
+ textInLow = _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].comparator.normalizeTextCallback(textInLow, "filter");
8019
+ var index = textInLow.indexOf(textToSearch.toLocaleLowerCase());
8020
+ return _this.question.searchMode == "startsWith" ? index == 0 : index > -1;
8021
+ });
8000
8022
  res.renderElements = false;
8001
8023
  res.forceShowFilter = true;
8002
8024
  res.areSameItemsCallback = function (item1, item2) {
@@ -8016,7 +8038,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8016
8038
  model.isAllDataLoaded = !this.question.choicesLazyLoadEnabled;
8017
8039
  };
8018
8040
  DropdownListModel.prototype.updateCssClasses = function (popupCssClass, listCssClasses) {
8019
- this.popupModel.cssClass = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]().append(popupCssClass).append(this.popupCssClasses).toString();
8041
+ this.popupModel.cssClass = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_7__["CssClassBuilder"]().append(popupCssClass).append(this.popupCssClasses).toString();
8020
8042
  this.listModel.cssClasses = listCssClasses;
8021
8043
  };
8022
8044
  DropdownListModel.prototype.resetFilterString = function () {
@@ -8031,8 +8053,12 @@ var DropdownListModel = /** @class */ (function (_super) {
8031
8053
  };
8032
8054
  DropdownListModel.prototype.onSetFilterString = function () {
8033
8055
  var _this = this;
8056
+ this.filteredItems = undefined;
8034
8057
  if (!this.filterString && !this.popupModel.isVisible)
8035
8058
  return;
8059
+ var options = { question: this.question, choices: this.getAvailableItems(), filter: this.filterString, filteredChoices: undefined };
8060
+ this.question.survey.onChoicesSearch.fire(this.question.survey, options);
8061
+ this.filteredItems = options.filteredChoices;
8036
8062
  if (!!this.filterString && !this.popupModel.isVisible) {
8037
8063
  this.popupModel.isVisible = true;
8038
8064
  }
@@ -8207,14 +8233,14 @@ var DropdownListModel = /** @class */ (function (_super) {
8207
8233
  });
8208
8234
  Object.defineProperty(DropdownListModel.prototype, "inputMode", {
8209
8235
  get: function () {
8210
- return _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"] ? "none" : "text";
8236
+ return _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"] ? "none" : "text";
8211
8237
  },
8212
8238
  enumerable: false,
8213
8239
  configurable: true
8214
8240
  });
8215
8241
  DropdownListModel.prototype.setSearchEnabled = function (newValue) {
8216
- this.listModel.searchEnabled = _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"];
8217
- this.listModel.showSearchClearButton = _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"];
8242
+ this.listModel.searchEnabled = _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"];
8243
+ this.listModel.showSearchClearButton = _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"];
8218
8244
  this.searchEnabled = newValue;
8219
8245
  };
8220
8246
  DropdownListModel.prototype.updateItems = function () {
@@ -8353,7 +8379,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8353
8379
  if (event.keyCode === 32 && this.question.searchEnabled) {
8354
8380
  return;
8355
8381
  }
8356
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_8__["doKey2ClickUp"])(event, { processEsc: false, disableTabStop: this.question.isInputReadOnly });
8382
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["doKey2ClickUp"])(event, { processEsc: false, disableTabStop: this.question.isInputReadOnly });
8357
8383
  }
8358
8384
  };
8359
8385
  DropdownListModel.prototype.onEscape = function () {
@@ -8368,11 +8394,11 @@ var DropdownListModel = /** @class */ (function (_super) {
8368
8394
  };
8369
8395
  DropdownListModel.prototype.onBlur = function (event) {
8370
8396
  this.focused = false;
8371
- if (this.popupModel.isVisible && _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"]) {
8397
+ if (this.popupModel.isVisible && _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"]) {
8372
8398
  this._popupModel.isVisible = true;
8373
8399
  return;
8374
8400
  }
8375
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_8__["doKey2ClickBlur"])(event);
8401
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["doKey2ClickBlur"])(event);
8376
8402
  this._popupModel.isVisible = false;
8377
8403
  this.resetFilterString();
8378
8404
  this.inputString = null;
@@ -9004,7 +9030,7 @@ __webpack_require__.r(__webpack_exports__);
9004
9030
  /*!*************************************!*\
9005
9031
  !*** ./src/entries/chunks/model.ts ***!
9006
9032
  \*************************************/
9007
- /*! 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, SurveyProgressButtonsModel, 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 */
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 */
9008
9034
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9009
9035
 
9010
9036
  "use strict";
@@ -9320,8 +9346,10 @@ __webpack_require__.r(__webpack_exports__);
9320
9346
  /* harmony import */ var _surveyProgress__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../../surveyProgress */ "./src/surveyProgress.ts");
9321
9347
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressModel", function() { return _surveyProgress__WEBPACK_IMPORTED_MODULE_56__["SurveyProgressModel"]; });
9322
9348
 
9323
- /* harmony import */ var _surveyProgressButtons__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../../surveyProgressButtons */ "./src/surveyProgressButtons.ts");
9324
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtonsModel", function() { return _surveyProgressButtons__WEBPACK_IMPORTED_MODULE_57__["SurveyProgressButtonsModel"]; });
9349
+ /* harmony import */ var _progress_buttons__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../../progress-buttons */ "./src/progress-buttons.ts");
9350
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtons", function() { return _progress_buttons__WEBPACK_IMPORTED_MODULE_57__["ProgressButtons"]; });
9351
+
9352
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtonsResponsivityManager", function() { return _progress_buttons__WEBPACK_IMPORTED_MODULE_57__["ProgressButtonsResponsivityManager"]; });
9325
9353
 
9326
9354
  /* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../../themes */ "./src/themes.ts");
9327
9355
  /* empty/unused harmony star reexport *//* harmony import */ var _survey__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../../survey */ "./src/survey.ts");
@@ -9479,8 +9507,8 @@ __webpack_require__.r(__webpack_exports__);
9479
9507
  //import "../../modern.scss";
9480
9508
  var Version;
9481
9509
  var ReleaseDate;
9482
- Version = "" + "1.9.126";
9483
- ReleaseDate = "" + "2024-01-16";
9510
+ Version = "" + "1.9.128";
9511
+ ReleaseDate = "" + "2024-01-30";
9484
9512
  function checkLibraryVersion(ver, libraryName) {
9485
9513
  if (Version != ver) {
9486
9514
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9655,7 +9683,7 @@ function checkPrefix(prefix) {
9655
9683
  /*!**************************************!*\
9656
9684
  !*** ./src/entries/core-wo-model.ts ***!
9657
9685
  \**************************************/
9658
- /*! 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, SurveyProgressButtonsModel, 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 */
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 */
9659
9687
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9660
9688
 
9661
9689
  "use strict";
@@ -9921,7 +9949,9 @@ __webpack_require__.r(__webpack_exports__);
9921
9949
 
9922
9950
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressModel"]; });
9923
9951
 
9924
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtonsModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressButtonsModel"]; });
9952
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtons", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["ProgressButtons"]; });
9953
+
9954
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtonsResponsivityManager", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["ProgressButtonsResponsivityManager"]; });
9925
9955
 
9926
9956
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["SurveyModel"]; });
9927
9957
 
@@ -10118,7 +10148,7 @@ __webpack_require__.r(__webpack_exports__);
10118
10148
  /*!*****************************!*\
10119
10149
  !*** ./src/entries/core.ts ***!
10120
10150
  \*****************************/
10121
- /*! 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, SurveyProgressButtonsModel, 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 */
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 */
10122
10152
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10123
10153
 
10124
10154
  "use strict";
@@ -10384,7 +10414,9 @@ __webpack_require__.r(__webpack_exports__);
10384
10414
 
10385
10415
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressModel"]; });
10386
10416
 
10387
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtonsModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressButtonsModel"]; });
10417
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtons", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["ProgressButtons"]; });
10418
+
10419
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtonsResponsivityManager", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["ProgressButtonsResponsivityManager"]; });
10388
10420
 
10389
10421
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["SurveyModel"]; });
10390
10422
 
@@ -10750,14 +10782,14 @@ __webpack_require__.r(__webpack_exports__);
10750
10782
  /* harmony import */ var _react_reactquestion_paneldynamic__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ../react/reactquestion_paneldynamic */ "./src/react/reactquestion_paneldynamic.tsx");
10751
10783
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionPanelDynamic", function() { return _react_reactquestion_paneldynamic__WEBPACK_IMPORTED_MODULE_39__["SurveyQuestionPanelDynamic"]; });
10752
10784
 
10753
- /* harmony import */ var _react_reactSurveyProgress__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ../react/reactSurveyProgress */ "./src/react/reactSurveyProgress.tsx");
10754
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgress", function() { return _react_reactSurveyProgress__WEBPACK_IMPORTED_MODULE_40__["SurveyProgress"]; });
10785
+ /* harmony import */ var _react_progress__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ../react/progress */ "./src/react/progress.tsx");
10786
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgress", function() { return _react_progress__WEBPACK_IMPORTED_MODULE_40__["SurveyProgress"]; });
10755
10787
 
10756
- /* harmony import */ var _react_reactSurveyProgressButtons__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../react/reactSurveyProgressButtons */ "./src/react/reactSurveyProgressButtons.tsx");
10757
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtons", function() { return _react_reactSurveyProgressButtons__WEBPACK_IMPORTED_MODULE_41__["SurveyProgressButtons"]; });
10788
+ /* harmony import */ var _react_progressButtons__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../react/progressButtons */ "./src/react/progressButtons.tsx");
10789
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtons", function() { return _react_progressButtons__WEBPACK_IMPORTED_MODULE_41__["SurveyProgressButtons"]; });
10758
10790
 
10759
- /* harmony import */ var _react_reactSurveyProgressToc__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ../react/reactSurveyProgressToc */ "./src/react/reactSurveyProgressToc.tsx");
10760
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressToc", function() { return _react_reactSurveyProgressToc__WEBPACK_IMPORTED_MODULE_42__["SurveyProgressToc"]; });
10791
+ /* harmony import */ var _react_progressToc__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ../react/progressToc */ "./src/react/progressToc.tsx");
10792
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressToc", function() { return _react_progressToc__WEBPACK_IMPORTED_MODULE_42__["SurveyProgressToc"]; });
10761
10793
 
10762
10794
  /* harmony import */ var _react_reactquestion_rating__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ../react/reactquestion_rating */ "./src/react/reactquestion_rating.tsx");
10763
10795
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionRating", function() { return _react_reactquestion_rating__WEBPACK_IMPORTED_MODULE_43__["SurveyQuestionRating"]; });
@@ -10973,7 +11005,7 @@ __webpack_require__.r(__webpack_exports__);
10973
11005
  /*!******************************!*\
10974
11006
  !*** ./src/entries/react.ts ***!
10975
11007
  \******************************/
10976
- /*! 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, SurveyProgressButtonsModel, 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 */
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 */
10977
11009
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10978
11010
 
10979
11011
  "use strict";
@@ -11239,7 +11271,9 @@ __webpack_require__.r(__webpack_exports__);
11239
11271
 
11240
11272
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressModel"]; });
11241
11273
 
11242
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtonsModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressButtonsModel"]; });
11274
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtons", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["ProgressButtons"]; });
11275
+
11276
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtonsResponsivityManager", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["ProgressButtonsResponsivityManager"]; });
11243
11277
 
11244
11278
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["SurveyModel"]; });
11245
11279
 
@@ -17283,6 +17317,27 @@ var Helpers = /** @class */ (function () {
17283
17317
  }
17284
17318
  return val;
17285
17319
  };
17320
+ Helpers.compareVerions = function (ver1, ver2) {
17321
+ if (!ver1 && !ver2)
17322
+ return 0;
17323
+ var ver1Ar = ver1.split(".");
17324
+ var ver2Ar = ver2.split(".");
17325
+ var len1 = ver1Ar.length;
17326
+ var len2 = ver2Ar.length;
17327
+ for (var i = 0; i < len1 && i < len2; i++) {
17328
+ var str1 = ver1Ar[i];
17329
+ var str2 = ver2Ar[i];
17330
+ if (str1.length === str2.length) {
17331
+ if (str1 !== str2) {
17332
+ return str1 < str2 ? -1 : 1;
17333
+ }
17334
+ }
17335
+ else {
17336
+ return str1.length < str2.length ? -1 : 1;
17337
+ }
17338
+ }
17339
+ return len1 === len2 ? 0 : (len1 < len2 ? -1 : 1);
17340
+ };
17286
17341
  return Helpers;
17287
17342
  }());
17288
17343
 
@@ -19043,8 +19098,15 @@ var JsonObjectProperty = /** @class */ (function () {
19043
19098
  var isLayout = !this.layout || this.layout == layout;
19044
19099
  if (!this.visible || !isLayout)
19045
19100
  return false;
19046
- if (!!this.visibleIf && !!obj)
19101
+ 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
+ }
19047
19108
  return this.visibleIf(obj);
19109
+ }
19048
19110
  return true;
19049
19111
  };
19050
19112
  Object.defineProperty(JsonObjectProperty.prototype, "visible", {
@@ -19057,6 +19119,21 @@ var JsonObjectProperty = /** @class */ (function () {
19057
19119
  enumerable: false,
19058
19120
  configurable: true
19059
19121
  });
19122
+ JsonObjectProperty.prototype.isAvailableInVersion = function (ver) {
19123
+ if (!!this.alternativeName)
19124
+ return true;
19125
+ return this.isAvailableInVersionCore(ver);
19126
+ };
19127
+ JsonObjectProperty.prototype.getSerializedName = function (ver) {
19128
+ if (!this.alternativeName)
19129
+ return this.name;
19130
+ return this.isAvailableInVersionCore(ver) ? this.name : this.alternativeName;
19131
+ };
19132
+ JsonObjectProperty.prototype.isAvailableInVersionCore = function (ver) {
19133
+ if (!ver || !this.version)
19134
+ return true;
19135
+ return _helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].compareVerions(this.version, ver) <= 0;
19136
+ };
19060
19137
  Object.defineProperty(JsonObjectProperty.prototype, "isLocalizable", {
19061
19138
  get: function () {
19062
19139
  return this.isLocalizableValue != null ? this.isLocalizableValue : false;
@@ -19137,6 +19214,7 @@ var JsonObjectProperty = /** @class */ (function () {
19137
19214
  "className",
19138
19215
  "alternativeName",
19139
19216
  "layout",
19217
+ "version",
19140
19218
  "classNamePart",
19141
19219
  "baseClassName",
19142
19220
  "defaultValue",
@@ -19585,6 +19663,9 @@ var JsonMetadataClass = /** @class */ (function () {
19585
19663
  if (propInfo.layout) {
19586
19664
  prop.layout = propInfo.layout;
19587
19665
  }
19666
+ if (propInfo.version) {
19667
+ prop.version = propInfo.version;
19668
+ }
19588
19669
  if (propInfo.dependsOn) {
19589
19670
  this.addDependsOnProperties(prop, propInfo.dependsOn);
19590
19671
  }
@@ -19729,36 +19810,54 @@ var JsonMetadata = /** @class */ (function () {
19729
19810
  JsonMetadata.prototype.getPropertiesByObj = function (obj) {
19730
19811
  if (!obj || !obj.getType)
19731
19812
  return [];
19732
- var res = {};
19733
19813
  var props = this.getProperties(obj.getType());
19734
- for (var i = 0; i < props.length; i++) {
19735
- res[props[i].name] = props[i];
19736
- }
19737
- var dynamicProps = !!obj.getDynamicType
19738
- ? this.getProperties(obj.getDynamicType())
19739
- : null;
19740
- if (dynamicProps && dynamicProps.length > 0) {
19741
- for (var i = 0; i < dynamicProps.length; i++) {
19742
- var dProp = dynamicProps[i];
19743
- if (!!res[dProp.name])
19744
- continue;
19745
- res[dProp.name] = dProp;
19814
+ var dynamicProps = this.getDynamicPropertiesByObj(obj);
19815
+ return [].concat(props).concat(dynamicProps);
19816
+ };
19817
+ JsonMetadata.prototype.addDynamicPropertiesIntoObj = function (dest, src, props) {
19818
+ var _this = this;
19819
+ props.forEach(function (prop) {
19820
+ _this.addDynamicPropertyIntoObj(dest, src, prop.name, false);
19821
+ if (prop.serializationProperty) {
19822
+ _this.addDynamicPropertyIntoObj(dest, src, prop.serializationProperty, true);
19746
19823
  }
19824
+ if (prop.alternativeName) {
19825
+ _this.addDynamicPropertyIntoObj(dest, src, prop.alternativeName, false);
19826
+ }
19827
+ });
19828
+ };
19829
+ JsonMetadata.prototype.addDynamicPropertyIntoObj = function (dest, src, propName, isReadOnly) {
19830
+ var desc = {
19831
+ configurable: true,
19832
+ get: function () {
19833
+ return src[propName];
19834
+ },
19835
+ };
19836
+ if (!isReadOnly) {
19837
+ desc["set"] = function (v) {
19838
+ src[propName] = v;
19839
+ };
19747
19840
  }
19748
- return Object.keys(res).map(function (key) { return res[key]; });
19841
+ Object.defineProperty(dest, propName, desc);
19749
19842
  };
19750
19843
  JsonMetadata.prototype.getDynamicPropertiesByObj = function (obj, dynamicType) {
19751
19844
  if (dynamicType === void 0) { dynamicType = null; }
19752
- if (!obj || !obj.getType || (!obj.getDynamicType && !dynamicType))
19845
+ if (!obj || !obj.getType)
19846
+ return [];
19847
+ if (!!obj.getDynamicProperties)
19848
+ return obj.getDynamicProperties();
19849
+ if (!obj.getDynamicType && !dynamicType)
19753
19850
  return [];
19754
- var objType = obj.getType();
19755
19851
  var dType = !!dynamicType ? dynamicType : obj.getDynamicType();
19756
- if (!dType)
19852
+ return this.getDynamicPropertiesByTypes(obj.getType(), dType);
19853
+ };
19854
+ JsonMetadata.prototype.getDynamicPropertiesByTypes = function (objType, dynamicType, invalidNames) {
19855
+ if (!dynamicType)
19757
19856
  return [];
19758
- var cacheType = dType + "-" + objType;
19857
+ var cacheType = dynamicType + "-" + objType;
19759
19858
  if (this.dynamicPropsCache[cacheType])
19760
19859
  return this.dynamicPropsCache[cacheType];
19761
- var dynamicProps = this.getProperties(dType);
19860
+ var dynamicProps = this.getProperties(dynamicType);
19762
19861
  if (!dynamicProps || dynamicProps.length == 0)
19763
19862
  return [];
19764
19863
  var hash = {};
@@ -19767,9 +19866,11 @@ var JsonMetadata = /** @class */ (function () {
19767
19866
  hash[props[i].name] = props[i];
19768
19867
  }
19769
19868
  var res = [];
19770
- for (var i = 0; i < dynamicProps.length; i++) {
19771
- var dProp = dynamicProps[i];
19772
- if (!hash[dProp.name]) {
19869
+ if (!invalidNames)
19870
+ invalidNames = [];
19871
+ for (var i_1 = 0; i_1 < dynamicProps.length; i_1++) {
19872
+ var dProp = dynamicProps[i_1];
19873
+ if (!hash[dProp.name] && invalidNames.indexOf(dProp.name) < 0) {
19773
19874
  res.push(dProp);
19774
19875
  }
19775
19876
  }
@@ -20264,9 +20365,8 @@ var JsonObject = /** @class */ (function () {
20264
20365
  enumerable: false,
20265
20366
  configurable: true
20266
20367
  });
20267
- JsonObject.prototype.toJsonObject = function (obj, storeDefaults) {
20268
- if (storeDefaults === void 0) { storeDefaults = false; }
20269
- return this.toJsonObjectCore(obj, null, storeDefaults);
20368
+ JsonObject.prototype.toJsonObject = function (obj, options) {
20369
+ return this.toJsonObjectCore(obj, null, options);
20270
20370
  };
20271
20371
  JsonObject.prototype.toObject = function (jsonObj, obj, options) {
20272
20372
  this.toObjectCore(jsonObj, obj, options);
@@ -20315,8 +20415,7 @@ var JsonObject = /** @class */ (function () {
20315
20415
  obj.endLoadingFromJson();
20316
20416
  }
20317
20417
  };
20318
- JsonObject.prototype.toJsonObjectCore = function (obj, property, storeDefaults) {
20319
- if (storeDefaults === void 0) { storeDefaults = false; }
20418
+ JsonObject.prototype.toJsonObjectCore = function (obj, property, options) {
20320
20419
  if (!obj || !obj.getType)
20321
20420
  return obj;
20322
20421
  if (typeof obj.getData === "function")
@@ -20325,61 +20424,67 @@ var JsonObject = /** @class */ (function () {
20325
20424
  if (property != null && !property.className) {
20326
20425
  result[JsonObject.typePropertyName] = property.getObjType(obj.getType());
20327
20426
  }
20328
- this.propertiesToJson(obj, Serializer.getProperties(obj.getType()), result, storeDefaults);
20329
- this.propertiesToJson(obj, this.getDynamicProperties(obj), result, storeDefaults);
20427
+ var storeDefaults = options === true;
20428
+ if (!options || options === true) {
20429
+ options = {};
20430
+ }
20431
+ if (storeDefaults) {
20432
+ options.storeDefaults = storeDefaults;
20433
+ }
20434
+ this.propertiesToJson(obj, Serializer.getProperties(obj.getType()), result, options);
20435
+ this.propertiesToJson(obj, this.getDynamicProperties(obj), result, options);
20330
20436
  return result;
20331
20437
  };
20332
20438
  JsonObject.prototype.getDynamicProperties = function (obj) {
20333
20439
  return Serializer.getDynamicPropertiesByObj(obj);
20334
20440
  };
20335
- JsonObject.prototype.addDynamicProperties = function (obj, jsonObj, properties) {
20336
- if (!obj.getDynamicPropertyName)
20337
- return properties;
20338
- var dynamicPropName = obj.getDynamicPropertyName();
20339
- if (!dynamicPropName)
20340
- return properties;
20341
- if (jsonObj[dynamicPropName]) {
20342
- obj[dynamicPropName] = jsonObj[dynamicPropName];
20343
- }
20344
- var dynamicProperties = this.getDynamicProperties(obj);
20345
- var res = [];
20346
- for (var i = 0; i < properties.length; i++) {
20347
- res.push(properties[i]);
20348
- }
20349
- for (var i = 0; i < dynamicProperties.length; i++) {
20350
- res.push(dynamicProperties[i]);
20441
+ JsonObject.prototype.addDynamicProperties = function (obj, jsonObj, props) {
20442
+ if (!obj.getDynamicPropertyName && !obj.getDynamicProperties)
20443
+ return props;
20444
+ if (obj.getDynamicPropertyName) {
20445
+ var dynamicPropName = obj.getDynamicPropertyName();
20446
+ if (!dynamicPropName)
20447
+ return props;
20448
+ if (dynamicPropName && jsonObj[dynamicPropName]) {
20449
+ obj[dynamicPropName] = jsonObj[dynamicPropName];
20450
+ }
20351
20451
  }
20352
- return res;
20452
+ var dynamicProps = this.getDynamicProperties(obj);
20453
+ return dynamicProps.length === 0 ? props : [].concat(props).concat(dynamicProps);
20353
20454
  };
20354
- JsonObject.prototype.propertiesToJson = function (obj, properties, json, storeDefaults) {
20355
- if (storeDefaults === void 0) { storeDefaults = false; }
20455
+ JsonObject.prototype.propertiesToJson = function (obj, properties, json, options) {
20356
20456
  for (var i = 0; i < properties.length; i++) {
20357
- this.valueToJson(obj, json, properties[i], storeDefaults);
20457
+ this.valueToJson(obj, json, properties[i], options);
20358
20458
  }
20359
20459
  };
20360
- JsonObject.prototype.valueToJson = function (obj, result, property, storeDefaults) {
20361
- if (storeDefaults === void 0) { storeDefaults = false; }
20362
- if (property.isSerializable === false ||
20363
- (property.isLightSerializable === false && this.lightSerializing))
20460
+ JsonObject.prototype.valueToJson = function (obj, result, prop, options) {
20461
+ if (!options)
20462
+ options = {};
20463
+ if (prop.isSerializable === false || (prop.isLightSerializable === false && this.lightSerializing))
20364
20464
  return;
20365
- var value = property.getSerializableValue(obj);
20366
- if (!storeDefaults && property.isDefaultValueByObj(obj, value))
20465
+ if (options.version && !prop.isAvailableInVersion(options.version))
20466
+ return;
20467
+ var value = prop.getSerializableValue(obj);
20468
+ if (!options.storeDefaults && prop.isDefaultValueByObj(obj, value))
20367
20469
  return;
20368
20470
  if (this.isValueArray(value)) {
20369
20471
  var arrValue = [];
20370
20472
  for (var i = 0; i < value.length; i++) {
20371
- arrValue.push(this.toJsonObjectCore(value[i], property, storeDefaults));
20473
+ arrValue.push(this.toJsonObjectCore(value[i], prop, options));
20372
20474
  }
20373
20475
  value = arrValue.length > 0 ? arrValue : null;
20374
20476
  }
20375
20477
  else {
20376
- value = this.toJsonObjectCore(value, property, storeDefaults);
20478
+ value = this.toJsonObjectCore(value, prop, options);
20377
20479
  }
20480
+ if (value === undefined || value === null)
20481
+ return;
20482
+ var name = prop.getSerializedName(options.version);
20378
20483
  var hasValue = typeof obj["getPropertyValue"] === "function" &&
20379
- obj["getPropertyValue"](property.name, null) !== null;
20380
- if ((storeDefaults && hasValue) || !property.isDefaultValueByObj(obj, value)) {
20381
- if (!Serializer.onSerializingProperty || !Serializer.onSerializingProperty(obj, property, value, result)) {
20382
- result[property.name] = value;
20484
+ obj["getPropertyValue"](name, null) !== null;
20485
+ if ((options.storeDefaults && hasValue) || !prop.isDefaultValueByObj(obj, value)) {
20486
+ if (!Serializer.onSerializingProperty || !Serializer.onSerializingProperty(obj, prop, value, result)) {
20487
+ result[name] = this.removePosOnValueToJson(prop, value);
20383
20488
  }
20384
20489
  }
20385
20490
  };
@@ -20419,6 +20524,14 @@ var JsonObject = /** @class */ (function () {
20419
20524
  }
20420
20525
  }
20421
20526
  };
20527
+ JsonObject.prototype.removePosOnValueToJson = function (property, value) {
20528
+ if (!property.isCustom || !value)
20529
+ return value;
20530
+ if (!!value[JsonObject.positionPropertyName]) {
20531
+ delete value[JsonObject.positionPropertyName];
20532
+ }
20533
+ return value;
20534
+ };
20422
20535
  JsonObject.prototype.removePos = function (property, value) {
20423
20536
  if (!property || !property.type || property.type.indexOf("value") < 0)
20424
20537
  return;
@@ -20690,7 +20803,10 @@ var ListModel = /** @class */ (function (_super) {
20690
20803
  ListModel.prototype.hasText = function (item, filterStringInLow) {
20691
20804
  if (!filterStringInLow)
20692
20805
  return true;
20693
- var textInLow = (item.title || "").toLocaleLowerCase();
20806
+ var text = item.title || "";
20807
+ if (this.onTextSearchCallback)
20808
+ return this.onTextSearchCallback(item, filterStringInLow);
20809
+ var textInLow = text.toLocaleLowerCase();
20694
20810
  textInLow = _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].comparator.normalizeTextCallback(textInLow, "filter");
20695
20811
  return textInLow.indexOf(filterStringInLow.toLocaleLowerCase()) > -1;
20696
20812
  };
@@ -20736,6 +20852,9 @@ var ListModel = /** @class */ (function (_super) {
20736
20852
  ListModel.prototype.setOnFilterStringChangedCallback = function (callback) {
20737
20853
  this.onFilterStringChangedCallback = callback;
20738
20854
  };
20855
+ ListModel.prototype.setOnTextSearchCallback = function (callback) {
20856
+ this.onTextSearchCallback = callback;
20857
+ };
20739
20858
  ListModel.prototype.setItems = function (items, sortByVisibleIndex) {
20740
20859
  var _this = this;
20741
20860
  if (sortByVisibleIndex === void 0) { sortByVisibleIndex = true; }
@@ -21600,6 +21719,8 @@ var arabicSurveyStrings = {
21600
21719
  startSurveyText: "بداية",
21601
21720
  otherItemText: "نص آخر",
21602
21721
  noneItemText: "لا شيء",
21722
+ refuseItemText: "رفض الإجابة",
21723
+ dontKnowItemText: "لا أعرف",
21603
21724
  selectAllItemText: "اختر الكل",
21604
21725
  progressText: "{1} صفحة {0} من",
21605
21726
  indexText: "{0} من {1}",
@@ -21724,6 +21845,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["ar"]
21724
21845
  // hideDetails: "Hide Details" => "إخفاء التفاصيل"
21725
21846
  // ok: "OK" => "موافق"
21726
21847
  // cancel: "Cancel" => "إلغاء الأمر"
21848
+ // refuseItemText: "Refuse to answer" => "رفض الإجابة"
21849
+ // dontKnowItemText: "Don't know" => "لا أعرف"
21727
21850
 
21728
21851
 
21729
21852
  /***/ }),
@@ -21749,6 +21872,8 @@ var basqueSurveyStrings = {
21749
21872
  startSurveyText: "Hasi",
21750
21873
  otherItemText: "Beste bat (zehaztu)",
21751
21874
  noneItemText: "Bat ere ez",
21875
+ refuseItemText: "Erantzuteari uko egin",
21876
+ dontKnowItemText: "Ez dakit",
21752
21877
  selectAllItemText: "Guztia hautatu",
21753
21878
  progressText: "{1}-(e)tik {0} orrialde",
21754
21879
  indexText: "{1} {0}",
@@ -21866,6 +21991,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["eu"]
21866
21991
  // hideDetails: "Hide Details" => "Xehetasunak ezkutatu"
21867
21992
  // ok: "OK" => "Ados"
21868
21993
  // cancel: "Cancel" => "Ezeztatu"
21994
+ // refuseItemText: "Refuse to answer" => "Erantzuteari uko egin"
21995
+ // dontKnowItemText: "Don't know" => "Ez dakit"
21869
21996
 
21870
21997
 
21871
21998
  /***/ }),
@@ -21891,6 +22018,8 @@ var bulgarianStrings = {
21891
22018
  startSurveyText: "Начало",
21892
22019
  otherItemText: "Друго (опишете)",
21893
22020
  noneItemText: "Нито един",
22021
+ refuseItemText: "Отказва да отговори",
22022
+ dontKnowItemText: "Не знам",
21894
22023
  selectAllItemText: "Всички",
21895
22024
  progressText: "стр. {0}, общо стр. {1}",
21896
22025
  indexText: "{0} на {1}",
@@ -22015,6 +22144,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["bg"]
22015
22144
  // hideDetails: "Hide Details" => "Скрий подробните данни"
22016
22145
  // ok: "OK" => "Добре"
22017
22146
  // cancel: "Cancel" => "Отмени"
22147
+ // refuseItemText: "Refuse to answer" => "Отказва да отговори"
22148
+ // dontKnowItemText: "Don't know" => "Не знам"
22018
22149
 
22019
22150
 
22020
22151
  /***/ }),
@@ -22040,6 +22171,8 @@ var catalanSurveyStrings = {
22040
22171
  startSurveyText: "Començar",
22041
22172
  otherItemText: "Un altre (descrigui)",
22042
22173
  noneItemText: "Cap",
22174
+ refuseItemText: "Negar-se a respondre",
22175
+ dontKnowItemText: "No sé",
22043
22176
  selectAllItemText: "Selecciona-ho tot",
22044
22177
  progressText: "Pàgina {0} de {1}",
22045
22178
  indexText: "{0} de {1}",
@@ -22204,6 +22337,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["ca"]
22204
22337
  // hideDetails: "Hide Details" => "Amaga els detalls"
22205
22338
  // ok: "OK" => "D'ACORD"
22206
22339
  // cancel: "Cancel" => "Cancel·lar"
22340
+ // refuseItemText: "Refuse to answer" => "Negar-se a respondre"
22341
+ // dontKnowItemText: "Don't know" => "No sé"
22207
22342
 
22208
22343
 
22209
22344
  /***/ }),
@@ -22229,6 +22364,8 @@ var croatianStrings = {
22229
22364
  startSurveyText: "Početak",
22230
22365
  otherItemText: "Ostali (opis)",
22231
22366
  noneItemText: "Nitko",
22367
+ refuseItemText: "Odbijte odgovoriti",
22368
+ dontKnowItemText: "Ne znam",
22232
22369
  selectAllItemText: "Select All",
22233
22370
  progressText: "Stranica {0} od {1}",
22234
22371
  indexText: "{0} {1}",
@@ -22351,6 +22488,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["hr"]
22351
22488
  // hideDetails: "Hide Details" => "Sakrij detalje"
22352
22489
  // ok: "OK" => "OK"
22353
22490
  // cancel: "Cancel" => "Otkazati"
22491
+ // refuseItemText: "Refuse to answer" => "Odbijte odgovoriti"
22492
+ // dontKnowItemText: "Don't know" => "Ne znam"
22354
22493
 
22355
22494
 
22356
22495
  /***/ }),
@@ -22376,6 +22515,8 @@ var czechSurveyStrings = {
22376
22515
  startSurveyText: "Začít",
22377
22516
  otherItemText: "Jiná odpověď (napište)",
22378
22517
  noneItemText: "Žádný",
22518
+ refuseItemText: "Odmítnout odpovědět",
22519
+ dontKnowItemText: "Nevím",
22379
22520
  selectAllItemText: "Vybrat vše",
22380
22521
  progressText: "Strana {0} z {1}",
22381
22522
  indexText: "{0} z {1}",
@@ -22500,6 +22641,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["cs"]
22500
22641
  // hideDetails: "Hide Details" => "Skrýt podrobnosti"
22501
22642
  // ok: "OK" => "OK"
22502
22643
  // cancel: "Cancel" => "Zrušit"
22644
+ // refuseItemText: "Refuse to answer" => "Odmítnout odpovědět"
22645
+ // dontKnowItemText: "Don't know" => "Nevím"
22503
22646
 
22504
22647
 
22505
22648
  /***/ }),
@@ -22525,6 +22668,8 @@ var danishSurveyStrings = {
22525
22668
  startSurveyText: "Start",
22526
22669
  otherItemText: "Valgfrit svar...",
22527
22670
  noneItemText: "Ingen",
22671
+ refuseItemText: "Nægt at svare",
22672
+ dontKnowItemText: "Ved ikke",
22528
22673
  selectAllItemText: "Vælg alle",
22529
22674
  progressText: "Side {0} af {1}",
22530
22675
  indexText: "{0} af {1}",
@@ -22649,6 +22794,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["da"]
22649
22794
  // hideDetails: "Hide Details" => "Skjul detaljer"
22650
22795
  // ok: "OK" => "OK"
22651
22796
  // cancel: "Cancel" => "Aflyse"
22797
+ // refuseItemText: "Refuse to answer" => "Nægt at svare"
22798
+ // dontKnowItemText: "Don't know" => "Ved ikke"
22652
22799
 
22653
22800
 
22654
22801
  /***/ }),
@@ -22674,6 +22821,8 @@ var dutchSurveyStrings = {
22674
22821
  startSurveyText: "Start",
22675
22822
  otherItemText: "Anders, nl.",
22676
22823
  noneItemText: "Geen",
22824
+ refuseItemText: "Weiger te antwoorden",
22825
+ dontKnowItemText: "Weet niet",
22677
22826
  selectAllItemText: "Selecteer Alles",
22678
22827
  progressText: "Pagina {0} van {1}",
22679
22828
  indexText: "{0} van {1}",
@@ -22796,6 +22945,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["nl"]
22796
22945
  // hideDetails: "Hide Details" => "Verberg details"
22797
22946
  // ok: "OK" => "OK"
22798
22947
  // cancel: "Cancel" => "Annuleren"
22948
+ // refuseItemText: "Refuse to answer" => "Weiger te antwoorden"
22949
+ // dontKnowItemText: "Don't know" => "Weet niet"
22799
22950
 
22800
22951
 
22801
22952
  /***/ }),
@@ -22821,6 +22972,8 @@ var englishStrings = {
22821
22972
  startSurveyText: "Start",
22822
22973
  otherItemText: "Other (describe)",
22823
22974
  noneItemText: "None",
22975
+ refuseItemText: "Refuse to answer",
22976
+ dontKnowItemText: "Don't know",
22824
22977
  selectAllItemText: "Select All",
22825
22978
  progressText: "Page {0} of {1}",
22826
22979
  indexText: "{0} of {1}",
@@ -22944,6 +23097,8 @@ var estonianSurveyStrings = {
22944
23097
  startSurveyText: "Alusta",
22945
23098
  otherItemText: "Muu (täpsusta)",
22946
23099
  noneItemText: "Mitte midagi",
23100
+ refuseItemText: "Keeldu vastamast",
23101
+ dontKnowItemText: "Ei tea",
22947
23102
  selectAllItemText: "Vali kõik",
22948
23103
  progressText: "Lehekülg {0}/{1}",
22949
23104
  indexText: "{0} {1}",
@@ -23068,6 +23223,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["et"]
23068
23223
  // hideDetails: "Hide Details" => "Peida üksikasjad"
23069
23224
  // ok: "OK" => "OK"
23070
23225
  // cancel: "Cancel" => "Tühistama"
23226
+ // refuseItemText: "Refuse to answer" => "Keeldu vastamast"
23227
+ // dontKnowItemText: "Don't know" => "Ei tea"
23071
23228
 
23072
23229
 
23073
23230
  /***/ }),
@@ -23093,6 +23250,8 @@ var finnishSurveyStrings = {
23093
23250
  startSurveyText: "Aloita",
23094
23251
  otherItemText: "Muu (tarkenna)",
23095
23252
  noneItemText: "Ei mitään",
23253
+ refuseItemText: "Kieltäydy vastaamasta",
23254
+ dontKnowItemText: "Ei tiedä",
23096
23255
  selectAllItemText: "Valitse kaikki",
23097
23256
  progressText: "Sivu {0} / {1}",
23098
23257
  indexText: "{0} / {1}",
@@ -23205,6 +23364,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["fi"]
23205
23364
  // hideDetails: "Hide Details" => "Piilota tiedot"
23206
23365
  // ok: "OK" => "OKEI"
23207
23366
  // cancel: "Cancel" => "Perua"
23367
+ // refuseItemText: "Refuse to answer" => "Kieltäydy vastaamasta"
23368
+ // dontKnowItemText: "Don't know" => "Ei tiedä"
23208
23369
 
23209
23370
 
23210
23371
  /***/ }),
@@ -23230,6 +23391,8 @@ var frenchSurveyStrings = {
23230
23391
  startSurveyText: "Commencer",
23231
23392
  otherItemText: "Autre (préciser)",
23232
23393
  noneItemText: "Aucun",
23394
+ refuseItemText: "Refuser de répondre",
23395
+ dontKnowItemText: "Sais pas",
23233
23396
  selectAllItemText: "Tout sélectionner",
23234
23397
  progressText: "Page {0} sur {1}",
23235
23398
  indexText: "{0} sur {1}",
@@ -23342,6 +23505,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["fr"]
23342
23505
  // hideDetails: "Hide Details" => "Masquer les détails"
23343
23506
  // ok: "OK" => "D’ACCORD"
23344
23507
  // cancel: "Cancel" => "Annuler"
23508
+ // refuseItemText: "Refuse to answer" => "Refuser de répondre"
23509
+ // dontKnowItemText: "Don't know" => "Sais pas"
23345
23510
 
23346
23511
 
23347
23512
  /***/ }),
@@ -23367,6 +23532,8 @@ var georgianSurveyStrings = {
23367
23532
  startSurveyText: "დაქოქვა",
23368
23533
  otherItemText: "სხვა (გთხოვთ მიუთითეთ)",
23369
23534
  noneItemText: "არცერთი",
23535
+ refuseItemText: "უარი პასუხზე",
23536
+ dontKnowItemText: "არ ვიცი",
23370
23537
  selectAllItemText: "ყველას მონიშნა",
23371
23538
  progressText: "გვერდი {0} / {1}",
23372
23539
  indexText: "{1} {0}",
@@ -23544,6 +23711,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["ka"]
23544
23711
  // hideDetails: "Hide Details" => "დეტალების დამალვა"
23545
23712
  // ok: "OK" => "კარგი"
23546
23713
  // cancel: "Cancel" => "გაუქმება"
23714
+ // refuseItemText: "Refuse to answer" => "უარი პასუხზე"
23715
+ // dontKnowItemText: "Don't know" => "არ ვიცი"
23547
23716
 
23548
23717
 
23549
23718
  /***/ }),
@@ -23569,6 +23738,8 @@ var germanSurveyStrings = {
23569
23738
  startSurveyText: "Start",
23570
23739
  otherItemText: "Sonstiges (Bitte angeben)",
23571
23740
  noneItemText: "Nichts trifft zu",
23741
+ refuseItemText: "Verweigern Sie die Antwort",
23742
+ dontKnowItemText: "Weiß ich nicht",
23572
23743
  selectAllItemText: "Alles auswählen",
23573
23744
  progressText: "Seite {0} von {1}",
23574
23745
  indexText: "{0} von {1}",
@@ -23679,6 +23850,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["de"]
23679
23850
  // hideDetails: "Hide Details" => "Details ausblenden"
23680
23851
  // ok: "OK" => "OKAY"
23681
23852
  // cancel: "Cancel" => "Abbrechen"
23853
+ // refuseItemText: "Refuse to answer" => "Verweigern Sie die Antwort"
23854
+ // dontKnowItemText: "Don't know" => "Weiß ich nicht"
23682
23855
 
23683
23856
 
23684
23857
  /***/ }),
@@ -23704,6 +23877,8 @@ var greekSurveyStrings = {
23704
23877
  startSurveyText: "Αρχή",
23705
23878
  otherItemText: "Άλλο (παρακαλώ διευκρινίστε)",
23706
23879
  noneItemText: "Κανένας",
23880
+ refuseItemText: "Αρνηθείτε να απαντήσετε",
23881
+ dontKnowItemText: "Δεν ξέρω",
23707
23882
  selectAllItemText: "Επιλογή όλων",
23708
23883
  progressText: "Σελίδα {0} από {1}",
23709
23884
  indexText: "{0} από {1}",
@@ -23813,6 +23988,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["gr"]
23813
23988
  // hideDetails: "Hide Details" => "Απόκρυψη λεπτομερειών"
23814
23989
  // ok: "OK" => "OK"
23815
23990
  // cancel: "Cancel" => "Ακυρώνω"
23991
+ // refuseItemText: "Refuse to answer" => "Αρνηθείτε να απαντήσετε"
23992
+ // dontKnowItemText: "Don't know" => "Δεν ξέρω"
23816
23993
 
23817
23994
 
23818
23995
  /***/ }),
@@ -23838,6 +24015,8 @@ var hebrewSurveyStrings = {
23838
24015
  startSurveyText: "הַתחָלָה",
23839
24016
  otherItemText: "אחר (נא לתאר)",
23840
24017
  noneItemText: "אף אחד",
24018
+ refuseItemText: "מסרבים לענות",
24019
+ dontKnowItemText: "לא יודע",
23841
24020
  selectAllItemText: "בחר הכל",
23842
24021
  progressText: "דף {1} מתוך {0}",
23843
24022
  indexText: "{0} מתוך {1}",
@@ -23962,6 +24141,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["he"]
23962
24141
  // hideDetails: "Hide Details" => "הסתר פרטים"
23963
24142
  // ok: "OK" => "אוקיי"
23964
24143
  // cancel: "Cancel" => "ביטל"
24144
+ // refuseItemText: "Refuse to answer" => "מסרבים לענות"
24145
+ // dontKnowItemText: "Don't know" => "לא יודע"
23965
24146
 
23966
24147
 
23967
24148
  /***/ }),
@@ -23987,6 +24168,8 @@ var hindiStrings = {
23987
24168
  startSurveyText: "शुरू",
23988
24169
  otherItemText: "दूसरा (वर्णन करें)",
23989
24170
  noneItemText: "कोई नहीं",
24171
+ refuseItemText: "जवाब देने से इनकार",
24172
+ dontKnowItemText: "नहीं मालूम",
23990
24173
  selectAllItemText: "सभी का चयन करें",
23991
24174
  progressText: "पृष्ठ 1 में से 0",
23992
24175
  indexText: "{1} का {0}",
@@ -24111,7 +24294,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["hi"]
24111
24294
  // showDetails: "Show Details" => "विवरण दिखाएँ"
24112
24295
  // hideDetails: "Hide Details" => "विवरण छुपाएँ"
24113
24296
  // ok: "OK" => "ठीक है"
24114
- // cancel: "Cancel" => "रद्द करना"
24297
+ // cancel: "Cancel" => "रद्द करना"// refuseItemText: "Refuse to answer" => "जवाब देने से इनकार"
24298
+ // dontKnowItemText: "Don't know" => "नहीं मालूम"
24115
24299
 
24116
24300
 
24117
24301
  /***/ }),
@@ -24137,6 +24321,8 @@ var hungarianSurveyStrings = {
24137
24321
  startSurveyText: "Rajt",
24138
24322
  otherItemText: "Egyéb (adja meg)",
24139
24323
  noneItemText: "Egyik sem",
24324
+ refuseItemText: "A válaszadás megtagadása",
24325
+ dontKnowItemText: "Nem tudom",
24140
24326
  selectAllItemText: "Mindet kiválaszt",
24141
24327
  progressText: "{0}./{1} oldal",
24142
24328
  indexText: "{0} {1} közül",
@@ -24260,6 +24446,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["hu"]
24260
24446
  // hideDetails: "Hide Details" => "Részletek elrejtése"
24261
24447
  // ok: "OK" => "OKÉ"
24262
24448
  // cancel: "Cancel" => "Érvénytelenít"
24449
+ // refuseItemText: "Refuse to answer" => "A válaszadás megtagadása"
24450
+ // dontKnowItemText: "Don't know" => "Nem tudom"
24263
24451
 
24264
24452
 
24265
24453
  /***/ }),
@@ -24285,6 +24473,8 @@ var icelandicSurveyStrings = {
24285
24473
  startSurveyText: "Byrjaðu",
24286
24474
  otherItemText: "Hinn (skýring)",
24287
24475
  noneItemText: "Enginn",
24476
+ refuseItemText: "Neita að svara",
24477
+ dontKnowItemText: "Veit ekki",
24288
24478
  selectAllItemText: "Velja allt",
24289
24479
  progressText: "Síða {0} of {1}",
24290
24480
  indexText: "{0} af {1}",
@@ -24409,6 +24599,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["is"]
24409
24599
  // hideDetails: "Hide Details" => "Fela upplýsingar"
24410
24600
  // ok: "OK" => "ÓKEI"
24411
24601
  // cancel: "Cancel" => "Afturkalla"
24602
+ // refuseItemText: "Refuse to answer" => "Neita að svara"
24603
+ // dontKnowItemText: "Don't know" => "Veit ekki"
24412
24604
 
24413
24605
 
24414
24606
  /***/ }),
@@ -24434,6 +24626,8 @@ var indonesianStrings = {
24434
24626
  startSurveyText: "Mulai",
24435
24627
  otherItemText: "Lainnya (jelaskan)",
24436
24628
  noneItemText: "Tidak Ada",
24629
+ refuseItemText: "Menolak untuk menjawab",
24630
+ dontKnowItemText: "Tidak tahu",
24437
24631
  selectAllItemText: "Pilih Semua",
24438
24632
  progressText: "Halaman {0} dari {1}",
24439
24633
  indexText: "{0} dari {1}",
@@ -24558,6 +24752,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["id"]
24558
24752
  // hideDetails: "Hide Details" => "Sembunyikan Detail"
24559
24753
  // ok: "OK" => "OKE"
24560
24754
  // cancel: "Cancel" => "Membatalkan"
24755
+ // refuseItemText: "Refuse to answer" => "Menolak untuk menjawab"
24756
+ // dontKnowItemText: "Don't know" => "Tidak tahu"
24561
24757
 
24562
24758
 
24563
24759
  /***/ }),
@@ -24583,6 +24779,8 @@ var italianSurveyStrings = {
24583
24779
  startSurveyText: "Inizio",
24584
24780
  otherItemText: "Altro (descrivi)",
24585
24781
  noneItemText: "Nessuno",
24782
+ refuseItemText: "Rifiuta di rispondere",
24783
+ dontKnowItemText: "Non lo so",
24586
24784
  selectAllItemText: "Seleziona tutti",
24587
24785
  progressText: "Pagina {0} di {1}",
24588
24786
  indexText: "{0} da {1}",
@@ -24695,6 +24893,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["it"]
24695
24893
  // hideDetails: "Hide Details" => "Nascondi dettagli"
24696
24894
  // ok: "OK" => "OK"
24697
24895
  // cancel: "Cancel" => "Annulla"
24896
+ // refuseItemText: "Refuse to answer" => "Rifiuta di rispondere"
24897
+ // dontKnowItemText: "Don't know" => "Non lo so"
24698
24898
 
24699
24899
 
24700
24900
  /***/ }),
@@ -24720,6 +24920,8 @@ var japaneseSurveyStrings = {
24720
24920
  startSurveyText: "スタート",
24721
24921
  otherItemText: "その他(説明)",
24722
24922
  noneItemText: "なし",
24923
+ refuseItemText: "回答を拒否する",
24924
+ dontKnowItemText: "わかりません",
24723
24925
  selectAllItemText: "すべて選択",
24724
24926
  progressText: "{0}/{1}頁",
24725
24927
  indexText: "{1}の{0}",
@@ -24844,6 +25046,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["ja"]
24844
25046
  // hideDetails: "Hide Details" => "詳細を隠す"
24845
25047
  // ok: "OK" => "わかりました"
24846
25048
  // cancel: "Cancel" => "キャンセル"
25049
+ // refuseItemText: "Refuse to answer" => "回答を拒否する"
25050
+ // dontKnowItemText: "Don't know" => "わかりません"
24847
25051
 
24848
25052
 
24849
25053
  /***/ }),
@@ -24869,6 +25073,8 @@ var kazakhStrings = {
24869
25073
  startSurveyText: "Бастау",
24870
25074
  otherItemText: "Басқа (өтінеміз, жазыңыз)",
24871
25075
  noneItemText: "Жоқ",
25076
+ refuseItemText: "Жауап беруден бас тарту",
25077
+ dontKnowItemText: "Білмеймін",
24872
25078
  selectAllItemText: "Барлығын таңдау",
24873
25079
  progressText: "{0} ден {1} бет ",
24874
25080
  indexText: "{1} {0}",
@@ -24993,6 +25199,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["kk"]
24993
25199
  // hideDetails: "Hide Details" => "Егжей- тегжейін жасы"
24994
25200
  // ok: "OK" => "ЖАҚСЫ"
24995
25201
  // cancel: "Cancel" => "Болдырмау"
25202
+ // refuseItemText: "Refuse to answer" => "Жауап беруден бас тарту"
25203
+ // dontKnowItemText: "Don't know" => "Білмеймін"
24996
25204
 
24997
25205
 
24998
25206
  /***/ }),
@@ -25018,6 +25226,8 @@ var koreanStrings = {
25018
25226
  startSurveyText: "시작",
25019
25227
  otherItemText: "기타 (설명)",
25020
25228
  noneItemText: "없음",
25229
+ refuseItemText: "대답 거부",
25230
+ dontKnowItemText: "모르다",
25021
25231
  selectAllItemText: "모두 선택",
25022
25232
  progressText: "페이지 {1} / {0}",
25023
25233
  indexText: "{0} / {1}",
@@ -25129,6 +25339,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["ko"]
25129
25339
  // hideDetails: "Hide Details" => "세부 정보 숨기기"
25130
25340
  // ok: "OK" => "그래"
25131
25341
  // cancel: "Cancel" => "취소"
25342
+ // refuseItemText: "Refuse to answer" => "대답 거부"
25343
+ // dontKnowItemText: "Don't know" => "모르다"
25132
25344
 
25133
25345
 
25134
25346
  /***/ }),
@@ -25154,6 +25366,8 @@ var latvianSurveyStrings = {
25154
25366
  startSurveyText: "Sākt",
25155
25367
  otherItemText: "Cits (lūdzu, aprakstiet!)",
25156
25368
  noneItemText: "Nav",
25369
+ refuseItemText: "Atteikties atbildēt",
25370
+ dontKnowItemText: "Es nezinu",
25157
25371
  selectAllItemText: "Izvēlēties visus",
25158
25372
  progressText: "{0}. lapa no {1}",
25159
25373
  indexText: "{0} no {1}",
@@ -25266,6 +25480,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["lv"]
25266
25480
  // hideDetails: "Hide Details" => "Slēpt detaļas"
25267
25481
  // ok: "OK" => "LABI"
25268
25482
  // cancel: "Cancel" => "Atcelt"
25483
+ // refuseItemText: "Refuse to answer" => "Atteikties atbildēt"
25484
+ // dontKnowItemText: "Don't know" => "Es nezinu"
25269
25485
 
25270
25486
 
25271
25487
  /***/ }),
@@ -25291,6 +25507,8 @@ var lithuaniaSurveyStrings = {
25291
25507
  startSurveyText: "Pradėti",
25292
25508
  otherItemText: "Kita (įvesti)",
25293
25509
  noneItemText: "Nėra",
25510
+ refuseItemText: "Atsisakyti atsakyti",
25511
+ dontKnowItemText: "Nežinau",
25294
25512
  selectAllItemText: "Pasirinkti visus",
25295
25513
  progressText: "Puslapis {0} iš {1}",
25296
25514
  indexText: "{1} {0}",
@@ -25415,6 +25633,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["lt"]
25415
25633
  // hideDetails: "Hide Details" => "Slėpti išsamią informaciją"
25416
25634
  // ok: "OK" => "GERAI"
25417
25635
  // cancel: "Cancel" => "Atšaukti"
25636
+ // refuseItemText: "Refuse to answer" => "Atsisakyti atsakyti"
25637
+ // dontKnowItemText: "Don't know" => "Nežinau"
25418
25638
 
25419
25639
 
25420
25640
  /***/ }),
@@ -25440,6 +25660,8 @@ var macedonianSurveyStrings = {
25440
25660
  startSurveyText: "Започнете",
25441
25661
  otherItemText: "Друго (опиши)",
25442
25662
  noneItemText: "Ништо",
25663
+ refuseItemText: "Одбиј да одговориш.",
25664
+ dontKnowItemText: "Не знам",
25443
25665
  selectAllItemText: "Селектирај се",
25444
25666
  progressText: "Страница {0} од {1}",
25445
25667
  indexText: "{0} на {1}",
@@ -25558,6 +25780,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["mk"]
25558
25780
  // hideDetails: "Hide Details" => "Сокриј ги деталите."
25559
25781
  // ok: "OK" => "ДОБРО"
25560
25782
  // cancel: "Cancel" => "Откажи"
25783
+ // refuseItemText: "Refuse to answer" => "Одбиј да одговориш."
25784
+ // dontKnowItemText: "Don't know" => "Не знам"
25561
25785
 
25562
25786
 
25563
25787
  /***/ }),
@@ -25583,6 +25807,8 @@ var malaySurveyStrings = {
25583
25807
  startSurveyText: "Mula",
25584
25808
  otherItemText: "Lain (terangkan)",
25585
25809
  noneItemText: "Tiada",
25810
+ refuseItemText: "Enggan menjawab",
25811
+ dontKnowItemText: "Tak tahu",
25586
25812
  selectAllItemText: "Pilih Semua",
25587
25813
  progressText: "Halaman {0} daripada {1}",
25588
25814
  indexText: "{0} {1}",
@@ -25697,6 +25923,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["ms"]
25697
25923
  // hideDetails: "Hide Details" => "Sembunyikan Butiran"
25698
25924
  // ok: "OK" => "OK"
25699
25925
  // cancel: "Cancel" => "Batal"
25926
+ // refuseItemText: "Refuse to answer" => "Enggan menjawab"
25927
+ // dontKnowItemText: "Don't know" => "Tak tahu"
25700
25928
 
25701
25929
 
25702
25930
  /***/ }),
@@ -25746,6 +25974,8 @@ var norwegianSurveyStrings = {
25746
25974
  startSurveyText: "Start",
25747
25975
  otherItemText: "Annet (beskriv)",
25748
25976
  noneItemText: "Ingen",
25977
+ refuseItemText: "Nekter å svare",
25978
+ dontKnowItemText: "Vet ikke",
25749
25979
  selectAllItemText: "Velg alle",
25750
25980
  progressText: "Side {0} av {1}",
25751
25981
  indexText: "{0} av {1}",
@@ -25870,6 +26100,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["no"]
25870
26100
  // hideDetails: "Hide Details" => "Skjul detaljer"
25871
26101
  // ok: "OK" => "OK"
25872
26102
  // cancel: "Cancel" => "Annullere"
26103
+ // refuseItemText: "Refuse to answer" => "Nekter å svare"
26104
+ // dontKnowItemText: "Don't know" => "Vet ikke"
25873
26105
 
25874
26106
 
25875
26107
  /***/ }),
@@ -25895,6 +26127,8 @@ var persianSurveyStrings = {
25895
26127
  startSurveyText: "شروع",
25896
26128
  otherItemText: "دیگر(توضیح)",
25897
26129
  noneItemText: "هیچ",
26130
+ refuseItemText: "امتناع از پاسخ دادن",
26131
+ dontKnowItemText: "نمی دانم",
25898
26132
  selectAllItemText: "انتخاب همه",
25899
26133
  progressText: "صفحه {0} از {1}",
25900
26134
  indexText: "{0} {1}",
@@ -26019,6 +26253,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["fa"]
26019
26253
  // hideDetails: "Hide Details" => "مخفی کردن جزئیات"
26020
26254
  // ok: "OK" => "باشه"
26021
26255
  // cancel: "Cancel" => "لغو"
26256
+ // refuseItemText: "Refuse to answer" => "امتناع از پاسخ دادن"
26257
+ // dontKnowItemText: "Don't know" => "نمی دانم"
26022
26258
 
26023
26259
 
26024
26260
  /***/ }),
@@ -26044,6 +26280,8 @@ var polishSurveyStrings = {
26044
26280
  startSurveyText: "Start",
26045
26281
  otherItemText: "Inna odpowiedź (wpisz)",
26046
26282
  noneItemText: "Brak",
26283
+ refuseItemText: "Odmów odpowiedzi",
26284
+ dontKnowItemText: "Nie wiem",
26047
26285
  selectAllItemText: "Wybierz wszystkie",
26048
26286
  progressText: "Strona {0} z {1}",
26049
26287
  indexText: "{0} od {1}",
@@ -26156,6 +26394,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["pl"]
26156
26394
  // hideDetails: "Hide Details" => "Ukryj szczegóły"
26157
26395
  // ok: "OK" => "OK"
26158
26396
  // cancel: "Cancel" => "Anuluj"
26397
+ // refuseItemText: "Refuse to answer" => "Odmów odpowiedzi"
26398
+ // dontKnowItemText: "Don't know" => "Nie wiem"
26159
26399
 
26160
26400
 
26161
26401
  /***/ }),
@@ -26184,6 +26424,8 @@ var portugueseBrSurveyStrings = {
26184
26424
  startSurveyText: "Começar",
26185
26425
  otherItemText: "Outros (descrever)",
26186
26426
  noneItemText: "Nenhum",
26427
+ refuseItemText: "Recusar-se a responder",
26428
+ dontKnowItemText: "Não sei",
26187
26429
  selectAllItemText: "Selecionar tudo",
26188
26430
  progressText: "Página {0} de {1}",
26189
26431
  indexText: "{0} de {1}",
@@ -26355,6 +26597,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["pt-b
26355
26597
  // hideDetails: "Hide Details" => "Ocultar detalhes"
26356
26598
  // ok: "OK" => "OKEY"
26357
26599
  // cancel: "Cancel" => "Cancelar"
26600
+ // refuseItemText: "Refuse to answer" => "Recusar-se a responder"
26601
+ // dontKnowItemText: "Don't know" => "Não sei"
26358
26602
 
26359
26603
 
26360
26604
  /***/ }),
@@ -26380,6 +26624,8 @@ var portugueseSurveyStrings = {
26380
26624
  startSurveyText: "Começar",
26381
26625
  otherItemText: "Outros (descrever)",
26382
26626
  noneItemText: "Nenhum",
26627
+ refuseItemText: "Recusar-se a responder",
26628
+ dontKnowItemText: "Não sei",
26383
26629
  selectAllItemText: "Selecionar Todos",
26384
26630
  progressText: "Página {0} de {1}",
26385
26631
  indexText: "{0} de {1}",
@@ -26489,6 +26735,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["pt"]
26489
26735
  // hideDetails: "Hide Details" => "Ocultar detalhes"
26490
26736
  // ok: "OK" => "OKEY"
26491
26737
  // cancel: "Cancel" => "Cancelar"
26738
+ // refuseItemText: "Refuse to answer" => "Recusar-se a responder"
26739
+ // dontKnowItemText: "Don't know" => "Não sei"
26492
26740
 
26493
26741
 
26494
26742
  /***/ }),
@@ -26514,6 +26762,8 @@ var romanianSurveyStrings = {
26514
26762
  startSurveyText: "start",
26515
26763
  otherItemText: "Altul(precizaţi)",
26516
26764
  noneItemText: "Nici unul",
26765
+ refuseItemText: "Refuză să răspundă",
26766
+ dontKnowItemText: "Nu ştiu",
26517
26767
  selectAllItemText: "Selectează tot",
26518
26768
  progressText: "Pagina {0} din {1}",
26519
26769
  indexText: "{0} de {1}",
@@ -26638,6 +26888,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["ro"]
26638
26888
  // hideDetails: "Hide Details" => "Ascunde detalii"
26639
26889
  // ok: "OK" => "OK"
26640
26890
  // cancel: "Cancel" => "Anula"
26891
+ // refuseItemText: "Refuse to answer" => "Refuză să răspundă"
26892
+ // dontKnowItemText: "Don't know" => "Nu ştiu"
26641
26893
 
26642
26894
 
26643
26895
  /***/ }),
@@ -26663,6 +26915,8 @@ var russianSurveyStrings = {
26663
26915
  startSurveyText: "Начать",
26664
26916
  otherItemText: "Другое (пожалуйста, опишите)",
26665
26917
  noneItemText: "Нет",
26918
+ refuseItemText: "Отказываюсь отвечать",
26919
+ dontKnowItemText: "Не знаю",
26666
26920
  selectAllItemText: "Выбрать всё",
26667
26921
  progressText: "Страница {0} из {1}",
26668
26922
  indexText: "{0} из {1}",
@@ -26750,10 +27004,10 @@ var russianSurveyStrings = {
26750
27004
  noEntriesText: "Пока нет записей.\nНажмите кнопку ниже, чтобы добавить новую запись.",
26751
27005
  noEntriesReadonlyText: "Записей нет.",
26752
27006
  more: "Больше",
26753
- tagboxDoneButtonCaption: "ХОРОШО",
27007
+ tagboxDoneButtonCaption: "Хорошо",
26754
27008
  selectToRankEmptyRankedAreaText: "Все варианты ранжируются",
26755
27009
  selectToRankEmptyUnrankedAreaText: "Перетащите сюда варианты, чтобы ранжировать их",
26756
- ok: "ХОРОШО",
27010
+ ok: "Хорошо",
26757
27011
  cancel: "Отмена"
26758
27012
  };
26759
27013
  survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].locales["ru"] = russianSurveyStrings;
@@ -26764,7 +27018,6 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["ru"]
26764
27018
  // emptyMessage: "No data to display" => "Нет данных для отображения"
26765
27019
  // noEntriesReadonlyText: "There are no entries." => "Записей нет."
26766
27020
  // more: "More" => "Больше"
26767
- // tagboxDoneButtonCaption: "OK" => "ХОРОШО"
26768
27021
  // selectToRankEmptyRankedAreaText: "All choices are ranked" => "Все варианты ранжируются"
26769
27022
  // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Перетащите сюда варианты, чтобы ранжировать их"// takePhotoCaption: "Take Photo" => "Сделать фото"
26770
27023
  // photoPlaceholder: "Click the button below to take a photo using the camera." => "Нажмите кнопку ниже, чтобы сделать снимок с помощью камеры."
@@ -26773,7 +27026,6 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["ru"]
26773
27026
  // noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Файлы не могут быть загружены. Пожалуйста, добавьте обработчик для события 'onUploadFiles'."
26774
27027
  // showDetails: "Show Details" => "Показать подробности"
26775
27028
  // hideDetails: "Hide Details" => "Скрыть подробности"
26776
- // ok: "OK" => "ХОРОШО"
26777
27029
  // cancel: "Cancel" => "Отмена"
26778
27030
 
26779
27031
 
@@ -26800,6 +27052,8 @@ var serbianStrings = {
26800
27052
  startSurveyText: "Započni",
26801
27053
  otherItemText: "Drugo (upiši)",
26802
27054
  noneItemText: "Ništa",
27055
+ refuseItemText: "Odbijanje odgovora",
27056
+ dontKnowItemText: "Ne znam",
26803
27057
  selectAllItemText: "Izaberi sve",
26804
27058
  progressText: "Stranica {0} od {1}",
26805
27059
  indexText: "{0} {1}",
@@ -26919,6 +27173,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["rs"]
26919
27173
  // hideDetails: "Hide Details" => "Sakrij detalje"
26920
27174
  // ok: "OK" => "U redu"
26921
27175
  // cancel: "Cancel" => "Otkaži"
27176
+ // refuseItemText: "Refuse to answer" => "Odbijanje odgovora"
27177
+ // dontKnowItemText: "Don't know" => "Ne znam"
26922
27178
 
26923
27179
 
26924
27180
  /***/ }),
@@ -26944,6 +27200,8 @@ var simplifiedChineseSurveyStrings = {
26944
27200
  startSurveyText: "开始问卷",
26945
27201
  otherItemText: "填写其他答案",
26946
27202
  noneItemText: "无",
27203
+ refuseItemText: "拒绝回答",
27204
+ dontKnowItemText: "不知道",
26947
27205
  selectAllItemText: "选择全部",
26948
27206
  progressText: "第 {0} 页, 共 {1} 页",
26949
27207
  indexText: "{1}{0}",
@@ -27062,6 +27320,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["zh-c
27062
27320
  // hideDetails: "Hide Details" => "隐藏详细信息"
27063
27321
  // ok: "OK" => "还行"
27064
27322
  // cancel: "Cancel" => "取消"
27323
+ // refuseItemText: "Refuse to answer" => "拒绝回答"
27324
+ // dontKnowItemText: "Don't know" => "不知道"
27065
27325
 
27066
27326
 
27067
27327
  /***/ }),
@@ -27087,6 +27347,8 @@ var slovakSurveyStrings = {
27087
27347
  startSurveyText: "Spustiť",
27088
27348
  otherItemText: "Iné (opíšte)",
27089
27349
  noneItemText: "Žiadne",
27350
+ refuseItemText: "Odmietnuť odpovedať",
27351
+ dontKnowItemText: "Neviem",
27090
27352
  selectAllItemText: "Vybrať všetky",
27091
27353
  progressText: "Strana {0} z {1}",
27092
27354
  indexText: "{0} {1}",
@@ -27201,6 +27463,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["sk"]
27201
27463
  // hideDetails: "Hide Details" => "Skryť podrobnosti"
27202
27464
  // ok: "OK" => "OK"
27203
27465
  // cancel: "Cancel" => "Zrušiť"
27466
+ // refuseItemText: "Refuse to answer" => "Odmietnuť odpovedať"
27467
+ // dontKnowItemText: "Don't know" => "Neviem"
27204
27468
 
27205
27469
 
27206
27470
  /***/ }),
@@ -27226,6 +27490,8 @@ var spanishSurveyStrings = {
27226
27490
  startSurveyText: "Comienza",
27227
27491
  otherItemText: "Otro (describa)",
27228
27492
  noneItemText: "Ninguno",
27493
+ refuseItemText: "Negarse a responder",
27494
+ dontKnowItemText: "No sé",
27229
27495
  selectAllItemText: "Seleccionar todo",
27230
27496
  progressText: "Página {0} de {1}",
27231
27497
  indexText: "{0} de {1}",
@@ -27338,6 +27604,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["es"]
27338
27604
  // hideDetails: "Hide Details" => "Ocultar detalles"
27339
27605
  // ok: "OK" => "De acuerdo"
27340
27606
  // cancel: "Cancel" => "Cancelar"
27607
+ // refuseItemText: "Refuse to answer" => "Negarse a responder"
27608
+ // dontKnowItemText: "Don't know" => "No sé"
27341
27609
 
27342
27610
 
27343
27611
  /***/ }),
@@ -27363,6 +27631,8 @@ var swahiliStrings = {
27363
27631
  startSurveyText: "Anza",
27364
27632
  otherItemText: "Nyingine (eleza)",
27365
27633
  noneItemText: "Hakuna",
27634
+ refuseItemText: "Kukataa kujibu",
27635
+ dontKnowItemText: "Sijui",
27366
27636
  selectAllItemText: "Chagua Zote",
27367
27637
  progressText: "Ukurasa {0} wa {1}",
27368
27638
  indexText: "{0} ya {1}",
@@ -27487,6 +27757,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["sw"]
27487
27757
  // hideDetails: "Hide Details" => "Ficha Maelezo"
27488
27758
  // ok: "OK" => "Sawa kabisa"
27489
27759
  // cancel: "Cancel" => "Katisha"
27760
+ // refuseItemText: "Refuse to answer" => "Kukataa kujibu"
27761
+ // dontKnowItemText: "Don't know" => "Sijui"
27490
27762
 
27491
27763
 
27492
27764
  /***/ }),
@@ -27512,6 +27784,8 @@ var swedishSurveyStrings = {
27512
27784
  startSurveyText: "Börja",
27513
27785
  otherItemText: "Annat (beskriv)",
27514
27786
  noneItemText: "Ingen",
27787
+ refuseItemText: "Vägra svara",
27788
+ dontKnowItemText: "Vet inte",
27515
27789
  selectAllItemText: "Välj alla",
27516
27790
  progressText: "Sida {0} av {1}",
27517
27791
  indexText: "{0} av {1}",
@@ -27624,6 +27898,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["sv"]
27624
27898
  // hideDetails: "Hide Details" => "Göm detaljer"
27625
27899
  // ok: "OK" => "OKEJ"
27626
27900
  // cancel: "Cancel" => "Annullera"
27901
+ // refuseItemText: "Refuse to answer" => "Vägra svara"
27902
+ // dontKnowItemText: "Don't know" => "Vet inte"
27627
27903
 
27628
27904
 
27629
27905
  /***/ }),
@@ -27756,6 +28032,8 @@ var teluguStrings = {
27756
28032
  startSurveyText: "ప్రారంభించు",
27757
28033
  otherItemText: "ఇతరమైన(వివరించండి)",
27758
28034
  noneItemText: "ఎవరు కాదు",
28035
+ refuseItemText: "సమాధానం ఇవ్వడానికి నిరాకరించండి",
28036
+ dontKnowItemText: "తెలియదు",
27759
28037
  selectAllItemText: "అన్ని ఎంచుకో",
27760
28038
  progressText: "పేజీ{0}/{1}",
27761
28039
  indexText: "{1} {0}[మార్చు]",
@@ -27880,7 +28158,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["tel"
27880
28158
  // showDetails: "Show Details" => "వివరాలు చూపించు"
27881
28159
  // hideDetails: "Hide Details" => "వివరాలను దాచండి"
27882
28160
  // ok: "OK" => "సరే"
27883
- // cancel: "Cancel" => "రద్దు"
28161
+ // cancel: "Cancel" => "రద్దు"// refuseItemText: "Refuse to answer" => "సమాధానం ఇవ్వడానికి నిరాకరించండి"
28162
+ // dontKnowItemText: "Don't know" => "తెలియదు"
27884
28163
 
27885
28164
 
27886
28165
  /***/ }),
@@ -27906,6 +28185,8 @@ var thaiStrings = {
27906
28185
  startSurveyText: "เริ่ม",
27907
28186
  otherItemText: "อื่นๆ (โปรดระบุ)",
27908
28187
  noneItemText: "ไม่มี",
28188
+ refuseItemText: "ปฏิเสธที่จะตอบ",
28189
+ dontKnowItemText: "ไม่ทราบ",
27909
28190
  selectAllItemText: "เลือกทั้งหมด",
27910
28191
  progressText: "หน้าที่ {0} จาก {1}",
27911
28192
  indexText: "{0} of {1}",
@@ -28029,7 +28310,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["th"]
28029
28310
  // showDetails: "Show Details" => "แสดงรายละเอียด"
28030
28311
  // hideDetails: "Hide Details" => "ซ่อนรายละเอียด"
28031
28312
  // ok: "OK" => "ตกลง, ได้"
28032
- // cancel: "Cancel" => "ยกเลิก"
28313
+ // cancel: "Cancel" => "ยกเลิก"// refuseItemText: "Refuse to answer" => "ปฏิเสธที่จะตอบ"
28314
+ // dontKnowItemText: "Don't know" => "ไม่ทราบ"
28033
28315
 
28034
28316
 
28035
28317
  /***/ }),
@@ -28055,6 +28337,8 @@ var traditionalChineseSurveyStrings = {
28055
28337
  startSurveyText: "開始",
28056
28338
  otherItemText: "填寫其他答案",
28057
28339
  noneItemText: "沒有",
28340
+ refuseItemText: "拒絕回答",
28341
+ dontKnowItemText: "不知道",
28058
28342
  selectAllItemText: "全選",
28059
28343
  progressText: "第 {0} 頁, 共 {1} 頁",
28060
28344
  indexText: "{1}{0}",
@@ -28213,7 +28497,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["zh-t
28213
28497
  // showDetails: "Show Details" => "顯示詳細資訊"
28214
28498
  // hideDetails: "Hide Details" => "隱藏詳細資訊"
28215
28499
  // ok: "OK" => "還行"
28216
- // cancel: "Cancel" => "取消"
28500
+ // cancel: "Cancel" => "取消"// refuseItemText: "Refuse to answer" => "拒絕回答"
28501
+ // dontKnowItemText: "Don't know" => "不知道"
28217
28502
 
28218
28503
 
28219
28504
  /***/ }),
@@ -28239,6 +28524,8 @@ var turkishSurveyStrings = {
28239
28524
  startSurveyText: "Başlat",
28240
28525
  otherItemText: "Diğer (açıklayınız)",
28241
28526
  noneItemText: "Hiçbiri",
28527
+ refuseItemText: "Cevap vermeyi reddet",
28528
+ dontKnowItemText: "Bilmiyorum",
28242
28529
  selectAllItemText: "Tümünü Seç",
28243
28530
  progressText: "Sayfa {0}/{1}",
28244
28531
  indexText: "{0}/{1}",
@@ -28344,7 +28631,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["tr"]
28344
28631
  // showDetails: "Show Details" => "Detayları göster"
28345
28632
  // hideDetails: "Hide Details" => "Detayları Gizle"
28346
28633
  // ok: "OK" => "TAMAM"
28347
- // cancel: "Cancel" => "İptal"
28634
+ // cancel: "Cancel" => "İptal"// refuseItemText: "Refuse to answer" => "Cevap vermeyi reddet"
28635
+ // dontKnowItemText: "Don't know" => "Bilmiyorum"
28348
28636
 
28349
28637
 
28350
28638
  /***/ }),
@@ -28370,6 +28658,8 @@ var ukrainianSurveyStrings = {
28370
28658
  startSurveyText: "Почати",
28371
28659
  otherItemText: "Інше (будь ласка, опишіть)",
28372
28660
  noneItemText: "Жоден",
28661
+ refuseItemText: "Відмовтеся відповідати",
28662
+ dontKnowItemText: "Не знаю",
28373
28663
  selectAllItemText: "Вибрати все",
28374
28664
  progressText: "Сторінка {0} з {1}",
28375
28665
  indexText: "{0} {1}",
@@ -28493,7 +28783,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["ua"]
28493
28783
  // showDetails: "Show Details" => "Показати подробиці"
28494
28784
  // hideDetails: "Hide Details" => "Сховати подробиці"
28495
28785
  // ok: "OK" => "ГАРАЗД"
28496
- // cancel: "Cancel" => "Скасувати"
28786
+ // cancel: "Cancel" => "Скасувати"// refuseItemText: "Refuse to answer" => "Відмовтеся відповідати"
28787
+ // dontKnowItemText: "Don't know" => "Не знаю"
28497
28788
 
28498
28789
 
28499
28790
  /***/ }),
@@ -28519,6 +28810,8 @@ var vietnameseSurveyStrings = {
28519
28810
  startSurveyText: "Bắt đầu",
28520
28811
  otherItemText: "Khác (mô tả)",
28521
28812
  noneItemText: "Trống",
28813
+ refuseItemText: "Từ chối trả lời",
28814
+ dontKnowItemText: "Không biết",
28522
28815
  selectAllItemText: "Chọn tất cả",
28523
28816
  progressText: "Trang {0} / {1}",
28524
28817
  indexText: "{0} của {1}",
@@ -28643,7 +28936,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["vi"]
28643
28936
  // showDetails: "Show Details" => "Hiển thị chi tiết"
28644
28937
  // hideDetails: "Hide Details" => "Ẩn chi tiết"
28645
28938
  // ok: "OK" => "OK"
28646
- // cancel: "Cancel" => "Hủy"
28939
+ // cancel: "Cancel" => "Hủy"// refuseItemText: "Refuse to answer" => "Từ chối trả lời"
28940
+ // dontKnowItemText: "Don't know" => "Không biết"
28647
28941
 
28648
28942
 
28649
28943
  /***/ }),
@@ -28669,6 +28963,8 @@ var welshSurveyStrings = {
28669
28963
  startSurveyText: "Dechrau",
28670
28964
  otherItemText: "Arall (disgrifiwch)",
28671
28965
  noneItemText: "Dim",
28966
+ refuseItemText: "Gwrthod ateb",
28967
+ dontKnowItemText: "Ddim yn gwybod",
28672
28968
  selectAllItemText: "Dewis y Cyfan ",
28673
28969
  progressText: "Tudalen {0} o {1}",
28674
28970
  indexText: "{0} o {1}",
@@ -28792,7 +29088,8 @@ survey_core__WEBPACK_IMPORTED_MODULE_0__["surveyLocalization"].localeNames["cy"]
28792
29088
  // showDetails: "Show Details" => "Dangos manylion"
28793
29089
  // hideDetails: "Hide Details" => "Manylion Cuddio"
28794
29090
  // ok: "OK" => "OCÊ"
28795
- // cancel: "Cancel" => "Canslo"
29091
+ // cancel: "Cancel" => "Canslo"// refuseItemText: "Refuse to answer" => "Gwrthod ateb"
29092
+ // dontKnowItemText: "Don't know" => "Ddim yn gwybod"
28796
29093
 
28797
29094
 
28798
29095
  /***/ }),
@@ -29514,7 +29811,7 @@ var PageModel = /** @class */ (function (_super) {
29514
29811
  };
29515
29812
  Object.defineProperty(PageModel.prototype, "navigationTitle", {
29516
29813
  /**
29517
- * A caption displayed on a navigation button in the TOC or progress bar. Applies when [`showTOC`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showTOC) is `true` or when the [progress bar is visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showProgressBar) and [`progressBarType`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarType) is set to `"buttons"`.
29814
+ * A caption displayed on a navigation button in the TOC or progress bar. Applies when [`showTOC`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showTOC) is `true` or when the [progress bar is visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showProgressBar), [`progressBarType`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarType) is set to `"pages"`, and [`progressBarShowPageTitles`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarShowPageTitles) is `true`.
29518
29815
  *
29519
29816
  * If navigation titles are unspecified, the navigation buttons display page [titles](https://surveyjs.io/form-library/documentation/api-reference/page-model#title) or [names](https://surveyjs.io/form-library/documentation/pagemodel#name).
29520
29817
  */
@@ -29536,7 +29833,7 @@ var PageModel = /** @class */ (function (_super) {
29536
29833
  });
29537
29834
  Object.defineProperty(PageModel.prototype, "navigationDescription", {
29538
29835
  /**
29539
- * Explanatory text displayed under a navigation button in the progress bar. Applies when the [progress bar is visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showProgressBar) and `SurveyModel`'s [`progressBarType`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarType) property is set to `"buttons"`.
29836
+ * Explanatory text displayed under a navigation button in the progress bar. Applies when the [progress bar is visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showProgressBar), `SurveyModel`'s [`progressBarType`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarType) is set to `"pages"`, and [`progressBarShowPageTitles`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarShowPageTitles) is `true`.
29540
29837
  */
29541
29838
  get: function () {
29542
29839
  return this.getLocalizableStringText("navigationDescription");
@@ -33527,8 +33824,8 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
33527
33824
  this.popupDirection = _utils_popup__WEBPACK_IMPORTED_MODULE_1__["PopupUtils"].calculatePopupDirection(verticalPosition, actualHorizontalPosition);
33528
33825
  var pos = _utils_popup__WEBPACK_IMPORTED_MODULE_1__["PopupUtils"].calculatePosition(targetElementRect, height, width + marginLeft + marginRight, verticalPosition, actualHorizontalPosition, this.showHeader, this.model.positionMode);
33529
33826
  if (!!window) {
33530
- var newVerticalDimensions = _utils_popup__WEBPACK_IMPORTED_MODULE_1__["PopupUtils"].getCorrectedVerticalDimensions(pos.top, height, window.innerHeight);
33531
- if (!!newVerticalDimensions.height) {
33827
+ var newVerticalDimensions = _utils_popup__WEBPACK_IMPORTED_MODULE_1__["PopupUtils"].getCorrectedVerticalDimensions(pos.top, height, window.innerHeight, verticalPosition);
33828
+ if (!!newVerticalDimensions) {
33532
33829
  this.height = newVerticalDimensions.height + "px";
33533
33830
  pos.top = newVerticalDimensions.top;
33534
33831
  }
@@ -34801,6 +35098,231 @@ function createDialogOptions(componentName, data, onApply, onCancel, onHide, onS
34801
35098
  }
34802
35099
 
34803
35100
 
35101
+ /***/ }),
35102
+
35103
+ /***/ "./src/progress-buttons.ts":
35104
+ /*!*********************************!*\
35105
+ !*** ./src/progress-buttons.ts ***!
35106
+ \*********************************/
35107
+ /*! exports provided: ProgressButtons, ProgressButtonsResponsivityManager */
35108
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
35109
+
35110
+ "use strict";
35111
+ __webpack_require__.r(__webpack_exports__);
35112
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProgressButtons", function() { return ProgressButtons; });
35113
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProgressButtonsResponsivityManager", function() { return ProgressButtonsResponsivityManager; });
35114
+ /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base */ "./src/base.ts");
35115
+ /* harmony import */ var _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultCss/defaultV2Css */ "./src/defaultCss/defaultV2Css.ts");
35116
+ /* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./page */ "./src/page.ts");
35117
+ /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
35118
+ var __extends = (undefined && undefined.__extends) || (function () {
35119
+ var extendStatics = function (d, b) {
35120
+ extendStatics = Object.setPrototypeOf ||
35121
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
35122
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
35123
+ return extendStatics(d, b);
35124
+ };
35125
+ return function (d, b) {
35126
+ if (typeof b !== "function" && b !== null)
35127
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
35128
+ extendStatics(d, b);
35129
+ function __() { this.constructor = d; }
35130
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
35131
+ };
35132
+ })();
35133
+
35134
+
35135
+
35136
+
35137
+ var ProgressButtons = /** @class */ (function (_super) {
35138
+ __extends(ProgressButtons, _super);
35139
+ function ProgressButtons(survey) {
35140
+ var _this = _super.call(this) || this;
35141
+ _this.survey = survey;
35142
+ _this.onResize = _this.addEvent();
35143
+ return _this;
35144
+ }
35145
+ ProgressButtons.prototype.isListElementClickable = function (index) {
35146
+ if (!this.survey.onServerValidateQuestions ||
35147
+ this.survey.onServerValidateQuestions.isEmpty ||
35148
+ this.survey.checkErrorsMode === "onComplete") {
35149
+ return true;
35150
+ }
35151
+ return index <= this.survey.currentPageNo + 1;
35152
+ };
35153
+ ProgressButtons.prototype.getRootCss = function (container) {
35154
+ if (container === void 0) { container = "center"; }
35155
+ var result = this.survey.css.progressButtonsContainerCenter;
35156
+ if (this.survey.css.progressButtonsRoot) {
35157
+ result += " " + this.survey.css.progressButtonsRoot + " " + this.survey.css.progressButtonsRoot + "--" + (["footer", "contentBottom"].indexOf(container) !== -1 ? "bottom" : "top");
35158
+ result += " " + this.survey.css.progressButtonsRoot + "--" + (this.showItemTitles ? "with-titles" : "no-titles");
35159
+ }
35160
+ if (this.showItemNumbers && this.survey.css.progressButtonsNumbered) {
35161
+ result += " " + this.survey.css.progressButtonsNumbered;
35162
+ }
35163
+ return result;
35164
+ };
35165
+ ProgressButtons.prototype.getListElementCss = function (index) {
35166
+ if (index >= this.survey.visiblePages.length)
35167
+ return;
35168
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
35169
+ .append(this.survey.css.progressButtonsListElementPassed, this.survey.visiblePages[index].passed)
35170
+ .append(this.survey.css.progressButtonsListElementCurrent, this.survey.currentPageNo === index)
35171
+ .append(this.survey.css.progressButtonsListElementNonClickable, !this.isListElementClickable(index))
35172
+ .toString();
35173
+ };
35174
+ ProgressButtons.prototype.getScrollButtonCss = function (hasScroller, isLeftScroll) {
35175
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
35176
+ .append(this.survey.css.progressButtonsImageButtonLeft, isLeftScroll)
35177
+ .append(this.survey.css.progressButtonsImageButtonRight, !isLeftScroll)
35178
+ .append(this.survey.css.progressButtonsImageButtonHidden, !hasScroller)
35179
+ .toString();
35180
+ };
35181
+ ProgressButtons.prototype.clickListElement = function (element) {
35182
+ if (!(element instanceof _page__WEBPACK_IMPORTED_MODULE_2__["PageModel"])) {
35183
+ element = this.survey.visiblePages[element];
35184
+ }
35185
+ this.survey.tryNavigateToPage(element);
35186
+ };
35187
+ ProgressButtons.prototype.isListContainerHasScroller = function (element) {
35188
+ var listContainerElement = element.querySelector("." + this.survey.css.progressButtonsListContainer);
35189
+ if (!!listContainerElement) {
35190
+ return listContainerElement.scrollWidth > listContainerElement.offsetWidth;
35191
+ }
35192
+ return false;
35193
+ };
35194
+ ProgressButtons.prototype.isCanShowItemTitles = function (element) {
35195
+ var listContainerElement = element.querySelector("ul");
35196
+ if (!listContainerElement || listContainerElement.children.length < 2)
35197
+ return true;
35198
+ if (listContainerElement.clientWidth > listContainerElement.parentElement.clientWidth) {
35199
+ return false;
35200
+ }
35201
+ var expectedElementWidth = listContainerElement.children[0].clientWidth;
35202
+ for (var i = 0; i < listContainerElement.children.length; i++) {
35203
+ if (Math.abs(listContainerElement.children[i].clientWidth - expectedElementWidth) > 5) {
35204
+ return false;
35205
+ }
35206
+ }
35207
+ return true;
35208
+ };
35209
+ ProgressButtons.prototype.clearConnectorsWidth = function (element) {
35210
+ var listContainerElements = element.querySelectorAll(".sd-progress-buttons__connector");
35211
+ for (var i = 0; i < listContainerElements.length; i++) {
35212
+ listContainerElements[i].style.width = "";
35213
+ }
35214
+ };
35215
+ ProgressButtons.prototype.adjustConnectors = function (element) {
35216
+ var listContainerElement = element.querySelector("ul");
35217
+ if (!listContainerElement)
35218
+ return;
35219
+ var listContainerElements = element.querySelectorAll(".sd-progress-buttons__connector");
35220
+ var connectorWidth = listContainerElement.clientWidth / (listContainerElement.children.length - 1) - 4;
35221
+ for (var i = 0; i < listContainerElements.length; i++) {
35222
+ listContainerElements[i].style.width = connectorWidth + "px";
35223
+ }
35224
+ };
35225
+ Object.defineProperty(ProgressButtons.prototype, "showItemNumbers", {
35226
+ get: function () {
35227
+ if (_defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__["surveyCss"].currentType !== "defaultV2") {
35228
+ return false;
35229
+ }
35230
+ return this.survey.progressBarShowPageNumbers;
35231
+ },
35232
+ enumerable: false,
35233
+ configurable: true
35234
+ });
35235
+ Object.defineProperty(ProgressButtons.prototype, "showItemTitles", {
35236
+ get: function () {
35237
+ if (_defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__["surveyCss"].currentType !== "defaultV2") {
35238
+ return true;
35239
+ }
35240
+ return this.survey.progressBarShowPageTitles;
35241
+ },
35242
+ enumerable: false,
35243
+ configurable: true
35244
+ });
35245
+ ProgressButtons.prototype.getItemNumber = function (page) {
35246
+ var result = "";
35247
+ if (this.showItemNumbers) {
35248
+ result += this.survey.visiblePages.indexOf(page) + 1;
35249
+ }
35250
+ return result;
35251
+ };
35252
+ Object.defineProperty(ProgressButtons.prototype, "headerText", {
35253
+ get: function () {
35254
+ return this.survey.currentPage ? this.survey.currentPage.renderedNavigationTitle : "";
35255
+ },
35256
+ enumerable: false,
35257
+ configurable: true
35258
+ });
35259
+ Object.defineProperty(ProgressButtons.prototype, "footerText", {
35260
+ get: function () {
35261
+ return this.survey.progressText;
35262
+ },
35263
+ enumerable: false,
35264
+ configurable: true
35265
+ });
35266
+ ProgressButtons.prototype.processResponsiveness = function (width) {
35267
+ this.onResize.fire(this, { width: width });
35268
+ };
35269
+ return ProgressButtons;
35270
+ }(_base__WEBPACK_IMPORTED_MODULE_0__["Base"]));
35271
+
35272
+ var ProgressButtonsResponsivityManager = /** @class */ (function () {
35273
+ function ProgressButtonsResponsivityManager(model, element, viewModel) {
35274
+ var _this = this;
35275
+ this.model = model;
35276
+ this.element = element;
35277
+ this.viewModel = viewModel;
35278
+ this.criticalProperties = ["progressBarType", "progressBarShowPageTitles"];
35279
+ this.canShowItemTitles = true;
35280
+ this.processResponsiveness = function (model, options) {
35281
+ _this.viewModel.onUpdateScroller(model.isListContainerHasScroller(_this.element));
35282
+ if (!model.showItemTitles) {
35283
+ _this.model.adjustConnectors(_this.element);
35284
+ return;
35285
+ }
35286
+ if (model.survey.isMobile) {
35287
+ _this.prevWidth = options.width;
35288
+ _this.canShowItemTitles = false;
35289
+ _this.model.adjustConnectors(_this.element);
35290
+ _this.viewModel.onResize(_this.canShowItemTitles);
35291
+ return;
35292
+ }
35293
+ _this.model.clearConnectorsWidth(_this.element);
35294
+ if (_this.timer !== undefined) {
35295
+ clearTimeout(_this.timer);
35296
+ }
35297
+ _this.timer = setTimeout(function () {
35298
+ if (_this.prevWidth === undefined || _this.prevWidth < options.width && !_this.canShowItemTitles || _this.prevWidth > options.width && _this.canShowItemTitles) {
35299
+ _this.prevWidth = options.width;
35300
+ _this.canShowItemTitles = model.isCanShowItemTitles(_this.element);
35301
+ _this.viewModel.onResize(_this.canShowItemTitles);
35302
+ _this.timer = undefined;
35303
+ }
35304
+ }, 10);
35305
+ };
35306
+ this.model.survey.registerFunctionOnPropertiesValueChanged(this.criticalProperties, function () { return _this.forceUpdate(); }, "ProgressButtonsResponsivityManager" + this.viewModel.container);
35307
+ this.model.onResize.add(this.processResponsiveness);
35308
+ this.forceUpdate();
35309
+ }
35310
+ ProgressButtonsResponsivityManager.prototype.forceUpdate = function () {
35311
+ this.viewModel.onUpdateSettings();
35312
+ this.processResponsiveness(this.model, {});
35313
+ };
35314
+ ProgressButtonsResponsivityManager.prototype.dispose = function () {
35315
+ clearTimeout(this.timer);
35316
+ this.model.onResize.remove(this.processResponsiveness);
35317
+ this.model.survey.unRegisterFunctionOnPropertiesValueChanged(this.criticalProperties, "ProgressButtonsResponsivityManager" + this.viewModel.container);
35318
+ this.element = undefined;
35319
+ this.model = undefined;
35320
+ };
35321
+ return ProgressButtonsResponsivityManager;
35322
+ }());
35323
+
35324
+
35325
+
34804
35326
  /***/ }),
34805
35327
 
34806
35328
  /***/ "./src/question.ts":
@@ -38365,7 +38887,6 @@ var QuestionSelectBase = /** @class */ (function (_super) {
38365
38887
  function QuestionSelectBase(name) {
38366
38888
  var _this = _super.call(this, name) || this;
38367
38889
  _this.otherItemValue = new _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"]("other");
38368
- _this.noneItemValue = new _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"](_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].noneItemValue);
38369
38890
  _this.isSettingDefaultValue = false;
38370
38891
  _this.isSettingComment = false;
38371
38892
  _this.isRunningChoices = false;
@@ -38374,9 +38895,9 @@ var QuestionSelectBase = /** @class */ (function (_super) {
38374
38895
  _this.headItemsCount = 0;
38375
38896
  _this.footItemsCount = 0;
38376
38897
  _this.prevIsOtherSelected = false;
38377
- var noneItemText = _this.createLocalizableString("noneText", _this.noneItemValue, true, "noneItemText");
38378
- _this.noneItemValue.locOwner = _this;
38379
- _this.noneItemValue.setLocText(noneItemText);
38898
+ _this.noneItemValue = _this.createDefaultItem(_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].noneItemValue, "noneText", "noneItemText");
38899
+ _this.refuseItemValue = _this.createDefaultItem(_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].refuseItemValue, "refuseText", "refuseItemText");
38900
+ _this.dontKnowItemValue = _this.createDefaultItem(_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].dontKnowItemValue, "dontKnowText", "dontKnowItemText");
38380
38901
  _this.createItemValues("choices");
38381
38902
  _this.registerPropertyChangedHandlers(["choices"], function () {
38382
38903
  if (!_this.filterItems()) {
@@ -38384,7 +38905,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
38384
38905
  }
38385
38906
  });
38386
38907
  _this.registerPropertyChangedHandlers(["choicesFromQuestion", "choicesFromQuestionMode", "choiceValuesFromQuestion",
38387
- "choiceTextsFromQuestion", "showNoneItem", "isUsingRestful"], function () {
38908
+ "choiceTextsFromQuestion", "showNoneItem", "showRefuseItem", "showDontKnowItem", "isUsingRestful", "isMessagePanelVisible"], function () {
38388
38909
  _this.onVisibleChoicesChanged();
38389
38910
  });
38390
38911
  _this.registerPropertyChangedHandlers(["hideIfChoicesEmpty"], function () {
@@ -38552,7 +39073,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
38552
39073
  });
38553
39074
  Object.defineProperty(QuestionSelectBase.prototype, "isNoneSelected", {
38554
39075
  get: function () {
38555
- return this.hasNone && this.getIsItemValue(this.renderedValue, this.noneItem);
39076
+ return this.showNoneItem && this.getIsItemValue(this.renderedValue, this.noneItem);
38556
39077
  },
38557
39078
  enumerable: false,
38558
39079
  configurable: true
@@ -38564,6 +39085,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
38564
39085
  * When users select the "None" item in multi-select questions, all other items become unselected.
38565
39086
  * @see noneItem
38566
39087
  * @see noneText
39088
+ * @see [settings.noneItemValue](https://surveyjs.io/form-library/documentation/api-reference/settings#noneItemValue)
38567
39089
  * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
38568
39090
  */
38569
39091
  get: function () {
@@ -38617,6 +39139,115 @@ var QuestionSelectBase = /** @class */ (function (_super) {
38617
39139
  enumerable: false,
38618
39140
  configurable: true
38619
39141
  });
39142
+ Object.defineProperty(QuestionSelectBase.prototype, "showRefuseItem", {
39143
+ /**
39144
+ * Specifies whether to display the "Refuse to answer" choice item.
39145
+ *
39146
+ * When users select the "Refuse to answer" item in multi-select questions, all other items become unselected.
39147
+ * @see refuseItem
39148
+ * @see refuseItemText
39149
+ * @see [settings.refuseItemValue](https://surveyjs.io/form-library/documentation/api-reference/settings#refuseItemValue)
39150
+ * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
39151
+ */
39152
+ get: function () {
39153
+ return this.getPropertyValue("showRefuseItem");
39154
+ },
39155
+ set: function (val) {
39156
+ this.setPropertyValue("showRefuseItem", val);
39157
+ },
39158
+ enumerable: false,
39159
+ configurable: true
39160
+ });
39161
+ Object.defineProperty(QuestionSelectBase.prototype, "refuseItem", {
39162
+ /**
39163
+ * Returns the "Refuse to answer" choice item. Use this property to change the item's `value` or `text`.
39164
+ * @see showRefuseItem
39165
+ */
39166
+ get: function () {
39167
+ return this.refuseItemValue;
39168
+ },
39169
+ enumerable: false,
39170
+ configurable: true
39171
+ });
39172
+ Object.defineProperty(QuestionSelectBase.prototype, "refuseText", {
39173
+ /**
39174
+ * Gets or sets a caption for the "Refuse to answer" choice item.
39175
+ * @see showRefuseItem
39176
+ */
39177
+ get: function () {
39178
+ return this.getLocalizableStringText("refuseText");
39179
+ },
39180
+ set: function (val) {
39181
+ this.setLocalizableStringText("refuseText", val);
39182
+ },
39183
+ enumerable: false,
39184
+ configurable: true
39185
+ });
39186
+ Object.defineProperty(QuestionSelectBase.prototype, "locRefuseText", {
39187
+ get: function () {
39188
+ return this.getLocalizableString("refuseText");
39189
+ },
39190
+ enumerable: false,
39191
+ configurable: true
39192
+ });
39193
+ Object.defineProperty(QuestionSelectBase.prototype, "showDontKnowItem", {
39194
+ /**
39195
+ * Specifies whether to display the "Don't know" choice item.
39196
+ *
39197
+ * When users select the "Don't know" item in multi-select questions, all other items become unselected.
39198
+ * @see dontKnowItem
39199
+ * @see dontKnowItemText
39200
+ * @see [settings.dontKnowItemValue](https://surveyjs.io/form-library/documentation/api-reference/settings#dontKnowItemValue)
39201
+ * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
39202
+ */
39203
+ get: function () {
39204
+ return this.getPropertyValue("showDontKnowItem");
39205
+ },
39206
+ set: function (val) {
39207
+ this.setPropertyValue("showDontKnowItem", val);
39208
+ },
39209
+ enumerable: false,
39210
+ configurable: true
39211
+ });
39212
+ Object.defineProperty(QuestionSelectBase.prototype, "dontKnowItem", {
39213
+ /**
39214
+ * Returns the "Don't know" choice item. Use this property to change the item's `value` or `text`.
39215
+ * @see showDontKnowItem
39216
+ */
39217
+ get: function () {
39218
+ return this.dontKnowItemValue;
39219
+ },
39220
+ enumerable: false,
39221
+ configurable: true
39222
+ });
39223
+ Object.defineProperty(QuestionSelectBase.prototype, "dontKnowText", {
39224
+ /**
39225
+ * Gets or sets a caption for the "Don't know" choice item.
39226
+ * @see showDontKnowItem
39227
+ */
39228
+ get: function () {
39229
+ return this.getLocalizableStringText("dontKnowText");
39230
+ },
39231
+ set: function (val) {
39232
+ this.setLocalizableStringText("dontKnowText", val);
39233
+ },
39234
+ enumerable: false,
39235
+ configurable: true
39236
+ });
39237
+ Object.defineProperty(QuestionSelectBase.prototype, "locDontKnowText", {
39238
+ get: function () {
39239
+ return this.getLocalizableString("dontKnowText");
39240
+ },
39241
+ enumerable: false,
39242
+ configurable: true
39243
+ });
39244
+ QuestionSelectBase.prototype.createDefaultItem = function (defaultValue, name, locName) {
39245
+ var item = new _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"](defaultValue);
39246
+ var locStr = this.createLocalizableString(name, item, true, locName);
39247
+ item.locOwner = this;
39248
+ item.setLocText(locStr);
39249
+ return item;
39250
+ };
38620
39251
  Object.defineProperty(QuestionSelectBase.prototype, "choicesVisibleIf", {
38621
39252
  /**
38622
39253
  * A Boolean expression that is evaluated against each choice item. If the expression evaluates to `false`, the choice item becomes hidden.
@@ -39038,7 +39669,11 @@ var QuestionSelectBase = /** @class */ (function (_super) {
39038
39669
  return false;
39039
39670
  if (includeOther && val == this.otherItem.value)
39040
39671
  return false;
39041
- if (this.hasNone && val == this.noneItem.value)
39672
+ if (this.showNoneItem && val == this.noneItem.value)
39673
+ return false;
39674
+ if (this.showRefuseItem && val == this.refuseItem.value)
39675
+ return false;
39676
+ if (this.showDontKnowItem && val == this.dontKnowItem.value)
39042
39677
  return false;
39043
39678
  var choices = isFilteredChoices
39044
39679
  ? this.getFilteredChoices()
@@ -39360,7 +39995,9 @@ var QuestionSelectBase = /** @class */ (function (_super) {
39360
39995
  };
39361
39996
  QuestionSelectBase.prototype.canUseFilteredChoices = function () {
39362
39997
  return (!this.isAddDefaultItems &&
39363
- !this.hasNone &&
39998
+ !this.showNoneItem &&
39999
+ !this.showRefuseItem &&
40000
+ !this.showDontKnowItem &&
39364
40001
  !this.hasOther &&
39365
40002
  this.choicesOrder == "none");
39366
40003
  };
@@ -39378,7 +40015,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
39378
40015
  QuestionSelectBase.prototype.addToVisibleChoices = function (items, isAddAll) {
39379
40016
  this.headItemsCount = 0;
39380
40017
  this.footItemsCount = 0;
39381
- if (!this.hasChoicesUrl) {
40018
+ if (!this.isEmptyActiveChoicesInDesign) {
39382
40019
  this.addNewItemToVisibleChoices(items, isAddAll);
39383
40020
  }
39384
40021
  var dict = new Array();
@@ -39413,15 +40050,23 @@ var QuestionSelectBase = /** @class */ (function (_super) {
39413
40050
  }
39414
40051
  };
39415
40052
  QuestionSelectBase.prototype.addNonChoicesItems = function (dict, isAddAll) {
39416
- if (this.supportNone() && this.canShowOptionItem(this.noneItem, isAddAll, this.hasNone)) {
39417
- this.addNonChoiceItem(dict, this.noneItem, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.noneItem);
40053
+ if (this.supportNone()) {
40054
+ this.addNonChoiceItem(dict, this.noneItem, isAddAll, this.showNoneItem, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.noneItem);
40055
+ }
40056
+ if (this.supportRefuse()) {
40057
+ this.addNonChoiceItem(dict, this.refuseItem, isAddAll, this.showRefuseItem, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.refuseItem);
39418
40058
  }
39419
- if (this.supportOther() && this.canShowOptionItem(this.otherItem, isAddAll, this.hasOther)) {
39420
- this.addNonChoiceItem(dict, this.otherItem, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.otherItem);
40059
+ if (this.supportDontKnow()) {
40060
+ this.addNonChoiceItem(dict, this.dontKnowItem, isAddAll, this.showDontKnowItem, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.dontKnowItem);
40061
+ }
40062
+ if (this.supportOther()) {
40063
+ this.addNonChoiceItem(dict, this.otherItem, isAddAll, this.hasOther, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.otherItem);
39421
40064
  }
39422
40065
  };
39423
- QuestionSelectBase.prototype.addNonChoiceItem = function (dict, item, order) {
39424
- order.forEach(function (val) { return dict.push({ index: val, item: item }); });
40066
+ QuestionSelectBase.prototype.addNonChoiceItem = function (dict, item, isAddAll, showItem, order) {
40067
+ if (this.canShowOptionItem(item, isAddAll, showItem)) {
40068
+ order.forEach(function (val) { return dict.push({ index: val, item: item }); });
40069
+ }
39425
40070
  };
39426
40071
  QuestionSelectBase.prototype.canShowOptionItem = function (item, isAddAll, hasItem) {
39427
40072
  var res = (isAddAll && (!!this.canShowOptionItemCallback ? this.canShowOptionItemCallback(item) : true)) || hasItem;
@@ -39435,7 +40080,11 @@ var QuestionSelectBase = /** @class */ (function (_super) {
39435
40080
  if (item === this.otherItem)
39436
40081
  return this.hasOther;
39437
40082
  if (item === this.noneItem)
39438
- return this.hasNone;
40083
+ return this.showNoneItem;
40084
+ if (item === this.refuseItem)
40085
+ return this.showRefuseItem;
40086
+ if (item === this.dontKnowItem)
40087
+ return this.showDontKnowItem;
39439
40088
  if (item === this.newItemValue)
39440
40089
  return false;
39441
40090
  return true;
@@ -39542,13 +40191,30 @@ var QuestionSelectBase = /** @class */ (function (_super) {
39542
40191
  question.addDependedQuestion(this);
39543
40192
  return this.getChoicesFromArrayQuestion(question);
39544
40193
  }
39545
- if (this.isDesignModeV2 && this.hasChoicesUrl)
40194
+ if (this.isEmptyActiveChoicesInDesign)
39546
40195
  return [];
39547
40196
  return this.choicesFromUrl ? this.choicesFromUrl : this.getChoices();
39548
40197
  },
39549
40198
  enumerable: false,
39550
40199
  configurable: true
39551
40200
  });
40201
+ Object.defineProperty(QuestionSelectBase.prototype, "isMessagePanelVisible", {
40202
+ get: function () {
40203
+ return this.getPropertyValue("isMessagePanelVisible", false);
40204
+ },
40205
+ set: function (val) {
40206
+ this.setPropertyValue("isMessagePanelVisible", val);
40207
+ },
40208
+ enumerable: false,
40209
+ configurable: true
40210
+ });
40211
+ Object.defineProperty(QuestionSelectBase.prototype, "isEmptyActiveChoicesInDesign", {
40212
+ get: function () {
40213
+ return this.isDesignModeV2 && (this.hasChoicesUrl || this.isMessagePanelVisible);
40214
+ },
40215
+ enumerable: false,
40216
+ configurable: true
40217
+ });
39552
40218
  QuestionSelectBase.prototype.getCarryForwardQuestion = function (data) {
39553
40219
  var question = this.findCarryForwardQuestion(data);
39554
40220
  var selBaseQuestion = this.getQuestionWithChoicesCore(question);
@@ -39619,7 +40285,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
39619
40285
  : undefined;
39620
40286
  var choices = question.visibleChoices;
39621
40287
  for (var i = 0; i < choices.length; i++) {
39622
- if (this.isBuiltInChoice(choices[i], question))
40288
+ if (question.isBuiltInChoice(choices[i]))
39623
40289
  continue;
39624
40290
  if (isSelected === undefined) {
39625
40291
  res.push(this.copyChoiceItem(choices[i]));
@@ -39648,7 +40314,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
39648
40314
  choices = this.visibleChoices;
39649
40315
  }
39650
40316
  for (var i = 0; i < choices.length; i++) {
39651
- if (!this.isBuiltInChoice(choices[i], this))
40317
+ if (!this.isBuiltInChoice(choices[i]))
39652
40318
  return true;
39653
40319
  }
39654
40320
  return false;
@@ -39656,10 +40322,16 @@ var QuestionSelectBase = /** @class */ (function (_super) {
39656
40322
  enumerable: false,
39657
40323
  configurable: true
39658
40324
  });
39659
- QuestionSelectBase.prototype.isBuiltInChoice = function (item, question) {
39660
- return (item === question.noneItem ||
39661
- item === question.otherItem ||
39662
- item === question.newItemValue);
40325
+ QuestionSelectBase.prototype.isBuiltInChoice = function (item) {
40326
+ return this.isNoneItem(item) ||
40327
+ item === this.otherItem ||
40328
+ item === this.newItemValue;
40329
+ };
40330
+ QuestionSelectBase.prototype.isNoneItem = function (item) {
40331
+ return this.getNoneItems().indexOf(item) > -1;
40332
+ };
40333
+ QuestionSelectBase.prototype.getNoneItems = function () {
40334
+ return [this.noneItem, this.refuseItem, this.dontKnowItem];
39663
40335
  };
39664
40336
  QuestionSelectBase.prototype.getChoices = function () {
39665
40337
  return this.choices;
@@ -39670,6 +40342,12 @@ var QuestionSelectBase = /** @class */ (function (_super) {
39670
40342
  QuestionSelectBase.prototype.supportNone = function () {
39671
40343
  return this.isSupportProperty("showNoneItem");
39672
40344
  };
40345
+ QuestionSelectBase.prototype.supportRefuse = function () {
40346
+ return this.isSupportProperty("showRefuseItem");
40347
+ };
40348
+ QuestionSelectBase.prototype.supportDontKnow = function () {
40349
+ return this.isSupportProperty("showDontKnowItem");
40350
+ };
39673
40351
  QuestionSelectBase.prototype.isSupportProperty = function (propName) {
39674
40352
  return (!this.isDesignMode ||
39675
40353
  this.getPropertyByName(propName).visible);
@@ -39964,15 +40642,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
39964
40642
  configurable: true
39965
40643
  });
39966
40644
  QuestionSelectBase.prototype.clearIncorrectValues = function () {
39967
- if (!this.hasValueToClearIncorrectValues())
39968
- return;
39969
- if (this.carryForwardQuestion && !this.carryForwardQuestion.isReady)
39970
- return;
39971
- if (!!this.survey &&
39972
- this.survey.questionsByValueName(this.getValueName()).length > 1)
39973
- return;
39974
- if (this.hasChoicesUrl &&
39975
- (!this.choicesFromUrl || this.choicesFromUrl.length == 0))
40645
+ if (!this.hasValueToClearIncorrectValues() || !this.canClearIncorrectValues())
39976
40646
  return;
39977
40647
  if (this.clearIncorrectValuesCallback) {
39978
40648
  this.clearIncorrectValuesCallback();
@@ -39981,6 +40651,15 @@ var QuestionSelectBase = /** @class */ (function (_super) {
39981
40651
  this.clearIncorrectValuesCore();
39982
40652
  }
39983
40653
  };
40654
+ QuestionSelectBase.prototype.canClearIncorrectValues = function () {
40655
+ if (this.carryForwardQuestion && !this.carryForwardQuestion.isReady)
40656
+ return false;
40657
+ if (!!this.survey && this.survey.questionsByValueName(this.getValueName()).length > 1)
40658
+ return false;
40659
+ if (this.hasChoicesUrl && (!this.choicesFromUrl || this.choicesFromUrl.length == 0))
40660
+ return false;
40661
+ return true;
40662
+ };
39984
40663
  QuestionSelectBase.prototype.hasValueToClearIncorrectValues = function () {
39985
40664
  if (!!this.survey && this.survey.keepIncorrectValues)
39986
40665
  return false;
@@ -40116,7 +40795,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
40116
40795
  Object.defineProperty(QuestionSelectBase.prototype, "dataChoices", {
40117
40796
  get: function () {
40118
40797
  var _this = this;
40119
- return this.visibleChoices.filter(function (item) { return !_this.isBuiltInChoice(item, _this); });
40798
+ return this.visibleChoices.filter(function (item) { return !_this.isBuiltInChoice(item); });
40120
40799
  },
40121
40800
  enumerable: false,
40122
40801
  configurable: true
@@ -40458,6 +41137,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("selectbase", [
40458
41137
  { name: "separateSpecialChoices:boolean", visible: false },
40459
41138
  { name: "showOtherItem:boolean", alternativeName: "hasOther" },
40460
41139
  { name: "showNoneItem:boolean", alternativeName: "hasNone" },
41140
+ { name: "showRefuseItem:boolean", visible: false },
41141
+ { name: "showDontKnowItem:boolean", visible: false },
40461
41142
  {
40462
41143
  name: "otherPlaceholder",
40463
41144
  alternativeName: "otherPlaceHolder",
@@ -40472,7 +41153,23 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("selectbase", [
40472
41153
  serializationProperty: "locNoneText",
40473
41154
  dependsOn: "showNoneItem",
40474
41155
  visibleIf: function (obj) {
40475
- return obj.hasNone;
41156
+ return obj.showNoneItem;
41157
+ },
41158
+ },
41159
+ {
41160
+ name: "refuseText",
41161
+ serializationProperty: "locRefuseText",
41162
+ dependsOn: "showRefuseItem",
41163
+ visibleIf: function (obj) {
41164
+ return obj.showRefuseItem;
41165
+ },
41166
+ },
41167
+ {
41168
+ name: "dontKnowText",
41169
+ serializationProperty: "locDontKnowText",
41170
+ dependsOn: "showDontKnowItem",
41171
+ visibleIf: function (obj) {
41172
+ return obj.showDontKnowItem;
40476
41173
  },
40477
41174
  },
40478
41175
  {
@@ -40876,6 +41573,21 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
40876
41573
  QuestionBooleanModel.prototype.createActionContainer = function (allowAdaptiveActions) {
40877
41574
  return _super.prototype.createActionContainer.call(this, this.renderAs !== "checkbox");
40878
41575
  };
41576
+ Object.defineProperty(QuestionBooleanModel.prototype, "isNewA11yStructure", {
41577
+ //a11y
41578
+ get: function () {
41579
+ return true;
41580
+ },
41581
+ enumerable: false,
41582
+ configurable: true
41583
+ });
41584
+ Object.defineProperty(QuestionBooleanModel.prototype, "a11y_input_ariaRole", {
41585
+ get: function () {
41586
+ return "switch";
41587
+ },
41588
+ enumerable: false,
41589
+ configurable: true
41590
+ });
40879
41591
  __decorate([
40880
41592
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
40881
41593
  ], QuestionBooleanModel.prototype, "booleanValueRendered", void 0);
@@ -41310,8 +42022,11 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
41310
42022
  * @see showSelectAllItem
41311
42023
  */
41312
42024
  get: function () {
41313
- if (this.isItemSelected(this.noneItem))
41314
- return false;
42025
+ var noneItems = this.getNoneItems();
42026
+ for (var i = 0; i < noneItems.length; i++) {
42027
+ if (this.isItemSelected(noneItems[i]))
42028
+ return false;
42029
+ }
41315
42030
  var items = this.getVisibleEnableItems();
41316
42031
  if (items.length === 0)
41317
42032
  return false;
@@ -41368,19 +42083,24 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
41368
42083
  }
41369
42084
  }
41370
42085
  else {
41371
- var newValue = [].concat(this.renderedValue || []);
41372
- var index = newValue.indexOf(item.value);
41373
- if (checked) {
41374
- if (index < 0) {
41375
- newValue.push(item.value);
41376
- }
42086
+ if (this.isNoneItem(item)) {
42087
+ this.renderedValue = [item.value];
41377
42088
  }
41378
42089
  else {
41379
- if (index > -1) {
41380
- newValue.splice(index, 1);
42090
+ var newValue = [].concat(this.renderedValue || []);
42091
+ var index = newValue.indexOf(item.value);
42092
+ if (checked) {
42093
+ if (index < 0) {
42094
+ newValue.push(item.value);
42095
+ }
42096
+ }
42097
+ else {
42098
+ if (index > -1) {
42099
+ newValue.splice(index, 1);
42100
+ }
41381
42101
  }
42102
+ this.renderedValue = newValue;
41382
42103
  }
41383
- this.renderedValue = newValue;
41384
42104
  }
41385
42105
  };
41386
42106
  QuestionCheckboxModel.prototype.isItemSelectedCore = function (item) {
@@ -41609,21 +42329,7 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
41609
42329
  value = [];
41610
42330
  if (this.isTwoValueEquals(value, newValue))
41611
42331
  return;
41612
- if (this.hasNone) {
41613
- var prevNoneIndex = this.noneIndexInArray(value);
41614
- var newNoneIndex = this.noneIndexInArray(newValue);
41615
- if (prevNoneIndex > -1) {
41616
- if (newNoneIndex > -1 && newValue.length > 1) {
41617
- newValue.splice(newNoneIndex, 1);
41618
- }
41619
- }
41620
- else {
41621
- if (newNoneIndex > -1) {
41622
- newValue.splice(0, newValue.length);
41623
- newValue.push(this.noneItem.value);
41624
- }
41625
- }
41626
- }
42332
+ this.removeNoneItemsValues(value, newValue);
41627
42333
  _super.prototype.setNewValue.call(this, newValue);
41628
42334
  };
41629
42335
  QuestionCheckboxModel.prototype.getIsMultipleValue = function () {
@@ -41651,15 +42357,47 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
41651
42357
  }
41652
42358
  return -1;
41653
42359
  };
41654
- QuestionCheckboxModel.prototype.noneIndexInArray = function (val) {
41655
- if (!val || !Array.isArray(val))
41656
- return -1;
41657
- var noneValue = this.noneItem.value;
41658
- for (var i = 0; i < val.length; i++) {
41659
- if (val[i] == noneValue)
41660
- return i;
42360
+ QuestionCheckboxModel.prototype.removeNoneItemsValues = function (value, newValue) {
42361
+ var noneValues = [];
42362
+ if (this.showNoneItem)
42363
+ noneValues.push(this.noneItem.value);
42364
+ if (this.showRefuseItem)
42365
+ noneValues.push(this.refuseItem.value);
42366
+ if (this.showDontKnowItem)
42367
+ noneValues.push(this.dontKnowItem.value);
42368
+ if (noneValues.length > 0) {
42369
+ var prevNone = this.noneIndexInArray(value, noneValues);
42370
+ var newNone = this.noneIndexInArray(newValue, noneValues);
42371
+ if (prevNone.index > -1) {
42372
+ if (prevNone.val === newNone.val) {
42373
+ if (newValue.length > 0) {
42374
+ newValue.splice(newNone.index, 1);
42375
+ }
42376
+ }
42377
+ else {
42378
+ var prevNewNone = this.noneIndexInArray(newValue, [prevNone.val]);
42379
+ if (prevNewNone.index > -1 && prevNewNone.index < newValue.length - 1) {
42380
+ newValue.splice(prevNewNone.index, 1);
42381
+ }
42382
+ }
42383
+ }
42384
+ else {
42385
+ if (newNone.index > -1 && newValue.length > 1) {
42386
+ var itemVal = this.convertValueToObject([newNone.val])[0];
42387
+ newValue.splice(0, newValue.length, itemVal);
42388
+ }
42389
+ }
41661
42390
  }
41662
- return -1;
42391
+ };
42392
+ QuestionCheckboxModel.prototype.noneIndexInArray = function (val, noneValues) {
42393
+ if (!Array.isArray(val))
42394
+ return { index: -1, val: undefined };
42395
+ for (var i = val.length - 1; i >= 0; i--) {
42396
+ var index = noneValues.indexOf(this.getRealValue(val[i]));
42397
+ if (index > -1)
42398
+ return { index: i, val: noneValues[index] };
42399
+ }
42400
+ return { index: -1, val: undefined };
41663
42401
  };
41664
42402
  QuestionCheckboxModel.prototype.canUseFilteredChoices = function () {
41665
42403
  return !this.hasSelectAll && _super.prototype.canUseFilteredChoices.call(this);
@@ -41669,12 +42407,12 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
41669
42407
  };
41670
42408
  QuestionCheckboxModel.prototype.addNonChoicesItems = function (dict, isAddAll) {
41671
42409
  _super.prototype.addNonChoicesItems.call(this, dict, isAddAll);
41672
- if (this.supportSelectAll() && this.canShowOptionItem(this.selectAllItem, isAddAll, this.hasSelectAll)) {
41673
- this.addNonChoiceItem(dict, this.selectAllItem, _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].specialChoicesOrder.selectAllItem);
42410
+ if (this.supportSelectAll()) {
42411
+ this.addNonChoiceItem(dict, this.selectAllItem, isAddAll, this.hasSelectAll, _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].specialChoicesOrder.selectAllItem);
41674
42412
  }
41675
42413
  };
41676
- QuestionCheckboxModel.prototype.isBuiltInChoice = function (item, question) {
41677
- return item === question.selectAllItem || _super.prototype.isBuiltInChoice.call(this, item, question);
42414
+ QuestionCheckboxModel.prototype.isBuiltInChoice = function (item) {
42415
+ return item === this.selectAllItem || _super.prototype.isBuiltInChoice.call(this, item);
41678
42416
  };
41679
42417
  QuestionCheckboxModel.prototype.isItemInList = function (item) {
41680
42418
  if (item == this.selectAllItem)
@@ -42291,6 +43029,35 @@ var ComponentQuestionJSON = /** @class */ (function () {
42291
43029
  enumerable: false,
42292
43030
  configurable: true
42293
43031
  });
43032
+ ComponentQuestionJSON.prototype.getDynamicProperties = function () {
43033
+ if (!Array.isArray(this.dynamicProperties)) {
43034
+ }
43035
+ this.dynamicProperties = this.calcDynamicProperties();
43036
+ return this.dynamicProperties;
43037
+ };
43038
+ ComponentQuestionJSON.prototype.calcDynamicProperties = function () {
43039
+ var baseProps = this.json.inheritBaseProps;
43040
+ if (!baseProps || !this.json.questionJSON)
43041
+ return [];
43042
+ var type = this.json.questionJSON.type;
43043
+ if (!type)
43044
+ return [];
43045
+ if (Array.isArray(baseProps)) {
43046
+ var props_1 = [];
43047
+ baseProps.forEach(function (name) {
43048
+ var prop = _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].findProperty(type, name);
43049
+ if (prop) {
43050
+ props_1.push(prop);
43051
+ }
43052
+ });
43053
+ return props_1;
43054
+ }
43055
+ var invalidNames = [];
43056
+ for (var key in this.json.questionJSON) {
43057
+ invalidNames.push(key);
43058
+ }
43059
+ return _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].getDynamicPropertiesByTypes(this.name, type, invalidNames);
43060
+ };
42294
43061
  return ComponentQuestionJSON;
42295
43062
  }());
42296
43063
 
@@ -42632,8 +43399,18 @@ var QuestionCustomModel = /** @class */ (function (_super) {
42632
43399
  QuestionCustomModel.prototype.getTemplate = function () {
42633
43400
  return "custom";
42634
43401
  };
43402
+ QuestionCustomModel.prototype.getDynamicProperties = function () {
43403
+ return this.customQuestion.getDynamicProperties() || [];
43404
+ };
43405
+ QuestionCustomModel.prototype.getDynamicType = function () {
43406
+ return this.questionWrapper ? this.questionWrapper.getType() : "question";
43407
+ };
43408
+ QuestionCustomModel.prototype.getOriginalObj = function () {
43409
+ return this.questionWrapper;
43410
+ };
42635
43411
  QuestionCustomModel.prototype.createWrapper = function () {
42636
43412
  this.questionWrapper = this.createQuestion();
43413
+ this.createDynamicProperties(this.questionWrapper);
42637
43414
  };
42638
43415
  QuestionCustomModel.prototype.getElement = function () {
42639
43416
  return this.contentQuestion;
@@ -42808,6 +43585,14 @@ var QuestionCustomModel = /** @class */ (function (_super) {
42808
43585
  }
42809
43586
  this.isSettingValueChanged = false;
42810
43587
  };
43588
+ QuestionCustomModel.prototype.createDynamicProperties = function (el) {
43589
+ if (!el)
43590
+ return;
43591
+ var props = this.getDynamicProperties();
43592
+ if (Array.isArray(props)) {
43593
+ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addDynamicPropertiesIntoObj(this, el, props);
43594
+ }
43595
+ };
42811
43596
  QuestionCustomModel.prototype.initElement = function (el) {
42812
43597
  var _this = this;
42813
43598
  _super.prototype.initElement.call(this, el);
@@ -43304,7 +44089,7 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
43304
44089
  }
43305
44090
  };
43306
44091
  QuestionDropdownModel.prototype.supportGoNextPageAutomatic = function () {
43307
- return true;
44092
+ return !this.isOtherSelected;
43308
44093
  };
43309
44094
  QuestionDropdownModel.prototype.getChoices = function () {
43310
44095
  var items = _super.prototype.getChoices.call(this);
@@ -43553,6 +44338,9 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
43553
44338
  }
43554
44339
  })
43555
44340
  ], QuestionDropdownModel.prototype, "searchEnabled", void 0);
44341
+ __decorate([
44342
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
44343
+ ], QuestionDropdownModel.prototype, "searchMode", void 0);
43556
44344
  __decorate([
43557
44345
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
43558
44346
  ], QuestionDropdownModel.prototype, "inputHasValue", void 0);
@@ -43580,6 +44368,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("dropdown", [
43580
44368
  { name: "autocomplete", alternativeName: "autoComplete", choices: _settings__WEBPACK_IMPORTED_MODULE_5__["settings"].questions.dataList, },
43581
44369
  { name: "renderAs", default: "default", visible: false },
43582
44370
  { name: "searchEnabled:boolean", default: true, visible: false },
44371
+ { name: "searchMode", default: "contains", choices: ["contains", "startsWith"], },
43583
44372
  { name: "choicesLazyLoadEnabled:boolean", default: false, visible: false },
43584
44373
  { name: "choicesLazyLoadPageSize:number", default: 25, visible: false },
43585
44374
  { name: "inputFieldComponent", visible: false },
@@ -44169,6 +44958,9 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("expression", [
44169
44958
  return getCurrecyCodes();
44170
44959
  },
44171
44960
  default: "USD",
44961
+ visibleIf: function (obj) {
44962
+ return obj.displayStyle === "currency";
44963
+ }
44172
44964
  },
44173
44965
  { name: "maximumFractionDigits:number", default: -1 },
44174
44966
  { name: "minimumFractionDigits:number", default: -1 },
@@ -44442,7 +45234,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
44442
45234
  };
44443
45235
  _this.doClean = function () {
44444
45236
  if (_this.needConfirmRemoveFile) {
44445
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(_this.confirmRemoveAllMessage, function () { _this.clearFilesCore(); });
45237
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(_this.confirmRemoveAllMessage, function () { _this.clearFilesCore(); }, undefined, _this.getLocale());
44446
45238
  return;
44447
45239
  }
44448
45240
  _this.clearFilesCore();
@@ -45332,7 +46124,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
45332
46124
  QuestionFileModel.prototype.doRemoveFile = function (data) {
45333
46125
  var _this = this;
45334
46126
  if (this.needConfirmRemoveFile) {
45335
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(this.getConfirmRemoveMessage(data.name), function () { _this.removeFileCore(data); });
46127
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(this.getConfirmRemoveMessage(data.name), function () { _this.removeFileCore(data); }, undefined, this.getLocale());
45336
46128
  return;
45337
46129
  }
45338
46130
  this.removeFileCore(data);
@@ -46140,12 +46932,10 @@ var QuestionImagePickerModel = /** @class */ (function (_super) {
46140
46932
  enumerable: false,
46141
46933
  configurable: true
46142
46934
  });
46143
- QuestionImagePickerModel.prototype.supportOther = function () {
46144
- return false;
46145
- };
46146
- QuestionImagePickerModel.prototype.supportNone = function () {
46147
- return false;
46148
- };
46935
+ QuestionImagePickerModel.prototype.supportOther = function () { return false; };
46936
+ QuestionImagePickerModel.prototype.supportNone = function () { return false; };
46937
+ QuestionImagePickerModel.prototype.supportRefuse = function () { return false; };
46938
+ QuestionImagePickerModel.prototype.supportDontKnow = function () { return false; };
46149
46939
  QuestionImagePickerModel.prototype.isAnswerCorrect = function () {
46150
46940
  if (!this.multiSelect)
46151
46941
  return _super.prototype.isAnswerCorrect.call(this);
@@ -46369,7 +47159,7 @@ var QuestionImagePickerModel = /** @class */ (function (_super) {
46369
47159
  enumerable: false,
46370
47160
  configurable: true
46371
47161
  });
46372
- QuestionImagePickerModel.prototype.isBuiltInChoice = function (item, question) {
47162
+ QuestionImagePickerModel.prototype.isBuiltInChoice = function (item) {
46373
47163
  return false;
46374
47164
  };
46375
47165
  QuestionImagePickerModel.prototype.addToVisibleChoices = function (items, isAddAll) {
@@ -46520,6 +47310,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("imagepicker", [
46520
47310
  { name: "showOtherItem", visible: false },
46521
47311
  { name: "otherText", visible: false },
46522
47312
  { name: "showNoneItem", visible: false },
47313
+ { name: "showRefuseItem", visible: false },
47314
+ { name: "showDontKnowItem", visible: false },
46523
47315
  { name: "noneText", visible: false },
46524
47316
  { name: "optionsCaption", visible: false },
46525
47317
  { name: "otherErrorText", visible: false },
@@ -46626,7 +47418,7 @@ var MatrixRowModel = /** @class */ (function (_super) {
46626
47418
  _this.item = item;
46627
47419
  _this.fullName = fullName;
46628
47420
  _this.data = data;
46629
- _this.value = value;
47421
+ _this.setValueDirectly(value);
46630
47422
  _this.cellClick = function (column) {
46631
47423
  _this.value = column.value;
46632
47424
  };
@@ -47094,6 +47886,11 @@ var QuestionMatrixModel = /** @class */ (function (_super) {
47094
47886
  configurable: true
47095
47887
  });
47096
47888
  Object.defineProperty(QuestionMatrixModel.prototype, "cells", {
47889
+ /**
47890
+ * An array of matrix cells. Use this array to get or set cell values.
47891
+ *
47892
+ * [View Demo](https://surveyjs.io/form-library/examples/questiontype-matrix-rubric/ (linkStyle))
47893
+ */
47097
47894
  get: function () {
47098
47895
  return this.cellsValue;
47099
47896
  },
@@ -51302,32 +52099,8 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
51302
52099
  }
51303
52100
  };
51304
52101
  MatrixDropdownColumn.prototype.addProperties = function (curCellType) {
51305
- var question = this.templateQuestion;
51306
- var properties = this.getProperties(curCellType);
51307
- for (var i = 0; i < properties.length; i++) {
51308
- var prop = properties[i];
51309
- this.addProperty(question, prop.name, false);
51310
- if (prop.serializationProperty) {
51311
- this.addProperty(question, prop.serializationProperty, true);
51312
- }
51313
- if (prop.alternativeName) {
51314
- this.addProperty(question, prop.alternativeName, false);
51315
- }
51316
- }
51317
- };
51318
- MatrixDropdownColumn.prototype.addProperty = function (question, propName, isReadOnly) {
51319
- var desc = {
51320
- configurable: true,
51321
- get: function () {
51322
- return question[propName];
51323
- },
51324
- };
51325
- if (!isReadOnly) {
51326
- desc["set"] = function (v) {
51327
- question[propName] = v;
51328
- };
51329
- }
51330
- Object.defineProperty(this, propName, desc);
52102
+ var props = this.getProperties(curCellType);
52103
+ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addDynamicPropertiesIntoObj(this, this.templateQuestion, props);
51331
52104
  };
51332
52105
  return MatrixDropdownColumn;
51333
52106
  }(_base__WEBPACK_IMPORTED_MODULE_1__["Base"]));
@@ -53272,7 +54045,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
53272
54045
  confirmDelete = this.isRequireConfirmOnRowDelete(index);
53273
54046
  }
53274
54047
  if (confirmDelete) {
53275
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removeRowAsync(index, row); });
54048
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removeRowAsync(index, row); }, undefined, this.getLocale());
53276
54049
  return;
53277
54050
  }
53278
54051
  this.removeRowAsync(index, row);
@@ -55845,9 +56618,8 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
55845
56618
  }
55846
56619
  }
55847
56620
  }
55848
- var removedPanels = [];
55849
56621
  if (val < this.panelCount) {
55850
- removedPanels = this.panelsCore.splice(val, this.panelCount - val);
56622
+ this.panelsCore.splice(val, this.panelCount - val);
55851
56623
  }
55852
56624
  this.setValueAfterPanelsCreating();
55853
56625
  this.setValueBasedOnPanelCount();
@@ -56453,7 +57225,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
56453
57225
  if (!this.canRemovePanel)
56454
57226
  return;
56455
57227
  if (this.isRequireConfirmOnDelete(value)) {
56456
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removePanel(value); });
57228
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removePanel(value); }, undefined, this.getLocale());
56457
57229
  }
56458
57230
  else {
56459
57231
  this.removePanel(value);
@@ -56558,7 +57330,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
56558
57330
  }
56559
57331
  };
56560
57332
  QuestionPanelDynamicModel.prototype.getQuestionFromArray = function (name, index) {
56561
- if (index >= this.panelCount)
57333
+ if (index < 0 || index >= this.panelsCore.length)
56562
57334
  return null;
56563
57335
  return this.panelsCore[index].getQuestionByName(name);
56564
57336
  };
@@ -56862,10 +57634,13 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
56862
57634
  };
56863
57635
  QuestionPanelDynamicModel.prototype.clearValueInPanelsIfInvisible = function (reason) {
56864
57636
  for (var i = 0; i < this.panelsCore.length; i++) {
56865
- var questions = this.panelsCore[i].questions;
57637
+ var panel = this.panelsCore[i];
57638
+ var questions = panel.questions;
56866
57639
  this.isSetPanelItemData = {};
56867
57640
  for (var j = 0; j < questions.length; j++) {
56868
57641
  var q = questions[j];
57642
+ if (q.visible && !panel.isVisible)
57643
+ continue;
56869
57644
  q.clearValueIfInvisible(reason);
56870
57645
  this.isSetPanelItemData[q.getValueName()] = this.maxCheckCount + 1;
56871
57646
  }
@@ -57714,7 +58489,7 @@ var QuestionRadiogroupModel = /** @class */ (function (_super) {
57714
58489
  configurable: true
57715
58490
  });
57716
58491
  QuestionRadiogroupModel.prototype.supportGoNextPageAutomatic = function () {
57717
- return this.isMouseDown === true;
58492
+ return this.isMouseDown === true && !this.isOtherSelected;
57718
58493
  };
57719
58494
  QuestionRadiogroupModel.prototype.setNewComment = function (newValue) {
57720
58495
  this.isMouseDown = true;
@@ -57842,8 +58617,11 @@ var QuestionRankingModel = /** @class */ (function (_super) {
57842
58617
  _this.domNode = null;
57843
58618
  _this.onVisibleChoicesChanged = function () {
57844
58619
  _super.prototype.onVisibleChoicesChanged.call(_this);
58620
+ if (_this.carryForwardStartUnranked && !_this.isValueSetByUser && !_this.selectToRankEnabled) {
58621
+ _this.value = [];
58622
+ }
57845
58623
  // ranking question with only one choice doesn't make sense
57846
- if (_this.visibleChoices.length === 1) {
58624
+ if (_this.visibleChoices.length === 1 && !_this.selectToRankEnabled) {
57847
58625
  _this.value = [];
57848
58626
  _this.value.push(_this.visibleChoices[0].value);
57849
58627
  _this.updateRankingChoices();
@@ -57916,12 +58694,14 @@ var QuestionRankingModel = /** @class */ (function (_super) {
57916
58694
  itemsNodes[index].focus();
57917
58695
  }
57918
58696
  };
58697
+ _this.isValueSetByUser = false;
57919
58698
  _this.setValue = function () {
57920
58699
  var value = [];
57921
58700
  _this.rankingChoices.forEach(function (choice) {
57922
58701
  value.push(choice.value);
57923
58702
  });
57924
58703
  _this.value = value;
58704
+ _this.isValueSetByUser = true;
57925
58705
  };
57926
58706
  _this.createNewArray("rankingChoices");
57927
58707
  _this.registerFunctionOnPropertyValueChanged("selectToRankEnabled", function () {
@@ -58177,15 +58957,11 @@ var QuestionRankingModel = /** @class */ (function (_super) {
58177
58957
  QuestionRankingModel.prototype.beforeDestroyQuestionElement = function (el) {
58178
58958
  _super.prototype.beforeDestroyQuestionElement.call(this, el);
58179
58959
  };
58180
- QuestionRankingModel.prototype.supportSelectAll = function () {
58181
- return false;
58182
- };
58183
- QuestionRankingModel.prototype.supportOther = function () {
58184
- return false;
58185
- };
58186
- QuestionRankingModel.prototype.supportNone = function () {
58187
- return false;
58188
- };
58960
+ QuestionRankingModel.prototype.supportSelectAll = function () { return false; };
58961
+ QuestionRankingModel.prototype.supportOther = function () { return false; };
58962
+ QuestionRankingModel.prototype.supportNone = function () { return false; };
58963
+ QuestionRankingModel.prototype.supportRefuse = function () { return false; };
58964
+ QuestionRankingModel.prototype.supportDontKnow = function () { return false; };
58189
58965
  QuestionRankingModel.prototype.handleKeydownSelectToRank = function (event, movedElement) {
58190
58966
  if (this.isDesignMode)
58191
58967
  return;
@@ -58354,6 +59130,9 @@ var QuestionRankingModel = /** @class */ (function (_super) {
58354
59130
  __decorate([
58355
59131
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_3__["property"])({ defaultValue: null })
58356
59132
  ], QuestionRankingModel.prototype, "dropTargetNodeMove", void 0);
59133
+ __decorate([
59134
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_3__["property"])({ defaultValue: true })
59135
+ ], QuestionRankingModel.prototype, "carryForwardStartUnranked", void 0);
58357
59136
  __decorate([
58358
59137
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_3__["property"])({ localizable: { defaultStr: "selectToRankEmptyRankedAreaText" } })
58359
59138
  ], QuestionRankingModel.prototype, "selectToRankEmptyRankedAreaText", void 0);
@@ -58369,6 +59148,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_3__["Serializer"].addClass("ranking", [
58369
59148
  { name: "otherErrorText", visible: false, isSerializable: false },
58370
59149
  { name: "storeOthersAsComment", visible: false, isSerializable: false },
58371
59150
  { name: "showNoneItem", visible: false, isSerializable: false },
59151
+ { name: "showRefuseItem", visible: false, isSerializable: false },
59152
+ { name: "showDontKnowItem", visible: false, isSerializable: false },
58372
59153
  { name: "noneText", visible: false, isSerializable: false },
58373
59154
  { name: "showSelectAllItem", visible: false, isSerializable: false },
58374
59155
  { name: "selectAllText", visible: false, isSerializable: false },
@@ -59072,8 +59853,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
59072
59853
  });
59073
59854
  Object.defineProperty(QuestionRatingModel.prototype, "ratingRootCss", {
59074
59855
  get: function () {
59075
- var baseClass = ((this.displayMode == "buttons" || (!!this.survey && this.survey.isDesignMode)) && this.cssClasses.rootWrappable) ?
59076
- this.cssClasses.rootWrappable : this.cssClasses.root;
59856
+ var baseClassModifier = ((this.displayMode == "buttons" || (!!this.survey && this.survey.isDesignMode)) && this.cssClasses.rootWrappable) ?
59857
+ this.cssClasses.rootWrappable : "";
59077
59858
  var rootClassModifier = "";
59078
59859
  if (this.hasMaxLabel || this.hasMinLabel) {
59079
59860
  if (this.rateDescriptionLocation == "top")
@@ -59084,7 +59865,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
59084
59865
  rootClassModifier = this.cssClasses.rootLabelsDiagonal;
59085
59866
  }
59086
59867
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
59087
- .append(baseClass)
59868
+ .append(this.cssClasses.root)
59869
+ .append(baseClassModifier)
59088
59870
  .append(rootClassModifier)
59089
59871
  .append(this.cssClasses.itemSmall, this.itemSmallMode && this.rateType != "labels")
59090
59872
  .toString();
@@ -60584,7 +61366,7 @@ var QuestionTextModel = /** @class */ (function (_super) {
60584
61366
  configurable: true
60585
61367
  });
60586
61368
  QuestionTextModel.prototype.getMaxLength = function () {
60587
- if (this.inputType !== "text")
61369
+ if (!this.isTextInput)
60588
61370
  return null;
60589
61371
  return _super.prototype.getMaxLength.call(this);
60590
61372
  };
@@ -60975,8 +61757,10 @@ var QuestionTextModel = /** @class */ (function (_super) {
60975
61757
  return !this.isReadOnly && this.inputType !== "range";
60976
61758
  };
60977
61759
  QuestionTextModel.prototype.getControlCssClassBuilder = function () {
61760
+ var maxLength = this.getMaxLength();
60978
61761
  return _super.prototype.getControlCssClassBuilder.call(this)
60979
- .append(this.cssClasses.constrolWithCharacterCounter, !!this.getMaxLength());
61762
+ .append(this.cssClasses.constrolWithCharacterCounter, !!maxLength)
61763
+ .append(this.cssClasses.characterCounterBig, maxLength > 99);
60980
61764
  };
60981
61765
  QuestionTextModel.prototype.isReadOnlyRenderDiv = function () {
60982
61766
  return this.isReadOnly && _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].readOnly.textRenderMode === "div";
@@ -61921,7 +62705,7 @@ var SurveyQuestionBoolean = /** @class */ (function (_super) {
61921
62705
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { className: itemClass, onClick: this.handleOnClick },
61922
62706
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { ref: this.checkRef, type: "checkbox", name: this.question.name, value: this.question.booleanValue === null
61923
62707
  ? ""
61924
- : this.question.booleanValue, id: this.question.inputId, className: cssClasses.control, disabled: this.isDisplayMode, checked: this.question.booleanValue || false, onChange: this.handleOnChange, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-describedby": this.question.ariaDescribedBy }),
62708
+ : 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 }),
61925
62709
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.sliderGhost, onClick: function (event) { return _this.handleOnLabelClick(event, false); } },
61926
62710
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.getLabelCss(false) }, this.renderLocString(this.question.locLabelFalse))),
61927
62711
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.switch, onClick: this.handleOnSwitchClick },
@@ -66245,23 +67029,304 @@ _element_factory__WEBPACK_IMPORTED_MODULE_3__["ReactElementFactory"].Instance.re
66245
67029
 
66246
67030
  /***/ }),
66247
67031
 
66248
- /***/ "./src/react/rating-dropdown.tsx":
67032
+ /***/ "./src/react/progress.tsx":
67033
+ /*!********************************!*\
67034
+ !*** ./src/react/progress.tsx ***!
67035
+ \********************************/
67036
+ /*! exports provided: SurveyProgress */
67037
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
67038
+
67039
+ "use strict";
67040
+ __webpack_require__.r(__webpack_exports__);
67041
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyProgress", function() { return SurveyProgress; });
67042
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
67043
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
67044
+ /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-core */ "./src/entries/core.ts");
67045
+ /* harmony import */ var _reactSurveyNavigationBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reactSurveyNavigationBase */ "./src/react/reactSurveyNavigationBase.tsx");
67046
+ /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./element-factory */ "./src/react/element-factory.tsx");
67047
+ var __extends = (undefined && undefined.__extends) || (function () {
67048
+ var extendStatics = function (d, b) {
67049
+ extendStatics = Object.setPrototypeOf ||
67050
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
67051
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
67052
+ return extendStatics(d, b);
67053
+ };
67054
+ return function (d, b) {
67055
+ if (typeof b !== "function" && b !== null)
67056
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
67057
+ extendStatics(d, b);
67058
+ function __() { this.constructor = d; }
67059
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
67060
+ };
67061
+ })();
67062
+
67063
+
67064
+
67065
+
67066
+ var SurveyProgress = /** @class */ (function (_super) {
67067
+ __extends(SurveyProgress, _super);
67068
+ function SurveyProgress(props) {
67069
+ return _super.call(this, props) || this;
67070
+ }
67071
+ Object.defineProperty(SurveyProgress.prototype, "isTop", {
67072
+ get: function () {
67073
+ return this.props.isTop;
67074
+ },
67075
+ enumerable: false,
67076
+ configurable: true
67077
+ });
67078
+ Object.defineProperty(SurveyProgress.prototype, "progress", {
67079
+ get: function () {
67080
+ return this.survey.progressValue;
67081
+ },
67082
+ enumerable: false,
67083
+ configurable: true
67084
+ });
67085
+ Object.defineProperty(SurveyProgress.prototype, "progressText", {
67086
+ get: function () {
67087
+ return this.survey.progressText;
67088
+ },
67089
+ enumerable: false,
67090
+ configurable: true
67091
+ });
67092
+ SurveyProgress.prototype.render = function () {
67093
+ var progressStyle = {
67094
+ width: this.progress + "%",
67095
+ };
67096
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.survey.getProgressCssClasses(this.props.container) },
67097
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { style: progressStyle, className: this.css.progressBar, role: "progressbar", "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": "progress" },
67098
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: survey_core__WEBPACK_IMPORTED_MODULE_1__["SurveyProgressModel"].getProgressTextInBarCss(this.css) }, this.progressText)),
67099
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: survey_core__WEBPACK_IMPORTED_MODULE_1__["SurveyProgressModel"].getProgressTextUnderBarCss(this.css) }, this.progressText)));
67100
+ };
67101
+ return SurveyProgress;
67102
+ }(_reactSurveyNavigationBase__WEBPACK_IMPORTED_MODULE_2__["SurveyNavigationBase"]));
67103
+
67104
+ _element_factory__WEBPACK_IMPORTED_MODULE_3__["ReactElementFactory"].Instance.registerElement("sv-progress-pages", function (props) {
67105
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyProgress, props);
67106
+ });
67107
+ _element_factory__WEBPACK_IMPORTED_MODULE_3__["ReactElementFactory"].Instance.registerElement("sv-progress-questions", function (props) {
67108
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyProgress, props);
67109
+ });
67110
+ _element_factory__WEBPACK_IMPORTED_MODULE_3__["ReactElementFactory"].Instance.registerElement("sv-progress-correctquestions", function (props) {
67111
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyProgress, props);
67112
+ });
67113
+ _element_factory__WEBPACK_IMPORTED_MODULE_3__["ReactElementFactory"].Instance.registerElement("sv-progress-requiredquestions", function (props) {
67114
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyProgress, props);
67115
+ });
67116
+
67117
+
67118
+ /***/ }),
67119
+
67120
+ /***/ "./src/react/progressButtons.tsx":
66249
67121
  /*!***************************************!*\
66250
- !*** ./src/react/rating-dropdown.tsx ***!
67122
+ !*** ./src/react/progressButtons.tsx ***!
66251
67123
  \***************************************/
66252
- /*! exports provided: RatingDropdownItem, SurveyQuestionRatingDropdown */
67124
+ /*! exports provided: SurveyProgressButtons */
66253
67125
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
66254
67126
 
66255
67127
  "use strict";
66256
67128
  __webpack_require__.r(__webpack_exports__);
66257
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionRatingDropdown", function() { return SurveyQuestionRatingDropdown; });
67129
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtons", function() { return SurveyProgressButtons; });
66258
67130
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
66259
67131
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
66260
67132
  /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-core */ "./src/entries/core.ts");
66261
- /* harmony import */ var _dropdown_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dropdown-base */ "./src/react/dropdown-base.tsx");
66262
- /* harmony import */ var _reactquestion_factory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reactquestion_factory */ "./src/react/reactquestion_factory.tsx");
66263
- /* harmony import */ var _components_rating_rating_dropdown_item__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/rating/rating-dropdown-item */ "./src/react/components/rating/rating-dropdown-item.tsx");
66264
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RatingDropdownItem", function() { return _components_rating_rating_dropdown_item__WEBPACK_IMPORTED_MODULE_4__["RatingDropdownItem"]; });
67133
+ /* harmony import */ var _reactSurveyNavigationBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reactSurveyNavigationBase */ "./src/react/reactSurveyNavigationBase.tsx");
67134
+ /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./element-factory */ "./src/react/element-factory.tsx");
67135
+ var __extends = (undefined && undefined.__extends) || (function () {
67136
+ var extendStatics = function (d, b) {
67137
+ extendStatics = Object.setPrototypeOf ||
67138
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
67139
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
67140
+ return extendStatics(d, b);
67141
+ };
67142
+ return function (d, b) {
67143
+ if (typeof b !== "function" && b !== null)
67144
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
67145
+ extendStatics(d, b);
67146
+ function __() { this.constructor = d; }
67147
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
67148
+ };
67149
+ })();
67150
+
67151
+
67152
+
67153
+
67154
+ var SurveyProgressButtons = /** @class */ (function (_super) {
67155
+ __extends(SurveyProgressButtons, _super);
67156
+ function SurveyProgressButtons(props) {
67157
+ var _this = _super.call(this, props) || this;
67158
+ _this.listContainerRef = react__WEBPACK_IMPORTED_MODULE_0__["createRef"]();
67159
+ return _this;
67160
+ }
67161
+ Object.defineProperty(SurveyProgressButtons.prototype, "model", {
67162
+ get: function () {
67163
+ return this.props.model;
67164
+ },
67165
+ enumerable: false,
67166
+ configurable: true
67167
+ });
67168
+ Object.defineProperty(SurveyProgressButtons.prototype, "container", {
67169
+ get: function () {
67170
+ return this.props.container;
67171
+ },
67172
+ enumerable: false,
67173
+ configurable: true
67174
+ });
67175
+ SurveyProgressButtons.prototype.onResize = function (canShowItemTitles) {
67176
+ this.setState({ canShowItemTitles: canShowItemTitles });
67177
+ this.setState({ canShowHeader: !canShowItemTitles });
67178
+ };
67179
+ SurveyProgressButtons.prototype.onUpdateScroller = function (hasScroller) {
67180
+ this.setState({ hasScroller: hasScroller });
67181
+ };
67182
+ SurveyProgressButtons.prototype.onUpdateSettings = function () {
67183
+ this.setState({ canShowItemTitles: this.model.showItemTitles });
67184
+ this.setState({ canShowFooter: !this.model.showItemTitles });
67185
+ };
67186
+ SurveyProgressButtons.prototype.render = function () {
67187
+ var _this = this;
67188
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.model.getRootCss(this.props.container), role: "progressbar", "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": "progress" },
67189
+ this.state.canShowHeader ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsHeader },
67190
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageTitle, title: this.model.headerText }, this.model.headerText)) : null,
67191
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsContainer },
67192
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.model.getScrollButtonCss(this.state.hasScroller, true), role: "button", onClick: function () {
67193
+ return _this.clickScrollButton(_this.listContainerRef.current, true);
67194
+ } }),
67195
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsListContainer, ref: this.listContainerRef },
67196
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("ul", { className: this.css.progressButtonsList }, this.getListElements())),
67197
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.model.getScrollButtonCss(this.state.hasScroller, false), role: "button", onClick: function () {
67198
+ return _this.clickScrollButton(_this.listContainerRef.current, false);
67199
+ } })),
67200
+ this.state.canShowFooter ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsFooter },
67201
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageTitle, title: this.model.footerText }, this.model.footerText)) : null));
67202
+ };
67203
+ SurveyProgressButtons.prototype.getListElements = function () {
67204
+ var _this = this;
67205
+ var buttons = [];
67206
+ this.survey.visiblePages.forEach(function (page, index) {
67207
+ buttons.push(_this.renderListElement(page, index));
67208
+ });
67209
+ return buttons;
67210
+ };
67211
+ SurveyProgressButtons.prototype.renderListElement = function (page, index) {
67212
+ var _this = this;
67213
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("li", { key: "listelement" + index, className: this.model.getListElementCss(index), onClick: this.model.isListElementClickable(index)
67214
+ ? function () { return _this.model.clickListElement(page); }
67215
+ : undefined, "data-page-number": this.model.getItemNumber(page) },
67216
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsConnector }),
67217
+ this.state.canShowItemTitles ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
67218
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageTitle, title: page.renderedNavigationTitle }, page.renderedNavigationTitle),
67219
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageDescription, title: page.navigationDescription }, page.navigationDescription)) : null));
67220
+ };
67221
+ SurveyProgressButtons.prototype.clickScrollButton = function (listContainerElement, isLeftScroll) {
67222
+ if (!!listContainerElement) {
67223
+ listContainerElement.scrollLeft += (isLeftScroll ? -1 : 1) * 70;
67224
+ }
67225
+ };
67226
+ SurveyProgressButtons.prototype.componentDidMount = function () {
67227
+ var _this = this;
67228
+ _super.prototype.componentDidMount.call(this);
67229
+ setTimeout(function () {
67230
+ _this.respManager = new survey_core__WEBPACK_IMPORTED_MODULE_1__["ProgressButtonsResponsivityManager"](_this.model, _this.listContainerRef.current, _this);
67231
+ }, 10);
67232
+ };
67233
+ SurveyProgressButtons.prototype.componentWillUnmount = function () {
67234
+ this.respManager.dispose();
67235
+ _super.prototype.componentWillUnmount.call(this);
67236
+ };
67237
+ return SurveyProgressButtons;
67238
+ }(_reactSurveyNavigationBase__WEBPACK_IMPORTED_MODULE_2__["SurveyNavigationBase"]));
67239
+
67240
+ _element_factory__WEBPACK_IMPORTED_MODULE_3__["ReactElementFactory"].Instance.registerElement("sv-progress-buttons", function (props) {
67241
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyProgressButtons, props);
67242
+ });
67243
+
67244
+
67245
+ /***/ }),
67246
+
67247
+ /***/ "./src/react/progressToc.tsx":
67248
+ /*!***********************************!*\
67249
+ !*** ./src/react/progressToc.tsx ***!
67250
+ \***********************************/
67251
+ /*! exports provided: SurveyProgressToc */
67252
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
67253
+
67254
+ "use strict";
67255
+ __webpack_require__.r(__webpack_exports__);
67256
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressToc", function() { return SurveyProgressToc; });
67257
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
67258
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
67259
+ /* harmony import */ var _reactSurveyNavigationBase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reactSurveyNavigationBase */ "./src/react/reactSurveyNavigationBase.tsx");
67260
+ /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./element-factory */ "./src/react/element-factory.tsx");
67261
+ /* harmony import */ var _components_list_list__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/list/list */ "./src/react/components/list/list.tsx");
67262
+ /* harmony import */ var _components_popup_popup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/popup/popup */ "./src/react/components/popup/popup.tsx");
67263
+ /* harmony import */ var _components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/svg-icon/svg-icon */ "./src/react/components/svg-icon/svg-icon.tsx");
67264
+ var __extends = (undefined && undefined.__extends) || (function () {
67265
+ var extendStatics = function (d, b) {
67266
+ extendStatics = Object.setPrototypeOf ||
67267
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
67268
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
67269
+ return extendStatics(d, b);
67270
+ };
67271
+ return function (d, b) {
67272
+ if (typeof b !== "function" && b !== null)
67273
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
67274
+ extendStatics(d, b);
67275
+ function __() { this.constructor = d; }
67276
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
67277
+ };
67278
+ })();
67279
+
67280
+
67281
+
67282
+
67283
+
67284
+
67285
+ var SurveyProgressToc = /** @class */ (function (_super) {
67286
+ __extends(SurveyProgressToc, _super);
67287
+ function SurveyProgressToc() {
67288
+ return _super !== null && _super.apply(this, arguments) || this;
67289
+ }
67290
+ SurveyProgressToc.prototype.render = function () {
67291
+ var tocModel = this.props.model;
67292
+ var content;
67293
+ if (tocModel.isMobile) {
67294
+ content = react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { onClick: tocModel.togglePopup },
67295
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_5__["SvgIcon"], { iconName: tocModel.icon, size: 24 }),
67296
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_popup_popup__WEBPACK_IMPORTED_MODULE_4__["Popup"], { model: tocModel.popupModel }));
67297
+ }
67298
+ else {
67299
+ content = react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_list_list__WEBPACK_IMPORTED_MODULE_3__["List"], { model: tocModel.listModel });
67300
+ }
67301
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: tocModel.containerCss }, content));
67302
+ };
67303
+ return SurveyProgressToc;
67304
+ }(_reactSurveyNavigationBase__WEBPACK_IMPORTED_MODULE_1__["SurveyNavigationBase"]));
67305
+
67306
+ _element_factory__WEBPACK_IMPORTED_MODULE_2__["ReactElementFactory"].Instance.registerElement("sv-navigation-toc", function (props) {
67307
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyProgressToc, props);
67308
+ });
67309
+
67310
+
67311
+ /***/ }),
67312
+
67313
+ /***/ "./src/react/rating-dropdown.tsx":
67314
+ /*!***************************************!*\
67315
+ !*** ./src/react/rating-dropdown.tsx ***!
67316
+ \***************************************/
67317
+ /*! exports provided: RatingDropdownItem, SurveyQuestionRatingDropdown */
67318
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
67319
+
67320
+ "use strict";
67321
+ __webpack_require__.r(__webpack_exports__);
67322
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyQuestionRatingDropdown", function() { return SurveyQuestionRatingDropdown; });
67323
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
67324
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
67325
+ /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-core */ "./src/entries/core.ts");
67326
+ /* harmony import */ var _dropdown_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dropdown-base */ "./src/react/dropdown-base.tsx");
67327
+ /* harmony import */ var _reactquestion_factory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reactquestion_factory */ "./src/react/reactquestion_factory.tsx");
67328
+ /* harmony import */ var _components_rating_rating_dropdown_item__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/rating/rating-dropdown-item */ "./src/react/components/rating/rating-dropdown-item.tsx");
67329
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RatingDropdownItem", function() { return _components_rating_rating_dropdown_item__WEBPACK_IMPORTED_MODULE_4__["RatingDropdownItem"]; });
66265
67330
 
66266
67331
  var __extends = (undefined && undefined.__extends) || (function () {
66267
67332
  var extendStatics = function (d, b) {
@@ -66859,273 +67924,6 @@ var SurveyNavigationBase = /** @class */ (function (_super) {
66859
67924
 
66860
67925
 
66861
67926
 
66862
- /***/ }),
66863
-
66864
- /***/ "./src/react/reactSurveyProgress.tsx":
66865
- /*!*******************************************!*\
66866
- !*** ./src/react/reactSurveyProgress.tsx ***!
66867
- \*******************************************/
66868
- /*! exports provided: SurveyProgress */
66869
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
66870
-
66871
- "use strict";
66872
- __webpack_require__.r(__webpack_exports__);
66873
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyProgress", function() { return SurveyProgress; });
66874
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
66875
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
66876
- /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-core */ "./src/entries/core.ts");
66877
- /* harmony import */ var _reactSurveyNavigationBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reactSurveyNavigationBase */ "./src/react/reactSurveyNavigationBase.tsx");
66878
- /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./element-factory */ "./src/react/element-factory.tsx");
66879
- var __extends = (undefined && undefined.__extends) || (function () {
66880
- var extendStatics = function (d, b) {
66881
- extendStatics = Object.setPrototypeOf ||
66882
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
66883
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
66884
- return extendStatics(d, b);
66885
- };
66886
- return function (d, b) {
66887
- if (typeof b !== "function" && b !== null)
66888
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
66889
- extendStatics(d, b);
66890
- function __() { this.constructor = d; }
66891
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
66892
- };
66893
- })();
66894
-
66895
-
66896
-
66897
-
66898
- var SurveyProgress = /** @class */ (function (_super) {
66899
- __extends(SurveyProgress, _super);
66900
- function SurveyProgress(props) {
66901
- return _super.call(this, props) || this;
66902
- }
66903
- Object.defineProperty(SurveyProgress.prototype, "isTop", {
66904
- get: function () {
66905
- return this.props.isTop;
66906
- },
66907
- enumerable: false,
66908
- configurable: true
66909
- });
66910
- Object.defineProperty(SurveyProgress.prototype, "progress", {
66911
- get: function () {
66912
- return this.survey.progressValue;
66913
- },
66914
- enumerable: false,
66915
- configurable: true
66916
- });
66917
- Object.defineProperty(SurveyProgress.prototype, "progressText", {
66918
- get: function () {
66919
- return this.survey.progressText;
66920
- },
66921
- enumerable: false,
66922
- configurable: true
66923
- });
66924
- SurveyProgress.prototype.render = function () {
66925
- var progressStyle = {
66926
- width: this.progress + "%",
66927
- };
66928
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.survey.getProgressCssClasses(this.props.container) },
66929
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { style: progressStyle, className: this.css.progressBar, role: "progressbar", "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": "progress" },
66930
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: survey_core__WEBPACK_IMPORTED_MODULE_1__["SurveyProgressModel"].getProgressTextInBarCss(this.css) }, this.progressText)),
66931
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: survey_core__WEBPACK_IMPORTED_MODULE_1__["SurveyProgressModel"].getProgressTextUnderBarCss(this.css) }, this.progressText)));
66932
- };
66933
- return SurveyProgress;
66934
- }(_reactSurveyNavigationBase__WEBPACK_IMPORTED_MODULE_2__["SurveyNavigationBase"]));
66935
-
66936
- _element_factory__WEBPACK_IMPORTED_MODULE_3__["ReactElementFactory"].Instance.registerElement("sv-progress-pages", function (props) {
66937
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyProgress, props);
66938
- });
66939
- _element_factory__WEBPACK_IMPORTED_MODULE_3__["ReactElementFactory"].Instance.registerElement("sv-progress-questions", function (props) {
66940
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyProgress, props);
66941
- });
66942
- _element_factory__WEBPACK_IMPORTED_MODULE_3__["ReactElementFactory"].Instance.registerElement("sv-progress-correctquestions", function (props) {
66943
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyProgress, props);
66944
- });
66945
- _element_factory__WEBPACK_IMPORTED_MODULE_3__["ReactElementFactory"].Instance.registerElement("sv-progress-requiredquestions", function (props) {
66946
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyProgress, props);
66947
- });
66948
-
66949
-
66950
- /***/ }),
66951
-
66952
- /***/ "./src/react/reactSurveyProgressButtons.tsx":
66953
- /*!**************************************************!*\
66954
- !*** ./src/react/reactSurveyProgressButtons.tsx ***!
66955
- \**************************************************/
66956
- /*! exports provided: SurveyProgressButtons */
66957
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
66958
-
66959
- "use strict";
66960
- __webpack_require__.r(__webpack_exports__);
66961
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtons", function() { return SurveyProgressButtons; });
66962
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
66963
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
66964
- /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-core */ "./src/entries/core.ts");
66965
- /* harmony import */ var _reactSurveyNavigationBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reactSurveyNavigationBase */ "./src/react/reactSurveyNavigationBase.tsx");
66966
- /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./element-factory */ "./src/react/element-factory.tsx");
66967
- var __extends = (undefined && undefined.__extends) || (function () {
66968
- var extendStatics = function (d, b) {
66969
- extendStatics = Object.setPrototypeOf ||
66970
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
66971
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
66972
- return extendStatics(d, b);
66973
- };
66974
- return function (d, b) {
66975
- if (typeof b !== "function" && b !== null)
66976
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
66977
- extendStatics(d, b);
66978
- function __() { this.constructor = d; }
66979
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
66980
- };
66981
- })();
66982
-
66983
-
66984
-
66985
-
66986
- var SurveyProgressButtons = /** @class */ (function (_super) {
66987
- __extends(SurveyProgressButtons, _super);
66988
- function SurveyProgressButtons(props) {
66989
- var _this = _super.call(this, props) || this;
66990
- _this.updateScroller = undefined;
66991
- _this.progressButtonsModel = new survey_core__WEBPACK_IMPORTED_MODULE_1__["SurveyProgressButtonsModel"](_this.survey);
66992
- _this.listContainerRef = react__WEBPACK_IMPORTED_MODULE_0__["createRef"]();
66993
- return _this;
66994
- }
66995
- SurveyProgressButtons.prototype.render = function () {
66996
- var _this = this;
66997
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsContainerCenter },
66998
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsContainer },
66999
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.getScrollButtonCss(true), role: "button", onClick: function () {
67000
- return _this.clickScrollButton(_this.listContainerRef.current, true);
67001
- } }),
67002
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsListContainer, ref: this.listContainerRef },
67003
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("ul", { className: this.css.progressButtonsList }, this.getListElements())),
67004
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.getScrollButtonCss(false), role: "button", onClick: function () {
67005
- return _this.clickScrollButton(_this.listContainerRef.current, false);
67006
- } }))));
67007
- };
67008
- SurveyProgressButtons.prototype.getListElements = function () {
67009
- var _this = this;
67010
- var buttons = [];
67011
- this.survey.visiblePages.forEach(function (page, index) {
67012
- buttons.push(_this.renderListElement(page, index));
67013
- });
67014
- return buttons;
67015
- };
67016
- SurveyProgressButtons.prototype.renderListElement = function (page, index) {
67017
- var _this = this;
67018
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("li", { key: "listelement" + index, className: this.getListElementCss(index), onClick: this.isListElementClickable(index)
67019
- ? function () { return _this.clickListElement(index); }
67020
- : undefined },
67021
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageTitle, title: page.renderedNavigationTitle }, page.renderedNavigationTitle),
67022
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageDescription, title: page.navigationDescription }, page.navigationDescription)));
67023
- };
67024
- SurveyProgressButtons.prototype.isListElementClickable = function (index) {
67025
- return this.progressButtonsModel.isListElementClickable(index);
67026
- };
67027
- SurveyProgressButtons.prototype.getListElementCss = function (index) {
67028
- return this.progressButtonsModel.getListElementCss(index);
67029
- };
67030
- SurveyProgressButtons.prototype.clickListElement = function (index) {
67031
- this.progressButtonsModel.clickListElement(index);
67032
- };
67033
- SurveyProgressButtons.prototype.getScrollButtonCss = function (isLeftScroll) {
67034
- return this.progressButtonsModel.getScrollButtonCss(this.state.hasScroller, isLeftScroll);
67035
- };
67036
- SurveyProgressButtons.prototype.clickScrollButton = function (listContainerElement, isLeftScroll) {
67037
- if (!!listContainerElement) {
67038
- listContainerElement.scrollLeft += (isLeftScroll ? -1 : 1) * 70;
67039
- }
67040
- };
67041
- SurveyProgressButtons.prototype.componentDidMount = function () {
67042
- var _this = this;
67043
- this.updateScroller = setInterval(function () {
67044
- if (!!_this.listContainerRef.current) {
67045
- _this.setState({ hasScroller: _this.listContainerRef.current.scrollWidth > _this.listContainerRef.current.offsetWidth, });
67046
- }
67047
- }, 100);
67048
- };
67049
- SurveyProgressButtons.prototype.componentWillUnmount = function () {
67050
- if (typeof this.updateScroller !== "undefined") {
67051
- clearInterval(this.updateScroller);
67052
- this.updateScroller = undefined;
67053
- }
67054
- };
67055
- return SurveyProgressButtons;
67056
- }(_reactSurveyNavigationBase__WEBPACK_IMPORTED_MODULE_2__["SurveyNavigationBase"]));
67057
-
67058
- _element_factory__WEBPACK_IMPORTED_MODULE_3__["ReactElementFactory"].Instance.registerElement("sv-progress-buttons", function (props) {
67059
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyProgressButtons, props);
67060
- });
67061
-
67062
-
67063
- /***/ }),
67064
-
67065
- /***/ "./src/react/reactSurveyProgressToc.tsx":
67066
- /*!**********************************************!*\
67067
- !*** ./src/react/reactSurveyProgressToc.tsx ***!
67068
- \**********************************************/
67069
- /*! exports provided: SurveyProgressToc */
67070
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
67071
-
67072
- "use strict";
67073
- __webpack_require__.r(__webpack_exports__);
67074
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressToc", function() { return SurveyProgressToc; });
67075
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
67076
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
67077
- /* harmony import */ var _reactSurveyNavigationBase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reactSurveyNavigationBase */ "./src/react/reactSurveyNavigationBase.tsx");
67078
- /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./element-factory */ "./src/react/element-factory.tsx");
67079
- /* harmony import */ var _components_list_list__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/list/list */ "./src/react/components/list/list.tsx");
67080
- /* harmony import */ var _components_popup_popup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/popup/popup */ "./src/react/components/popup/popup.tsx");
67081
- /* harmony import */ var _components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/svg-icon/svg-icon */ "./src/react/components/svg-icon/svg-icon.tsx");
67082
- var __extends = (undefined && undefined.__extends) || (function () {
67083
- var extendStatics = function (d, b) {
67084
- extendStatics = Object.setPrototypeOf ||
67085
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
67086
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
67087
- return extendStatics(d, b);
67088
- };
67089
- return function (d, b) {
67090
- if (typeof b !== "function" && b !== null)
67091
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
67092
- extendStatics(d, b);
67093
- function __() { this.constructor = d; }
67094
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
67095
- };
67096
- })();
67097
-
67098
-
67099
-
67100
-
67101
-
67102
-
67103
- var SurveyProgressToc = /** @class */ (function (_super) {
67104
- __extends(SurveyProgressToc, _super);
67105
- function SurveyProgressToc() {
67106
- return _super !== null && _super.apply(this, arguments) || this;
67107
- }
67108
- SurveyProgressToc.prototype.render = function () {
67109
- var tocModel = this.props.model;
67110
- var content;
67111
- if (tocModel.isMobile) {
67112
- content = react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { onClick: tocModel.togglePopup },
67113
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_5__["SvgIcon"], { iconName: tocModel.icon, size: 24 }),
67114
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_popup_popup__WEBPACK_IMPORTED_MODULE_4__["Popup"], { model: tocModel.popupModel }));
67115
- }
67116
- else {
67117
- content = react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_list_list__WEBPACK_IMPORTED_MODULE_3__["List"], { model: tocModel.listModel });
67118
- }
67119
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: tocModel.containerCss }, content));
67120
- };
67121
- return SurveyProgressToc;
67122
- }(_reactSurveyNavigationBase__WEBPACK_IMPORTED_MODULE_1__["SurveyNavigationBase"]));
67123
-
67124
- _element_factory__WEBPACK_IMPORTED_MODULE_2__["ReactElementFactory"].Instance.registerElement("sv-navigation-toc", function (props) {
67125
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyProgressToc, props);
67126
- });
67127
-
67128
-
67129
67927
  /***/ }),
67130
67928
 
67131
67929
  /***/ "./src/react/reactquestion.tsx":
@@ -68003,13 +68801,27 @@ var SurveyQuestionCommentItem = /** @class */ (function (_super) {
68003
68801
  _this.state = { comment: _this.getComment() || "" };
68004
68802
  return _this;
68005
68803
  }
68006
- SurveyQuestionCommentItem.prototype.getStateComment = function () {
68007
- var comment = this.getComment();
68008
- var stateComment = this.state.comment;
68009
- if (stateComment !== undefined && stateComment.trim() !== comment) {
68010
- stateComment = comment;
68804
+ SurveyQuestionCommentItem.prototype.componentDidUpdate = function (prevProps, prevState) {
68805
+ _super.prototype.componentDidUpdate.call(this, prevProps, prevState);
68806
+ this.updateDomElement();
68807
+ };
68808
+ SurveyQuestionCommentItem.prototype.componentDidMount = function () {
68809
+ _super.prototype.componentDidMount.call(this);
68810
+ this.updateDomElement();
68811
+ };
68812
+ SurveyQuestionCommentItem.prototype.updateDomElement = function () {
68813
+ if (!!this.control) {
68814
+ var control = this.control;
68815
+ var newValue = this.getComment() || "";
68816
+ if (!survey_core__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isTwoValueEquals(newValue, control.value, false, true, false)) {
68817
+ control.value = newValue;
68818
+ }
68819
+ }
68820
+ };
68821
+ SurveyQuestionCommentItem.prototype.setControl = function (element) {
68822
+ if (!!element) {
68823
+ this.control = element;
68011
68824
  }
68012
- return stateComment !== undefined ? stateComment : comment || "";
68013
68825
  };
68014
68826
  SurveyQuestionCommentItem.prototype.canRender = function () {
68015
68827
  return !!this.props.question;
@@ -68036,18 +68848,11 @@ var SurveyQuestionCommentItem = /** @class */ (function (_super) {
68036
68848
  var _this = this;
68037
68849
  var question = this.props.question;
68038
68850
  var className = this.props.otherCss || this.cssClasses.comment;
68039
- var handleOnChange = function (event) {
68040
- _this.setState({ comment: event.target.value });
68041
- // https://github.com/surveyjs/survey-library/issues/7252
68042
- if (!survey_core__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isTwoValueEquals(_this.getComment(), event.target.value, false, true, false)) {
68043
- _this.setComment(event.target.value);
68044
- }
68045
- };
68046
- var comment = this.getStateComment();
68047
68851
  if (question.isReadOnlyRenderDiv()) {
68852
+ var comment = this.getComment() || "";
68048
68853
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", null, comment);
68049
68854
  }
68050
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("textarea", { id: this.getId(), className: className, value: comment, disabled: this.isDisplayMode, maxLength: question.getOthersMaxLength(), placeholder: this.getPlaceholder(), onChange: handleOnChange, onBlur: function (e) { _this.onCommentChange(e); handleOnChange(e); }, onInput: function (e) { return _this.onCommentInput(e); }, "aria-required": question.isRequired || question.a11y_input_ariaRequired, "aria-label": question.ariaLabel || question.a11y_input_ariaLabel, style: { resize: question.resizeStyle } }));
68855
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("textarea", { id: this.getId(), className: className, ref: function (textarea) { return (_this.setControl(textarea)); }, disabled: this.isDisplayMode, maxLength: question.getOthersMaxLength(), placeholder: this.getPlaceholder(), onBlur: function (e) { _this.onCommentChange(e); }, onInput: function (e) { return _this.onCommentInput(e); }, "aria-required": question.isRequired || question.a11y_input_ariaRequired, "aria-label": question.ariaLabel || question.a11y_input_ariaLabel, style: { resize: question.resizeStyle } }));
68051
68856
  };
68052
68857
  return SurveyQuestionCommentItem;
68053
68858
  }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["ReactSurveyElement"]));
@@ -71234,7 +72039,7 @@ var SurveyQuestionSignaturePad = /** @class */ (function (_super) {
71234
72039
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.placeholder, style: { display: this.question.needShowPlaceholder() ? "" : "none" } }, this.renderLocString(this.question.locPlaceholder)),
71235
72040
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", null,
71236
72041
  this.renderBackgroundImage(),
71237
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("canvas", { tabIndex: 0, className: this.question.cssClasses.canvas, onBlur: this.question.onBlur })),
72042
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("canvas", { tabIndex: -1, className: this.question.cssClasses.canvas, onBlur: this.question.onBlur })),
71238
72043
  clearButton,
71239
72044
  loadingIndicator));
71240
72045
  };
@@ -72179,8 +72984,8 @@ var settings = {
72179
72984
  * @param message A message to be displayed in the confirm dialog window.
72180
72985
  * @param callback A callback function that should be called with `true` if a user confirms an action or `false` otherwise.
72181
72986
  */
72182
- confirmActionAsync: function (message, callback, applyTitle) {
72183
- return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["showConfirmDialog"])(message, callback, applyTitle);
72987
+ confirmActionAsync: function (message, callback, applyTitle, locale) {
72988
+ return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["showConfirmDialog"])(message, callback, applyTitle, locale);
72184
72989
  },
72185
72990
  /**
72186
72991
  * A minimum width value for all survey elements.
@@ -72231,15 +73036,27 @@ var settings = {
72231
73036
  */
72232
73037
  showItemsInOrder: "default",
72233
73038
  /**
72234
- * A value to save in survey results when respondents select the None choice item.
73039
+ * A value to save in survey results when respondents select the "None" choice item.
72235
73040
  *
72236
73041
  * Default value: `"none"`
72237
73042
  */
72238
73043
  noneItemValue: "none",
72239
73044
  /**
72240
- * An object whose properties specify the order of the special choice items (None, Other, Select All) in select-based questions.
73045
+ * A value to save in survey results when respondents select the "Refuse to answer" choice item.
73046
+ *
73047
+ * Default value: `"refused"`
73048
+ */
73049
+ refuseItemValue: "refused",
73050
+ /**
73051
+ * A value to save in survey results when respondents select the "Don't know" choice item.
72241
73052
  *
72242
- * Default value: `{ selectAllItem: [-1], noneItem: [1], otherItem: [2] }`
73053
+ * Default value: `"dontknow"`
73054
+ */
73055
+ dontKnowItemValue: "dontknow",
73056
+ /**
73057
+ * An object whose properties specify the order of the special choice items ("None", "Other", "Select All", "Refuse to answer", "Don't know") in select-based questions.
73058
+ *
73059
+ * Default value: `{ selectAllItem: [-1], noneItem: [1], otherItem: [2], dontKnowItem: [3], otherItem: [4] }`
72243
73060
  *
72244
73061
  * Use this object to reorder special choices. Each property accepts an array of integer numbers. Negative numbers place a special choice item above regular choice items, positive numbers place it below them. For instance, the code below specifies the following order of choices: None, Select All, regular choices, Other.
72245
73062
  *
@@ -72260,7 +73077,9 @@ var settings = {
72260
73077
  specialChoicesOrder: {
72261
73078
  selectAllItem: [-1],
72262
73079
  noneItem: [1],
72263
- otherItem: [2]
73080
+ refuseItem: [2],
73081
+ dontKnowItem: [3],
73082
+ otherItem: [4]
72264
73083
  },
72265
73084
  /**
72266
73085
  * A list of supported validators by question type.
@@ -72314,6 +73133,12 @@ var settings = {
72314
73133
  * Default value: `true`
72315
73134
  */
72316
73135
  showMaxLengthIndicator: true,
73136
+ /**
73137
+ * Set to `false` to disable animations
73138
+ *
73139
+ * Default value: `true`
73140
+ */
73141
+ animationEnabled: true,
72317
73142
  /**
72318
73143
  * An object that specifies heading levels (`<h1>`, `<h2>`, etc.) to use when rendering survey, page, panel, and question titles.
72319
73144
  *
@@ -72399,7 +73224,8 @@ var settings = {
72399
73224
  "email",
72400
73225
  "impp",
72401
73226
  ]
72402
- }
73227
+ },
73228
+ legacyProgressBarView: false
72403
73229
  };
72404
73230
 
72405
73231
 
@@ -74224,7 +75050,8 @@ __webpack_require__.r(__webpack_exports__);
74224
75050
  /* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./header */ "./src/header.ts");
74225
75051
  /* harmony import */ var _surveytimer__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./surveytimer */ "./src/surveytimer.ts");
74226
75052
  /* harmony import */ var _surveyTaskManager__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./surveyTaskManager */ "./src/surveyTaskManager.ts");
74227
- /* harmony import */ var _surveyToc__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./surveyToc */ "./src/surveyToc.ts");
75053
+ /* harmony import */ var _progress_buttons__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./progress-buttons */ "./src/progress-buttons.ts");
75054
+ /* harmony import */ var _surveyToc__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./surveyToc */ "./src/surveyToc.ts");
74228
75055
  var __extends = (undefined && undefined.__extends) || (function () {
74229
75056
  var extendStatics = function (d, b) {
74230
75057
  extendStatics = Object.setPrototypeOf ||
@@ -74268,6 +75095,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
74268
75095
 
74269
75096
 
74270
75097
 
75098
+
74271
75099
 
74272
75100
 
74273
75101
  /**
@@ -74737,6 +75565,12 @@ var SurveyModel = /** @class */ (function (_super) {
74737
75565
  * [View Demo](https://surveyjs.io/form-library/examples/lazy-loading-dropdown/ (linkStyle))
74738
75566
  */
74739
75567
  _this.onChoicesLazyLoad = _this.addEvent();
75568
+ /**
75569
+ * An event that is raised each time a search string in a [Dropdown](https://surveyjs.io/form-library/documentation/api-reference/dropdown-menu-model) or [Tag Box](https://surveyjs.io/form-library/documentation/api-reference/dropdown-tag-box-model) question changes. Use this event to implement custom filtering of choice options.
75570
+ * @see [QuestionDropdownModel.searchEnabled](https://surveyjs.io/form-library/documentation/api-reference/dropdown-menu-model#searchEnabled)
75571
+ * @see [QuestionDropdownModel.searchMode](https://surveyjs.io/form-library/documentation/api-reference/dropdown-menu-model#searchMode)
75572
+ */
75573
+ _this.onChoicesSearch = _this.addEvent();
74740
75574
  /**
74741
75575
  * Use this event to load a display text for the [default choice item](https://surveyjs.io/form-library/documentation/questiondropdownmodel#defaultValue) in [Dropdown](https://surveyjs.io/form-library/documentation/questiondropdownmodel) and [Tag Box](https://surveyjs.io/form-library/documentation/questiontagboxmodel) questions.
74742
75576
  *
@@ -75108,6 +75942,7 @@ var SurveyModel = /** @class */ (function (_super) {
75108
75942
  _this.onScrollCallback = undefined;
75109
75943
  }
75110
75944
  });
75945
+ _this.progressBarValue = new _progress_buttons__WEBPACK_IMPORTED_MODULE_23__["ProgressButtons"](_this);
75111
75946
  _this.layoutElements.push({
75112
75947
  id: "timerpanel",
75113
75948
  template: "survey-timerpanel",
@@ -75117,7 +75952,8 @@ var SurveyModel = /** @class */ (function (_super) {
75117
75952
  _this.layoutElements.push({
75118
75953
  id: "progress-buttons",
75119
75954
  component: "sv-progress-buttons",
75120
- data: _this
75955
+ data: _this.progressBar,
75956
+ processResponsiveness: function (width) { return _this.progressBar.processResponsiveness && _this.progressBar.processResponsiveness(width); }
75121
75957
  });
75122
75958
  _this.layoutElements.push({
75123
75959
  id: "progress-questions",
@@ -75142,10 +75978,10 @@ var SurveyModel = /** @class */ (function (_super) {
75142
75978
  _this.addLayoutElement({
75143
75979
  id: "toc-navigation",
75144
75980
  component: "sv-navigation-toc",
75145
- data: new _surveyToc__WEBPACK_IMPORTED_MODULE_23__["TOCModel"](_this)
75981
+ data: new _surveyToc__WEBPACK_IMPORTED_MODULE_24__["TOCModel"](_this)
75146
75982
  });
75147
75983
  _this.layoutElements.push({
75148
- id: "navigationbuttons",
75984
+ id: "buttons-navigation",
75149
75985
  component: "sv-action-bar",
75150
75986
  data: _this.navigationBar
75151
75987
  });
@@ -77087,6 +77923,13 @@ var SurveyModel = /** @class */ (function (_super) {
77087
77923
  enumerable: false,
77088
77924
  configurable: true
77089
77925
  });
77926
+ Object.defineProperty(SurveyModel.prototype, "progressBar", {
77927
+ get: function () {
77928
+ return this.progressBarValue;
77929
+ },
77930
+ enumerable: false,
77931
+ configurable: true
77932
+ });
77090
77933
  Object.defineProperty(SurveyModel.prototype, "showProgressBar", {
77091
77934
  /**
77092
77935
  * Controls the visibility of the progress bar and specifies its position.
@@ -77094,9 +77937,13 @@ var SurveyModel = /** @class */ (function (_super) {
77094
77937
  * Possible values:
77095
77938
  *
77096
77939
  * - `"off"` (default) - Hides the progress bar.
77097
- * - `"top"` - Displays the progress bar above survey content.
77940
+ * - `"aboveHeader"` - Displays the progress bar above the survey header.
77941
+ * - `"belowHeader"` - Displays the progress bar below the survey header.
77098
77942
  * - `"bottom"` - Displays the progress bar below survey content.
77099
- * - `"both"` - Displays the progress bar above and below survey content.
77943
+ * - `"topBottom"` - Displays the progress bar above and below survey content.
77944
+ * - `"auto"` - Automatically selects between `"aboveHeader"` and `"belowHeader"`.
77945
+ * - `"top"` - *(Obsolete)* Use the `"aboveHeader"` or `"belowHeader"` property value instead.
77946
+ * - `"both"` - *(Obsolete)* Use the `"topBottom"` property value instead.
77100
77947
  *
77101
77948
  * [View Demo](https://surveyjs.io/form-library/examples/navigation-default/ (linkStyle))
77102
77949
  * @see progressBarType
@@ -77121,7 +77968,9 @@ var SurveyModel = /** @class */ (function (_super) {
77121
77968
  * - `"questions"` - The number of answered questions.
77122
77969
  * - `"requiredQuestions"` - The number of answered [required questions](https://surveyjs.io/form-library/documentation/api-reference/question#isRequired).
77123
77970
  * - `"correctQuestions"` - The number of correct questions in a [quiz](https://surveyjs.io/form-library/documentation/design-survey/create-a-quiz).
77124
- * - `"buttons"` - Adds jump links to the progress bar.
77971
+ * - `"buttons"` - *(Obsolete)* Use the `"pages"` property value with the [`progressBarShowPageTitles`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#progressBarShowPageTitles) property set to `true` instead.
77972
+ *
77973
+ * > When `progressBarType` is set to `"pages"`, you can also enable the [`progressBarShowPageNumbers`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#progressBarShowPageNumbers) and [`progressBarShowPageTitles`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#progressBarShowPageTitles) properties if you want to display page numbers and titles in the progress bar.
77125
77974
  *
77126
77975
  * [View Demo](https://surveyjs.io/form-library/examples/navigation-buttons/ (linkStyle))
77127
77976
  * @see progressValue
@@ -77134,16 +77983,33 @@ var SurveyModel = /** @class */ (function (_super) {
77134
77983
  newValue = "correctQuestion";
77135
77984
  if (newValue === "requiredquestion")
77136
77985
  newValue = "requiredQuestion";
77986
+ // if (newValue === "buttons") {
77987
+ // newValue = "pages";
77988
+ // this.progressBarShowPageTitles = true;
77989
+ // }
77137
77990
  this.setPropertyValue("progressBarType", newValue);
77138
77991
  },
77139
77992
  enumerable: false,
77140
77993
  configurable: true
77141
77994
  });
77995
+ Object.defineProperty(SurveyModel.prototype, "progressBarComponentName", {
77996
+ get: function () {
77997
+ var actualProgressBarType = this.progressBarType;
77998
+ if (!_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].legacyProgressBarView && _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_4__["surveyCss"].currentType === "defaultV2") {
77999
+ if (isStrCiEqual(actualProgressBarType, "pages")) {
78000
+ actualProgressBarType = "buttons";
78001
+ }
78002
+ }
78003
+ return "progress-" + actualProgressBarType;
78004
+ },
78005
+ enumerable: false,
78006
+ configurable: true
78007
+ });
77142
78008
  Object.defineProperty(SurveyModel.prototype, "isShowProgressBarOnTop", {
77143
78009
  get: function () {
77144
78010
  if (!this.canShowProresBar())
77145
78011
  return false;
77146
- return this.showProgressBar === "top" || this.showProgressBar === "both";
78012
+ return ["auto", "aboveheader", "belowheader", "topbottom", "top", "both"].indexOf(this.showProgressBar) !== -1;
77147
78013
  },
77148
78014
  enumerable: false,
77149
78015
  configurable: true
@@ -77152,7 +78018,7 @@ var SurveyModel = /** @class */ (function (_super) {
77152
78018
  get: function () {
77153
78019
  if (!this.canShowProresBar())
77154
78020
  return false;
77155
- return this.showProgressBar === "bottom" || this.showProgressBar === "both";
78021
+ return this.showProgressBar === "bottom" || this.showProgressBar === "both" || this.showProgressBar === "topbottom";
77156
78022
  },
77157
78023
  enumerable: false,
77158
78024
  configurable: true
@@ -79483,6 +80349,7 @@ var SurveyModel = /** @class */ (function (_super) {
79483
80349
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_18__["CssClassBuilder"]()
79484
80350
  .append(this.css.root)
79485
80351
  .append(this.css.rootMobile, this.isMobile)
80352
+ .append(this.css.rootAnimationDisabled, !_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].animationEnabled)
79486
80353
  .append(this.css.rootReadOnly, this.mode === "display")
79487
80354
  .append(this.css.rootCompact, this.isCompact)
79488
80355
  .append(this.css.rootFitToContainer, this.fitToContainer)
@@ -79864,7 +80731,7 @@ var SurveyModel = /** @class */ (function (_super) {
79864
80731
  }
79865
80732
  };
79866
80733
  /**
79867
- * Uploads a file to server.
80734
+ * Uploads files to a server.
79868
80735
  *
79869
80736
  * The following code shows how to call this method:
79870
80737
  *
@@ -80512,6 +81379,12 @@ var SurveyModel = /** @class */ (function (_super) {
80512
81379
  enumerable: false,
80513
81380
  configurable: true
80514
81381
  });
81382
+ /**
81383
+ * Recalculates all [expressions](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) in the survey.
81384
+ */
81385
+ SurveyModel.prototype.runExpressions = function () {
81386
+ this.runConditions();
81387
+ };
80515
81388
  SurveyModel.prototype.runConditions = function () {
80516
81389
  if (this.isCompleted ||
80517
81390
  this.isEndLoadingFromJson === "processing" ||
@@ -80748,6 +81621,12 @@ var SurveyModel = /** @class */ (function (_super) {
80748
81621
  this.onStateAndCurrentPageChanged();
80749
81622
  this.updateState();
80750
81623
  };
81624
+ SurveyModel.prototype.startLoadingFromJson = function (json) {
81625
+ _super.prototype.startLoadingFromJson.call(this, json);
81626
+ if (json && json.locale) {
81627
+ this.locale = json.locale;
81628
+ }
81629
+ };
80751
81630
  SurveyModel.prototype.setJsonObject = function (jsonObj) {
80752
81631
  this.fromJSON(jsonObj);
80753
81632
  };
@@ -81859,7 +82738,9 @@ var SurveyModel = /** @class */ (function (_super) {
81859
82738
  * @see onTimer
81860
82739
  */
81861
82740
  SurveyModel.prototype.startTimer = function () {
81862
- this.timerModel.start();
82741
+ if (this.isEditMode) {
82742
+ this.timerModel.start();
82743
+ }
81863
82744
  };
81864
82745
  SurveyModel.prototype.startTimerFromUI = function () {
81865
82746
  if (this.showTimerPanel != "none" && this.state === "running") {
@@ -82133,7 +83014,7 @@ var SurveyModel = /** @class */ (function (_super) {
82133
83014
  *
82134
83015
  * This method accepts an object with the following layout element properties:
82135
83016
  *
82136
- * - `id`: `string` | `"timerpanel"` | `"progress-buttons"` | `"progress-questions"` | `"progress-pages"` | `"progress-correctquestions"` | `"progress-requiredquestions"` | `"toc-navigation"` | `"navigationbuttons"`\
83017
+ * - `id`: `string` | `"timerpanel"` | `"progress-buttons"` | `"progress-questions"` | `"progress-pages"` | `"progress-correctquestions"` | `"progress-requiredquestions"` | `"toc-navigation"` | `"buttons-navigation"`\
82137
83018
  * A layout element identifier. You can use possible values to access and relocate or customize predefined layout elements.
82138
83019
  *
82139
83020
  * - `container`: `"header"` | `"footer"` | `"left"` | `"right"` | `"contentTop"` | `"contentBottom"`\
@@ -82182,10 +83063,13 @@ var SurveyModel = /** @class */ (function (_super) {
82182
83063
  }
82183
83064
  }
82184
83065
  }
82185
- else if (this.state === "running" && isStrCiEqual(layoutElement.id, "progress-" + this.progressBarType)) {
83066
+ else if (this.state === "running" && isStrCiEqual(layoutElement.id, this.progressBarComponentName)) {
82186
83067
  var headerLayoutElement = this.findLayoutElement("advanced-header");
82187
83068
  var advHeader = headerLayoutElement && headerLayoutElement.data;
82188
83069
  var isBelowHeader = !advHeader || advHeader.hasBackground;
83070
+ if (isStrCiEqual(this.showProgressBar, "aboveHeader")) {
83071
+ isBelowHeader = false;
83072
+ }
82189
83073
  if (container === "header" && !isBelowHeader) {
82190
83074
  layoutElement.index = -150;
82191
83075
  if (this.isShowProgressBarOnTop && !this.isShowStartingPage) {
@@ -82206,7 +83090,7 @@ var SurveyModel = /** @class */ (function (_super) {
82206
83090
  }
82207
83091
  }
82208
83092
  }
82209
- else if (isStrCiEqual(layoutElement.id, "navigationbuttons")) {
83093
+ else if (isStrCiEqual(layoutElement.id, "buttons-navigation")) {
82210
83094
  if (container === "contentTop") {
82211
83095
  if (["top", "both"].indexOf(this.isNavigationButtonsShowing) !== -1) {
82212
83096
  containerLayoutElements.push(layoutElement);
@@ -82416,6 +83300,16 @@ var SurveyModel = /** @class */ (function (_super) {
82416
83300
  __decorate([
82417
83301
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
82418
83302
  ], SurveyModel.prototype, "wrapperFormCss", void 0);
83303
+ __decorate([
83304
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
83305
+ getDefaultValue: function (self) {
83306
+ return self.progressBarType === "buttons";
83307
+ },
83308
+ })
83309
+ ], SurveyModel.prototype, "progressBarShowPageTitles", void 0);
83310
+ __decorate([
83311
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
83312
+ ], SurveyModel.prototype, "progressBarShowPageNumbers", void 0);
82419
83313
  __decorate([
82420
83314
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
82421
83315
  ], SurveyModel.prototype, "rootCss", void 0);
@@ -82551,7 +83445,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
82551
83445
  {
82552
83446
  name: "showProgressBar",
82553
83447
  default: "off",
82554
- choices: ["off", "top", "bottom", "both"],
83448
+ choices: ["off", "auto", "aboveHeader", "belowHeader", "bottom", "topBottom"],
82555
83449
  },
82556
83450
  {
82557
83451
  name: "progressBarType",
@@ -82561,9 +83455,10 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
82561
83455
  "questions",
82562
83456
  "requiredQuestions",
82563
83457
  "correctQuestions",
82564
- "buttons",
82565
83458
  ],
82566
83459
  },
83460
+ { name: "progressBarShowPageTitles:switch", category: "navigation" },
83461
+ { name: "progressBarShowPageNumbers:switch", default: false, category: "navigation" },
82567
83462
  {
82568
83463
  name: "showTOC:switch",
82569
83464
  default: false
@@ -82710,56 +83605,6 @@ var SurveyProgressModel = /** @class */ (function () {
82710
83605
 
82711
83606
 
82712
83607
 
82713
- /***/ }),
82714
-
82715
- /***/ "./src/surveyProgressButtons.ts":
82716
- /*!**************************************!*\
82717
- !*** ./src/surveyProgressButtons.ts ***!
82718
- \**************************************/
82719
- /*! exports provided: SurveyProgressButtonsModel */
82720
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
82721
-
82722
- "use strict";
82723
- __webpack_require__.r(__webpack_exports__);
82724
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtonsModel", function() { return SurveyProgressButtonsModel; });
82725
- /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
82726
-
82727
- var SurveyProgressButtonsModel = /** @class */ (function () {
82728
- function SurveyProgressButtonsModel(survey) {
82729
- this.survey = survey;
82730
- }
82731
- SurveyProgressButtonsModel.prototype.isListElementClickable = function (index) {
82732
- if (!this.survey.onServerValidateQuestions ||
82733
- this.survey.onServerValidateQuestions.isEmpty ||
82734
- this.survey.checkErrorsMode === "onComplete") {
82735
- return true;
82736
- }
82737
- return index <= this.survey.currentPageNo + 1;
82738
- };
82739
- SurveyProgressButtonsModel.prototype.getListElementCss = function (index) {
82740
- if (index >= this.survey.visiblePages.length)
82741
- return;
82742
- return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]()
82743
- .append(this.survey.css.progressButtonsListElementPassed, this.survey.visiblePages[index].passed)
82744
- .append(this.survey.css.progressButtonsListElementCurrent, this.survey.currentPageNo === index)
82745
- .append(this.survey.css.progressButtonsListElementNonClickable, !this.isListElementClickable(index))
82746
- .toString();
82747
- };
82748
- SurveyProgressButtonsModel.prototype.getScrollButtonCss = function (hasScroller, isLeftScroll) {
82749
- return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]()
82750
- .append(this.survey.css.progressButtonsImageButtonLeft, isLeftScroll)
82751
- .append(this.survey.css.progressButtonsImageButtonRight, !isLeftScroll)
82752
- .append(this.survey.css.progressButtonsImageButtonHidden, !hasScroller)
82753
- .toString();
82754
- };
82755
- SurveyProgressButtonsModel.prototype.clickListElement = function (index) {
82756
- this.survey.tryNavigateToPage(this.survey.visiblePages[index]);
82757
- };
82758
- return SurveyProgressButtonsModel;
82759
- }());
82760
-
82761
-
82762
-
82763
83608
  /***/ }),
82764
83609
 
82765
83610
  /***/ "./src/surveyStrings.ts":
@@ -83824,6 +84669,13 @@ var Trigger = /** @class */ (function (_super) {
83824
84669
  }
83825
84670
  return res;
83826
84671
  };
84672
+ Object.defineProperty(Trigger.prototype, "isInternal", {
84673
+ get: function () {
84674
+ return this.isGhost === true;
84675
+ },
84676
+ enumerable: false,
84677
+ configurable: true
84678
+ });
83827
84679
  Object.defineProperty(Trigger.prototype, "operator", {
83828
84680
  get: function () {
83829
84681
  return this.getPropertyValue("operator", "equal");
@@ -84760,8 +85612,11 @@ var PopupUtils = /** @class */ (function () {
84760
85612
  }
84761
85613
  return { left: Math.round(currentLeft), top: Math.round(currentTop) };
84762
85614
  };
84763
- PopupUtils.getCorrectedVerticalDimensions = function (top, height, windowHeight) {
84764
- var result = { height: height, top: top };
85615
+ PopupUtils.getCorrectedVerticalDimensions = function (top, height, windowHeight, verticalPosition) {
85616
+ var result;
85617
+ if (verticalPosition === "top") {
85618
+ result = { height: height, top: top };
85619
+ }
84765
85620
  if (top < 0) {
84766
85621
  result = { height: height + top, top: 0 };
84767
85622
  }
@@ -85139,7 +85994,7 @@ function confirmAction(message) {
85139
85994
  return _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionFunc(message);
85140
85995
  return confirm(message);
85141
85996
  }
85142
- function confirmActionAsync(message, funcOnYes, funcOnNo) {
85997
+ function confirmActionAsync(message, funcOnYes, funcOnNo, locale) {
85143
85998
  var callbackFunc = function (res) {
85144
85999
  if (res)
85145
86000
  funcOnYes();
@@ -85147,7 +86002,7 @@ function confirmActionAsync(message, funcOnYes, funcOnNo) {
85147
86002
  funcOnNo();
85148
86003
  };
85149
86004
  if (!!_settings__WEBPACK_IMPORTED_MODULE_1__["settings"] && !!_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync) {
85150
- if (_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync(message, callbackFunc))
86005
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync(message, callbackFunc, undefined, locale))
85151
86006
  return;
85152
86007
  }
85153
86008
  callbackFunc(confirmAction(message));
@@ -85496,7 +86351,7 @@ var Logger = /** @class */ (function () {
85496
86351
  return Logger;
85497
86352
  }());
85498
86353
 
85499
- function showConfirmDialog(message, callback, applyTitle) {
86354
+ function showConfirmDialog(message, callback, applyTitle, locale) {
85500
86355
  var locStr = new _localizablestring__WEBPACK_IMPORTED_MODULE_0__["LocalizableString"](undefined);
85501
86356
  var popupViewModel = _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].showDialog({
85502
86357
  componentName: "sv-string-viewer",
@@ -85517,9 +86372,9 @@ function showConfirmDialog(message, callback, applyTitle) {
85517
86372
  var toolbar = popupViewModel.footerToolbar;
85518
86373
  var applyBtn = toolbar.getActionById("apply");
85519
86374
  var cancelBtn = toolbar.getActionById("cancel");
85520
- cancelBtn.title = _surveyStrings__WEBPACK_IMPORTED_MODULE_2__["surveyLocalization"].getString("cancel");
86375
+ cancelBtn.title = _surveyStrings__WEBPACK_IMPORTED_MODULE_2__["surveyLocalization"].getString("cancel", locale);
85521
86376
  cancelBtn.innerCss = "sv-popup__body-footer-item sv-popup__button sd-btn sd-btn--small";
85522
- applyBtn.title = applyTitle || _surveyStrings__WEBPACK_IMPORTED_MODULE_2__["surveyLocalization"].getString("ok");
86377
+ applyBtn.title = applyTitle || _surveyStrings__WEBPACK_IMPORTED_MODULE_2__["surveyLocalization"].getString("ok", locale);
85523
86378
  applyBtn.innerCss = "sv-popup__body-footer-item sv-popup__button sv-popup__button--danger sd-btn sd-btn--small sd-btn--danger";
85524
86379
  popupViewModel.width = "452px";
85525
86380
  return true;