survey-react 1.9.93 → 1.9.94

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.93
2
+ * surveyjs - Survey JavaScript library v1.9.94
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -678,13 +678,14 @@ class SignaturePad extends SignatureEventTarget {
678
678
  /*!*******************************!*\
679
679
  !*** ./src/actions/action.ts ***!
680
680
  \*******************************/
681
- /*! exports provided: createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel */
681
+ /*! exports provided: createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel */
682
682
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
683
683
 
684
684
  "use strict";
685
685
  __webpack_require__.r(__webpack_exports__);
686
686
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createDropdownActionModel", function() { return createDropdownActionModel; });
687
687
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createDropdownActionModelAdvanced", function() { return createDropdownActionModelAdvanced; });
688
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getActionDropdownButtonTarget", function() { return getActionDropdownButtonTarget; });
688
689
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseAction", function() { return BaseAction; });
689
690
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Action", function() { return Action; });
690
691
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActionDropdownViewModel", function() { return ActionDropdownViewModel; });
@@ -748,6 +749,9 @@ function createDropdownActionModelAdvanced(actionOptions, listOptions, popupOpti
748
749
  newAction.data = listModel;
749
750
  return newAction;
750
751
  }
752
+ function getActionDropdownButtonTarget(container) {
753
+ return container === null || container === void 0 ? void 0 : container.previousElementSibling;
754
+ }
751
755
  var BaseAction = /** @class */ (function (_super) {
752
756
  __extends(BaseAction, _super);
753
757
  function BaseAction() {
@@ -1287,7 +1291,7 @@ var AdaptiveActionContainer = /** @class */ (function (_super) {
1287
1291
  }
1288
1292
  };
1289
1293
  AdaptiveActionContainer.prototype.initResponsivityManager = function (container) {
1290
- this.responsivityManager = new _utils_responsivity_manager__WEBPACK_IMPORTED_MODULE_0__["ResponsivityManager"](container, this, ".sv-action:not(.sv-dots)>.sv-action__content");
1294
+ this.responsivityManager = new _utils_responsivity_manager__WEBPACK_IMPORTED_MODULE_0__["ResponsivityManager"](container, this, "& > .sv-action:not(.sv-dots) > .sv-action__content");
1291
1295
  };
1292
1296
  AdaptiveActionContainer.prototype.resetResponsivityManager = function () {
1293
1297
  if (!!this.responsivityManager) {
@@ -3050,10 +3054,10 @@ var ChoicesRestful = /** @class */ (function (_super) {
3050
3054
  }
3051
3055
  Object.defineProperty(ChoicesRestful, "EncodeParameters", {
3052
3056
  get: function () {
3053
- return _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].webserviceEncodeParameters;
3057
+ return _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].web.encodeUrlParams;
3054
3058
  },
3055
3059
  set: function (val) {
3056
- _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].webserviceEncodeParameters = val;
3060
+ _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].web.encodeUrlParams = val;
3057
3061
  },
3058
3062
  enumerable: false,
3059
3063
  configurable: true
@@ -3129,7 +3133,7 @@ var ChoicesRestful = /** @class */ (function (_super) {
3129
3133
  return true;
3130
3134
  if (this.isUsingCacheFromUrl === false)
3131
3135
  return false;
3132
- return _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].useCachingForChoicesRestful;
3136
+ return _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].web.cacheLoadedChoices;
3133
3137
  },
3134
3138
  enumerable: false,
3135
3139
  configurable: true
@@ -3169,8 +3173,8 @@ var ChoicesRestful = /** @class */ (function (_super) {
3169
3173
  .replace(ChoicesRestful.noCacheText, "");
3170
3174
  }
3171
3175
  if (textProcessor) {
3172
- var pUrl = textProcessor.processTextEx(urlText, false, _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].webserviceEncodeParameters);
3173
- var pPath = textProcessor.processTextEx(this.path, false, _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].webserviceEncodeParameters);
3176
+ var pUrl = textProcessor.processTextEx(urlText, false, _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].web.encodeUrlParams);
3177
+ var pPath = textProcessor.processTextEx(this.path, false, _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].web.encodeUrlParams);
3174
3178
  if (!pUrl.hasAllValuesOnLastRun || !pPath.hasAllValuesOnLastRun) {
3175
3179
  this.processedUrl = "";
3176
3180
  this.processedPath = "";
@@ -4366,6 +4370,9 @@ var modernCss = {
4366
4370
  rootDragMod: "sv-ranking--drag",
4367
4371
  rootDisabled: "sv-ranking--disabled",
4368
4372
  rootDragHandleAreaIcon: "sv-ranking--drag-handle-area-icon",
4373
+ rootSelectToRankMod: "sv-ranking--select-to-rank",
4374
+ rootSelectToRankAlignVertical: "sv-ranking--select-to-rank-vertical",
4375
+ rootSelectToRankAlignHorizontal: "sv-ranking--select-to-rank-horizontal",
4369
4376
  item: "sv-ranking-item",
4370
4377
  itemContent: "sv-ranking-item__content",
4371
4378
  itemIndex: "sv-ranking-item__index",
@@ -4379,6 +4386,12 @@ var modernCss = {
4379
4386
  itemIconFocusMod: "sv-ranking-item__icon--focus",
4380
4387
  itemGhostMod: "sv-ranking-item--ghost",
4381
4388
  itemDragMod: "sv-ranking-item--drag",
4389
+ container: "sv-ranking__container",
4390
+ containerEmptyMode: "sv-ranking__container--empty",
4391
+ containerFromMode: "sv-ranking__container--from",
4392
+ containerToMode: "sv-ranking__container--to",
4393
+ containerPlaceholder: "sv-ranking__container-placeholder",
4394
+ containersDivider: "sv-ranking__containers-divider",
4382
4395
  },
4383
4396
  radiogroup: {
4384
4397
  root: "sv-selectbase",
@@ -4796,6 +4809,9 @@ var defaultStandardCss = {
4796
4809
  rootDragMod: "sv-ranking--drag",
4797
4810
  rootDisabled: "sv-ranking--disabled",
4798
4811
  rootDragHandleAreaIcon: "sv-ranking--drag-handle-area-icon",
4812
+ rootSelectToRankMod: "sv-ranking--select-to-rank",
4813
+ rootSelectToRankAlignVertical: "sv-ranking--select-to-rank-vertical",
4814
+ rootSelectToRankAlignHorizontal: "sv-ranking--select-to-rank-horizontal",
4799
4815
  item: "sv-ranking-item",
4800
4816
  itemContent: "sv-ranking-item__content",
4801
4817
  itemIndex: "sv-ranking-item__index",
@@ -4809,6 +4825,12 @@ var defaultStandardCss = {
4809
4825
  itemIconFocusMod: "sv-ranking-item__icon--focus",
4810
4826
  itemGhostMod: "sv-ranking-item--ghost",
4811
4827
  itemDragMod: "sv-ranking-item--drag",
4828
+ container: "sv-ranking__container",
4829
+ containerEmptyMode: "sv-ranking__container--empty",
4830
+ containerFromMode: "sv-ranking__container--from",
4831
+ containerToMode: "sv-ranking__container--to",
4832
+ containerPlaceholder: "sv-ranking__container-placeholder",
4833
+ containersDivider: "sv-ranking__containers-divider",
4812
4834
  },
4813
4835
  comment: {
4814
4836
  remainingCharacterCounter: "sv-remaining-character-counter",
@@ -5644,6 +5666,9 @@ var defaultV2Css = {
5644
5666
  rootDisabled: "sd-ranking--disabled",
5645
5667
  rootDesignMode: "sv-ranking--design-mode",
5646
5668
  rootDragHandleAreaIcon: "sv-ranking--drag-handle-area-icon",
5669
+ rootSelectToRankMod: "sv-ranking--select-to-rank",
5670
+ rootSelectToRankAlignVertical: "sv-ranking--select-to-rank-vertical",
5671
+ rootSelectToRankAlignHorizontal: "sv-ranking--select-to-rank-horizontal",
5647
5672
  item: "sv-ranking-item",
5648
5673
  itemContent: "sv-ranking-item__content sd-ranking-item__content",
5649
5674
  itemIndex: "sv-ranking-item__index sd-ranking-item__index",
@@ -5658,6 +5683,12 @@ var defaultV2Css = {
5658
5683
  itemGhostMod: "sv-ranking-item--ghost",
5659
5684
  itemDragMod: "sv-ranking--drag",
5660
5685
  itemOnError: "sv-ranking-item--error",
5686
+ container: "sv-ranking__container",
5687
+ containerEmptyMode: "sv-ranking__container--empty",
5688
+ containerFromMode: "sv-ranking__container--from",
5689
+ containerToMode: "sv-ranking__container--to",
5690
+ containerPlaceholder: "sv-ranking__container-placeholder",
5691
+ containersDivider: "sv-ranking__containers-divider",
5661
5692
  },
5662
5693
  buttongroup: {
5663
5694
  root: "sv-button-group",
@@ -7141,7 +7172,7 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7141
7172
  }
7142
7173
  };
7143
7174
  DragDropRankingChoices.prototype.updateDraggedElementShortcut = function (newIndex) {
7144
- var newIndexText = newIndex + "";
7175
+ var newIndexText = newIndex !== null ? newIndex + "" : "";
7145
7176
  // TODO should avoid direct DOM manipulation, do through the frameworks instead
7146
7177
  var indexNode = this.domAdapter.draggedElementShortcut.querySelector(".sv-ranking-item__index");
7147
7178
  indexNode.innerText = newIndexText;
@@ -7162,6 +7193,173 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7162
7193
 
7163
7194
 
7164
7195
 
7196
+ /***/ }),
7197
+
7198
+ /***/ "./src/dragdrop/ranking-select-to-rank.ts":
7199
+ /*!************************************************!*\
7200
+ !*** ./src/dragdrop/ranking-select-to-rank.ts ***!
7201
+ \************************************************/
7202
+ /*! exports provided: DragDropRankingSelectToRank */
7203
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
7204
+
7205
+ "use strict";
7206
+ __webpack_require__.r(__webpack_exports__);
7207
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragDropRankingSelectToRank", function() { return DragDropRankingSelectToRank; });
7208
+ /* harmony import */ var _ranking_choices__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ranking-choices */ "./src/dragdrop/ranking-choices.ts");
7209
+ var __extends = (undefined && undefined.__extends) || (function () {
7210
+ var extendStatics = function (d, b) {
7211
+ extendStatics = Object.setPrototypeOf ||
7212
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
7213
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7214
+ return extendStatics(d, b);
7215
+ };
7216
+ return function (d, b) {
7217
+ if (typeof b !== "function" && b !== null)
7218
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
7219
+ extendStatics(d, b);
7220
+ function __() { this.constructor = d; }
7221
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
7222
+ };
7223
+ })();
7224
+
7225
+ var DragDropRankingSelectToRank = /** @class */ (function (_super) {
7226
+ __extends(DragDropRankingSelectToRank, _super);
7227
+ function DragDropRankingSelectToRank() {
7228
+ return _super !== null && _super.apply(this, arguments) || this;
7229
+ }
7230
+ DragDropRankingSelectToRank.prototype.findDropTargetNodeByDragOverNode = function (dragOverNode) {
7231
+ if (dragOverNode.dataset.ranking === "from-container" || dragOverNode.dataset.ranking === "to-container") {
7232
+ return dragOverNode;
7233
+ }
7234
+ if (this.parentElement.isEmpty()) {
7235
+ var toContainer = dragOverNode.closest("[data-ranking='to-container']");
7236
+ var fromContainer = dragOverNode.closest("[data-ranking='from-container']");
7237
+ if (!!toContainer)
7238
+ return toContainer;
7239
+ if (!!fromContainer)
7240
+ return fromContainer;
7241
+ return null;
7242
+ }
7243
+ return _super.prototype.findDropTargetNodeByDragOverNode.call(this, dragOverNode);
7244
+ };
7245
+ DragDropRankingSelectToRank.prototype.getDropTargetByDataAttributeValue = function (dataAttributeValue) {
7246
+ return this.parentElement.rankingChoices[dataAttributeValue] || this.parentElement.unRankingChoices[dataAttributeValue];
7247
+ };
7248
+ DragDropRankingSelectToRank.prototype.getDropTargetByNode = function (dropTargetNode, event) {
7249
+ if (dropTargetNode.dataset.ranking === "to-container") {
7250
+ return "to-container";
7251
+ }
7252
+ if (dropTargetNode.dataset.ranking === "from-container" || dropTargetNode.closest("[data-ranking='from-container']")) {
7253
+ return "from-container";
7254
+ }
7255
+ return _super.prototype.getDropTargetByNode.call(this, dropTargetNode, event);
7256
+ };
7257
+ DragDropRankingSelectToRank.prototype.isDropTargetValid = function (dropTarget, dropTargetNode) {
7258
+ if (dropTarget === "to-container" || dropTarget === "from-container") {
7259
+ return true;
7260
+ }
7261
+ else {
7262
+ return _super.prototype.isDropTargetValid.call(this, dropTarget, dropTargetNode);
7263
+ }
7264
+ };
7265
+ DragDropRankingSelectToRank.prototype.afterDragOver = function (dropTargetNode) {
7266
+ var questionModel = this.parentElement;
7267
+ var rankingChoices = questionModel.rankingChoices;
7268
+ var unRankingChoices = questionModel.unRankingChoices;
7269
+ if (this.isDraggedElementUnranked && this.isDropTargetRanked) {
7270
+ this.doRankBetween(dropTargetNode, unRankingChoices, rankingChoices, this.selectToRank);
7271
+ return;
7272
+ }
7273
+ if (this.isDraggedElementRanked && this.isDropTargetRanked) {
7274
+ this.doRankBetween(dropTargetNode, rankingChoices, rankingChoices, this.reorderRankedItem);
7275
+ return;
7276
+ }
7277
+ if (this.isDraggedElementRanked && !this.isDropTargetRanked) {
7278
+ this.doRankBetween(dropTargetNode, rankingChoices, unRankingChoices, this.unselectFromRank);
7279
+ return;
7280
+ }
7281
+ };
7282
+ DragDropRankingSelectToRank.prototype.doRankBetween = function (dropTargetNode, fromChoicesArray, toChoicesArray, rankFunction) {
7283
+ var questionModel = this.parentElement;
7284
+ var fromIndex = fromChoicesArray.indexOf(this.draggedElement);
7285
+ var toIndex = toChoicesArray.indexOf(this.dropTarget);
7286
+ if (toIndex === -1)
7287
+ toIndex = 0;
7288
+ rankFunction(questionModel, fromIndex, toIndex);
7289
+ this.doUIEffects(dropTargetNode, fromIndex, toIndex);
7290
+ };
7291
+ DragDropRankingSelectToRank.prototype.doUIEffects = function (dropTargetNode, fromIndex, toIndex) {
7292
+ var questionModel = this.parentElement;
7293
+ var isDropToEmptyRankedContainer = this.dropTarget === "to-container" && questionModel.isEmpty();
7294
+ var isNeedToShowIndexAtShortcut = !this.isDropTargetUnranked || isDropToEmptyRankedContainer;
7295
+ var shortcutIndex = isNeedToShowIndexAtShortcut ? toIndex + 1 : null;
7296
+ this.updateDraggedElementShortcut(shortcutIndex);
7297
+ if (fromIndex !== toIndex) {
7298
+ dropTargetNode.classList.remove("sv-dragdrop-moveup");
7299
+ dropTargetNode.classList.remove("sv-dragdrop-movedown");
7300
+ questionModel.dropTargetNodeMove = null;
7301
+ }
7302
+ if (fromIndex > toIndex) {
7303
+ questionModel.dropTargetNodeMove = "down";
7304
+ }
7305
+ if (fromIndex < toIndex) {
7306
+ questionModel.dropTargetNodeMove = "up";
7307
+ }
7308
+ };
7309
+ Object.defineProperty(DragDropRankingSelectToRank.prototype, "isDraggedElementRanked", {
7310
+ get: function () {
7311
+ return this.parentElement.rankingChoices.indexOf(this.draggedElement) !== -1;
7312
+ },
7313
+ enumerable: false,
7314
+ configurable: true
7315
+ });
7316
+ Object.defineProperty(DragDropRankingSelectToRank.prototype, "isDropTargetRanked", {
7317
+ get: function () {
7318
+ if (this.dropTarget === "to-container")
7319
+ return true;
7320
+ return this.parentElement.rankingChoices.indexOf(this.dropTarget) !== -1;
7321
+ },
7322
+ enumerable: false,
7323
+ configurable: true
7324
+ });
7325
+ Object.defineProperty(DragDropRankingSelectToRank.prototype, "isDraggedElementUnranked", {
7326
+ get: function () {
7327
+ return !this.isDraggedElementRanked;
7328
+ },
7329
+ enumerable: false,
7330
+ configurable: true
7331
+ });
7332
+ Object.defineProperty(DragDropRankingSelectToRank.prototype, "isDropTargetUnranked", {
7333
+ get: function () {
7334
+ return !this.isDropTargetRanked;
7335
+ },
7336
+ enumerable: false,
7337
+ configurable: true
7338
+ });
7339
+ DragDropRankingSelectToRank.prototype.selectToRank = function (questionModel, fromIndex, toIndex) {
7340
+ var rankingChoices = questionModel.rankingChoices;
7341
+ var unRankingChoices = questionModel.unRankingChoices;
7342
+ var item = unRankingChoices[fromIndex];
7343
+ rankingChoices.splice(toIndex, 0, item);
7344
+ questionModel.setPropertyValue("rankingChoices", rankingChoices);
7345
+ };
7346
+ DragDropRankingSelectToRank.prototype.unselectFromRank = function (questionModel, fromIndex, toIndex) {
7347
+ var rankingChoices = questionModel.rankingChoices;
7348
+ rankingChoices.splice(fromIndex, 1);
7349
+ questionModel.setPropertyValue("rankingChoices", rankingChoices);
7350
+ };
7351
+ DragDropRankingSelectToRank.prototype.reorderRankedItem = function (questionModel, fromIndex, toIndex) {
7352
+ var rankingChoices = questionModel.rankingChoices;
7353
+ var item = rankingChoices[fromIndex];
7354
+ rankingChoices.splice(fromIndex, 1);
7355
+ rankingChoices.splice(toIndex, 0, item);
7356
+ questionModel.setPropertyValue("rankingChoices", rankingChoices);
7357
+ };
7358
+ return DragDropRankingSelectToRank;
7359
+ }(_ranking_choices__WEBPACK_IMPORTED_MODULE_0__["DragDropRankingChoices"]));
7360
+
7361
+
7362
+
7165
7363
  /***/ }),
7166
7364
 
7167
7365
  /***/ "./src/dropdownListModel.ts":
@@ -7658,6 +7856,9 @@ var DropdownListModel = /** @class */ (function (_super) {
7658
7856
  event.preventDefault();
7659
7857
  event.stopPropagation();
7660
7858
  }
7859
+ if (event.keyCode === 9) {
7860
+ this.popupModel.isVisible = false;
7861
+ }
7661
7862
  else if (!this.popupModel.isVisible && (event.keyCode === 13 || event.keyCode === 32)) {
7662
7863
  this.popupModel.toggleVisibility();
7663
7864
  this.changeSelectionWithKeyboard(false);
@@ -8054,10 +8255,10 @@ var dxSurveyService = /** @class */ (function () {
8054
8255
  }
8055
8256
  Object.defineProperty(dxSurveyService, "serviceUrl", {
8056
8257
  get: function () {
8057
- return _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].surveyServiceUrl;
8258
+ return _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].web.surveyServiceUrl;
8058
8259
  },
8059
8260
  set: function (val) {
8060
- _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].surveyServiceUrl = val;
8261
+ _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].web.surveyServiceUrl = val;
8061
8262
  },
8062
8263
  enumerable: false,
8063
8264
  configurable: true
@@ -8338,7 +8539,7 @@ __webpack_require__.r(__webpack_exports__);
8338
8539
  /*!*************************************!*\
8339
8540
  !*** ./src/entries/chunks/model.ts ***!
8340
8541
  \*************************************/
8341
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices */
8542
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
8342
8543
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8343
8544
 
8344
8545
  "use strict";
@@ -8647,145 +8848,149 @@ __webpack_require__.r(__webpack_exports__);
8647
8848
  /* empty/unused harmony star reexport *//* harmony import */ var _survey__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../../survey */ "./src/survey.ts");
8648
8849
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyModel", function() { return _survey__WEBPACK_IMPORTED_MODULE_59__["SurveyModel"]; });
8649
8850
 
8650
- /* harmony import */ var _trigger__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../../trigger */ "./src/trigger.ts");
8651
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTrigger", function() { return _trigger__WEBPACK_IMPORTED_MODULE_60__["SurveyTrigger"]; });
8851
+ /* harmony import */ var _survey_events_api__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../../survey-events-api */ "./src/survey-events-api.ts");
8852
+ /* empty/unused harmony star reexport *//* harmony import */ var _trigger__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../../trigger */ "./src/trigger.ts");
8853
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTrigger", function() { return _trigger__WEBPACK_IMPORTED_MODULE_61__["SurveyTrigger"]; });
8652
8854
 
8653
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerComplete", function() { return _trigger__WEBPACK_IMPORTED_MODULE_60__["SurveyTriggerComplete"]; });
8855
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerComplete", function() { return _trigger__WEBPACK_IMPORTED_MODULE_61__["SurveyTriggerComplete"]; });
8654
8856
 
8655
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerSetValue", function() { return _trigger__WEBPACK_IMPORTED_MODULE_60__["SurveyTriggerSetValue"]; });
8857
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerSetValue", function() { return _trigger__WEBPACK_IMPORTED_MODULE_61__["SurveyTriggerSetValue"]; });
8656
8858
 
8657
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerVisible", function() { return _trigger__WEBPACK_IMPORTED_MODULE_60__["SurveyTriggerVisible"]; });
8859
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerVisible", function() { return _trigger__WEBPACK_IMPORTED_MODULE_61__["SurveyTriggerVisible"]; });
8658
8860
 
8659
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerCopyValue", function() { return _trigger__WEBPACK_IMPORTED_MODULE_60__["SurveyTriggerCopyValue"]; });
8861
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerCopyValue", function() { return _trigger__WEBPACK_IMPORTED_MODULE_61__["SurveyTriggerCopyValue"]; });
8660
8862
 
8661
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerRunExpression", function() { return _trigger__WEBPACK_IMPORTED_MODULE_60__["SurveyTriggerRunExpression"]; });
8863
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyTriggerRunExpression", function() { return _trigger__WEBPACK_IMPORTED_MODULE_61__["SurveyTriggerRunExpression"]; });
8662
8864
 
8663
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Trigger", function() { return _trigger__WEBPACK_IMPORTED_MODULE_60__["Trigger"]; });
8865
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Trigger", function() { return _trigger__WEBPACK_IMPORTED_MODULE_61__["Trigger"]; });
8664
8866
 
8665
- /* harmony import */ var _popup_survey__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../../popup-survey */ "./src/popup-survey.ts");
8666
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupSurveyModel", function() { return _popup_survey__WEBPACK_IMPORTED_MODULE_61__["PopupSurveyModel"]; });
8867
+ /* harmony import */ var _popup_survey__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../../popup-survey */ "./src/popup-survey.ts");
8868
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupSurveyModel", function() { return _popup_survey__WEBPACK_IMPORTED_MODULE_62__["PopupSurveyModel"]; });
8667
8869
 
8668
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyWindowModel", function() { return _popup_survey__WEBPACK_IMPORTED_MODULE_61__["SurveyWindowModel"]; });
8870
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyWindowModel", function() { return _popup_survey__WEBPACK_IMPORTED_MODULE_62__["SurveyWindowModel"]; });
8669
8871
 
8670
- /* harmony import */ var _textPreProcessor__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../../textPreProcessor */ "./src/textPreProcessor.ts");
8671
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextPreProcessor", function() { return _textPreProcessor__WEBPACK_IMPORTED_MODULE_62__["TextPreProcessor"]; });
8872
+ /* harmony import */ var _textPreProcessor__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../../textPreProcessor */ "./src/textPreProcessor.ts");
8873
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextPreProcessor", function() { return _textPreProcessor__WEBPACK_IMPORTED_MODULE_63__["TextPreProcessor"]; });
8672
8874
 
8673
- /* harmony import */ var _notifier__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../../notifier */ "./src/notifier.ts");
8674
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Notifier", function() { return _notifier__WEBPACK_IMPORTED_MODULE_63__["Notifier"]; });
8875
+ /* harmony import */ var _notifier__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../../notifier */ "./src/notifier.ts");
8876
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Notifier", function() { return _notifier__WEBPACK_IMPORTED_MODULE_64__["Notifier"]; });
8675
8877
 
8676
- /* harmony import */ var _dxSurveyService__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../../dxSurveyService */ "./src/dxSurveyService.ts");
8677
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dxSurveyService", function() { return _dxSurveyService__WEBPACK_IMPORTED_MODULE_64__["dxSurveyService"]; });
8878
+ /* harmony import */ var _dxSurveyService__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../../dxSurveyService */ "./src/dxSurveyService.ts");
8879
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dxSurveyService", function() { return _dxSurveyService__WEBPACK_IMPORTED_MODULE_65__["dxSurveyService"]; });
8678
8880
 
8679
- /* harmony import */ var _localization_english__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../../localization/english */ "./src/localization/english.ts");
8680
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "englishStrings", function() { return _localization_english__WEBPACK_IMPORTED_MODULE_65__["englishStrings"]; });
8881
+ /* harmony import */ var _localization_english__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../../localization/english */ "./src/localization/english.ts");
8882
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "englishStrings", function() { return _localization_english__WEBPACK_IMPORTED_MODULE_66__["englishStrings"]; });
8681
8883
 
8682
- /* harmony import */ var _surveyStrings__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../../surveyStrings */ "./src/surveyStrings.ts");
8683
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyLocalization", function() { return _surveyStrings__WEBPACK_IMPORTED_MODULE_66__["surveyLocalization"]; });
8884
+ /* harmony import */ var _surveyStrings__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../../surveyStrings */ "./src/surveyStrings.ts");
8885
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyLocalization", function() { return _surveyStrings__WEBPACK_IMPORTED_MODULE_67__["surveyLocalization"]; });
8684
8886
 
8685
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyStrings", function() { return _surveyStrings__WEBPACK_IMPORTED_MODULE_66__["surveyStrings"]; });
8887
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyStrings", function() { return _surveyStrings__WEBPACK_IMPORTED_MODULE_67__["surveyStrings"]; });
8686
8888
 
8687
- /* harmony import */ var _questionCustomWidgets__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../../questionCustomWidgets */ "./src/questionCustomWidgets.ts");
8688
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionCustomWidget", function() { return _questionCustomWidgets__WEBPACK_IMPORTED_MODULE_67__["QuestionCustomWidget"]; });
8889
+ /* harmony import */ var _questionCustomWidgets__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../../questionCustomWidgets */ "./src/questionCustomWidgets.ts");
8890
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionCustomWidget", function() { return _questionCustomWidgets__WEBPACK_IMPORTED_MODULE_68__["QuestionCustomWidget"]; });
8689
8891
 
