survey-react 1.9.85 → 1.9.87

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.85
2
+ * surveyjs - Survey JavaScript library v1.9.87
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
  */
@@ -2578,6 +2578,9 @@ var Base = /** @class */ (function () {
2578
2578
  if (defaultValue === void 0) { defaultValue = null; }
2579
2579
  var res = this.getPropertyValueCore(this.propertyHash, name);
2580
2580
  if (this.isPropertyEmpty(res)) {
2581
+ var locStr = this.localizableStrings ? this.localizableStrings[name] : undefined;
2582
+ if (locStr)
2583
+ return locStr.text;
2581
2584
  if (defaultValue != null)
2582
2585
  return defaultValue;
2583
2586
  var propDefaultValue = this.getDefaultValueFromProperty(name);
@@ -5560,7 +5563,11 @@ var defaultStandardCss = {
5560
5563
  controlValue: "sv_q_tagbox__value sv_q_dropdown__value",
5561
5564
  controlEmpty: "sv_q_dropdown--empty sv_q_tagbox--empty",
5562
5565
  placeholderInput: "sv_q_tagbox__placeholder",
5563
- filterStringInput: "sv_q_tagbox__filter-string-input sv_q_dropdown__filter-string-input"
5566
+ filterStringInput: "sv_q_tagbox__filter-string-input sv_q_dropdown__filter-string-input",
5567
+ hint: "sv_q_tagbox__hint",
5568
+ hintPrefix: "sv_q_dropdown__hint-prefix sv_q_tagbox__hint-prefix",
5569
+ hintSuffix: "sv_q_dropdown__hint-suffix sv_q_tagbox__hint-suffix",
5570
+ hintSuffixWrapper: "sv_q_tagbox__hint-suffix-wrapper"
5564
5571
  },
5565
5572
  };
5566
5573
  _defaultV2Css__WEBPACK_IMPORTED_MODULE_0__["surveyCss"]["default"] = defaultStandardCss;
@@ -6048,6 +6055,7 @@ var defaultV2Css = {
6048
6055
  itemStarDisabled: "sd-rating__item-star--disabled",
6049
6056
  itemStarHighlighted: "sd-rating__item-star--highlighted",
6050
6057
  itemStarUnhighlighted: "sd-rating__item-star--unhighlighted",
6058
+ itemStarSmall: "sd-rating__item-star--small",
6051
6059
  itemSmiley: "sd-rating__item-smiley",
6052
6060
  itemSmileyOnError: "sd-rating__item-smiley--error",
6053
6061
  itemSmileyHover: "sd-rating__item-smiley--allowhover",
@@ -6056,12 +6064,14 @@ var defaultV2Css = {
6056
6064
  itemSmileyHighlighted: "sd-rating__item-star--highlighted",
6057
6065
  itemSmileyScaleColored: "sd-rating__item-smiley--scale-colored",
6058
6066
  itemSmileyRateColored: "sd-rating__item-smiley--rate-colored",
6067
+ itemSmileySmall: "sd-rating__item-smiley--small",
6059
6068
  minText: "sd-rating__item-text sd-rating__min-text",
6060
6069
  itemText: "sd-rating__item-text",
6061
6070
  maxText: "sd-rating__item-text sd-rating__max-text",
6062
6071
  itemDisabled: "sd-rating__item--disabled",
6063
6072
  itemFixedSize: "sd-rating__item--fixed-size",
6064
6073
  control: "sd-input sd-dropdown",
6074
+ itemSmall: "sd-rating--small",
6065
6075
  controlValue: "sd-dropdown__value",
6066
6076
  controlDisabled: "sd-input--disabled",
6067
6077
  controlEmpty: "sd-dropdown--empty",
@@ -6228,7 +6238,11 @@ var defaultV2Css = {
6228
6238
  controlEmpty: "sd-dropdown--empty sd-tagbox--empty",
6229
6239
  controlLabel: "sd-item__control-label",
6230
6240
  filterStringInput: "sd-tagbox__filter-string-input sd-dropdown__filter-string-input",
6231
- materialDecorator: "sd-item__decorator sd-checkbox__decorator"
6241
+ materialDecorator: "sd-item__decorator sd-checkbox__decorator",
6242
+ hint: "sd-tagbox__hint",
6243
+ hintPrefix: "sd-dropdown__hint-prefix sd-tagbox__hint-prefix",
6244
+ hintSuffix: "sd-dropdown__hint-suffix sd-tagbox__hint-suffix",
6245
+ hintSuffixWrapper: "sd-tagbox__hint-suffix-wrapper"
6232
6246
  },
6233
6247
  };
6234
6248
  var defaultV2ThemeName = "defaultV2";
@@ -6898,6 +6912,7 @@ __webpack_require__.r(__webpack_exports__);
6898
6912
  /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../jsonobject */ "./src/jsonobject.ts");
6899
6913
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/utils */ "./src/utils/utils.ts");
6900
6914
  /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/devices */ "./src/utils/devices.ts");
