survey-react 1.9.107 → 1.9.108

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.107
2
+ * surveyjs - Survey JavaScript library v1.9.108
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
  */
@@ -734,6 +734,9 @@ function createDropdownActionModel(actionOptions, dropdownOptions, locOwner) {
734
734
  }
735
735
  function createDropdownActionModelAdvanced(actionOptions, listOptions, popupOptions, locOwner) {
736
736
  var listModel = new _list__WEBPACK_IMPORTED_MODULE_3__["ListModel"](listOptions.items, function (item) {
737
+ if (newAction.hasTitle) {
738
+ newAction.title = item.title;
739
+ }
737
740
  listOptions.onSelectionChanged(item);
738
741
  innerPopupModel.toggleVisibility();
739
742
  }, listOptions.allowSelection, listOptions.selectedItem, listOptions.onFilterStringChangedCallback);
@@ -968,7 +971,9 @@ var Action = /** @class */ (function (_super) {
968
971
  //Object.assign(this, item) to support IE11
969
972
  if (!!innerItem) {
970
973
  for (var key in innerItem) {
971
- _this[key] = innerItem[key];
974
+ if (key !== "locTitle") {
975
+ _this[key] = innerItem[key];
976
+ }
972
977
  }
973
978
  }
974
979
  if (!!_this.locTitleName) {
@@ -5403,6 +5408,7 @@ var defaultV2Css = {
5403
5408
  },
5404
5409
  checkbox: {
5405
5410
  root: "sd-selectbase",
5411
+ rootMobile: "sd-selectbase--mobile",
5406
5412
  rootRow: "sd-selectbase--row",
5407
5413
  rootMultiColumn: "sd-selectbase--multi-column",
5408
5414
  item: "sd-item sd-checkbox sd-selectbase__item",
@@ -5425,6 +5431,7 @@ var defaultV2Css = {
5425
5431
  },
5426
5432
  radiogroup: {
5427
5433
  root: "sd-selectbase",
5434
+ rootMobile: "sd-selectbase--mobile",
5428
5435
  rootRow: "sd-selectbase--row",
5429
5436
  rootMultiColumn: "sd-selectbase--multi-column",
5430
5437
  item: "sd-item sd-radio sd-selectbase__item",
@@ -5480,7 +5487,7 @@ var defaultV2Css = {
5480
5487
  checkboxItemIndeterminate: "sd-checkbox--intermediate",
5481
5488
  checkboxItemChecked: "sd-item--checked sd-checkbox--checked",
5482
5489
  checkboxItemDecorator: "sd-item__svg sd-checkbox__svg",
5483
- checkboxItemDisabled: "sd-checkbox--disabled",
5490
+ checkboxItemDisabled: "sd-item--disabled sd-checkbox--disabled",
5484
5491
  controlCheckbox: "sd-visuallyhidden sd-item__control sd-checkbox__control",
5485
5492
  checkboxMaterialDecorator: "sd-item__decorator sd-checkbox__decorator",
5486
5493
  checkboxControlLabel: "sd-item__control-label",
@@ -5496,8 +5503,11 @@ var defaultV2Css = {
5496
5503
  },
5497
5504
  multipletext: {
5498
5505
  root: "sd-multipletext",
5506
+ rootMobile: "sd-multipletext--mobile",
5499
5507
  itemLabel: "sd-multipletext__item-container sd-input",
5500
5508
  itemLabelOnError: "sd-multipletext__item-container--error",
5509
+ itemLabelAllowFocus: "sd-multipletext__item-container--allow-focus",
5510
+ itemLabelAnswered: "sd-multipletext__item-container--answered",
5501
5511
  item: "sd-multipletext__item",
5502
5512
  itemTitle: "sd-multipletext__item-title",
5503
5513
  content: "sd-multipletext__content sd-question__content",
@@ -5721,6 +5731,7 @@ var defaultV2Css = {
5721
5731
  expression: "sd-expression",
5722
5732
  file: {
5723
5733
  root: "sd-file",
5734
+ rootDragging: "sd-file--dragging",
5724
5735
  other: "sd-input sd-comment",
5725
5736
  placeholderInput: "sd-visuallyhidden",
5726
5737
  preview: "sd-file__preview",
@@ -6780,9 +6791,7 @@ var DragDropDOMAdapter = /** @class */ (function () {
6780
6791
  _this.currentY = pointerMoveEvent.pageY;
6781
6792
  if (_this.isMicroMovement)
6782
6793
  return;
6783
- document.body.style.setProperty("touch-action", "");
6784
- document.body.style.setProperty("user-select", "");
6785
- document.body.style.setProperty("-webkit-user-select", "");
6794
+ _this.returnUserSelectBack();
6786
6795
  _this.stopLongTap();
6787
6796
  };
6788
6797
  this.stopLongTap = function (e) {
@@ -6830,9 +6839,7 @@ var DragDropDOMAdapter = /** @class */ (function () {
6830
6839
  }
6831
6840
  _this.savedTargetNode = null;
6832
6841
  _this.savedTargetNodeParent = null;
6833
- document.body.style.setProperty("touch-action", "");
6834
- document.body.style.setProperty("user-select", "");
6835
- document.body.style.setProperty("-webkit-user-select", "");
6842
+ _this.returnUserSelectBack();
6836
6843
  };
6837
6844
  this.drop = function () {
6838
6845
  _this.dd.drop();
@@ -6869,8 +6876,7 @@ var DragDropDOMAdapter = /** @class */ (function () {
6869
6876
  this.startX = event.pageX;
6870
6877
  this.startY = event.pageY;
6871
6878
  document.body.style.setProperty("touch-action", "none", "important");
6872
- document.body.style.setProperty("user-select", "none", "important");
6873
- document.body.style.setProperty("-webkit-user-select", "none", "important");
6879
+ document.body.style.setProperty("-webkit-touch-callout", "none", "important");
6874
6880
  this.timeoutID = setTimeout(function () {
6875
6881
  _this.doStartDrag(event, draggedElement, parentElement, draggedElementNode);
6876
6882
  if (!preventSaveTargetNode) {
@@ -7019,8 +7025,16 @@ var DragDropDOMAdapter = /** @class */ (function () {
7019
7025
  this.draggedElementShortcut.addEventListener("contextmenu", this.onContextMenu);
7020
7026
  }
7021
7027
  };
7028
+ DragDropDOMAdapter.prototype.returnUserSelectBack = function () {
7029
+ document.body.style.setProperty("touch-action", "auto");
7030
+ document.body.style.setProperty("user-select", "auto");
7031
+ document.body.style.setProperty("-webkit-user-select", "auto");
7032
+ document.body.style.setProperty("-webkit-touch-callout", "default");
7033
+ };
7022
7034
  DragDropDOMAdapter.prototype.startDrag = function (event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode) {
7023
7035
  if (preventSaveTargetNode === void 0) { preventSaveTargetNode = false; }
7036
+ document.body.style.setProperty("user-select", "none", "important");
7037
+ document.body.style.setProperty("-webkit-user-select", "none", "important");
7024
7038
  if (_utils_devices__WEBPACK_IMPORTED_MODULE_1__["IsTouch"]) {
7025
7039
  this.startLongTapProcessing(event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode);
7026
7040
  return;
@@ -9214,8 +9228,8 @@ __webpack_require__.r(__webpack_exports__);
9214
9228
  //import "../../modern.scss";
9215
9229
  var Version;
9216
9230
  var ReleaseDate;
9217
- Version = "" + "1.9.107";
9218
- ReleaseDate = "" + "2023-09-11";
9231
+ Version = "" + "1.9.108";
9232
+ ReleaseDate = "" + "2023-09-19";
9219
9233
  function checkLibraryVersion(ver, libraryName) {
9220
9234
  if (Version != ver) {
9221
9235
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -16058,6 +16072,32 @@ function weekday(params) {
16058
16072
  return date.getDay();
16059
16073
  }
16060
16074
  FunctionFactory.Instance.register("weekday", weekday);
16075
+ function getQuestionValueByContext(context, name) {
16076
+ if (!context || !name)
16077
+ return undefined;
16078
+ var keys = ["row", "panel", "survey"];
16079
+ for (var i = 0; i < keys.length; i++) {
16080
+ var ctx = context[keys[i]];
16081
+ if (ctx && ctx.getQuestionByName) {
16082
+ var res = ctx.getQuestionByName(name);
16083
+ if (res)
16084
+ return res;
16085
+ }
16086
+ }
16087
+ return null;
16088
+ }
16089
+ function displayValue(params) {
16090
+ var q = getQuestionValueByContext(this, params[0]);
16091
+ return q ? q.displayValue : "";
16092
+ }
16093
+ FunctionFactory.Instance.register("displayValue", displayValue);
16094
+ function propertyValue(params) {
16095
+ if (params.length !== 2 || !params[0] || !params[1])
16096
+ return undefined;
16097
+ var q = getQuestionValueByContext(this, params[0]);
16098
+ return q ? q[params[1]] : undefined;
16099
+ }
16100
+ FunctionFactory.Instance.register("propertyValue", propertyValue);
16061
16101
 
16062
16102
 
16063
16103
  /***/ }),
@@ -27649,6 +27689,13 @@ var PageModel = /** @class */ (function (_super) {
27649
27689
  this.locNavigationTitle.strChanged();
27650
27690
  this.locNavigationDescription.strChanged();
27651
27691
  };
27692
+ Object.defineProperty(PageModel.prototype, "renderedNavigationTitle", {
27693
+ get: function () {
27694
+ return this.locNavigationTitle.renderedHtml || this.title || this.name;
27695
+ },
27696
+ enumerable: false,
27697
+ configurable: true
27698
+ });
27652
27699
  Object.defineProperty(PageModel.prototype, "passed", {
27653
27700
  get: function () {
27654
27701
  return this.getPropertyValue("passed", false);
@@ -28287,6 +28334,13 @@ var PanelModelBase = /** @class */ (function (_super) {
28287
28334
  this.elements[i].locStrsChanged();
28288
28335
  }
28289
28336
  };
28337
+ Object.defineProperty(PanelModelBase.prototype, "renderedNavigationTitle", {
28338
+ get: function () {
28339
+ return this.title || this.name;
28340
+ },
28341
+ enumerable: false,
28342
+ configurable: true
28343
+ });
28290
28344
  Object.defineProperty(PanelModelBase.prototype, "requiredText", {
28291
28345
  /**
28292
28346
  * Returns a character or text string that indicates a required panel/page.
@@ -29494,10 +29548,10 @@ var PanelModelBase = /** @class */ (function (_super) {
29494
29548
  }
29495
29549
  this.runConditionCore(values, properties);
29496
29550
  };
29497
- PanelModelBase.prototype.onAnyValueChanged = function (name) {
29551
+ PanelModelBase.prototype.onAnyValueChanged = function (name, questionName) {
29498
29552
  var els = this.elements;
29499
29553
  for (var i = 0; i < els.length; i++) {
29500
- els[i].onAnyValueChanged(name);
29554
+ els[i].onAnyValueChanged(name, questionName);
29501
29555
  }
29502
29556
  };
29503
29557
  PanelModelBase.prototype.checkBindings = function (valueName, value) {
@@ -29905,20 +29959,9 @@ var PanelModel = /** @class */ (function (_super) {
29905
29959
  enumerable: false,
29906
29960
  configurable: true
29907
29961
  });
29908
- Object.defineProperty(PanelModel.prototype, "footerToolbarCss", {
29909
- get: function () {
29910
- var _a;
29911
- return this.footerToolbarCssValue || ((_a = this.cssClasses.panel) === null || _a === void 0 ? void 0 : _a.footer);
29912
- },
29913
- set: function (val) {
29914
- this.footerToolbarCssValue = val;
29915
- },
29916
- enumerable: false,
29917
- configurable: true
29918
- });
29919
29962
  PanelModel.prototype.getFooterToolbar = function () {
29920
29963
  var _this = this;
29921
- var _a;
29964
+ var _a, _b;
29922
29965
  if (!this.footerToolbarValue) {
29923
29966
  var actions = this.footerActions;
29924
29967
  if (this.hasEditButton) {
@@ -29936,9 +29979,13 @@ var PanelModel = /** @class */ (function (_super) {
29936
29979
  actions = (_a = this.survey) === null || _a === void 0 ? void 0 : _a.getUpdatedPanelFooterActions(this, actions);
29937
29980
  }
29938
29981
  this.footerToolbarValue = this.createActionContainer(this.allowAdaptiveActions);
29939
- // if (!!this.cssClasses.panel) {
29940
- this.footerToolbarValue.containerCss = this.footerToolbarCss;
29941
- // }
29982
+ var footerCss = this.onGetFooterToolbarCssCallback ? this.onGetFooterToolbarCssCallback() : "";
29983
+ if (!footerCss) {
29984
+ footerCss = (_b = this.cssClasses.panel) === null || _b === void 0 ? void 0 : _b.footer;
29985
+ }
29986
+ if (footerCss) {
29987
+ this.footerToolbarValue.containerCss = footerCss;
29988
+ }
29942
29989
  this.footerToolbarValue.setItems(actions);
29943
29990
  }
29944
29991
  return this.footerToolbarValue;
@@ -31870,7 +31917,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
31870
31917
 
31871
31918
 
31872
31919
  /**
31873
- * A Model for a survey running in the Popup Window.
31920
+ * A class that renders a survey in a pop-up window.
31874
31921
  *
31875
31922
  * [View Demo](https://surveyjs.io/form-library/examples/popup-survey/ (linkStyle))
31876
31923
  */
@@ -31880,7 +31927,11 @@ var PopupSurveyModel = /** @class */ (function (_super) {
31880
31927
  if (initialModel === void 0) { initialModel = null; }
31881
31928
  var _this = _super.call(this) || this;
31882
31929
  /**
31883
- * Set this value to negative value, for example -1, to avoid closing the popup window on completing the survey. Leave it equals to 0 (default value) to close the popup window immediately, or set it to 3, 5, 10, ... to close the popup window in 3, 5, 10 seconds.
31930
+ * Specifies how many seconds the pop-up window should remain open after users complete the survey.
31931
+ *
31932
+ * Default value: 0 (the window is closed immediately)
31933
+ *
31934
+ * Set this property to a negative value (for instance, -1) to keep the pop-up window open without a time limit.
31884
31935
  */
31885
31936
  _this.closeOnCompleteTimeout = 0;
31886
31937
  if (initialModel) {
@@ -31915,8 +31966,7 @@ var PopupSurveyModel = /** @class */ (function (_super) {
31915
31966
  };
31916
31967
  Object.defineProperty(PopupSurveyModel.prototype, "survey", {
31917
31968
  /**
31918
- * A survey object.
31919
- * @see SurveyModel
31969
+ * A [`SurveyModel`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model) instance rendered in the pop-up window.
31920
31970
  */
31921
31971
  get: function () {
31922
31972
  return this.surveyValue;
@@ -31926,9 +31976,9 @@ var PopupSurveyModel = /** @class */ (function (_super) {
31926
31976
  });
31927
31977
  Object.defineProperty(PopupSurveyModel.prototype, "isShowing", {
31928
31978
  /**
31929
- * Returns true if the popup window is currently showing. Set it to true to show the popup window and false to hide it.
31930
- * @see show
31931
- * @see hide
31979
+ * Indicates whether the pop-up survey appears on the page, regardless of its [expand state](#isExpanded).
31980
+ *
31981
+ * You can set this property to `true` or `false` to control visibility of the pop-up survey. Alternatively, you can use the [`show()`](#show) and [`hide()`](#hide) methods.
31932
31982
  */
31933
31983
  get: function () {
31934
31984
  return this.getPropertyValue("isShowing", false);
@@ -31940,26 +31990,30 @@ var PopupSurveyModel = /** @class */ (function (_super) {
31940
31990
  configurable: true
31941
31991
  });
31942
31992
  /**
31943
- * Show the popup window
31993
+ * Shows the pop-up survey. The survey may appear [expanded or collapsed](#isExpanded).
31994
+ *
31995
+ * As an alternative to this method, you can set the [`isShowing`](#isShowing) property to `true`.
31944
31996
  * @see hide
31945
- * @see isShowing
31946
31997
  */
31947
31998
  PopupSurveyModel.prototype.show = function () {
31948
31999
  this.isShowing = true;
31949
32000
  };
31950
32001
  /**
31951
- * Hide the popup window
32002
+ * Hides the pop-up survey.
32003
+ *
32004
+ * As an alternative to this method, you can set the [`isShowing`](#isShowing) property to `false`.
31952
32005
  * @see show
31953
- * @see isShowing
32006
+ * @see expand
32007
+ * @see collapse
31954
32008
  */
31955
32009
  PopupSurveyModel.prototype.hide = function () {
31956
32010
  this.isShowing = false;
31957
32011
  };
31958
32012
  Object.defineProperty(PopupSurveyModel.prototype, "isExpanded", {
31959
32013
  /**
31960
- * Returns true if the popup window is expanded. Set it to true to expand the popup window or false to collapse it.
31961
- * @see expand
31962
- * @see collapse
32014
+ * Indicates whether the pop-up window is expanded or collapsed.
32015
+ *
32016
+ * You can set this property to `true` or `false` to control the expand state of the pop-up survey. Alternatively, you can use the [`expand()`](#expand) and [`collapse()`](#collapse) methods.
31963
32017
  */
31964
32018
  get: function () {
31965
32019
  return this.getPropertyValue("isExpanded", false);
@@ -31978,7 +32032,7 @@ var PopupSurveyModel = /** @class */ (function (_super) {
31978
32032
  };
31979
32033
  Object.defineProperty(PopupSurveyModel.prototype, "title", {
31980
32034
  /**
31981
- * The popup window and survey title.
32035
+ * A title for the pop-up window. If this property is undefined, the title is taken from [`SurveyModel`](#survey)'s [`title`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title) property.
31982
32036
  */
31983
32037
  get: function () {
31984
32038
  return this.survey.title;
@@ -31997,13 +32051,19 @@ var PopupSurveyModel = /** @class */ (function (_super) {
31997
32051
  configurable: true
31998
32052
  });
31999
32053
  /**
32000
- * Expand the popup window to show the survey.
32054
+ * Expands the pop-up window.
32055
+ *
32056
+ * As an alternative to this method, you can set the [`isExpanded`](#isExpanded) property to `true`.
32057
+ * @see collapse
32001
32058
  */
32002
32059
  PopupSurveyModel.prototype.expand = function () {
32003
32060
  this.isExpanded = true;
32004
32061
  };
32005
32062
  /**
32006
- * Collapse the popup window and show survey title only.
32063
+ * Collapses the pop-up window, leaving only the survey title visible.
32064
+ *
32065
+ * As an alternative to this method, you can set the [`isExpanded`](#isExpanded) property to `false`.
32066
+ * @see expand
32007
32067
  */
32008
32068
  PopupSurveyModel.prototype.collapse = function () {
32009
32069
  this.isExpanded = false;
@@ -32017,7 +32077,7 @@ var PopupSurveyModel = /** @class */ (function (_super) {
32017
32077
  *
32018
32078
  * Default value: `false`
32019
32079
  *
32020
- * If you allow users to close the pop-up window, make sure to implement a UI element that opens it. This element should call the [`show()`](https://surveyjs.io/form-library/documentation/api-reference/pop-up-survey-model#show) method.
32080
+ * If you allow users to close the pop-up window, make sure to implement a UI element that opens it. This element should call the [`show()`](#show) method or enable the [`isShowing`](#isShowing) property.
32021
32081
  * @see expand
32022
32082
  * @see collapse
32023
32083
  * @see hide
@@ -32897,7 +32957,15 @@ var Question = /** @class */ (function (_super) {
32897
32957
  Question.prototype.isReadOnlyRenderDiv = function () {
32898
32958
  return this.isReadOnly && _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].readOnly.commentRenderMode === "div";
32899
32959
  };
32900
- Question.prototype.setIsMobile = function (val) { };
32960
+ Question.prototype.allowMobileInDesignMode = function () {
32961
+ return false;
32962
+ };
32963
+ Question.prototype.updateIsMobileFromSurvey = function () {
32964
+ this.setIsMobile(this.survey._isMobile);
32965
+ };
32966
+ Question.prototype.setIsMobile = function (val) {
32967
+ this.isMobile = val && (this.allowMobileInDesignMode() || !this.isDesignMode);
32968
+ };
32901
32969
  Question.prototype.createLocTitleProperty = function () {
32902
32970
  var _this = this;
32903
32971
  var locTitleValue = _super.prototype.createLocTitleProperty.call(this);
@@ -32974,46 +33042,6 @@ var Question = /** @class */ (function (_super) {
32974
33042
  enumerable: false,
32975
33043
  configurable: true
32976
33044
  });
32977
- Object.defineProperty(Question.prototype, "ariaRequired", {
32978
- get: function () {
32979
- return this.isRequired ? "true" : "false";
32980
- },
32981
- enumerable: false,
32982
- configurable: true
32983
- });
32984
- Object.defineProperty(Question.prototype, "ariaInvalid", {
32985
- get: function () {
32986
- return this.errors.length > 0 ? "true" : "false";
32987
- },
32988
- enumerable: false,
32989
- configurable: true
32990
- });
32991
- Object.defineProperty(Question.prototype, "ariaLabelledBy", {
32992
- get: function () {
32993
- if (this.hasTitle) {
32994
- return this.ariaTitleId;
32995
- }
32996
- else {
32997
- return null;
32998
- }
32999
- },
33000
- enumerable: false,
33001
- configurable: true
33002
- });
33003
- Object.defineProperty(Question.prototype, "ariaExpanded", {
33004
- get: function () {
33005
- return null;
33006
- },
33007
- enumerable: false,
33008
- configurable: true
33009
- });
33010
- Object.defineProperty(Question.prototype, "ariaDescribedBy", {
33011
- get: function () {
33012
- return this.errors.length > 0 ? this.id + "_errors" : null;
33013
- },
33014
- enumerable: false,
33015
- configurable: true
33016
- });
33017
33045
  Question.prototype.choicesLoaded = function () { };
33018
33046
  Object.defineProperty(Question.prototype, "page", {
33019
33047
  /**
@@ -33291,6 +33319,7 @@ var Question = /** @class */ (function (_super) {
33291
33319
  if (!this.visible) {
33292
33320
  this.updateIsVisibleProp();
33293
33321
  }
33322
+ this.updateIsMobileFromSurvey();
33294
33323
  };
33295
33324
  Object.defineProperty(Question.prototype, "parent", {
33296
33325
  /**
@@ -33941,6 +33970,12 @@ var Question = /** @class */ (function (_super) {
33941
33970
  .append(this.cssClasses.invisible, !this.isDesignMode && this.areInvisibleElementsShowing && !this.visible)
33942
33971
  .toString();
33943
33972
  };
33973
+ Question.prototype.getQuestionRootCss = function () {
33974
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__["CssClassBuilder"]()
33975
+ .append(this.cssClasses.root)
33976
+ .append(this.cssClasses.rootMobile, this.isMobile)
33977
+ .toString();
33978
+ };
33944
33979
  Question.prototype.updateElementCss = function (reNew) {
33945
33980
  _super.prototype.updateElementCss.call(this, reNew);
33946
33981
  if (reNew) {
@@ -34174,13 +34209,6 @@ var Question = /** @class */ (function (_super) {
34174
34209
  enumerable: false,
34175
34210
  configurable: true
34176
34211
  });
34177
- Object.defineProperty(Question.prototype, "ariaRole", {
34178
- get: function () {
34179
- return "textbox";
34180
- },
34181
- enumerable: false,
34182
- configurable: true
34183
- });
34184
34212
  Object.defineProperty(Question.prototype, "showOtherItem", {
34185
34213
  /**
34186
34214
  * Specifies whether to display the "Other" choice item. Incompatible with the `showCommentArea` property.
@@ -35254,19 +35282,16 @@ var Question = /** @class */ (function (_super) {
35254
35282
  this.setQuestionValue(newValue);
35255
35283
  if (this.data != null && this.canSetValueToSurvey()) {
35256
35284
  newValue = this.valueForSurvey;
35257
- this.data.setValue(this.getValueName(), newValue, this.getDataLocNotification(), this.allowNotifyValueChanged);
35285
+ this.data.setValue(this.getValueName(), newValue, this.getDataLocNotification(), this.allowNotifyValueChanged, this.name);
35258
35286
  }
35259
35287
  this.isMouseDown = false;
35260
35288
  };
35261
35289
  Question.prototype.canSetValueToSurvey = function () {
35262
35290
  return true;
35263
35291
  };
35264
- Question.prototype.valueFromData = function (val) {
35265
- return val;
35266
- };
35267
- Question.prototype.valueToData = function (val) {
35268
- return val;
35269
- };
35292
+ Question.prototype.valueFromData = function (val) { return val; };
35293
+ Question.prototype.valueToData = function (val) { return val; };
35294
+ Question.prototype.convertToCorrectValue = function (val) { return val; };
35270
35295
  Question.prototype.onValueChanged = function () { };
35271
35296
  Question.prototype.onMouseDown = function () {
35272
35297
  this.isMouseDown = true;
@@ -35290,7 +35315,7 @@ var Question = /** @class */ (function (_super) {
35290
35315
  }
35291
35316
  if (!this.checkIsValueCorrect(newValue))
35292
35317
  return;
35293
- this.isChangingViaDefaultValue = true;
35318
+ this.isChangingViaDefaultValue = this.isValueEmpty(newValue);
35294
35319
  this.setQuestionValue(this.valueFromData(newValue));
35295
35320
  this.isChangingViaDefaultValue = false;
35296
35321
  this.updateDependedQuestions();
@@ -35305,6 +35330,7 @@ var Question = /** @class */ (function (_super) {
35305
35330
  };
35306
35331
  Question.prototype.setQuestionValue = function (newValue, updateIsAnswered) {
35307
35332
  if (updateIsAnswered === void 0) { updateIsAnswered = true; }
35333
+ newValue = this.convertToCorrectValue(newValue);
35308
35334
  var isEqual = this.isTwoValueEquals(this.questionValue, newValue);
35309
35335
  if (!isEqual && !this.isChangingViaDefaultValue) {
35310
35336
  this.setValueChangedDirectly();
@@ -35357,7 +35383,7 @@ var Question = /** @class */ (function (_super) {
35357
35383
  this.errors = [];
35358
35384
  };
35359
35385
  Question.prototype.clearUnusedValues = function () { };
35360
- Question.prototype.onAnyValueChanged = function (name) { };
35386
+ Question.prototype.onAnyValueChanged = function (name, questionName) { };
35361
35387
  Question.prototype.checkBindings = function (valueName, value) {
35362
35388
  if (this.bindings.isEmpty() || !this.data)
35363
35389
  return;
@@ -35487,8 +35513,10 @@ var Question = /** @class */ (function (_super) {
35487
35513
  callback();
35488
35514
  }
35489
35515
  };
35490
- this.resizeObserver = new ResizeObserver(function () {
35491
- _this.triggerResponsiveness(false);
35516
+ this.resizeObserver = new ResizeObserver(function (entries) {
35517
+ window.requestAnimationFrame(function () {
35518
+ _this.triggerResponsiveness(false);
35519
+ });
35492
35520
  });
35493
35521
  this.onMobileChangedCallback = function () {
35494
35522
  setTimeout(function () {
@@ -35538,15 +35566,146 @@ var Question = /** @class */ (function (_super) {
35538
35566
  this.dependedQuestions[i].resetDependedQuestion();
35539
35567
  }
35540
35568
  };
35569
+ Object.defineProperty(Question.prototype, "isNewA11yStructure", {
35570
+ //a11y
35571
+ get: function () {
35572
+ return false;
35573
+ },
35574
+ enumerable: false,
35575
+ configurable: true
35576
+ });
35577
+ Object.defineProperty(Question.prototype, "ariaLabel", {
35578
+ get: function () {
35579
+ if (this.isNewA11yStructure)
35580
+ return null;
35581
+ return this.locTitle.renderedHtml;
35582
+ },
35583
+ enumerable: false,
35584
+ configurable: true
35585
+ });
35586
+ Object.defineProperty(Question.prototype, "ariaRole", {
35587
+ get: function () {
35588
+ if (this.isNewA11yStructure)
35589
+ return null;
35590
+ return "textbox";
35591
+ },
35592
+ enumerable: false,
35593
+ configurable: true
35594
+ });
35595
+ Object.defineProperty(Question.prototype, "ariaRequired", {
35596
+ get: function () {
35597
+ if (this.isNewA11yStructure)
35598
+ return null;
35599
+ return this.isRequired ? "true" : "false";
35600
+ },
35601
+ enumerable: false,
35602
+ configurable: true
35603
+ });
35604
+ Object.defineProperty(Question.prototype, "ariaInvalid", {
35605
+ get: function () {
35606
+ if (this.isNewA11yStructure)
35607
+ return null;
35608
+ return this.errors.length > 0 ? "true" : "false";
35609
+ },
35610
+ enumerable: false,
35611
+ configurable: true
35612
+ });
35613
+ Object.defineProperty(Question.prototype, "ariaLabelledBy", {
35614
+ get: function () {
35615
+ if (this.isNewA11yStructure)
35616
+ return null;
35617
+ if (this.hasTitle) {
35618
+ return this.ariaTitleId;
35619
+ }
35620
+ else {
35621
+ return null;
35622
+ }
35623
+ },
35624
+ enumerable: false,
35625
+ configurable: true
35626
+ });
35627
+ Object.defineProperty(Question.prototype, "ariaExpanded", {
35628
+ get: function () {
35629
+ return null;
35630
+ },
35631
+ enumerable: false,
35632
+ configurable: true
35633
+ });
35634
+ Object.defineProperty(Question.prototype, "ariaDescribedBy", {
35635
+ get: function () {
35636
+ if (this.isNewA11yStructure)
35637
+ return null;
35638
+ return this.errors.length > 0 ? this.id + "_errors" : null;
35639
+ },
35640
+ enumerable: false,
35641
+ configurable: true
35642
+ });
35643
+ Object.defineProperty(Question.prototype, "a11y_input_ariaRole", {
35644
+ //EO a11y
35645
+ //new a11y
35646
+ get: function () {
35647
+ return null;
35648
+ },
35649
+ enumerable: false,
35650
+ configurable: true
35651
+ });
35652
+ Object.defineProperty(Question.prototype, "a11y_input_ariaRequired", {
35653
+ get: function () {
35654
+ return this.isRequired ? "true" : "false";
35655
+ },
35656
+ enumerable: false,
35657
+ configurable: true
35658
+ });
35659
+ Object.defineProperty(Question.prototype, "a11y_input_ariaInvalid", {
35660
+ get: function () {
35661
+ return this.errors.length > 0 ? "true" : "false";
35662
+ },
35663
+ enumerable: false,
35664
+ configurable: true
35665
+ });
35666
+ Object.defineProperty(Question.prototype, "a11y_input_ariaLabel", {
35667
+ get: function () {
35668
+ if (this.hasTitle && !this.parentQuestion) {
35669
+ return null;
35670
+ }
35671
+ else {
35672
+ return this.locTitle.renderedHtml;
35673
+ }
35674
+ },
35675
+ enumerable: false,
35676
+ configurable: true
35677
+ });
35678
+ Object.defineProperty(Question.prototype, "a11y_input_ariaLabelledBy", {
35679
+ get: function () {
35680
+ if (this.hasTitle && !this.parentQuestion) {
35681
+ return this.ariaTitleId;
35682
+ }
35683
+ else {
35684
+ return null;
35685
+ }
35686
+ },
35687
+ enumerable: false,
35688
+ configurable: true
35689
+ });
35690
+ Object.defineProperty(Question.prototype, "a11y_input_ariaDescribedBy", {
35691
+ get: function () {
35692
+ return this.errors.length > 0 ? this.id + "_errors" : null;
35693
+ },
35694
+ enumerable: false,
35695
+ configurable: true
35696
+ });
35541
35697
  Question.TextPreprocessorValuesMap = {
35542
35698
  title: "processedTitle",
35543
35699
  require: "requiredText",
35544
35700
  };
35545
35701
  Question.questionCounter = 100;
35546
35702
  __decorate([
35547
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false, onSet: function (val, target) {
35548
- target.setIsMobile(val);
35549
- } })
35703
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
35704
+ defaultValue: false,
35705
+ onSet: function (val, target) {
35706
+ target.renderMinWidth = !val;
35707
+ }
35708
+ })
35550
35709
  ], Question.prototype, "isMobile", void 0);
35551
35710
  __decorate([
35552
35711
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
@@ -36076,6 +36235,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
36076
36235
  _super.prototype.localeChanged.call(this);
36077
36236
  if (this.choicesOrder !== "none") {
36078
36237
  this.updateVisibleChoices();
36238
+ this.onVisibleChoicesChanged();
36079
36239
  }
36080
36240
  };
36081
36241
  QuestionSelectBase.prototype.locStrsChanged = function () {
@@ -37153,7 +37313,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
37153
37313
  res.push(this.copyChoiceItem(choices[i]));
37154
37314
  }
37155
37315
  }
37156
- if (this.choicesFromQuestionMode === "selected" && question.isOtherSelected && !!question.comment) {
37316
+ if (this.choicesFromQuestionMode === "selected" && !this.showOtherItem && question.isOtherSelected && !!question.comment) {
37157
37317
  res.push(this.createItemValue(question.otherItem.value, question.comment));
37158
37318
  }
37159
37319
  return res;
@@ -37242,12 +37402,13 @@ var QuestionSelectBase = /** @class */ (function (_super) {
37242
37402
  this.onVisibleChoicesChanged();
37243
37403
  _super.prototype.onSurveyLoad.call(this);
37244
37404
  };
37245
- QuestionSelectBase.prototype.onAnyValueChanged = function (name) {
37246
- _super.prototype.onAnyValueChanged.call(this, name);
37405
+ QuestionSelectBase.prototype.onAnyValueChanged = function (name, questionName) {
37406
+ _super.prototype.onAnyValueChanged.call(this, name, questionName);
37247
37407
  if (name != this.getValueName()) {
37248
37408
  this.runChoicesByUrl();
37249
37409
  }
37250
- if (!!name && name == this.choicesFromQuestion) {
37410
+ var chQuestion = this.choicesFromQuestion;
37411
+ if (!!name && chQuestion && (name === chQuestion || questionName === chQuestion)) {
37251
37412
  this.onVisibleChoicesChanged();
37252
37413
  }
37253
37414
  };
@@ -37743,10 +37904,13 @@ var QuestionSelectBase = /** @class */ (function (_super) {
37743
37904
  });
37744
37905
  QuestionSelectBase.prototype.getSelectBaseRootCss = function () {
37745
37906
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__["CssClassBuilder"]()
37746
- .append(this.cssClasses.root)
37907
+ .append(this.getQuestionRootCss())
37747
37908
  .append(this.cssClasses.rootRow, this.rowLayout)
37748
37909
  .toString();
37749
37910
  };
37911
+ QuestionSelectBase.prototype.allowMobileInDesignMode = function () {
37912
+ return true;
37913
+ };
37750
37914
  QuestionSelectBase.prototype.getAriaItemLabel = function (item) {
37751
37915
  return item.locText.renderedHtml;
37752
37916
  };
@@ -38728,13 +38892,6 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
38728
38892
  QuestionCheckboxModel.prototype.getDefaultItemComponent = function () {
38729
38893
  return "survey-checkbox-item";
38730
38894
  };
38731
- Object.defineProperty(QuestionCheckboxModel.prototype, "ariaRole", {
38732
- get: function () {
38733
- return "listbox";
38734
- },
38735
- enumerable: false,
38736
- configurable: true
38737
- });
38738
38895
  QuestionCheckboxModel.prototype.getType = function () {
38739
38896
  return "checkbox";
38740
38897
  };
@@ -39349,6 +39506,21 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
39349
39506
  enumerable: false,
39350
39507
  configurable: true
39351
39508
  });
39509
+ Object.defineProperty(QuestionCheckboxModel.prototype, "isNewA11yStructure", {
39510
+ //a11y
39511
+ get: function () {
39512
+ return true;
39513
+ },
39514
+ enumerable: false,
39515
+ configurable: true
39516
+ });
39517
+ Object.defineProperty(QuestionCheckboxModel.prototype, "a11y_input_ariaRole", {
39518
+ get: function () {
39519
+ return "listbox";
39520
+ },
39521
+ enumerable: false,
39522
+ configurable: true
39523
+ });
39352
39524
  return QuestionCheckboxModel;
39353
39525
  }(_question_baseselect__WEBPACK_IMPORTED_MODULE_2__["QuestionCheckboxBase"]));
39354
39526
 
@@ -39550,6 +39722,7 @@ var QuestionCommentModel = /** @class */ (function (_super) {
39550
39722
  }
39551
39723
  _super.prototype.setNewValue.call(this, newValue);
39552
39724
  };
39725
+ QuestionCommentModel.prototype.getValueSeparator = function () { return "\n"; };
39553
39726
  Object.defineProperty(QuestionCommentModel.prototype, "className", {
39554
39727
  get: function () {
39555
39728
  return (this.cssClasses ? this.getControlClass() : "panel-comment-root") || undefined;
@@ -40009,10 +40182,10 @@ var QuestionCustomModel = /** @class */ (function (_super) {
40009
40182
  QuestionCustomModel.prototype.getElement = function () {
40010
40183
  return this.contentQuestion;
40011
40184
  };
40012
- QuestionCustomModel.prototype.onAnyValueChanged = function (name) {
40013
- _super.prototype.onAnyValueChanged.call(this, name);
40185
+ QuestionCustomModel.prototype.onAnyValueChanged = function (name, questionName) {
40186
+ _super.prototype.onAnyValueChanged.call(this, name, questionName);
40014
40187
  if (!!this.contentQuestion) {
40015
- this.contentQuestion.onAnyValueChanged(name);
40188
+ this.contentQuestion.onAnyValueChanged(name, questionName);
40016
40189
  }
40017
40190
  };
40018
40191
  QuestionCustomModel.prototype.getQuestionByName = function (name) {
@@ -40054,6 +40227,12 @@ var QuestionCustomModel = /** @class */ (function (_super) {
40054
40227
  _super.prototype.focus.call(this, onError);
40055
40228
  }
40056
40229
  };
40230
+ QuestionCustomModel.prototype.afterRender = function (el) {
40231
+ _super.prototype.afterRender.call(this, el);
40232
+ if (!!this.contentQuestion) {
40233
+ this.contentQuestion.afterRender(el);
40234
+ }
40235
+ };
40057
40236
  Object.defineProperty(QuestionCustomModel.prototype, "contentQuestion", {
40058
40237
  get: function () {
40059
40238
  return this.questionWrapper;
@@ -40266,11 +40445,11 @@ var QuestionCompositeModel = /** @class */ (function (_super) {
40266
40445
  questions[i].clearValueIfInvisible(reason);
40267
40446
  }
40268
40447
  };
40269
- QuestionCompositeModel.prototype.onAnyValueChanged = function (name) {
40270
- _super.prototype.onAnyValueChanged.call(this, name);
40448
+ QuestionCompositeModel.prototype.onAnyValueChanged = function (name, questionName) {
40449
+ _super.prototype.onAnyValueChanged.call(this, name, questionName);
40271
40450
  var questions = this.contentPanel.questions;
40272
40451
  for (var i = 0; i < questions.length; i++) {
40273
- questions[i].onAnyValueChanged(name);
40452
+ questions[i].onAnyValueChanged(name, questionName);
40274
40453
  }
40275
40454
  };
40276
40455
  Object.defineProperty(QuestionCompositeModel.prototype, "hasSingleInput", {
@@ -41305,6 +41484,11 @@ var QuestionExpressionModel = /** @class */ (function (_super) {
41305
41484
  }
41306
41485
  return val.toString();
41307
41486
  };
41487
+ QuestionExpressionModel.prototype.convertToCorrectValue = function (val) {
41488
+ if (Array.isArray(val))
41489
+ return val.join(", ");
41490
+ return val;
41491
+ };
41308
41492
  return QuestionExpressionModel;
41309
41493
  }(_question__WEBPACK_IMPORTED_MODULE_1__["Question"]));
41310
41494
 
@@ -41602,7 +41786,14 @@ var QuestionFileModel = /** @class */ (function (_super) {
41602
41786
  */
41603
41787
  _this.onUploadStateChanged = _this.addEvent();
41604
41788
  _this.onStateChanged = _this.addEvent();
41605
- _this.mobileFileNavigator = new _actions_container__WEBPACK_IMPORTED_MODULE_7__["ActionContainer"]();
41789
+ _this.fileNavigator = new _actions_container__WEBPACK_IMPORTED_MODULE_7__["ActionContainer"]();
41790
+ _this.prevPreviewLength = 0;
41791
+ _this.calcAvailableItemsCount = function (availableWidth, itemWidth, gap) {
41792
+ var itemsCount = Math.floor(availableWidth / (itemWidth + gap));
41793
+ if ((itemsCount + 1) * (itemWidth + gap) - gap <= availableWidth)
41794
+ itemsCount++;
41795
+ return itemsCount;
41796
+ };
41606
41797
  _this.dragCounter = 0;
41607
41798
  _this.onDragEnter = function (event) {
41608
41799
  if (!_this.isInputReadOnly) {
@@ -41662,7 +41853,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
41662
41853
  id: "prevPage",
41663
41854
  iconSize: 16,
41664
41855
  action: function () {
41665
- _this.indexToShow = _this.previewValue.length && ((_this.indexToShow - 1 + _this.previewValue.length) % _this.previewValue.length) || 0;
41856
+ _this.indexToShow = _this.previewValue.length && ((_this.indexToShow - 1 + _this.pagesCount) % _this.pagesCount) || 0;
41666
41857
  _this.fileIndexAction.title = _this.getFileIndexCaption();
41667
41858
  }
41668
41859
  });
@@ -41670,16 +41861,26 @@ var QuestionFileModel = /** @class */ (function (_super) {
41670
41861
  id: "nextPage",
41671
41862
  iconSize: 16,
41672
41863
  action: function () {
41673
- _this.indexToShow = _this.previewValue.length && ((_this.indexToShow + 1) % _this.previewValue.length) || 0;
41864
+ _this.indexToShow = _this.previewValue.length && ((_this.indexToShow + 1) % _this.pagesCount) || 0;
41674
41865
  _this.fileIndexAction.title = _this.getFileIndexCaption();
41675
41866
  }
41676
41867
  });
41677
- _this.mobileFileNavigator.actions = [_this.prevFileAction, _this.fileIndexAction, _this.nextFileAction];
41868
+ _this.fileNavigator.actions = [_this.prevFileAction, _this.fileIndexAction, _this.nextFileAction];
41678
41869
  return _this;
41679
41870
  }
41680
- Object.defineProperty(QuestionFileModel.prototype, "mobileFileNavigatorVisible", {
41871
+ Object.defineProperty(QuestionFileModel.prototype, "fileNavigatorVisible", {
41872
+ get: function () {
41873
+ var isUploading = this.isUploading;
41874
+ var containsMultipleFiles = this.containsMultiplyFiles;
41875
+ var needToShowFileNavigator = this.pageSize < this.previewValue.length;
41876
+ return !isUploading && containsMultipleFiles && needToShowFileNavigator && this.isDefaultV2Theme;
41877
+ },
41878
+ enumerable: false,
41879
+ configurable: true
41880
+ });
41881
+ Object.defineProperty(QuestionFileModel.prototype, "pagesCount", {
41681
41882
  get: function () {
41682
- return this.isMobile && this.containsMultiplyFiles;
41883
+ return Math.ceil(this.previewValue.length / this.pageSize);
41683
41884
  },
41684
41885
  enumerable: false,
41685
41886
  configurable: true
@@ -41691,15 +41892,40 @@ var QuestionFileModel = /** @class */ (function (_super) {
41691
41892
  //this.mobileFileNavigator.cssClasses = this.survey.getCss().actionBar;
41692
41893
  };
41693
41894
  QuestionFileModel.prototype.getFileIndexCaption = function () {
41694
- return this.getLocalizationFormatString("indexText", this.indexToShow + 1, this.previewValue.length);
41895
+ return this.getLocalizationFormatString("indexText", this.indexToShow + 1, this.pagesCount);
41896
+ };
41897
+ QuestionFileModel.prototype.updateFileNavigator = function () {
41898
+ this.indexToShow = this.previewValue.length && ((this.indexToShow + this.pagesCount) % this.pagesCount) || 0;
41899
+ this.fileIndexAction.title = this.getFileIndexCaption();
41695
41900
  };
41696
41901
  QuestionFileModel.prototype.previewValueChanged = function () {
41697
- this.indexToShow = this.previewValue.length > 0 ? (this.indexToShow > 0 ? this.indexToShow - 1 : 0) : 0;
41902
+ var _this = this;
41903
+ if (this.previewValue.length !== this.prevPreviewLength) {
41904
+ if (this.previewValue.length > 0) {
41905
+ if (this.prevPreviewLength > this.previewValue.length) {
41906
+ this.indexToShow = this.indexToShow >= this.pagesCount && this.indexToShow > 0 ? this.pagesCount - 1 : this.indexToShow;
41907
+ }
41908
+ else {
41909
+ this.indexToShow = Math.floor(this.prevPreviewLength / this.pageSize);
41910
+ }
41911
+ }
41912
+ else {
41913
+ this.indexToShow = 0;
41914
+ }
41915
+ }
41698
41916
  this.fileIndexAction.title = this.getFileIndexCaption();
41699
41917
  this.containsMultiplyFiles = this.previewValue.length > 1;
41918
+ if (this.previewValue.length > 0 && !this.calculatedGapBetweenItems && !this.calculatedItemWidth) {
41919
+ setTimeout(function () {
41920
+ _this.processResponsiveness(0, _this._width);
41921
+ });
41922
+ }
41923
+ this.prevPreviewLength = this.previewValue.length;
41700
41924
  };
41701
41925
  QuestionFileModel.prototype.isPreviewVisible = function (index) {
41702
- return !this.isMobile || index === this.indexToShow;
41926
+ var isFileNavigatorVisible = this.fileNavigatorVisible;
41927
+ var isPreviewVisible = (this.indexToShow * this.pageSize <= index && index < (this.indexToShow + 1) * this.pageSize);
41928
+ return !isFileNavigatorVisible || isPreviewVisible;
41703
41929
  };
41704
41930
  QuestionFileModel.prototype.getType = function () {
41705
41931
  return "file";
@@ -42176,6 +42402,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
42176
42402
  get: function () {
42177
42403
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
42178
42404
  .append(this.cssClasses.root)
42405
+ .append(this.cssClasses.rootDragging, this.isDragging)
42179
42406
  .append(this.cssClasses.single, !this.allowMultiple)
42180
42407
  .append(this.cssClasses.singleImage, !this.allowMultiple && this.isAnswered && this.canPreviewImage(this.value[0]))
42181
42408
  .append(this.cssClasses.mobile, this.isMobile)
@@ -42215,6 +42442,47 @@ var QuestionFileModel = /** @class */ (function (_super) {
42215
42442
  _super.prototype.endLoadingFromJson.call(this);
42216
42443
  this.loadPreview(this.value);
42217
42444
  };
42445
+ QuestionFileModel.prototype.needResponsiveness = function () {
42446
+ return this.supportResponsiveness() && this.isDefaultV2Theme;
42447
+ };
42448
+ QuestionFileModel.prototype.supportResponsiveness = function () {
42449
+ return true;
42450
+ };
42451
+ QuestionFileModel.prototype.getObservedElementSelector = function () {
42452
+ return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["classesToSelector"])(this.cssClasses.dragArea);
42453
+ };
42454
+ QuestionFileModel.prototype.getFileListSelector = function () {
42455
+ return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["classesToSelector"])(this.cssClasses.fileList);
42456
+ };
42457
+ QuestionFileModel.prototype.triggerResponsiveness = function (hard) {
42458
+ if (hard) {
42459
+ this.calculatedGapBetweenItems = undefined;
42460
+ this.calculatedItemWidth = undefined;
42461
+ }
42462
+ _super.prototype.triggerResponsiveness.call(this);
42463
+ };
42464
+ QuestionFileModel.prototype.processResponsiveness = function (_, availableWidth) {
42465
+ var _this = this;
42466
+ this._width = availableWidth;
42467
+ if (this.rootElement) {
42468
+ if ((!this.calculatedGapBetweenItems || !this.calculatedItemWidth) && this.allowMultiple) {
42469
+ var fileListSelector = this.getFileListSelector();
42470
+ var fileListElement = fileListSelector ? this.rootElement.querySelector(this.getFileListSelector()) : undefined;
42471
+ if (fileListElement) {
42472
+ this.calculatedGapBetweenItems = Math.ceil(Number.parseFloat(window.getComputedStyle(fileListElement).gap));
42473
+ var firstVisibleItem = Array.from(fileListElement.children).filter(function (_, index) { return _this.isPreviewVisible(index); })[0];
42474
+ if (firstVisibleItem) {
42475
+ this.calculatedItemWidth = Math.ceil(Number.parseFloat(window.getComputedStyle(firstVisibleItem).width));
42476
+ }
42477
+ }
42478
+ }
42479
+ }
42480
+ if (this.calculatedGapBetweenItems && this.calculatedItemWidth) {
42481
+ this.pageSize = this.calcAvailableItemsCount(availableWidth, this.calculatedItemWidth, this.calculatedGapBetweenItems);
42482
+ return true;
42483
+ }
42484
+ return false;
42485
+ };
42218
42486
  QuestionFileModel.prototype.afterRender = function (el) {
42219
42487
  this.rootElement = el;
42220
42488
  _super.prototype.afterRender.call(this, el);
@@ -42252,6 +42520,11 @@ var QuestionFileModel = /** @class */ (function (_super) {
42252
42520
  __decorate([
42253
42521
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: 0 })
42254
42522
  ], QuestionFileModel.prototype, "indexToShow", void 0);
42523
+ __decorate([
42524
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: 1, onSet: function (_, target) {
42525
+ target.updateFileNavigator();
42526
+ } })
42527
+ ], QuestionFileModel.prototype, "pageSize", void 0);
42255
42528
  __decorate([
42256
42529
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
42257
42530
  ], QuestionFileModel.prototype, "containsMultiplyFiles", void 0);
@@ -44809,10 +45082,10 @@ var MatrixDropdownRowModelBase = /** @class */ (function () {
44809
45082
  questions[i].clearValue();
44810
45083
  }
44811
45084
  };
44812
- MatrixDropdownRowModelBase.prototype.onAnyValueChanged = function (name) {
45085
+ MatrixDropdownRowModelBase.prototype.onAnyValueChanged = function (name, questionName) {
44813
45086
  var questions = this.questions;
44814
45087
  for (var i = 0; i < questions.length; i++) {
44815
- questions[i].onAnyValueChanged(name);
45088
+ questions[i].onAnyValueChanged(name, questionName);
44816
45089
  }
44817
45090
  };
44818
45091
  MatrixDropdownRowModelBase.prototype.getDataValueCore = function (valuesHash, key) {
@@ -44878,7 +45151,7 @@ var MatrixDropdownRowModelBase = /** @class */ (function () {
44878
45151
  var isDeleting = newColumnValue == null && !changedQuestion ||
44879
45152
  isComment && !newColumnValue && !!changedQuestion && changedQuestion.autoOtherMode;
44880
45153
  this.data.onRowChanged(this, changedName, newValue, isDeleting);
44881
- this.onAnyValueChanged(MatrixDropdownRowModelBase.RowVariableName);
45154
+ this.onAnyValueChanged(MatrixDropdownRowModelBase.RowVariableName, "");
44882
45155
  };
44883
45156
  MatrixDropdownRowModelBase.prototype.updateQuestionsValue = function (name, newColumnValue, isComment) {
44884
45157
  if (!this.detailPanel)
@@ -46614,7 +46887,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
46614
46887
  ? null
46615
46888
  : newValue;
46616
46889
  };
46617
- QuestionMatrixDropdownModelBase.prototype.onAnyValueChanged = function (name) {
46890
+ QuestionMatrixDropdownModelBase.prototype.onAnyValueChanged = function (name, questionName) {
46618
46891
  if (this.isUpdateLocked ||
46619
46892
  this.isDoingonAnyValueChanged ||
46620
46893
  !this.generatedVisibleRows)
@@ -46622,11 +46895,11 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
46622
46895
  this.isDoingonAnyValueChanged = true;
46623
46896
  var rows = this.visibleRows;
46624
46897
  for (var i = 0; i < rows.length; i++) {
46625
- rows[i].onAnyValueChanged(name);
46898
+ rows[i].onAnyValueChanged(name, questionName);
46626
46899
  }
46627
46900
  var totalRow = this.visibleTotalRow;
46628
46901
  if (!!totalRow) {
46629
- totalRow.onAnyValueChanged(name);
46902
+ totalRow.onAnyValueChanged(name, questionName);
46630
46903
  }
46631
46904
  this.isDoingonAnyValueChanged = false;
46632
46905
  };
@@ -46813,6 +47086,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
46813
47086
  return this.detailPanel;
46814
47087
  var panel = this.createNewDetailPanel();
46815
47088
  panel.readOnly = this.isReadOnly;
47089
+ panel.setSurveyImpl(row);
46816
47090
  var json = this.detailPanel.toJSON();
46817
47091
  new _jsonobject__WEBPACK_IMPORTED_MODULE_0__["JsonObject"]().toObject(json, panel);
46818
47092
  panel.renderWidth = "100%";
@@ -50921,6 +51195,9 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
50921
51195
  }
50922
51196
  return res;
50923
51197
  };
51198
+ QuestionMultipleTextModel.prototype.allowMobileInDesignMode = function () {
51199
+ return true;
51200
+ };
50924
51201
  //IMultipleTextData
50925
51202
  QuestionMultipleTextModel.prototype.getMultipleTextValue = function (name) {
50926
51203
  if (!this.value)
@@ -50984,7 +51261,12 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
50984
51261
  // do nothing
50985
51262
  };
50986
51263
  QuestionMultipleTextModel.prototype.getItemLabelCss = function (item) {
50987
- return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_7__["CssClassBuilder"]().append(this.cssClasses.itemLabel).append(this.cssClasses.itemLabelOnError, item.editor.errors.length > 0).toString();
51264
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_7__["CssClassBuilder"]()
51265
+ .append(this.cssClasses.itemLabel)
51266
+ .append(this.cssClasses.itemLabelAnswered, item.editor.isAnswered)
51267
+ .append(this.cssClasses.itemLabelAllowFocus, !this.isDesignMode)
51268
+ .append(this.cssClasses.itemLabelOnError, item.editor.errors.length > 0)
51269
+ .toString();
50988
51270
  };
50989
51271
  QuestionMultipleTextModel.prototype.getItemCss = function () {
50990
51272
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_7__["CssClassBuilder"]().append(this.cssClasses.item).toString();
@@ -52041,6 +52323,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
52041
52323
  }
52042
52324
  };
52043
52325
  QuestionPanelDynamicModel.prototype.setIsMobile = function (val) {
52326
+ _super.prototype.setIsMobile.call(this, val);
52044
52327
  (this.panels || []).forEach(function (panel) { return panel.elements.forEach(function (element) {
52045
52328
  if (element instanceof _question__WEBPACK_IMPORTED_MODULE_4__["Question"]) {
52046
52329
  element.isMobile = val;
@@ -52939,11 +53222,11 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
52939
53222
  }
52940
53223
  this.isValueChangingInternally = false;
52941
53224
  };
52942
- QuestionPanelDynamicModel.prototype.onAnyValueChanged = function (name) {
52943
- _super.prototype.onAnyValueChanged.call(this, name);
53225
+ QuestionPanelDynamicModel.prototype.onAnyValueChanged = function (name, questionName) {
53226
+ _super.prototype.onAnyValueChanged.call(this, name, questionName);
52944
53227
  for (var i = 0; i < this.panels.length; i++) {
52945
- this.panels[i].onAnyValueChanged(name);
52946
- this.panels[i].onAnyValueChanged(QuestionPanelDynamicItem.ItemVariableName);
53228
+ this.panels[i].onAnyValueChanged(name, questionName);
53229
+ this.panels[i].onAnyValueChanged(QuestionPanelDynamicItem.ItemVariableName, "");
52947
53230
  }
52948
53231
  };
52949
53232
  QuestionPanelDynamicModel.prototype.hasKeysDuplicated = function (fireCallback, rec) {
@@ -53177,7 +53460,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
53177
53460
  panel.onGetFooterActionsCallback = function () {
53178
53461
  return _this.getPanelActions(panel);
53179
53462
  };
53180
- panel.footerToolbarCss = this.cssClasses.panelFooter;
53463
+ panel.onGetFooterToolbarCssCallback = function () { return _this.cssClasses.panelFooter; };
53181
53464
  panel.registerPropertyChangedHandlers(["visible"], function () {
53182
53465
  if (panel.visible)
53183
53466
  _this.onPanelAdded(panel);
@@ -53844,20 +54127,6 @@ var QuestionRadiogroupModel = /** @class */ (function (_super) {
53844
54127
  QuestionRadiogroupModel.prototype.getType = function () {
53845
54128
  return "radiogroup";
53846
54129
  };
53847
- Object.defineProperty(QuestionRadiogroupModel.prototype, "ariaRole", {
53848
- get: function () {
53849
- return "radiogroup";
53850
- },
53851
- enumerable: false,
53852
- configurable: true
53853
- });
53854
- Object.defineProperty(QuestionRadiogroupModel.prototype, "titleAriaLabel", {
53855
- get: function () {
53856
- return null;
53857
- },
53858
- enumerable: false,
53859
- configurable: true
53860
- });
53861
54130
  QuestionRadiogroupModel.prototype.getFirstInputElementId = function () {
53862
54131
  return this.inputId + "_0";
53863
54132
  };
@@ -53931,6 +54200,21 @@ var QuestionRadiogroupModel = /** @class */ (function (_super) {
53931
54200
  }
53932
54201
  return actions;
53933
54202
  };
54203
+ Object.defineProperty(QuestionRadiogroupModel.prototype, "isNewA11yStructure", {
54204
+ //a11y
54205
+ get: function () {
54206
+ return true;
54207
+ },
54208
+ enumerable: false,
54209
+ configurable: true
54210
+ });
54211
+ Object.defineProperty(QuestionRadiogroupModel.prototype, "a11y_input_ariaRole", {
54212
+ get: function () {
54213
+ return "radiogroup";
54214
+ },
54215
+ enumerable: false,
54216
+ configurable: true
54217
+ });
53934
54218
  return QuestionRadiogroupModel;
53935
54219
  }(_question_baseselect__WEBPACK_IMPORTED_MODULE_2__["QuestionCheckboxBase"]));
53936
54220
 
@@ -54491,6 +54775,14 @@ var QuestionRankingModel = /** @class */ (function (_super) {
54491
54775
  enumerable: false,
54492
54776
  configurable: true
54493
54777
  });
54778
+ Object.defineProperty(QuestionRankingModel.prototype, "isNewA11yStructure", {
54779
+ //a11y
54780
+ get: function () {
54781
+ return false;
54782
+ },
54783
+ enumerable: false,
54784
+ configurable: true
54785
+ });
54494
54786
  __decorate([
54495
54787
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_3__["property"])({ defaultValue: null })
54496
54788
  ], QuestionRankingModel.prototype, "currentDropTarget", void 0);
@@ -56283,6 +56575,14 @@ var QuestionTagboxModel = /** @class */ (function (_super) {
56283
56575
  _super.prototype.clearValue.call(this);
56284
56576
  this.dropdownListModel.clear();
56285
56577
  };
56578
+ Object.defineProperty(QuestionTagboxModel.prototype, "isNewA11yStructure", {
56579
+ //a11y
56580
+ get: function () {
56581
+ return false;
56582
+ },
56583
+ enumerable: false,
56584
+ configurable: true
56585
+ });
56286
56586
  __decorate([
56287
56587
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: "" })
56288
56588
  ], QuestionTagboxModel.prototype, "readOnlyText", void 0);
@@ -57220,7 +57520,7 @@ var QuestionTextBase = /** @class */ (function (_super) {
57220
57520
  };
57221
57521
  Object.defineProperty(QuestionTextBase.prototype, "textUpdateMode", {
57222
57522
  /**
57223
- * Gets or sets a value that specifies when to update the question value.
57523
+ * Specifies when to update the question value.
57224
57524
  *
57225
57525
  * Possible values:
57226
57526
  *
@@ -57293,6 +57593,12 @@ var QuestionTextBase = /** @class */ (function (_super) {
57293
57593
  _super.prototype.setQuestionValue.call(this, newValue, updateIsAnswered);
57294
57594
  this.updateRemainingCharacterCounter(newValue);
57295
57595
  };
57596
+ QuestionTextBase.prototype.convertToCorrectValue = function (val) {
57597
+ if (Array.isArray(val))
57598
+ return val.join(this.getValueSeparator());
57599
+ return val;
57600
+ };
57601
+ QuestionTextBase.prototype.getValueSeparator = function () { return ", "; };
57296
57602
  QuestionTextBase.prototype.checkForUndo = function (event) {
57297
57603
  if (this.disableNativeUndoRedo && this.isInputTextUpdate && (event.ctrlKey || event.metaKey)) {
57298
57604
  if ([89, 90].indexOf(event.keyCode) !== -1) {
@@ -57307,97 +57613,10 @@ var QuestionTextBase = /** @class */ (function (_super) {
57307
57613
  .append(this.cssClasses.controlDisabled, this.isReadOnly)
57308
57614
  .toString();
57309
57615
  };
57310
- Object.defineProperty(QuestionTextBase.prototype, "ariaRole", {
57616
+ Object.defineProperty(QuestionTextBase.prototype, "isNewA11yStructure", {
57311
57617
  //a11y
57312
57618
  get: function () {
57313
- return null;
57314
- },
57315
- enumerable: false,
57316
- configurable: true
57317
- });
57318
- Object.defineProperty(QuestionTextBase.prototype, "ariaRequired", {
57319
- get: function () {
57320
- return null;
57321
- },
57322
- enumerable: false,
57323
- configurable: true
57324
- });
57325
- Object.defineProperty(QuestionTextBase.prototype, "ariaInvalid", {
57326
- get: function () {
57327
- return null;
57328
- },
57329
- enumerable: false,
57330
- configurable: true
57331
- });
57332
- Object.defineProperty(QuestionTextBase.prototype, "ariaLabel", {
57333
- get: function () {
57334
- return null;
57335
- },
57336
- enumerable: false,
57337
- configurable: true
57338
- });
57339
- Object.defineProperty(QuestionTextBase.prototype, "ariaLabelledBy", {
57340
- get: function () {
57341
- return null;
57342
- },
57343
- enumerable: false,
57344
- configurable: true
57345
- });
57346
- Object.defineProperty(QuestionTextBase.prototype, "ariaDescribedBy", {
57347
- get: function () {
57348
- return null;
57349
- },
57350
- enumerable: false,
57351
- configurable: true
57352
- });
57353
- Object.defineProperty(QuestionTextBase.prototype, "a11y_input_ariaRole", {
57354
- get: function () {
57355
- return "textbox";
57356
- },
57357
- enumerable: false,
57358
- configurable: true
57359
- });
57360
- Object.defineProperty(QuestionTextBase.prototype, "a11y_input_ariaRequired", {
57361
- get: function () {
57362
- return this.isRequired ? "true" : "false";
57363
- },
57364
- enumerable: false,
57365
- configurable: true
57366
- });
57367
- Object.defineProperty(QuestionTextBase.prototype, "a11y_input_ariaInvalid", {
57368
- get: function () {
57369
- return this.errors.length > 0 ? "true" : "false";
57370
- },
57371
- enumerable: false,
57372
- configurable: true
57373
- });
57374
- Object.defineProperty(QuestionTextBase.prototype, "a11y_input_ariaLabel", {
57375
- get: function () {
57376
- if (this.hasTitle && !this.parentQuestion) {
57377
- return null;
57378
- }
57379
- else {
57380
- return this.locTitle.renderedHtml;
57381
- }
57382
- },
57383
- enumerable: false,
57384
- configurable: true
57385
- });
57386
- Object.defineProperty(QuestionTextBase.prototype, "a11y_input_ariaLabelledBy", {
57387
- get: function () {
57388
- if (this.hasTitle && !this.parentQuestion) {
57389
- return this.ariaTitleId;
57390
- }
57391
- else {
57392
- return null;
57393
- }
57394
- },
57395
- enumerable: false,
57396
- configurable: true
57397
- });
57398
- Object.defineProperty(QuestionTextBase.prototype, "a11y_input_ariaDescribedBy", {
57399
- get: function () {
57400
- return this.errors.length > 0 ? this.id + "_errors" : null;
57619
+ return true;
57401
57620
  },
57402
57621
  enumerable: false,
57403
57622
  configurable: true
@@ -60901,6 +61120,129 @@ var SurveyElementHeader = /** @class */ (function (_super) {
60901
61120
 
60902
61121
 
60903
61122
 
61123
+ /***/ }),
61124
+
61125
+ /***/ "./src/react/element.tsx":
61126
+ /*!*******************************!*\
61127
+ !*** ./src/react/element.tsx ***!
61128
+ \*******************************/
61129
+ /*! exports provided: SurveyRowElement */
61130
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
61131
+
61132
+ "use strict";
61133
+ __webpack_require__.r(__webpack_exports__);
61134
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyRowElement", function() { return SurveyRowElement; });
61135
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
61136
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
61137
+ /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reactquestion_element */ "./src/react/reactquestion_element.tsx");
61138
+ /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./element-factory */ "./src/react/element-factory.tsx");
61139
+ var __extends = (undefined && undefined.__extends) || (function () {
61140
+ var extendStatics = function (d, b) {
61141
+ extendStatics = Object.setPrototypeOf ||
61142
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
61143
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
61144
+ return extendStatics(d, b);
61145
+ };
61146
+ return function (d, b) {
61147
+ if (typeof b !== "function" && b !== null)
61148
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
61149
+ extendStatics(d, b);
61150
+ function __() { this.constructor = d; }
61151
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
61152
+ };
61153
+ })();
61154
+
61155
+
61156
+
61157
+ var SurveyRowElement = /** @class */ (function (_super) {
61158
+ __extends(SurveyRowElement, _super);
61159
+ function SurveyRowElement(props) {
61160
+ var _this = _super.call(this, props) || this;
61161
+ _this.element.cssClasses;
61162
+ return _this;
61163
+ }
61164
+ SurveyRowElement.prototype.getStateElement = function () {
61165
+ return this.element;
61166
+ };
61167
+ Object.defineProperty(SurveyRowElement.prototype, "element", {
61168
+ get: function () {
61169
+ return this.props.element;
61170
+ },
61171
+ enumerable: false,
61172
+ configurable: true
61173
+ });
61174
+ Object.defineProperty(SurveyRowElement.prototype, "index", {
61175
+ get: function () {
61176
+ return this.props.index;
61177
+ },
61178
+ enumerable: false,
61179
+ configurable: true
61180
+ });
61181
+ Object.defineProperty(SurveyRowElement.prototype, "row", {
61182
+ get: function () {
61183
+ return this.props.row;
61184
+ },
61185
+ enumerable: false,
61186
+ configurable: true
61187
+ });
61188
+ Object.defineProperty(SurveyRowElement.prototype, "survey", {
61189
+ get: function () {
61190
+ return this.props.survey;
61191
+ },
61192
+ enumerable: false,
61193
+ configurable: true
61194
+ });
61195
+ Object.defineProperty(SurveyRowElement.prototype, "creator", {
61196
+ get: function () {
61197
+ return this.props.creator;
61198
+ },
61199
+ enumerable: false,
61200
+ configurable: true
61201
+ });
61202
+ Object.defineProperty(SurveyRowElement.prototype, "css", {
61203
+ get: function () {
61204
+ return this.props.css;
61205
+ },
61206
+ enumerable: false,
61207
+ configurable: true
61208
+ });
61209
+ SurveyRowElement.prototype.shouldComponentUpdate = function (nextProps, nextState) {
61210
+ if (!_super.prototype.shouldComponentUpdate.call(this, nextProps, nextState))
61211
+ return false;
61212
+ this.element.cssClasses;
61213
+ return true;
61214
+ };
61215
+ SurveyRowElement.prototype.renderElement = function () {
61216
+ var element = this.element;
61217
+ var innerElement = this.createElement(element, this.index);
61218
+ var css = element.cssClassesValue;
61219
+ var focusIn = function () {
61220
+ var el = element;
61221
+ if (el && el.isQuestion) {
61222
+ el.focusIn();
61223
+ }
61224
+ };
61225
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: css.questionWrapper, style: element.rootStyle, "data-key": innerElement.key, key: innerElement.key, onFocus: focusIn }, this.row.isNeedRender ? innerElement : _element_factory__WEBPACK_IMPORTED_MODULE_2__["ReactElementFactory"].Instance.createElement(element.skeletonComponentName, { element: element, css: this.css, })));
61226
+ };
61227
+ SurveyRowElement.prototype.createElement = function (element, elementIndex) {
61228
+ var index = elementIndex ? "-" + elementIndex : 0;
61229
+ var elementType = element.getType();
61230
+ if (!_element_factory__WEBPACK_IMPORTED_MODULE_2__["ReactElementFactory"].Instance.isElementRegistered(elementType)) {
61231
+ elementType = "question";
61232
+ }
61233
+ return _element_factory__WEBPACK_IMPORTED_MODULE_2__["ReactElementFactory"].Instance.createElement(elementType, {
61234
+ key: element.name + index,
61235
+ element: element,
61236
+ creator: this.creator,
61237
+ survey: this.survey,
61238
+ css: this.css,
61239
+ });
61240
+ };
61241
+ return SurveyRowElement;
61242
+ }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["SurveyElementBase"]));
61243
+
61244
+
61245
+
60904
61246
  /***/ }),
60905
61247
 
60906
61248
  /***/ "./src/react/flow-panel.tsx":
@@ -62468,7 +62810,7 @@ var SurveyProgressButtons = /** @class */ (function (_super) {
62468
62810
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("li", { key: "listelement" + index, className: this.getListElementCss(index), onClick: this.isListElementClickable(index)
62469
62811
  ? function () { return _this.clickListElement(index); }
62470
62812
  : undefined },
62471
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageTitle, title: page.navigationTitle || page.name }, page.navigationTitle || page.name),
62813
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageTitle, title: page.renderedNavigationTitle }, page.renderedNavigationTitle),
62472
62814
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageDescription, title: page.navigationDescription }, page.navigationDescription)));
62473
62815
  };
62474
62816
  SurveyProgressButtons.prototype.isListElementClickable = function (index) {
@@ -63183,7 +63525,7 @@ var SurveyQuestionCheckbox = /** @class */ (function (_super) {
63183
63525
  SurveyQuestionCheckbox.prototype.renderElement = function () {
63184
63526
  var _this = this;
63185
63527
  var cssClasses = this.question.cssClasses;
63186
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("fieldset", { role: "presentation", className: this.question.getSelectBaseRootCss(), ref: function (fieldset) { return (_this.setControl(fieldset)); } },
63528
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("fieldset", { className: this.question.getSelectBaseRootCss(), ref: function (fieldset) { return (_this.setControl(fieldset)); }, role: this.question.a11y_input_ariaRole, "aria-required": this.question.a11y_input_ariaRequired, "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-invalid": this.question.a11y_input_ariaInvalid, "aria-describedby": this.question.a11y_input_ariaDescribedBy },
63187
63529
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("legend", { role: "presentation", className: "sv-hidden" }),
63188
63530
  this.getHeader(),
63189
63531
  this.question.hasColumns
@@ -63363,8 +63705,8 @@ var SurveyQuestionCheckboxItem = /** @class */ (function (_super) {
63363
63705
  : this.handleOnChange;
63364
63706
  var itemLabel = !this.hideCaption ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.cssClasses.controlLabel }, this.renderLocString(this.item.locText, this.textStyle)) : null;
63365
63707
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: itemClass, role: "presentation" },
63366
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { className: labelClass, "aria-label": this.question.getAriaItemLabel(this.item) },
63367
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { className: this.cssClasses.itemControl, role: "option", type: "checkbox", name: this.question.name, value: this.item.value != "selectall" ? this.item.value : undefined, id: id, style: this.inputStyle, disabled: !this.question.getItemEnabled(this.item), checked: isChecked, onChange: onItemChanged, "aria-describedby": this.question.ariaDescribedBy }),
63708
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { className: labelClass },
63709
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { className: this.cssClasses.itemControl, type: "checkbox", name: this.question.name, value: this.item.value != "selectall" ? this.item.value : undefined, id: id, style: this.inputStyle, disabled: !this.question.getItemEnabled(this.item), checked: isChecked, onChange: onItemChanged }),
63368
63710
  this.cssClasses.materialDecorator ?
63369
63711
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.cssClasses.materialDecorator }, this.question.itemSvgIcon ?
63370
63712
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("svg", { className: this.cssClasses.itemDecorator },
@@ -63493,7 +63835,7 @@ var SurveyQuestionCommentItem = /** @class */ (function (_super) {
63493
63835
  if (question.isReadOnlyRenderDiv()) {
63494
63836
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", null, comment);
63495
63837
  }
63496
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("textarea", { id: this.getId(), className: className, value: comment, disabled: this.isDisplayMode, maxLength: question.getOthersMaxLength(), placeholder: this.getPlaceholder(), onChange: handleOnChange, onBlur: function (e) { _this.onCommentChange(e); handleOnChange(e); }, onInput: function (e) { return _this.onCommentInput(e); }, "aria-required": question.isRequired, "aria-label": question.locTitle.renderedHtml, style: { resize: question.resizeStyle } }));
63838
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("textarea", { id: this.getId(), className: className, value: comment, disabled: this.isDisplayMode, maxLength: question.getOthersMaxLength(), placeholder: this.getPlaceholder(), onChange: handleOnChange, onBlur: function (e) { _this.onCommentChange(e); handleOnChange(e); }, onInput: function (e) { return _this.onCommentInput(e); }, "aria-required": question.isRequired || question.a11y_input_ariaRequired, "aria-label": question.ariaLabel || question.a11y_input_ariaLabel, style: { resize: question.resizeStyle } }));
63497
63839
  };
63498
63840
  return SurveyQuestionCommentItem;
63499
63841
  }(_reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["ReactSurveyElement"]));
@@ -64253,7 +64595,7 @@ var SurveyQuestionFile = /** @class */ (function (_super) {
64253
64595
  var fileDecorator = this.renderFileDecorator();
64254
64596
  var clearButton = this.question.showRemoveButton ? this.renderClearButton(this.question.cssClasses.removeButton) : null;
64255
64597
  var clearButtonBottom = this.question.showRemoveButtonBottom ? this.renderClearButton(this.question.cssClasses.removeButtonBottom) : null;
64256
- var mobileFileNavigator = this.question.mobileFileNavigatorVisible ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_1__["SurveyActionBar"], { model: this.question.mobileFileNavigator })) : null;
64598
+ var fileNavigator = this.question.fileNavigatorVisible ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_1__["SurveyActionBar"], { model: this.question.fileNavigator })) : null;
64257
64599
  fileInput = (this.isDisplayMode ?
64258
64600
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "file", disabled: this.isDisplayMode, className: !this.isDisplayMode ? this.question.cssClasses.fileInput : this.question.getReadOnlyFileCss(), id: this.question.inputId, ref: function (input) { return (_this.setControl(input)); }, style: !this.isDisplayMode ? {} : { color: "transparent" }, onChange: !this.isDisplayMode ? this.question.doChange : (function () { }), multiple: this.question.allowMultiple, placeholder: this.question.title, accept: this.question.acceptedTypes })
64259
64601
  :
@@ -64265,7 +64607,7 @@ var SurveyQuestionFile = /** @class */ (function (_super) {
64265
64607
  clearButton,
64266
64608
  preview,
64267
64609
  clearButtonBottom,
64268
- mobileFileNavigator)));
64610
+ fileNavigator)));
64269
64611
  };
64270
64612
  SurveyQuestionFile.prototype.renderFileDecorator = function () {
64271
64613
  var loadingIndicator = this.renderLoadingIndicator();
@@ -65226,7 +65568,7 @@ var SurveyQuestionMultipleText = /** @class */ (function (_super) {
65226
65568
  rows.push(this.renderRow(i, tableRows[i].cells, cssClasses));
65227
65569
  }
65228
65570
  }
65229
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("table", { className: cssClasses.root },
65571
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("table", { className: this.question.getQuestionRootCss() },
65230
65572
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("tbody", null, rows)));
65231
65573
  };
65232
65574
  SurveyQuestionMultipleText.prototype.renderCell = function (cell, cssClasses, index) {
@@ -65606,7 +65948,7 @@ var SurveyQuestionRadiogroup = /** @class */ (function (_super) {
65606
65948
  clearButton = (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", null,
65607
65949
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { type: "button", className: this.question.cssClasses.clearButton, onClick: function () { return _this.question.clearValue(); }, value: this.question.clearButtonCaption })));
65608
65950
  }
65609
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("fieldset", { className: this.question.getSelectBaseRootCss(), role: "presentation", ref: function (fieldset) { return (_this.setControl(fieldset)); } },
65951
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("fieldset", { className: this.question.getSelectBaseRootCss(), ref: function (fieldset) { return (_this.setControl(fieldset)); }, role: this.question.a11y_input_ariaRole, "aria-required": this.question.a11y_input_ariaRequired, "aria-label": this.question.a11y_input_ariaLabel, "aria-labelledby": this.question.a11y_input_ariaLabelledBy, "aria-invalid": this.question.a11y_input_ariaInvalid, "aria-describedby": this.question.a11y_input_ariaDescribedBy },
65610
65952
  this.question.hasColumns
65611
65953
  ? this.getColumnedBody(cssClasses)
65612
65954
  : this.getBody(cssClasses),
@@ -65765,7 +66107,7 @@ var SurveyQuestionRadioItem = /** @class */ (function (_super) {
65765
66107
  var controlLabelClass = this.question.getControlLabelClass(this.item);
65766
66108
  var itemLabel = !this.hideCaption ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: controlLabelClass }, this.renderLocString(this.item.locText, this.textStyle)) : null;
65767
66109
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: itemClass, role: "presentation" },
65768
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { onMouseDown: this.handleOnMouseDown, className: labelClass, "aria-label": this.question.getAriaItemLabel(this.item) },
66110
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { onMouseDown: this.handleOnMouseDown, className: labelClass },
65769
66111
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", { "aria-describedby": this.question.ariaDescribedBy, className: this.cssClasses.itemControl, id: this.question.getItemId(this.item), type: "radio", name: this.question.questionName, checked: this.isChecked, value: this.item.value, disabled: !this.question.getItemEnabled(this.item), onChange: this.handleOnChange }),
65770
66112
  this.cssClasses.materialDecorator ?
65771
66113
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.cssClasses.materialDecorator }, this.question.itemSvgIcon ?
@@ -66418,8 +66760,9 @@ __webpack_require__.r(__webpack_exports__);
66418
66760
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
66419
66761
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
66420
66762
  /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reactquestion_element */ "./src/react/reactquestion_element.tsx");
66421
- /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./element-factory */ "./src/react/element-factory.tsx");
66422
- /* harmony import */ var _reactsurveymodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reactsurveymodel */ "./src/react/reactsurveymodel.tsx");
66763
+ /* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./element */ "./src/react/element.tsx");
66764
+ /* harmony import */ var _element_factory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./element-factory */ "./src/react/element-factory.tsx");
66765
+ /* harmony import */ var _reactsurveymodel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reactsurveymodel */ "./src/react/reactsurveymodel.tsx");
66423
66766
  var __extends = (undefined && undefined.__extends) || (function () {
66424
66767
  var extendStatics = function (d, b) {
66425
66768
  extendStatics = Object.setPrototypeOf ||
@@ -66439,6 +66782,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
66439
66782
 
66440
66783
 
66441
66784
 
66785
+
66442
66786
  var SurveyRow = /** @class */ (function (_super) {
66443
66787
  __extends(SurveyRow, _super);
66444
66788
  function SurveyRow(props) {
@@ -66486,23 +66830,17 @@ var SurveyRow = /** @class */ (function (_super) {
66486
66830
  };
66487
66831
  SurveyRow.prototype.renderElementContent = function () {
66488
66832
  var _this = this;
66489
- var elements = this.row.visibleElements.map(function (element, index) {
66490
- var innerElement = _this.createElement(element, index);
66491
- var css = element.cssClassesValue;
66492
- var focusIn = function () {
66493
- var el = element;
66494
- if (el && el.isQuestion) {
66495
- el.focusIn();
66496
- }
66497
- };
66498
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: css.questionWrapper, style: element.rootStyle, "data-key": innerElement.key, key: innerElement.key, onFocus: focusIn }, _this.row.isNeedRender ? innerElement : _element_factory__WEBPACK_IMPORTED_MODULE_2__["ReactElementFactory"].Instance.createElement(element.skeletonComponentName, { element: element, css: _this.css, })));
66833
+ var elements = this.row.visibleElements.map(function (element, elementIndex) {
66834
+ var index = elementIndex ? "-" + elementIndex : 0;
66835
+ var key = element.name + index;
66836
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_element__WEBPACK_IMPORTED_MODULE_2__["SurveyRowElement"], { element: element, index: elementIndex, row: _this.row, survey: _this.survey, creator: _this.creator, css: _this.css, key: key }));
66499
66837
  });
66500
66838
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { ref: this.rootRef, className: this.row.getRowCss() }, elements));
66501
66839
  };
66502
66840
  SurveyRow.prototype.renderElement = function () {
66503
66841
  var survey = this.survey;
66504
66842
  var content = this.renderElementContent();
66505
- var wrapper = _reactsurveymodel__WEBPACK_IMPORTED_MODULE_3__["ReactSurveyElementsWrapper"].wrapRow(survey, content, this.row);
66843
+ var wrapper = _reactsurveymodel__WEBPACK_IMPORTED_MODULE_4__["ReactSurveyElementsWrapper"].wrapRow(survey, content, this.row);
66506
66844
  return wrapper || content;
66507
66845
  };
66508
66846
  SurveyRow.prototype.componentDidMount = function () {
@@ -66537,10 +66875,10 @@ var SurveyRow = /** @class */ (function (_super) {
66537
66875
  SurveyRow.prototype.createElement = function (element, elementIndex) {
66538
66876
  var index = elementIndex ? "-" + elementIndex : 0;
66539
66877
  var elementType = element.getType();
66540
- if (!_element_factory__WEBPACK_IMPORTED_MODULE_2__["ReactElementFactory"].Instance.isElementRegistered(elementType)) {
66878
+ if (!_element_factory__WEBPACK_IMPORTED_MODULE_3__["ReactElementFactory"].Instance.isElementRegistered(elementType)) {
66541
66879
  elementType = "question";
66542
66880
  }
66543
- return _element_factory__WEBPACK_IMPORTED_MODULE_2__["ReactElementFactory"].Instance.createElement(elementType, {
66881
+ return _element_factory__WEBPACK_IMPORTED_MODULE_3__["ReactElementFactory"].Instance.createElement(elementType, {
66544
66882
  key: element.name + index,
66545
66883
  element: element,
66546
66884
  creator: this.creator,
@@ -69308,12 +69646,13 @@ var SurveyElement = /** @class */ (function (_super) {
69308
69646
  Object.defineProperty(SurveyElement.prototype, "rootStyle", {
69309
69647
  get: function () {
69310
69648
  var style = {};
69649
+ var minWidth = this.renderMinWidth ? this.minWidth : "min(100%, " + this.minWidth + ")";
69311
69650
  if (this.allowRootStyle && this.renderWidth) {
69312
69651
  // style["width"] = this.renderWidth;
69313
69652
  style["flexGrow"] = 1;
69314
69653
  style["flexShrink"] = 1;
69315
69654
  style["flexBasis"] = this.renderWidth;
69316
- style["minWidth"] = this.minWidth;
69655
+ style["minWidth"] = minWidth;
69317
69656
  style["maxWidth"] = this.maxWidth;
69318
69657
  }
69319
69658
  return style;
@@ -69398,6 +69737,9 @@ var SurveyElement = /** @class */ (function (_super) {
69398
69737
  __decorate([
69399
69738
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: true })
69400
69739
  ], SurveyElement.prototype, "allowRootStyle", void 0);
69740
+ __decorate([
69741
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: true })
69742
+ ], SurveyElement.prototype, "renderMinWidth", void 0);
69401
69743
  return SurveyElement;
69402
69744
  }(SurveyElementCore));
69403
69745
 
@@ -69783,7 +70125,7 @@ var SurveyModel = /** @class */ (function (_super) {
69783
70125
  */
69784
70126
  _this.onValidateQuestion = _this.addEvent();
69785
70127
  /**
69786
- * An event that is raised before errors are assigned to a question. You may add/remove/modify errors for a question.
70128
+ * An event that is raised before errors are assigned to a question. Use this event to add/remove/modify errors.
69787
70129
  * @see onValidateQuestion
69788
70130
  */
69789
70131
  _this.onSettingQuestionErrors = _this.addEvent();
@@ -69795,6 +70137,7 @@ var SurveyModel = /** @class */ (function (_super) {
69795
70137
  * [View Demo](https://surveyjs.io/form-library/examples/javascript-server-side-form-validation/ (linkStyle))
69796
70138
  * @see onValidateQuestion
69797
70139
  * @see onValidatePanel
70140
+ * @see isValidatingOnServer
69798
70141
  */
69799
70142
  _this.onServerValidateQuestions = _this.addEvent();
69800
70143
  /**
@@ -69808,11 +70151,11 @@ var SurveyModel = /** @class */ (function (_super) {
69808
70151
  */
69809
70152
  _this.onValidatePanel = _this.addEvent();
69810
70153
  /**
69811
- * Use the event to change the default error text.
70154
+ * An event that is raised to change default error messages.
69812
70155
  */
69813
70156
  _this.onErrorCustomText = _this.addEvent();
69814
70157
  /**
69815
- * Use the this event to be notified when the survey finished validate questions on the current page. It commonly happens when a user try to go to the next page or complete the survey
70158
+ * An event that is raised when the [current page](#currentPage) is being validated. Handle this event to be notified of current page validation.
69816
70159
  */
69817
70160
  _this.onValidatedErrorsOnCurrentPage = _this.addEvent();
69818
70161
  /**
@@ -69862,16 +70205,13 @@ var SurveyModel = /** @class */ (function (_super) {
69862
70205
  */
69863
70206
  _this.onProgressText = _this.addEvent();
69864
70207
  /**
69865
- * Use this event to process the markdown text.
70208
+ * An event that is raised to convert Markdown content to HTML.
69866
70209
  *
69867
70210
  * For information on event handler parameters, refer to descriptions within the interface.
69868
70211
  *
69869
70212
  * [View Demo](https://surveyjs.io/form-library/examples/edit-survey-questions-markdown/ (linkStyle))
69870
70213
  */
69871
70214
  _this.onTextMarkdown = _this.addEvent();
69872
- /**
69873
- * Use this event to specity render component name used for text rendering.
69874
- */
69875
70215
  _this.onTextRenderAs = _this.addEvent();
69876
70216
  /**
69877
70217
  * An event that is raised after a request to save survey results on [SurveyJS Service](https://api.surveyjs.io/) has been completed. Use this event to find out if the results have been saved successfully.
@@ -69916,21 +70256,18 @@ var SurveyModel = /** @class */ (function (_super) {
69916
70256
  */
69917
70257
  _this.onClearFiles = _this.addEvent();
69918
70258
  /**
69919
- * An event that is raised after choices for radiogroup, checkbox, and dropdown has been loaded from a RESTful service and before they are assigned to a question.
69920
- * You may change the choices, before they are assigned or disable/enabled make visible/invisible question, based on loaded results.
70259
+ * An event that is raised after choices are loaded from a server but before they are assigned to a choice-based question, such as [Dropdown](https://surveyjs.io/form-library/documentation/api-reference/dropdown-menu-model) or [Checkboxes](https://surveyjs.io/form-library/documentation/api-reference/checkbox-question-model). Handle this event if you need to modify the loaded choices.
69921
70260
  */
69922
70261
  _this.onLoadChoicesFromServer = _this.addEvent();
69923
70262
  /**
69924
- * An event that is raised after survey is loaded from api.surveyjs.io service.
69925
- * You can use this event to perform manipulation with the survey model after it was loaded from the web service.
70263
+ * An event that is raised after a survey JSON schema is loaded from the [SurveyJS Service](https://api.surveyjs.io). Use this event to modify the loaded schema.
69926
70264
  * @see surveyId
70265
+ * @see clientId
69927
70266
  * @see loadSurveyFromService
69928
70267
  */
69929
70268
  _this.onLoadedSurveyFromService = _this.addEvent();
69930
70269
  /**
69931
- * An event that is raised on processing the text when it finds a text in brackets: `{somevalue}`. By default, it uses the value of survey question values and variables.
69932
- * For example, you may use the text processing in loading choices from the web. If your `choicesByUrl.url` equals to "UrlToServiceToGetAllCities/{country}/{state}",
69933
- * you may set on this event `options.value` to "all" or empty string when the "state" value/question is non selected by a user.
70270
+ * An event that is raised when the survey processes [dynamic texts](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#dynamic-texts) and any text in curly brackets. Use this event, for instance, to substitute parameters in a RESTful URL with real values when you [load choices by URL](https://surveyjs.io/form-library/documentation/api-reference/checkbox-question-model#choicesByUrl).
69934
70271
  */
69935
70272
  _this.onProcessTextValue = _this.addEvent();
69936
70273
  /**
@@ -70025,7 +70362,7 @@ var SurveyModel = /** @class */ (function (_super) {
70025
70362
  */
70026
70363
  _this.onFocusInPanel = _this.addEvent();
70027
70364
  /**
70028
- * Use this event to change the visibility of an individual choice item in [Checkbox](https://surveyjs.io/Documentation/Library?id=questioncheckboxmodel), [Dropdown](https://surveyjs.io/Documentation/Library?id=questiondropdownmodel), [Radiogroup](https://surveyjs.io/Documentation/Library?id=questionradiogroupmodel), and other similar question types.
70365
+ * An event that is raised before a [choice item](https://surveyjs.io/form-library/documentation/api-reference/questionselectbase#choices) is displayed. Use this event to change the visibility of individual choice items in [Checkboxes](https://surveyjs.io/form-library/documentation/api-reference/checkbox-question-model), [Dropdown](https://surveyjs.io/form-library/documentation/api-reference/dropdown-menu-model), [Radio Button Group](https://surveyjs.io/form-library/documentation/api-reference/radio-button-question-model), and other similar question types.
70029
70366
  */
70030
70367
  _this.onShowingChoiceItem = _this.addEvent();
70031
70368
  /**
@@ -70154,19 +70491,16 @@ var SurveyModel = /** @class */ (function (_super) {
70154
70491
  */
70155
70492
  _this.onGetDynamicPanelTabTitle = _this.addEvent();
70156
70493
  /**
70157
- * Use this event to define, whether an answer to a question is correct or not.
70158
- * @see Question.value
70159
- * @see Question.correctAnswer
70494
+ * An event that is raised to define whether a question answer is correct. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey/create-a-quiz).
70160
70495
  */
70161
70496
  _this.onIsAnswerCorrect = _this.addEvent();
70162
70497
  /**
70163
- * Use this event to control drag&drop operations during design mode.
70164
- * @see setDesignMode
70498
+ * An event that is raised when users drag and drop survey elements while designing the survey in [Survey Creator](https://surveyjs.io/survey-creator/documentation/overview). Use this event to control drag and drop operations.
70165
70499
  * @see isDesignMode
70166
70500
  */
70167
70501
  _this.onDragDropAllow = _this.addEvent();
70168
70502
  /**
70169
- * Use this event to control scrolling element to top. You can cancel the default behavior by setting options.cancel property to true.
70503
+ * An event this is raised before a survey element (usually page) is scrolled to the top. Use this event to cancel the scroll operation.
70170
70504
  */
70171
70505
  _this.onScrollingElementToTop = _this.addEvent();
70172
70506
  _this.onLocaleChangedEvent = _this.addEvent();
@@ -70204,12 +70538,11 @@ var SurveyModel = /** @class */ (function (_super) {
70204
70538
  */
70205
70539
  _this.onGetMatrixRowActions = _this.addEvent();
70206
70540
  /**
70207
- * An event that is raised after the survey element content was collapsed or expanded.
70208
- * @see onElementContentVisibilityChanged
70541
+ * An event that is raised after a survey element is [expanded or collapsed](https://surveyjs.io/form-library/documentation/api-reference/question#state).
70209
70542
  */
70210
70543
  _this.onElementContentVisibilityChanged = _this.addEvent();
70211
70544
  /**
70212
- * An event that is raised before expression question convert it's value into display value for rendering.
70545
+ * An event that is raised before an [Expression](https://surveyjs.io/form-library/documentation/api-reference/expression-model) question displays a value. Use this event to override the display value.
70213
70546
  */
70214
70547
  _this.onGetExpressionDisplayValue = _this.addEvent();
70215
70548
  /**
@@ -70217,13 +70550,16 @@ var SurveyModel = /** @class */ (function (_super) {
70217
70550
  */
70218
70551
  _this.onPopupVisibleChanged = _this.addEvent();
70219
70552
  /**
70220
- * The list of errors on loading survey JSON. If the list is empty after loading a JSON, then the JSON is correct and has no errors.
70221
- * @see JsonError
70553
+ * A list of errors in a survey JSON schema.
70554
+ * @see ensureUniqueNames
70222
70555
  */
70223
70556
  _this.jsonErrors = null;
70224
70557
  _this.cssValue = null;
70225
70558
  /**
70226
- * Gets or sets whether to hide all required errors.
70559
+ * Specifies whether to hide validation errors thrown by the Required validation in the UI.
70560
+ *
70561
+ * [Built-In Client-Side Validators](https://surveyjs.io/form-library/documentation/data-validation#built-in-client-side-validators (linkStyle))
70562
+ * @see ignoreValidation
70227
70563
  */
70228
70564
  _this.hideRequiredErrors = false;
70229
70565
  //#endregion
@@ -70232,10 +70568,13 @@ var SurveyModel = /** @class */ (function (_super) {
70232
70568
  _this._isCompact = false;
70233
70569
  _this._isDesignMode = false;
70234
70570
  /**
70235
- * Gets or sets whether the survey must ignore validation like required questions and others, on `nextPage` and `completeLastPage` function calls. The default is `false`.
70571
+ * Specifies whether to skip validation when you switch between pages or complete the survey programmatically or when users do that in the UI.
70572
+ *
70573
+ * Default value: `false`
70574
+ * @see hideRequiredErrors
70236
70575
  * @see nextPage
70576
+ * @see isPrevPage
70237
70577
  * @see completeLastPage
70238
- * @see mode
70239
70578
  */
70240
70579
  _this.ignoreValidation = false;
70241
70580
  _this.isNavigationButtonPressed = false;
@@ -70276,10 +70615,6 @@ var SurveyModel = /** @class */ (function (_super) {
70276
70615
  _this.createLocalizableString("previewText", _this, false, true);
70277
70616
  _this.createLocalizableString("editText", _this, false, true);
70278
70617
  _this.createLocalizableString("questionTitleTemplate", _this, true);
70279
- _this.textPreProcessor = new _textPreProcessor__WEBPACK_IMPORTED_MODULE_5__["TextPreProcessor"]();
70280
- _this.textPreProcessor.onProcess = function (textValue) {
70281
- _this.getProcessedTextValue(textValue);
70282
- };
70283
70618
  _this.timerModelValue = new _surveyTimerModel__WEBPACK_IMPORTED_MODULE_12__["SurveyTimerModel"](_this);
70284
70619
  _this.timerModelValue.onTimer = function (page) {
70285
70620
  _this.doTimer(page);
@@ -70677,11 +71012,15 @@ var SurveyModel = /** @class */ (function (_super) {
70677
71012
  };
70678
71013
  Object.defineProperty(SurveyModel.prototype, "lazyRendering", {
70679
71014
  /**
70680
- * By default all rows are rendered no matters if they are visible or not.
70681
- * Set it true, and survey markup rows will be rendered only if they are visible in viewport.
70682
- * This feature is experimantal and might do not support all the use cases.
71015
+ * Specifies whether to enable lazy rendering.
71016
+ *
71017
+ * In default mode, a survey renders the entire current page. With lazy rendering, the survey renders the page gradually as a user scrolls it. This helps reduce survey startup time and oprimizes large surveys for low-end devices.
71018
+ *
71019
+ * Default value: `false`
70683
71020
  *
70684
71021
  * [View Demo](https://surveyjs.io/form-library/examples/survey-lazy/ (linkStyle))
71022
+ *
71023
+ * > This is an experimental feature that may not work properly in certain cases.
70685
71024
  */
70686
71025
  get: function () {
70687
71026
  return this.lazyRenderingValue === true;
@@ -70798,7 +71137,7 @@ var SurveyModel = /** @class */ (function (_super) {
70798
71137
  * A cookie name used to save information about survey completion.
70799
71138
  *
70800
71139
  * When this property has a value, the survey creates a cookie with the specified name on completion. This cookie helps ensure that users do not pass the same survey twice. On the second run, they will see the [Completed Before page](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#completedBeforeHtml).
70801
- * @see cliendId
71140
+ * @see clientId
70802
71141
  */
70803
71142
  get: function () {
70804
71143
  return this.getPropertyValue("cookieName", "");
@@ -70826,7 +71165,9 @@ var SurveyModel = /** @class */ (function (_super) {
70826
71165
  });
70827
71166
  Object.defineProperty(SurveyModel.prototype, "surveyShowDataSaving", {
70828
71167
  /**
70829
- * Gets or sets whether to show the progress on saving/sending data into the [api.surveyjs.io](https://api.surveyjs.io) service.
71168
+ * Specifies whether to show progress when the survey sends data to [SurveyJS Service](https://api.surveyjs.io).
71169
+ *
71170
+ * [View Demo](https://surveyjs.io/form-library/examples/save-survey-results-and-load-surveys-from-surveyjs-service/ (linkStyle))
70830
71171
  * @see surveyPostId
70831
71172
  */
70832
71173
  get: function () {
@@ -71048,10 +71389,11 @@ var SurveyModel = /** @class */ (function (_super) {
71048
71389
  };
71049
71390
  Object.defineProperty(SurveyModel.prototype, "requiredText", {
71050
71391
  /**
71051
- * Gets or sets the required question mark. The required question mark is a char or string that is rendered in the required questions' titles.
71052
- * @see Question.title
71392
+ * Specifies one or multiple characters that designate required questions.
71053
71393
  *
71054
- * [View Demo](https://surveyjs.io/form-library/examples/survey-processtext/ (linkStyle))
71394
+ * Default value: `*`
71395
+ *
71396
+ * [View Demo](https://surveyjs.io/form-library/examples/modify-question-title/ (linkStyle))
71055
71397
  */
71056
71398
  get: function () {
71057
71399
  return this.getPropertyValue("requiredText", "*");
@@ -71063,16 +71405,16 @@ var SurveyModel = /** @class */ (function (_super) {
71063
71405
  configurable: true
71064
71406
  });
71065
71407
  SurveyModel.prototype.beforeSettingQuestionErrors = function (question, errors) {
71066
- this.maakeRequiredErrorsInvisibgle(errors);
71408
+ this.makeRequiredErrorsInvisible(errors);
71067
71409
  this.onSettingQuestionErrors.fire(this, {
71068
71410
  question: question,
71069
71411
  errors: errors,
71070
71412
  });
71071
71413
  };
71072
71414
  SurveyModel.prototype.beforeSettingPanelErrors = function (question, errors) {
71073
- this.maakeRequiredErrorsInvisibgle(errors);
71415
+ this.makeRequiredErrorsInvisible(errors);
71074
71416
  };
71075
- SurveyModel.prototype.maakeRequiredErrorsInvisibgle = function (errors) {
71417
+ SurveyModel.prototype.makeRequiredErrorsInvisible = function (errors) {
71076
71418
  if (!this.hideRequiredErrors)
71077
71419
  return;
71078
71420
  for (var i = 0; i < errors.length; i++) {
@@ -71244,14 +71586,16 @@ var SurveyModel = /** @class */ (function (_super) {
71244
71586
  });
71245
71587
  Object.defineProperty(SurveyModel.prototype, "textUpdateMode", {
71246
71588
  /**
71247
- * Gets or sets a value that specifies how the survey updates its questions' text values.
71589
+ * Specifies when to update the question value in questions with a text input field.
71248
71590
  *
71249
- * The following options are available:
71591
+ * Possible values:
71250
71592
  *
71251
- * - `onBlur` (default) - the value is updated after an input loses the focus.
71252
- * - `onTyping` - update the value of text questions, "text" and "comment", on every key press.
71593
+ * - `"onBlur"` (default) - Updates the value after the input field loses focus.
71594
+ * - `"onTyping"` - Updates the value on every key press.
71595
+ *
71596
+ * > Do not use the `"onTyping"` mode if your survey contains many expressions. Expressions are reevaluated each time a question value is changed. In `"onTyping"` mode, the question value changes frequently. This may cause performance degradation.
71253
71597
  *
71254
- * Note, that setting to "onTyping" may lead to a performance degradation, in case you have many expressions in the survey.
71598
+ * You can override this setting for individual questions: [`textUpdateMode`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#textUpdateMode).
71255
71599
  */
71256
71600
  get: function () {
71257
71601
  return this.getPropertyValue("textUpdateMode");
@@ -71732,15 +72076,15 @@ var SurveyModel = /** @class */ (function (_super) {
71732
72076
  });
71733
72077
  SurveyModel.prototype.setIsMobile = function (newVal) {
71734
72078
  if (newVal === void 0) { newVal = true; }
71735
- if (this.isMobile !== newVal) {
72079
+ if (this._isMobile !== newVal) {
71736
72080
  this._isMobile = newVal;
71737
72081
  this.updateCss();
71738
- this.getAllQuestions().map(function (q) { return q.isMobile = newVal; });
72082
+ this.getAllQuestions().map(function (q) { return q.setIsMobile(newVal); });
71739
72083
  }
71740
72084
  };
71741
72085
  Object.defineProperty(SurveyModel.prototype, "isMobile", {
71742
72086
  get: function () {
71743
- return this._isMobile;
72087
+ return this._isMobile && !this.isDesignMode;
71744
72088
  },
71745
72089
  enumerable: false,
71746
72090
  configurable: true
@@ -71847,8 +72191,8 @@ var SurveyModel = /** @class */ (function (_super) {
71847
72191
  configurable: true
71848
72192
  });
71849
72193
  /**
71850
- * Calculates a given expression and returns a result value.
71851
- * @param expression
72194
+ * Calculates a given [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) and returns a result value.
72195
+ * @param expression An expression to calculate.
71852
72196
  */
71853
72197
  SurveyModel.prototype.runExpression = function (expression) {
71854
72198
  if (!expression)
@@ -71858,8 +72202,8 @@ var SurveyModel = /** @class */ (function (_super) {
71858
72202
  return new _conditions__WEBPACK_IMPORTED_MODULE_13__["ExpressionRunner"](expression).run(values, properties);
71859
72203
  };
71860
72204
  /**
71861
- * Calculates a given expression and returns `true` or `false`.
71862
- * @param expression
72205
+ * Calculates a given [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) and returns `true` or `false`.
72206
+ * @param expression An expression to calculate.
71863
72207
  */
71864
72208
  SurveyModel.prototype.runCondition = function (expression) {
71865
72209
  if (!expression)
@@ -71899,9 +72243,7 @@ var SurveyModel = /** @class */ (function (_super) {
71899
72243
  };
71900
72244
  Object.defineProperty(SurveyModel.prototype, "completedBeforeHtml", {
71901
72245
  /**
71902
- * HTML content displayed to a user who has completed the survey before.
71903
- * @see clientId
71904
- * @see cookieName
72246
+ * HTML content displayed to a user who has completed the survey before. To identify such users, the survey uses a [cookie name](#cookieName) or [client ID](#clientId).
71905
72247
  * @see processedCompletedBeforeHtml
71906
72248
  */
71907
72249
  get: function () {
@@ -72301,16 +72643,18 @@ var SurveyModel = /** @class */ (function (_super) {
72301
72643
  });
72302
72644
  Object.defineProperty(SurveyModel.prototype, "showProgressBar", {
72303
72645
  /**
72304
- * Gets or sets the survey progress bar position.
72646
+ * Controls the visibility of the progress bar and specifies its position.
72305
72647
  *
72306
- * The following options are available:
72648
+ * Possible values:
72307
72649
  *
72308
- * - `off` (default) - don't show progress bar
72309
- * - `top` - show progress bar in the top
72310
- * - `bottom` - show progress bar in the bottom
72311
- * - `both` - show progress bar in both sides: top and bottom.
72650
+ * - `"off"` (default) - Hides the progress bar.
72651
+ * - `"top"` - Displays the progress bar above survey content.
72652
+ * - `"bottom"` - Displays the progress bar below survey content.
72653
+ * - `"both"` - Displays the progress bar above and below survey content.
72312
72654
  *
72313
72655
  * [View Demo](https://surveyjs.io/form-library/examples/navigation-default/ (linkStyle))
72656
+ * @see progressBarType
72657
+ * @see progressValue
72314
72658
  */
72315
72659
  get: function () {
72316
72660
  return this.getPropertyValue("showProgressBar");
@@ -72323,17 +72667,18 @@ var SurveyModel = /** @class */ (function (_super) {
72323
72667
  });
72324
72668
  Object.defineProperty(SurveyModel.prototype, "progressBarType", {
72325
72669
  /**
72326
- * Gets or sets the type of info in the progress bar.
72670
+ * Specifies the type of information displayed by the progress bar. Applies only when [`showProgressBar`](#showProgressBar) is not `"off"`.
72327
72671
  *
72328
- * The following options are available:
72672
+ * Possible values:
72329
72673
  *
72330
- * - `pages` (default),
72331
- * - `questions`,
72332
- * - `requiredQuestions`,
72333
- * - `correctQuestions`,
72334
- * - `buttons`
72674
+ * - `"pages"` (default) - The number of completed pages.
72675
+ * - `"questions"` - The number of answered questions.
72676
+ * - `"requiredQuestions"` - The number of answered [required questions](https://surveyjs.io/form-library/documentation/api-reference/question#isRequired).
72677
+ * - `"correctQuestions"` - The number of correct questions in a [quiz](https://surveyjs.io/form-library/documentation/design-survey/create-a-quiz).
72678
+ * - `"buttons"` - Adds jump links to the progress bar.
72335
72679
  *
72336
72680
  * [View Demo](https://surveyjs.io/form-library/examples/navigation-buttons/ (linkStyle))
72681
+ * @see progressValue
72337
72682
  */
72338
72683
  get: function () {
72339
72684
  return this.getPropertyValue("progressBarType");
@@ -72461,12 +72806,12 @@ var SurveyModel = /** @class */ (function (_super) {
72461
72806
  });
72462
72807
  Object.defineProperty(SurveyModel.prototype, "mode", {
72463
72808
  /**
72464
- * Gets or sets the survey edit mode.
72809
+ * Specifies whether users can take the survey or only view it.
72465
72810
  *
72466
- * The following options are available:
72811
+ * Possible values:
72467
72812
  *
72468
- * - `edit` (default) - make a survey editable,
72469
- * - `display` - make a survey read-only.
72813
+ * - `"edit"` (default) - Allows users to take the survey.
72814
+ * - `"display"` - Makes the survey read-only.
72470
72815
  *
72471
72816
  * [View Demo](https://surveyjs.io/form-library/examples/survey-displaymode/ (linkStyle))
72472
72817
  */
@@ -72835,7 +73180,8 @@ var SurveyModel = /** @class */ (function (_super) {
72835
73180
  };
72836
73181
  Object.defineProperty(SurveyModel.prototype, "isEmpty", {
72837
73182
  /**
72838
- * Returns `true` if the survey contains no pages. The survey is empty.
73183
+ * Returns `true` if the survey contains zero pages.
73184
+ * @see emptySurveyText
72839
73185
  */
72840
73186
  get: function () {
72841
73187
  return this.pages.length == 0;
@@ -73003,9 +73349,6 @@ var SurveyModel = /** @class */ (function (_super) {
73003
73349
  configurable: true
73004
73350
  });
73005
73351
  Object.defineProperty(SurveyModel.prototype, "isShowingPage", {
73006
- /**
73007
- * Survey is showing a page right now. It is in "running", "preview" or starting state.
73008
- */
73009
73352
  get: function () {
73010
73353
  return this.state == "running" || this.state == "preview" || this.isShowStartingPage;
73011
73354
  },
@@ -73305,12 +73648,6 @@ var SurveyModel = /** @class */ (function (_super) {
73305
73648
  isAfterPreview: this.changeCurrentPageFromPreview === true
73306
73649
  };
73307
73650
  };
73308
- /**
73309
- * Returns the progress that a user made while going through the survey.
73310
- * It depends from progressBarType property
73311
- * @see progressBarType
73312
- * @see progressValue
73313
- */
73314
73651
  SurveyModel.prototype.getProgress = function () {
73315
73652
  if (this.currentPage == null)
73316
73653
  return 0;
@@ -73332,9 +73669,10 @@ var SurveyModel = /** @class */ (function (_super) {
73332
73669
  };
73333
73670
  Object.defineProperty(SurveyModel.prototype, "progressValue", {
73334
73671
  /**
73335
- * Returns the progress that a user made while going through the survey.
73336
- * It depends from progressBarType property
73672
+ * Returns a percentage value that indicates user progress in the survey.
73673
+ * @see showProgressBar
73337
73674
  * @see progressBarType
73675
+ * @see progressText
73338
73676
  */
73339
73677
  get: function () {
73340
73678
  return this.getPropertyValue("progressValue", 0);
@@ -73343,9 +73681,6 @@ var SurveyModel = /** @class */ (function (_super) {
73343
73681
  configurable: true
73344
73682
  });
73345
73683
  Object.defineProperty(SurveyModel.prototype, "isNavigationButtonsShowing", {
73346
- /**
73347
- * Returns the navigation buttons (i.e., 'Prev', 'Next', or 'Complete' and 'Preview') position.
73348
- */
73349
73684
  get: function () {
73350
73685
  if (this.isDesignMode)
73351
73686
  return "none";
@@ -73364,9 +73699,6 @@ var SurveyModel = /** @class */ (function (_super) {
73364
73699
  configurable: true
73365
73700
  });
73366
73701
  Object.defineProperty(SurveyModel.prototype, "isNavigationButtonsShowingOnTop", {
73367
- /**
73368
- * Returns true if the navigation buttons (i.e., 'Prev', 'Next', or 'Complete' and 'Preview') are shows on top.
73369
- */
73370
73702
  get: function () {
73371
73703
  return this.getIsNavigationButtonsShowingOn("top");
73372
73704
  },
@@ -73374,9 +73706,6 @@ var SurveyModel = /** @class */ (function (_super) {
73374
73706
  configurable: true
73375
73707
  });
73376
73708
  Object.defineProperty(SurveyModel.prototype, "isNavigationButtonsShowingOnBottom", {
73377
- /**
73378
- * Returns true if the navigation buttons (i.e., 'Prev', 'Next', or 'Complete' and 'Preview') are shows on bottom.
73379
- */
73380
73709
  get: function () {
73381
73710
  return this.getIsNavigationButtonsShowingOn("bottom");
73382
73711
  },
@@ -73388,10 +73717,6 @@ var SurveyModel = /** @class */ (function (_super) {
73388
73717
  return res == "both" || res == buttonPosition;
73389
73718
  };
73390
73719
  Object.defineProperty(SurveyModel.prototype, "isEditMode", {
73391
- /**
73392
- * Returns `true` if the survey is in edit mode.
73393
- * @see mode
73394
- */
73395
73720
  get: function () {
73396
73721
  return this.mode == "edit";
73397
73722
  },
@@ -73399,11 +73724,6 @@ var SurveyModel = /** @class */ (function (_super) {
73399
73724
  configurable: true
73400
73725
  });
73401
73726
  Object.defineProperty(SurveyModel.prototype, "isDisplayMode", {
73402
- /**
73403
- * Returns `true` if the survey is in display mode or in preview mode.
73404
- * @see mode
73405
- * @see showPreviewBeforeComplete
73406
- */
73407
73727
  get: function () {
73408
73728
  return this.mode == "display" || this.state == "preview";
73409
73729
  },
@@ -73419,8 +73739,7 @@ var SurveyModel = /** @class */ (function (_super) {
73419
73739
  });
73420
73740
  Object.defineProperty(SurveyModel.prototype, "isDesignMode", {
73421
73741
  /**
73422
- * Returns `true` if the survey is in design mode. It is used by SurveyJS Editor.
73423
- * @see setDesignMode
73742
+ * Indicates whether the survey is being designed in [Survey Creator](https://surveyjs.io/survey-creator/documentation/overview).
73424
73743
  */
73425
73744
  get: function () {
73426
73745
  return this._isDesignMode;
@@ -73428,10 +73747,6 @@ var SurveyModel = /** @class */ (function (_super) {
73428
73747
  enumerable: false,
73429
73748
  configurable: true
73430
73749
  });
73431
- /**
73432
- * Sets the survey into design mode.
73433
- * @param value use true to set the survey into the design mode.
73434
- */
73435
73750
  SurveyModel.prototype.setDesignMode = function (value) {
73436
73751
  if (!!this._isDesignMode != !!value) {
73437
73752
  this._isDesignMode = !!value;
@@ -73440,7 +73755,9 @@ var SurveyModel = /** @class */ (function (_super) {
73440
73755
  };
73441
73756
  Object.defineProperty(SurveyModel.prototype, "showInvisibleElements", {
73442
73757
  /**
73443
- * Gets or sets whether to show all elements in the survey, regardless their visibility. The default value is `false`.
73758
+ * Specifies whether to show all survey elements, regardless of their visibility.
73759
+ *
73760
+ * Default value: `false`
73444
73761
  */
73445
73762
  get: function () {
73446
73763
  return this.getPropertyValue("showInvisibleElements", false);
@@ -73532,13 +73849,11 @@ var SurveyModel = /** @class */ (function (_super) {
73532
73849
  document.cookie = this.cookieName + "=;";
73533
73850
  };
73534
73851
  /**
73535
- * Navigates user to the next page.
73536
- *
73537
- * Returns `false` in the following cases:
73852
+ * Switches the survey to the next page.
73538
73853
  *
73539
- * - if the current page is the last page.
73540
- * - if the current page contains errors (for example, a required question is empty).
73541
- * @see isCurrentPageValid
73854
+ * This method returns a Boolean value that indicates whether the page was successfully switched. `false` is returned if the current page is the last page or if it contains validation errors.
73855
+ * @returns `true` if the page was successfully switched; `false` otherwise.
73856
+ * @see isLastPage
73542
73857
  * @see prevPage
73543
73858
  * @see completeLastPage
73544
73859
  */
@@ -73722,12 +74037,6 @@ var SurveyModel = /** @class */ (function (_super) {
73722
74037
  ? undefined
73723
74038
  : true;
73724
74039
  };
73725
- /**
73726
- * Checks whether survey elements (pages, panels, and questions) have unique question names.
73727
- * You can check for unique names for individual page and panel (and all their elements) or a question.
73728
- * If the parameter is not specified, then a survey checks that all its elements have unique names.
73729
- * @param element page, panel or question, it is `null` by default, that means all survey elements will be checked
73730
- */
73731
74040
  SurveyModel.prototype.ensureUniqueNames = function (element) {
73732
74041
  if (element === void 0) { element = null; }
73733
74042
  if (element == null) {
@@ -73834,8 +74143,12 @@ var SurveyModel = /** @class */ (function (_super) {
73834
74143
  });
73835
74144
  };
73836
74145
  /**
73837
- * Navigates user to a previous page. If the current page is the first page, `prevPage` returns `false`. `prevPage` does not perform any checks, required questions can be empty.
74146
+ * Switches the survey to the previous page.
74147
+ *
74148
+ * This method returns a Boolean value that indicates whether the page was successfully switched. `false` is returned if the current page is the first page.
74149
+ * @returns `true` if the page was successfully switched; `false` otherwise.
73838
74150
  * @see isFirstPage
74151
+ * @see nextPage
73839
74152
  */
73840
74153
  SurveyModel.prototype.prevPage = function () {
73841
74154
  var _this = this;
@@ -74161,7 +74474,9 @@ var SurveyModel = /** @class */ (function (_super) {
74161
74474
  };
74162
74475
  Object.defineProperty(SurveyModel.prototype, "isFirstPage", {
74163
74476
  /**
74164
- * Gets whether the current page is the first one.
74477
+ * Indicates whether the [current page](#currentPage) is the first page.
74478
+ *
74479
+ * > If the survey displays the [start page](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#start-page), this property contains `false`. Use the [`isShowStartingPage`](#isShowStartingPage) property to find out whether the start page is currently displayed.
74165
74480
  */
74166
74481
  get: function () {
74167
74482
  return this.getPropertyValue("isFirstPage");
@@ -74171,7 +74486,7 @@ var SurveyModel = /** @class */ (function (_super) {
74171
74486
  });
74172
74487
  Object.defineProperty(SurveyModel.prototype, "isLastPage", {
74173
74488
  /**
74174
- * Gets whether the current page is the last one.
74489
+ * Indicates whether the [current page](#currentPage) is the last page.
74175
74490
  */
74176
74491
  get: function () {
74177
74492
  return this.getPropertyValue("isLastPage");
@@ -74361,8 +74676,9 @@ var SurveyModel = /** @class */ (function (_super) {
74361
74676
  return options.allowComplete && options.allow;
74362
74677
  };
74363
74678
  /**
74364
- * Starts the survey. Changes the survey mode from "starting" to "running". Call this function if your survey has a start page, otherwise this function does nothing.
74679
+ * Starts the survey. Applies only if the survey has a [start page](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#start-page).
74365
74680
  * @see firstPageIsStarted
74681
+ * @see completeLastPage
74366
74682
  */
74367
74683
  SurveyModel.prototype.start = function () {
74368
74684
  if (!this.firstPageIsStarted)
@@ -74381,8 +74697,7 @@ var SurveyModel = /** @class */ (function (_super) {
74381
74697
  };
74382
74698
  Object.defineProperty(SurveyModel.prototype, "isValidatingOnServer", {
74383
74699
  /**
74384
- * Gets whether the question values on the current page are validating on the server at the current moment.
74385
- * @see onServerValidateQuestions
74700
+ * Indicates whether the current page is being [validated on a server](#onServerValidateQuestions).
74386
74701
  */
74387
74702
  get: function () {
74388
74703
  return this.getPropertyValue("isValidatingOnServer", false);
@@ -74505,13 +74820,14 @@ var SurveyModel = /** @class */ (function (_super) {
74505
74820
  this.doComplete(true, trigger);
74506
74821
  };
74507
74822
  SurveyModel.prototype.canBeCompleted = function (trigger, isCompleted) {
74823
+ var _a;
74508
74824
  if (!_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].triggers.changeNavigationButtonsOnComplete)
74509
74825
  return;
74510
74826
  var prevCanBeCompleted = this.canBeCompletedByTrigger;
74511
74827
  if (!this.completedByTriggers)
74512
74828
  this.completedByTriggers = {};
74513
74829
  if (isCompleted) {
74514
- this.completedByTriggers[trigger.id] = trigger;
74830
+ this.completedByTriggers[trigger.id] = { trigger: trigger, pageId: (_a = this.currentPage) === null || _a === void 0 ? void 0 : _a.id };
74515
74831
  }
74516
74832
  else {
74517
74833
  delete this.completedByTriggers[trigger.id];
@@ -74522,9 +74838,20 @@ var SurveyModel = /** @class */ (function (_super) {
74522
74838
  };
74523
74839
  Object.defineProperty(SurveyModel.prototype, "canBeCompletedByTrigger", {
74524
74840
  get: function () {
74841
+ var _a;
74525
74842
  if (!this.completedByTriggers)
74526
74843
  return false;
74527
- return Object.keys(this.completedByTriggers).length > 0;
74844
+ var keys = Object.keys(this.completedByTriggers);
74845
+ if (keys.length === 0)
74846
+ return false;
74847
+ var id = (_a = this.currentPage) === null || _a === void 0 ? void 0 : _a.id;
74848
+ if (!id)
74849
+ return true;
74850
+ for (var i = 0; i < keys.length; i++) {
74851
+ if (id === this.completedByTriggers[keys[i]].pageId)
74852
+ return true;
74853
+ }
74854
+ return false;
74528
74855
  },
74529
74856
  enumerable: false,
74530
74857
  configurable: true
@@ -74534,15 +74861,16 @@ var SurveyModel = /** @class */ (function (_super) {
74534
74861
  if (!this.canBeCompletedByTrigger)
74535
74862
  return undefined;
74536
74863
  var key = Object.keys(this.completedByTriggers)[0];
74537
- return this.completedByTriggers[key];
74864
+ return this.completedByTriggers[key].trigger;
74538
74865
  },
74539
74866
  enumerable: false,
74540
74867
  configurable: true
74541
74868
  });
74542
74869
  Object.defineProperty(SurveyModel.prototype, "processedCompletedHtml", {
74543
74870
  /**
74544
- * Returns the HTML content for the complete page.
74545
- * @see completedHtml
74871
+ * Returns HTML content displayed on the [complete page](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#complete-page).
74872
+ *
74873
+ * To specify HTML content, use the [`completedHtml`](#completedHtml) property.
74546
74874
  */
74547
74875
  get: function () {
74548
74876
  var html = this.renderedCompletedHtml;
@@ -74553,9 +74881,9 @@ var SurveyModel = /** @class */ (function (_super) {
74553
74881
  });
74554
74882
  Object.defineProperty(SurveyModel.prototype, "processedCompletedBeforeHtml", {
74555
74883
  /**
74556
- * Returns the HTML content, that is shown to a user that had completed the survey before.
74557
- * @see completedHtml
74558
- * @see cookieName
74884
+ * Returns HTML content displayed to a user who has completed the survey before. To identify such users, the survey uses a [cookie name](#cookieName) or [client ID](#clientId).
74885
+ *
74886
+ * To specify HTML content, use the [`completedBeforeHtml`](#completedBeforeHtml) property.
74559
74887
  */
74560
74888
  get: function () {
74561
74889
  return this.locCompletedBeforeHtml.textOrHtml;
@@ -74565,7 +74893,9 @@ var SurveyModel = /** @class */ (function (_super) {
74565
74893
  });
74566
74894
  Object.defineProperty(SurveyModel.prototype, "processedLoadingHtml", {
74567
74895
  /**
74568
- * Returns the HTML content, that is shows when a survey loads the survey JSON.
74896
+ * Returns HTML content displayed while a survey JSON schema is being loaded from [SurveyJS Service](https://api.surveyjs.io).
74897
+ *
74898
+ * To specify HTML content, use the [`loadingHtml`](#loadingHtml) property.
74569
74899
  */
74570
74900
  get: function () {
74571
74901
  return this.locLoadingHtml.textOrHtml;
@@ -74579,7 +74909,10 @@ var SurveyModel = /** @class */ (function (_super) {
74579
74909
  };
74580
74910
  Object.defineProperty(SurveyModel.prototype, "progressText", {
74581
74911
  /**
74582
- * Returns the text for the current progress.
74912
+ * Returns text displayed by the progress bar (for instance, "Page 2 of 3" or "Answered 3/8 questions"). Handle the [`onProgressText`](#onProgressText) event to change this text.
74913
+ * @see progressValue
74914
+ * @see showProgressBar
74915
+ * @see progressBarType
74583
74916
  */
74584
74917
  get: function () {
74585
74918
  var res = this.getPropertyValue("progressText", "");
@@ -74668,13 +75001,15 @@ var SurveyModel = /** @class */ (function (_super) {
74668
75001
  var mobileWidth_1 = Number.parseFloat(window.getComputedStyle(observedElement).getPropertyValue(cssVariables.mobileWidth));
74669
75002
  if (!!mobileWidth_1) {
74670
75003
  var isProcessed_1 = false;
74671
- this.resizeObserver = new ResizeObserver(function () {
74672
- if (isProcessed_1 || !Object(_utils_utils__WEBPACK_IMPORTED_MODULE_15__["isContainerVisible"])(observedElement)) {
74673
- isProcessed_1 = false;
74674
- }
74675
- else {
74676
- isProcessed_1 = _this.processResponsiveness(observedElement.offsetWidth, mobileWidth_1);
74677
- }
75004
+ this.resizeObserver = new ResizeObserver(function (entries) {
75005
+ window.requestAnimationFrame(function () {
75006
+ if (isProcessed_1 || !Object(_utils_utils__WEBPACK_IMPORTED_MODULE_15__["isContainerVisible"])(observedElement)) {
75007
+ isProcessed_1 = false;
75008
+ }
75009
+ else {
75010
+ isProcessed_1 = _this.processResponsiveness(observedElement.offsetWidth, mobileWidth_1);
75011
+ }
75012
+ });
74678
75013
  });
74679
75014
  this.resizeObserver.observe(observedElement);
74680
75015
  }
@@ -75200,8 +75535,16 @@ var SurveyModel = /** @class */ (function (_super) {
75200
75535
  return page;
75201
75536
  };
75202
75537
  /**
75203
- * Removes a page from a survey.
75204
- * @param page
75538
+ * Removes a page from the survey.
75539
+ *
75540
+ * Pass a `PageModel` object to this method. You can get this object in different ways. For example, you can call the [`getPageByName()`](#getPageByName) method to obtain a `PageModel` object with a specific name or use the [`currentPage`](#currentPage) property to access and delete the current page, as shown in the code below.
75541
+ *
75542
+ * ```js
75543
+ * // Delete the current page
75544
+ * survey.removePage(survey.currentPage);
75545
+ * ```
75546
+ * @param page A page to remove.
75547
+ * @see addNewPage
75205
75548
  */
75206
75549
  SurveyModel.prototype.removePage = function (page) {
75207
75550
  var index = this.pages.indexOf(page);
@@ -75513,7 +75856,7 @@ var SurveyModel = /** @class */ (function (_super) {
75513
75856
  }
75514
75857
  return res;
75515
75858
  };
75516
- SurveyModel.prototype.notifyQuestionOnValueChanged = function (valueName, newValue) {
75859
+ SurveyModel.prototype.notifyQuestionOnValueChanged = function (valueName, newValue, questionName) {
75517
75860
  if (this.isLoadingFromJson)
75518
75861
  return;
75519
75862
  var questions = this.getQuestionsByValueName(valueName);
@@ -75539,7 +75882,7 @@ var SurveyModel = /** @class */ (function (_super) {
75539
75882
  if (this.isDisposed)
75540
75883
  return;
75541
75884
  this.checkElementsBindings(valueName, newValue);
75542
- this.notifyElementsOnAnyValueOrVariableChanged(valueName);
75885
+ this.notifyElementsOnAnyValueOrVariableChanged(valueName, questionName);
75543
75886
  };
75544
75887
  SurveyModel.prototype.checkElementsBindings = function (valueName, newValue) {
75545
75888
  this.isRunningElementsBindings = true;
@@ -75552,7 +75895,7 @@ var SurveyModel = /** @class */ (function (_super) {
75552
75895
  this.updateVisibleIndexAfterBindings = false;
75553
75896
  }
75554
75897
  };
75555
- SurveyModel.prototype.notifyElementsOnAnyValueOrVariableChanged = function (name) {
75898
+ SurveyModel.prototype.notifyElementsOnAnyValueOrVariableChanged = function (name, questionName) {
75556
75899
  if (this.isEndLoadingFromJson === "processing")
75557
75900
  return;
75558
75901
  if (this.isRunningConditions) {
@@ -75560,7 +75903,7 @@ var SurveyModel = /** @class */ (function (_super) {
75560
75903
  return;
75561
75904
  }
75562
75905
  for (var i = 0; i < this.pages.length; i++) {
75563
- this.pages[i].onAnyValueChanged(name);
75906
+ this.pages[i].onAnyValueChanged(name, questionName);
75564
75907
  }
75565
75908
  if (!this.isEndLoadingFromJson) {
75566
75909
  this.locStrsChanged();
@@ -75789,26 +76132,23 @@ var SurveyModel = /** @class */ (function (_super) {
75789
76132
  });
75790
76133
  };
75791
76134
  /**
75792
- * Loads the survey JSON from the [api.surveyjs.io](https://api.surveyjs.io) service.
75793
- * If `clientId` is not `null` and a user had completed a survey before, the survey switches to `completedbefore` state.
75794
- * @param surveyId [api.surveyjs.io](https://api.surveyjs.io) service surveyId
75795
- * @param clientId users' indentifier, for example an e-mail or a unique customer id in your web application.
75796
- * @see state
75797
- * @see onLoadedSurveyFromService
76135
+ * Loads a survey JSON schema from the [SurveyJS Service](https://api.surveyjs.io). You can handle the [`onLoadedSurveyFromService`](#onLoadedSurveyFromService) event to modify the schema after loading if required.
76136
+ * @param surveyId The identifier of a survey JSON schema to load. Refer to the following help topic for more information: [Store Survey Results in the SurveyJS Service](https://surveyjs.io/form-library/documentation/handle-survey-results-store#store-survey-results-in-the-surveyjs-service).
76137
+ * @param clientId A user identifier (e-mail or other unique ID) used to determine whether the user has already taken the survey.
75798
76138
  */
75799
- SurveyModel.prototype.loadSurveyFromService = function (surveyId, cliendId) {
76139
+ SurveyModel.prototype.loadSurveyFromService = function (surveyId, clientId) {
75800
76140
  if (surveyId === void 0) { surveyId = null; }
75801
- if (cliendId === void 0) { cliendId = null; }
76141
+ if (clientId === void 0) { clientId = null; }
75802
76142
  if (surveyId) {
75803
76143
  this.surveyId = surveyId;
75804
76144
  }
75805
- if (cliendId) {
75806
- this.clientId = cliendId;
76145
+ if (clientId) {
76146
+ this.clientId = clientId;
75807
76147
  }
75808
76148
  var self = this;
75809
76149
  this.isLoading = true;
75810
76150
  this.onLoadingSurveyFromService();
75811
- if (cliendId) {
76151
+ if (clientId) {
75812
76152
  this.createSurveyService().getSurveyJsonAndIsCompleted(this.surveyId, this.clientId, function (success, json, isCompleted, response) {
75813
76153
  self.isLoading = false;
75814
76154
  if (success) {
@@ -76224,7 +76564,7 @@ var SurveyModel = /** @class */ (function (_super) {
76224
76564
  * @see data
76225
76565
  * @see getValue
76226
76566
  */
76227
- SurveyModel.prototype.setValue = function (name, newQuestionValue, locNotification, allowNotifyValueChanged) {
76567
+ SurveyModel.prototype.setValue = function (name, newQuestionValue, locNotification, allowNotifyValueChanged, questionName) {
76228
76568
  if (locNotification === void 0) { locNotification = false; }
76229
76569
  if (allowNotifyValueChanged === void 0) { allowNotifyValueChanged = true; }
76230
76570
  var newValue = newQuestionValue;
@@ -76246,7 +76586,7 @@ var SurveyModel = /** @class */ (function (_super) {
76246
76586
  newValue = this.getUnbindValue(newValue);
76247
76587
  this.setDataValueCore(this.valuesHash, name, newValue);
76248
76588
  }
76249
- this.updateOnSetValue(name, newValue, oldValue, locNotification, allowNotifyValueChanged);
76589
+ this.updateOnSetValue(name, newValue, oldValue, locNotification, allowNotifyValueChanged, questionName);
76250
76590
  };
76251
76591
  SurveyModel.prototype.isValueEmpyOnSetValue = function (name, val) {
76252
76592
  if (!this.isValueEmpty(val, false))
@@ -76255,18 +76595,19 @@ var SurveyModel = /** @class */ (function (_super) {
76255
76595
  return true;
76256
76596
  return this.editingObj.getDefaultPropertyValue(name) === val;
76257
76597
  };
76258
- SurveyModel.prototype.updateOnSetValue = function (name, newValue, oldValue, locNotification, allowNotifyValueChanged) {
76598
+ SurveyModel.prototype.updateOnSetValue = function (name, newValue, oldValue, locNotification, allowNotifyValueChanged, questionName) {
76259
76599
  if (locNotification === void 0) { locNotification = false; }
76260
76600
  if (allowNotifyValueChanged === void 0) { allowNotifyValueChanged = true; }
76261
76601
  this.updateQuestionValue(name, newValue);
76262
76602
  if (locNotification === true || this.isDisposed || this.isRunningElementsBindings)
76263
76603
  return;
76604
+ questionName = questionName || name;
76264
76605
  var triggerKeys = {};
76265
76606
  triggerKeys[name] = { newValue: newValue, oldValue: oldValue };
76266
76607
  this.runConditionOnValueChanged(name, newValue);
76267
76608
  this.checkTriggers(triggerKeys, false, false, name);
76268
76609
  if (allowNotifyValueChanged)
76269
- this.notifyQuestionOnValueChanged(name, newValue);
76610
+ this.notifyQuestionOnValueChanged(name, newValue, questionName);
76270
76611
  if (locNotification !== "text") {
76271
76612
  this.tryGoNextPageAutomatic(name);
76272
76613
  }
@@ -76405,8 +76746,8 @@ var SurveyModel = /** @class */ (function (_super) {
76405
76746
  }
76406
76747
  };
76407
76748
  /**
76408
- * Removes a value from the survey results.
76409
- * @param {string} name The name of the value. Typically it is a question name.
76749
+ * Deletes an answer from survey results.
76750
+ * @param {string} name An object property that stores the answer to delete. Pass a question's [`valueName`](https://surveyjs.io/form-library/documentation/api-reference/question#valueName) or [`name`](https://surveyjs.io/form-library/documentation/api-reference/question#name).
76410
76751
  */
76411
76752
  SurveyModel.prototype.clearValue = function (name) {
76412
76753
  this.setValue(name, null);
@@ -76619,6 +76960,20 @@ var SurveyModel = /** @class */ (function (_super) {
76619
76960
  res.hasAllValuesOnLastRun = this.textPreProcessor.hasAllValuesOnLastRun;
76620
76961
  return res;
76621
76962
  };
76963
+ Object.defineProperty(SurveyModel.prototype, "textPreProcessor", {
76964
+ get: function () {
76965
+ var _this = this;
76966
+ if (!this.textPreProcessorValue) {
76967
+ this.textPreProcessorValue = new _textPreProcessor__WEBPACK_IMPORTED_MODULE_5__["TextPreProcessor"]();
76968
+ this.textPreProcessorValue.onProcess = function (textValue) {
76969
+ _this.getProcessedTextValue(textValue);
76970
+ };
76971
+ }
76972
+ return this.textPreProcessorValue;
76973
+ },
76974
+ enumerable: false,
76975
+ configurable: true
76976
+ });
76622
76977
  SurveyModel.prototype.processTextCore = function (text, returnDisplayValue, doEncoding) {
76623
76978
  if (doEncoding === void 0) { doEncoding = false; }
76624
76979
  if (this.isDesignMode)
@@ -76772,13 +77127,13 @@ var SurveyModel = /** @class */ (function (_super) {
76772
77127
  });
76773
77128
  Object.defineProperty(SurveyModel.prototype, "widthMode", {
76774
77129
  /**
76775
- * Gets or sets a value that specifies how the survey width is calculated.
77130
+ * Specifies how to calculate the survey width.
76776
77131
  *
76777
- * The available options:
77132
+ * Possible values:
76778
77133
  *
76779
- * - `static` - A survey has a fixed width that mostly depends upon the applied theme. Resizing a browser window does not affect the survey width.
76780
- * - `responsive` - A survey takes all available horizontal space. A survey stretches or shrinks horizonally according to the screen size.
76781
- * - `auto` - Depends on the question type and corresponds to the static or responsive mode.
77134
+ * - `"static"` - A survey has a [fixed width](#width).
77135
+ * - `"responsive"` - A survey occupies all available horizontal space and stretches or shrinks horizontally to fit in the screen size.
77136
+ * - `"auto"` (default) - Survey width depends on a question type and corresponds to the `"static"` or `"responsive"` mode.
76782
77137
  */
76783
77138
  // `custom/precise` - The survey width is specified by the width property. // in-future
76784
77139
  get: function () {
@@ -77352,7 +77707,9 @@ var SurveyModel = /** @class */ (function (_super) {
77352
77707
  this.onThemeApplied.fire(this, { theme: theme });
77353
77708
  };
77354
77709
  /**
77355
- * Use this method to dispose survey model properly.
77710
+ * Disposes of the survey model.
77711
+ *
77712
+ * Call this method to release resources if your application contains multiple survey models or if you re-create a survey model at runtime.
77356
77713
  */
77357
77714
  SurveyModel.prototype.dispose = function () {
77358
77715
  this.removeScrollEventListener();
@@ -77584,8 +77941,10 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
77584
77941
  name: "showTOC:switch",
77585
77942
  default: false
77586
77943
  },
77587
- { name: "tocLocation", default: "left", choices: ["left", "right"],
77588
- dependsOn: ["showTOC"], visibleIf: function (survey) { return !!survey && survey.showTOC; }
77944
+ {
77945
+ name: "tocLocation", default: "left", choices: ["left", "right"],
77946
+ dependsOn: ["showTOC"],
77947
+ visibleIf: function (survey) { return !!survey && survey.showTOC; }
77589
77948
  },
77590
77949
  { name: "mode", default: "edit", choices: ["edit", "display"] },
77591
77950
  { name: "storeOthersAsComment:boolean", default: true },
@@ -78145,9 +78504,11 @@ function createTOCListModel(survey, onAction) {
78145
78504
  var _a;
78146
78505
  var pagesSource = survey.questionsOnPageMode === "singlePage" ? (_a = survey.pages[0]) === null || _a === void 0 ? void 0 : _a.elements : survey.pages;
78147
78506
  var items = (pagesSource || []).map(function (page) {
78507
+ var _a, _b;
78148
78508
  return new _actions_action__WEBPACK_IMPORTED_MODULE_0__["Action"]({
78149
78509
  id: page.name,
78150
- title: (page["navigationTitle"]) || page.title || page.name,
78510
+ locTitle: ((_a = page.locTitle) === null || _a === void 0 ? void 0 : _a.text) ? page.locTitle : (((_b = page.locNavigationTitle) === null || _b === void 0 ? void 0 : _b.text) ? page.locNavigationTitle : undefined),
78511
+ title: page.renderedNavigationTitle,
78151
78512
  action: function () {
78152
78513
  if (typeof document !== undefined && !!document.activeElement) {
78153
78514
  !!document.activeElement.blur && document.activeElement.blur();
@@ -78323,11 +78684,17 @@ var SvgIconRegistry = /** @class */ (function () {
78323
78684
  this.icons = {};
78324
78685
  this.iconPrefix = "icon-";
78325
78686
  }
78687
+ SvgIconRegistry.prototype.processId = function (iconId, iconPrefix) {
78688
+ if (iconId.indexOf(iconPrefix) == 0)
78689
+ iconId = iconId.substring(iconPrefix.length);
78690
+ return iconId;
78691
+ };
78326
78692
  SvgIconRegistry.prototype.registerIconFromSymbol = function (iconId, iconSymbolSvg) {
78327
78693
  this.icons[iconId] = iconSymbolSvg;
78328
78694
  };
78329
78695
  SvgIconRegistry.prototype.registerIconFromSvgViaElement = function (iconId, iconSvg, iconPrefix) {
78330
78696
  if (iconPrefix === void 0) { iconPrefix = this.iconPrefix; }
78697
+ iconId = this.processId(iconId, iconPrefix);
78331
78698
  var divSvg = document.createElement("div");
78332
78699
  divSvg.innerHTML = iconSvg;
78333
78700
  var symbol = document.createElement("symbol");
@@ -78341,6 +78708,7 @@ var SvgIconRegistry = /** @class */ (function () {
78341
78708
  };
78342
78709
  SvgIconRegistry.prototype.registerIconFromSvg = function (iconId, iconSvg, iconPrefix) {
78343
78710
  if (iconPrefix === void 0) { iconPrefix = this.iconPrefix; }
78711
+ iconId = this.processId(iconId, iconPrefix);
78344
78712
  var startStr = "<svg ";
78345
78713
  var endStr = "</svg>";
78346
78714
  iconSvg = iconSvg.trim();
@@ -79644,7 +80012,11 @@ var ResponsivityManager = /** @class */ (function () {
79644
80012
  setTimeout(function () { _this.process(); }, 1);
79645
80013
  };
79646
80014
  if (typeof ResizeObserver !== "undefined") {
79647
- this.resizeObserver = new ResizeObserver(function (_) { return _this.process(); });
80015
+ this.resizeObserver = new ResizeObserver(function (entries) {
80016
+ window.requestAnimationFrame(function () {
80017
+ _this.process();
80018
+ });
80019
+ });
79648
80020
  this.resizeObserver.observe(this.container.parentElement);
79649
80021
  }
79650
80022
  }