8690
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CustomWidgetCollection", function() { return _questionCustomWidgets__WEBPACK_IMPORTED_MODULE_67__["CustomWidgetCollection"]; });
8892
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CustomWidgetCollection", function() { return _questionCustomWidgets__WEBPACK_IMPORTED_MODULE_68__["CustomWidgetCollection"]; });
8691
8893
 
8692
- /* harmony import */ var _question_custom__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../../question_custom */ "./src/question_custom.ts");
8693
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionCustomModel", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_68__["QuestionCustomModel"]; });
8894
+ /* harmony import */ var _question_custom__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../../question_custom */ "./src/question_custom.ts");
8895
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionCustomModel", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_69__["QuestionCustomModel"]; });
8694
8896
 
8695
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionCompositeModel", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_68__["QuestionCompositeModel"]; });
8897
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionCompositeModel", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_69__["QuestionCompositeModel"]; });
8696
8898
 
8697
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentQuestionJSON", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_68__["ComponentQuestionJSON"]; });
8899
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentQuestionJSON", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_69__["ComponentQuestionJSON"]; });
8698
8900
 
8699
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentCollection", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_68__["ComponentCollection"]; });
8901
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentCollection", function() { return _question_custom__WEBPACK_IMPORTED_MODULE_69__["ComponentCollection"]; });
8700
8902
 
8701
- /* harmony import */ var _stylesmanager__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../../stylesmanager */ "./src/stylesmanager.ts");
8702
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StylesManager", function() { return _stylesmanager__WEBPACK_IMPORTED_MODULE_69__["StylesManager"]; });
8903
+ /* harmony import */ var _stylesmanager__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../../stylesmanager */ "./src/stylesmanager.ts");
8904
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StylesManager", function() { return _stylesmanager__WEBPACK_IMPORTED_MODULE_70__["StylesManager"]; });
8703
8905
 
8704
- /* harmony import */ var _list__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../../list */ "./src/list.ts");
8705
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListModel", function() { return _list__WEBPACK_IMPORTED_MODULE_70__["ListModel"]; });
8906
+ /* harmony import */ var _list__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../../list */ "./src/list.ts");
8907
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListModel", function() { return _list__WEBPACK_IMPORTED_MODULE_71__["ListModel"]; });
8706
8908
 
8707
- /* harmony import */ var _multiSelectListModel__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../../multiSelectListModel */ "./src/multiSelectListModel.ts");
8708
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultiSelectListModel", function() { return _multiSelectListModel__WEBPACK_IMPORTED_MODULE_71__["MultiSelectListModel"]; });
8909
+ /* harmony import */ var _multiSelectListModel__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../../multiSelectListModel */ "./src/multiSelectListModel.ts");
8910
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultiSelectListModel", function() { return _multiSelectListModel__WEBPACK_IMPORTED_MODULE_72__["MultiSelectListModel"]; });
8709
8911
 
8710
- /* harmony import */ var _popup__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../../popup */ "./src/popup.ts");
8711
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupModel", function() { return _popup__WEBPACK_IMPORTED_MODULE_72__["PopupModel"]; });
8912
+ /* harmony import */ var _popup__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../../popup */ "./src/popup.ts");
8913
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupModel", function() { return _popup__WEBPACK_IMPORTED_MODULE_73__["PopupModel"]; });
8712
8914
 
8713
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createDialogOptions", function() { return _popup__WEBPACK_IMPORTED_MODULE_72__["createDialogOptions"]; });
8915
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createDialogOptions", function() { return _popup__WEBPACK_IMPORTED_MODULE_73__["createDialogOptions"]; });
8714
8916
 
8715
- /* harmony import */ var _popup_view_model__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../../popup-view-model */ "./src/popup-view-model.ts");
8716
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupBaseViewModel", function() { return _popup_view_model__WEBPACK_IMPORTED_MODULE_73__["PopupBaseViewModel"]; });
8917
+ /* harmony import */ var _popup_view_model__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../../popup-view-model */ "./src/popup-view-model.ts");
8918
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupBaseViewModel", function() { return _popup_view_model__WEBPACK_IMPORTED_MODULE_74__["PopupBaseViewModel"]; });
8717
8919
 
8718
- /* harmony import */ var _popup_dropdown_view_model__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../../popup-dropdown-view-model */ "./src/popup-dropdown-view-model.ts");
8719
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupDropdownViewModel", function() { return _popup_dropdown_view_model__WEBPACK_IMPORTED_MODULE_74__["PopupDropdownViewModel"]; });
8920
+ /* harmony import */ var _popup_dropdown_view_model__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../../popup-dropdown-view-model */ "./src/popup-dropdown-view-model.ts");
8921
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupDropdownViewModel", function() { return _popup_dropdown_view_model__WEBPACK_IMPORTED_MODULE_75__["PopupDropdownViewModel"]; });
8720
8922
 
8721
- /* harmony import */ var _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../../popup-modal-view-model */ "./src/popup-modal-view-model.ts");
8722
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupModalViewModel", function() { return _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_75__["PopupModalViewModel"]; });
8923
+ /* harmony import */ var _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../../popup-modal-view-model */ "./src/popup-modal-view-model.ts");
8924
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupModalViewModel", function() { return _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_76__["PopupModalViewModel"]; });
8723
8925
 
8724
- /* harmony import */ var _popup_utils__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../../popup-utils */ "./src/popup-utils.ts");
8725
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createPopupViewModel", function() { return _popup_utils__WEBPACK_IMPORTED_MODULE_76__["createPopupViewModel"]; });
8926
+ /* harmony import */ var _popup_utils__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../../popup-utils */ "./src/popup-utils.ts");
8927
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createPopupViewModel", function() { return _popup_utils__WEBPACK_IMPORTED_MODULE_77__["createPopupViewModel"]; });
8726
8928
 
8727
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createPopupModalViewModel", function() { return _popup_utils__WEBPACK_IMPORTED_MODULE_76__["createPopupModalViewModel"]; });
8929
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createPopupModalViewModel", function() { return _popup_utils__WEBPACK_IMPORTED_MODULE_77__["createPopupModalViewModel"]; });
8728
8930
 
8729
- /* harmony import */ var _dropdownListModel__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../../dropdownListModel */ "./src/dropdownListModel.ts");
8730
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownListModel", function() { return _dropdownListModel__WEBPACK_IMPORTED_MODULE_77__["DropdownListModel"]; });
8931
+ /* harmony import */ var _dropdownListModel__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../../dropdownListModel */ "./src/dropdownListModel.ts");
8932
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownListModel", function() { return _dropdownListModel__WEBPACK_IMPORTED_MODULE_78__["DropdownListModel"]; });
8731
8933
 
8732
- /* harmony import */ var _dropdownMultiSelectListModel__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../../dropdownMultiSelectListModel */ "./src/dropdownMultiSelectListModel.ts");
8733
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownMultiSelectListModel", function() { return _dropdownMultiSelectListModel__WEBPACK_IMPORTED_MODULE_78__["DropdownMultiSelectListModel"]; });
8934
+ /* harmony import */ var _dropdownMultiSelectListModel__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../../dropdownMultiSelectListModel */ "./src/dropdownMultiSelectListModel.ts");
8935
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownMultiSelectListModel", function() { return _dropdownMultiSelectListModel__WEBPACK_IMPORTED_MODULE_79__["DropdownMultiSelectListModel"]; });
8734
8936
 
8735
- /* harmony import */ var _question_buttongroup__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../../question_buttongroup */ "./src/question_buttongroup.ts");
8736
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionButtonGroupModel", function() { return _question_buttongroup__WEBPACK_IMPORTED_MODULE_79__["QuestionButtonGroupModel"]; });
8937
+ /* harmony import */ var _question_buttongroup__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../../question_buttongroup */ "./src/question_buttongroup.ts");
8938
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuestionButtonGroupModel", function() { return _question_buttongroup__WEBPACK_IMPORTED_MODULE_80__["QuestionButtonGroupModel"]; });
8737
8939
 
8738
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonGroupItemModel", function() { return _question_buttongroup__WEBPACK_IMPORTED_MODULE_79__["ButtonGroupItemModel"]; });
8940
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonGroupItemModel", function() { return _question_buttongroup__WEBPACK_IMPORTED_MODULE_80__["ButtonGroupItemModel"]; });
8739
8941
 
8740
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonGroupItemValue", function() { return _question_buttongroup__WEBPACK_IMPORTED_MODULE_79__["ButtonGroupItemValue"]; });
8942
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonGroupItemValue", function() { return _question_buttongroup__WEBPACK_IMPORTED_MODULE_80__["ButtonGroupItemValue"]; });
8741
8943
 
8742
- /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../../utils/devices */ "./src/utils/devices.ts");
8743
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IsMobile", function() { return _utils_devices__WEBPACK_IMPORTED_MODULE_80__["IsMobile"]; });
8944
+ /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../../utils/devices */ "./src/utils/devices.ts");
8945
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IsMobile", function() { return _utils_devices__WEBPACK_IMPORTED_MODULE_81__["IsMobile"]; });
8744
8946
 
8745
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IsTouch", function() { return _utils_devices__WEBPACK_IMPORTED_MODULE_80__["IsTouch"]; });
8947
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IsTouch", function() { return _utils_devices__WEBPACK_IMPORTED_MODULE_81__["IsTouch"]; });
8746
8948
 
8747
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_setIsTouch", function() { return _utils_devices__WEBPACK_IMPORTED_MODULE_80__["_setIsTouch"]; });
8949
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_setIsTouch", function() { return _utils_devices__WEBPACK_IMPORTED_MODULE_81__["_setIsTouch"]; });
8748
8950
 
8749
- /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../../utils/utils */ "./src/utils/utils.ts");
8750
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "confirmAction", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["confirmAction"]; });
8951
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../../utils/utils */ "./src/utils/utils.ts");
8952
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "confirmAction", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_82__["confirmAction"]; });
8751
8953
 
8752
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "detectIEOrEdge", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["detectIEOrEdge"]; });
8954
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "detectIEOrEdge", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_82__["detectIEOrEdge"]; });
8753
8955
 
8754
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickUp", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["doKey2ClickUp"]; });
8956
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickUp", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_82__["doKey2ClickUp"]; });
8755
8957
 
8756
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickDown", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["doKey2ClickDown"]; });
8958
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickDown", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_82__["doKey2ClickDown"]; });
8757
8959
 
8758
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickBlur", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["doKey2ClickBlur"]; });
8960
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickBlur", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_82__["doKey2ClickBlur"]; });
8759
8961
 
8760
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "loadFileFromBase64", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["loadFileFromBase64"]; });
8962
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "loadFileFromBase64", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_82__["loadFileFromBase64"]; });
8761
8963
 
8762
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "increaseHeightByContent", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["increaseHeightByContent"]; });
8964
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "increaseHeightByContent", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_82__["increaseHeightByContent"]; });
8763
8965
 
8764
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["createSvg"]; });
8966
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_82__["createSvg"]; });
8765
8967
 
8766
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_81__["sanitizeEditableContent"]; });
8968
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_82__["sanitizeEditableContent"]; });
8767
8969
 
8768
- /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../../utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
8769
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_82__["CssClassBuilder"]; });
8970
+ /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../../utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
8971
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_83__["CssClassBuilder"]; });
8770
8972
 
8771
- /* harmony import */ var _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../../defaultCss/defaultV2Css */ "./src/defaultCss/defaultV2Css.ts");
8772
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyCss", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_83__["surveyCss"]; });
8973
+ /* harmony import */ var _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../../defaultCss/defaultV2Css */ "./src/defaultCss/defaultV2Css.ts");
8974
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyCss", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_84__["surveyCss"]; });
8773
8975
 
8774
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2Css", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_83__["defaultV2Css"]; });
8976
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2Css", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_84__["defaultV2Css"]; });
8775
8977
 
8776
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2ThemeName", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_83__["defaultV2ThemeName"]; });
8978
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2ThemeName", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_84__["defaultV2ThemeName"]; });
8777
8979
 
8778
- /* harmony import */ var _dragdrop_core__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../../dragdrop/core */ "./src/dragdrop/core.ts");
8779
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropCore", function() { return _dragdrop_core__WEBPACK_IMPORTED_MODULE_84__["DragDropCore"]; });
8980
+ /* harmony import */ var _dragdrop_core__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ../../dragdrop/core */ "./src/dragdrop/core.ts");
8981
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropCore", function() { return _dragdrop_core__WEBPACK_IMPORTED_MODULE_85__["DragDropCore"]; });
8780
8982
 
8781
- /* harmony import */ var _dragdrop_choices__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ../../dragdrop/choices */ "./src/dragdrop/choices.ts");
8782
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _dragdrop_choices__WEBPACK_IMPORTED_MODULE_85__["DragDropChoices"]; });
8983
+ /* harmony import */ var _dragdrop_choices__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ../../dragdrop/choices */ "./src/dragdrop/choices.ts");
8984
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _dragdrop_choices__WEBPACK_IMPORTED_MODULE_86__["DragDropChoices"]; });
8985
+
8986
+ /* harmony import */ var _dragdrop_ranking_select_to_rank__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ../../dragdrop/ranking-select-to-rank */ "./src/dragdrop/ranking-select-to-rank.ts");
8987
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropRankingSelectToRank", function() { return _dragdrop_ranking_select_to_rank__WEBPACK_IMPORTED_MODULE_87__["DragDropRankingSelectToRank"]; });
8783
8988
 
8784
8989
  // styles
8785
8990
  // import "../../main.scss";
8786
8991
  //import "../../modern.scss";
8787
8992
  var Version;
8788
- Version = "" + "1.9.93";
8993
+ Version = "" + "1.9.94";
8789
8994
  function checkLibraryVersion(ver, libraryName) {
8790
8995
  if (Version != ver) {
8791
8996
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -8859,6 +9064,7 @@ function checkLibraryVersion(ver, libraryName) {
8859
9064
 
8860
9065
 
8861
9066
 
9067
+
8862
9068
 
8863
9069
 
8864
9070
  // export { cultureInfo } from "../../cultureInfo";
@@ -8885,13 +9091,14 @@ function checkLibraryVersion(ver, libraryName) {
8885
9091
 
8886
9092
 
8887
9093
 
9094
+
8888
9095
  /***/ }),
8889
9096
 
8890
9097
  /***/ "./src/entries/core-wo-model.ts":
8891
9098
  /*!**************************************!*\
8892
9099
  !*** ./src/entries/core-wo-model.ts ***!
8893
9100
  \**************************************/
8894
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper */
9101
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper */
8895
9102
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8896
9103
 
8897
9104
  "use strict";
@@ -9251,6 +9458,8 @@ __webpack_require__.r(__webpack_exports__);
9251
9458
 
9252
9459
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["DragDropChoices"]; });
9253
9460
 
9461
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropRankingSelectToRank", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["DragDropRankingSelectToRank"]; });
9462
+
9254
9463
  /* harmony import */ var _defaultCss_cssstandard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../defaultCss/cssstandard */ "./src/defaultCss/cssstandard.ts");
9255
9464
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultStandardCss", function() { return _defaultCss_cssstandard__WEBPACK_IMPORTED_MODULE_1__["defaultStandardCss"]; });
9256
9465
 
@@ -9284,6 +9493,8 @@ __webpack_require__.r(__webpack_exports__);
9284
9493
 
9285
9494
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createDropdownActionModelAdvanced", function() { return _actions_action__WEBPACK_IMPORTED_MODULE_7__["createDropdownActionModelAdvanced"]; });
9286
9495
 
9496
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getActionDropdownButtonTarget", function() { return _actions_action__WEBPACK_IMPORTED_MODULE_7__["getActionDropdownButtonTarget"]; });
9497
+
9287
9498
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseAction", function() { return _actions_action__WEBPACK_IMPORTED_MODULE_7__["BaseAction"]; });
9288
9499
 
9289
9500
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Action", function() { return _actions_action__WEBPACK_IMPORTED_MODULE_7__["Action"]; });
@@ -9328,7 +9539,7 @@ __webpack_require__.r(__webpack_exports__);
9328
9539
  /*!*****************************!*\
9329
9540
  !*** ./src/entries/core.ts ***!
9330
9541
  \*****************************/
9331
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model */
9542
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model */
9332
9543
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9333
9544
 
9334
9545
  "use strict";
@@ -9688,6 +9899,8 @@ __webpack_require__.r(__webpack_exports__);
9688
9899
 
9689
9900
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["DragDropChoices"]; });
9690
9901
 
9902
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropRankingSelectToRank", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["DragDropRankingSelectToRank"]; });
9903
+
9691
9904
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultStandardCss", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["defaultStandardCss"]; });
9692
9905
 
9693
9906
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "modernCss", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["modernCss"]; });
@@ -9714,6 +9927,8 @@ __webpack_require__.r(__webpack_exports__);
9714
9927
 
9715
9928
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createDropdownActionModelAdvanced", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["createDropdownActionModelAdvanced"]; });
9716
9929
 
9930
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getActionDropdownButtonTarget", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["getActionDropdownButtonTarget"]; });
9931
+
9717
9932
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseAction", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["BaseAction"]; });
9718
9933
 
9719
9934
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Action", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["Action"]; });
@@ -10125,7 +10340,7 @@ __webpack_require__.r(__webpack_exports__);
10125
10340
  /*!******************************!*\
10126
10341
  !*** ./src/entries/react.ts ***!
10127
10342
  \******************************/
10128
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, SurveyLocStringViewer, SurveyLocStringEditor */
10343
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, SurveyLocStringViewer, SurveyLocStringEditor */
10129
10344
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10130
10345
 
10131
10346
  "use strict";
@@ -10485,6 +10700,8 @@ __webpack_require__.r(__webpack_exports__);
10485
10700
 
10486
10701
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["DragDropChoices"]; });
10487
10702
 
10703
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropRankingSelectToRank", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["DragDropRankingSelectToRank"]; });
10704
+
10488
10705
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultStandardCss", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["defaultStandardCss"]; });
10489
10706
 
10490
10707
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "modernCss", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["modernCss"]; });
@@ -10511,6 +10728,8 @@ __webpack_require__.r(__webpack_exports__);
10511
10728
 
10512
10729
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createDropdownActionModelAdvanced", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["createDropdownActionModelAdvanced"]; });
10513
10730
 
10731
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getActionDropdownButtonTarget", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["getActionDropdownButtonTarget"]; });
10732
+
10514
10733
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseAction", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["BaseAction"]; });
10515
10734
 
10516
10735
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Action", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["Action"]; });
@@ -15428,7 +15647,7 @@ function currentDate() {
15428
15647
  FunctionFactory.Instance.register("currentDate", currentDate);
15429
15648
  function today(params) {
15430
15649
  var res = new Date();
15431
- if (_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].useLocalTimeZone) {
15650
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].localization.useLocalTimeZone) {
15432
15651
  res.setHours(0, 0, 0, 0);
15433
15652
  }