6915
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../settings */ "./src/settings.ts");
6901
6916
  var __extends = (undefined && undefined.__extends) || (function () {
6902
6917
  var extendStatics = function (d, b) {
6903
6918
  extendStatics = Object.setPrototypeOf ||
@@ -6923,6 +6938,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
6923
6938
 
6924
6939
 
6925
6940
 
6941
+
6926
6942
  // WebKit requires cancelable `touchmove` events to be added as early as possible
6927
6943
  // see https://bugs.webkit.org/show_bug.cgi?id=184250
6928
6944
  if (typeof window !== "undefined") {
@@ -7032,7 +7048,7 @@ var DragDropCore = /** @class */ (function (_super) {
7032
7048
  if (_utils_devices__WEBPACK_IMPORTED_MODULE_3__["IsTouch"]) {
7033
7049
  _this.draggedElementShortcut.removeEventListener("contextmenu", _this.onContextMenu);
7034
7050
  }
7035
- document.body.removeChild(_this.draggedElementShortcut);
7051
+ _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.rootElement.removeChild(_this.draggedElementShortcut);
7036
7052
  _this.doClear();
7037
7053
  _this.dropTarget = null;
7038
7054
  _this.draggedElementShortcut = null;
@@ -7041,7 +7057,7 @@ var DragDropCore = /** @class */ (function (_super) {
7041
7057
  _this.parentElement = null;
7042
7058
  _this.scrollIntervalId = null;
7043
7059
  if (_utils_devices__WEBPACK_IMPORTED_MODULE_3__["IsTouch"]) {
7044
- _this.savedTargetNode && document.body.removeChild(_this.savedTargetNode);
7060
+ _this.savedTargetNode && _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.rootElement.removeChild(_this.savedTargetNode);
7045
7061
  DragDropCore.PreventScrolling = false;
7046
7062
  }
7047
7063
  document.body.style.setProperty("touch-action", "");
@@ -7089,7 +7105,7 @@ var DragDropCore = /** @class */ (function (_super) {
7089
7105
  _this.savedTargetNode = event.target;
7090
7106
  _this.savedTargetNode.style.cssText =
7091
7107
  "\n position: absolute;\n height: 1px!important;\n width: 1px!important;\n overflow: hidden;\n clip: rect(1px 1px 1px 1px);\n clip: rect(1px, 1px, 1px, 1px);\n ";
7092
- document.body.appendChild(_this.savedTargetNode);
7108
+ _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.rootElement.appendChild(_this.savedTargetNode);
7093
7109
  }
7094
7110
  _this.stopLongTap();
7095
7111
  }, this.longTap ? 500 : 0);
@@ -7168,8 +7184,8 @@ var DragDropCore = /** @class */ (function (_super) {
7168
7184
  shortcutXOffset = shortcutWidth / 2;
7169
7185
  shortcutYOffset = shortcutHeight / 2;
7170
7186
  }
7171
- var documentBottom = document.documentElement.clientHeight;
7172
- var documentRight = document.documentElement.clientWidth;
7187
+ var documentBottom = (Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["isShadowDOM"])(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root) ? _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root.host : _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root.documentElement).clientHeight;
7188
+ var documentRight = (Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["isShadowDOM"])(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root) ? _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root.host : _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root.documentElement).clientWidth;
7173
7189
  var shortcutBottomCoordinate = this.getShortcutBottomCoordinate(event.clientY, shortcutHeight, shortcutYOffset);
7174
7190
  var shortcutRightCoordinate = this.getShortcutRightCoordinate(event.clientX, shortcutWidth, shortcutXOffset);
7175
7191
  if (shortcutRightCoordinate >= documentRight) {
@@ -7643,6 +7659,7 @@ __webpack_require__.r(__webpack_exports__);
7643
7659
  /* harmony import */ var _survey_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../survey-element */ "./src/survey-element.ts");
7644
7660
  /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../jsonobject */ "./src/jsonobject.ts");
7645
7661
  /* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./core */ "./src/dragdrop/core.ts");
7662
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../settings */ "./src/settings.ts");
7646
7663
  var __extends = (undefined && undefined.__extends) || (function () {
7647
7664
  var extendStatics = function (d, b) {
7648
7665
  extendStatics = Object.setPrototypeOf ||
@@ -7661,6 +7678,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
7661
7678
 
7662
7679
 
7663
7680
 
7681
+
7664
7682
  var DragDropSurveyElements = /** @class */ (function (_super) {
7665
7683
  __extends(DragDropSurveyElements, _super);
7666
7684
  function DragDropSurveyElements() {
@@ -7675,7 +7693,7 @@ var DragDropSurveyElements = /** @class */ (function (_super) {
7675
7693
  };
7676
7694
  _this.doDrop = function () {
7677
7695
  if (_this.dropTarget) {
7678
- document.activeElement.blur();
7696
+ _settings__WEBPACK_IMPORTED_MODULE_3__["settings"].environment.root.activeElement.blur();
7679
7697
  return _this.insertRealElementIntoSurvey();
7680
7698
  }
7681
7699
  return null;
@@ -8309,12 +8327,18 @@ var DropdownListModel = /** @class */ (function (_super) {
8309
8327
  if (hasHtml || this.question.inputFieldComponentName) {
8310
8328
  this._markdownMode = true;
8311
8329
  this.inputString = "";
8330
+ this.hintString = "";
8312
8331
  }
8313
8332
  else {
8314
8333
  this.inputString = item === null || item === void 0 ? void 0 : item.title;
8315
8334
  this.hintString = item === null || item === void 0 ? void 0 : item.title;
8316
8335
  }
8317
8336
  };
8337
+ DropdownListModel.prototype.fixInputCase = function () {
8338
+ var hintStringMiddle = this.hintStringMiddle;
8339
+ if (hintStringMiddle && this.inputString != hintStringMiddle)
8340
+ this.inputString = hintStringMiddle;
8341
+ };
8318
8342
  DropdownListModel.prototype.applyHintString = function (item) {
8319
8343
  var hasHtml = item === null || item === void 0 ? void 0 : item.locText.hasHtml;
8320
8344
  if (hasHtml || this.question.inputFieldComponentName) {
@@ -8327,10 +8351,10 @@ var DropdownListModel = /** @class */ (function (_super) {
8327
8351
  };
8328
8352
  Object.defineProperty(DropdownListModel.prototype, "inputStringRendered", {
8329
8353
  get: function () {
8330
- return this.getPropertyValue("inputString") || "";
8354
+ return this.inputString || "";
8331
8355
  },
8332
8356
  set: function (val) {
8333
- this.setPropertyValue("inputString", val);
8357
+ this.inputString = val;
8334
8358
  this.filterString = val;
8335
8359
  this.applyHintString(this.listModel.focusedItem);
8336
8360
  },
@@ -8398,6 +8422,16 @@ var DropdownListModel = /** @class */ (function (_super) {
8398
8422
  enumerable: false,
8399
8423
  configurable: true
8400
8424
  });
8425
+ Object.defineProperty(DropdownListModel.prototype, "hintStringMiddle", {
8426
+ get: function () {
8427
+ var start = this.hintStringLC.indexOf(this.inputStringLC);
8428
+ if (start == -1)
8429
+ return null;
8430
+ return this.hintString.substring(start, start + this.inputStringLC.length);
8431
+ },
8432
+ enumerable: false,
8433
+ configurable: true
8434
+ });
8401
8435
  Object.defineProperty(DropdownListModel.prototype, "popupModel", {
8402
8436
  get: function () {
8403
8437
  return this._popupModel;
@@ -8436,8 +8470,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8436
8470
  };
8437
8471
  DropdownListModel.prototype.onClick = function (event) {
8438
8472
  this._popupModel.toggleVisibility();
8439
- if (this._popupModel.isVisible && this.question.value && this.question instanceof _question_dropdown__WEBPACK_IMPORTED_MODULE_4__["QuestionDropdownModel"])
8440
- this.changeSelectionWithKeyboard(false);
8473
+ this.focusItemOnClickAndPopup();
8441
8474
  if (this.searchEnabled && !!event && !!event.target) {
8442
8475
  var input = event.target.querySelector("input");
8443
8476
  if (!!input) {
@@ -8445,8 +8478,13 @@ var DropdownListModel = /** @class */ (function (_super) {
8445
8478
  }
8446
8479
  }
8447
8480
  };
8481
+ DropdownListModel.prototype.focusItemOnClickAndPopup = function () {
8482
+ if (this._popupModel.isVisible && this.question.value)
8483
+ this.changeSelectionWithKeyboard(false);
8484
+ };
8448
8485
  DropdownListModel.prototype.onClear = function (event) {
8449
8486
  this.question.clearValue();
8487
+ this._popupModel.isVisible = false;
8450
8488
  if (event) {
8451
8489
  event.preventDefault();
8452
8490
  event.stopPropagation();
@@ -8464,18 +8502,27 @@ var DropdownListModel = /** @class */ (function (_super) {
8464
8502
  else {
8465
8503
  this.listModel.focusNextVisibleItem();
8466
8504
  }
8467
- if (this.question.value && focusedItem && this.question instanceof _question_dropdown__WEBPACK_IMPORTED_MODULE_4__["QuestionDropdownModel"]) {
8505
+ this.beforeScrollToFocusedItem(focusedItem);
8506
+ this.scrollToFocusedItem();
8507
+ this.afterScrollToFocusedItem();
8508
+ this.ariaActivedescendant = (_a = this.listModel.focusedItem) === null || _a === void 0 ? void 0 : _a.elementId;
8509
+ };
8510
+ DropdownListModel.prototype.beforeScrollToFocusedItem = function (focusedItem) {
8511
+ if (this.question.value && focusedItem) {
8468
8512
  focusedItem.selectedValue = false;
8469
8513
  this.listModel.focusedItem.selectedValue = !this.listModel.filterString;
8470
8514
  this.question.suggestedItem = this.listModel.focusedItem;
8471
8515
  }
8472
- this.scrollToFocusedItem();
8473
- if (this.question.value && !this.listModel.filterString && this.question.searchEnabled && this.question instanceof _question_dropdown__WEBPACK_IMPORTED_MODULE_4__["QuestionDropdownModel"]) {
8474
- this.applyInputString(this.listModel.focusedItem);
8516
+ };
8517
+ DropdownListModel.prototype.afterScrollToFocusedItem = function () {
8518
+ var _a;
8519
+ if (this.question.value && !this.listModel.filterString && this.question.searchEnabled) {
8520
+ this.applyInputString(this.listModel.focusedItem || this.question.selectedItem);
8475
8521
  }
8476
8522
  else {
8477
- this.applyHintString(this.listModel.focusedItem);
8523
+ this.applyHintString(this.listModel.focusedItem || this.question.selectedItem);
8478
8524
  }
8525
+ this.fixInputCase();
8479
8526
  this.ariaActivedescendant = (_a = this.listModel.focusedItem) === null || _a === void 0 ? void 0 : _a.elementId;
8480
8527
  };
8481
8528
  DropdownListModel.prototype.keyHandler = function (event) {
@@ -8499,7 +8546,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8499
8546
  event.preventDefault();
8500
8547
  event.stopPropagation();
8501
8548
  }
8502
- else if (this.popupModel.isVisible && (event.keyCode === 13 || event.keyCode === 32 && !this.question.searchEnabled)) {
8549
+ else if (this.popupModel.isVisible && (event.keyCode === 13 || event.keyCode === 32 && (!this.question.searchEnabled || !this.inputString))) {
8503
8550
  if (event.keyCode === 13 && this.question.searchEnabled && !this.inputString && this.question instanceof _question_dropdown__WEBPACK_IMPORTED_MODULE_4__["QuestionDropdownModel"] && !this._markdownMode && this.question.value) {
8504
8551
  this._popupModel.isVisible = false;
8505
8552
  this.onClear(event);
@@ -8521,8 +8568,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8521
8568
  else if (event.keyCode === 27) {
8522
8569
  this._popupModel.isVisible = false;
8523
8570
  this.hintString = "";
8524
- if (this.question.searchEnabled && this.question instanceof _question_dropdown__WEBPACK_IMPORTED_MODULE_4__["QuestionDropdownModel"])
8525
- this.applyInputString(this.question.selectedItem);
8571
+ this.onEscape();
8526
8572
  }
8527
8573
  else {
8528
8574
  if (event.keyCode === 38 || event.keyCode === 40 || event.keyCode === 32 && !this.question.searchEnabled) {
@@ -8535,6 +8581,10 @@ var DropdownListModel = /** @class */ (function (_super) {
8535
8581
  Object(_utils_utils__WEBPACK_IMPORTED_MODULE_7__["doKey2ClickUp"])(event, { processEsc: false, disableTabStop: this.question.isInputReadOnly });
8536
8582
  }
8537
8583
  };
8584
+ DropdownListModel.prototype.onEscape = function () {
8585
+ if (this.question.searchEnabled)
8586
+ this.applyInputString(this.question.selectedItem);
8587
+ };
8538
8588
  DropdownListModel.prototype.onScroll = function (event) {
8539
8589
  var target = event.target;
8540
8590
  if ((target.scrollHeight - (target.scrollTop + target.offsetHeight)) <= this.loadingItemHeight) {
@@ -8690,7 +8740,7 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
8690
8740
  };
8691
8741
  DropdownMultiSelectListModel.prototype.syncFilterStringPlaceholder = function () {
8692
8742
  var selectedActions = this.getSelectedActions();
8693
- if (selectedActions.length || this.question.selectedItems.length) {
8743
+ if (selectedActions.length || this.question.selectedItems.length || this.listModel.focusedItem) {
8694
8744
  this.filterStringPlaceholder = undefined;
8695
8745
  }
8696
8746
  else {
@@ -8738,6 +8788,7 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
8738
8788
  DropdownMultiSelectListModel.prototype.resetFilterString = function () {
8739
8789
  _super.prototype.resetFilterString.call(this);
8740
8790
  this.inputString = null;
8791
+ this.hintString = "";
8741
8792
  };
8742
8793
  Object.defineProperty(DropdownMultiSelectListModel.prototype, "shouldResetAfterCancel", {
8743
8794
  get: function () {
@@ -8791,6 +8842,7 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
8791
8842
  var newValue = [].concat(this.question.renderedValue || []);
8792
8843
  newValue.splice(newValue.indexOf(id), 1);
8793
8844
  this.question.renderedValue = newValue;
8845
+ this.applyHintString(this.listModel.focusedItem);
8794
8846
  this.updateListState();
8795
8847
  };
8796
8848
  DropdownMultiSelectListModel.prototype.clear = function () {
@@ -8821,6 +8873,25 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
8821
8873
  this.inputString = null;
8822
8874
  }
8823
8875
  };
8876
+ DropdownMultiSelectListModel.prototype.focusItemOnClickAndPopup = function () {
8877
+ return;
8878
+ };
8879
+ DropdownMultiSelectListModel.prototype.onEscape = function () {
8880
+ return;
8881
+ };
8882
+ DropdownMultiSelectListModel.prototype.beforeScrollToFocusedItem = function (focusedItem) {
8883
+ return;
8884
+ };
8885
+ DropdownMultiSelectListModel.prototype.afterScrollToFocusedItem = function () {
8886
+ var _a;
8887
+ if (!((_a = this.listModel.focusedItem) === null || _a === void 0 ? void 0 : _a.selected)) {
8888
+ this.applyHintString(this.listModel.focusedItem || this.question.selectedItem);
8889
+ }
8890
+ else {
8891
+ this.hintString = "";
8892
+ }
8893
+ this.syncFilterStringPlaceholder();
8894
+ };
8824
8895
  __decorate([
8825
8896
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])({ defaultValue: "" })
8826
8897
  ], DropdownMultiSelectListModel.prototype, "filterStringPlaceholder", void 0);
@@ -9588,7 +9659,7 @@ __webpack_require__.r(__webpack_exports__);
9588
9659
  // import "../../main.scss";
9589
9660
  //import "../../modern.scss";
9590
9661
  var Version;
9591
- Version = "" + "1.9.85";
9662
+ Version = "" + "1.9.87";
9592
9663
  function checkLibraryVersion(ver, libraryName) {
9593
9664
  if (Version != ver) {
9594
9665
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9693,7 +9764,7 @@ function checkLibraryVersion(ver, libraryName) {
9693
9764
  /*!**************************************!*\
9694
9765
  !*** ./src/entries/core-wo-model.ts ***!
9695
9766
  \**************************************/
9696
- /*! 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, 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, DragDropSurveyElements, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper */
9767
+ /*! 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, 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, DragDropSurveyElements, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper */
9697
9768
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9698
9769
 
9699
9770
  "use strict";
@@ -10077,6 +10148,8 @@ __webpack_require__.r(__webpack_exports__);
10077
10148
 
10078
10149
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOriginalEvent", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_6__["getOriginalEvent"]; });
10079
10150
 
10151
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getElement", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_6__["getElement"]; });
10152
+
10080
10153
  /* harmony import */ var _actions_action__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../actions/action */ "./src/actions/action.ts");
10081
10154
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createDropdownActionModel", function() { return _actions_action__WEBPACK_IMPORTED_MODULE_7__["createDropdownActionModel"]; });
10082
10155
 
@@ -10126,7 +10199,7 @@ __webpack_require__.r(__webpack_exports__);
10126
10199
  /*!*****************************!*\
10127
10200
  !*** ./src/entries/core.ts ***!
10128
10201
  \*****************************/
10129
- /*! 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, 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, DragDropSurveyElements, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model */
10202
+ /*! 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, 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, DragDropSurveyElements, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model */
10130
10203
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10131
10204
 
10132
10205
  "use strict";
@@ -10504,6 +10577,8 @@ __webpack_require__.r(__webpack_exports__);
10504
10577
 
10505
10578
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOriginalEvent", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["getOriginalEvent"]; });
10506
10579
 
10580
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getElement", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["getElement"]; });
10581
+
10507
10582
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createDropdownActionModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["createDropdownActionModel"]; });
10508
10583
 
10509
10584
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createDropdownActionModelAdvanced", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["createDropdownActionModelAdvanced"]; });
@@ -10919,7 +10994,7 @@ __webpack_require__.r(__webpack_exports__);
10919
10994
  /*!******************************!*\
10920
10995
  !*** ./src/entries/react.ts ***!
10921
10996
  \******************************/
10922
- /*! 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, 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, DragDropSurveyElements, DragDropChoices, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, 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 */
10997
+ /*! 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, 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, DragDropSurveyElements, 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 */
10923
10998
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10924
10999
 
10925
11000
  "use strict";
@@ -11297,6 +11372,8 @@ __webpack_require__.r(__webpack_exports__);
11297
11372
 
11298
11373
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOriginalEvent", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["getOriginalEvent"]; });
11299
11374
 
11375
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getElement", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["getElement"]; });
11376
+
11300
11377
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createDropdownActionModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["createDropdownActionModel"]; });
11301
11378
 
11302
11379
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createDropdownActionModelAdvanced", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["createDropdownActionModelAdvanced"]; });
@@ -16722,6 +16799,8 @@ var map = {
16722
16799
  "./expandDetail.svg": "./src/images/expandDetail.svg",
16723
16800
  "./no-image.svg": "./src/images/no-image.svg",
16724
16801
  "./rating-star-2.svg": "./src/images/rating-star-2.svg",
16802
+ "./rating-star-small-2.svg": "./src/images/rating-star-small-2.svg",
16803
+ "./rating-star-small.svg": "./src/images/rating-star-small.svg",
16725
16804
  "./rating-star.svg": "./src/images/rating-star.svg",
16726
16805
  "./search.svg": "./src/images/search.svg"
16727
16806
  };
@@ -17078,6 +17157,28 @@ module.exports = "<svg viewBox=\"0 0 48 48\" xmlns=\"http://www.w3.org/2000/svg\
17078
17157
 
17079
17158
  /***/ }),
17080
17159
 
17160
+ /***/ "./src/images/rating-star-small-2.svg":
17161
+ /*!********************************************!*\
17162
+ !*** ./src/images/rating-star-small-2.svg ***!
17163
+ \********************************************/
17164
+ /*! no static exports found */
17165
+ /***/ (function(module, exports) {
17166
+
17167
+ module.exports = "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 19.3373L6.13001 22.4373C5.50001 22.7673 4.77001 22.2373 4.89001 21.5373L6.01001 14.9773L1.26001 10.3273C0.750007 9.83728 1.03001 8.96728 1.73001 8.86728L8.29001 7.90728L11.23 1.93728C11.54 1.29728 12.45 1.29728 12.77 1.93728L15.7 7.90728L22.26 8.86728C22.96 8.96728 23.24 9.83728 22.73 10.3273L17.98 14.9773L19.1 21.5373C19.22 22.2373 18.49 22.7773 17.86 22.4373L11.99 19.3373H12Z\" fill=\"none\" stroke-width=\"2\"></path><path d=\"M12 15.9472L8.58001 17.7572L9.23001 13.9272L6.45001 11.2072L10.29 10.6472L12 7.17725L13.71 10.6472L17.55 11.2072L14.77 13.9272L15.42 17.7572L12 15.9472Z\"></path></svg>"
17168
+
17169
+ /***/ }),
17170
+
17171
+ /***/ "./src/images/rating-star-small.svg":
17172
+ /*!******************************************!*\
17173
+ !*** ./src/images/rating-star-small.svg ***!
17174
+ \******************************************/
17175
+ /*! no static exports found */
17176
+ /***/ (function(module, exports) {
17177
+
17178
+ module.exports = "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><g><path d=\"M12 19.3373L6.13001 22.4373C5.50001 22.7673 4.77001 22.2373 4.89001 21.5373L6.01001 14.9773L1.26001 10.3273C0.750007 9.83728 1.03001 8.96728 1.73001 8.86728L8.29001 7.90728L11.23 1.93728C11.54 1.29728 12.45 1.29728 12.77 1.93728L15.7 7.90728L22.26 8.86728C22.96 8.96728 23.24 9.83728 22.73 10.3273L17.98 14.9773L19.1 21.5373C19.22 22.2373 18.49 22.7773 17.86 22.4373L11.99 19.3373H12Z\" stroke-width=\"2\"></path></g></svg>"
17179
+
17180
+ /***/ }),
17181
+
17081
17182
  /***/ "./src/images/rating-star.svg":
17082
17183
  /*!************************************!*\
17083
17184
  !*** ./src/images/rating-star.svg ***!
@@ -19708,10 +19809,10 @@ var ListModel = /** @class */ (function (_super) {
19708
19809
  });
19709
19810
  ListModel.prototype.onFilterStringChanged = function (text) {
19710
19811
  var _this = this;
19711
- this.isEmpty = this.renderedActions.filter(function (action) { return _this.isItemVisible(action); }).length === 0;
19712
19812
  if (!!this.onFilterStringChangedCallback) {
19713
19813
  this.onFilterStringChangedCallback(text);
19714
19814
  }
19815
+ this.isEmpty = this.renderedActions.filter(function (action) { return _this.isItemVisible(action); }).length === 0;
19715
19816
  };
19716
19817
  ListModel.prototype.scrollToItem = function (selector, ms) {
19717
19818
  var _this = this;
@@ -20161,9 +20262,7 @@ var LocalizableString = /** @class */ (function () {
20161
20262
  return res;
20162
20263
  };
20163
20264
  LocalizableString.prototype.setLocaleText = function (loc, value) {
20164
- if (this.disableLocalization) {
20165
- loc = _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].defaultLocaleName;
20166
- }
20265
+ loc = this.getValueLoc(loc);
20167
20266
  if (!this.storeDefaultText && value == this.getLocaleTextWithDefault(loc)) {
20168
20267
  if (!!value || !!loc && loc !== this.defaultLoc)
20169
20268
  return;
@@ -20368,19 +20467,24 @@ var LocalizableString = /** @class */ (function () {
20368
20467
  LocalizableString.prototype.getValue = function (loc) {
20369
20468
  if (!!this.sharedData)
20370
20469
  return this.sharedData.getValue(loc);
20371
- return this.values[loc];
20470
+ return this.values[this.getValueLoc(loc)];
20372
20471
  };
20373
20472
  LocalizableString.prototype.setValue = function (loc, value) {
20374
20473
  if (!!this.sharedData)
20375
20474
  this.sharedData.setValue(loc, value);
20376
20475
  else
20377
- this.values[loc] = value;
20476
+ this.values[this.getValueLoc(loc)] = value;
20378
20477
  };
20379
20478
  LocalizableString.prototype.deleteValue = function (loc) {
20380
20479
  if (!!this.sharedData)
20381
20480
  this.sharedData.deleteValue(loc);
20382
20481
  else
20383
- delete this.values[loc];
20482
+ delete this.values[this.getValueLoc(loc)];
20483
+ };
20484
+ LocalizableString.prototype.getValueLoc = function (loc) {
20485
+ if (this.disableLocalization)
20486
+ return _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].defaultLocaleName;
20487
+ return loc;
20384
20488
  };
20385
20489
  LocalizableString.prototype.getValuesKeys = function () {
20386
20490
  if (!!this.sharedData)
@@ -27010,8 +27114,11 @@ var QuestionRowModel = /** @class */ (function (_super) {
27010
27114
  el.renderWidth = this.getRenderedWidthFromWidth(width);
27011
27115
  preSetWidthElements.push(el);
27012
27116
  }
27013
- if (!(this.panel.isDefaultV2Theme || ((_a = this.panel.parentQuestion) === null || _a === void 0 ? void 0 : _a.isDefaultV2Theme))) {
27014
- el.rightIndent = counter < visCount - 1 ? 1 : 0;
27117
+ if (counter < visCount - 1 && !(this.panel.isDefaultV2Theme || ((_a = this.panel.parentQuestion) === null || _a === void 0 ? void 0 : _a.isDefaultV2Theme))) {
27118
+ el.rightIndent = 1;
27119
+ }
27120
+ else {
27121
+ el.rightIndent = 0;
27015
27122
  }
27016
27123
  counter++;
27017
27124
  }
@@ -28801,8 +28908,19 @@ var PanelModel = /** @class */ (function (_super) {
28801
28908
  enumerable: false,
28802
28909
  configurable: true
28803
28910
  });
28911
+ Object.defineProperty(PanelModel.prototype, "showErrorsAbovePanel", {
28912
+ get: function () {
28913
+ return this.isDefaultV2Theme;
28914
+ },
28915
+ enumerable: false,
28916
+ configurable: true
28917
+ });
28804
28918
  PanelModel.prototype.getCssError = function (cssClasses) {
28805
- var builder = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__["CssClassBuilder"]().append(this.cssClasses.error.root);
28919
+ var isDefaultV2Theme = this.isDefaultV2Theme;
28920
+ var builder = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__["CssClassBuilder"]()
28921
+ .append(this.cssClasses.error.root)
28922
+ .append(this.cssClasses.error.outsideQuestion, isDefaultV2Theme)
28923
+ .append(this.cssClasses.error.aboveQuestion, isDefaultV2Theme);
28806
28924
  return builder.append("panel-error-root", builder.isEmpty()).toString();
28807
28925
  };
28808
28926
  PanelModel.prototype.onVisibleChanged = function () {
@@ -30265,6 +30383,7 @@ __webpack_require__.r(__webpack_exports__);
30265
30383
  /* harmony import */ var _utils_popup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/popup */ "./src/utils/popup.ts");
30266
30384
  /* harmony import */ var _popup_view_model__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./popup-view-model */ "./src/popup-view-model.ts");
30267
30385
  /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/devices */ "./src/utils/devices.ts");
30386
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
30268
30387
  var __extends = (undefined && undefined.__extends) || (function () {
30269
30388
  var extendStatics = function (d, b) {
30270
30389
  extendStatics = Object.setPrototypeOf ||
@@ -30290,6 +30409,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
30290
30409
 
30291
30410
 
30292
30411
 
30412
+
30293
30413
  var PopupDropdownViewModel = /** @class */ (function (_super) {
30294
30414
  __extends(PopupDropdownViewModel, _super);
30295
30415
  function PopupDropdownViewModel(model, targetElement) {
@@ -30414,7 +30534,8 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
30414
30534
  return "popup-pointer";
30415
30535
  };
30416
30536
  PopupDropdownViewModel.prototype.updateOnShowing = function () {
30417
- this.prevActiveElement = document.activeElement;
30537
+ var root = _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root;
30538
+ this.prevActiveElement = root.activeElement;
30418
30539
  if (this.isOverlay) {
30419
30540
  this.resetDimensionsAndPositionStyleProperties();
30420
30541
  }
@@ -30922,6 +31043,8 @@ __webpack_require__.r(__webpack_exports__);
30922
31043
  /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jsonobject */ "./src/jsonobject.ts");
30923
31044
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
30924
31045
  /* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./actions/container */ "./src/actions/container.ts");
31046
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
31047
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
30925
31048
  var __extends = (undefined && undefined.__extends) || (function () {
30926
31049
  var extendStatics = function (d, b) {
30927
31050
  extendStatics = Object.setPrototypeOf ||
@@ -30947,6 +31070,8 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
30947
31070
 
30948
31071
 
30949
31072
 
31073
+
31074
+
30950
31075
  var FOCUS_INPUT_SELECTOR = "input:not(:disabled):not([readonly]):not([type=hidden]),select:not(:disabled):not([readonly]),textarea:not(:disabled):not([readonly]), button:not(:disabled):not([readonly]), [tabindex]:not([tabindex^=\"-\"])";
30951
31076
  var PopupBaseViewModel = /** @class */ (function (_super) {
30952
31077
  __extends(PopupBaseViewModel, _super);
@@ -31128,13 +31253,13 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
31128
31253
  var firstFocusableElement = focusableElements[0];
31129
31254
  var lastFocusableElement = focusableElements[focusableElements.length - 1];
31130
31255
  if (event.shiftKey) {
31131
- if (document.activeElement === firstFocusableElement) {
31256
+ if (_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root.activeElement === firstFocusableElement) {
31132
31257
  lastFocusableElement.focus();
31133
31258
  event.preventDefault();
31134
31259
  }
31135
31260
  }
31136
31261
  else {
31137
- if (document.activeElement === lastFocusableElement) {
31262
+ if (_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root.activeElement === lastFocusableElement) {
31138
31263
  firstFocusableElement.focus();
31139
31264
  event.preventDefault();
31140
31265
  }
@@ -31146,7 +31271,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
31146
31271
  }
31147
31272
  };
31148
31273
  PopupBaseViewModel.prototype.updateOnShowing = function () {
31149
- this.prevActiveElement = document.activeElement;
31274
+ this.prevActiveElement = _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root.activeElement;
31150
31275
  if (this.isOverlay) {
31151
31276
  this.resetDimensionsAndPositionStyleProperties();
31152
31277
  }
@@ -31189,13 +31314,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
31189
31314
  var container = document.createElement("div");
31190
31315
  this.container = this.createdContainer = container;
31191
31316
  }
31192
- var mountContainer = document.body.querySelector(".sv-popup-mount");
31193
- if (mountContainer) {
31194
- mountContainer.appendChild(this.container);
31195
- }
31196
- else {
31197
- document.body.appendChild(this.container);
31198
- }
31317
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["getElement"])(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.popupMountContainer).appendChild(this.container);
31199
31318
  };
31200
31319
  PopupBaseViewModel.prototype.unmountPopupContainer = function () {
31201
31320
  this.createdContainer.remove();
@@ -32219,7 +32338,8 @@ var Question = /** @class */ (function (_super) {
32219
32338
  if (this.supportComment() || this.supportOther()) {
32220
32339
  this.commentElements = [];
32221
32340
  this.getCommentElementsId().forEach(function (id) {
32222
- var el = document.getElementById(id);
32341
+ var root = _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].environment.root;
32342
+ var el = root.getElementById(id);
32223
32343
  if (el)
32224
32344
  _this.commentElements.push(el);
32225
32345
  });
@@ -32755,6 +32875,9 @@ var Question = /** @class */ (function (_super) {
32755
32875
  });
32756
32876
  Object.defineProperty(Question.prototype, "isInputReadOnly", {
32757
32877
  get: function () {
32878
+ if (this.forceIsInputReadOnly !== undefined) {
32879
+ return this.forceIsInputReadOnly;
32880
+ }
32758
32881
  var isDesignModeV2 = _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].supportCreatorV2 && this.isDesignMode;
32759
32882
  return this.isReadOnly || isDesignModeV2;
32760
32883
  },
@@ -33904,12 +34027,18 @@ var Question = /** @class */ (function (_super) {
33904
34027
  target.setIsMobile(val);
33905
34028
  } })
33906
34029
  ], Question.prototype, "isMobile", void 0);
34030
+ __decorate([
34031
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
34032
+ ], Question.prototype, "forceIsInputReadOnly", void 0);
33907
34033
  __decorate([
33908
34034
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: true })
33909
34035
  ], Question.prototype, "commentPlaceholder", void 0);
33910
34036
  __decorate([
33911
34037
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
33912
34038
  ], Question.prototype, "renderAs", void 0);
34039
+ __decorate([
34040
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
34041
+ ], Question.prototype, "inMatrixMode", void 0);
33913
34042
  return Question;
33914
34043
  }(_survey_element__WEBPACK_IMPORTED_MODULE_2__["SurveyElement"]));
33915
34044
 
@@ -34856,21 +34985,46 @@ var QuestionSelectBase = /** @class */ (function (_super) {
34856
34985
  return this.hasUnknownValue(val, true, false);
34857
34986
  };
34858
34987
  QuestionSelectBase.prototype.updateSelectedItemValues = function () {
34988
+ if (this.waitingGetChoiceDisplayValueResponse)
34989
+ return;
34990
+ var IsMultipleValue = this.getIsMultipleValue();
34991
+ if (IsMultipleValue) {
34992
+ this.updateMultipleSelectedItemValues();
34993
+ }
34994
+ else {
34995
+ this.updateSingleSelectedItemValues();
34996
+ }
34997
+ };
34998
+ QuestionSelectBase.prototype.updateSingleSelectedItemValues = function () {
34859
34999
  var _this = this;
34860
- if (!!this.survey && !this.isEmpty() && this.choices.length === 0) {
34861
- var IsMultipleValue_1 = this.getIsMultipleValue();
35000
+ if (!!this.survey && !this.isEmpty() && !_itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"].getItemByValue(this.choices, this.value)) {
35001
+ this.waitingGetChoiceDisplayValueResponse = true;
34862
35002
  this.survey.getChoiceDisplayValue({
34863
35003
  question: this,
34864
- values: IsMultipleValue_1 ? this.value : [this.value],
35004
+ values: [this.value],
34865
35005
  setItems: function (displayValues) {
35006
+ _this.waitingGetChoiceDisplayValueResponse = false;
34866
35007
  if (!displayValues || !displayValues.length)
34867
35008
  return;
34868
- if (IsMultipleValue_1) {
34869
- _this.selectedItemValues = displayValues.map(function (displayValue, index) { return _this.createItemValue(_this.value[index], displayValue); });
34870
- }
34871
- else {
34872
- _this.selectedItemValues = _this.createItemValue(_this.value, displayValues[0]);
34873
- }
35009
+ _this.selectedItemValues = _this.createItemValue(_this.value, displayValues[0]);
35010
+ }
35011
+ });
35012
+ }
35013
+ };
35014
+ QuestionSelectBase.prototype.updateMultipleSelectedItemValues = function () {
35015
+ var _this = this;
35016
+ var valueArray = this.value;
35017
+ var hasItemWithValues = valueArray.some(function (val) { return !_itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"].getItemByValue(_this.choices, val); });
35018
+ if (!!this.survey && !this.isEmpty() && hasItemWithValues) {
35019
+ this.waitingGetChoiceDisplayValueResponse = true;
35020
+ this.survey.getChoiceDisplayValue({
35021
+ question: this,
35022
+ values: valueArray,
35023
+ setItems: function (displayValues) {
35024
+ _this.waitingGetChoiceDisplayValueResponse = false;
35025
+ if (!displayValues || !displayValues.length)
35026
+ return;
35027
+ _this.selectedItemValues = displayValues.map(function (displayValue, index) { return _this.createItemValue(_this.value[index], displayValue); });
34874
35028
  }
34875
35029
  });
34876
35030
  }
@@ -37494,6 +37648,7 @@ __webpack_require__.r(__webpack_exports__);
37494
37648
  /* harmony import */ var _questionfactory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./questionfactory */ "./src/questionfactory.ts");
37495
37649
  /* harmony import */ var _question_textbase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./question_textbase */ "./src/question_textbase.ts");
37496
37650
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
37651
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
37497
37652
  var __extends = (undefined && undefined.__extends) || (function () {
37498
37653
  var extendStatics = function (d, b) {
37499
37654
  extendStatics = Object.setPrototypeOf ||
@@ -37513,6 +37668,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
37513
37668
 
37514
37669
 
37515
37670
 
37671
+
37516
37672
  /**
37517
37673
  * A class that describes the Comment question type.
37518
37674
  *
@@ -37589,7 +37745,8 @@ var QuestionCommentModel = /** @class */ (function (_super) {
37589
37745
  return "comment";
37590
37746
  };
37591
37747
  QuestionCommentModel.prototype.afterRenderQuestionElement = function (el) {
37592
- this.element = document.getElementById(this.inputId) || el;
37748
+ var root = _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root;
37749
+ this.element = root.getElementById(this.inputId) || el;
37593
37750
  this.updateElement();
37594
37751
  _super.prototype.afterRenderQuestionElement.call(this, el);
37595
37752
  };
@@ -40032,7 +40189,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
40032
40189
  return errorLength === this.errors.length;
40033
40190
  };
40034
40191
  QuestionFileModel.prototype.isFileImage = function (file) {
40035
- if (!file)
40192
+ if (!file || !file.content || !file.content.substring)
40036
40193
  return false;
40037
40194
  var imagePrefix = "data:image";
40038
40195
  var subStr = file.content && file.content.substring(0, imagePrefix.length);
@@ -44359,6 +44516,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
44359
44516
  var question = column.createCellQuestion(row);
44360
44517
  question.setSurveyImpl(row);
44361
44518
  question.setParentQuestion(this);
44519
+ question.inMatrixMode = true;
44362
44520
  return question;
44363
44521
  };
44364
44522
  QuestionMatrixDropdownModelBase.prototype.deleteRowValue = function (newValue, row) {
@@ -51488,9 +51646,9 @@ var RenderedRatingItem = /** @class */ (function (_super) {
51488
51646
  }(_base__WEBPACK_IMPORTED_MODULE_7__["Base"]));
51489
51647
 
51490
51648
  /**
51491
- * A Model for a rating question.
51649
+ * A class that describes the Rating Scale question type.
51492
51650
  *
51493
- * [View Demo](https://surveyjs.io/form-library/examples/questiontype-rating/ (linkStyle))
51651
+ * [View Demo](https://surveyjs.io/form-library/examples/rating-scale/ (linkStyle))
51494
51652
  */
51495
51653
  var QuestionRatingModel = /** @class */ (function (_super) {
51496
51654
  __extends(QuestionRatingModel, _super);
@@ -51503,7 +51661,7 @@ var QuestionRatingModel = /** @class */ (function (_super) {
51503
51661
  _this.createLocalizableString("ratingOptionsCaption", _this, false, true);
51504
51662
  _this.registerFunctionOnPropertiesValueChanged(["rateMin", "rateMax",
51505
51663
  "minRateDescription", "maxRateDescription", "rateStep", "displayRateDescriptionsAsExtremeItems"], function () { return _this.createRenderedRateItems(); });
51506
- _this.registerFunctionOnPropertiesValueChanged(["rateDisplayMode"], function () {
51664
+ _this.registerFunctionOnPropertiesValueChanged(["rateType"], function () {
51507
51665
  _this.setIconsToRateValues();
51508
51666
  _this.createRenderedRateItems();
51509
51667
  _this.updateRateCount();
@@ -51636,6 +51794,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
51636
51794
  * If you need to specify only the `value` property, you can set the `rateValues` property to an array of numbers, for example, `[ 3, 6, 10 ]`. These values are both saved in survey results and used as display text.
51637
51795
  *
51638
51796
  * If you do not specify the `rateValues` property, rate values are generated automatically based upon the [`rateMin`](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model#rateMin), [`rateMax`](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model#rateMax), [`rateStep`](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model#rateStep), and [`rateCount`](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model#rateCount) property values.
51797
+ *
51798
+ * [View Demo](/form-library/examples/rating-scale/ (linkStyle))
51639
51799
  */
51640
51800
  get: function () {
51641
51801
  return this.getPropertyValue("rateValues");
@@ -51652,6 +51812,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
51652
51812
  * Specifies the first rate value in the generated sequence of rate values. Applies if the [`rateValues`](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model#rateValues) array is empty.
51653
51813
  *
51654
51814
  * Default value: 1
51815
+ *
51816
+ * [View Demo](/form-library/examples/rating-scale/ (linkStyle))
51655
51817
  * @see rateMax
51656
51818
  * @see rateStep
51657
51819
  * @see rateCount
@@ -51670,6 +51832,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
51670
51832
  * Specifies the last rate value in the generated sequence of rate values. Applies if the [`rateValues`](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model#rateValues) array is empty.
51671
51833
  *
51672
51834
  * Default value: 5
51835
+ *
51836
+ * [View Demo](/form-library/examples/rating-scale/ (linkStyle))
51673
51837
  * @see rateMin
51674
51838
  * @see rateStep
51675
51839
  * @see rateCount
@@ -51688,6 +51852,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
51688
51852
  * Specifies a step with which to generate rate values. Applies if the [`rateValues`](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model#rateValues) array is empty.
51689
51853
  *
51690
51854
  * Default value: 1
51855
+ *
51856
+ * [View Demo](/form-library/examples/rating-scale/ (linkStyle))
51691
51857
  * @see rateMin
51692
51858
  * @see rateMax
51693
51859
  * @see rateCount
@@ -51874,12 +52040,12 @@ var QuestionRatingModel = /** @class */ (function (_super) {
51874
52040
  enumerable: false,
51875
52041
  configurable: true
51876
52042
  });
51877
- Object.defineProperty(QuestionRatingModel.prototype, "rateType", {
52043
+ Object.defineProperty(QuestionRatingModel.prototype, "rateDisplayMode", {
51878
52044
  get: function () {
51879
- return this.rateDisplayMode;
52045
+ return this.rateType;
51880
52046
  },
51881
52047
  set: function (val) {
51882
- this.rateDisplayMode = val;
52048
+ this.rateType = val;
51883
52049
  },
51884
52050
  enumerable: false,
51885
52051
  configurable: true
@@ -51947,10 +52113,35 @@ var QuestionRatingModel = /** @class */ (function (_super) {
51947
52113
  QuestionRatingModel.prototype.onItemMouseOut = function (item) {
51948
52114
  this.renderedRateItems.forEach(function (item) { return item.highlight = "none"; });
51949
52115
  };
52116
+ Object.defineProperty(QuestionRatingModel.prototype, "itemSmallMode", {
52117
+ get: function () {
52118
+ return this.inMatrixMode && _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].matrix.rateSize == "small";
52119
+ },
52120
+ enumerable: false,
52121
+ configurable: true
52122
+ });
51950
52123
  Object.defineProperty(QuestionRatingModel.prototype, "ratingRootCss", {
51951
52124
  get: function () {
51952
- return ((this.displayMode == "buttons" || (!!this.survey && this.survey.isDesignMode)) && this.cssClasses.rootWrappable) ?
52125
+ var baseClass = ((this.displayMode == "buttons" || (!!this.survey && this.survey.isDesignMode)) && this.cssClasses.rootWrappable) ?
51953
52126
  this.cssClasses.rootWrappable : this.cssClasses.root;
52127
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
52128
+ .append(baseClass)
52129
+ .append(this.cssClasses.itemSmall, this.itemSmallMode && this.rateType != "labels")
52130
+ .toString();
52131
+ },
52132
+ enumerable: false,
52133
+ configurable: true
52134
+ });
52135
+ Object.defineProperty(QuestionRatingModel.prototype, "itemStarIcon", {
52136
+ get: function () {
52137
+ return this.itemSmallMode ? "icon-rating-star-small" : "icon-rating-star";
52138
+ },
52139
+ enumerable: false,
52140
+ configurable: true
52141
+ });
52142
+ Object.defineProperty(QuestionRatingModel.prototype, "itemStarIconAlt", {
52143
+ get: function () {
52144
+ return this.itemStarIcon + "-2";
51954
52145
  },
51955
52146
  enumerable: false,
51956
52147
  configurable: true
@@ -52040,6 +52231,7 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52040
52231
  var itemUnhighlightedClass = null;
52041
52232
  var itemScaleColoredClass = null;
52042
52233
  var itemRateColoredClass = null;
52234
+ var itemSmallClass = null;
52043
52235
  if (this.isStar) {
52044
52236
  itemClass = this.cssClasses.itemStar;
52045
52237
  itemSelectedClass = this.cssClasses.itemStarSelected;
@@ -52048,6 +52240,7 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52048
52240
  itemitemOnErrorClass = this.cssClasses.itemStarOnError;
52049
52241
  itemHighlightedClass = this.cssClasses.itemStarHighlighted;
52050
52242
  itemUnhighlightedClass = this.cssClasses.itemStarUnhighlighted;
52243
+ itemSmallClass = this.cssClasses.itemStarSmall;
52051
52244
  }
52052
52245
  if (this.isSmiley) {
52053
52246
  itemClass = this.cssClasses.itemSmiley;
@@ -52058,6 +52251,7 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52058
52251
  itemHighlightedClass = this.cssClasses.itemSmileyHighlighted;
52059
52252
  itemScaleColoredClass = this.cssClasses.itemSmileyScaleColored;
52060
52253
  itemRateColoredClass = this.cssClasses.itemSmileyRateColored;
52254
+ itemSmallClass = this.cssClasses.itemSmileySmall;
52061
52255
  }
52062
52256
  var hasFixedSize = !this.isStar &&
52063
52257
  !this.isSmiley &&
@@ -52076,6 +52270,7 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52076
52270
  .append(itemRateColoredClass, this.rateColorMode == "scale" && isSelected)
52077
52271
  .append(itemUnhighlightedClass, isUnhighlighted)
52078
52272
  .append(itemitemOnErrorClass, this.errors.length > 0)
52273
+ .append(itemSmallClass, this.itemSmallMode)
52079
52274
  .append(this.cssClasses.itemFixedSize, hasFixedSize)
52080
52275
  .toString();
52081
52276
  };
@@ -52234,7 +52429,7 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52234
52429
  ], QuestionRatingModel.prototype, "displayMode", void 0);
52235
52430
  __decorate([
52236
52431
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])({ defaultValue: "labels" })
52237
- ], QuestionRatingModel.prototype, "rateDisplayMode", void 0);
52432
+ ], QuestionRatingModel.prototype, "rateType", void 0);
52238
52433
  __decorate([
52239
52434
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])({ defaultValue: "monochrome" })
52240
52435
  ], QuestionRatingModel.prototype, "scaleColorMode", void 0);
@@ -52247,8 +52442,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52247
52442
  _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
52248
52443
  { name: "showCommentArea:switch", layout: "row", visible: true, category: "general" },
52249
52444
  {
52250
- name: "rateDisplayMode",
52251
- alternativeName: "rateType",
52445
+ name: "rateType",
52446
+ alternativeName: "rateDisplayMode",
52252
52447
  default: "labels",
52253
52448
  category: "rateValues",
52254
52449
  choices: ["labels", "stars", "smileys"],
@@ -52358,6 +52553,9 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("rating", [
52358
52553
  name: "displayMode",
52359
52554
  default: "auto",
52360
52555
  choices: ["auto", "buttons", "dropdown"],
52556
+ visibleIf: function (obj) {
52557
+ return obj.rateType == "labels";
52558
+ },
52361
52559
  visibleIndex: 20
52362
52560
  }
52363
52561
  ], function () {
@@ -53053,7 +53251,7 @@ var QuestionTextModel = /** @class */ (function (_super) {
53053
53251
  }
53054
53252
  };
53055
53253
  _this.onChange = function (event) {
53056
- if (event.target === document.activeElement) {
53254
+ if (event.target === _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].environment.root.activeElement) {
53057
53255
  if (_this.isInputTextUpdate) {
53058
53256
  _this.updateValueOnEvent(event);
53059
53257
  }
@@ -53585,6 +53783,12 @@ function getCorrectMinMax(obj, min, max, isMax) {
53585
53783
  return isMax ? min : max;
53586
53784
  return val;
53587
53785
  }
53786
+ function propertyEditorMinMaxUpdate(obj, propertyEditor) {
53787
+ if (!!obj && !!obj.inputType) {
53788
+ propertyEditor.inputType = obj.inputType !== "range" ? obj.inputType : "number";
53789
+ propertyEditor.textUpdateMode = "onBlur";
53790
+ }
53791
+ }
53588
53792
  _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("text", [
53589
53793
  {
53590
53794
  name: "inputType",
@@ -53624,9 +53828,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("text", [
53624
53828
  return isMinMaxType(obj);
53625
53829
  },
53626
53830
  onPropertyEditorUpdate: function (obj, propertyEditor) {
53627
- if (!!obj && !!obj.inputType) {
53628
- propertyEditor.inputType = obj.inputType !== "range" ? obj.inputType : "number";
53629
- }
53831
+ propertyEditorMinMaxUpdate(obj, propertyEditor);
53630
53832
  },
53631
53833
  onSettingValue: function (obj, val) {
53632
53834
  return getCorrectMinMax(obj, val, obj.max, false);
@@ -53643,9 +53845,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("text", [
53643
53845
  return getCorrectMinMax(obj, obj.min, val, true);
53644
53846
  },
53645
53847
  onPropertyEditorUpdate: function (obj, propertyEditor) {
53646
- if (!!obj && !!obj.inputType) {
53647
- propertyEditor.inputType = obj.inputType !== "range" ? obj.inputType : "number";
53648
- }
53848
+ propertyEditorMinMaxUpdate(obj, propertyEditor);
53649
53849
  },
53650
53850
  },
53651
53851
  {
@@ -53946,10 +54146,8 @@ __webpack_require__.r(__webpack_exports__);
53946
54146
  /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jsonobject */ "./src/jsonobject.ts");
53947
54147
 
53948
54148
 
53949
- //TODO replace completely with ElementFactory
53950
54149
  var QuestionFactory = /** @class */ (function () {
53951
54150
  function QuestionFactory() {
53952
- this.creatorHash = {};
53953
54151
  }
53954
54152
  Object.defineProperty(QuestionFactory, "DefaultChoices", {
53955
54153
  get: function () {
@@ -53987,26 +54185,23 @@ var QuestionFactory = /** @class */ (function () {
53987
54185
  configurable: true
53988
54186
  });
53989
54187
  QuestionFactory.prototype.registerQuestion = function (questionType, questionCreator) {
53990
- this.creatorHash[questionType] = questionCreator;
54188
+ ElementFactory.Instance.registerElement(questionType, questionCreator);
53991
54189
  };
53992
- QuestionFactory.prototype.unregisterElement = function (elementType) {
53993
- delete this.creatorHash[elementType];
54190
+ QuestionFactory.prototype.registerCustomQuestion = function (questionType) {
54191
+ ElementFactory.Instance.registerCustomQuestion(questionType);
54192
+ };
54193
+ QuestionFactory.prototype.unregisterElement = function (elementType, removeFromSerializer) {
54194
+ if (removeFromSerializer === void 0) { removeFromSerializer = false; }
54195
+ ElementFactory.Instance.unregisterElement(elementType, removeFromSerializer);
53994
54196
  };
53995
54197
  QuestionFactory.prototype.clear = function () {
53996
- this.creatorHash = {};
54198
+ ElementFactory.Instance.clear();
53997
54199
  };
53998
54200
  QuestionFactory.prototype.getAllTypes = function () {
53999
- var result = new Array();
54000
- for (var key in this.creatorHash) {
54001
- result.push(key);
54002
- }
54003
- return result.sort();
54201
+ return ElementFactory.Instance.getAllTypes();
54004
54202
  };
54005
54203
  QuestionFactory.prototype.createQuestion = function (questionType, name) {
54006
- var creator = this.creatorHash[questionType];
54007
- if (creator == null)
54008
- return null;
54009
- return creator(name);
54204
+ return ElementFactory.Instance.createElement(questionType, name);
54010
54205
  };
54011
54206
  QuestionFactory.Instance = new QuestionFactory();
54012
54207
  return QuestionFactory;
@@ -54014,7 +54209,17 @@ var QuestionFactory = /** @class */ (function () {
54014
54209
 
54015
54210
  var ElementFactory = /** @class */ (function () {
54016
54211
  function ElementFactory() {
54212
+ var _this = this;
54017
54213
  this.creatorHash = {};
54214
+ this.registerCustomQuestion = function (questionType) {
54215
+ var creator = function (name) {
54216
+ var el = _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].createClass(questionType);
54217
+ if (!!el)
54218
+ el.name = name;
54219
+ return el;
54220
+ };
54221
+ _this.registerElement(questionType, creator);
54222
+ };
54018
54223
  }
54019
54224
  ElementFactory.prototype.registerElement = function (elementType, elementCreator) {
54020
54225
  this.creatorHash[elementType] = elementCreator;
@@ -54025,13 +54230,12 @@ var ElementFactory = /** @class */ (function () {
54025
54230
  ElementFactory.prototype.unregisterElement = function (elementType, removeFromSerializer) {
54026
54231
  if (removeFromSerializer === void 0) { removeFromSerializer = false; }
54027
54232
  delete this.creatorHash[elementType];
54028
- QuestionFactory.Instance.unregisterElement(elementType);
54029
54233
  if (removeFromSerializer) {
54030
54234
  _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].removeClass(elementType);
54031
54235
  }
54032
54236
  };
54033
54237
  ElementFactory.prototype.getAllTypes = function () {
54034
- var result = QuestionFactory.Instance.getAllTypes();
54238
+ var result = new Array();
54035
54239
  for (var key in this.creatorHash) {
54036
54240
  result.push(key);
54037
54241
  }
@@ -54039,9 +54243,9 @@ var ElementFactory = /** @class */ (function () {
54039
54243
  };
54040
54244
  ElementFactory.prototype.createElement = function (elementType, name) {
54041
54245
  var creator = this.creatorHash[elementType];
54042
- if (creator == null)
54043
- return QuestionFactory.Instance.createQuestion(elementType, name);
54044
- return creator(name);
54246
+ if (!!creator)
54247
+ return creator(name);
54248
+ return null;
54045
54249
  };
54046
54250
  ElementFactory.Instance = new ElementFactory();
54047
54251
  return ElementFactory;
@@ -55047,10 +55251,11 @@ __webpack_require__.r(__webpack_exports__);
55047
55251
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "List", function() { return List; });
55048
55252
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
55049
55253
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
55050
- /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../element-factory */ "./src/react/element-factory.tsx");
55051
- /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../reactquestion_element */ "./src/react/reactquestion_element.tsx");
55052
- /* 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");
55053
- /* harmony import */ var _list_item__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./list-item */ "./src/react/components/list/list-item.tsx");
55254
+ /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-core */ "./src/entries/core.ts");
55255
+ /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../element-factory */ "./src/react/element-factory.tsx");
55256
+ /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../reactquestion_element */ "./src/react/reactquestion_element.tsx");
55257
+ /* harmony import */ var _svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../svg-icon/svg-icon */ "./src/react/components/svg-icon/svg-icon.tsx");
55258
+ /* harmony import */ var _list_item__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./list-item */ "./src/react/components/list/list-item.tsx");
55054
55259
  var __extends = (undefined && undefined.__extends) || (function () {
55055
55260
  var extendStatics = function (d, b) {
55056
55261
  extendStatics = Object.setPrototypeOf ||
@@ -55071,6 +55276,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
55071
55276
 
55072
55277
 
55073
55278
 
55279
+
55074
55280
  var List = /** @class */ (function (_super) {
55075
55281
  __extends(List, _super);
55076
55282
  function List(props) {
@@ -55128,7 +55334,7 @@ var List = /** @class */ (function (_super) {
55128
55334
  return null;
55129
55335
  }
55130
55336
  return items.map(function (item, itemIndex) {
55131
- return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_list_item__WEBPACK_IMPORTED_MODULE_4__["ListItem"], { model: _this.model, item: item, key: "item" + itemIndex }));
55337
+ return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_list_item__WEBPACK_IMPORTED_MODULE_5__["ListItem"], { model: _this.model, item: item, key: "item" + itemIndex }));
55132
55338
  });
55133
55339
  };
55134
55340
  List.prototype.searchElementContent = function () {
@@ -55137,7 +55343,8 @@ var List = /** @class */ (function (_super) {
55137
55343
  return null;
55138
55344
  else {
55139
55345
  var onChange = function (e) {
55140
- if (e.target === document.activeElement) {
55346
+ var root = survey_core__WEBPACK_IMPORTED_MODULE_1__["settings"].environment.root;
55347
+ if (e.target === root.activeElement) {
55141
55348
  _this.model.filterString = e.target.value;
55142
55349
  }
55143
55350
  };
@@ -55146,10 +55353,10 @@ var List = /** @class */ (function (_super) {
55146
55353
  };
55147
55354
  var clearButton = this.model.showSearchClearButton && !!this.model.filterString ?
55148
55355
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("button", { className: this.model.cssClasses.searchClearButtonIcon, onClick: function (event) { _this.model.onClickSearchClearButton(event); } },
55149
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { iconName: "icon-searchclear", size: "auto" })) : null;
55356
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_4__["SvgIcon"], { iconName: "icon-searchclear", size: "auto" })) : null;
55150
55357
  return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: this.model.cssClasses.filter },
55151
55358
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: this.model.cssClasses.filterIcon },
55152
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { iconName: "icon-search", size: "auto" })),
55359
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_4__["SvgIcon"], { iconName: "icon-search", size: "auto" })),
55153
55360
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "text", className: this.model.cssClasses.filterInput, "aria-label": this.model.filterStringPlaceholder, placeholder: this.model.filterStringPlaceholder, value: this.state.filterString, onKeyUp: onKeyUp, onChange: onChange }),
55154
55361
  clearButton));
55155
55362
  }
@@ -55160,9 +55367,9 @@ var List = /** @class */ (function (_super) {
55160
55367
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: this.model.cssClasses.emptyText, "aria-label": this.model.emptyMessage }, this.model.emptyMessage)));
55161
55368
  };
55162
55369
  return List;
55163
- }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_2__["SurveyElementBase"]));
55370
+ }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_3__["SurveyElementBase"]));
55164
55371
 
55165
- _element_factory__WEBPACK_IMPORTED_MODULE_1__["ReactElementFactory"].Instance.registerElement("sv-list", function (props) {
55372
+ _element_factory__WEBPACK_IMPORTED_MODULE_2__["ReactElementFactory"].Instance.registerElement("sv-list", function (props) {
55166
55373
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(List, props);
55167
55374
  });
55168
55375
 
@@ -56212,8 +56419,8 @@ var RatingItemStar = /** @class */ (function (_super) {
56212
56419
  var _this = this;
56213
56420
  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); } },
56214
56421
  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
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { className: "sv-star", size: "auto", iconName: "icon-rating-star", title: this.item.text }),
56216
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { className: "sv-star-2", size: "auto", iconName: "icon-rating-star-2", title: this.item.text })));
56422
+ 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 }),
56423
+ 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 })));
56217
56424
  };
56218
56425
  return RatingItemStar;
56219
56426
  }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_2__["SurveyElementBase"]));
@@ -56781,7 +56988,8 @@ var TitleContent = /** @class */ (function (_super) {
56781
56988
  }
56782
56989
  var questionNumber = element.no;
56783
56990
  if (questionNumber) {
56784
- spans.push(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { "data-key": "q_num", key: "q_num", className: cssClasses.number || cssClasses.panel.number, style: { position: "static" }, "aria-hidden": true }, questionNumber));
56991
+ var panelNumber = !!cssClasses.panel ? cssClasses.panel.number : undefined;
56992
+ spans.push(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { "data-key": "q_num", key: "q_num", className: cssClasses.number || panelNumber, style: { position: "static" }, "aria-hidden": true }, questionNumber));
56785
56993
  spans.push(getSpaceSpan("num-sp"));
56786
56994
  }
56787
56995
  if (element.isRequireTextBeforeTitle) {
@@ -57077,8 +57285,9 @@ var SurveyQuestionDropdownBase = /** @class */ (function (_super) {
57077
57285
  SurveyQuestionDropdownBase.prototype.renderInput = function (dropdownListModel) {
57078
57286
  var _this = this;
57079
57287
  var valueElement = this.renderValueElement(dropdownListModel);
57288
+ var root = survey_core__WEBPACK_IMPORTED_MODULE_1__["settings"].environment.root;
57080
57289
  var onInputChange = function (e) {
57081
- if (e.target === document.activeElement) {
57290
+ if (e.target === root.activeElement) {
57082
57291
  dropdownListModel.inputStringRendered = e.target.value;
57083
57292
  }
57084
57293
  };
@@ -58149,8 +58358,9 @@ var SurveyPanel = /** @class */ (function (_super) {
58149
58358
  _this.panelBase.focusIn();
58150
58359
  };
58151
58360
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { ref: this.rootRef, className: this.panelBase.getContainerCss(), onFocus: focusIn, id: this.panelBase.id },
58361
+ this.panel.showErrorsAbovePanel ? errors : null,
58152
58362
  header,
58153
- errors,
58363
+ this.panel.showErrorsAbovePanel ? null : errors,
58154
58364
  content));
58155
58365
  };
58156
58366
  SurveyPanel.prototype.renderHeader = function () {
@@ -58512,7 +58722,8 @@ var Survey = /** @class */ (function (_super) {
58512
58722
  var rootCss = this.survey.getRootCss();
58513
58723
  var cssClasses = this.rootNodeClassName ? this.rootNodeClassName + " " + rootCss : rootCss;
58514
58724
  var rootStyle = {
58515
- backgroundImage: this.survey.renderBackgroundImage
58725
+ backgroundImage: this.survey.renderBackgroundImage,
58726
+ backgroundSize: this.survey.backgroundImageFit
58516
58727
  };
58517
58728
  var formStyle = {
58518
58729
  backgroundColor: this.survey.renderBackgroundOpacity
@@ -63279,7 +63490,8 @@ var TagboxFilterString = /** @class */ (function (_super) {
63279
63490
  }
63280
63491
  };
63281
63492
  TagboxFilterString.prototype.onChange = function (e) {
63282
- if (e.target === document.activeElement) {
63493
+ var root = survey_core__WEBPACK_IMPORTED_MODULE_1__["settings"].environment.root;
63494
+ if (e.target === root.activeElement) {
63283
63495
  this.model.inputStringRendered = e.target.value;
63284
63496
  }
63285
63497
  };
@@ -63297,7 +63509,16 @@ var TagboxFilterString = /** @class */ (function (_super) {
63297
63509
  };
63298
63510
  TagboxFilterString.prototype.render = function () {
63299
63511
  var _this = this;
63300
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "text", autoComplete: "off", id: this.question.getInputId(), inputMode: this.model.inputMode, ref: function (element) { return (_this.inputElement = element); }, className: this.question.cssClasses.filterStringInput, disabled: this.question.isInputReadOnly, readOnly: !this.model.searchEnabled ? true : undefined, size: !this.model.inputStringRendered ? 1 : undefined, role: this.model.filterStringEnabled ? this.question.ariaRole : undefined, "aria-label": this.question.placeholder, "aria-expanded": this.question.ariaExpanded ? "true" : "false", "aria-controls": this.model.listElementId, "aria-activedescendant": this.model.ariaActivedescendant, placeholder: this.model.filterStringPlaceholder, onKeyDown: function (e) { _this.keyhandler(e); }, onChange: function (e) { _this.onChange(e); }, onBlur: function (e) { _this.onBlur(e); }, onFocus: function (e) { _this.onFocus(e); } }));
63512
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.hint },
63513
+ this.model.showHintPrefix ?
63514
+ (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.hintPrefix },
63515
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", null, this.model.hintStringPrefix))) : null,
63516
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.hintSuffixWrapper },
63517
+ this.model.showHintString ?
63518
+ (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.hintSuffix },
63519
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { style: { visibility: "hidden" }, "data-bind": "text: model.filterString" }, this.model.inputStringRendered),
63520
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", null, this.model.hintStringSuffix))) : null,
63521
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "text", autoComplete: "off", id: this.question.getInputId(), inputMode: this.model.inputMode, ref: function (element) { return (_this.inputElement = element); }, className: this.question.cssClasses.filterStringInput, disabled: this.question.isInputReadOnly, readOnly: !this.model.searchEnabled ? true : undefined, size: !this.model.inputStringRendered ? 1 : undefined, role: this.model.filterStringEnabled ? this.question.ariaRole : undefined, "aria-label": this.question.placeholder, "aria-expanded": this.question.ariaExpanded ? "true" : "false", "aria-controls": this.model.listElementId, "aria-activedescendant": this.model.ariaActivedescendant, placeholder: this.model.filterStringPlaceholder, onKeyDown: function (e) { _this.keyhandler(e); }, onChange: function (e) { _this.onChange(e); }, onBlur: function (e) { _this.onBlur(e); }, onFocus: function (e) { _this.onFocus(e); } }))));
63301
63522
  };
63302
63523
  return TagboxFilterString;
63303
63524
  }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_3__["SurveyElementBase"]));
@@ -63436,7 +63657,29 @@ var RendererFactory = /** @class */ (function () {
63436
63657
 
63437
63658
  "use strict";
63438
63659
  __webpack_require__.r(__webpack_exports__);
63439
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settings", function() { return settings; });
63660
+ /* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settings", function() { return settings; });
63661
+ var document = global.document;
63662
+ var defaultEnvironment = (!!document ? {
63663
+ root: document,
63664
+ _rootElement: document.body,
63665
+ get rootElement() {
63666
+ var _a;
63667
+ return (_a = this._rootElement) !== null && _a !== void 0 ? _a : document.body;
63668
+ },
63669
+ set rootElement(rootElement) {
63670
+ this._rootElement = rootElement;
63671
+ },
63672
+ _popupMountContainer: document.body,
63673
+ get popupMountContainer() {
63674
+ var _a;
63675
+ return (_a = this._popupMountContainer) !== null && _a !== void 0 ? _a : document.body;
63676
+ },
63677
+ set popupMountContainer(popupMountContainer) {
63678
+ this._popupMountContainer = popupMountContainer;
63679
+ },
63680
+ svgMountContainer: document.head,
63681
+ stylesSheetsMountContainer: document.head,
63682
+ } : undefined);
63440
63683
  var columnWidthsByType = {
63441
63684
  "file": { minWidth: "240px" },
63442
63685
  "comment": { minWidth: "200px" }
@@ -63818,6 +64061,10 @@ var settings = {
63818
64061
  * - `"icon"` - Users can only use the choice item icon as a drag handle.
63819
64062
  */
63820
64063
  rankingDragHandleArea: "entireItem",
64064
+ /**
64065
+ * Specifies environment in which SurveyJS will exist
64066
+ */
64067
+ environment: defaultEnvironment,
63821
64068
  titleTags: {
63822
64069
  survey: "h3",
63823
64070
  page: "h4",
@@ -63905,12 +64152,17 @@ var settings = {
63905
64152
  * - `columnWidthsByType`: `Object`\
63906
64153
  * An object that specifies fixed and minimum column width based on the column type.\
63907
64154
  * Example: `settings.matrix.columnWidthsByType = { "tagbox": { minWidth: "240px", width: "300px" } }`
64155
+ *
64156
+ * - `rateSize`: `"small"` (default) | `"normal"`\
64157
+ * Specifies the size of rate values. Applies to [Rating Scale](https://surveyjs.io/form-library/examples/rating-scale/) questions within matrixes.
63908
64158
  */
63909
64159
  matrix: {
63910
- columnWidthsByType: columnWidthsByType
64160
+ columnWidthsByType: columnWidthsByType,
64161
+ rateSize: "small",
63911
64162
  }
63912
64163
  };
63913
64164
 
64165
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
63914
64166
 
63915
64167
  /***/ }),
63916
64168
 
@@ -63933,6 +64185,10 @@ __webpack_require__.r(__webpack_exports__);
63933
64185
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "winterstoneThemeColors", function() { return winterstoneThemeColors; });
63934
64186
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StylesManager", function() { return StylesManager; });
63935
64187
  /* harmony import */ var _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultCss/defaultV2Css */ "./src/defaultCss/defaultV2Css.ts");
64188
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
64189
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
64190
+
64191
+
63936
64192
 
63937
64193
  var modernThemeColors = {
63938
64194
  "$main-color": "#1ab394",
@@ -64164,9 +64420,11 @@ var StylesManager = /** @class */ (function () {
64164
64420
  return themeMapper;
64165
64421
  };
64166
64422
  StylesManager.getIncludedThemeCss = function () {
64423
+ var rootElement = _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].environment.rootElement;
64167
64424
  var themeMapper = StylesManager.getAvailableThemes();
64168
- if (!!document && !!document.body) {
64169
- var styles_1 = getComputedStyle(document.body);
64425
+ var element = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["isShadowDOM"])(rootElement) ? rootElement.host : rootElement;
64426
+ if (!!element) {
64427
+ var styles_1 = getComputedStyle(element);
64170
64428
  if (styles_1.length) {
64171
64429
  return themeMapper.filter(function (item) { return item.theme.variables && styles_1.getPropertyValue(item.theme.variables.themeMark); });
64172
64430
  }
@@ -64174,23 +64432,25 @@ var StylesManager = /** @class */ (function () {
64174
64432
  return [];
64175
64433
  };
64176
64434
  StylesManager.findSheet = function (styleSheetId) {
64177
- if (typeof document === "undefined")
64435
+ if (typeof _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].environment === "undefined")
64178
64436
  return null;
64179
- for (var i = 0; i < document.styleSheets.length; i++) {
64180
- if (!!document.styleSheets[i].ownerNode && document.styleSheets[i].ownerNode["id"] === styleSheetId) {
64181
- return document.styleSheets[i];
64437
+ var styleSheets = _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].environment.root.styleSheets;
64438
+ for (var i = 0; i < styleSheets.length; i++) {
64439
+ if (!!styleSheets[i].ownerNode && styleSheets[i].ownerNode["id"] === styleSheetId) {
64440
+ return styleSheets[i];
64182
64441
  }
64183
64442
  }
64184
64443
  return null;
64185
64444
  };
64186
64445
  StylesManager.createSheet = function (styleSheetId) {
64446
+ var stylesSheetsMountContainer = _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].environment.stylesSheetsMountContainer;
64187
64447
  var style = document.createElement("style");
64188
64448
  style.id = styleSheetId;
64189
64449
  // Add a media (and/or media query) here if you'd like!
64190
64450
  // style.setAttribute("media", "screen")
64191
64451
  // style.setAttribute("media", "only screen and (max-width : 1024px)")
64192
64452
  style.appendChild(document.createTextNode(""));
64193
- document.head.appendChild(style);
64453
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["getElement"])(stylesSheetsMountContainer).appendChild(style);
64194
64454
  if (!!StylesManager.Logger) {
64195
64455
  StylesManager.Logger.log("style sheet " + styleSheetId + " created");
64196
64456
  }
@@ -64198,10 +64458,12 @@ var StylesManager = /** @class */ (function () {
64198
64458
  };
64199
64459
  StylesManager.applyTheme = function (themeName, themeSelector) {
64200
64460
  if (themeName === void 0) { themeName = "default"; }
64461
+ var rootElement = _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].environment.rootElement;
64462
+ var element = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["isShadowDOM"])(rootElement) ? rootElement.host : rootElement;
64201
64463
  _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_0__["surveyCss"].currentType = themeName;
64202
64464
  if (StylesManager.Enabled) {
64203
64465
  if (themeName !== "bootstrap" && themeName !== "bootstrapmaterial") {
64204
- setCssVariables(StylesManager.ThemeColors[themeName], document.body);
64466
+ setCssVariables(StylesManager.ThemeColors[themeName], element);
64205
64467
  if (!!StylesManager.Logger) {
64206
64468
  StylesManager.Logger.log("apply theme " + themeName + " completed");
64207
64469
  }
@@ -64538,9 +64800,10 @@ var SurveyElement = /** @class */ (function (_super) {
64538
64800
  return info;
64539
64801
  };
64540
64802
  SurveyElement.ScrollElementToTop = function (elementId) {
64541
- if (!elementId || typeof document === "undefined")
64803
+ var root = _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root;
64804
+ if (!elementId || typeof root === "undefined")
64542
64805
  return false;
64543
- var el = document.getElementById(elementId);
64806
+ var el = root.getElementById(elementId);
64544
64807
  if (!el || !el.scrollIntoView)
64545
64808
  return false;
64546
64809
  var elemTop = el.getBoundingClientRect().top;
@@ -64578,9 +64841,10 @@ var SurveyElement = /** @class */ (function (_super) {
64578
64841
  return res;
64579
64842
  };
64580
64843
  SurveyElement.focusElementCore = function (elementId) {
64581
- if (!document)
64844
+ var root = _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root;
64845
+ if (!root)
64582
64846
  return false;
64583
- var el = document.getElementById(elementId);
64847
+ var el = root.getElementById(elementId);
64584
64848
  if (el && !el["disabled"]) {
64585
64849
  el.focus();
64586
64850
  return true;
@@ -64980,9 +65244,10 @@ var SurveyElement = /** @class */ (function (_super) {
64980
65244
  *
64981
65245
  * Use the following events of the [`SurveyModel`](https://surveyjs.io/form-library/documentation/surveymodel) object to override CSS classes:
64982
65246
  *
64983
- * - [`onUpdatePageCssClasses`](https://surveyjs.io/form-library/documentation/surveymodel#onUpdatePageCssClasses)
64984
- * - [`onUpdatePanelCssClasses`](https://surveyjs.io/form-library/documentation/surveymodel#onUpdatePanelCssClasses)
64985
65247
  * - [`onUpdateQuestionCssClasses`](https://surveyjs.io/form-library/documentation/surveymodel#onUpdateQuestionCssClasses)
65248
+ * - [`onUpdatePanelCssClasses`](https://surveyjs.io/form-library/documentation/surveymodel#onUpdatePanelCssClasses)
65249
+ * - [`onUpdatePageCssClasses`](https://surveyjs.io/form-library/documentation/surveymodel#onUpdatePageCssClasses)
65250
+ * - [`onUpdateChoiceItemCss`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onUpdateChoiceItemCss)
64986
65251
  */
64987
65252
  get: function () {
64988
65253
  if (!this.survey)
@@ -64993,6 +65258,16 @@ var SurveyElement = /** @class */ (function (_super) {
64993
65258
  enumerable: false,
64994
65259
  configurable: true
64995
65260
  });
65261
+ Object.defineProperty(SurveyElement.prototype, "cssTitleNumber", {
65262
+ get: function () {
65263
+ var css = this.cssClasses;
65264
+ if (css.number)
65265
+ return css.number;
65266
+ return css.panel ? css.panel.number : undefined;
65267
+ },
65268
+ enumerable: false,
65269
+ configurable: true
65270
+ });
64996
65271
  SurveyElement.prototype.calcCssClasses = function (css) { return undefined; };
64997
65272
  SurveyElement.prototype.updateElementCssCore = function (cssClasses) { };
64998
65273
  Object.defineProperty(SurveyElement.prototype, "cssError", {
@@ -66053,23 +66328,33 @@ var SurveyModel = /** @class */ (function (_super) {
66053
66328
  */
66054
66329
  _this.onProcessTextValue = _this.addEvent();
66055
66330
  /**
66056
- * An event that is raised before rendering a question. Use it to override the default question CSS classes.
66331
+ * An event that is raised before rendering a question. Use it to override default question CSS classes.
66057
66332
  *
66058
66333
  * For information on event handler parameters, refer to descriptions within the interface.
66059
66334
  *
66060
- * [View Demo](https://surveyjs.io/form-library/examples/survey-cssclasses/ (linkStyle))
66335
+ * [View Demo](/form-library/examples/customize-survey-with-css/ (linkStyle))
66336
+ * @see css
66061
66337
  */
66062
66338
  _this.onUpdateQuestionCssClasses = _this.addEvent();
66063
66339
  /**
66064
- * An event that is raised before rendering a panel. Use it to override the default panel CSS classes.
66340
+ * An event that is raised before rendering a panel. Use it to override default panel CSS classes.
66341
+ *
66342
+ * [View Demo](/form-library/examples/customize-survey-with-css/ (linkStyle))
66343
+ * @see css
66065
66344
  */
66066
66345
  _this.onUpdatePanelCssClasses = _this.addEvent();
66067
66346
  /**
66068
- * An event that is raised before rendering a page. Use it to override the default page CSS classes.
66347
+ * An event that is raised before rendering a page. Use it to override default page CSS classes.
66348
+ *
66349
+ * [View Demo](/form-library/examples/customize-survey-with-css/ (linkStyle))
66350
+ * @see css
66069
66351
  */
66070
66352
  _this.onUpdatePageCssClasses = _this.addEvent();
66071
66353
  /**
66072
- * An event that is raised before rendering a choice item in radiogroup, checkbox or dropdown questions. Use it to override the default choice item css.
66354
+ * An event that is raised before rendering a choice item in Radio Button Group, Checkboxes, and Dropdown questions. Use it to override default CSS classes applied to choice items.
66355
+ *
66356
+ * [View Demo](/form-library/examples/customize-survey-with-css/ (linkStyle))
66357
+ * @see css
66073
66358
  */
66074
66359
  _this.onUpdateChoiceItemCss = _this.addEvent();
66075
66360
  /**
@@ -66645,6 +66930,11 @@ var SurveyModel = /** @class */ (function (_super) {
66645
66930
  this.updateCompletedPageCss();
66646
66931
  };
66647
66932
  Object.defineProperty(SurveyModel.prototype, "css", {
66933
+ /**
66934
+ * Gets or sets an object in which keys are UI elements and values are CSS classes applied to them.
66935
+ *
66936
+ * [View Demo](/form-library/examples/customize-survey-with-css/ (linkStyle))
66937
+ */
66648
66938
  get: function () {
66649
66939
  if (!this.cssValue) {
66650
66940
  this.cssValue = {};
@@ -69179,7 +69469,7 @@ var SurveyModel = /** @class */ (function (_super) {
69179
69469
  this.isCompleted = false;
69180
69470
  this.isCompletedBefore = false;
69181
69471
  this.isLoading = false;
69182
- this.canBeCompletedByTrigger = false;
69472
+ this.completedByTriggers = undefined;
69183
69473
  if (clearData) {
69184
69474
  this.data = null;
69185
69475
  this.variablesHash = {};
@@ -69425,7 +69715,7 @@ var SurveyModel = /** @class */ (function (_super) {
69425
69715
  });
69426
69716
  Object.defineProperty(SurveyModel.prototype, "hasCookie", {
69427
69717
  /**
69428
- * Returns `true`, if a user has already completed the survey in this browser and there is a cookie about it. Survey goes to `completed` state if the function returns `true`.
69718
+ * Returns `true`, if a user has already completed the survey in this browser and there is a cookie about it. Survey goes to `completedbefore` state if the function returns `true`.
69429
69719
  * @see cookieName
69430
69720
  * @see setCookie
69431
69721
  * @see deleteCookie
@@ -70419,14 +70709,31 @@ var SurveyModel = /** @class */ (function (_super) {
70419
70709
  SurveyModel.prototype.setCompleted = function () {
70420
70710
  this.doComplete(true);
70421
70711
  };
70422
- SurveyModel.prototype.canBeCompleted = function () {
70712
+ SurveyModel.prototype.canBeCompleted = function (trigger, isCompleted) {
70423
70713
  if (!_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].changeNavigationButtonsOnCompleteTrigger)
70424
70714
  return;
70425
- if (!this.canBeCompletedByTrigger) {
70426
- this.canBeCompletedByTrigger = true;
70715
+ var prevCanBeCompleted = this.canBeCompletedByTrigger;
70716
+ if (!this.completedByTriggers)
70717
+ this.completedByTriggers = {};
70718
+ if (isCompleted) {
70719
+ this.completedByTriggers[trigger.id] = true;
70720
+ }
70721
+ else {
70722
+ delete this.completedByTriggers[trigger.id];
70723
+ }
70724
+ if (prevCanBeCompleted !== this.canBeCompletedByTrigger) {
70427
70725
  this.updateButtonsVisibility();
70428
70726
  }
70429
70727
  };
70728
+ Object.defineProperty(SurveyModel.prototype, "canBeCompletedByTrigger", {
70729
+ get: function () {
70730
+ if (!this.completedByTriggers)
70731
+ return false;
70732
+ return Object.keys(this.completedByTriggers).length > 0;
70733
+ },
70734
+ enumerable: false,
70735
+ configurable: true
70736
+ });
70430
70737
  Object.defineProperty(SurveyModel.prototype, "processedCompletedHtml", {
70431
70738
  /**
70432
70739
  * Returns the HTML content for the complete page.
@@ -70641,8 +70948,9 @@ var SurveyModel = /** @class */ (function (_super) {
70641
70948
  if (this.onAfterRenderQuestionInput.isEmpty)
70642
70949
  return;
70643
70950
  var id = question.inputId;
70644
- if (!!id && htmlElement.id !== id && typeof document !== "undefined") {
70645
- var el = document.getElementById(id);
70951
+ var root = _settings__WEBPACK_IMPORTED_MODULE_14__["settings"].environment.root;
70952
+ if (!!id && htmlElement.id !== id && typeof root !== "undefined") {
70953
+ var el = root.getElementById(id);
70646
70954
  if (!!el) {
70647
70955
  htmlElement = el;
70648
70956
  }
@@ -70683,7 +70991,12 @@ var SurveyModel = /** @class */ (function (_super) {
70683
70991
  this.onChoicesLazyLoad.fire(this, options);
70684
70992
  };
70685
70993
  SurveyModel.prototype.getChoiceDisplayValue = function (options) {
70686
- this.onGetChoiceDisplayValue.fire(this, options);
70994
+ if (this.onGetChoiceDisplayValue.isEmpty) {
70995
+ options.setItems(null);
70996
+ }
70997
+ else {
70998
+ this.onGetChoiceDisplayValue.fire(this, options);
70999
+ }
70687
71000
  };
70688
71001
  SurveyModel.prototype.matrixBeforeRowAdded = function (options) {
70689
71002
  this.onMatrixBeforeRowAdded.fire(this, options);
@@ -71380,7 +71693,7 @@ var SurveyModel = /** @class */ (function (_super) {
71380
71693
  values[name] = this.getValue(name);
71381
71694
  }
71382
71695
  this.addCalculatedValuesIntoFilteredValues(values);
71383
- this.checkTriggers(values, true);
71696
+ this.checkTriggers(values, true, isOnComplete);
71384
71697
  };
71385
71698
  SurveyModel.prototype.getCurrentPageQuestions = function (includeInvsible) {
71386
71699
  if (includeInvsible === void 0) { includeInvsible = false; }
@@ -71412,7 +71725,6 @@ var SurveyModel = /** @class */ (function (_super) {
71412
71725
  this.triggerValues = this.getFilteredValues();
71413
71726
  var properties = this.getFilteredProperties();
71414
71727
  var prevCanBeCompleted = this.canBeCompletedByTrigger;
71415
- this.canBeCompletedByTrigger = false;
71416
71728
  for (var i = 0; i < this.triggers.length; i++) {
71417
71729
  this.triggers[i].checkExpression(isOnNextPage, isOnComplete, this.triggerKeys, this.triggerValues, properties);
71418
71730
  }
@@ -71677,7 +71989,7 @@ var SurveyModel = /** @class */ (function (_super) {
71677
71989
  this.onQuestionsOnPageModeChanged("standard");
71678
71990
  _super.prototype.endLoadingFromJson.call(this);
71679
71991
  if (this.hasCookie) {
71680
- this.doComplete();
71992
+ this.isCompletedBefore = true;
71681
71993
  }
71682
71994
  this.doElementsOnLoad();
71683
71995
  this.isEndLoadingFromJson = "conditions";
@@ -73095,6 +73407,9 @@ var SurveyModel = /** @class */ (function (_super) {
73095
73407
  __decorate([
73096
73408
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
73097
73409
  ], SurveyModel.prototype, "renderBackgroundImage", void 0);
73410
+ __decorate([
73411
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
73412
+ ], SurveyModel.prototype, "backgroundImageFit", void 0);
73098
73413
  __decorate([
73099
73414
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
73100
73415
  ], SurveyModel.prototype, "rootCss", void 0);
@@ -73341,6 +73656,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
73341
73656
  },
73342
73657
  "width",
73343
73658
  { name: "backgroundImage", serializationProperty: "locBackgroundImage", visible: false },
73659
+ { name: "backgroundImageFit", default: "cover", choices: ["auto", "contain", "cover"], visible: false },
73344
73660
  { name: "backgroundOpacity:number", minValue: 0, maxValue: 1, default: 1, visible: false },
73345
73661
  { name: "showBrandInfo:boolean", default: false, visible: false }
73346
73662
  ]);
@@ -73915,6 +74231,10 @@ __webpack_require__.r(__webpack_exports__);
73915
74231
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SvgIconRegistry", function() { return SvgIconRegistry; });
73916
74232
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SvgRegistry", function() { return SvgRegistry; });
73917
74233
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SvgBundleViewModel", function() { return SvgBundleViewModel; });
74234
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
74235
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
74236
+
74237
+
73918
74238
  var SvgIconData = /** @class */ (function () {
73919
74239
  function SvgIconData() {
73920
74240
  }
@@ -73971,12 +74291,12 @@ var SvgIconRegistry = /** @class */ (function () {
73971
74291
  };
73972
74292
  SvgIconRegistry.prototype.renderIcons = function () {
73973
74293
  var containerId = "sv-icon-holder-global-container";
73974
- if (!document.getElementById(containerId)) {
74294
+ if (!_settings__WEBPACK_IMPORTED_MODULE_0__["settings"].environment.root.getElementById(containerId)) {
73975
74295
  var iconsDiv = document.createElement("div");
73976
74296
  iconsDiv.id = containerId;
73977
74297
  iconsDiv.innerHTML = "<svg>" + this.iconsRenderedHtml() + "</svg>";
73978
74298
  iconsDiv.style.display = "none";
73979
- document.head.insertBefore(iconsDiv, document.head.firstChild);
74299
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["getElement"])(_settings__WEBPACK_IMPORTED_MODULE_0__["settings"].environment.svgMountContainer).appendChild(iconsDiv);
73980
74300
  }
73981
74301
  };
73982
74302
  return SvgIconRegistry;
@@ -74287,6 +74607,7 @@ var Trigger = /** @class */ (function (_super) {
74287
74607
  __extends(Trigger, _super);
74288
74608
  function Trigger() {
74289
74609
  var _this = _super.call(this) || this;
74610
+ _this.idValue = (Trigger.idCounter++);
74290
74611
  _this.usedNames = [];
74291
74612
  _this.registerPropertyChangedHandlers(["operator", "value", "name"], function () {
74292
74613
  _this.oldPropertiesChanged();
@@ -74335,6 +74656,11 @@ var Trigger = /** @class */ (function (_super) {
74335
74656
  enumerable: false,
74336
74657
  configurable: true
74337
74658
  });
74659
+ Object.defineProperty(Trigger.prototype, "id", {
74660
+ get: function () { return this.idValue; },
74661
+ enumerable: false,
74662
+ configurable: true
74663
+ });
74338
74664
  Trigger.prototype.getType = function () {
74339
74665
  return "triggerbase";
74340
74666
  };
@@ -74514,6 +74840,7 @@ var Trigger = /** @class */ (function (_super) {
74514
74840
  enumerable: false,
74515
74841
  configurable: true
74516
74842
  });
74843
+ Trigger.idCounter = 1;
74517
74844
  Trigger.operatorsValue = null;
74518
74845
  return Trigger;
74519
74846
  }(_base__WEBPACK_IMPORTED_MODULE_1__["Base"]));
@@ -74614,9 +74941,12 @@ var SurveyTriggerComplete = /** @class */ (function (_super) {
74614
74941
  this.owner.setCompleted();
74615
74942
  }
74616
74943
  else {
74617
- this.owner.canBeCompleted();
74944
+ this.owner.canBeCompleted(this, true);
74618
74945
  }
74619
74946
  };
74947
+ SurveyTriggerComplete.prototype.onFailure = function () {
74948
+ this.owner.canBeCompleted(this, false);
74949
+ };
74620
74950
  return SurveyTriggerComplete;
74621
74951
  }(SurveyTrigger));
74622
74952
 
@@ -75349,7 +75679,7 @@ var TooltipManager = /** @class */ (function () {
75349
75679
  /*!****************************!*\
75350
75680
  !*** ./src/utils/utils.ts ***!
75351
75681
  \****************************/
75352
- /*! exports provided: unwrap, getSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames */
75682
+ /*! 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 */
75353
75683
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
75354
75684
 
75355
75685
  "use strict";
@@ -75371,6 +75701,8 @@ __webpack_require__.r(__webpack_exports__);
75371
75701
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectIEBrowser", function() { return detectIEBrowser; });
75372
75702
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadFileFromBase64", function() { return loadFileFromBase64; });
75373
75703
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isMobile", function() { return isMobile; });
75704
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isShadowDOM", function() { return isShadowDOM; });
75705
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getElement", function() { return getElement; });
75374
75706
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isElementVisible", function() { return isElementVisible; });
75375
75707
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findScrollableParent", function() { return findScrollableParent; });
75376
75708
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollElementByChildId", function() { return scrollElementByChildId; });
@@ -75448,13 +75780,24 @@ function loadFileFromBase64(b64Data, fileName) {
75448
75780
  function isMobile() {
75449
75781
  return (typeof window !== "undefined" && typeof window.orientation !== "undefined");
75450
75782
  }
75783
+ var isShadowDOM = function (rootElement) {
75784
+ return !!rootElement && !!("host" in rootElement && rootElement.host);
75785
+ };
75786
+ var getElement = function (element) {
75787
+ var root = _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].environment.root;
75788
+ return typeof element === "string" ? root.getElementById(element) : element;
75789
+ };
75451
75790
  function isElementVisible(element, threshold) {
75452
75791
  if (threshold === void 0) { threshold = 0; }
75453
- if (typeof document === "undefined") {
75792
+ if (typeof _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].environment === "undefined") {
75454
75793
  return false;
75455
75794
  }
75795
+ var root = _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].environment.root;
75796
+ var clientHeight = isShadowDOM(root)
75797
+ ? root.host.clientHeight
75798
+ : root.documentElement.clientHeight;
75456
75799
  var elementRect = element.getBoundingClientRect();
75457
- var viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);
75800
+ var viewHeight = Math.max(clientHeight, window.innerHeight);
75458
75801
  var topWin = -threshold;
75459
75802
  var bottomWin = viewHeight + threshold;
75460
75803
  var topEl = elementRect.top;
@@ -75464,8 +75807,11 @@ function isElementVisible(element, threshold) {
75464
75807
  return maxTop <= minBottom;
75465
75808
  }
75466
75809
  function findScrollableParent(element) {
75810
+ var root = _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].environment.root;
75467
75811
  if (!element) {
75468
- return document.documentElement;
75812
+ return isShadowDOM(root)
75813
+ ? root.host
75814
+ : root.documentElement;
75469
75815
  }
75470
75816
  if (element.scrollHeight > element.clientHeight &&
75471
75817
  (getComputedStyle(element).overflowY === "scroll" ||
@@ -75480,9 +75826,11 @@ function findScrollableParent(element) {
75480
75826
  return findScrollableParent(element.parentElement);
75481
75827
  }
75482
75828
  function scrollElementByChildId(id) {
75483
- if (!document)
75829
+ var environment = _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].environment;
75830
+ if (!environment)
75484
75831
  return;
75485
- var el = document.getElementById(id);
75832
+ var root = environment.root;
75833
+ var el = root.getElementById(id);
75486
75834
  if (!el)
75487
75835
  return;
75488
75836
  var scrollableEl = findScrollableParent(el);