survey-react-ui 1.9.133 → 1.9.135

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.133
2
+ * surveyjs - Survey JavaScript library v1.9.135
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -495,6 +495,7 @@ var Action = /** @class */ (function (_super) {
495
495
  return this._component;
496
496
  };
497
497
  Action.prototype.dispose = function () {
498
+ this.updateCallback = undefined;
498
499
  this.action = undefined;
499
500
  _super.prototype.dispose.call(this);
500
501
  if (this.popupModel) {
@@ -2898,6 +2899,8 @@ var ConsoleWarnings = /** @class */ (function () {
2898
2899
  "use strict";
2899
2900
  __webpack_require__.r(__webpack_exports__);
2900
2901
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ElementHelper", function() { return ElementHelper; });
2902
+ /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./global_variables_utils */ "./src/global_variables_utils.ts");
2903
+
2901
2904
  var ElementHelper = /** @class */ (function () {
2902
2905
  function ElementHelper() {
2903
2906
  }
@@ -2905,7 +2908,7 @@ var ElementHelper = /** @class */ (function () {
2905
2908
  element && element.focus();
2906
2909
  };
2907
2910
  ElementHelper.visibility = function (node) {
2908
- var style = window.getComputedStyle(node);
2911
+ var style = _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomDocumentHelper"].getComputedStyle(node);
2909
2912
  if (style.display === "none" || style.visibility === "hidden")
2910
2913
  return false;
2911
2914
  return node.parentElement ? this.visibility(node.parentElement) : true;
@@ -3584,7 +3587,7 @@ __webpack_require__.r(__webpack_exports__);
3584
3587
 
3585
3588
 
3586
3589
 
3587
- Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["checkLibraryVersion"])("" + "1.9.133", "survey-react-ui");
3590
+ Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["checkLibraryVersion"])("" + "1.9.135", "survey-react-ui");
3588
3591
 
3589
3592
 
3590
3593
  /***/ }),
@@ -7781,6 +7784,148 @@ function substring_(params) {
7781
7784
  FunctionFactory.Instance.register("substring", substring_);
7782
7785
 
7783
7786
 
7787
+ /***/ }),
7788
+
7789
+ /***/ "./src/global_variables_utils.ts":
7790
+ /*!***************************************!*\
7791
+ !*** ./src/global_variables_utils.ts ***!
7792
+ \***************************************/
7793
+ /*! exports provided: DomWindowHelper, DomDocumentHelper */
7794
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
7795
+
7796
+ "use strict";
7797
+ __webpack_require__.r(__webpack_exports__);
7798
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DomWindowHelper", function() { return DomWindowHelper; });
7799
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DomDocumentHelper", function() { return DomDocumentHelper; });
7800
+ /* eslint-disable no-restricted-globals */
7801
+ var DomWindowHelper = /** @class */ (function () {
7802
+ function DomWindowHelper() {
7803
+ }
7804
+ DomWindowHelper.isAvailable = function () {
7805
+ return "undefined" !== typeof window;
7806
+ };
7807
+ DomWindowHelper.isFileReaderAvailable = function () {
7808
+ if (!DomWindowHelper.isAvailable())
7809
+ return false;
7810
+ return !!window["FileReader"];
7811
+ };
7812
+ DomWindowHelper.getLocation = function () {
7813
+ if (!DomWindowHelper.isAvailable())
7814
+ return;
7815
+ return window.location;
7816
+ };
7817
+ DomWindowHelper.getVisualViewport = function () {
7818
+ if (!DomWindowHelper.isAvailable())
7819
+ return null;
7820
+ return window.visualViewport;
7821
+ };
7822
+ DomWindowHelper.getInnerWidth = function () {
7823
+ if (!DomWindowHelper.isAvailable())
7824
+ return;
7825
+ return window.innerWidth;
7826
+ };
7827
+ DomWindowHelper.getInnerHeight = function () {
7828
+ if (!DomWindowHelper.isAvailable())
7829
+ return null;
7830
+ return window.innerHeight;
7831
+ };
7832
+ DomWindowHelper.getWindow = function () {
7833
+ if (!DomWindowHelper.isAvailable())
7834
+ return;
7835
+ return window;
7836
+ };
7837
+ DomWindowHelper.hasOwn = function (propertyName) {
7838
+ if (!DomWindowHelper.isAvailable())
7839
+ return;
7840
+ return propertyName in window;
7841
+ };
7842
+ DomWindowHelper.getSelection = function () {
7843
+ if (DomWindowHelper.isAvailable() && window.getSelection) {
7844
+ return window.getSelection();
7845
+ }
7846
+ };
7847
+ DomWindowHelper.requestAnimationFrame = function (callback) {
7848
+ if (DomWindowHelper.isAvailable()) {
7849
+ return window.requestAnimationFrame(callback);
7850
+ }
7851
+ };
7852
+ DomWindowHelper.addEventListener = function (type, listener) {
7853
+ if (!DomWindowHelper.isAvailable())
7854
+ return;
7855
+ window.addEventListener(type, listener);
7856
+ };
7857
+ DomWindowHelper.removeEventListener = function (type, listener) {
7858
+ if (!DomWindowHelper.isAvailable())
7859
+ return;
7860
+ window.removeEventListener(type, listener);
7861
+ };
7862
+ return DomWindowHelper;
7863
+ }());
7864
+
7865
+ var DomDocumentHelper = /** @class */ (function () {
7866
+ function DomDocumentHelper() {
7867
+ }
7868
+ DomDocumentHelper.isAvailable = function () {
7869
+ return "undefined" !== typeof document;
7870
+ };
7871
+ DomDocumentHelper.getBody = function () {
7872
+ if (!DomDocumentHelper.isAvailable())
7873
+ return;
7874
+ return document.body;
7875
+ };
7876
+ DomDocumentHelper.getDocumentElement = function () {
7877
+ if (!DomDocumentHelper.isAvailable())
7878
+ return;
7879
+ return document.documentElement;
7880
+ };
7881
+ DomDocumentHelper.getDocument = function () {
7882
+ if (!DomDocumentHelper.isAvailable())
7883
+ return;
7884
+ return document;
7885
+ };
7886
+ DomDocumentHelper.getCookie = function () {
7887
+ if (!DomDocumentHelper.isAvailable())
7888
+ return;
7889
+ return document.cookie;
7890
+ };
7891
+ DomDocumentHelper.setCookie = function (newCookie) {
7892
+ if (!DomDocumentHelper.isAvailable())
7893
+ return;
7894
+ document.cookie = newCookie;
7895
+ };
7896
+ DomDocumentHelper.activeElementBlur = function () {
7897
+ if (!DomDocumentHelper.isAvailable())
7898
+ return;
7899
+ var activeElement = document.activeElement;
7900
+ if (!!activeElement && !!activeElement.blur) {
7901
+ activeElement.blur();
7902
+ }
7903
+ };
7904
+ DomDocumentHelper.createElement = function (tagName) {
7905
+ if (!DomDocumentHelper.isAvailable())
7906
+ return;
7907
+ return document.createElement(tagName);
7908
+ };
7909
+ DomDocumentHelper.getComputedStyle = function (elt) {
7910
+ if (!DomDocumentHelper.isAvailable())
7911
+ return new CSSStyleDeclaration();
7912
+ return document.defaultView.getComputedStyle(elt);
7913
+ };
7914
+ DomDocumentHelper.addEventListener = function (type, listener) {
7915
+ if (!DomDocumentHelper.isAvailable())
7916
+ return;
7917
+ document.addEventListener(type, listener);
7918
+ };
7919
+ DomDocumentHelper.removeEventListener = function (type, listener) {
7920
+ if (!DomDocumentHelper.isAvailable())
7921
+ return;
7922
+ document.removeEventListener(type, listener);
7923
+ };
7924
+ return DomDocumentHelper;
7925
+ }());
7926
+
7927
+
7928
+
7784
7929
  /***/ }),
7785
7930
 
7786
7931
  /***/ "./src/helpers.ts":
@@ -9869,23 +10014,9 @@ var JsonError = /** @class */ (function () {
9869
10014
  var JsonUnknownPropertyError = /** @class */ (function (_super) {
9870
10015
  __extends(JsonUnknownPropertyError, _super);
9871
10016
  function JsonUnknownPropertyError(propertyName, className) {
9872
- var _this = _super.call(this, "unknownproperty", "The property '" +
9873
- propertyName +
9874
- "' in class '" +
9875
- className +
9876
- "' is unknown.") || this;
10017
+ var _this = _super.call(this, "unknownproperty", "Unknown property in class '" + className + "': '" + propertyName + "'.") || this;
9877
10018
  _this.propertyName = propertyName;
9878
10019
  _this.className = className;
9879
- var properties = Serializer.getProperties(className);
9880
- if (properties) {
9881
- _this.description = "The list of available properties are: ";
9882
- for (var i = 0; i < properties.length; i++) {
9883
- if (i > 0)
9884
- _this.description += ", ";
9885
- _this.description += properties[i].name;
9886
- }
9887
- _this.description += ".";
9888
- }
9889
10020
  return _this;
9890
10021
  }
9891
10022
  return JsonUnknownPropertyError;
@@ -9898,14 +10029,6 @@ var JsonMissingTypeErrorBase = /** @class */ (function (_super) {
9898
10029
  _this.baseClassName = baseClassName;
9899
10030
  _this.type = type;
9900
10031
  _this.message = message;
9901
- _this.description = "The following types are available: ";
9902
- var types = Serializer.getChildrenClasses(baseClassName, true);
9903
- for (var i = 0; i < types.length; i++) {
9904
- if (i > 0)
9905
- _this.description += ", ";
9906
- _this.description += "'" + types[i].name + "'";
9907
- }
9908
- _this.description += ".";
9909
10032
  return _this;
9910
10033
  }
9911
10034
  return JsonMissingTypeErrorBase;
@@ -10368,6 +10491,7 @@ var defaultListCss = {
10368
10491
  itemWithIcon: "sv-list__item--with-icon",
10369
10492
  itemDisabled: "sv-list__item--disabled",
10370
10493
  itemFocused: "sv-list__item--focused",
10494
+ itemTextWrap: "sv-list__item-text--wrap",
10371
10495
  itemIcon: "sv-list__item-icon",
10372
10496
  itemSeparator: "sv-list__item-separator",
10373
10497
  itemBody: "sv-list__item-body",
@@ -10421,6 +10545,7 @@ var ListModel = /** @class */ (function (_super) {
10421
10545
  .append(_this.cssClasses.itemDisabled, _this.isItemDisabled(itemValue))
10422
10546
  .append(_this.cssClasses.itemFocused, _this.isItemFocused(itemValue))
10423
10547
  .append(_this.cssClasses.itemSelected, _this.isItemSelected(itemValue))
10548
+ .append(_this.cssClasses.itemTextWrap, _this.textWrapEnabled)
10424
10549
  .append(itemValue.css)
10425
10550
  .toString();
10426
10551
  };
@@ -10718,6 +10843,9 @@ var ListModel = /** @class */ (function (_super) {
10718
10843
  __decorate([
10719
10844
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: true })
10720
10845
  ], ListModel.prototype, "renderElements", void 0);
10846
+ __decorate([
10847
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
10848
+ ], ListModel.prototype, "textWrapEnabled", void 0);
10721
10849
  return ListModel;
10722
10850
  }(_actions_container__WEBPACK_IMPORTED_MODULE_1__["ActionContainer"]));
10723
10851
 
@@ -11488,6 +11616,7 @@ __webpack_require__.r(__webpack_exports__);
11488
11616
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createDialogOptions", function() { return createDialogOptions; });
11489
11617
  /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base */ "./src/base.ts");
11490
11618
  /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jsonobject */ "./src/jsonobject.ts");
11619
+ /* harmony import */ var _console_warnings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./console-warnings */ "./src/console-warnings.ts");
11491
11620
  var __extends = (undefined && undefined.__extends) || (function () {
11492
11621
  var extendStatics = function (d, b) {
11493
11622
  extendStatics = Object.setPrototypeOf ||
@@ -11511,6 +11640,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
11511
11640
  };
11512
11641
 
11513
11642
 
11643
+
11514
11644
  var PopupModel = /** @class */ (function (_super) {
11515
11645
  __extends(PopupModel, _super);
11516
11646
  function PopupModel(contentComponentName, contentComponentData, verticalPosition, horizontalPosition, showPointer, isModal, onCancel, onApply, onHide, onShow, cssClass, title, onDispose) {
@@ -11643,6 +11773,7 @@ function createDialogOptions(componentName, data, onApply, onCancel, onHide, onS
11643
11773
  if (onHide === void 0) { onHide = function () { }; }
11644
11774
  if (onShow === void 0) { onShow = function () { }; }
11645
11775
  if (displayMode === void 0) { displayMode = "popup"; }
11776
+ _console_warnings__WEBPACK_IMPORTED_MODULE_2__["ConsoleWarnings"].warn("The `showModal()` and `createDialogOptions()` methods are obsolete. Use the `showDialog()` method instead.");
11646
11777
  return {
11647
11778
  componentName: componentName,
11648
11779
  data: data,
@@ -12232,6 +12363,19 @@ var SurveyActionBar = /** @class */ (function (_super) {
12232
12363
  this.model.resetResponsivityManager();
12233
12364
  }
12234
12365
  };
12366
+ SurveyActionBar.prototype.componentDidUpdate = function (prevProps, prevState) {
12367
+ _super.prototype.componentDidUpdate.call(this, prevProps, prevState);
12368
+ if (prevProps.model == this.props.model) {
12369
+ return;
12370
+ }
12371
+ if (!!this.model.hasActions) {
12372
+ this.model.resetResponsivityManager();
12373
+ var container = this.rootRef.current;
12374
+ if (!!container) {
12375
+ this.model.initResponsivityManager(container, function (callback) { setTimeout(callback); });
12376
+ }
12377
+ }
12378
+ };
12235
12379
  SurveyActionBar.prototype.getStateElement = function () {
12236
12380
  return this.model;
12237
12381
  };
@@ -16058,8 +16202,8 @@ var SurveyPanelBase = /** @class */ (function (_super) {
16058
16202
  _super.prototype.componentDidUpdate.call(this, prevProps, prevState);
16059
16203
  if (!!prevProps.page &&
16060
16204
  !!this.survey &&
16061
- !!this.survey.currentPage &&
16062
- prevProps.page.id === this.survey.currentPage.id)
16205
+ !!this.survey.activePage &&
16206
+ prevProps.page.id === this.survey.activePage.id)
16063
16207
  return;
16064
16208
  this.doAfterRender();
16065
16209
  };
@@ -20857,7 +21001,7 @@ var SurveyQuestionText = /** @class */ (function (_super) {
20857
21001
  var inputClass = this.question.getControlClass();
20858
21002
  var placeholder = this.question.renderedPlaceholder;
20859
21003
  if (this.question.isReadOnlyRenderDiv()) {
20860
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", null, this.question.value);
21004
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", null, this.question.inputValue);
20861
21005
  }
20862
21006
  var counter = !!this.question.getMaxLength() ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_character_counter__WEBPACK_IMPORTED_MODULE_3__["CharacterCounterComponent"], { counter: this.question.characterCounter, remainingCharacterCounter: this.question.cssClasses.remainingCharacterCounter })) : null;
20863
21007
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
@@ -20873,6 +21017,12 @@ var SurveyQuestionText = /** @class */ (function (_super) {
20873
21017
  this.renderDataList()) :
20874
21018
  this.renderInput());
20875
21019
  };
21020
+ SurveyQuestionText.prototype.setValueCore = function (newValue) {
21021
+ this.question.inputValue = newValue;
21022
+ };
21023
+ SurveyQuestionText.prototype.getValueCore = function () {
21024
+ return this.question.inputValue;
21025
+ };
20876
21026
  SurveyQuestionText.prototype.renderDataList = function () {
20877
21027
  if (!this.question.dataListId)
20878
21028
  return null;
@@ -21739,23 +21889,25 @@ var SurveyQuestionTagboxItem = /** @class */ (function (_super) {
21739
21889
  "use strict";
21740
21890
  __webpack_require__.r(__webpack_exports__);
21741
21891
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settings", function() { return settings; });
21742
- /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
21892
+ /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./global_variables_utils */ "./src/global_variables_utils.ts");
21893
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
21894
+
21743
21895
 
21744
21896
  var document = typeof globalThis !== "undefined" ? globalThis.document : undefined.document;
21745
21897
  var defaultEnvironment = (!!document ? {
21746
21898
  root: document,
21747
- _rootElement: document.body,
21899
+ _rootElement: _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomDocumentHelper"].getBody(),
21748
21900
  get rootElement() {
21749
21901
  var _a;
21750
- return (_a = this._rootElement) !== null && _a !== void 0 ? _a : document.body;
21902
+ return (_a = this._rootElement) !== null && _a !== void 0 ? _a : _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomDocumentHelper"].getBody();
21751
21903
  },
21752
21904
  set rootElement(rootElement) {
21753
21905
  this._rootElement = rootElement;
21754
21906
  },
21755
- _popupMountContainer: document.body,
21907
+ _popupMountContainer: _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomDocumentHelper"].getBody(),
21756
21908
  get popupMountContainer() {
21757
21909
  var _a;
21758
- return (_a = this._popupMountContainer) !== null && _a !== void 0 ? _a : document.body;
21910
+ return (_a = this._popupMountContainer) !== null && _a !== void 0 ? _a : _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomDocumentHelper"].getBody();
21759
21911
  },
21760
21912
  set popupMountContainer(popupMountContainer) {
21761
21913
  this._popupMountContainer = popupMountContainer;
@@ -21804,7 +21956,7 @@ var settings = {
21804
21956
  * Nested properties:
21805
21957
  *
21806
21958
  * - `useLocalTimeZone`: `boolean`\
21807
- * Disable this property if you want internal SurveyJS functions to use methods that work with UTC date and time (`setUTCDate()` `setUTCHours()`, etc.) instead of methods that work with local date and time (`setYear`, `setHours()`, etc.). Default value: `true`.
21959
+ * Disable this property if you want internal SurveyJS functions to use methods that work with UTC date and time (`setUTCDate()` `setUTCHours()`, etc.) instead of methods that work with local date and time (`setYear()`, `setHours()`, etc.). Default value: `true`.
21808
21960
  *
21809
21961
  * - `defaultLocaleName`: `string`\
21810
21962
  * A property key that stores a translation for the default locale. Default value: `"default"`.
@@ -21950,7 +22102,8 @@ var settings = {
21950
22102
  * - `enabled`: `boolean`\
21951
22103
  * Specifies whether to add questions to the DOM only when they get into the viewport. Default value: `false`.
21952
22104
  *
21953
- * > Lazy rendering is an experimental feature that may not work as expected in all use cases.
22105
+ * [View Demo](https://surveyjs.io/form-library/examples/survey-lazy/ (linkStyle))
22106
+ * @see [SurveyModel.lazyRendering](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#lazyRendering)
21954
22107
  */
21955
22108
  lazyRender: {
21956
22109
  enabled: false,
@@ -22184,7 +22337,7 @@ var settings = {
22184
22337
  * @param callback A callback function that should be called with `true` if a user confirms an action or `false` otherwise.
22185
22338
  */
22186
22339
  confirmActionAsync: function (message, callback, applyTitle, locale, rootElement) {
22187
- return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["showConfirmDialog"])(message, callback, applyTitle, locale, rootElement);
22340
+ return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["showConfirmDialog"])(message, callback, applyTitle, locale, rootElement);
22188
22341
  },
22189
22342
  /**
22190
22343
  * A minimum width value for all survey elements.
@@ -22424,7 +22577,30 @@ var settings = {
22424
22577
  "impp",
22425
22578
  ]
22426
22579
  },
22427
- legacyProgressBarView: false
22580
+ legacyProgressBarView: false,
22581
+ /**
22582
+ * An object with properties that configure input masks.
22583
+ *
22584
+ * Nested properties:
22585
+ *
22586
+ * - `patternPlaceholderChar`: `string`\
22587
+ * A symbol used as a placeholder for characters to be entered in [pattern masks](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern). Default value: `"_"`.
22588
+ *
22589
+ * - `patternEscapeChar`: `string`\
22590
+ * A symbol used to insert literal representations of special characters in [pattern masks](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern). Default value: `"\\"`.
22591
+ *
22592
+ * - `patternDefinitions`: `<{ [key: string]: RegExp }>`\
22593
+ * An object that maps placeholder symbols to regular expressions in [pattern masks](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern). Default value: `{ "9": /[0-9]/, "a": /[a-zA-Z]/, "#": /[a-zA-Z0-9]/ }`.
22594
+ */
22595
+ maskSettings: {
22596
+ patternPlaceholderChar: "_",
22597
+ patternEscapeChar: "\\",
22598
+ patternDefinitions: {
22599
+ "9": /[0-9]/,
22600
+ "a": /[a-zA-Z]/,
22601
+ "#": /[a-zA-Z0-9]/
22602
+ }
22603
+ }
22428
22604
  };
22429
22605
 
22430
22606
 
@@ -22449,6 +22625,7 @@ __webpack_require__.r(__webpack_exports__);
22449
22625
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
22450
22626
  /* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./actions/container */ "./src/actions/container.ts");
22451
22627
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
22628
+ /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./global_variables_utils */ "./src/global_variables_utils.ts");
22452
22629
  var __extends = (undefined && undefined.__extends) || (function () {
22453
22630
  var extendStatics = function (d, b) {
22454
22631
  extendStatics = Object.setPrototypeOf ||
@@ -22477,6 +22654,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
22477
22654
 
22478
22655
 
22479
22656
 
22657
+
22480
22658
  /**
22481
22659
  * A base class for the [`SurveyElement`](https://surveyjs.io/form-library/documentation/surveyelement) and [`SurveyModel`](https://surveyjs.io/form-library/documentation/surveymodel) classes.
22482
22660
  */
@@ -22694,13 +22872,25 @@ var SurveyElement = /** @class */ (function (_super) {
22694
22872
  if (!elementId || typeof root === "undefined")
22695
22873
  return false;
22696
22874
  var el = root.getElementById(elementId);
22875
+ return SurveyElement.ScrollElementToViewCore(el, false, scrollIfVisible);
22876
+ };
22877
+ SurveyElement.ScrollElementToViewCore = function (el, checkLeft, scrollIfVisible) {
22697
22878
  if (!el || !el.scrollIntoView)
22698
22879
  return false;
22699
- var elemTop = scrollIfVisible ? -1 : el.getBoundingClientRect().top;
22700
- var needScroll = elemTop < 0;
22701
- if (!needScroll && !!window) {
22702
- var height = window.innerHeight;
22703
- needScroll = height > 0 && height < elemTop;
22880
+ var elTop = scrollIfVisible ? -1 : el.getBoundingClientRect().top;
22881
+ var needScroll = elTop < 0;
22882
+ var elLeft = -1;
22883
+ if (!needScroll && checkLeft) {
22884
+ elLeft = el.getBoundingClientRect().left;
22885
+ needScroll = elLeft < 0;
22886
+ }
22887
+ if (!needScroll && _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomWindowHelper"].isAvailable()) {
22888
+ var height = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomWindowHelper"].getInnerHeight();
22889
+ needScroll = height > 0 && height < elTop;
22890
+ if (!needScroll && checkLeft) {
22891
+ var width = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomWindowHelper"].getInnerWidth();
22892
+ needScroll = width > 0 && width < elLeft;
22893
+ }
22704
22894
  }
22705
22895
  if (needScroll) {
22706
22896
  el.scrollIntoView();
@@ -22726,7 +22916,7 @@ var SurveyElement = /** @class */ (function (_super) {
22726
22916
  return null;
22727
22917
  };
22728
22918
  SurveyElement.FocusElement = function (elementId) {
22729
- if (!elementId || typeof document === "undefined")
22919
+ if (!elementId || !_global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomDocumentHelper"].isAvailable())
22730
22920
  return false;
22731
22921
  var res = SurveyElement.focusElementCore(elementId);
22732
22922
  if (!res) {
@@ -22743,6 +22933,7 @@ var SurveyElement = /** @class */ (function (_super) {
22743
22933
  var el = root.getElementById(elementId);
22744
22934
  // https://stackoverflow.com/questions/19669786/check-if-element-is-visible-in-dom
22745
22935
  if (el && !el["disabled"] && el.style.display !== "none" && el.offsetParent !== null) {
22936
+ SurveyElement.ScrollElementToViewCore(el, true, false);
22746
22937
  el.focus();
22747
22938
  return true;
22748
22939
  }
@@ -23640,12 +23831,13 @@ var SurveyElement = /** @class */ (function (_super) {
23640
23831
  });
23641
23832
  SurveyElement.prototype.isContainsSelection = function (el) {
23642
23833
  var elementWithSelection = undefined;
23643
- if ((typeof document !== "undefined") && document["selection"]) {
23644
- elementWithSelection = document["selection"].createRange().parentElement();
23834
+ var _document = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomDocumentHelper"].getDocument();
23835
+ if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomDocumentHelper"].isAvailable() && !!_document && _document["selection"]) {
23836
+ elementWithSelection = _document["selection"].createRange().parentElement();
23645
23837
  }
23646
23838
  else {
23647
- var selection = window.getSelection();
23648
- if (selection.rangeCount > 0) {
23839
+ var selection = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomWindowHelper"].getSelection();
23840
+ if (!!selection && selection.rangeCount > 0) {
23649
23841
  var range = selection.getRangeAt(0);
23650
23842
  if (range.startOffset !== range.endOffset) {
23651
23843
  elementWithSelection = range.startContainer.parentNode;
@@ -23898,7 +24090,8 @@ var CssClassBuilder = /** @class */ (function () {
23898
24090
  __webpack_require__.r(__webpack_exports__);
23899
24091
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResponsivityManager", function() { return ResponsivityManager; });
23900
24092
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VerticalResponsivityManager", function() { return VerticalResponsivityManager; });
23901
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./src/utils/utils.ts");
24093
+ /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../global_variables_utils */ "./src/global_variables_utils.ts");
24094
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/utils/utils.ts");
23902
24095
  var __extends = (undefined && undefined.__extends) || (function () {
23903
24096
  var extendStatics = function (d, b) {
23904
24097
  extendStatics = Object.setPrototypeOf ||
@@ -23915,6 +24108,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
23915
24108
  };
23916
24109
  })();
23917
24110
 
24111
+
23918
24112
  var ResponsivityManager = /** @class */ (function () {
23919
24113
  function ResponsivityManager(container, model, itemsSelector, dotsItemSize, delayedUpdateFunction) {
23920
24114
  var _this = this;
@@ -23932,7 +24126,9 @@ var ResponsivityManager = /** @class */ (function () {
23932
24126
  this.paddingSizeConst = 8;
23933
24127
  this.dotsSizeConst = 48;
23934
24128
  this.recalcMinDimensionConst = true;
23935
- this.getComputedStyle = window.getComputedStyle.bind(window);
24129
+ this.getComputedStyle = function (elt) {
24130
+ return _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomDocumentHelper"].getComputedStyle(elt);
24131
+ };
23936
24132
  this.model.updateCallback = function (isResetInitialized) {
23937
24133
  if (isResetInitialized)
23938
24134
  _this.isInitialized = false;
@@ -23940,7 +24136,7 @@ var ResponsivityManager = /** @class */ (function () {
23940
24136
  };
23941
24137
  if (typeof ResizeObserver !== "undefined") {
23942
24138
  this.resizeObserver = new ResizeObserver(function (entries) {
23943
- window.requestAnimationFrame(function () {
24139
+ _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
23944
24140
  _this.process();
23945
24141
  });
23946
24142
  });
@@ -23999,7 +24195,7 @@ var ResponsivityManager = /** @class */ (function () {
23999
24195
  };
24000
24196
  Object.defineProperty(ResponsivityManager.prototype, "isContainerVisible", {
24001
24197
  get: function () {
24002
- return Object(_utils__WEBPACK_IMPORTED_MODULE_0__["isContainerVisible"])(this.container);
24198
+ return Object(_utils__WEBPACK_IMPORTED_MODULE_1__["isContainerVisible"])(this.container);
24003
24199
  },
24004
24200
  enumerable: false,
24005
24201
  configurable: true
@@ -24139,6 +24335,8 @@ __webpack_require__.r(__webpack_exports__);
24139
24335
  /* harmony import */ var _localizablestring__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../localizablestring */ "./src/localizablestring.ts");
24140
24336
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../settings */ "./src/settings.ts");
24141
24337
  /* harmony import */ var _surveyStrings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../surveyStrings */ "./src/surveyStrings.ts");
24338
+ /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../global_variables_utils */ "./src/global_variables_utils.ts");
24339
+
24142
24340
 
24143
24341
 
24144
24342
 
@@ -24174,18 +24372,14 @@ function confirmActionAsync(message, funcOnYes, funcOnNo, locale, rootElement) {
24174
24372
  callbackFunc(confirmAction(message));
24175
24373
  }
24176
24374
  function detectIEBrowser() {
24177
- if (typeof window === "undefined")
24178
- return false;
24179
- var ua = window.navigator.userAgent;
24375
+ var ua = navigator.userAgent;
24180
24376
  var oldIe = ua.indexOf("MSIE ");
24181
24377
  var elevenIe = ua.indexOf("Trident/");
24182
24378
  return oldIe > -1 || elevenIe > -1;
24183
24379
  }
24184
24380
  function detectIEOrEdge() {
24185
- if (typeof window === "undefined")
24186
- return false;
24187
24381
  if (typeof detectIEOrEdge.isIEOrEdge === "undefined") {
24188
- var ua = window.navigator.userAgent;
24382
+ var ua = navigator.userAgent;
24189
24383
  var msie = ua.indexOf("MSIE ");
24190
24384
  var trident = ua.indexOf("Trident/");
24191
24385
  var edge = ua.indexOf("Edge/");
@@ -24209,16 +24403,14 @@ function loadFileFromBase64(b64Data, fileName) {
24209
24403
  }
24210
24404
  // write the ArrayBuffer to a blob, and you're done
24211
24405
  var bb = new Blob([ab], { type: mimeString });
24212
- if (typeof window !== "undefined" &&
24213
- window.navigator &&
24214
- window.navigator["msSaveBlob"]) {
24215
- window.navigator["msSaveOrOpenBlob"](bb, fileName);
24406
+ if (!!navigator && navigator["msSaveBlob"]) {
24407
+ navigator["msSaveOrOpenBlob"](bb, fileName);
24216
24408
  }
24217
24409
  }
24218
24410
  catch (err) { }
24219
24411
  }
24220
24412
  function isMobile() {
24221
- return (typeof window !== "undefined" && typeof window.orientation !== "undefined");
24413
+ return (_global_variables_utils__WEBPACK_IMPORTED_MODULE_3__["DomWindowHelper"].isAvailable() && _global_variables_utils__WEBPACK_IMPORTED_MODULE_3__["DomWindowHelper"].hasOwn("orientation"));
24222
24414
  }
24223
24415
  var isShadowDOM = function (rootElement) {
24224
24416
  return !!rootElement && !!("host" in rootElement && rootElement.host);
@@ -24237,7 +24429,7 @@ function isElementVisible(element, threshold) {
24237
24429
  ? root.host.clientHeight
24238
24430
  : root.documentElement.clientHeight;
24239
24431
  var elementRect = element.getBoundingClientRect();
24240
- var viewHeight = Math.max(clientHeight, window.innerHeight);
24432
+ var viewHeight = Math.max(clientHeight, _global_variables_utils__WEBPACK_IMPORTED_MODULE_3__["DomWindowHelper"].getInnerHeight());
24241
24433
  var topWin = -threshold;
24242
24434
  var bottomWin = viewHeight + threshold;
24243
24435
  var topEl = elementRect.top;
@@ -24279,9 +24471,10 @@ function scrollElementByChildId(id) {
24279
24471
  }
24280
24472
  }
24281
24473
  function navigateToUrl(url) {
24282
- if (!url || typeof window === "undefined" || !window.location)
24474
+ var location = _global_variables_utils__WEBPACK_IMPORTED_MODULE_3__["DomWindowHelper"].getLocation();
24475
+ if (!url || !location)
24283
24476
  return;
24284
- window.location.href = url;
24477
+ location.href = url;
24285
24478
  }
24286
24479
  function wrapUrlForBackgroundImage(url) {
24287
24480
  return !!url ? ["url(", url, ")"].join("") : "";
@@ -24311,7 +24504,7 @@ function createSvg(size, width, height, iconName, svgElem, title) {
24311
24504
  }
24312
24505
  else {
24313
24506
  if (!titleElement) {
24314
- titleElement = document.createElementNS("http://www.w3.org/2000/svg", "title");
24507
+ titleElement = _global_variables_utils__WEBPACK_IMPORTED_MODULE_3__["DomDocumentHelper"].getDocument().createElementNS("http://www.w3.org/2000/svg", "title");
24315
24508
  svgElem.appendChild(titleElement);
24316
24509
  }
24317
24510
  }
@@ -24418,7 +24611,7 @@ function increaseHeightByContent(element, getComputedStyle) {
24418
24611
  if (!element)
24419
24612
  return;
24420
24613
  if (!getComputedStyle)
24421
- getComputedStyle = function (elt) { return window.getComputedStyle(elt); };
24614
+ getComputedStyle = function (elt) { return _global_variables_utils__WEBPACK_IMPORTED_MODULE_3__["DomDocumentHelper"].getComputedStyle(elt); };
24422
24615
  var style = getComputedStyle(element);
24423
24616
  element.style.height = "auto";
24424
24617
  if (!!element.scrollHeight) {
@@ -24465,8 +24658,8 @@ function findParentByClassNames(element, classNames) {
24465
24658
  }
24466
24659
  function sanitizeEditableContent(element, cleanLineBreaks) {
24467
24660
  if (cleanLineBreaks === void 0) { cleanLineBreaks = true; }
24468
- if (window.getSelection && document.createRange && element.childNodes.length > 0) {
24469
- var selection = document.getSelection();
24661
+ if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_3__["DomWindowHelper"].isAvailable() && _global_variables_utils__WEBPACK_IMPORTED_MODULE_3__["DomDocumentHelper"].isAvailable() && element.childNodes.length > 0) {
24662
+ var selection = _global_variables_utils__WEBPACK_IMPORTED_MODULE_3__["DomWindowHelper"].getSelection();
24470
24663
  if (selection.rangeCount == 0) {
24471
24664
  return;
24472
24665
  }
@@ -24484,14 +24677,19 @@ function sanitizeEditableContent(element, cleanLineBreaks) {
24484
24677
  }
24485
24678
  var tail_len = tail.length;
24486
24679
  element.innerText = innerText;
24487
- range = document.createRange();
24680
+ range = _global_variables_utils__WEBPACK_IMPORTED_MODULE_3__["DomDocumentHelper"].getDocument().createRange();
24488
24681
  range.setStart(element.firstChild, 0);
24489
24682
  range.setEnd(element.firstChild, 0);
24490
24683
  selection.removeAllRanges();
24491
24684
  selection.addRange(range);
24492
- for (var i = 0; i < innerText.length - tail_len; i++) {
24493
- selection.modify("move", "forward", "character");
24685
+ while (selection.toString().length < innerText.length - tail_len) {
24686
+ var selLen = selection.toString().length;
24687
+ selection.modify("extend", "forward", "character");
24688
+ if (selection.toString().length == selLen)
24689
+ break;
24494
24690
  }
24691
+ range = selection.getRangeAt(0);
24692
+ range.setStart(range.endContainer, range.endOffset);
24495
24693
  }
24496
24694
  }
24497
24695
  function mergeValues(src, dest) {
@@ -24560,11 +24758,11 @@ function configConfirmDialog(popupViewModel) {
24560
24758
  popupViewModel.width = "min-content";
24561
24759
  }
24562
24760
  function chooseFiles(input, callback) {
24563
- if (!window || !window["FileReader"])
24761
+ if (!_global_variables_utils__WEBPACK_IMPORTED_MODULE_3__["DomWindowHelper"].isFileReaderAvailable())
24564
24762
  return;
24565
24763
  input.value = "";
24566
24764
  input.onchange = function (event) {
24567
- if (!window["FileReader"])
24765
+ if (!_global_variables_utils__WEBPACK_IMPORTED_MODULE_3__["DomWindowHelper"].isFileReaderAvailable())
24568
24766
  return;
24569
24767
  if (!input || !input.files || input.files.length < 1)
24570
24768
  return;