15434
15653
  else {
@@ -15705,7 +15924,7 @@ var Helpers = /** @class */ (function () {
15705
15924
  return maxLength > 0 ? maxLength : null;
15706
15925
  };
15707
15926
  Helpers.getRemainingCharacterCounterText = function (newValue, maxLength) {
15708
- if (!maxLength || maxLength <= 0) {
15927
+ if (!maxLength || maxLength <= 0 || !_settings__WEBPACK_IMPORTED_MODULE_0__["settings"].showMaxLengthIndicator) {
15709
15928
  return "";
15710
15929
  }
15711
15930
  var value = newValue ? newValue.length : "0";
@@ -16732,6 +16951,13 @@ var ItemValue = /** @class */ (function (_super) {
16732
16951
  ItemValue.prototype.getLocale = function () {
16733
16952
  return !!this.locOwner && this.locOwner.getLocale ? this.locOwner.getLocale() : "";
16734
16953
  };
16954
+ Object.defineProperty(ItemValue.prototype, "isInternal", {
16955
+ get: function () {
16956
+ return this.isGhost === true;
16957
+ },
16958
+ enumerable: false,
16959
+ configurable: true
16960
+ });
16735
16961
  Object.defineProperty(ItemValue.prototype, "locText", {
16736
16962
  get: function () {
16737
16963
  return this.locTextValue;
@@ -16830,10 +17056,10 @@ var ItemValue = /** @class */ (function (_super) {
16830
17056
  if (_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(json.value))
16831
17057
  return json;
16832
17058
  var canSerializeVal = this.canSerializeValue();
16833
- var canSerializeAsContant = !canSerializeVal || !_settings__WEBPACK_IMPORTED_MODULE_5__["settings"].itemValueAlwaysSerializeAsObject && !_settings__WEBPACK_IMPORTED_MODULE_5__["settings"].itemValueAlwaysSerializeText;
17059
+ var canSerializeAsContant = !canSerializeVal || !_settings__WEBPACK_IMPORTED_MODULE_5__["settings"].serialization.itemValueSerializeAsObject && !_settings__WEBPACK_IMPORTED_MODULE_5__["settings"].serialization.itemValueSerializeDisplayText;
16834
17060
  if (canSerializeAsContant && Object.keys(json).length == 1)
16835
17061
  return this.value;
16836
- if (_settings__WEBPACK_IMPORTED_MODULE_5__["settings"].itemValueAlwaysSerializeText && json.text === undefined && canSerializeVal) {
17062
+ if (_settings__WEBPACK_IMPORTED_MODULE_5__["settings"].serialization.itemValueSerializeDisplayText && json.text === undefined && canSerializeVal) {
16837
17063
  json.text = this.value.toString();
16838
17064
  }
16839
17065
  return json;
@@ -18889,6 +19115,7 @@ __webpack_require__.r(__webpack_exports__);
18889
19115
  /* harmony import */ var _actions_action__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./actions/action */ "./src/actions/action.ts");
18890
19116
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
18891
19117
  /* harmony import */ var _element_helper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./element-helper */ "./src/element-helper.ts");
19118
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
18892
19119
  var __extends = (undefined && undefined.__extends) || (function () {
18893
19120
  var extendStatics = function (d, b) {
18894
19121
  extendStatics = Object.setPrototypeOf ||
@@ -18915,6 +19142,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
18915
19142
 
18916
19143
 
18917
19144
 
19145
+
18918
19146
  var defaultListCss = {
18919
19147
  root: "sv-list__container",
18920
19148
  item: "sv-list__item",
@@ -18928,6 +19156,7 @@ var defaultListCss = {
18928
19156
  itemSeparator: "sv-list__item-separator",
18929
19157
  itemBody: "sv-list__item-body",
18930
19158
  itemsContainer: "sv-list",
19159
+ itemsContainerFiltering: "sv-list--filtering",
18931
19160
  filter: "sv-list__filter",
18932
19161
  filterIcon: "sv-list__filter-icon",
18933
19162
  filterInput: "sv-list__input",
@@ -18963,6 +19192,12 @@ var ListModel = /** @class */ (function (_super) {
18963
19192
  _this.isItemFocused = function (itemValue) {
18964
19193
  return _this.areSameItems(_this.focusedItem, itemValue);
18965
19194
  };
19195
+ _this.getListClass = function () {
19196
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
19197
+ .append(_this.cssClasses.itemsContainer)
19198
+ .append(_this.cssClasses.itemsContainerFiltering, !!_this.filterString && _this.visibleActions.length !== _this.visibleItems.length)
19199
+ .toString();
19200
+ };
18966
19201
  _this.getItemClass = function (itemValue) {
18967
19202
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
18968
19203
  .append(_this.cssClasses.item)
@@ -19096,8 +19331,9 @@ var ListModel = /** @class */ (function (_super) {
19096
19331
  if (event.key === "ArrowDown" || event.keyCode === 40) {
19097
19332
  var currentElement = event.target.parentElement;
19098
19333
  var listElement = currentElement.parentElement.querySelector("ul");
19099
- if (!!listElement && !!listElement.firstElementChild) {
19100
- _element_helper__WEBPACK_IMPORTED_MODULE_4__["ElementHelper"].focusElement(listElement.firstElementChild);
19334
+ var firstChild = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["getFirstVisibleChild"])(listElement);
19335
+ if (!!listElement && !!firstChild) {
19336
+ _element_helper__WEBPACK_IMPORTED_MODULE_4__["ElementHelper"].focusElement(firstChild);
19101
19337
  event.preventDefault();
19102
19338
  }
19103
19339
  }
@@ -19298,10 +19534,10 @@ var LocalizableString = /** @class */ (function () {
19298
19534
  }
19299
19535
  Object.defineProperty(LocalizableString, "defaultLocale", {
19300
19536
  get: function () {
19301
- return _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].defaultLocaleName;
19537
+ return _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.defaultLocaleName;
19302
19538
  },
19303
19539
  set: function (val) {
19304
- _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].defaultLocaleName = val;
19540
+ _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.defaultLocaleName = val;
19305
19541
  },
19306
19542
  enumerable: false,
19307
19543
  configurable: true
@@ -19475,7 +19711,7 @@ var LocalizableString = /** @class */ (function () {
19475
19711
  }
19476
19712
  return;
19477
19713
  }
19478
- if (!_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].storeDuplicatedTranslations &&
19714
+ if (!_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.storeDuplicatedTranslations &&
19479
19715
  value &&
19480
19716
  loc &&
19481
19717
  loc != this.defaultLoc &&
@@ -19514,7 +19750,7 @@ var LocalizableString = /** @class */ (function () {
19514
19750
  configurable: true
19515
19751
  });
19516
19752
  LocalizableString.prototype.canRemoveLocValue = function (loc, val) {
19517
- if (_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].storeDuplicatedTranslations)
19753
+ if (_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.storeDuplicatedTranslations)
19518
19754
  return false;
19519
19755
  if (loc === this.defaultLoc)
19520
19756
  return false;
@@ -19557,8 +19793,8 @@ var LocalizableString = /** @class */ (function () {
19557
19793
  if (keys.length == 0)
19558
19794
  return null;
19559
19795
  if (keys.length == 1 &&
19560
- keys[0] == _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].defaultLocaleName &&
19561
- !_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].serializeLocalizableStringAsObject)
19796
+ keys[0] == _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.defaultLocaleName &&
19797
+ !_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].serialization.localizableStringSerializeAsObject)
19562
19798
  return this.values[keys[0]];
19563
19799
  return this.values;
19564
19800
  };
@@ -19654,7 +19890,7 @@ var LocalizableString = /** @class */ (function () {
19654
19890
  return this.htmlValues[loc];
19655
19891
  };
19656
19892
  LocalizableString.prototype.deleteValuesEqualsToDefault = function (defaultValue) {
19657
- if (_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].storeDuplicatedTranslations)
19893
+ if (_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.storeDuplicatedTranslations)
19658
19894
  return;
19659
19895
  var keys = this.getValuesKeys();
19660
19896
  for (var i = 0; i < keys.length; i++) {
@@ -19684,7 +19920,7 @@ var LocalizableString = /** @class */ (function () {
19684
19920
  };
19685
19921
  LocalizableString.prototype.getValueLoc = function (loc) {
19686
19922
  if (this.disableLocalization)
19687
- return _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].defaultLocaleName;
19923
+ return _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.defaultLocaleName;
19688
19924
  return loc;
19689
19925
  };
19690
19926
  LocalizableString.prototype.getValuesKeys = function () {
@@ -19694,7 +19930,7 @@ var LocalizableString = /** @class */ (function () {
19694
19930
  };
19695
19931
  Object.defineProperty(LocalizableString.prototype, "defaultLoc", {
19696
19932
  get: function () {
19697
- return _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].defaultLocaleName;
19933
+ return _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.defaultLocaleName;
19698
19934
  },
19699
19935
  enumerable: false,
19700
19936
  configurable: true
@@ -19760,7 +19996,7 @@ var LocalizableStrings = /** @class */ (function () {
19760
19996
  if (this.values[loc])
19761
19997
  return this.values[loc];
19762
19998
  if (useDefault) {
19763
- var defLoc = _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].defaultLocaleName;
19999
+ var defLoc = _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.defaultLocaleName;
19764
20000
  if (loc !== defLoc && this.values[defLoc])
19765
20001
  return this.values[defLoc];
19766
20002
  }
@@ -19794,7 +20030,7 @@ var LocalizableStrings = /** @class */ (function () {
19794
20030
  if (!!loc)
19795
20031
  return loc;
19796
20032
  loc = this.locale;
19797
- return !!loc ? loc : _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].defaultLocaleName;
20033
+ return !!loc ? loc : _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.defaultLocaleName;
19798
20034
  };
19799
20035
  LocalizableStrings.prototype.getLocales = function () {
19800
20036
  var keys = this.getValuesKeys();
@@ -19807,8 +20043,8 @@ var LocalizableStrings = /** @class */ (function () {
19807
20043
  if (keys.length == 0)
19808
20044
  return null;
19809
20045
  if (keys.length == 1 &&
19810
- keys[0] == _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].defaultLocaleName &&
19811
- !_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].serializeLocalizableStringAsObject)
20046
+ keys[0] == _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].localization.defaultLocaleName &&
20047
+ !_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].serialization.localizableStringSerializeAsObject)
19812
20048
  return this.values[keys[0]];
19813
20049
  return _helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].createCopy(this.values);
19814
20050
  };
@@ -20791,7 +21027,9 @@ var englishStrings = {
20791
21027
  noEntriesText: "There are no entries yet.\nClick the button below to add a new entry.",
20792
21028
  noEntriesReadonlyText: "There are no entries.",
20793
21029
  more: "More",
20794
- tagboxDoneButtonCaption: "OK"
21030
+ tagboxDoneButtonCaption: "OK",
21031
+ selectToRankFromContainerPlaceholder: "All items are ranked.",
21032
+ selectToRankToContainerPlaceholder: "Drop the items which you like not to be selected here.",
20795
21033
  };
20796
21034
  // Uncomment the lines below if you create a custom dictionary.
20797
21035
  // Replace "en" with a custom locale code (for example, "fr" or "de"),
@@ -22425,7 +22663,7 @@ __webpack_require__.r(__webpack_exports__);
22425
22663
  var latvianSurveyStrings = {
22426
22664
  pagePrevText: "Atpakaļ",
22427
22665
  pageNextText: "Tālāk",
22428
- completeText: "Pabeigt",
22666
+ completeText: "Iesniegt",
22429
22667
  previewText: "Priekšskatījums",
22430
22668
  editText: "Rediģēt",
22431
22669
  startSurveyText: "Sākt",
@@ -25773,7 +26011,7 @@ var PageModel = /** @class */ (function (_super) {
25773
26011
  var _this = _super.call(this, name) || this;
25774
26012
  _this.hasShownValue = false;
25775
26013
  /**
25776
- * A time period that a respondent spent on this page; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
26014
+ * A time period that a respondent has spent on this page so far; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
25777
26015
  * @see maxTimeToFinish
25778
26016
  */
25779
26017
  _this.timeSpent = 0;
@@ -26459,7 +26697,7 @@ var PanelModelBase = /** @class */ (function (_super) {
26459
26697
  Object.defineProperty(PanelModelBase.prototype, "hasTitle", {
26460
26698
  get: function () {
26461
26699
  return ((this.canShowTitle() && this.title.length > 0) ||
26462
- (this.showTitle && this.isDesignMode && _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].allowShowEmptyTitleInDesignMode));
26700
+ (this.showTitle && this.isDesignMode && _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].designMode.showEmptyTitles));
26463
26701
  },
26464
26702
  enumerable: false,
26465
26703
  configurable: true
@@ -26469,8 +26707,8 @@ var PanelModelBase = /** @class */ (function (_super) {
26469
26707
  get: function () {
26470
26708
  return this.survey && this.survey.showPageTitles && this.hasDescription ||
26471
26709
  (this.showDescription && this.isDesignMode &&
26472
- _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].allowShowEmptyTitleInDesignMode &&
26473
- _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].allowShowEmptyDescriptionInDesignMode);
26710
+ _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].designMode.showEmptyTitles &&
26711
+ _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].designMode.showEmptyDescriptions);
26474
26712
  },
26475
26713
  enumerable: false,
26476
26714
  configurable: true
@@ -27361,7 +27599,7 @@ var PanelModelBase = /** @class */ (function (_super) {
27361
27599
  PanelModelBase.prototype.isLazyRenderInRow = function (rowIndex) {
27362
27600
  if (!this.survey || !this.survey.isLazyRendering)
27363
27601
  return false;
27364
- return (rowIndex >= _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].lazyRowsRenderingStartRow ||
27602
+ return (rowIndex >= _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].lazyRender.firstBatchSize ||
27365
27603
  !this.canRenderFirstRows());
27366
27604
  };
27367
27605
  PanelModelBase.prototype.canRenderFirstRows = function () {
@@ -28390,6 +28628,9 @@ var defaultCss = {
28390
28628
  rootDragMod: "sv-ranking--drag",
28391
28629
  rootDisabled: "sv-ranking--disabled",
28392
28630
  rootDragHandleAreaIcon: "sv-ranking--drag-handle-area-icon",
28631
+ rootSelectToRankMod: "sv-ranking--select-to-rank",
28632
+ rootSelectToRankAlignVertical: "sv-ranking--select-to-rank-vertical",
28633
+ rootSelectToRankAlignHorizontal: "sv-ranking--select-to-rank-horizontal",
28393
28634
  item: "sv-ranking-item",
28394
28635
  itemContent: "sv-ranking-item__content",
28395
28636
  itemIndex: "sv-ranking-item__index",
@@ -28403,6 +28644,12 @@ var defaultCss = {
28403
28644
  itemIconFocusMod: "sv-ranking-item__icon--focus",
28404
28645
  itemGhostMod: "sv-ranking-item--ghost",
28405
28646
  itemDragMod: "sv-ranking-item--drag",
28647
+ container: "sv-ranking__container",
28648
+ containerEmptyMode: "sv-ranking__container--empty",
28649
+ containerFromMode: "sv-ranking__container--from",
28650
+ containerToMode: "sv-ranking__container--to",
28651
+ containerPlaceholder: "sv-ranking__container-placeholder",
28652
+ containersDivider: "sv-ranking__containers-divider",
28406
28653
  },
28407
28654
  comment: "form-control",
28408
28655
  dropdown: {
@@ -28834,6 +29081,9 @@ var defaultCss = {
28834
29081
  rootDragMod: "sv-ranking--drag",
28835
29082
  rootDisabled: "sv-ranking--disabled",
28836
29083
  rootDragHandleAreaIcon: "sv-ranking--drag-handle-area-icon",
29084
+ rootSelectToRankMod: "sv-ranking--select-to-rank",
29085
+ rootSelectToRankAlignVertical: "sv-ranking--select-to-rank-vertical",
29086
+ rootSelectToRankAlignHorizontal: "sv-ranking--select-to-rank-horizontal",
28837
29087
  item: "sv-ranking-item",
28838
29088
  itemContent: "sv-ranking-item__content",
28839
29089
  itemIndex: "sv-ranking-item__index",
@@ -28847,6 +29097,12 @@ var defaultCss = {
28847
29097
  itemIconFocusMod: "sv-ranking-item__icon--focus",
28848
29098
  itemGhostMod: "sv-ranking-item--ghost",
28849
29099
  itemDragMod: "sv-ranking-item--drag",
29100
+ container: "sv-ranking__container",
29101
+ containerEmptyMode: "sv-ranking__container--empty",
29102
+ containerFromMode: "sv-ranking__container--from",
29103
+ containerToMode: "sv-ranking__container--to",
29104
+ containerPlaceholder: "sv-ranking__container-placeholder",
29105
+ containersDivider: "sv-ranking__containers-divider",
28850
29106
  },
28851
29107
  comment: "form-control",
28852
29108
  dropdown: {
@@ -29670,16 +29926,14 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
29670
29926
  this.isTablet = width >= PopupDropdownViewModel.tabletSizeBreakpoint;
29671
29927
  };
29672
29928
  PopupDropdownViewModel.prototype._updatePosition = function () {
29929
+ var _a;
29673
29930
  if (!this.targetElement)
29674
29931
  return;
29675
29932
  var targetElementRect = this.targetElement.getBoundingClientRect();
29676
- var background = this.container.children[0];
29677
- if (!background)
29678
- return;
29679
- var popupContainer = background.children[0];
29933
+ var popupContainer = (_a = this.container) === null || _a === void 0 ? void 0 : _a.querySelector(this.containerSelector);
29680
29934
  if (!popupContainer)
29681
29935
  return;
29682
- var scrollContent = popupContainer.querySelector(".sv-popup__scrolling-content");
29936
+ var scrollContent = popupContainer.querySelector(this.scrollingContentSelector);
29683
29937
  var popupComputedStyle = window.getComputedStyle(popupContainer);
29684
29938
  var marginLeft = (parseFloat(popupComputedStyle.marginLeft) || 0);
29685
29939
  var marginRight = (parseFloat(popupComputedStyle.marginRight) || 0);
@@ -29710,9 +29964,9 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
29710
29964
  this.top = pos.top + "px";
29711
29965
  if (this.showHeader) {
29712
29966
  this.pointerTarget = _utils_popup__WEBPACK_IMPORTED_MODULE_1__["PopupUtils"].calculatePointerTarget(targetElementRect, pos.top, pos.left, verticalPosition, actualHorizontalPosition, marginLeft, marginRight);
29967
+ this.pointerTarget.top += "px";
29968
+ this.pointerTarget.left += "px";
29713
29969
  }
29714
- this.pointerTarget.top += "px";
29715
- this.pointerTarget.left += "px";
29716
29970
  };
29717
29971
  PopupDropdownViewModel.prototype.getActualHorizontalPosition = function () {
29718
29972
  var actualHorizontalPosition = this.model.horizontalPosition;
@@ -29740,6 +29994,12 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
29740
29994
  PopupDropdownViewModel.prototype.getPopupHeaderTemplate = function () {
29741
29995
  return "popup-pointer";
29742
29996
  };
29997
+ PopupDropdownViewModel.prototype.setComponentElement = function (componentRoot, targetElement) {
29998
+ _super.prototype.setComponentElement.call(this, componentRoot);
29999
+ if (!!componentRoot && !!componentRoot.parentElement && !this.isModal) {
30000
+ this.targetElement = targetElement || componentRoot.parentElement;
30001
+ }
30002
+ };
29743
30003
  PopupDropdownViewModel.prototype.updateOnShowing = function () {
29744
30004
  var root = _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root;
29745
30005
  this.prevActiveElement = root.activeElement;
@@ -29831,6 +30091,7 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
29831
30091
  __webpack_require__.r(__webpack_exports__);
29832
30092
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopupModalViewModel", function() { return PopupModalViewModel; });
29833
30093
  /* harmony import */ var _popup_view_model__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./popup-view-model */ "./src/popup-view-model.ts");
30094
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
29834
30095
  var __extends = (undefined && undefined.__extends) || (function () {
29835
30096
  var extendStatics = function (d, b) {
29836
30097
  extendStatics = Object.setPrototypeOf ||
@@ -29847,10 +30108,15 @@ var __extends = (undefined && undefined.__extends) || (function () {
29847
30108
  };
29848
30109
  })();
29849
30110
 
30111
+
29850
30112
  var PopupModalViewModel = /** @class */ (function (_super) {
29851
30113
  __extends(PopupModalViewModel, _super);
29852
30114
  function PopupModalViewModel(model) {
29853
- return _super.call(this, model) || this;
30115
+ var _this = _super.call(this, model) || this;
30116
+ _this.onScrollOutsideCallback = function (event) {
30117
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["preventDefaults"])(event);
30118
+ };
30119
+ return _this;
29854
30120
  }
29855
30121
  PopupModalViewModel.prototype.getStyleClass = function () {
29856
30122
  return _super.prototype.getStyleClass.call(this)
@@ -29891,6 +30157,18 @@ var PopupModalViewModel = /** @class */ (function (_super) {
29891
30157
  }
29892
30158
  _super.prototype.onKeyDown.call(this, event);
29893
30159
  };
30160
+ PopupModalViewModel.prototype.updateOnShowing = function () {
30161
+ if (this.container) {
30162
+ this.container.addEventListener("wheel", this.onScrollOutsideCallback, { passive: false });
30163
+ }
30164
+ _super.prototype.updateOnShowing.call(this);
30165
+ };
30166
+ PopupModalViewModel.prototype.updateOnHiding = function () {
30167
+ if (this.container) {
30168
+ this.container.removeEventListener("wheel", this.onScrollOutsideCallback);
30169
+ }
30170
+ _super.prototype.updateOnHiding.call(this);
30171
+ };
29894
30172
  return PopupModalViewModel;
29895
30173
  }(_popup_view_model__WEBPACK_IMPORTED_MODULE_0__["PopupBaseViewModel"]));
29896
30174
 
@@ -30216,11 +30494,14 @@ __webpack_require__.r(__webpack_exports__);
30216
30494
 
30217
30495
 
30218
30496
 
30219
- function createPopupModalViewModel(options) {
30497
+ function createPopupModalViewModel(options, container) {
30220
30498
  var popupModel = new _popup__WEBPACK_IMPORTED_MODULE_0__["PopupModel"](options.componentName, options.data, "top", "left", false, true, options.onCancel, options.onApply, options.onHide, options.onShow, options.cssClass, options.title);
30221
30499
  popupModel.displayMode = options.displayMode || "popup";
30222
30500
  var popupViewModel = new _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_2__["PopupModalViewModel"](popupModel);
30223
- popupViewModel.initializePopupContainer();
30501
+ popupViewModel.setComponentElement(container);
30502
+ if (!container) {
30503
+ popupViewModel.initializePopupContainer();
30504
+ }
30224
30505
  return popupViewModel;
30225
30506
  }
30226
30507
  function createPopupViewModel(model, targetElement) {
@@ -30284,9 +30565,19 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
30284
30565
  __extends(PopupBaseViewModel, _super);
30285
30566
  function PopupBaseViewModel(model) {
30286
30567
  var _this = _super.call(this) || this;
30568
+ _this.popupSelector = ".sv-popup";
30569
+ _this.containerSelector = ".sv-popup__container";
30570
+ _this.scrollingContentSelector = ".sv-popup__scrolling-content";
30287
30571
  _this.model = model;
30288
30572
  return _this;
30289
30573
  }
30574
+ Object.defineProperty(PopupBaseViewModel.prototype, "container", {
30575
+ get: function () {
30576
+ return this.containerElement || this.createdContainer;
30577
+ },
30578
+ enumerable: false,
30579
+ configurable: true
30580
+ });
30290
30581
  PopupBaseViewModel.prototype.getLocale = function () {
30291
30582
  if (!!this.locale)
30292
30583
  return this.locale;
@@ -30502,7 +30793,8 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
30502
30793
  PopupBaseViewModel.prototype.focusContainer = function () {
30503
30794
  if (!this.container)
30504
30795
  return;
30505
- this.container.children[0].focus();
30796
+ var popup = this.container.querySelector(this.popupSelector);
30797
+ popup === null || popup === void 0 ? void 0 : popup.focus();
30506
30798
  };
30507
30799
  PopupBaseViewModel.prototype.focusFirstInput = function () {
30508
30800
  var _this = this;
@@ -30516,8 +30808,9 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
30516
30808
  _this.focusContainer();
30517
30809
  }, 100);
30518
30810
  };
30519
- PopupBaseViewModel.prototype.clickOutside = function () {
30811
+ PopupBaseViewModel.prototype.clickOutside = function (event) {
30520
30812
  this.hidePopup();
30813
+ event === null || event === void 0 ? void 0 : event.stopPropagation();
30521
30814
  };
30522
30815
  PopupBaseViewModel.prototype.cancel = function () {
30523
30816
  this.model.onCancel();
@@ -30525,21 +30818,25 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
30525
30818
  };
30526
30819
  PopupBaseViewModel.prototype.dispose = function () {
30527
30820
  _super.prototype.dispose.call(this);
30528
- this.unmountPopupContainer();
30529
- this.container = undefined;
30821
+ if (!!this.createdContainer) {
30822
+ this.createdContainer.remove();
30823
+ this.createdContainer = undefined;
30824
+ }
30530
30825
  if (!!this.footerToolbarValue) {
30531
30826
  this.footerToolbarValue.dispose();
30532
30827
  }
30533
30828
  };
30534
30829
  PopupBaseViewModel.prototype.initializePopupContainer = function () {
30535
- if (!this.createdContainer) {
30830
+ if (!this.container) {
30536
30831
  var container = document.createElement("div");
30537
- this.container = this.createdContainer = container;
30832
+ this.createdContainer = container;
30833
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["getElement"])(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.popupMountContainer).appendChild(container);
30538
30834
  }
30539
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["getElement"])(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.popupMountContainer).appendChild(this.container);
30540
30835
  };
30541
- PopupBaseViewModel.prototype.unmountPopupContainer = function () {
30542
- this.createdContainer.remove();
30836
+ PopupBaseViewModel.prototype.setComponentElement = function (componentRoot, targetElement) {
30837
+ if (!!componentRoot) {
30838
+ this.containerElement = componentRoot;
30839
+ }
30543
30840
  };
30544
30841
  __decorate([
30545
30842
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: "0px" })
@@ -30867,7 +31164,7 @@ var Question = /** @class */ (function (_super) {
30867
31164
  return "sq_" + Question.questionCounter++;
30868
31165
  };
30869
31166
  Question.prototype.isReadOnlyRenderDiv = function () {
30870
- return this.isReadOnly && _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].readOnlyCommentRenderMode === "div";
31167
+ return this.isReadOnly && _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].readOnly.commentRenderMode === "div";
30871
31168
  };
30872
31169
  Question.prototype.setIsMobile = function (val) { };
30873
31170
  Question.prototype.createLocTitleProperty = function () {
@@ -32140,6 +32437,7 @@ var Question = /** @class */ (function (_super) {
32140
32437
  Question.prototype.onReadOnlyChanged = function () {
32141
32438
  this.setPropertyValue("isInputReadOnly", this.isInputReadOnly);
32142
32439
  _super.prototype.onReadOnlyChanged.call(this);
32440
+ this.updateQuestionCss();
32143
32441
  };
32144
32442
  Object.defineProperty(Question.prototype, "enableIf", {
32145
32443
  /**
@@ -32391,7 +32689,7 @@ var Question = /** @class */ (function (_super) {
32391
32689
  *
32392
32690
  * - `"default"` (default) - Inherits the setting from the Survey's [`clearInvisibleValues`](https://surveyjs.io/form-library/documentation/surveymodel#clearInvisibleValues) property.
32393
32691
  * - `"onHidden"` - Clears the value when the question becomes invisible. If a question is invisible on startup and has an initial value, this value will be cleared when the survey is complete.
32394
- * - `"onHiddenContainer"` - Clears the value when the question or its containter (page or panel) becomes invisible. If the question is invisible initially, its value is removed on survey completion.
32692
+ * - `"onHiddenContainer"` - Clears the value when the question or its container (page or panel) becomes invisible. If a question is invisible on startup and has an initial value, this value will be cleared when the survey is complete.
32395
32693
  * - `"onComplete"` - Clears the value when the survey is complete.
32396
32694
  * - `"none"` - Never clears the value of an invisible question.
32397
32695
  * @see SurveyModel.clearInvisibleValues
@@ -33047,6 +33345,7 @@ var Question = /** @class */ (function (_super) {
33047
33345
  newValue = this.valueForSurvey;
33048
33346
  this.data.setValue(this.getValueName(), newValue, this.getDataLocNotification(), this.allowNotifyValueChanged);
33049
33347
  }
33348
+ this.isMouseDown = false;
33050
33349
  };
33051
33350
  Question.prototype.canSetValueToSurvey = function () {
33052
33351
  return true;
@@ -33058,6 +33357,9 @@ var Question = /** @class */ (function (_super) {
33058
33357
  return val;
33059
33358
  };
33060
33359
  Question.prototype.onValueChanged = function () { };
33360
+ Question.prototype.onMouseDown = function () {
33361
+ this.isMouseDown = true;
33362
+ };
33061
33363
  Question.prototype.setNewComment = function (newValue) {
33062
33364
  if (this.questionComment === newValue)
33063
33365
  return;
@@ -33103,8 +33405,8 @@ var Question = /** @class */ (function (_super) {
33103
33405
  Question.prototype.onSurveyValueChanged = function (newValue) { };
33104
33406
  Question.prototype.setVisibleIndex = function (val) {
33105
33407
  if (!this.isVisible ||
33106
- (!this.hasTitle && !_settings__WEBPACK_IMPORTED_MODULE_8__["settings"].setQuestionVisibleIndexForHiddenTitle) ||
33107
- (this.hideNumber && !_settings__WEBPACK_IMPORTED_MODULE_8__["settings"].setQuestionVisibleIndexForHiddenNumber)) {
33408
+ (!this.hasTitle && !_settings__WEBPACK_IMPORTED_MODULE_8__["settings"].numbering.includeQuestionsWithHiddenTitle) ||
33409
+ (this.hideNumber && !_settings__WEBPACK_IMPORTED_MODULE_8__["settings"].numbering.includeQuestionsWithHiddenNumber)) {
33108
33410
  val = -1;
33109
33411
  }
33110
33412
  this.setPropertyValue("visibleIndex", val);
@@ -34645,6 +34947,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
34645
34947
  if (isAddAll) {
34646
34948
  if (!this.newItemValue) {
34647
34949
  this.newItemValue = this.createItemValue("newitem"); //TODO
34950
+ this.newItemValue.isGhost = true;
34648
34951
  }
34649
34952
  if (!this.isUsingCarryForward && this.canShowOptionItem(this.newItemValue, isAddAll, false)) {
34650
34953
  items.push(this.newItemValue);
@@ -34729,7 +35032,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
34729
35032
  if (val == this.otherItemValue.value)
34730
35033
  return this.otherValue ? this.otherValue : this.locOtherText.textOrHtml;
34731
35034
  var selItem = this.getSingleSelectedItem();
34732
- if (!!selItem && selItem.value === val)
35035
+ if (!!selItem && this.isTwoValueEquals(selItem.value, val))
34733
35036
  return selItem.locText.textOrHtml;
34734
35037
  var str = _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"].getTextOrHtmlByValue(items, val);
34735
35038
  return str == "" && val ? val : str;
@@ -34913,6 +35216,9 @@ var QuestionSelectBase = /** @class */ (function (_super) {
34913
35216
  }
34914
35217
  }
34915
35218
  _super.prototype.updateValueFromSurvey.call(this, newValue);
35219
+ if ((this.isRunningChoices || this.choicesByUrl.isRunning) && !this.isEmpty()) {
35220
+ this.cachedValueForUrlRequests = this.value;
35221
+ }
34916
35222
  if (!!newComment) {
34917
35223
  this.setNewComment(newComment);
34918
35224
  }
@@ -34955,7 +35261,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
34955
35261
  this.isRunningChoices = false;
34956
35262
  };
34957
35263
  QuestionSelectBase.prototype.onBeforeSendRequest = function () {
34958
- if (_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].disableOnGettingChoicesFromWeb === true && !this.isReadOnly) {
35264
+ if (_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].web.disableQuestionWhileLoadingChoices === true && !this.isReadOnly) {
34959
35265
  this.enableOnLoadingChoices = true;
34960
35266
  this.readOnly = true;
34961
35267
  }
@@ -39070,7 +39376,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
39070
39376
  /**
39071
39377
  * A class that describes the File question type.
39072
39378
  *
39073
- * [View Demo](https://surveyjs.io/form-library/examples/questiontype-file/ (linkStyle))
39379
+ * [View Demo](https://surveyjs.io/form-library/examples/file-upload/ (linkStyle))
39074
39380
  */
39075
39381
  var QuestionFileModel = /** @class */ (function (_super) {
39076
39382
  __extends(QuestionFileModel, _super);
@@ -40956,7 +41262,7 @@ var MatrixCells = /** @class */ (function () {
40956
41262
  this.valuesChanged();
40957
41263
  };
40958
41264
  MatrixCells.prototype.setDefaultCellText = function (column, val) {
40959
- this.setCellText(_settings__WEBPACK_IMPORTED_MODULE_10__["settings"].matrixDefaultRowName, column, val);
41265
+ this.setCellText(_settings__WEBPACK_IMPORTED_MODULE_10__["settings"].matrix.defaultRowName, column, val);
40960
41266
  };
40961
41267
  MatrixCells.prototype.getCellLocText = function (row, column) {
40962
41268
  row = this.getCellRowColumnValue(row, this.rows);
@@ -40970,13 +41276,13 @@ var MatrixCells = /** @class */ (function () {
40970
41276
  return this.values[row][column];
40971
41277
  };
40972
41278
  MatrixCells.prototype.getDefaultCellLocText = function (column, val) {
40973
- return this.getCellLocText(_settings__WEBPACK_IMPORTED_MODULE_10__["settings"].matrixDefaultRowName, column);
41279
+ return this.getCellLocText(_settings__WEBPACK_IMPORTED_MODULE_10__["settings"].matrix.defaultRowName, column);
40974
41280
  };
40975
41281
  MatrixCells.prototype.getCellDisplayLocText = function (row, column) {
40976
41282
  var cellText = this.getCellLocText(row, column);
40977
41283
  if (cellText && !cellText.isEmpty)
40978
41284
  return cellText;
40979
- cellText = this.getCellLocText(_settings__WEBPACK_IMPORTED_MODULE_10__["settings"].matrixDefaultRowName, column);
41285
+ cellText = this.getCellLocText(_settings__WEBPACK_IMPORTED_MODULE_10__["settings"].matrix.defaultRowName, column);
40980
41286
  if (cellText && !cellText.isEmpty)
40981
41287
  return cellText;
40982
41288
  if (typeof column == "number") {
@@ -40994,7 +41300,7 @@ var MatrixCells = /** @class */ (function () {
40994
41300
  return loc ? loc.calculatedText : null;
40995
41301
  };
40996
41302
  MatrixCells.prototype.getDefaultCellText = function (column) {
40997
- var loc = this.getCellLocText(_settings__WEBPACK_IMPORTED_MODULE_10__["settings"].matrixDefaultRowName, column);
41303
+ var loc = this.getCellLocText(_settings__WEBPACK_IMPORTED_MODULE_10__["settings"].matrix.defaultRowName, column);
40998
41304
  return loc ? loc.calculatedText : null;
40999
41305
  };
41000
41306
  MatrixCells.prototype.getCellDisplayText = function (row, column) {
@@ -41304,7 +41610,7 @@ var QuestionMatrixModel = /** @class */ (function (_super) {
41304
41610
  return loc ? loc : this.emptyLocalizableString;
41305
41611
  };
41306
41612
  QuestionMatrixModel.prototype.supportGoNextPageAutomatic = function () {
41307
- return this.hasValuesInAllRows();
41613
+ return this.isMouseDown === true && this.hasValuesInAllRows();
41308
41614
  };
41309
41615
  QuestionMatrixModel.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
41310
41616
  _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
@@ -42378,7 +42684,7 @@ var MatrixDropdownRowModelBase = /** @class */ (function () {
42378
42684
  }
42379
42685
  else {
42380
42686
  if (!this.getSharedQuestionByName(key) &&
42381
- key.indexOf(_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].matrixTotalValuePostFix) < 0) {
42687
+ key.indexOf(_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].matrix.totalsSuffix) < 0) {
42382
42688
  this.setValue(key, null);
42383
42689
  }
42384
42690
  }
@@ -42635,10 +42941,10 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
42635
42941
  }
42636
42942
  Object.defineProperty(QuestionMatrixDropdownModelBase, "defaultCellType", {
42637
42943
  get: function () {
42638
- return _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].matrixDefaultCellType;
42944
+ return _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].matrix.defaultCellType;
42639
42945
  },
42640
42946
  set: function (val) {
42641
- _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].matrixDefaultCellType = val;
42947
+ _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].matrix.defaultCellType = val;
42642
42948
  },
42643
42949
  enumerable: false,
42644
42950
  configurable: true
@@ -42979,10 +43285,10 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
42979
43285
  * - `"expression"`
42980
43286
  * - `"rating"`
42981
43287
  *
42982
- * Default value: `"dropdown"` (inherited from [`settings.matrixDefaultCellType`](https://surveyjs.io/form-library/documentation/settings#matrixDefaultCellType))
43288
+ * Default value: `"dropdown"` (inherited from [`settings.matrix.defaultCellType`](https://surveyjs.io/form-library/documentation/settings#matrixDefaultCellType))
42983
43289
  */
42984
43290
  get: function () {
42985
- return this.getPropertyValue("cellType", _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].matrixDefaultCellType);
43291
+ return this.getPropertyValue("cellType", _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].matrix.defaultCellType);
42986
43292
  },
42987
43293
  set: function (val) {
42988
43294
  val = val.toLowerCase();
@@ -43932,13 +44238,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
43932
44238
  };
43933
44239
  QuestionMatrixDropdownModelBase.prototype.getOnCellValueChangedOptions = function (row, columnName, rowValue) {
43934
44240
  var getQuestion = function (colName) {
43935
- for (var i = 0; i < row.cells.length; i++) {
43936
- var col = row.cells[i].column;
43937
- if (!!col && col.name === colName) {
43938
- return row.cells[i].question;
43939
- }
43940
- }
43941
- return null;
44241
+ return row.getQuestionByName(colName);
43942
44242
  };
43943
44243
  return {
43944
44244
  row: row,
@@ -43946,6 +44246,8 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
43946
44246
  rowValue: rowValue,
43947
44247
  value: !!rowValue ? rowValue[columnName] : null,
43948
44248
  getCellQuestion: getQuestion,
44249
+ cellQuestion: row.getQuestionByName(columnName),
44250
+ column: this.getColumnByName(columnName)
43949
44251
  };
43950
44252
  };
43951
44253
  QuestionMatrixDropdownModelBase.prototype.onCellValueChanged = function (row, columnName, rowValue) {
@@ -44135,7 +44437,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
44135
44437
  !!this.visibleTotalRow &&
44136
44438
  !this.isUpdateLocked &&
44137
44439
  !this.isSett) {
44138
- this.data.setValue(this.getValueName() + _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].matrixTotalValuePostFix, this.totalValue, false);
44440
+ this.data.setValue(this.getValueName() + _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].matrix.totalsSuffix, this.totalValue, false);
44139
44441
  }
44140
44442
  };
44141
44443
  QuestionMatrixDropdownModelBase.prototype.getParentTextProcessor = function () {
@@ -44860,7 +45162,7 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
44860
45162
  return cellType;
44861
45163
  if (this.colOwner)
44862
45164
  return this.colOwner.getCellType();
44863
- return _settings__WEBPACK_IMPORTED_MODULE_3__["settings"].matrixDefaultCellType;
45165
+ return _settings__WEBPACK_IMPORTED_MODULE_3__["settings"].matrix.defaultCellType;
44864
45166
  };
44865
45167
  MatrixDropdownColumn.prototype.updateTemplateQuestion = function (newCellType) {
44866
45168
  var _this = this;
@@ -45731,7 +46033,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
45731
46033
  };
45732
46034
  Object.defineProperty(QuestionMatrixDropdownRenderedTable.prototype, "showRemoveButtonAsIcon", {
45733
46035
  get: function () {
45734
- return (_settings__WEBPACK_IMPORTED_MODULE_7__["settings"].matrixRenderRemoveAsIcon && this.matrix.survey && this.matrix.survey.css.root === "sd-root-modern");
46036
+ return (_settings__WEBPACK_IMPORTED_MODULE_7__["settings"].matrix.renderRemoveAsIcon && this.matrix.survey && this.matrix.survey.css.root === "sd-root-modern");
45735
46037
  },
45736
46038
  enumerable: false,
45737
46039
  configurable: true
@@ -46315,7 +46617,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
46315
46617
  return this.rowCountValue;
46316
46618
  },
46317
46619
  set: function (val) {
46318
- if (val < 0 || val > _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].matrixMaximumRowCount)
46620
+ if (val < 0 || val > _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].matrix.maxRowCount)
46319
46621
  return;
46320
46622
  this.setRowCountValueFromData = false;
46321
46623
  var prevValue = this.rowCountValue;
@@ -46427,7 +46729,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
46427
46729
  /**
46428
46730
  * A maximum number of rows in the matrix. Users cannot add new rows if `rowCount` equals `maxRowCount`.
46429
46731
  *
46430
- * Default value: 1000 (inherited from [`settings.matrixMaximumRowCount`](https://surveyjs.io/form-library/documentation/settings#matrixMaximumRowCount))
46732
+ * Default value: 1000 (inherited from [`settings.matrix.maxRowCount`](https://surveyjs.io/form-library/documentation/settings#matrixMaximumRowCount))
46431
46733
  * @see rowCount
46432
46734
  * @see minRowCount
46433
46735
  * @see allowAddRows
@@ -46438,8 +46740,8 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
46438
46740
  set: function (val) {
46439
46741
  if (val <= 0)
46440
46742
  return;
46441
- if (val > _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].matrixMaximumRowCount)
46442
- val = _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].matrixMaximumRowCount;
46743
+ if (val > _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].matrix.maxRowCount)
46744
+ val = _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].matrix.maxRowCount;
46443
46745
  if (val == this.maxRowCount)
46444
46746
  return;
46445
46747
  this.setPropertyValue("maxRowCount", val);
@@ -46557,11 +46859,14 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
46557
46859
  */
46558
46860
  QuestionMatrixDynamicModel.prototype.addRow = function (setFocus) {
46559
46861
  var oldRowCount = this.rowCount;
46560
- var options = { question: this, canAddRow: this.canAddRow };
46862
+ var allow = this.canAddRow;
46863
+ var options = { question: this, canAddRow: allow, allow: allow };
46561
46864
  if (!!this.survey) {
46562
46865
  this.survey.matrixBeforeRowAdded(options);
46563
46866
  }
46564
- if (!options.canAddRow)
46867
+ var newAllow = allow !== options.allow ? options.allow :
46868
+ (allow !== options.canAddRow ? options.canAddRow : allow);
46869
+ if (!newAllow)
46565
46870
  return;
46566
46871
  this.onStartRowAddingRemoving();
46567
46872
  this.addRowCore();
@@ -46890,7 +47195,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
46890
47195
  QuestionMatrixDynamicModel.prototype.getConditionObjectsRowIndeces = function () {
46891
47196
  var res = [];
46892
47197
  var rowCount = Math.max(this.rowCount, 1);
46893
- for (var i = 0; i < Math.min(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].matrixMaxRowCountInCondition, rowCount); i++) {
47198
+ for (var i = 0; i < Math.min(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].matrix.maxRowCountInCondition, rowCount); i++) {
46894
47199
  res.push(i);
46895
47200
  }
46896
47201
  return res;
@@ -47100,7 +47405,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdynamic",
47100
47405
  { name: "minRowCount:number", default: 0, minValue: 0 },
47101
47406
  {
47102
47407
  name: "maxRowCount:number",
47103
- default: _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].matrixMaximumRowCount,
47408
+ default: _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].matrix.maxRowCount,
47104
47409
  },
47105
47410
  { name: "keyName" },
47106
47411
  "defaultRowValue:rowvalue",
@@ -49081,7 +49386,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49081
49386
  /**
49082
49387
  * A maximum number of panels in Dynamic Panel. Users cannot add new panels if `panelCount` equals `maxPanelCount`.
49083
49388
  *
49084
- * Default value: 100 (inherited from [`settings.panelMaximumPanelCount`](https://surveyjs.io/form-library/documentation/settings#panelMaximumPanelCount))
49389
+ * Default value: 100 (inherited from [`settings.panel.maxPanelCount`](https://surveyjs.io/form-library/documentation/settings#panelMaximumPanelCount))
49085
49390
  * @see panelCount
49086
49391
  * @see minPanelCount
49087
49392
  * @see allowAddPanel
@@ -49092,8 +49397,8 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49092
49397
  set: function (val) {
49093
49398
  if (val <= 0)
49094
49399
  return;
49095
- if (val > _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].panelMaximumPanelCount)
49096
- val = _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].panelMaximumPanelCount;
49400
+ if (val > _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].panel.maxPanelCount)
49401
+ val = _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].panel.maxPanelCount;
49097
49402
  if (val == this.maxPanelCount)
49098
49403
  return;
49099
49404
  this.setPropertyValue("maxPanelCount", val);
@@ -49628,7 +49933,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49628
49933
  if (!!q)
49629
49934
  continue;
49630
49935
  if (this.iscorrectValueWithPostPrefix(panel, key, _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].commentSuffix) ||
49631
- this.iscorrectValueWithPostPrefix(panel, key, _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].matrixTotalValuePostFix))
49936
+ this.iscorrectValueWithPostPrefix(panel, key, _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].matrix.totalsSuffix))
49632
49937
  continue;
49633
49938
  delete values[key];
49634
49939
  isChanged = true;
@@ -49657,7 +49962,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49657
49962
  for (var i = 0; i < questions.length; i++) {
49658
49963
  questions[i].addConditionObjectsByContext(panelObjs, context);
49659
49964
  }
49660
- for (var index = 0; index < _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].panelDynamicMaxPanelCountInCondition; index++) {
49965
+ for (var index = 0; index < _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].panel.maxPanelCountInCondition; index++) {
49661
49966
  var indexStr = "[" + index + "].";
49662
49967
  var prefixName = this.getValueName() + indexStr;
49663
49968
  var prefixText = this.processedTitle + indexStr;
@@ -49710,6 +50015,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49710
50015
  this.panels[i].readOnly = readOnly;
49711
50016
  }
49712
50017
  this.updateNoEntriesTextDefaultLoc();
50018
+ this.updateFooterActions();
49713
50019
  _super.prototype.onReadOnlyChanged.call(this);
49714
50020
  };
49715
50021
  QuestionPanelDynamicModel.prototype.updateNoEntriesTextDefaultLoc = function () {
@@ -50558,7 +50864,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
50558
50864
  { name: "minPanelCount:number", default: 0, minValue: 0 },
50559
50865
  {
50560
50866
  name: "maxPanelCount:number",
50561
- default: _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].panelMaximumPanelCount,
50867
+ default: _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].panel.maxPanelCount,
50562
50868
  },
50563
50869
  "defaultPanelValue:panelvalue",
50564
50870
  "defaultValueFromLastPanel:boolean",
@@ -50726,7 +51032,12 @@ var QuestionRadiogroupModel = /** @class */ (function (_super) {
50726
51032
  configurable: true
50727
51033
  });
50728
51034
  QuestionRadiogroupModel.prototype.supportGoNextPageAutomatic = function () {
50729
- return true;
51035
+ return this.isMouseDown === true;
51036
+ };
51037
+ QuestionRadiogroupModel.prototype.setNewComment = function (newValue) {
51038
+ this.isMouseDown = true;
51039
+ _super.prototype.setNewComment.call(this, newValue);
51040
+ this.isMouseDown = false;
50730
51041
  };
50731
51042
  Object.defineProperty(QuestionRadiogroupModel.prototype, "showClearButtonInContent", {
50732
51043
  get: function () {
@@ -50782,14 +51093,15 @@ _questionfactory__WEBPACK_IMPORTED_MODULE_1__["QuestionFactory"].Instance.regist
50782
51093
  __webpack_require__.r(__webpack_exports__);
50783
51094
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QuestionRankingModel", function() { return QuestionRankingModel; });
50784
51095
  /* harmony import */ var _dragdrop_ranking_choices__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dragdrop/ranking-choices */ "./src/dragdrop/ranking-choices.ts");
50785
- /* harmony import */ var _itemvalue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./itemvalue */ "./src/itemvalue.ts");
50786
- /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./jsonobject */ "./src/jsonobject.ts");
50787
- /* harmony import */ var _questionfactory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./questionfactory */ "./src/questionfactory.ts");
50788
- /* harmony import */ var _question_checkbox__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./question_checkbox */ "./src/question_checkbox.ts");
50789
- /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
50790
- /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/devices */ "./src/utils/devices.ts");
50791
- /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./helpers */ "./src/helpers.ts");
50792
- /* harmony import */ var _src_settings__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../src/settings */ "./src/settings.ts");
51096
+ /* harmony import */ var _dragdrop_ranking_select_to_rank__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dragdrop/ranking-select-to-rank */ "./src/dragdrop/ranking-select-to-rank.ts");
51097
+ /* harmony import */ var _itemvalue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./itemvalue */ "./src/itemvalue.ts");
51098
+ /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./jsonobject */ "./src/jsonobject.ts");
51099
+ /* harmony import */ var _questionfactory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./questionfactory */ "./src/questionfactory.ts");
51100
+ /* harmony import */ var _question_checkbox__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./question_checkbox */ "./src/question_checkbox.ts");
51101
+ /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
51102
+ /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/devices */ "./src/utils/devices.ts");
51103
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./helpers */ "./src/helpers.ts");
51104
+ /* harmony import */ var _src_settings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../src/settings */ "./src/settings.ts");
50793
51105
  var __extends = (undefined && undefined.__extends) || (function () {
50794
51106
  var extendStatics = function (d, b) {
50795
51107
  extendStatics = Object.setPrototypeOf ||
@@ -50820,6 +51132,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
50820
51132
 
50821
51133
 
50822
51134
 
51135
+
50823
51136
  /**
50824
51137
  * A class that describes the Ranking question type.
50825
51138
  *
@@ -50842,6 +51155,10 @@ var QuestionRankingModel = /** @class */ (function (_super) {
50842
51155
  _this.updateRankingChoices();
50843
51156
  return;
50844
51157
  }
51158
+ if (_this.selectToRankEnabled) {
51159
+ _this.updateRankingChoices();
51160
+ return;
51161
+ }
50845
51162
  if (_this.visibleChoices.length > _this.value.length)
50846
51163
  _this.addToValueByVisibleChoices();
50847
51164
  if (_this.visibleChoices.length < _this.value.length)
@@ -50864,37 +51181,30 @@ var QuestionRankingModel = /** @class */ (function (_super) {
50864
51181
  if (!_this.isDesignMode) {
50865
51182
  var key = event.key;
50866
51183
  var index = _this.rankingChoices.indexOf(choice);
51184
+ if (_this.selectToRankEnabled) {
51185
+ _this.handleKeydownSelectToRank(event, choice);
51186
+ return;
51187
+ }
50867
51188
  if (key === "ArrowUp" && index) {
50868
- _this.handleArrowUp(index, choice);
51189
+ _this.handleArrowKeys(index, choice, false);
50869
51190
  event.preventDefault();
50870
51191
  }
50871
51192
  if (key === "ArrowDown" && index !== _this.rankingChoices.length - 1) {
50872
- _this.handleArrowDown(index, choice);
51193
+ _this.handleArrowKeys(index, choice, true);
50873
51194
  event.preventDefault();
50874
51195
  }
50875
51196
  }
50876
51197
  };
50877
- _this.handleArrowUp = function (index, choice) {
50878
- var choices = _this.rankingChoices;
50879
- choices.splice(index, 1);
50880
- choices.splice(index - 1, 0, choice);
50881
- _this.setValue();
50882
- setTimeout(function () {
50883
- _this.focusItem(index - 1);
50884
- }, 1);
50885
- };
50886
- _this.handleArrowDown = function (index, choice) {
50887
- var choices = _this.rankingChoices;
50888
- choices.splice(index, 1);
50889
- choices.splice(index + 1, 0, choice);
50890
- _this.setValue();
50891
- setTimeout(function () {
50892
- _this.focusItem(index + 1);
50893
- }, 1);
50894
- };
50895
- _this.focusItem = function (index) {
50896
- var itemsNodes = _this.domNode.querySelectorAll("." + _this.cssClasses.item);
50897
- itemsNodes[index].focus();
51198
+ _this.focusItem = function (index, container) {
51199
+ if (_this.selectToRankEnabled && container) {
51200
+ var containerSelector = "[data-ranking='" + container + "']";
51201
+ var itemsNodes = _this.domNode.querySelectorAll(containerSelector + " " + "." + _this.cssClasses.item);
51202
+ itemsNodes[index].focus();
51203
+ }
51204
+ else {
51205
+ var itemsNodes = _this.domNode.querySelectorAll("." + _this.cssClasses.item);
51206
+ itemsNodes[index].focus();
51207
+ }
50898
51208
  };
50899
51209
  _this.setValue = function () {
50900
51210
  var value = [];
@@ -50904,6 +51214,11 @@ var QuestionRankingModel = /** @class */ (function (_super) {
50904
51214
  _this.value = value;
50905
51215
  };
50906
51216
  _this.createNewArray("rankingChoices");
51217
+ _this.registerFunctionOnPropertyValueChanged("selectToRankEnabled", function () {
51218
+ _this.clearValue();
51219
+ _this.setDragDropRankingChoices();
51220
+ _this.updateRankingChoices();
51221
+ });
50907
51222
  return _this;
50908
51223
  }
50909
51224
  QuestionRankingModel.prototype.getDefaultItemComponent = function () {
@@ -50917,13 +51232,16 @@ var QuestionRankingModel = /** @class */ (function (_super) {
50917
51232
  };
50918
51233
  Object.defineProperty(QuestionRankingModel.prototype, "rootClass", {
50919
51234
  get: function () {
50920
- return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
51235
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
50921
51236
  .append(this.cssClasses.root)
50922
- .append(this.cssClasses.rootMobileMod, _utils_devices__WEBPACK_IMPORTED_MODULE_6__["IsMobile"])
51237
+ .append(this.cssClasses.rootMobileMod, _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsMobile"])
50923
51238
  .append(this.cssClasses.rootDisabled, this.isReadOnly)
50924
51239
  .append(this.cssClasses.rootDesignMode, !!this.isDesignMode)
50925
51240
  .append(this.cssClasses.itemOnError, this.errors.length > 0)
50926
- .append(this.cssClasses.rootDragHandleAreaIcon, _src_settings__WEBPACK_IMPORTED_MODULE_8__["settings"].rankingDragHandleArea === "icon")
51241
+ .append(this.cssClasses.rootDragHandleAreaIcon, _src_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].rankingDragHandleArea === "icon")
51242
+ .append(this.cssClasses.rootSelectToRankMod, this.selectToRankEnabled)
51243
+ .append(this.cssClasses.rootSelectToRankAlignHorizontal, this.selectToRankEnabled && this.selectToRankAreasLayout === "horizontal")
51244
+ .append(this.cssClasses.rootSelectToRankAlignVertical, this.selectToRankEnabled && this.selectToRankAreasLayout === "vertical")
50927
51245
  .toString();
50928
51246
  },
50929
51247
  enumerable: false,
@@ -50932,13 +51250,30 @@ var QuestionRankingModel = /** @class */ (function (_super) {
50932
51250
  QuestionRankingModel.prototype.getItemClassCore = function (item, options) {
50933
51251
  var itemIndex = this.rankingChoices.indexOf(item);
50934
51252
  var dropTargetIndex = this.rankingChoices.indexOf(this.currentDropTarget);
50935
- return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
51253
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
50936
51254
  .append(_super.prototype.getItemClassCore.call(this, item, options))
50937
51255
  .append(this.cssClasses.itemGhostMod, this.currentDropTarget === item)
50938
51256
  .append("sv-dragdrop-movedown", itemIndex === dropTargetIndex + 1 && this.dropTargetNodeMove === "down")
50939
51257
  .append("sv-dragdrop-moveup", itemIndex === dropTargetIndex - 1 && this.dropTargetNodeMove === "up")
50940
51258
  .toString();
50941
51259
  };
51260
+ QuestionRankingModel.prototype.getContainerClasses = function (containerType) {
51261
+ var isEmpty = false;
51262
+ var isToContainer = containerType === "to";
51263
+ var isFromContainer = containerType === "from";
51264
+ if (isToContainer) {
51265
+ isEmpty = this.rankingChoices.length === 0;
51266
+ }
51267
+ else if (isFromContainer) {
51268
+ isEmpty = this.unRankingChoices.length === 0;
51269
+ }
51270
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
51271
+ .append(this.cssClasses.container)
51272
+ .append(this.cssClasses.containerToMode, isToContainer)
51273
+ .append(this.cssClasses.containerFromMode, isFromContainer)
51274
+ .append(this.cssClasses.containerEmptyMode, isEmpty)
51275
+ .toString();
51276
+ };
50942
51277
  QuestionRankingModel.prototype.isItemCurrentDropTarget = function (item) {
50943
51278
  return this.dragDropRankingChoices.dropTarget === item;
50944
51279
  };
@@ -50953,10 +51288,17 @@ var QuestionRankingModel = /** @class */ (function (_super) {
50953
51288
  enumerable: false,
50954
51289
  configurable: true
50955
51290
  });
50956
- QuestionRankingModel.prototype.getItemIndexClasses = function () {
50957
- return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
51291
+ QuestionRankingModel.prototype.getItemIndexClasses = function (item) {
51292
+ var noNumber;
51293
+ if (this.selectToRankEnabled) {
51294
+ noNumber = this.unRankingChoices.indexOf(item) !== -1;
51295
+ }
51296
+ else {
51297
+ noNumber = this.isEmpty();
51298
+ }
51299
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
50958
51300
  .append(this.cssClasses.itemIndex)
50959
- .append(this.cssClasses.itemIndexEmptyMode, this.isEmpty())
51301
+ .append(this.cssClasses.itemIndexEmptyMode, noNumber)
50960
51302
  .toString();
50961
51303
  };
50962
51304
  QuestionRankingModel.prototype.getNumberByIndex = function (index) {
@@ -50964,10 +51306,11 @@ var QuestionRankingModel = /** @class */ (function (_super) {
50964
51306
  };
50965
51307
  QuestionRankingModel.prototype.setSurveyImpl = function (value, isLight) {
50966
51308
  _super.prototype.setSurveyImpl.call(this, value, isLight);
51309
+ this.setDragDropRankingChoices();
50967
51310
  this.updateRankingChoices();
50968
51311
  };
50969
51312
  QuestionRankingModel.prototype.isAnswerCorrect = function () {
50970
- return _helpers__WEBPACK_IMPORTED_MODULE_7__["Helpers"].isArraysEqual(this.value, this.correctAnswer, false);
51313
+ return _helpers__WEBPACK_IMPORTED_MODULE_8__["Helpers"].isArraysEqual(this.value, this.correctAnswer, false);
50971
51314
  };
50972
51315
  QuestionRankingModel.prototype.onSurveyValueChanged = function (newValue) {
50973
51316
  _super.prototype.onSurveyValueChanged.call(this, newValue);
@@ -50988,7 +51331,7 @@ var QuestionRankingModel = /** @class */ (function (_super) {
50988
51331
  var newValue = this.value.slice();
50989
51332
  var choices = this.visibleChoices;
50990
51333
  for (var i = this.value.length - 1; i >= 0; i--) {
50991
- if (!_itemvalue__WEBPACK_IMPORTED_MODULE_1__["ItemValue"].getItemByValue(choices, this.value[i])) {
51334
+ if (!_itemvalue__WEBPACK_IMPORTED_MODULE_2__["ItemValue"].getItemByValue(choices, this.value[i])) {
50992
51335
  newValue.splice(i, 1);
50993
51336
  }
50994
51337
  }
@@ -51001,9 +51344,31 @@ var QuestionRankingModel = /** @class */ (function (_super) {
51001
51344
  enumerable: false,
51002
51345
  configurable: true
51003
51346
  });
51347
+ Object.defineProperty(QuestionRankingModel.prototype, "unRankingChoices", {
51348
+ get: function () {
51349
+ var unRankingChoices = [];
51350
+ var rankingChoices = this.rankingChoices;
51351
+ this.visibleChoices.forEach(function (choice) {
51352
+ unRankingChoices.push(choice);
51353
+ });
51354
+ rankingChoices.forEach(function (rankingChoice) {
51355
+ unRankingChoices.forEach(function (choice, index) {
51356
+ if (choice.value === rankingChoice.value)
51357
+ unRankingChoices.splice(index, 1);
51358
+ });
51359
+ });
51360
+ return unRankingChoices;
51361
+ },
51362
+ enumerable: false,
51363
+ configurable: true
51364
+ });
51004
51365
  QuestionRankingModel.prototype.updateRankingChoices = function (forceUpdate) {
51005
51366
  var _this = this;
51006
51367
  if (forceUpdate === void 0) { forceUpdate = false; }
51368
+ if (this.selectToRankEnabled) {
51369
+ this.updateRankingChoicesSelectToRankMode(forceUpdate);
51370
+ return;
51371
+ }
51007
51372
  var newRankingChoices = [];
51008
51373
  // ranking question with only one choice doesn't make sense
51009
51374
  if (this.visibleChoices.length === 1) {
@@ -51024,12 +51389,35 @@ var QuestionRankingModel = /** @class */ (function (_super) {
51024
51389
  });
51025
51390
  this.setPropertyValue("rankingChoices", newRankingChoices);
51026
51391
  };
51392
+ QuestionRankingModel.prototype.updateRankingChoicesSelectToRankMode = function (forceUpdate) {
51393
+ var _this = this;
51394
+ if (this.isEmpty()) {
51395
+ this.setPropertyValue("rankingChoices", []);
51396
+ return;
51397
+ }
51398
+ var newRankingChoices = [];
51399
+ this.value.forEach(function (valueItem) {
51400
+ _this.visibleChoices.forEach(function (choice) {
51401
+ if (choice.value === valueItem)
51402
+ newRankingChoices.push(choice);
51403
+ });
51404
+ });
51405
+ this.setPropertyValue("rankingChoices", newRankingChoices);
51406
+ };
51027
51407
  QuestionRankingModel.prototype.endLoadingFromJson = function () {
51028
51408
  _super.prototype.endLoadingFromJson.call(this);
51029
- this.dragDropRankingChoices = new _dragdrop_ranking_choices__WEBPACK_IMPORTED_MODULE_0__["DragDropRankingChoices"](this.survey, null, this.longTap);
51409
+ this.setDragDropRankingChoices();
51410
+ };
51411
+ QuestionRankingModel.prototype.setDragDropRankingChoices = function () {
51412
+ this.dragDropRankingChoices = this.createDragDropRankingChoices();
51413
+ };
51414
+ QuestionRankingModel.prototype.createDragDropRankingChoices = function () {
51415
+ if (this.selectToRankEnabled)
51416
+ return new _dragdrop_ranking_select_to_rank__WEBPACK_IMPORTED_MODULE_1__["DragDropRankingSelectToRank"](this.survey, null, this.longTap);
51417
+ return new _dragdrop_ranking_choices__WEBPACK_IMPORTED_MODULE_0__["DragDropRankingChoices"](this.survey, null, this.longTap);
51030
51418
  };
51031
51419
  QuestionRankingModel.prototype.isDragStartNodeValid = function (target) {
51032
- if (_src_settings__WEBPACK_IMPORTED_MODULE_8__["settings"].rankingDragHandleArea === "icon") {
51420
+ if (_src_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].rankingDragHandleArea === "icon") {
51033
51421
  return target.classList.contains(this.cssClasses.itemIconHoverMod);
51034
51422
  }
51035
51423
  return true;
@@ -51059,14 +51447,70 @@ var QuestionRankingModel = /** @class */ (function (_super) {
51059
51447
  QuestionRankingModel.prototype.supportNone = function () {
51060
51448
  return false;
51061
51449
  };
51450
+ QuestionRankingModel.prototype.handleArrowKeys = function (index, choice, isDown) {
51451
+ var _this = this;
51452
+ var delta = isDown ? 1 : -1;
51453
+ var choices = this.rankingChoices;
51454
+ choices.splice(index, 1);
51455
+ choices.splice(index + delta, 0, choice);
51456
+ this.setValue();
51457
+ setTimeout(function () {
51458
+ _this.focusItem(index + delta);
51459
+ }, 1);
51460
+ };
51461
+ QuestionRankingModel.prototype.handleKeydownSelectToRank = function (event, movedElement) {
51462
+ if (this.isDesignMode)
51463
+ return;
51464
+ var key = event.key;
51465
+ if (key !== " " && key !== "ArrowUp" && key !== "ArrowDown")
51466
+ return;
51467
+ var dnd = this.dragDropRankingChoices; //????
51468
+ var rankingChoices = this.rankingChoices;
51469
+ var isMovedElementRanked = rankingChoices.indexOf(movedElement) !== -1;
51470
+ var choices = isMovedElementRanked ? rankingChoices : this.unRankingChoices;
51471
+ var fromIndex = choices.indexOf(movedElement);
51472
+ if (fromIndex < 0)
51473
+ return;
51474
+ var toIndex;
51475
+ if (key === " " && !isMovedElementRanked) {
51476
+ toIndex = 0;
51477
+ dnd.selectToRank(this, fromIndex, toIndex);
51478
+ this.setValueAfterKeydown(toIndex, "to-container");
51479
+ return;
51480
+ }
51481
+ if (isMovedElementRanked)
51482
+ return;
51483
+ if (key === " ") {
51484
+ dnd.unselectFromRank(this, fromIndex);
51485
+ toIndex = this.unRankingChoices.indexOf(movedElement); //'this.' leads to actual array after the 'unselectFromRank' method
51486
+ this.setValueAfterKeydown(toIndex, "from-container");
51487
+ return;
51488
+ }
51489
+ var delta = key === "ArrowUp" ? -1 : (key === "ArrowDown" ? 1 : 0);
51490
+ if (delta === 0)
51491
+ return;
51492
+ toIndex = fromIndex + delta;
51493
+ if (toIndex < 0 || toIndex >= rankingChoices.length)
51494
+ return;
51495
+ dnd.reorderRankedItem(this, fromIndex, toIndex);
51496
+ this.setValueAfterKeydown(toIndex, "to-container");
51497
+ };
51498
+ QuestionRankingModel.prototype.setValueAfterKeydown = function (index, container) {
51499
+ var _this = this;
51500
+ this.setValue();
51501
+ setTimeout(function () {
51502
+ _this.focusItem(index, container);
51503
+ }, 1);
51504
+ event.preventDefault();
51505
+ };
51062
51506
  QuestionRankingModel.prototype.getIconHoverCss = function () {
51063
- return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
51507
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
51064
51508
  .append(this.cssClasses.itemIcon)
51065
51509
  .append(this.cssClasses.itemIconHoverMod)
51066
51510
  .toString();
51067
51511
  };
51068
51512
  QuestionRankingModel.prototype.getIconFocusCss = function () {
51069
- return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
51513
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
51070
51514
  .append(this.cssClasses.itemIcon)
51071
51515
  .append(this.cssClasses.itemIconFocusMod)
51072
51516
  .toString();
@@ -51088,6 +51532,43 @@ var QuestionRankingModel = /** @class */ (function (_super) {
51088
51532
  enumerable: false,
51089
51533
  configurable: true
51090
51534
  });
51535
+ Object.defineProperty(QuestionRankingModel.prototype, "selectToRankEnabled", {
51536
+ /**
51537
+ * Specifies whether users can select choices they want to rank.
51538
+ *
51539
+ * When you enable this property, the Ranking question displays two areas for ranked and unranked choices. To order choices, users should first drag them from the unranked to the ranked area. Use this mode if you want to let users order only the choices they select.
51540
+ *
51541
+ * Default value: `false`
51542
+ * @see selectToRankAreasLayout
51543
+ */
51544
+ get: function () {
51545
+ return this.getPropertyValue("selectToRankEnabled", false);
51546
+ },
51547
+ set: function (val) {
51548
+ this.setPropertyValue("selectToRankEnabled", val);
51549
+ },
51550
+ enumerable: false,
51551
+ configurable: true
51552
+ });
51553
+ Object.defineProperty(QuestionRankingModel.prototype, "selectToRankAreasLayout", {
51554
+ /**
51555
+ * Specifies the layout of the ranked and unranked areas. Applies when [`selectToRankEnabled`](https://surveyjs.io/form-library/documentation/api-reference/ranking-question-model#selectToRankEnabled) is `true`.
51556
+ *
51557
+ * Possible values:
51558
+ *
51559
+ * - `"horizontal"` (default) - The ranked and unranked areas are positioned next to each other. Users drag and drop choices between them in the horizontal direction.
51560
+ * - `"vertical"`- The ranked area is positioned above the unranked area. Users drag and drop choices between them in the vertical direction.
51561
+ * @see selectToRankAreasLayout
51562
+ */
51563
+ get: function () {
51564
+ return this.getPropertyValue("selectToRankAreasLayout", "horizontal");
51565
+ },
51566
+ set: function (val) {
51567
+ this.setPropertyValue("selectToRankAreasLayout", val);
51568
+ },
51569
+ enumerable: false,
51570
+ configurable: true
51571
+ });
51091
51572
  Object.defineProperty(QuestionRankingModel.prototype, "useFullItemSizeForShortcut", {
51092
51573
  get: function () {
51093
51574
  return this.getPropertyValue("useFullItemSizeForShortcut");
@@ -51099,15 +51580,21 @@ var QuestionRankingModel = /** @class */ (function (_super) {
51099
51580
  configurable: true
51100
51581
  });
51101
51582
  __decorate([
51102
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])({ defaultValue: null })
51583
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_3__["property"])({ defaultValue: null })
51103
51584
  ], QuestionRankingModel.prototype, "currentDropTarget", void 0);
51104
51585
  __decorate([
51105
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])({ defaultValue: null })
51586
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_3__["property"])({ defaultValue: null })
51106
51587
  ], QuestionRankingModel.prototype, "dropTargetNodeMove", void 0);
51588
+ __decorate([
51589
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_3__["property"])({ localizable: { defaultStr: "selectToRankFromContainerPlaceholder" } })
51590
+ ], QuestionRankingModel.prototype, "selectToRankFromContainerPlaceholder", void 0);
51591
+ __decorate([
51592
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_3__["property"])({ localizable: { defaultStr: "selectToRankToContainerPlaceholder" } })
51593
+ ], QuestionRankingModel.prototype, "selectToRankToContainerPlaceholder", void 0);
51107
51594
  return QuestionRankingModel;
51108
- }(_question_checkbox__WEBPACK_IMPORTED_MODULE_4__["QuestionCheckboxModel"]));
51595
+ }(_question_checkbox__WEBPACK_IMPORTED_MODULE_5__["QuestionCheckboxModel"]));
51109
51596
 
51110
- _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("ranking", [
51597
+ _jsonobject__WEBPACK_IMPORTED_MODULE_3__["Serializer"].addClass("ranking", [
51111
51598
  { name: "showOtherItem", visible: false, isSerializable: false },
51112
51599
  { name: "otherText", visible: false, isSerializable: false },
51113
51600
  { name: "otherErrorText", visible: false, isSerializable: false },
@@ -51125,13 +51612,25 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("ranking", [
51125
51612
  visible: false,
51126
51613
  isSerializable: false,
51127
51614
  },
51615
+ {
51616
+ name: "selectToRankEnabled",
51617
+ default: false,
51618
+ visible: false,
51619
+ isSerializable: true,
51620
+ },
51621
+ {
51622
+ name: "selectToRankAreasLayout",
51623
+ default: "horizontal",
51624
+ visible: false,
51625
+ isSerializable: true,
51626
+ },
51128
51627
  { name: "itemComponent", visible: false, default: "" }
51129
51628
  ], function () {
51130
51629
  return new QuestionRankingModel("");
51131
51630
  }, "checkbox");
51132
- _questionfactory__WEBPACK_IMPORTED_MODULE_3__["QuestionFactory"].Instance.registerQuestion("ranking", function (name) {
51631
+ _questionfactory__WEBPACK_IMPORTED_MODULE_4__["QuestionFactory"].Instance.registerQuestion("ranking", function (name) {
51133
51632
  var q = new QuestionRankingModel(name);
51134
- q.choices = _questionfactory__WEBPACK_IMPORTED_MODULE_3__["QuestionFactory"].DefaultChoices;
51633
+ q.choices = _questionfactory__WEBPACK_IMPORTED_MODULE_4__["QuestionFactory"].DefaultChoices;
51135
51634
  return q;
51136
51635
  });
51137
51636
 
@@ -51556,7 +52055,7 @@ var QuestionRatingModel = /** @class */ (function (_super) {
51556
52055
  return this.inputId + "_" + index;
51557
52056
  };
51558
52057
  QuestionRatingModel.prototype.supportGoNextPageAutomatic = function () {
51559
- return true;
52058
+ return this.isMouseDown === true;
51560
52059
  };
51561
52060
  QuestionRatingModel.prototype.supportOther = function () {
51562
52061
  return false;
@@ -52283,11 +52782,11 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
52283
52782
  signaturePad.addEventListener("beginStroke", function () {
52284
52783
  _this.isDrawingValue = true;
52285
52784
  canvas.focus();
52286
- }, { once: true });
52785
+ }, { once: false });
52287
52786
  signaturePad.addEventListener("endStroke", function () {
52288
52787
  _this.isDrawingValue = false;
52289
52788
  _this.updateValue();
52290
- }, { once: true });
52789
+ }, { once: false });
52291
52790
  var updateValueHandler = function () {
52292
52791
  var data = _this.value;
52293
52792
  canvas.width = _this.signatureWidth || defaultWidth;
@@ -53257,7 +53756,8 @@ var QuestionTextModel = /** @class */ (function (_super) {
53257
53756
  configurable: true
53258
53757
  });
53259
53758
  QuestionTextModel.prototype.supportGoNextPageAutomatic = function () {
53260
- return ["date", "datetime-local"].indexOf(this.inputType) < 0;
53759
+ return !this.isSurveyInputTextUpdate &&
53760
+ ["date", "datetime-local"].indexOf(this.inputType) < 0;
53261
53761
  };
53262
53762
  QuestionTextModel.prototype.supportGoNextPageError = function () {
53263
53763
  return ["date", "datetime-local"].indexOf(this.inputType) < 0;
@@ -53310,7 +53810,7 @@ var QuestionTextModel = /** @class */ (function (_super) {
53310
53810
  return !this.isReadOnly && this.inputType !== "range";
53311
53811
  };
53312
53812
  QuestionTextModel.prototype.isReadOnlyRenderDiv = function () {
53313
- return this.isReadOnly && _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].readOnlyTextRenderMode === "div";
53813
+ return this.isReadOnly && _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].readOnly.textRenderMode === "div";
53314
53814
  };
53315
53815
  Object.defineProperty(QuestionTextModel.prototype, "inputStyle", {
53316
53816
  get: function () {
@@ -54383,11 +54883,11 @@ var SurveyActionBarItemDropdown = /** @class */ (function (_super) {
54383
54883
  _this.viewModel = new survey_core__WEBPACK_IMPORTED_MODULE_1__["ActionDropdownViewModel"](_this.item);
54384
54884
  return _this;
54385
54885
  }
54386
- SurveyActionBarItemDropdown.prototype.renderButtonContent = function () {
54387
- var buttonContent = _super.prototype.renderButtonContent.call(this);
54886
+ SurveyActionBarItemDropdown.prototype.renderInnerButton = function () {
54887
+ var button = _super.prototype.renderInnerButton.call(this);
54388
54888
  return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
54389
- buttonContent,
54390
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_popup_popup__WEBPACK_IMPORTED_MODULE_3__["Popup"], { model: this.item.popupModel })));
54889
+ button,
54890
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_popup_popup__WEBPACK_IMPORTED_MODULE_3__["Popup"], { model: this.item.popupModel, getTarget: survey_core__WEBPACK_IMPORTED_MODULE_1__["getActionDropdownButtonTarget"] })));
54391
54891
  };
54392
54892
  SurveyActionBarItemDropdown.prototype.componentWillUnmount = function () {
54393
54893
  _super.prototype.componentWillUnmount.call(this);
@@ -55035,7 +55535,7 @@ var List = /** @class */ (function (_super) {
55035
55535
  return null;
55036
55536
  var items = this.renderItems();
55037
55537
  var ulStyle = { display: this.model.isEmpty ? "none" : null };
55038
- return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("ul", { className: this.model.cssClasses.itemsContainer, style: ulStyle, role: "listbox", id: this.model.elementId, onMouseDown: function (e) {
55538
+ return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("ul", { className: this.model.getListClass(), style: ulStyle, role: "listbox", id: this.model.elementId, onMouseDown: function (e) {
55039
55539
  e.preventDefault();
55040
55540
  }, onKeyDown: this.handleKeydown, onMouseMove: this.handleMouseMove }, items));
55041
55541
  };
@@ -55814,30 +56314,19 @@ var Popup = /** @class */ (function (_super) {
55814
56314
  };
55815
56315
  Popup.prototype.createModel = function () {
55816
56316
  this.popup = Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["createPopupViewModel"])(this.props.model, undefined);
55817
- this.popup.initializePopupContainer();
55818
56317
  };
55819
56318
  Popup.prototype.setTargetElement = function () {
55820
- if (!!this.containerRef.current && !this.popup.isModal) {
55821
- var popupDropdownModel = this.popup;
55822
- if (!popupDropdownModel)
55823
- return;
55824
- if (!!this.containerRef.current.parentElement) {
55825
- popupDropdownModel.targetElement = this.containerRef.current.parentElement;
55826
- }
55827
- }
56319
+ var container = this.containerRef.current;
56320
+ this.popup.setComponentElement(container, this.props.getTarget ? this.props.getTarget(container) : undefined);
55828
56321
  };
55829
56322
  Popup.prototype.componentDidMount = function () {
55830
56323
  _super.prototype.componentDidMount.call(this);
55831
- this.popup.initializePopupContainer();
55832
56324
  this.setTargetElement();
55833
56325
  };
55834
56326
  Popup.prototype.componentDidUpdate = function (prevProps, prevState) {
55835
56327
  _super.prototype.componentDidUpdate.call(this, prevProps, prevState);
55836
56328
  this.setTargetElement();
55837
56329
  };
55838
- Popup.prototype.componentWillUnmount = function () {
55839
- this.popup.unmountPopupContainer();
55840
- };
55841
56330
  Popup.prototype.shouldComponentUpdate = function (nextProps, nextState) {
55842
56331
  var _a;
55843
56332
  if (!_super.prototype.shouldComponentUpdate.call(this, nextProps, nextState))
@@ -55853,10 +56342,10 @@ var Popup = /** @class */ (function (_super) {
55853
56342
  this.popup.model = this.model;
55854
56343
  var popupContainer;
55855
56344
  if (this.model.isModal) {
55856
- popupContainer = react_dom__WEBPACK_IMPORTED_MODULE_0___default.a.createPortal(react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(PopupContainer, { model: this.popup }), this.popup.container);
56345
+ popupContainer = react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(PopupContainer, { model: this.popup });
55857
56346
  }
55858
56347
  else {
55859
- popupContainer = react_dom__WEBPACK_IMPORTED_MODULE_0___default.a.createPortal(react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(PopupDropdownContainer, { model: this.popup }), this.popup.container);
56348
+ popupContainer = react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(PopupDropdownContainer, { model: this.popup });
55860
56349
  }
55861
56350
  return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { ref: this.containerRef }, popupContainer);
55862
56351
  };
@@ -55941,8 +56430,7 @@ var PopupContainer = /** @class */ (function (_super) {
55941
56430
  .toString();
55942
56431
  var style = { display: this.model.isVisible ? "" : "none", };
55943
56432
  return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { tabIndex: -1, className: className, style: style, onClick: function (e) {
55944
- _this.model.clickOutside();
55945
- e.stopPropagation();
56433
+ _this.model.clickOutside(e);
55946
56434
  }, onKeyDown: this.handleKeydown }, container));
55947
56435
  };
55948
56436
  return PopupContainer;
@@ -55971,14 +56459,12 @@ function showModal(componentName, data, onApply, onCancel, cssClass, title, disp
55971
56459
  var options = Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["createDialogOptions"])(componentName, data, onApply, onCancel, undefined, undefined, cssClass, title, displayMode);
55972
56460
  return showDialog(options);
55973
56461
  }
55974
- function showDialog(dialogOptions) {
56462
+ function showDialog(dialogOptions, container) {
55975
56463
  dialogOptions.onHide = function () {
55976
- {
55977
- react_dom__WEBPACK_IMPORTED_MODULE_0___default.a.unmountComponentAtNode(popupViewModel.container);
55978
- popupViewModel.unmountPopupContainer();
55979
- }
56464
+ react_dom__WEBPACK_IMPORTED_MODULE_0___default.a.unmountComponentAtNode(popupViewModel.container);
56465
+ popupViewModel.dispose();
55980
56466
  };
55981
- var popupViewModel = Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["createPopupModalViewModel"])(dialogOptions);
56467
+ var popupViewModel = Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["createPopupModalViewModel"])(dialogOptions, container);
55982
56468
  react_dom__WEBPACK_IMPORTED_MODULE_0___default.a.render(react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(PopupContainer, { model: popupViewModel }), popupViewModel.container);
55983
56469
  popupViewModel.model.isVisible = true;
55984
56470
  return popupViewModel;
@@ -56001,8 +56487,8 @@ __webpack_require__.r(__webpack_exports__);
56001
56487
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
56002
56488
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
56003
56489
  /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../element-factory */ "./src/react/element-factory.tsx");
56004
- /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../reactquestion_element */ "./src/react/reactquestion_element.tsx");
56005
- /* harmony import */ var _svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../svg-icon/svg-icon */ "./src/react/components/svg-icon/svg-icon.tsx");
56490
+ /* harmony import */ var _svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../svg-icon/svg-icon */ "./src/react/components/svg-icon/svg-icon.tsx");
56491
+ /* harmony import */ var _rating_item__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rating-item */ "./src/react/components/rating/rating-item.tsx");
56006
56492
  var __extends = (undefined && undefined.__extends) || (function () {
56007
56493
  var extendStatics = function (d, b) {
56008
56494
  extendStatics = Object.setPrototypeOf ||
@@ -56027,38 +56513,14 @@ var RatingItemSmiley = /** @class */ (function (_super) {
56027
56513
  function RatingItemSmiley() {
56028
56514
  return _super !== null && _super.apply(this, arguments) || this;
56029
56515
  }
56030
- Object.defineProperty(RatingItemSmiley.prototype, "question", {
56031
- get: function () {
56032
- return this.props.question;
56033
- },
56034
- enumerable: false,
56035
- configurable: true
56036
- });
56037
- Object.defineProperty(RatingItemSmiley.prototype, "item", {
56038
- get: function () {
56039
- return this.props.item;
56040
- },
56041
- enumerable: false,
56042
- configurable: true
56043
- });
56044
- Object.defineProperty(RatingItemSmiley.prototype, "index", {
56045
- get: function () {
56046
- return this.props.index;
56047
- },
56048
- enumerable: false,
56049
- configurable: true
56050
- });
56051
- RatingItemSmiley.prototype.getStateElement = function () {
56052
- return this.item;
56053
- };
56054
56516
  RatingItemSmiley.prototype.render = function () {
56055
56517
  var _this = this;
56056
- return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("label", { style: this.question.getItemStyle(this.item.itemValue, this.item.highlight), className: this.question.getItemClass(this.item.itemValue), onMouseOver: function (e) { return _this.question.onItemMouseIn(_this.item); }, onMouseOut: function (e) { return _this.question.onItemMouseOut(_this.item); } },
56518
+ return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("label", { onMouseDown: this.handleOnMouseDown, style: this.question.getItemStyle(this.item.itemValue, this.item.highlight), className: this.question.getItemClass(this.item.itemValue), onMouseOver: function (e) { return _this.question.onItemMouseIn(_this.item); }, onMouseOut: function (e) { return _this.question.onItemMouseOut(_this.item); } },
56057
56519
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "radio", className: "sv-visuallyhidden", name: this.question.name, id: this.question.getInputId(this.index), value: this.item.value, disabled: this.isDisplayMode, checked: this.question.value == this.item.value, onClick: this.props.handleOnClick, onChange: function () { }, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-describedby": this.question.ariaDescribedBy }),
56058
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { size: "auto", iconName: this.question.getItemSmileyIconName(this.item.itemValue), title: this.item.text })));
56520
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_2__["SvgIcon"], { size: "auto", iconName: this.question.getItemSmileyIconName(this.item.itemValue), title: this.item.text })));
56059
56521
  };
56060
56522
  return RatingItemSmiley;
56061
- }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_2__["SurveyElementBase"]));
56523
+ }(_rating_item__WEBPACK_IMPORTED_MODULE_3__["RatingItemBase"]));
56062
56524
 
56063
56525
  _element_factory__WEBPACK_IMPORTED_MODULE_1__["ReactElementFactory"].Instance.registerElement("sv-rating-item-smiley", function (props) {
56064
56526
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(RatingItemSmiley, props);
@@ -56080,8 +56542,8 @@ __webpack_require__.r(__webpack_exports__);
56080
56542
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
56081
56543
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
56082
56544
  /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../element-factory */ "./src/react/element-factory.tsx");
56083
- /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../reactquestion_element */ "./src/react/reactquestion_element.tsx");
56084
- /* harmony import */ var _svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../svg-icon/svg-icon */ "./src/react/components/svg-icon/svg-icon.tsx");
56545
+ /* harmony import */ var _svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../svg-icon/svg-icon */ "./src/react/components/svg-icon/svg-icon.tsx");
56546
+ /* harmony import */ var _rating_item__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rating-item */ "./src/react/components/rating/rating-item.tsx");
56085
56547
  var __extends = (undefined && undefined.__extends) || (function () {
56086
56548
  var extendStatics = function (d, b) {
56087
56549
  extendStatics = Object.setPrototypeOf ||
@@ -56106,39 +56568,15 @@ var RatingItemStar = /** @class */ (function (_super) {
56106
56568
  function RatingItemStar() {
56107
56569
  return _super !== null && _super.apply(this, arguments) || this;
56108
56570
  }
56109
- Object.defineProperty(RatingItemStar.prototype, "question", {
56110
- get: function () {
56111
- return this.props.question;
56112
- },
56113
- enumerable: false,
56114
- configurable: true
56115
- });
56116
- Object.defineProperty(RatingItemStar.prototype, "item", {
56117
- get: function () {
56118
- return this.props.item;
56119
- },
56120
- enumerable: false,
56121
- configurable: true
56122
- });
56123
- Object.defineProperty(RatingItemStar.prototype, "index", {
56124
- get: function () {
56125
- return this.props.index;
56126
- },
56127
- enumerable: false,
56128
- configurable: true
56129
- });
56130
- RatingItemStar.prototype.getStateElement = function () {
56131
- return this.item;
56132
- };
56133
56571
  RatingItemStar.prototype.render = function () {
56134
56572
  var _this = this;
56135
- return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("label", { className: this.question.getItemClass(this.item.itemValue), onMouseOver: function (e) { return _this.question.onItemMouseIn(_this.item); }, onMouseOut: function (e) { return _this.question.onItemMouseOut(_this.item); } },
56573
+ return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("label", { onMouseDown: this.handleOnMouseDown, className: this.question.getItemClass(this.item.itemValue), onMouseOver: function (e) { return _this.question.onItemMouseIn(_this.item); }, onMouseOut: function (e) { return _this.question.onItemMouseOut(_this.item); } },
56136
56574
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "radio", className: "sv-visuallyhidden", name: this.question.name, id: this.question.getInputId(this.index), value: this.item.value, disabled: this.isDisplayMode, checked: this.question.value == this.item.value, onClick: this.props.handleOnClick, onChange: function () { }, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-describedby": this.question.ariaDescribedBy }),
56137
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { className: "sv-star", size: "auto", iconName: this.question.itemStarIcon, title: this.item.text }),
56138
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { className: "sv-star-2", size: "auto", iconName: this.question.itemStarIconAlt, title: this.item.text })));
56575
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_2__["SvgIcon"], { className: "sv-star", size: "auto", iconName: this.question.itemStarIcon, title: this.item.text }),
56576
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_2__["SvgIcon"], { className: "sv-star-2", size: "auto", iconName: this.question.itemStarIconAlt, title: this.item.text })));
56139
56577
  };
56140
56578
  return RatingItemStar;
56141
- }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_2__["SurveyElementBase"]));
56579
+ }(_rating_item__WEBPACK_IMPORTED_MODULE_3__["RatingItemBase"]));
56142
56580
 
56143
56581
  _element_factory__WEBPACK_IMPORTED_MODULE_1__["ReactElementFactory"].Instance.registerElement("sv-rating-item-star", function (props) {
56144
56582
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(RatingItemStar, props);
@@ -56151,11 +56589,12 @@ _element_factory__WEBPACK_IMPORTED_MODULE_1__["ReactElementFactory"].Instance.re
56151
56589
  /*!*****************************************************!*\
56152
56590
  !*** ./src/react/components/rating/rating-item.tsx ***!
56153
56591
  \*****************************************************/
56154
- /*! exports provided: RatingItem */
56592
+ /*! exports provided: RatingItemBase, RatingItem */
56155
56593
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
56156
56594
 
56157
56595
  "use strict";
56158
56596
  __webpack_require__.r(__webpack_exports__);
56597
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RatingItemBase", function() { return RatingItemBase; });
56159
56598
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RatingItem", function() { return RatingItem; });
56160
56599
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
56161
56600
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
@@ -56179,38 +56618,51 @@ var __extends = (undefined && undefined.__extends) || (function () {
56179
56618
 
56180
56619
 
56181
56620
 
56182
- var RatingItem = /** @class */ (function (_super) {
56183
- __extends(RatingItem, _super);
56184
- function RatingItem() {
56185
- return _super !== null && _super.apply(this, arguments) || this;
56621
+ var RatingItemBase = /** @class */ (function (_super) {
56622
+ __extends(RatingItemBase, _super);
56623
+ function RatingItemBase(props) {
56624
+ var _this = _super.call(this, props) || this;
56625
+ _this.handleOnMouseDown = _this.handleOnMouseDown.bind(_this);
56626
+ return _this;
56186
56627
  }
56187
- Object.defineProperty(RatingItem.prototype, "question", {
56628
+ Object.defineProperty(RatingItemBase.prototype, "question", {
56188
56629
  get: function () {
56189
56630
  return this.props.question;
56190
56631
  },
56191
56632
  enumerable: false,
56192
56633
  configurable: true
56193
56634
  });
56194
- Object.defineProperty(RatingItem.prototype, "item", {
56635
+ Object.defineProperty(RatingItemBase.prototype, "item", {
56195
56636
  get: function () {
56196
56637
  return this.props.item;
56197
56638
  },
56198
56639
  enumerable: false,
56199
56640
  configurable: true
56200
56641
  });
56201
- Object.defineProperty(RatingItem.prototype, "index", {
56642
+ Object.defineProperty(RatingItemBase.prototype, "index", {
56202
56643
  get: function () {
56203
56644
  return this.props.index;
56204
56645
  },
56205
56646
  enumerable: false,
56206
56647
  configurable: true
56207
56648
  });
56208
- RatingItem.prototype.getStateElement = function () {
56649
+ RatingItemBase.prototype.getStateElement = function () {
56209
56650
  return this.item;
56210
56651
  };
56652
+ RatingItemBase.prototype.handleOnMouseDown = function (event) {
56653
+ this.question.onMouseDown();
56654
+ };
56655
+ return RatingItemBase;
56656
+ }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_2__["SurveyElementBase"]));
56657
+
56658
+ var RatingItem = /** @class */ (function (_super) {
56659
+ __extends(RatingItem, _super);
56660
+ function RatingItem() {
56661
+ return _super !== null && _super.apply(this, arguments) || this;
56662
+ }
56211
56663
  RatingItem.prototype.render = function () {
56212
56664
  var itemText = this.renderLocString(this.item.locText);
56213
- return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("label", { className: this.question.getItemClassByText(this.item.itemValue, this.item.text) },
56665
+ return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("label", { onMouseDown: this.handleOnMouseDown, className: this.question.getItemClassByText(this.item.itemValue, this.item.text) },
56214
56666
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "radio", className: "sv-visuallyhidden", name: this.question.name, id: this.question.getInputId(this.index), value: this.item.value, disabled: this.isDisplayMode, checked: this.question.value == this.item.value, onClick: this.props.handleOnClick, onChange: function () { }, "aria-required": this.question.ariaRequired, "aria-label": this.question.ariaLabel, "aria-invalid": this.question.ariaInvalid, "aria-describedby": this.question.ariaDescribedBy }),
56215
56667
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { className: this.question.cssClasses.itemText }, itemText)));
56216
56668
  };
@@ -56218,7 +56670,7 @@ var RatingItem = /** @class */ (function (_super) {
56218
56670
  _super.prototype.componentDidMount.call(this);
56219
56671
  };
56220
56672
  return RatingItem;
56221
- }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_2__["SurveyElementBase"]));
56673
+ }(RatingItemBase));
56222
56674
 
56223
56675
  _element_factory__WEBPACK_IMPORTED_MODULE_1__["ReactElementFactory"].Instance.registerElement("sv-rating-item", function (props) {
56224
56676
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(RatingItem, props);
@@ -60885,6 +61337,7 @@ var SurveyQuestionMatrixRow = /** @class */ (function (_super) {
60885
61337
  function SurveyQuestionMatrixRow(props) {
60886
61338
  var _this = _super.call(this, props) || this;
60887
61339
  _this.handleOnChange = _this.handleOnChange.bind(_this);
61340
+ _this.handleOnMouseDown = _this.handleOnMouseDown.bind(_this);
60888
61341
  return _this;
60889
61342
  }
60890
61343
  Object.defineProperty(SurveyQuestionMatrixRow.prototype, "question", {
@@ -60905,6 +61358,9 @@ var SurveyQuestionMatrixRow = /** @class */ (function (_super) {
60905
61358
  this.row.value = event.target.value;
60906
61359
  this.setState({ value: this.row.value });
60907
61360
  };
61361
+ SurveyQuestionMatrixRow.prototype.handleOnMouseDown = function (event) {
61362
+ this.question.onMouseDown();
61363
+ };
60908
61364
  SurveyQuestionMatrixRow.prototype.wrapCell = function (cell, element, reason) {
60909
61365
  if (!reason) {
60910
61366
  return element;
@@ -60955,7 +61411,7 @@ var SurveyQuestionMatrixRow = /** @class */ (function (_super) {
60955
61411
  }
60956
61412
  else {
60957
61413
  td = (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("td", { key: key, "data-responsive-title": column.locText.renderedHtml, className: this.question.cssClasses.cell },
60958
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { className: itemClass },
61414
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { onMouseDown: this.handleOnMouseDown, className: itemClass },
60959
61415
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { id: inputId, type: "radio", className: this.cssClasses.itemValue, name: row.fullName, value: column.value, disabled: this.isDisplayMode, checked: isChecked, onChange: this.handleOnChange, "aria-required": this.question.ariaRequired, "aria-label": column.locText.renderedHtml, "aria-invalid": this.question.ariaInvalid, "aria-describedby": this.question.ariaDescribedBy }),
60960
61416
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.question.cssClasses.materialDecorator }, this.question.itemSvgIcon ?
60961
61417
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("svg", { className: this.cssClasses.itemDecorator },
@@ -62044,6 +62500,7 @@ var SurveyQuestionRadioItem = /** @class */ (function (_super) {
62044
62500
  function SurveyQuestionRadioItem(props) {
62045
62501
  var _this = _super.call(this, props) || this;
62046
62502
  _this.handleOnChange = _this.handleOnChange.bind(_this);
62503
+ _this.handleOnMouseDown = _this.handleOnMouseDown.bind(_this);
62047
62504
  return _this;
62048
62505
  }
62049
62506
  SurveyQuestionRadioItem.prototype.getStateElement = function () {
@@ -62104,6 +62561,9 @@ var SurveyQuestionRadioItem = /** @class */ (function (_super) {
62104
62561
  SurveyQuestionRadioItem.prototype.handleOnChange = function (event) {
62105
62562
  this.question.clickItemHandler(this.item);
62106
62563
  };
62564
+ SurveyQuestionRadioItem.prototype.handleOnMouseDown = function (event) {
62565
+ this.question.onMouseDown();
62566
+ };
62107
62567
  SurveyQuestionRadioItem.prototype.canRender = function () {
62108
62568
  return !!this.question && !!this.item;
62109
62569
  };
@@ -62113,7 +62573,7 @@ var SurveyQuestionRadioItem = /** @class */ (function (_super) {
62113
62573
  var controlLabelClass = this.question.getControlLabelClass(this.item);
62114
62574
  var itemLabel = !this.hideCaption ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: controlLabelClass }, this.renderLocString(this.item.locText, this.textStyle)) : null;
62115
62575
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: itemClass, role: "presentation" },
62116
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { className: labelClass, "aria-label": this.question.getAriaItemLabel(this.item) },
62576
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { onMouseDown: this.handleOnMouseDown, className: labelClass, "aria-label": this.question.getAriaItemLabel(this.item) },
62117
62577
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { "aria-describedby": this.question.ariaDescribedBy, className: this.cssClasses.itemControl, id: this.question.getItemId(this.item), type: "radio", name: this.question.questionName, checked: this.isChecked, value: this.item.value, disabled: !this.question.getItemEnabled(this.item), onChange: this.handleOnChange }),
62118
62578
  this.cssClasses.materialDecorator ?
62119
62579
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.cssClasses.materialDecorator }, this.question.itemSvgIcon ?
@@ -62185,35 +62645,51 @@ var SurveyQuestionRanking = /** @class */ (function (_super) {
62185
62645
  });
62186
62646
  SurveyQuestionRanking.prototype.renderElement = function () {
62187
62647
  var _this = this;
62188
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.rootClass, ref: function (root) { return (_this.setControl(root)); } }, this.getItems()));
62189
- };
62190
- SurveyQuestionRanking.prototype.getItems = function () {
62648
+ if (!this.question.selectToRankEnabled) {
62649
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.rootClass, ref: function (root) { return (_this.setControl(root)); } }, this.getItems()));
62650
+ }
62651
+ else {
62652
+ var unrankedItem = true;
62653
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.rootClass, ref: function (root) { return (_this.setControl(root)); } },
62654
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.getContainerClasses("from"), "data-ranking": "from-container" },
62655
+ this.getItems(this.question.unRankingChoices, unrankedItem),
62656
+ this.question.unRankingChoices.length === 0 ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.containerPlaceholder },
62657
+ " ",
62658
+ this.question.selectToRankFromContainerPlaceholder,
62659
+ " ") : null),
62660
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.containersDivider }),
62661
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.getContainerClasses("to"), "data-ranking": "to-container" },
62662
+ this.getItems(),
62663
+ this.question.rankingChoices.length === 0 ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.containerPlaceholder }, this.question.selectToRankToContainerPlaceholder) : null)));
62664
+ }
62665
+ };
62666
+ SurveyQuestionRanking.prototype.getItems = function (choices, unrankedItem) {
62191
62667
  var _this = this;
62668
+ if (choices === void 0) { choices = this.question.rankingChoices; }
62192
62669
  var items = [];
62193
- var rankingChoices = this.question.rankingChoices;
62194
62670
  var _loop_1 = function (i) {
62195
- var item = rankingChoices[i];
62671
+ var item = choices[i];
62196
62672
  items.push(this_1.renderItem(item, i, function (event) {
62197
62673
  _this.question.handleKeydown.call(_this.question, event, item);
62198
62674
  }, function (event) {
62199
62675
  event.persist();
62200
62676
  //event.preventDefault();
62201
62677
  _this.question.handlePointerDown.call(_this.question, event, item, event.currentTarget);
62202
- }, this_1.question.cssClasses, this_1.question.getItemClass(item), this_1.question));
62678
+ }, this_1.question.cssClasses, this_1.question.getItemClass(item), this_1.question, unrankedItem));
62203
62679
  };
62204
62680
  var this_1 = this;
62205
- for (var i = 0; i < rankingChoices.length; i++) {
62681
+ for (var i = 0; i < choices.length; i++) {
62206
62682
  _loop_1(i);
62207
62683
  }
62208
62684
  return items;
62209
62685
  };
62210
- SurveyQuestionRanking.prototype.renderItem = function (item, i, handleKeydown, handlePointerDown, cssClasses, itemClass, question) {
62686
+ SurveyQuestionRanking.prototype.renderItem = function (item, i, handleKeydown, handlePointerDown, cssClasses, itemClass, question, unrankedItem) {
62211
62687
  var key = item.value + "-" + i + "-item";
62212
62688
  var text = this.renderLocString(item.locText);
62213
62689
  var index = i;
62214
62690
  var indexText = this.question.getNumberByIndex(i);
62215
62691
  var tabIndex = this.question.getItemTabIndex(item);
62216
- var renderedItem = (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyQuestionRankingItem, { key: key, text: text, index: index, indexText: indexText, itemTabIndex: tabIndex, handleKeydown: handleKeydown, handlePointerDown: handlePointerDown, cssClasses: cssClasses, itemClass: itemClass, question: question }));
62692
+ var renderedItem = (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyQuestionRankingItem, { key: key, text: text, index: index, indexText: indexText, itemTabIndex: tabIndex, handleKeydown: handleKeydown, handlePointerDown: handlePointerDown, cssClasses: cssClasses, itemClass: itemClass, question: question, unrankedItem: unrankedItem, item: item }));
62217
62693
  var survey = this.question.survey;
62218
62694
  var wrappedItem = null;
62219
62695
  if (!!survey) {
@@ -62292,6 +62768,20 @@ var SurveyQuestionRankingItem = /** @class */ (function (_super) {
62292
62768
  enumerable: false,
62293
62769
  configurable: true
62294
62770
  });
62771
+ Object.defineProperty(SurveyQuestionRankingItem.prototype, "unrankedItem", {
62772
+ get: function () {
62773
+ return this.props.unrankedItem;
62774
+ },
62775
+ enumerable: false,
62776
+ configurable: true
62777
+ });
62778
+ Object.defineProperty(SurveyQuestionRankingItem.prototype, "item", {
62779
+ get: function () {
62780
+ return this.props.item;
62781
+ },
62782
+ enumerable: false,
62783
+ configurable: true
62784
+ });
62295
62785
  SurveyQuestionRankingItem.prototype.renderElement = function () {
62296
62786
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { tabIndex: this.itemTabIndex, className: this.itemClass, onKeyDown: this.handleKeydown, onPointerDown: this.handlePointerDown, "data-sv-drop-target-ranking-item": this.index },
62297
62787
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { tabIndex: -1, style: { outline: "none" } },
@@ -62303,7 +62793,7 @@ var SurveyQuestionRankingItem = /** @class */ (function (_super) {
62303
62793
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("svg", { width: "10", height: "24", viewBox: "0 0 10 24", className: this.question.getIconFocusCss(), xmlns: "http://www.w3.org/2000/svg" },
62304
62794
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("path", { d: "M10 5L5 0L0 5H4V9H6V5H10Z" }),
62305
62795
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("path", { d: "M6 19V15H4V19H0L5 24L10 19H6Z" }))),
62306
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.getItemIndexClasses() }, this.indexText),
62796
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.getItemIndexClasses(this.item) }, this.unrankedItem ? "" : this.indexText),
62307
62797
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.cssClasses.controlLabel }, this.text)))));
62308
62798
  };
62309
62799
  return SurveyQuestionRankingItem;
@@ -63417,254 +63907,438 @@ var columnWidthsByType = {
63417
63907
  */
63418
63908
  var settings = {
63419
63909
  /**
63420
- * Specifies an action to perform when users press the Enter key within a survey.
63910
+ * An object that configures survey appearance when the survey is being designed in Survey Creator.
63421
63911
  *
63422
- * Possible values:
63912
+ * Nested properties:
63423
63913
  *
63424
- * - `"moveToNextEditor"` - Moves focus to the next editor.
63425
- * - `"loseFocus"` - Removes focus from the current editor.
63426
- * - `"default"` - Behaves as a standard `<input>` element.
63914
+ * - `showEmptyDescriptions`: `Boolean`\
63915
+ * Specifies whether to display an empty description for pages and panels. Default value: `true`.
63916
+ *
63917
+ * - `showEmptyTitles`: `Boolean`\
63918
+ * Specifies whether to display an empty title for pages and panels. Default value: `true`.
63427
63919
  */
63428
- enterKeyAction: "default",
63920
+ designMode: {
63921
+ showEmptyDescriptions: true,
63922
+ showEmptyTitles: true
63923
+ },
63924
+ //#region designMode section, Obsolete properties
63429
63925
  /**
63430
- * An object that configures string comparison.
63926
+ * This property is obsolete. Use the [`settings.designMode.showEmptyDescriptions`](https://surveyjs.io/form-library/documentation/api-reference/settings#designMode) property instead.
63927
+ */
63928
+ get allowShowEmptyDescriptionInDesignMode() { return this.designMode.showEmptyDescriptions; },
63929
+ set allowShowEmptyDescriptionInDesignMode(val) { this.designMode.showEmptyDescriptions = val; },
63930
+ /**
63931
+ * This property is obsolete. Use the [`settings.designMode.showEmptyTitles`](https://surveyjs.io/form-library/documentation/api-reference/settings#designMode) property instead.
63932
+ */
63933
+ get allowShowEmptyTitleInDesignMode() { return this.designMode.showEmptyTitles; },
63934
+ set allowShowEmptyTitleInDesignMode(val) { this.designMode.showEmptyTitles = val; },
63935
+ //#endregion
63936
+ /**
63937
+ * An object that contains properties related to localization.
63431
63938
  *
63432
63939
  * Nested properties:
63433
63940
  *
63434
- * - `trimStrings`: `Boolean`\
63435
- * Specifies whether to remove whitespace from both ends of a string before the comparison. Default value: `true`.
63941
+ * - `useLocalTimeZone`: `Boolean`\
63942
+ * Disable this property if you want internal SurveyJS functions to use methods that work with UTC date and time (`setUTCDate()` `setUTCHours()`, etc.) instead of methods that work with local date and time (`setYear`, `setHours()`, etc.). Default value: `true`.
63436
63943
  *
63437
- * - `caseSensitive`: `Boolean`\
63438
- * Specifies whether to differentiate between capital and lower-case letters. Default value: `false`.
63944
+ * - `defaultLocaleName`: `String`\
63945
+ * A property key that stores a translation for the default locale. Default value: `"default"`.
63946
+ *
63947
+ * - `storeDuplicatedTranslations`: `Boolean`\
63948
+ * Specifies whether surveys should store translation strings that equal the translation strings in the default locale. Default value: `false`.
63439
63949
  */
63440
- comparator: {
63441
- trimStrings: true,
63442
- caseSensitive: false
63950
+ localization: {
63951
+ useLocalTimeZone: true,
63952
+ storeDuplicatedTranslations: false,
63953
+ defaultLocaleName: "default"
63443
63954
  },
63444
- expressionDisableConversionChar: "#",
63955
+ //#region localization section, obsolete properties
63445
63956
  /**
63446
- * Disable this property if you want internal SurveyJS functions to use methods that work with UTC date and time (`setUTCDate()` `setUTCHours()`, etc.) instead of methods that work with local date and time (`setYear`, `setHours()`, etc.).
63447
- *
63448
- * Default value: `true`
63957
+ * This property is obsolete. Use the [`settings.localization.useLocalTimeZone`](https://surveyjs.io/form-library/documentation/api-reference/settings#localization) property instead.
63449
63958
  */
63450
- useLocalTimeZone: true,
63451
- get commentPrefix() { return settings.commentSuffix; },
63452
- set commentPrefix(val) { settings.commentSuffix = val; },
63959
+ get useLocalTimeZone() { return this.localization.useLocalTimeZone; },
63960
+ set useLocalTimeZone(val) { this.localization.useLocalTimeZone = val; },
63453
63961
  /**
63454
- * A suffix added to the name of the property that stores comments.
63455
- *
63456
- * Default value: "-Comment"
63457
- *
63458
- * You can specify this setting for an individual survey: [`commentSuffix`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#commentSuffix).
63962
+ * This property is obsolete. Use the [`settings.localization.storeDuplicatedTranslations`](https://surveyjs.io/form-library/documentation/api-reference/settings#localization) property instead.
63459
63963
  */
63460
- commentSuffix: "-Comment",
63964
+ get storeDuplicatedTranslations() { return this.localization.storeDuplicatedTranslations; },
63965
+ set storeDuplicatedTranslations(val) { this.localization.storeDuplicatedTranslations = val; },
63461
63966
  /**
63462
- * Specifies whether to encode URL parameters when you access a web service.
63463
- *
63464
- * Default value: `true`
63967
+ * This property is obsolete. Use the [`settings.localization.defaultLocaleName`](https://surveyjs.io/form-library/documentation/api-reference/settings#localization) property instead.
63465
63968
  */
63466
- webserviceEncodeParameters: true,
63969
+ get defaultLocaleName() { return this.localization.defaultLocaleName; },
63970
+ set defaultLocaleName(val) { this.localization.defaultLocaleName = val; },
63971
+ //#endregion
63467
63972
  /**
63468
- * Specifies whether to cache choices loaded from a web service.
63973
+ * An object with properties that configure surveys when they work with a web service.
63974
+ *
63975
+ * Nested properties:
63976
+ *
63977
+ * - `encodeUrlParams`: `Boolean`\
63978
+ * Specifies whether to encode URL parameters when you access a web service. Default value: `true`.
63979
+ *
63980
+ * - `cacheLoadedChoices`: `Boolean`\
63981
+ * Specifies whether to cache [choices](https://surveyjs.io/form-library/documentation/api-reference/checkbox-question-model#choicesByUrl) loaded from a web service. Default value: `true`.
63469
63982
  *
63470
- * Default value: `true`
63471
- * @see settings.disableOnGettingChoicesFromWeb
63983
+ * - `disableQuestionWhileLoadingChoices`: `Boolean`\
63984
+ * Disables a question while its choices are being loaded from a web service. Default value: `false`.
63985
+ *
63986
+ * - `surveyServiceUrl`: `String`\
63987
+ * The URL of the SurveyJS Service API endpoint.
63472
63988
  */
63473
- useCachingForChoicesRestful: true,
63474
- get useCachingForChoicesRestfull() {
63475
- return settings.useCachingForChoicesRestful;
63476
- },
63477
- set useCachingForChoicesRestfull(val) {
63478
- settings.useCachingForChoicesRestful = val;
63989
+ web: {
63990
+ encodeUrlParams: true,
63991
+ cacheLoadedChoices: true,
63992
+ disableQuestionWhileLoadingChoices: false,
63993
+ surveyServiceUrl: "https://api.surveyjs.io/public/v1/Survey"
63479
63994
  },
63995
+ //#region web section, obsolete properties
63480
63996
  /**
63481
- * The URL of the SurveyJS Service API endpoint.
63997
+ * This property is obsolete. Use the [`settings.web.encodeUrlParams`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) property instead.
63482
63998
  */
63483
- surveyServiceUrl: "https://api.surveyjs.io/public/v1/Survey",
63999
+ get webserviceEncodeParameters() { return this.web.encodeUrlParams; },
64000
+ set webserviceEncodeParameters(val) { this.web.encodeUrlParams = val; },
63484
64001
  /**
63485
- * A separator used in a shorthand notation that specifies a value and display text for an [`ItemValue`](https://surveyjs.io/form-library/documentation/api-reference/itemvalue) object: `"value|text"`.
63486
- *
63487
- * Default value: `"|"`
64002
+ * This property is obsolete. Use the [`settings.web.cacheLoadedChoices`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) property instead.
63488
64003
  */
63489
- itemValueSeparator: "|",
64004
+ get useCachingForChoicesRestful() { return this.web.cacheLoadedChoices; },
64005
+ set useCachingForChoicesRestful(val) { this.web.cacheLoadedChoices = val; },
64006
+ get useCachingForChoicesRestfull() { return this.web.cacheLoadedChoices; },
64007
+ set useCachingForChoicesRestfull(val) { this.web.cacheLoadedChoices = val; },
63490
64008
  /**
63491
- * Enable this property if you want to serialize [`ItemValue`](https://surveyjs.io/form-library/documentation/api-reference/itemvalue) instances as objects even when they include only the `value` property.
64009
+ * This property is obsolete. Use the [`settings.web.disableQuestionWhileLoadingChoices`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) property instead.
64010
+ */
64011
+ get disableOnGettingChoicesFromWeb() { return this.web.disableQuestionWhileLoadingChoices; },
64012
+ set disableOnGettingChoicesFromWeb(val) { this.web.disableQuestionWhileLoadingChoices = val; },
64013
+ /**
64014
+ * This property is obsolete. Use the [`settings.web.surveyServiceUrl`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) property instead.
64015
+ */
64016
+ get surveyServiceUrl() { return this.web.surveyServiceUrl; },
64017
+ set surveyServiceUrl(val) { this.web.surveyServiceUrl = val; },
64018
+ //#endregion
64019
+ /**
64020
+ * An object that contains properties related to [triggers](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#conditional-survey-logic-triggers).
63492
64021
  *
63493
- * ```js
63494
- * import { ItemValue, settings } from "survey-core";
64022
+ * Nested properties:
63495
64023
  *
63496
- * settings.itemValueAlwaysSerializeAsObject = true;
63497
- * const item = new ItemValue(5);
63498
- * const itemString = item.toJSON(); // Produces { value: 5 } instead of 5
63499
- * ```
64024
+ * - `changeNavigationButtonsOnComplete`: `Boolean`\
64025
+ * Specifies whether to re-evaluate an expression associated with the [Complete trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#complete) immediately when a question value changes. If the expression evaluates to `true`, the trigger is executed. Default value: `false`.\
64026
+ * Keep this property set to `false` if you want to re-evaluate the Complete trigger's expression only when the respondents navigate to another page.
63500
64027
  *
63501
- * @see settings.serializeLocalizableStringAsObject
64028
+ * - `executeCompleteOnValueChanged`: `Boolean`\
64029
+ * Specifies whether to replace the Next button with the Complete button when the [Complete trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#complete) is going to be executed. Default value: `true`.
64030
+ *
64031
+ * - `executeSkipOnValueChanged`: `Boolean`\
64032
+ * Specifies whether to re-evaluate an expression associated with the [Skip trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#skip) immediately when a question value changes. If the expression evaluates to `true`, the trigger is executed. Default value: `true`.\
64033
+ * Disable this property if you want to re-evaluate the Skip trigger's expression only when respondents navigate to another page.
63502
64034
  */
63503
- itemValueAlwaysSerializeAsObject: false,
64035
+ triggers: {
64036
+ changeNavigationButtonsOnComplete: true,
64037
+ executeCompleteOnValueChanged: false,
64038
+ executeSkipOnValueChanged: true
64039
+ },
64040
+ //#region triggers section, Obsolete properties
63504
64041
  /**
63505
- * Enable this property if you want to serialize the `text` property of [`ItemValue`](https://surveyjs.io/form-library/documentation/api-reference/itemvalue) objects even when it is empty or equal to the `value` property.
64042
+ * This property is obsolete. Use the [`settings.triggers.executeCompleteOnValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/settings#triggers) property instead.
64043
+ */
64044
+ get executeCompleteTriggerOnValueChanged() { return this.triggers.executeCompleteOnValueChanged; },
64045
+ set executeCompleteTriggerOnValueChanged(val) { this.triggers.executeCompleteOnValueChanged = val; },
64046
+ /**
64047
+ * This property is obsolete. Use the [`settings.triggers.changeNavigationButtonsOnComplete`](https://surveyjs.io/form-library/documentation/api-reference/settings#triggers) property instead.
64048
+ */
64049
+ get changeNavigationButtonsOnCompleteTrigger() { return this.triggers.changeNavigationButtonsOnComplete; },
64050
+ set changeNavigationButtonsOnCompleteTrigger(val) { this.triggers.changeNavigationButtonsOnComplete = val; },
64051
+ /**
64052
+ * This property is obsolete. Use the [`settings.triggers.executeSkipOnValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/settings#triggers) property instead.
64053
+ */
64054
+ get executeSkipTriggerOnValueChanged() { return this.triggers.executeSkipOnValueChanged; },
64055
+ set executeSkipTriggerOnValueChanged(val) { this.triggers.executeSkipOnValueChanged = val; },
64056
+ //#endregion
64057
+ /**
64058
+ * An object that contains properties related to JSON serialization.
64059
+ *
64060
+ * Nested properties:
64061
+ *
64062
+ * - `itemValueSerializeAsObject`: `Boolean`\
64063
+ * Enable this property if you want to serialize [`ItemValue`](https://surveyjs.io/form-library/documentation/api-reference/itemvalue) instances as objects even when they include only the `value` property. Default value: `false`. View an example below.
64064
+ *
64065
+ * - `itemValueSerializeDisplayText`: `Boolean`\
64066
+ * Enable this property if you want to serialize the `text` property of [`ItemValue`](https://surveyjs.io/form-library/documentation/api-reference/itemvalue) objects even when it is empty or equal to the `value` property. Default value: `false`. View an example below.
64067
+ *
64068
+ * - `localizableStringSerializeAsObject`: `Boolean`\
64069
+ * Enable this property if you want to serialize [`LocalizableString`](https://surveyjs.io/form-library/documentation/api-reference/localizablestring) instances as objects even when they include only a translation string for the default locale. For example, `"Custom String"` will be serialized as `{ default: "Custom String" }`. Default value: `false`.
63506
64070
  *
63507
64071
  * ```js
63508
64072
  * import { ItemValue, settings } from "survey-core";
63509
64073
  *
63510
- * settings.itemValueAlwaysSerializeText = true;
64074
+ * // `itemValueSerializeAsObject` example
64075
+ * settings.localization.itemValueSerializeAsObject = true;
64076
+ * const item = new ItemValue(5);
64077
+ * const itemString = item.toJSON(); // Produces { value: 5 } instead of 5
64078
+ *
64079
+ * // `itemValueSerializeDisplayText` example
64080
+ * settings.localization.itemValueSerializeDisplayText = true;
63511
64081
  * const item = new ItemValue("item1");
63512
64082
  * const itemString = item.toJSON(); // Produces { value: "item1", text: "item1" } instead of "item1"
63513
64083
  * ```
63514
64084
  */
63515
- itemValueAlwaysSerializeText: false,
64085
+ serialization: {
64086
+ itemValueSerializeAsObject: false,
64087
+ itemValueSerializeDisplayText: false,
64088
+ localizableStringSerializeAsObject: false
64089
+ },
64090
+ //#region serialization section, Obsolete properties
63516
64091
  /**
63517
- * Specifies a property key that stores a translation for the default locale.
63518
- *
63519
- * Default value: `"default"`
63520
- * @see storeDuplicatedTranslations
64092
+ * This property is obsolete. Use the [`settings.serialization.itemValueSerializeAsObject`](https://surveyjs.io/form-library/documentation/api-reference/settings#serialization) property instead.
63521
64093
  */
63522
- defaultLocaleName: "default",
64094
+ get itemValueAlwaysSerializeAsObject() { return this.serialization.itemValueSerializeAsObject; },
64095
+ set itemValueAlwaysSerializeAsObject(val) { this.serialization.itemValueSerializeAsObject = val; },
63523
64096
  /**
63524
- * Specifies whether surveys should store translation strings that equal the translation string specified by the `"default"` key.
63525
- *
63526
- * Default value: `false`
63527
- * @see settings.defaultLocaleName
64097
+ * This property is obsolete. Use the [`settings.serialization.itemValueSerializeDisplayText`](https://surveyjs.io/form-library/documentation/api-reference/settings#serialization) property instead.
63528
64098
  */
63529
- storeDuplicatedTranslations: false,
64099
+ get itemValueAlwaysSerializeText() { return this.serialization.itemValueSerializeDisplayText; },
64100
+ set itemValueAlwaysSerializeText(val) { this.serialization.itemValueSerializeDisplayText = val; },
63530
64101
  /**
63531
- * Specifies a property key that stores an object with default cell values in [Single-Choice Matrix](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-question-model) questions.
63532
- *
63533
- * Default value: "default"
64102
+ * This property is obsolete. Use the [`settings.serialization.localizableStringSerializeAsObject`](https://surveyjs.io/form-library/documentation/api-reference/settings#serialization) property instead.
63534
64103
  */
63535
- matrixDefaultRowName: "default",
64104
+ get serializeLocalizableStringAsObject() { return this.serialization.localizableStringSerializeAsObject; },
64105
+ set serializeLocalizableStringAsObject(val) { this.serialization.localizableStringSerializeAsObject = val; },
64106
+ //#endregion
63536
64107
  /**
63537
- * The default type of matrix cells in the [Multiple-Choice Matrix](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list) and [Dynamic Matrix](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model) question types.
64108
+ * An object that configures lazy rendering.
63538
64109
  *
63539
- * Default value: `"dropdown"`
64110
+ * Nested properties:
63540
64111
  *
63541
- * You can specify this setting for individual questions or matrix columns: [`cellType`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model#cellType). Refer to the `cellType` property description for information on possible values.
64112
+ * - `enabled`: `Boolean`\
64113
+ * Specifies whether to add questions to the DOM only when they get into the viewport. Default value: `false`.
64114
+ *
64115
+ * > Lazy rendering is an experimental feature that may not work as expected in all use cases.
63542
64116
  */
63543
- matrixDefaultCellType: "dropdown",
64117
+ lazyRender: {
64118
+ enabled: false,
64119
+ firstBatchSize: 3
64120
+ },
64121
+ //#region lazyRender section, Obsolete properties
63544
64122
  /**
63545
- * A suffix added to the name of the property that stores total values. The resulting property name consists of the matrix name and the suffix.
63546
- *
63547
- * Default value: `"-total"`
64123
+ * This property is obsolete. Use the [`settings.lazyRender.enabled`](https://surveyjs.io/form-library/documentation/api-reference/settings#lazyRender) property instead.
63548
64124
  */
63549
- matrixTotalValuePostFix: "-total",
64125
+ get lazyRowsRendering() { return this.lazyRender.enabled; },
64126
+ set lazyRowsRendering(val) { this.lazyRender.enabled = val; },
64127
+ get lazyRowsRenderingStartRow() { return this.lazyRender.firstBatchSize; },
64128
+ set lazyRowsRenderingStartRow(val) { this.lazyRender.firstBatchSize = val; },
64129
+ //#endregion
63550
64130
  /**
63551
- * A maximum number of rows in a [Dynamic Matrix](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model).
64131
+ * An object with properties that apply to [Single-Choice](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-question-model), [Multiple-Choice](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list), and [Dynamic Matrix](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model) questions.
63552
64132
  *
63553
- * Default value: 1000
64133
+ * Nested properties:
63554
64134
  *
63555
- * You can specify this setting for an individual Dynamic Matrix: [`maxRowCount`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model#maxRowCount).
63556
- */
63557
- matrixMaximumRowCount: 1000,
63558
- /**
63559
- * A maximum number of matrix rows included in the Condition drop-down menu in Survey Creator. This menu is used to configure conditional survey logic.
64135
+ * - `defaultRowName`: `String`\
64136
+ * A property key that stores an object with default cell values. Default value: "default".
64137
+ *
64138
+ * - `defaultCellType`: `String`\
64139
+ * The default type of matrix cells. Default value: `"dropdown"`.\
64140
+ * You can specify this setting for individual questions or matrix columns: [`cellType`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model#cellType). Refer to the `cellType` property description for information on possible values.
63560
64141
  *
63561
- * Default value: 1
64142
+ * - `totalsSuffix`: `String`\
64143
+ * A suffix added to the name of the property that stores total values. The resulting property name consists of the matrix name and the suffix. Default value: `"-total"`.
64144
+ *
64145
+ * - `maxRowCount`: `Number`\
64146
+ * A maximum number of rows in a Dynamic Matrix. Default value: 1000.\
64147
+ * You can specify this setting for an individual Dynamic Matrix: [`maxRowCount`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model#maxRowCount).
63562
64148
  *
64149
+ * - `maxRowCountInCondition`: `Number`\
64150
+ * A maximum number of matrix rows included in the Condition drop-down menu in Survey Creator. This menu is used to configure conditional survey logic. Default value: 1.\
63563
64151
  * If you set this property to 0, the Condition menu does not include any matrix rows. Users still can specify conditions that use matrix rows but only with Manual Entry.
63564
- */
63565
- matrixMaxRowCountInCondition: 1,
63566
- /**
63567
- * A maximum number of panels from [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model) included in the Condition drop-down menu in Survey Creator. This menu is used to configure conditional survey logic.
63568
64152
  *
63569
- * Default value: 1
64153
+ * - `renderRemoveAsIcon`: `Boolean`\
64154
+ * Disable this property if you want to render the Remove action in Dynamic Matrix as a button. Otherwise, the action is rendered as an icon. Default value: `true`.
63570
64155
  *
63571
- * If you set this property to 0, the Condition menu does not include any panel questions. Users still can specify conditions that use panel questions but only with Manual Entry.
64156
+ * - `columnWidthsByType`: `Object`\
64157
+ * An object that specifies fixed and minimum column width based on the column type.\
64158
+ * Example: `settings.matrix.columnWidthsByType = { "tagbox": { minWidth: "240px", width: "300px" } }`
64159
+ *
64160
+ * - `rateSize`: `"small"` (default) | `"normal"`\
64161
+ * Specifies the size of rate values. Applies to [Rating Scale](https://surveyjs.io/form-library/examples/rating-scale/) questions within matrixes.
63572
64162
  */
63573
- panelDynamicMaxPanelCountInCondition: 1,
64163
+ matrix: {
64164
+ defaultCellType: "dropdown",
64165
+ defaultRowName: "default",
64166
+ totalsSuffix: "-total",
64167
+ maxRowCount: 1000,
64168
+ maxRowCountInCondition: 1,
64169
+ renderRemoveAsIcon: true,
64170
+ columnWidthsByType: columnWidthsByType,
64171
+ rateSize: "small",
64172
+ },
64173
+ //#region matrix section, Obsolete properties
63574
64174
  /**
63575
- * Disable this property if you want to render the Remove action in Dynamic Matrix as a button. Otherwise, the action is rendered as an icon.
63576
- *
63577
- * Default value: `true`
64175
+ * This property is obsolete. Use the [`settings.matrix.defaultRowName`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
64176
+ */
64177
+ get matrixDefaultRowName() { return this.matrix.defaultRowName; },
64178
+ set matrixDefaultRowName(val) { this.matrix.defaultRowName = val; },
64179
+ /**
64180
+ * This property is obsolete. Use the [`settings.matrix.defaultCellType`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
64181
+ */
64182
+ get matrixDefaultCellType() { return this.matrix.defaultCellType; },
64183
+ set matrixDefaultCellType(val) { this.matrix.defaultCellType = val; },
64184
+ /**
64185
+ * This property is obsolete. Use the [`settings.matrix.totalsSuffix`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
64186
+ */
64187
+ get matrixTotalValuePostFix() { return this.matrix.totalsSuffix; },
64188
+ set matrixTotalValuePostFix(val) { this.matrix.totalsSuffix = val; },
64189
+ /**
64190
+ * This property is obsolete. Use the [`settings.matrix.maxRowCount`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
64191
+ */
64192
+ get matrixMaximumRowCount() { return this.matrix.maxRowCount; },
64193
+ set matrixMaximumRowCount(val) { this.matrix.maxRowCount = val; },
64194
+ /**
64195
+ * This property is obsolete. Use the [`settings.matrix.maxRowCountInCondition`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
64196
+ */
64197
+ get matrixMaxRowCountInCondition() { return this.matrix.maxRowCountInCondition; },
64198
+ set matrixMaxRowCountInCondition(val) { this.matrix.maxRowCountInCondition = val; },
64199
+ /**
64200
+ * This property is obsolete. Use the [`settings.matrix.renderRemoveAsIcon`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
63578
64201
  */
63579
- matrixRenderRemoveAsIcon: true,
64202
+ get matrixRenderRemoveAsIcon() { return this.matrix.renderRemoveAsIcon; },
64203
+ set matrixRenderRemoveAsIcon(val) { this.matrix.renderRemoveAsIcon = val; },
64204
+ //#endregion
63580
64205
  /**
63581
- * A maximum number of panels in [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model).
64206
+ * An object with properties that apply to [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model) questions.
63582
64207
  *
63583
- * Default value: 100
64208
+ * Nested properties:
63584
64209
  *
64210
+ * - `maxPanelCount`: `Number`\
64211
+ * A maximum number of panels in Dynamic Panel. Default value: 100.\
63585
64212
  * You can specify this setting for an individual Dynamic Panel: [`maxPanelCount`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#maxPanelCount).
64213
+ *
64214
+ * - `maxPanelCountInCondition`: `Number`\
64215
+ * A maximum number of Dynamic Panel panels included in the Condition drop-down menu in Survey Creator. This menu is used to configure conditional survey logic. Default value: 1.\
64216
+ * If you set this property to 0, the Condition menu does not include any panel questions. Users still can specify conditions that use panel questions but only with Manual Entry.
63586
64217
  */
63587
- panelMaximumPanelCount: 100,
64218
+ panel: {
64219
+ maxPanelCount: 100,
64220
+ maxPanelCountInCondition: 1
64221
+ },
64222
+ //#region panel section, Obsolete properties
63588
64223
  /**
63589
- * A maximum number of rate values in a [Rating](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model) question.
63590
- *
63591
- * Default value: 20
64224
+ * This property is obsolete. Use the [`settings.panel.maxPanelCountInCondition`](https://surveyjs.io/form-library/documentation/api-reference/settings#panel) property instead.
63592
64225
  */
63593
- ratingMaximumRateValueCount: 20,
64226
+ get panelDynamicMaxPanelCountInCondition() { return this.panel.maxPanelCountInCondition; },
64227
+ set panelDynamicMaxPanelCountInCondition(val) { this.panel.maxPanelCountInCondition = val; },
63594
64228
  /**
63595
- * Specifies whether to close the drop-down menu of a [TagBox](https://surveyjs.io/form-library/examples/how-to-create-multiselect-tag-box/) question after a user selects a value.
63596
- *
63597
- * This setting applies to all TagBox questions on a page. You can use the [closeOnSelect](https://surveyjs.io/form-library/documentation/api-reference/dropdown-tag-box-model#closeOnSelect) property to specify the same setting for an individual TagBox question.
64229
+ * This property is obsolete. Use the [`settings.panel.maxPanelCount`](https://surveyjs.io/form-library/documentation/api-reference/settings#panel) property instead.
63598
64230
  */
63599
- tagboxCloseOnSelect: false,
64231
+ get panelMaximumPanelCount() { return this.panel.maxPanelCount; },
64232
+ set panelMaximumPanelCount(val) { this.panel.maxPanelCount = val; },
64233
+ //#endregion
63600
64234
  /**
63601
- * Disables the question while choices are being loaded from a web service.
64235
+ * An object with properties that configure questions in read-only mode.
64236
+ *
64237
+ * Nested properties:
63602
64238
  *
63603
- * Default value: `false`
63604
- * @see settings.useCachingForChoicesRestful
64239
+ * - `commentRenderMode`: `"textarea"` (default) | `"div"`\
64240
+ * Specifies how to render the input field of [Comment](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model) questions in [read-only](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model#readOnly) mode: as a disabled `<textarea>` element or as a `<div>` element with a non-editable question value within it.
64241
+ *
64242
+ * - `textRenderMode`: `"input"` (default) | `"div"`\
64243
+ * Specifies how to render the input field of [Text](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model) questions in [read-only](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#readOnly) mode: as a disabled `<input>` element or as a `<div>` element with a non-editable question value within it.
63605
64244
  */
63606
- disableOnGettingChoicesFromWeb: false,
64245
+ readOnly: {
64246
+ commentRenderMode: "textarea",
64247
+ textRenderMode: "input"
64248
+ },
64249
+ //#region readOnly section, Obsolete properties
63607
64250
  /**
63608
- * Enable this property if you want to serialize [`LocalizableString`](https://surveyjs.io/form-library/documentation/api-reference/localizablestring) instances as objects even when they include only a translation string for the default locale. For example, `"Custom String"` will be serialized as `{ default: "Custom String" }`.
63609
- *
63610
- * Default value: `false`
63611
- * @see settings.itemValueAlwaysSerializeAsObject
64251
+ * This property is obsolete. Use the [`settings.readOnly.commentRenderMode`](https://surveyjs.io/form-library/documentation/api-reference/settings#readOnly) property instead.
63612
64252
  */
63613
- serializeLocalizableStringAsObject: false,
64253
+ get readOnlyCommentRenderMode() { return this.readOnly.commentRenderMode; },
64254
+ set readOnlyCommentRenderMode(val) { this.readOnly.commentRenderMode = val; },
63614
64255
  /**
63615
- * Specifies whether to display an empty title for pages and panels when they are being designed in Survey Creator.
63616
- *
63617
- * Default value: `true`
64256
+ * This property is obsolete. Use the [`settings.readOnly.textRenderMode`](https://surveyjs.io/form-library/documentation/api-reference/settings#readOnly) property instead.
63618
64257
  */
63619
- allowShowEmptyTitleInDesignMode: true,
64258
+ get readOnlyTextRenderMode() { return this.readOnly.textRenderMode; },
64259
+ set readOnlyTextRenderMode(val) { this.readOnly.textRenderMode = val; },
64260
+ //#endregion
63620
64261
  /**
63621
- * Specifies whether to display an empty description for pages and panels when they are being designed in Survey Creator.
64262
+ * An object with properties that configure question numbering.
63622
64263
  *
63623
- * Default value: `true`
64264
+ * Nested properties:
64265
+ *
64266
+ * - `includeQuestionsWithHiddenNumber`: `Boolean`\
64267
+ * Specifies whether to number questions whose [`hideNumber`](https://surveyjs.io/form-library/documentation/api-reference/question#hideNumber) property is enabled. Default value: `false`.
64268
+ *
64269
+ * - `includeQuestionsWithHiddenTitle`: `Boolean`\
64270
+ * Specifies whether to number questions whose [`titleLocation`](https://surveyjs.io/form-library/documentation/api-reference/question#titleLocation) property is set to `"hidden"`. Default value: `false`.
64271
+ */
64272
+ numbering: {
64273
+ includeQuestionsWithHiddenNumber: false,
64274
+ includeQuestionsWithHiddenTitle: false
64275
+ },
64276
+ //#region numbering section, Obsolete properties
64277
+ /**
64278
+ * This property is obsolete. Use the [`settings.numbering.includeQuestionsWithHiddenTitle`](https://surveyjs.io/form-library/documentation/api-reference/settings#numbering) property instead.
63624
64279
  */
63625
- allowShowEmptyDescriptionInDesignMode: true,
64280
+ get setQuestionVisibleIndexForHiddenTitle() { return this.numbering.includeQuestionsWithHiddenTitle; },
64281
+ set setQuestionVisibleIndexForHiddenTitle(val) { this.numbering.includeQuestionsWithHiddenTitle = val; },
63626
64282
  /**
63627
- * Specifies whether to re-evaluate an expression associated with the [Complete trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#complete) immediately when a question value changes. If the expression evaluates to `true`, the trigger is executed.
64283
+ * This property is obsolete. Use the [`settings.numbering.includeQuestionsWithHiddenNumber`](https://surveyjs.io/form-library/documentation/api-reference/settings#numbering) property instead.
64284
+ */
64285
+ get setQuestionVisibleIndexForHiddenNumber() { return this.numbering.includeQuestionsWithHiddenNumber; },
64286
+ set setQuestionVisibleIndexForHiddenNumber(val) { this.numbering.includeQuestionsWithHiddenNumber = val; },
64287
+ //#endregion
64288
+ /**
64289
+ * Specifies an action to perform when users press the Enter key within a survey.
63628
64290
  *
63629
- * Keep this property set to `false` if you want to re-evaluate the Complete trigger's expression only when the respondents navigate to another page.
64291
+ * Possible values:
63630
64292
  *
63631
- * Default value: `false`
63632
- * @see settings.changeNavigationButtonsOnCompleteTrigger
64293
+ * - `"moveToNextEditor"` - Moves focus to the next editor.
64294
+ * - `"loseFocus"` - Removes focus from the current editor.
64295
+ * - `"default"` - Behaves as a standard `<input>` element.
63633
64296
  */
63634
- executeCompleteTriggerOnValueChanged: false,
64297
+ enterKeyAction: "default",
63635
64298
  /**
63636
- * Specifies whether to replace the Next button with the Complete button when the [Complete trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#complete) is going to be executed.
64299
+ * An object that configures string comparison.
63637
64300
  *
63638
- * Default value: `true`
63639
- * @see settings.executeCompleteTriggerOnValueChanged
64301
+ * Nested properties:
64302
+ *
64303
+ * - `trimStrings`: `Boolean`\
64304
+ * Specifies whether to remove whitespace from both ends of a string before the comparison. Default value: `true`.
64305
+ *
64306
+ * - `caseSensitive`: `Boolean`\
64307
+ * Specifies whether to differentiate between capital and lower-case letters. Default value: `false`.
63640
64308
  */
63641
- changeNavigationButtonsOnCompleteTrigger: true,
64309
+ comparator: {
64310
+ trimStrings: true,
64311
+ caseSensitive: false
64312
+ },
64313
+ expressionDisableConversionChar: "#",
64314
+ get commentPrefix() { return settings.commentSuffix; },
64315
+ set commentPrefix(val) { settings.commentSuffix = val; },
63642
64316
  /**
63643
- * Specifies whether to re-evaluate an expression associated with the [Skip trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#skip) immediately when a question value changes. If the expression evaluates to `true`, the trigger is executed.
64317
+ * A suffix added to the name of the property that stores comments.
63644
64318
  *
63645
- * Disable this property if you want to re-evaluate the Skip trigger's expression only when the respondents navigate to another page.
64319
+ * Default value: "-Comment"
63646
64320
  *
63647
- * Default value: `true`
64321
+ * You can specify this setting for an individual survey: [`commentSuffix`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#commentSuffix).
63648
64322
  */
63649
- executeSkipTriggerOnValueChanged: true,
64323
+ commentSuffix: "-Comment",
63650
64324
  /**
63651
- * Specifies how to render the input field of [Comment](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model) questions in [read-only](https://surveyjs.io/form-library/documentation/api-reference/comment-field-model#readOnly) mode.
63652
- *
63653
- * Possible values:
64325
+ * A separator used in a shorthand notation that specifies a value and display text for an [`ItemValue`](https://surveyjs.io/form-library/documentation/api-reference/itemvalue) object: `"value|text"`.
63654
64326
  *
63655
- * - `"textarea"` (default) - Renders the input field as a disabled `<textarea>` element.
63656
- * - `"div"` - Renders the input field as a `<div>` element with a non-editable question value within it.
64327
+ * Default value: `"|"`
63657
64328
  */
63658
- readOnlyCommentRenderMode: "textarea",
64329
+ itemValueSeparator: "|",
63659
64330
  /**
63660
- * Specifies how to render the input field of [Text](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model) questions in [read-only](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#readOnly) mode.
64331
+ * A maximum number of rate values in a [Rating](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model) question.
63661
64332
  *
63662
- * Possible values:
64333
+ * Default value: 20
64334
+ */
64335
+ ratingMaximumRateValueCount: 20,
64336
+ /**
64337
+ * Specifies whether to close the drop-down menu of a [TagBox](https://surveyjs.io/form-library/examples/how-to-create-multiselect-tag-box/) question after a user selects a value.
63663
64338
  *
63664
- * - `"input"` (default) - Renders the input field as a disabled `<input>` element.
63665
- * - `"div"` - Renders the input field as a `<div>` element with a non-editable question value within it.
64339
+ * This setting applies to all TagBox questions on a page. You can use the [closeOnSelect](https://surveyjs.io/form-library/documentation/api-reference/dropdown-tag-box-model#closeOnSelect) property to specify the same setting for an individual TagBox question.
63666
64340
  */
63667
- readOnlyTextRenderMode: "input",
64341
+ tagboxCloseOnSelect: false,
63668
64342
  /**
63669
64343
  * A property that allows you to display a custom confirm dialog instead of the standard browser dialog. Set this property to a function that renders your custom dialog window.
63670
64344
  * @param message A message to be displayed in the confirm dialog window.
@@ -63693,28 +64367,7 @@ var settings = {
63693
64367
  *
63694
64368
  * Default value: 10
63695
64369
  */
63696
- maximumConditionRunCountOnValueChanged: 10,
63697
- /**
63698
- * Specifies whether to number questions whose [`titleLocation`](https://surveyjs.io/form-library/documentation/api-reference/question#titleLocation) property is set to `"hidden"`.
63699
- *
63700
- * Default value: `false`
63701
- */
63702
- setQuestionVisibleIndexForHiddenTitle: false,
63703
- /**
63704
- * Specifies whether to number questions whose [`hideNumber`](https://surveyjs.io/form-library/documentation/api-reference/question#hideNumber) property is enabled.
63705
- *
63706
- * Default value: `false`
63707
- */
63708
- setQuestionVisibleIndexForHiddenNumber: false,
63709
- /**
63710
- * Specifies whether to add questions to the DOM only when they get into the viewport.
63711
- *
63712
- * Default value: `false`
63713
- *
63714
- * > This is an experimental feature that may not work as expected in all use cases.
63715
- */
63716
- lazyRowsRendering: false,
63717
- lazyRowsRenderingStartRow: 3,
64370
+ maxConditionRunCountOnValueChanged: 10,
63718
64371
  /**
63719
64372
  * An object that configures notifications.
63720
64373
  *
@@ -63787,6 +64440,7 @@ var settings = {
63787
64440
  * Specifies environment in which SurveyJS will exist
63788
64441
  */
63789
64442
  environment: defaultEnvironment,
64443
+ showMaxLengthIndicator: true,
63790
64444
  titleTags: {
63791
64445
  survey: "h3",
63792
64446
  page: "h4",
@@ -63865,22 +64519,6 @@ var settings = {
63865
64519
  "email",
63866
64520
  "impp",
63867
64521
  ]
63868
- },
63869
- /**
63870
- * Contains properties that apply to [Single-Choice](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-question-model), [Multiple-Choice](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list), and [Dynamic Matrix](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model) questions.
63871
- *
63872
- * Nested properties:
63873
- *
63874
- * - `columnWidthsByType`: `Object`\
63875
- * An object that specifies fixed and minimum column width based on the column type.\
63876
- * Example: `settings.matrix.columnWidthsByType = { "tagbox": { minWidth: "240px", width: "300px" } }`
63877
- *
63878
- * - `rateSize`: `"small"` (default) | `"normal"`\
63879
- * Specifies the size of rate values. Applies to [Rating Scale](https://surveyjs.io/form-library/examples/rating-scale/) questions within matrixes.
63880
- */
63881
- matrix: {
63882
- columnWidthsByType: columnWidthsByType,
63883
- rateSize: "small",
63884
64522
  }
63885
64523
  };
63886
64524
 
@@ -65623,6 +66261,20 @@ var SurveyError = /** @class */ (function () {
65623
66261
 
65624
66262
 
65625
66263
 
66264
+ /***/ }),
66265
+
66266
+ /***/ "./src/survey-events-api.ts":
66267
+ /*!**********************************!*\
66268
+ !*** ./src/survey-events-api.ts ***!
66269
+ \**********************************/
66270
+ /*! no exports provided */
66271
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
66272
+
66273
+ "use strict";
66274
+ __webpack_require__.r(__webpack_exports__);
66275
+
66276
+
66277
+
65626
66278
  /***/ }),
65627
66279
 
65628
66280
  /***/ "./src/survey.ts":
@@ -65812,10 +66464,6 @@ var SurveyModel = /** @class */ (function (_super) {
65812
66464
  * Refer to the following help topic for information on how to implement conditional visibility: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#conditional-visibility).
65813
66465
  */
65814
66466
  _this.onQuestionVisibleChanged = _this.addEvent();
65815
- /**
65816
- * Obsolete. Please use onQuestionVisibleChanged event.
65817
- * @see onQuestionVisibleChanged
65818
- */
65819
66467
  _this.onVisibleChanged = _this.onQuestionVisibleChanged;
65820
66468
  /**
65821
66469
  * An event that is raised after page visibility is changed.
@@ -66007,7 +66655,7 @@ var SurveyModel = /** @class */ (function (_super) {
66007
66655
  *
66008
66656
  * For information on event handler parameters, refer to descriptions within the interface.
66009
66657
  *
66010
- * [View Demo](https://surveyjs.io/form-library/examples/questiontype-file/ (linkStyle))
66658
+ * [View Demo](https://surveyjs.io/form-library/examples/file-upload/ (linkStyle))
66011
66659
  * @see uploadFiles
66012
66660
  * @see QuestionFileModel.storeDataAsText
66013
66661
  * @see onDownloadFile
@@ -66019,7 +66667,7 @@ var SurveyModel = /** @class */ (function (_super) {
66019
66667
  *
66020
66668
  * For information on event handler parameters, refer to descriptions within the interface.
66021
66669
  *
66022
- * [View Demo](https://surveyjs.io/form-library/examples/questiontype-file/ (linkStyle))
66670
+ * [View Demo](https://surveyjs.io/form-library/examples/file-upload/ (linkStyle))
66023
66671
  * @see downloadFile
66024
66672
  * @see onClearFiles
66025
66673
  * @see onUploadFiles
@@ -66090,15 +66738,16 @@ var SurveyModel = /** @class */ (function (_super) {
66090
66738
  */
66091
66739
  _this.onUpdateChoiceItemCss = _this.addEvent();
66092
66740
  /**
66093
- * An event that is raised right after survey is rendered in DOM.
66741
+ * An event that is raised after the survey is rendered to the DOM. Use this event to modify survey markup.
66742
+ *
66743
+ * For information on event handler parameters, refer to descriptions within the interface.
66744
+ *
66745
+ * [View Demo](https://surveyjs.io/form-library/examples/survey-animation/ (linkStyle))
66094
66746
  */
66095
66747
  _this.onAfterRenderSurvey = _this.addEvent();
66096
- /**
66097
- * An event that is raised right after a page is rendered in DOM. Use it to modify HTML elements.
66098
- */
66099
66748
  _this.onAfterRenderHeader = _this.addEvent();
66100
66749
  /**
66101
- * An event that is raised right after a page is rendered in DOM. Use it to modify HTML elements.
66750
+ * An event that is raised after a page is rendered to the DOM. Use it to modify page markup.
66102
66751
  *
66103
66752
  * For information on event handler parameters, refer to descriptions within the interface.
66104
66753
  *
@@ -66106,7 +66755,7 @@ var SurveyModel = /** @class */ (function (_super) {
66106
66755
  */
66107
66756
  _this.onAfterRenderPage = _this.addEvent();
66108
66757
  /**
66109
- * An event that is raised right after a question is rendered in DOM. Use it to modify HTML elements.
66758
+ * An event that is raised after a question is rendered to the DOM. Use it to modify question markup.
66110
66759
  *
66111
66760
  * For information on event handler parameters, refer to descriptions within the interface.
66112
66761
  *
@@ -66114,12 +66763,19 @@ var SurveyModel = /** @class */ (function (_super) {
66114
66763
  */
66115
66764
  _this.onAfterRenderQuestion = _this.addEvent();
66116
66765
  /**
66117
- * An event that is raised right after a non-composite question (text, comment, dropdown, radiogroup, checkbox) is rendered in DOM. Use it to modify HTML elements.
66118
- * This event is not fired for matrices, panels, multiple text and image picker.
66766
+ * An event that is raised after a question with a single input field is rendered to the DOM. Use it to modify question markup.
66767
+ *
66768
+ * For information on event handler parameters, refer to descriptions within the interface.
66769
+ *
66770
+ * > This event is not raised for questions without input fields ([HTML](https://surveyjs.io/form-library/documentation/questionhtmlmodel), [Image](https://surveyjs.io/form-library/documentation/questionimagemodel)) or questions with multiple input fields ([Matrix](https://surveyjs.io/form-library/documentation/questionmatrixmodel), [Multiple Text](https://surveyjs.io/form-library/documentation/questionmultipletextmodel)).
66119
66771
  */
66120
66772
  _this.onAfterRenderQuestionInput = _this.addEvent();
66121
66773
  /**
66122
- * An event that is raised right after a panel is rendered in DOM. Use it to modify HTML elements.
66774
+ * An event that is raised after a panel is rendered to the DOM. Use it to modify panel markup.
66775
+ *
66776
+ * For information on event handler parameters, refer to descriptions within the interface.
66777
+ *
66778
+ * > This event is raised for static [Panels](https://surveyjs.io/form-library/examples/set-properties-on-multiple-questions-using-panel/) as well as panels within a [Dynamic Panel](https://surveyjs.io/form-library/examples/duplicate-group-of-fields-in-form/).
66123
66779
  */
66124
66780
  _this.onAfterRenderPanel = _this.addEvent();
66125
66781
  /**
@@ -66167,15 +66823,19 @@ var SurveyModel = /** @class */ (function (_super) {
66167
66823
  /**
66168
66824
  * An event that is raised before a new row is added to a [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/).
66169
66825
  */
66170
- _this.onMatrixBeforeRowAdded = _this.addEvent();
66826
+ _this.onMatrixRowAdding = _this.addEvent();
66827
+ /**
66828
+ * This event is obsolete. Use the [`onMatrixRowAdding`](/form-library/documentation/api-reference/survey-data-model#onMatrixRowAdding) event instead.
66829
+ */
66830
+ _this.onMatrixBeforeRowAdded = _this.onMatrixRowAdding;
66171
66831
  /**
66172
66832
  * An event that is raised before a row is deleted from a [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/). You can cancel row deletion and clear row data instead.
66173
- * @see onMatrixAllowRemoveRow
66833
+ * @see onMatrixRenderRemoveButton
66174
66834
  */
66175
66835
  _this.onMatrixRowRemoving = _this.addEvent();
66176
66836
  /**
66177
66837
  * An event that is raised after a row is deleted from a [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/).
66178
- * @see onMatrixAllowRemoveRow
66838
+ * @see onMatrixRenderRemoveButton
66179
66839
  */
66180
66840
  _this.onMatrixRowRemoved = _this.addEvent();
66181
66841
  /**
@@ -66183,35 +66843,43 @@ var SurveyModel = /** @class */ (function (_super) {
66183
66843
  * @see onMatrixRowRemoving
66184
66844
  * @see onMatrixRowRemoved
66185
66845
  */
66186
- _this.onMatrixAllowRemoveRow = _this.addEvent();
66846
+ _this.onMatrixRenderRemoveButton = _this.addEvent();
66847
+ /**
66848
+ * This event is obsolete. Use the [`onMatrixRenderRemoveButton`](/form-library/documentation/api-reference/survey-data-model#onMatrixRenderRemoveButton) event instead.
66849
+ */
66850
+ _this.onMatrixAllowRemoveRow = _this.onMatrixRenderRemoveButton;
66187
66851
  /**
66188
66852
  * An event that is raised before a cell in a [Multi-Select Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdropdown/) or [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/) is created. Use this event to change the type of individual matrix cells.
66189
- * @see onMatrixAfterCellRender
66853
+ * @see onAfterRenderMatrixCell
66190
66854
  */
66191
66855
  _this.onMatrixCellCreating = _this.addEvent();
66192
66856
  /**
66193
66857
  * An event that is raised after a cell in a [Multi-Select Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdropdown/) or [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/) is created.
66194
- * @see onMatrixAfterCellRender
66858
+ * @see onAfterRenderMatrixCell
66195
66859
  */
66196
66860
  _this.onMatrixCellCreated = _this.addEvent();
66197
66861
  /**
66198
66862
  * An event that is raised for every matrix cell after it is rendered to the DOM.
66199
66863
  * @see onMatrixCellCreated
66200
66864
  */
66201
- _this.onMatrixAfterCellRender = _this.addEvent();
66865
+ _this.onAfterRenderMatrixCell = _this.addEvent();
66866
+ /**
66867
+ * This event is obsolete. Use the [`onAfterRenderMatrixCell`](/form-library/documentation/api-reference/survey-data-model#onAfterRenderMatrixCell) event instead.
66868
+ */
66869
+ _this.onMatrixAfterCellRender = _this.onAfterRenderMatrixCell;
66202
66870
  /**
66203
66871
  * An event that is raised after a cell value is changed in a [Multi-Select Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdropdown/) or [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/).
66204
- * @see onMatrixBeforeRowAdded
66872
+ * @see onMatrixRowAdding
66205
66873
  */
66206
66874
  _this.onMatrixCellValueChanged = _this.addEvent();
66207
66875
  /**
66208
66876
  * An event that is raised before a cell value is changed in a [Multi-Select Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdropdown/) or [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/). Use this event to change the cell value.
66209
- * @see onMatrixBeforeRowAdded
66877
+ * @see onMatrixRowAdding
66210
66878
  */
66211
66879
  _this.onMatrixCellValueChanging = _this.addEvent();
66212
66880
  /**
66213
66881
  * An event that is raised for [Multi-Select Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdropdown/) and [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/) questions when they validate a cell value. Use this event to display a custom error message based on a condition.
66214
- * @see onMatrixBeforeRowAdded
66882
+ * @see onMatrixRowAdding
66215
66883
  */
66216
66884
  _this.onMatrixCellValidate = _this.addEvent();
66217
66885
  /**
@@ -66235,15 +66903,15 @@ var SurveyModel = /** @class */ (function (_super) {
66235
66903
  */
66236
66904
  _this.onDynamicPanelRemoving = _this.addEvent();
66237
66905
  /**
66238
- * An event that is raised every second if the method `startTimer` has been called.
66906
+ * An event that is raised every second while the timer is running.
66907
+ *
66908
+ * Use the [`timeSpent`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#timeSpent) property to find out how many seconds have elapsed.
66909
+ * @see maxTimeToFinish
66910
+ * @see maxTimeToFinishPage
66911
+ * @see showTimerPanel
66239
66912
  * @see startTimer
66240
- * @see timeSpent
66241
- * @see Page.timeSpent
66242
66913
  */
66243
66914
  _this.onTimer = _this.addEvent();
66244
- /**
66245
- * An event that is raised before displaying a new information in the Timer Panel. Use it to change the default text.
66246
- */
66247
66915
  _this.onTimerPanelInfoText = _this.addEvent();
66248
66916
  /**
66249
66917
  * An event that is raised after an item value is changed in a panel within a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) question.
@@ -66770,7 +67438,7 @@ var SurveyModel = /** @class */ (function (_super) {
66770
67438
  });
66771
67439
  Object.defineProperty(SurveyModel.prototype, "isLazyRendering", {
66772
67440
  get: function () {
66773
- return this.lazyRendering || _settings__WEBPACK_IMPORTED_MODULE_14__["settings"].lazyRowsRendering;
67441
+ return this.lazyRendering || _settings__WEBPACK_IMPORTED_MODULE_14__["settings"].lazyRender.enabled;
66774
67442
  },
66775
67443
  enumerable: false,
66776
67444
  configurable: true
@@ -67381,7 +68049,7 @@ var SurveyModel = /** @class */ (function (_super) {
67381
68049
  if (!!this.getQuestionByValueName(key))
67382
68050
  continue;
67383
68051
  if (this.iscorrectValueWithPostPrefix(key, _settings__WEBPACK_IMPORTED_MODULE_14__["settings"].commentSuffix) ||
67384
- this.iscorrectValueWithPostPrefix(key, _settings__WEBPACK_IMPORTED_MODULE_14__["settings"].matrixTotalValuePostFix))
68052
+ this.iscorrectValueWithPostPrefix(key, _settings__WEBPACK_IMPORTED_MODULE_14__["settings"].matrix.totalsSuffix))
67385
68053
  continue;
67386
68054
  var calcValue = this.getCalculatedValueByName(key);
67387
68055
  if (!!calcValue && calcValue.includeIntoResult)
@@ -70515,7 +71183,7 @@ var SurveyModel = /** @class */ (function (_super) {
70515
71183
  this.doComplete(true);
70516
71184
  };
70517
71185
  SurveyModel.prototype.canBeCompleted = function (trigger, isCompleted) {
70518
- if (!_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].changeNavigationButtonsOnCompleteTrigger)
71186
+ if (!_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].triggers.changeNavigationButtonsOnComplete)
70519
71187
  return;
70520
71188
  var prevCanBeCompleted = this.canBeCompletedByTrigger;
70521
71189
  if (!this.completedByTriggers)
@@ -70804,7 +71472,7 @@ var SurveyModel = /** @class */ (function (_super) {
70804
71472
  }
70805
71473
  };
70806
71474
  SurveyModel.prototype.matrixBeforeRowAdded = function (options) {
70807
- this.onMatrixBeforeRowAdded.fire(this, options);
71475
+ this.onMatrixRowAdding.fire(this, options);
70808
71476
  };
70809
71477
  SurveyModel.prototype.matrixRowAdded = function (question, row) {
70810
71478
  this.onMatrixRowAdded.fire(this, { question: question, row: row });
@@ -70850,7 +71518,7 @@ var SurveyModel = /** @class */ (function (_super) {
70850
71518
  row: row,
70851
71519
  allow: true,
70852
71520
  };
70853
- this.onMatrixAllowRemoveRow.fire(this, options);
71521
+ this.onMatrixRenderRemoveButton.fire(this, options);
70854
71522
  return options.allow;
70855
71523
  };
70856
71524
  SurveyModel.prototype.matrixCellCreating = function (question, options) {
@@ -70863,7 +71531,7 @@ var SurveyModel = /** @class */ (function (_super) {
70863
71531
  };
70864
71532
  SurveyModel.prototype.matrixAfterCellRender = function (question, options) {
70865
71533
  options.question = question;
70866
- this.onMatrixAfterCellRender.fire(this, options);
71534
+ this.onAfterRenderMatrixCell.fire(this, options);
70867
71535
  };
70868
71536
  SurveyModel.prototype.matrixCellValueChanged = function (question, options) {
70869
71537
  options.question = question;
@@ -71566,7 +72234,7 @@ var SurveyModel = /** @class */ (function (_super) {
71566
72234
  this.conditionValues = null;
71567
72235
  if (this.isValueChangedOnRunningCondition &&
71568
72236
  this.conditionRunnerCounter <
71569
- _settings__WEBPACK_IMPORTED_MODULE_14__["settings"].maximumConditionRunCountOnValueChanged) {
72237
+ _settings__WEBPACK_IMPORTED_MODULE_14__["settings"].maxConditionRunCountOnValueChanged) {
71570
72238
  this.isValueChangedOnRunningCondition = false;
71571
72239
  this.conditionRunnerCounter++;
71572
72240
  this.runConditions();
@@ -72582,17 +73250,21 @@ var SurveyModel = /** @class */ (function (_super) {
72582
73250
  };
72583
73251
  Object.defineProperty(SurveyModel.prototype, "showTimerPanel", {
72584
73252
  /**
72585
- * Gets or sets a timer panel position. The timer panel displays information about how much time an end user spends on a survey/page.
73253
+ * Displays the timer panel and specifies its position. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
72586
73254
  *
72587
- * The available options:
72588
- * - `top` - display timer panel in the top.
72589
- * - `bottom` - display timer panel in the bottom.
72590
- * - `none` - do not display a timer panel.
73255
+ * Possible values:
72591
73256
  *
72592
- * If the value is not equal to 'none', the survey calls the `startTimer()` method on survey rendering.
72593
- * @see showTimerPanelMode
73257
+ * - `"top"` - Displays the timer panel at the top of the survey.
73258
+ * - `"bottom"` - Displays the timer panel at the bottom of the survey.
73259
+ * - `"none"` (default) - Hides the timer panel.
73260
+ *
73261
+ * If the timer panel is displayed, the timer starts automatically when the survey begins. To specify time limits, use the [`maxTimeToFinish`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#maxTimeToFinish) and [`maxTimeToFinishPage`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#maxTimeToFinishPage) properties.
73262
+ *
73263
+ * The timer panel displays information about time spent on an individual page and the entire survey. If you want to display only the page timer or the survey timer, set the [`showTimerPanelMode`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showTimerPanelMode) property to `"page"` or `"survey"`.
72594
73264
  * @see startTimer
72595
73265
  * @see stopTimer
73266
+ * @see timeSpent
73267
+ * @see onTimer
72596
73268
  */
72597
73269
  get: function () {
72598
73270
  return this.getPropertyValue("showTimerPanel");
@@ -72619,16 +73291,17 @@ var SurveyModel = /** @class */ (function (_super) {
72619
73291
  });
72620
73292
  Object.defineProperty(SurveyModel.prototype, "showTimerPanelMode", {
72621
73293
  /**
72622
- * Gets or set a value that specifies whether the timer displays information for the page or for the entire survey.
73294
+ * Specifies whether the timer panel displays timers for the current page, the entire survey, or both. Applies only if the timer panel is [visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showTimerPanel).
72623
73295
  *
72624
- * The available options:
72625
- *
72626
- * - `page` - show timer information for page
72627
- * - `survey` - show timer information for survey
73296
+ * Possible values:
72628
73297
  *
72629
- * Use the `onTimerPanelInfoText` event to change the default text.
72630
- * @see showTimerPanel
72631
- * @see onTimerPanelInfoText
73298
+ * - `"survey"` - Displays only the survey timer.
73299
+ * - `"page"` - Displays only the page timer.
73300
+ * - `"all"` (default) - Displays both the survey and page timers.
73301
+ * @see timeSpent
73302
+ * @see onTimer
73303
+ * @see startTimer
73304
+ * @see stopTimer
72632
73305
  */
72633
73306
  get: function () {
72634
73307
  return this.getPropertyValue("showTimerPanelMode");
@@ -72837,9 +73510,12 @@ var SurveyModel = /** @class */ (function (_super) {
72837
73510
  configurable: true
72838
73511
  });
72839
73512
  /**
72840
- * Starts a timer that will calculate how much time end-user spends on the survey or on pages.
73513
+ * Starts a timer that calculates how many seconds a respondent has spent on the survey. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
72841
73514
  * @see stopTimer
73515
+ * @see maxTimeToFinish
73516
+ * @see maxTimeToFinishPage
72842
73517
  * @see timeSpent
73518
+ * @see onTimer
72843
73519
  */
72844
73520
  SurveyModel.prototype.startTimer = function () {
72845
73521
  this.timerModel.start();
@@ -72850,18 +73526,26 @@ var SurveyModel = /** @class */ (function (_super) {
72850
73526
  }
72851
73527
  };
72852
73528
  /**
72853
- * Stops the timer.
73529
+ * Stops the timer. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
72854
73530
  * @see startTimer
73531
+ * @see maxTimeToFinish
73532
+ * @see maxTimeToFinishPage
72855
73533
  * @see timeSpent
73534
+ * @see onTimer
72856
73535
  */
72857
73536
  SurveyModel.prototype.stopTimer = function () {
72858
73537
  this.timerModel.stop();
72859
73538
  };
72860
73539
  Object.defineProperty(SurveyModel.prototype, "timeSpent", {
72861
73540
  /**
72862
- * Gets or set the time in seconds an end user spends on the survey.
73541
+ * A time period that a respondent has spent on the survey so far; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
73542
+ *
73543
+ * Assign a number to this property if you need to start the quiz timer from a specific time (for instance, if you want to continue an interrupted quiz).
73544
+ *
73545
+ * You can also find out how many seconds a respondent has spent on an individual survey page. To do this, use the [`timeSpent`](https://surveyjs.io/form-library/documentation/api-reference/page-model#timeSpent) property of a [`PageModel`](https://surveyjs.io/form-library/documentation/api-reference/page-model) object.
73546
+ * @see maxTimeToFinish
73547
+ * @see maxTimeToFinishPage
72863
73548
  * @see startTimer
72864
- * @see PageModel.timeSpent
72865
73549
  */
72866
73550
  get: function () { return this.timerModel.spent; },
72867
73551
  set: function (val) { this.timerModel.spent = val; },
@@ -72870,9 +73554,14 @@ var SurveyModel = /** @class */ (function (_super) {
72870
73554
  });
72871
73555
  Object.defineProperty(SurveyModel.prototype, "maxTimeToFinish", {
72872
73556
  /**
72873
- * Gets or sets the maximum time in seconds that end user has to complete a survey. If the value is 0 or less, an end user has no time limit to finish a survey.
72874
- * @see startTimer
73557
+ * A time period that a respondent has to complete the survey; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
73558
+ *
73559
+ * A negative value or 0 sets an unlimited time period.
73560
+ *
73561
+ * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
72875
73562
  * @see maxTimeToFinishPage
73563
+ * @see startTimer
73564
+ * @see timeSpent
72876
73565
  */
72877
73566
  get: function () {
72878
73567
  return this.getPropertyValue("maxTimeToFinish", 0);
@@ -72885,12 +73574,16 @@ var SurveyModel = /** @class */ (function (_super) {
72885
73574
  });
72886
73575
  Object.defineProperty(SurveyModel.prototype, "maxTimeToFinishPage", {
72887
73576
  /**
72888
- * Gets or sets the maximum time in seconds that end user has to complete a page in the survey. If the value is 0 or less, an end user has no time limit.
73577
+ * A time period that a respondent has to complete each survey page; measured in seconds. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
72889
73578
  *
72890
- * You may override this value for every page.
72891
- * @see startTimer
73579
+ * A negative value or 0 sets an unlimited time period.
73580
+ *
73581
+ * You can also use `PageModel`'s [`maxTimeToFinish`](https://surveyjs.io/form-library/documentation/api-reference/page-model#maxTimeToFinish) property to specify a time period for an individual survey page.
73582
+ *
73583
+ * [View Demo](https://surveyjs.io/form-library/examples/make-quiz-javascript/ (linkStyle))
72892
73584
  * @see maxTimeToFinish
72893
- * @see PageModel.maxTimeToFinish
73585
+ * @see startTimer
73586
+ * @see timeSpent
72894
73587
  */
72895
73588
  get: function () {
72896
73589
  return this.getPropertyValue("maxTimeToFinishPage", 0);
@@ -74771,7 +75464,7 @@ var SurveyTriggerComplete = /** @class */ (function (_super) {
74771
75464
  return "completetrigger";
74772
75465
  };
74773
75466
  SurveyTriggerComplete.prototype.isRealExecution = function () {
74774
- return !_settings__WEBPACK_IMPORTED_MODULE_6__["settings"].executeCompleteTriggerOnValueChanged === this.isExecutingOnNextPage;
75467
+ return !_settings__WEBPACK_IMPORTED_MODULE_6__["settings"].triggers.executeCompleteOnValueChanged === this.isExecutingOnNextPage;
74775
75468
  };
74776
75469
  SurveyTriggerComplete.prototype.onSuccess = function (values, properties) {
74777
75470
  if (!this.owner)
@@ -74872,7 +75565,7 @@ var SurveyTriggerSkip = /** @class */ (function (_super) {
74872
75565
  configurable: true
74873
75566
  });
74874
75567
  SurveyTriggerSkip.prototype.canBeExecuted = function (isOnNextPage) {
74875
- return isOnNextPage === !_settings__WEBPACK_IMPORTED_MODULE_6__["settings"].executeSkipTriggerOnValueChanged;
75568
+ return isOnNextPage === !_settings__WEBPACK_IMPORTED_MODULE_6__["settings"].triggers.executeSkipOnValueChanged;
74876
75569
  };
74877
75570
  SurveyTriggerSkip.prototype.onSuccess = function (values, properties) {
74878
75571
  if (!this.gotoName || !this.owner)
@@ -75399,9 +76092,8 @@ var ResponsivityManager = /** @class */ (function () {
75399
76092
  ResponsivityManager.prototype.calcItemsSizes = function () {
75400
76093
  var _this = this;
75401
76094
  var actions = this.model.actions;
75402
- this.container
75403
- .querySelectorAll(this.itemsSelector)
75404
- .forEach(function (item, index) {
76095
+ var _items = this.container.querySelectorAll(this.itemsSelector);
76096
+ (_items || []).forEach(function (item, index) {
75405
76097
  var currentAction = actions[index];
75406
76098
  _this.calcActionDimensions(currentAction, item);
75407
76099
  });
@@ -75514,7 +76206,7 @@ var TooltipManager = /** @class */ (function () {
75514
76206
  /*!****************************!*\
75515
76207
  !*** ./src/utils/utils.ts ***!
75516
76208
  \****************************/
75517
- /*! exports provided: unwrap, getSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames */
76209
+ /*! exports provided: unwrap, getSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild */
75518
76210
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
75519
76211
 
75520
76212
  "use strict";
@@ -75548,6 +76240,7 @@ __webpack_require__.r(__webpack_exports__);
75548
76240
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOriginalEvent", function() { return getOriginalEvent; });
75549
76241
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "preventDefaults", function() { return preventDefaults; });
75550
76242
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findParentByClassNames", function() { return findParentByClassNames; });
76243
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFirstVisibleChild", function() { return getFirstVisibleChild; });
75551
76244
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../settings */ "./src/settings.ts");
75552
76245
 
75553
76246
  function compareVersions(a, b) {
@@ -75812,6 +76505,15 @@ function isContainerVisible(el) {
75812
76505
  el.offsetHeight ||
75813
76506
  el.getClientRects().length);
75814
76507
  }
76508
+ function getFirstVisibleChild(el) {
76509
+ var result;
76510
+ for (var index = 0; index < el.children.length; index++) {
76511
+ if (!result && getComputedStyle(el.children[index]).display !== "none") {
76512
+ result = el.children[index];
76513
+ }
76514
+ }
76515
+ return result;
76516
+ }
75815
76517
  function findParentByClassNames(element, classNames) {
75816
76518
  if (!!element) {
75817
76519
  if (classNames.every(function (className) { return !className || element.classList.contains(className); })) {